Andrew P. Citron

Senior Programmer

10216 Whitestone Road

Raleigh, North Carolina, 26715

919-254-7410(w) 919-847-6492(h)

E-mail citron@us.ibm.com

Objective: Develop product software with a team of motivated people who share a common vision of the product. I like working with new technologies. In the 70's I implemented an operating system and a word processor; in the 80's communications protocols and distributed transaction processing systems; in the 90's multimedia, computer telephony, network computers, wireless Internet access for pervasive computing devices, Windows CE, Java and Linux; and now performance analysis and measurement for WebSphere-based products.

I'd like to use some of these skills:

Internet, WebSphere

wireless communications

communications protocols and APIs

operating systems

Win/XP Win/95 Win/98, Win/NT, Win/2000, Win/2003, Win/CE, Win/3.1, OS2

performance analysis  Load Runner

Java, C, C++ with MFC and VisualAge

computer telephony

distributed transaction processing

multimedia device drivers and APIs

writing portable C++ code

computer music

Windows, OS/2 multimedia

parallel processing

Pervasive Computing

Linux AIX


Professional Experience

[Research Triangle Park, NC]

[IBM Software Solutions, Senior Programmer]

                        2001 to present

Performance analysis and measurement for the following products:  IBM's Websphere Portal, WebSphere Domino Extended Productivity Portlets, Sametime Instant Messaging, Portal Document Manager, Websphere Everyplace Mobile Portal, Websphere Everyplace Subscription Manager.  These strategic products are written in java and run on the WebSphere application server. My job is to measure and analyze the performance, find bottlenecks, and suggest design, tuning, and coding changes that will improve the throughput and interactive response time.

This work frequently involves working closely with customer installations and occasionally some very complex troubleshooting of functional and performance problems.

Recent career highlights include a presentation to the IBM Academy about how I implemented the performance test of WebSphere Portal integrated with Sametime instant messaging.  

In the spring of 2007 a paper I co-authored was made required reading for a mobile computing technologies course at Purdue University.

                        1999 to 2001

Performance analysis and measurement for IBM's WebSphere Transcoding Publisher.  This product allows various internet-enabled pervasive computing devices to fetch web content that is not targeted at the particular device.  The product is coded largely in Java with some C code.  My job is to measure and analyze the performance and suggest design and coding changes that will improve the throughput and interactive response time. Design changes I suggested have led to a 400 percent throughput improvement while improving interactive response time.   In addition, I ported the product to Linux.

                        1996 to 1999

Software developer on the eNetwork Web Express team. This product provides wireless access to the Internet. It does this by providing compression, caching, protocol interception, asynchronous WWW access, and other techniques. These techniques are necessary because wireless communications are slow and expensive. This product makes web access faster and cheaper. I've written C++ code to improve the cache and web-access performance and added features to the product that permit it to directly access the Internet without depending on a web proxy. I've ported the product to Windows CE and Network Computers. The port to Network computers was done in Java.

1992 to 1996

[Research Triangle Park, NC]

[IBM Microelectronics, Senior Programmer]

PC software developer and team leader for the telephony function of the Mwave Multimedia product. I was responsible for Windows and OS/2 multimedia control devices and the call-discriminator application for Mwave's Telephone Answering Machine and Fax Machine. This included Windows 95, Windows 3.1, and OS/2 PC multimedia application and device driver software development. I also assisted in the porting of the same code to Windows NT and AIX. I led the PC software development team that implemented 3-way call discrimination (routing incoming fax, modem or voice calls). The telephone answering machine also supports full-duplex speakerphone, caller ID, distinctive ring, music on hold (CD audio, wave audio, and MIDI over the phone or telephone handset). This required knowing and implementing multimedia APIs and multimedia internals as well as modem APIs, modem internals and applications.

Mwave is a programmable digital signal processor (DSP). The implementation was done with parallel processors, parallel processing, device drivers and application software. It runs on Windows 95, Windows 3.1, OS/2, Windows NT, and AIX.

Mwave did not write all the application software. That was done by independent software vendors (ISVs). Part of my role was to provide API documentation to the ISVs as well as consulting, advising and debugging assistance.

1984 to 1992

[IBM Architecture and Telecommunications, Senior Programmer]

[Research Triangle Park, N.C.]

Lead architect with IBM's LU 6.2 (or APPC) architecture group (I had the lead architect title officially for two years, and was the defacto lead architect for four additional years). This job included designing architectural enhancements to LU 6.2, getting existing architecture ironed out, convincing products to implement the architecture, helping products figure out how to make the design fit on their operating system, shooting bugs on distributed systems (some IBM, some non-IBM), customer consultation, consulting with competitors, external presentations, coding and maintaining the LU 6.2 compliance test system, designing distributed transaction programs that use LU 6.2, reviewing product specifications, working with international standards groups (specifically OSI/TP, X/OPEN, MIA/TP), and publishing the LU 6.2 architecture specification so others can implement it.

As the lead architect I was required to know all aspects of the architecture. This includes the API, the communication protocols, security, network management, the competing protocols (TCP/IP and OSI/TP), and the implementing products.

The IBM products I consulted with regularly included CICS, IMS, DB2, OS/2 Comm. Manager, RS/6000, AS/400, TPF, VM, MVS, SQL/DS, DB2/2, VTAM, S/88 and APPN architecture.

1979 to 1984

[IBM Office Products, Staff Programmer]

[Austin, Texas]

Designed, coded, tested and maintained the operating system of the IBM 5520 administrative system (a multi-user, multiprocessor, multitasking forerunner of modern word processors). I was with the 5520 for five releases. The operating systems components I worked on included 2 dispatchers, 2 storage managers, the pager, the swapper, the lock manager, the SVC handler, several interrupt handlers, the abnormal task termination handler, the system timer (clock function), communication support (LU type 4 and 6 .2). Along with operating system work, I also did a one-year stint in the 5520 performance analysis group, and did the high level design for a printer-transform (you can't print editable WYSIWIG text as-is, it needs to be transformed before it can be sent to a printer). The 5520 was a word processor that supported electronic document distribution, and I worked on the communication subsystem for two of the five releases.

1977 to 1978

[State University of New York]

[Binghamton, New York]

Statistical analysis of psychology experiments as a research assistant at SUNY Binghamton. I later used this background in statistics in my performance analysis work.

Tools

Computer Languages: Java, Perl, C, C++, Visual C++ with MS foundation classes (MFC) and VisualAge Class Library, PL/1, APL, COBOL, FAPL, FORTRAN, Pascal, 370 assembler, S/34 CSP assembler, S/34 MSP assembler, Intel 8080 assembler, SAS and SPSS (statistical packages), GPSS (a simulation language), SQL, REXX

Compilers and tools used in the last few years: Java, Eclipse, Microsoft Visual C++ (on Windows 95, Windows 3.1, Windows NT and Windows CE), IBM C++ (on OS/2, Windows 95 and NT), Borland C++ (on Windows 3.1), SoftIce debugger (Windows 95 and Windows 3.1), IPMD (OS/2), Visual Basic Extensions(VBX) (Windows), Codeview (Windows and OS/2), Bounds Checker


Publications

I've published articles in Byte magazine, IEEE Data Engineering, Distributed and Parallel Processing journal, DSP Applications, IBM's LU 6.2 Formats and Protocols book and others. See the addendum that follows for the detailed information on the publications.

Patents

I currently hold 6 patents. Five are related to 2-phase commit processing. The fifth is related to data communications using switched links (i.e., a normal phone call). See the addendum that follows for the detailed information on the patents. A seventh is pending.

Awards

I've received 13 awards for work associated with internal and external publications. I've received 7 awards for patents, including an invention plateau and an award for outstanding innovation. I received a division award for work on the APPC reference model and compliance system. I also received 2 appreciation awards for development of the 5520 operating system.

Education

[Keeping up to date, continuing education, 2002-2004]

IBM encourages employees to keep abreast of changes in the field.  In recent years I've taken courses in AIX Performance, DB2 Performance, LDAP fundamentals, Websphere 4.0 administration, and Architecting for Performance.

1976 to 1978

[State University of New York at Binghamton]

[Binghamton, New York]

[Master of Science in Computer Systems]

1969 to 1975

[Northeastern University]

[Boston, Massachusetts]

[Bachelor of Arts in Psychology]


Detailed List of Publications, Conference Presentations, and Patents

Publications

"A Software Review Method that Really Works", BYTE Magazine Jan. 1984

"Unchained Transactions and SNA's LU 6.2" which appeared in the Fifth International High Performance Transaction Workshop (HPTS) and in IBM Technical Report 29.1748.

"Generalized Presumed Abort: Marrying Presumed Abort and SNA's LU 6.2 Commit Protocols" which appeared in the Fifth International High Performance Transaction Workshop (HPTS).

"Unchained Transactions in the Peer-to-Peer Chained Environment of SNA's LU6.2" which appeared in The Eighth International Symposium on Computer and Information Sciences, ISCIS and in IBM Technical Report 29.1742

"Reconciling Communication Protocol Support for Chained and Unchained Transactions" which appeared in II International Conference on Computer Applications to Engineering Systems.

"Enhancing SNA's LU 6.2 Sync Point to Include Presumed Abort Protocol" which appeared in IBM Technical Report 29.1751.

"Two-Phase Commit Optimizations and Trade-off in the Commercial Environment", IEEE 9th International Conference on Data Engineering, April 1993.

Samaras, G., Citron, A., Kshemlakyani, A., "Reconciling Communication Transactional Support for Chained and Unchained Transactions"  Proc. 2nd International Conference on Computer Applications to Engineering Systems, IEE and IEEE,  Nicosia, Cyprus, July 1993

Samaras, G., Citron, A., Kshemlakyani, A., "Unchained Transactions and SNA's LU6.2”, Proc. 5th International Workshop on High Performance Transaction Systems (HPTS), Asilomar, September 1993.

 

Mohan, C., K. Britton, A. Citron, G. Samaras , "Generalized Presumed Abort: Marrying Presumed Abort and SNA's LU6.2 Commit Protocols', Proc. 4th International Workshop on High Performance Transaction Systems (HPTS), Asilomar, September 1993.

 

Samaras, G., Citron, A., "Unchained Transactions in the Peer-to-Peer Chained environment of SNA's LU6.2”, Proc. 8th International Symposium on Computer Systems, Turkey, November 1993.

"The Mwave Multimedia Control Interface for FAX and TAM", which appeared in IBM Technical Report 29.1813, Dec. 1993.

"The Implementation of the Mwave Telephone Answering Machine", which appeared in the March 1994 DSP Applications Journal and in IBM Technical Report 29.1842.

"Two-Phase Commit Optimizations in a Commercial Distributed Environment. Distributed and Parallel Databases, volume 3, Number 4, October 1995, pages 325-360. ISSN: 0926-8782.

Samaras, G., S.D. Nikolopoulos, K. Britton, A. Citron, "Efficient Algorithms for Managing Transaction Identifiers in the Peer-to-Peer Distributed Transactional Environment".  Proc. 5th Hellenic Conference on Informatics, Athens, December 1995.

"Handling Parallel Processing in Multimedia Systems", presented at the International Conference on Telecommunications April 1996 and in IBM Technical Report TR 29.2084.

"Transaction Identifier Management in the Peer-to-Peer Distributed Transactional Environment". Proc. 9th International Conference on Parallel and Distributed Computing Systems (PDCS=B496), Dijon, France, September 1996.

Mohan, C., K. Britton, Citron, A., G. Samaras , "Generalized Presumed Abort: Marrying Presumed Abort and SNA's LU6.2 Commit Protocols', Proc. International Workshop on Advance Transaction Models and Architectures (ATMA96) (Edited Book), Goa, India, September 1996 (Held in conjunction with VLDB'96). Extended version of the HPTS'93 paper. 

Samaras, G., Kshemlakyani, A, Citron, A. "Context Management and its Applications to Distributed Transactions". Proc. 16th IEEE International Conference on Distributed Computing Systems  (IDCS96) Hong Kong, May 1996.

G. Samaras, A. Citron, A. Kshemalyani" Reconciling Communication Protocol Support between Chained and Unchained Transactions", Journal of Systems Architecture: The EuroMicro Journal, Volume 43(1-5), pp. 229-243 March 1997.

A., Kshemlakyani, Samaras, G., Citron, A. "Context Management and its Applications to Distributed Transactions", Distributed Systems Engineering Journal, 5(1):1-11, March 1998.

"Porting Code Built with IBM VisualAge to Windows CE", which appeared in IBM Technical Report 29.3150, April 1999.

Stress testing your software without stressing your testers”, Alan Booth, Andrew Citron, IBM DeveloperWorks February 2001.

"Transcoding: Extending e-Business to New Environment", Kathryn Heninger Britton, Ralph Case, Andrew Citron, Rick Floyd, Yongcheng Li, Christopher Seekamp, Brad Topol, and Karen Tracey, IBM Systems Journal, Vol. 40, No. 1, 2001.  This article is required reading for a Spring 2007 course at Purdue

Combine safe publication and effective immutability to improve performance”, Andrew Citron, Christopher Seekamp, Martin Presler-Marshall, IBM DeveloperWorks October 2007.

Patents:

November 1990: "Method of Controlling Limited Resource Sessions in a Data Communications Network". The patent number is 4,972,437.

November 1993: "Method of Excluding Inactive Nodes from Two-phase Commit Operations in a Distributed Transaction Processing System". The patent number is 5,258,982.

June 1994: "Asynchronous Resynchronization of a Commit Procedure". The patent number is 5,319,773.

December 1994: "System for Managing Unit-of-Work Identifiers When a Chained, Distributed, Two Phase Commit Transaction System is Severed". The patent number is 5,371,886.

July 1995: "Method and Apparatus for Improving Database Reliability and Response Time in a Distributed Transaction Processing System". The Patent number is 5,432,926.

June 2002: "Method, Systems and Computer Program Products for Synchronization of Queue-to-Queue communications". The Patent number is 6,401,136. This patent was in the top 10% of patents licensed from IBM in 2003

Andrew P. Citron citron@us.ibm.com

Return to Citron's Home PageAndrew Citron's Home Page

_