|Portfolio:||web | audio|
I joined EDS in late 2000, primarily because they had told me that they wanted to work on their Sun account. So for nearly my entire career with EDS I've worked at Sun's Broomfield office. My first project on the account was a rewrite of a PERL application designed to help users locate and load required patches on their systems. I successfully completed that project ahead of schedule. Since I am primarily a Java developer, however, I was very happy to move to my next project.
There, I was assigned the task of creating a hierarchical, "tree-based" view into the company's proactive rules database. Rules are grouped by the products to which they are assigned. Similarly, products are grouped in categories. So the desire was to allow users to expand a product category (much like expanding a folder in a filesystem window) to view the products contained within. Then the user could expand any of the products contained within that category to view all of the rules assigned to that product. Finally, the user could click on a rule to view that rule's details. Although I normally shy away from HTML frames, in this case frames proved the best approach for the user interface. Additional requirements included caching data to improve performance. This requirement, in addition to the need to track which tree nodes had been expanded, presented some interesting session-management challenges. But met all of the requirements, garnering a great deal of praise from the Sun team with whom I was working, as well as elevating EDS's status within Sun.
Another interesting project I did was to design and build a version control system for use in editing rules. This system allows users to create versions--or snapshots of the thirty-some attributes at any given time--of rules. At any time, users can revert a given rule to an older version. Finally, the system allows users to check-out rules, which creates a new revision, as well as lock a rule for exclusive editing. The system consists of an Oracle database storing multiple versions of each rule in XML format. The XML files are retrieved (for example, by the editing environment for editing, or by the production environment for display) via Java RMI. The requesting environment then parses the XML using the Apache Xerces SAX parser and populates that appropriate fields in the editing database.
I also created a couple of applets for Sun. One allows product managers to view, in real-time, the health of any number of products. The applet communicates via HTTP with a servlet, which retrieves product information from an Oracle database and passes it back along to the applet. The information is calculated by the applet and given a health ranking. The ranking is displayed graphically as a thermometer, while allowing the user to click on product name for more details.
Another applet I developed allows users to build expressions for an in-house predicate language. I also developed a reporting application, which involved a great deal of Oracle and PL/SQL work. I was also in charge of porting some of the companies rules editing interfaces to the FatWire Update Engine content management system.
The applications described here were served from Sun Enterprise servers running the iPlanet application server, in a J2EE environment, using Oracle 8 and 9.