Paul Kaplan - Software Architect

Java Terminal Emulator Applet

I designed and wrote a terminal emulator applet that emulates popular mainframe terminals such as IBM 3270 and DEC VT320. Thus, the customer has a "zero install" terminal emulator that runs in a browser.

The applet supports two different modes of operation, half-duplex and full-duplex, depending on the emulation type.

The applet has two threads: 1) the main applet thread which handles the user interface, and 2) a thread which has a run loop for incoming messages from the server.

The incoming commands are either a new screen, a disconnect message, or an exception of some sort. The outgoing messages to the server are a control string, or an array of fields from the terminal screen.

I also wrote the server-side component in Objective-C, which supports the applet, and in turn talks to the terminal server via telnet, e.g. telnet 3270.

The applet talks to the server with a proprietary object serializer library, which also runs over TCP/IP. I ported the Objective-C version of this library to C#, Java, and C.

Legacy Forwarder

I wrote a forwarder that passes TCP/IP messages from the applet to the Applet Server, which might be running on a different IP address than the web page (applet security requires all IP addresses to be the same).

It is written in C, using the Microsoft socket library. It has a run loop which makes the socket "select" call to accept incoming requests to connect, forward packets, and also contacts the load balancer to find the appropriate server for forwarding.

ActiveX Control

I designed wrote an ActiveX control to host a Windows terminal application in a browser. It is a standard ActiveX (based on COM) control that loads the .exe and provides a windows-like environment for the .exe while behaving as an ActiveX control in the web browser.

Business Components Framework

I designed and wrote a COM framework for server-side Business Components, running under Microsoft Transaction Server. The framework consisted of a set of C++ base classes, housed in a standard DLL to reduce the memory footprint, since the BC's had about 75% common code. This framework was used by about 30 developers at 3 sites including one in India.

PopSite Compiler in C++

I co-designed and co-wrote a compiler that translated our proprietary HTML superset to HTML after pre-processing. It was written in C++ and used the Flex lexical analyzer and Bison semantic analyzer.

Incremental Linker and Executable Compactor

I co-designed and co-wrote an incremental Linker and CVPACK utility (compacts debugging symbols in an executable file) at Symantec - both C++ projects

FMP Compiler

I designed and wrote a compiler, itself written in C, using Lex and Yacc. I also designed the intermediate language, and developed a virtual machine. The compiler translated our proprietary language to run on the VM. I also developed a real time debugger for this environment.

386 Virtual Memory Manager

I designed and wrote a hardware level virtual memory manager for the Intel 386 processor. The data structures and overall program flow were written in C, with most of the compile options turned off. The routines to access the processor registers were written in assembler and callable by C.