Make simple things easy, and difficult things possible.
B. Eckel (tij2)

Consulting

This page describes technical aspects of some consulting projects I was involved with.


Customer Activities (2000)
    PG&E Gas Transmission NW, http://www.pge-nw.com/home.html

This project is a B2B/B2C Internet application for a gas transmission (pipeline) company. Gas transmission is a relatively complex activity involving common business operations such as invoicing, physical constraints such as the pipeline bandwidth for scheduling, and federal regulations, e.g., about bidding for capacity.

The project's implementation language is Java with NetDynamics as the application server and Sybase as the database backend. A team of 10 people, on average, designed and implemented the application using XP as the development process. My main contribution to the project has been architectural design and coding of portions of the application and mentoring junior members of the development team.




Computer Adaptive Test (1997-98)
    Pistachio Software, Inc. http://pistachio-software.com

My contribution was the design and development of an Internet application referred to as Computer Adaptive Test (CAT). The CAT is a 3-tier system that enables organizations to deliver individual adaptive tests. The organization is, e.g., a school district and the individual is a student. Adaptive means that students start with an easy-to-moderate question; those answering the question correctly will get a more difficult follow-up question. If that question is answered correctly, the difficulty of a subsequent questions likewise increases. Conversely, if the second question is answered incorrectly, the following questions will be easier.

The client tier of the CAT is an applet that presents questions and collects multiple-choice answers. The presentation of a question may include graphics, diagrams, colors, etc. As soon as the user provides an answer, the applet sends it to the middle tier.
The middle tier is a Java application based on a server socket. It receives from the applet an answer and stores it in a database. Depending on the correctness of an answer, it retrieves from the database the next question and sends it to the applet. Information between client and middle tiers is exchanged in the form of serialized objects. The database is accessed using the JDBC API. This tier is responsible for the security of the entire system.
The server tier is any relational DBMS with a JDBC driver. In the CAT, middle and server tiers run on the same hardware.

The code has been prototyped and developed, for the most part, on a Linux system with the Postgres database. The production system runs on an NT server with MS SQL.




Referral Admission and Eligibility System (1996)
    Open Systems Engineering, Inc. http://o-s-e.com

My contribution was the design and the development of the client side of an Internet application referred to as Referral Admission and Eligibility System (RAES). The client side of the RAES is an applet that enables a health care provider to access a legacy CIS. The client side, for the most part, provides a sophisticated GUI plus some local processing to ensure security and the consistency of input.

The RAES was developed with the initial, 1.0, distribution of Java. It implemented custom components, similar to those nowadays provided by Swing, which were not yet available in the AWT at that time. The architecture was based on the Model-View-Controller which was not straightforward to use before the introduction of event Listeners and Adapters in Java version 1.1.

This project was implemented concurrently to VB and HTML alternatives. The Java implementation was selected for its superior flexibily and maintainability. The code has been prototyped and developed, for the most part, on a Linux system. The production system runs on an NT server.