Home Site Map Search Contact Us About Us About Us
Copyright © 2000
Projects
Up Projects Samples

Development Projects

ORACLE Data Loader

Designed and developed a suite of NT services with Visual Basic that load text files into an ORACLE 8 database at the rate of 10,000 records per second.  These services are highly configurable, and report a variety of statistics and error conditions for review by the application administrators.  The services are also self healing, so that a failure does not require operator intervention for the 24X7 loading process to continue.  

Expert System

Developed an expert system with Gensym G2 to monitor real-time weather and air quality data to assist a refinery with detecting and preventing odor incidents.  This application included a digital map and a database of every street and neighborhood within the map area that allowed the refinery to pinpoint a complainant's location and verify if it was possible for an odor to have been blown to that location based on the stored weather data.  

Plantware Data Access Layer

Developed  a Visual J++ COM+/MTS data access layer that accesses 3 ORACLE databases concurrently.  This object performs multiple queries against various databases to get physical property data for a tank, and then aggregates the results into a single custom ADO recordset, which is returned to the client application.  The query performance was optimized through the use of prepared parameterized queries and prepared insert and update statements that directly access ORACLE bind variables.

NT Security Object

Created a C++ ATL object that accesses the NT security API to obtain a user's SID.  The object detects if it is running under MTS/COM+, and uses it's API to obtain the SID, or if it is not running under MTS, it uses the normal NT API.  The object then uses the SID to report the user's name as well as all groups that the user belongs to in both the user's domain as well as any other specified domain.  This object was used to create a stand alone utility to display user group information for system administrators as well as the basis for securing access to various Active Server Pages (ASP) on a corporate intranet site.

Real-Time Process Variable Calculator

Designed and developed a set of JavaScript modules that act together to calculate real-time process data variables.  These scripts access an OLE for Process Control (OPC) server to read and write a Distributed Control System's (DCS) variables.  The scripts also implement a sophisticated messaging system that writes errors into the NT event log as well as log files. 

Equivalent Distillation Capacity Data Loader

Created an SQR program that retrieves data from a yield accounting database and a real-time process data database, performs various calculations, and updates a series of tables in the yield accounting database.  

Real-Time MTS Data Access Object

Created a suite of objects that allow users to access real-time data via Internet Explorer. Client side VBScript instantiates server side objects within Microsoft Transaction Server (MTS) that use an in house developed API to access real-time process data. The client side scripts use the Advanced Data Connector (ADC) to instantiate the server side object, which leads to interesting persistence problems within MTS. These problems were overcome through the use of the MTS Stored Property Manager (SPM) and a set of proxy objects that manage the connection between the Internet Explorer clients and the persistent objects within MTS.  

Message Queue Based Data Loader

Created a set of NT services with Visual Basic that load and read messages to and from the Microsoft Message Queue (MSMQ) service. The loader process reads data files and loads records into a queue. The reader process reads the messages from the queue, parses the messages, and loads the corresponding records into an ORACLE database.

Crude Oil Assay Database & Emissions Calculation

Created a VBScript using ADO that obtains process data from an ORACLE database, and calculates an emission value using a fairly complex algorithm. The script automatically back fills data for the last 15 days during each run in case some historical data has been corrected. Created an SQR report that uses the calculated values to calculate and display a target unit throughput rate. This project also involved creating an ORACLE database for crude oil assay data, and a series of complex views that quickly accumulate the assay data into a form that is usable by the SQR report program.

Process Data Reporting System

Created a set of SQR function libraries and report template used to convert approximately 1000 reports from a UNIX system to an NT based system.  Created a DLL that implements the SQR API to run a report and create associated debug and error files.  Also created a set of MTS hosted server objects that use the DLL to control the SQR process execution and marshal the file back to a client object using DCOM.

Data Loader Execution

Created a set of VBScripts that control a set of NT based SQR programs that load data into an ORACLE database.  These scripts implemented a sophisticated messaging and error reporting sub-system.  Also created a script to fetch data from an FTP server and report on any problems incurred.

Loan Loss Forecasting Model

Designed and developed a regression based loan loss forecasting models based on credit card portfolio delinquency cycles. Received the most valuable player award for a 250+ person department for this and other contributions.

Process Management

Created several UNIX Bourne shell scripts that started, stopped and checked various processes.  These scripts were put on cron as well as added to the rc.d startup and shutdown scripts to automate the initiation and recovery of various UNIX processes.

Strapping Table Calculation Program

Developed a C program that creates a linear interpolation strapping table for a tank based on configurable tolerance levels. This program was used to generate the strapping table files required by a 3rd party yield accounting system for most of the tanks within a refinery.