Gregory A Edwards, PMP
Project Manager/Architect/Software Engineer

Managed Projects

Server Farm Load Balancer/SOA Platform

The N-tiered system architecture incorporates a master names server, server process managers, client and server APIs, and CORBA to provide a Service Oriented Architecture platform. The master names server assigns services to client requests at the functional level based on server efficiency. The master names server manages a dynamic pool of persistent processes distributed across the server farm based on service demand. The management of active processes is controlled by the server process manager, on a given server, under the direction of the master names server. Each server process provides a set of related functional services that are registered with the master names server. Each server is independently configurable and dynamic to the overall system in both services provided and farm participation.

The network topology isolates the webserver(s) from the server farm through dedicated communications paths protected by a firewall. No direct back office support is available to the webserver without services provided through the names server over the dedicated communications link behind the firewall. The servers that participant in the server farm use 3 physical communications paths. Farm services, database services, and intranet command and control are isolated from each other physically and logically.

The master names server supplies a generated IOR that provides a CORBA link for client communications. The farm server process managers register their availability and IOR with the names server. A server process registers its IOR with the names server as being owned by the process manager that created it and in turn registers the named services (functions) that it owns. The master names server keeps a configurable pool of ready processes to insure that any service request can be assigned an idle provider process. Services are assigned the currently most efficient provider. The pool of ready processes are managed in relationship to the length of idle process time and service loading.

Real-Time Operating System Kernel

Unix like real time embedded operating system kernel for a Special Services Remote Test Unit. This product is a proprietary multi-card system with the operating system stored in ROM on the CPU card. The operating system is a non-preemptive multi-tasking operating system that uses FLASH Memory to store application programs and battery RAM for system configuration data.

The kernel includes a power on bootstrap loader to initialize the CPU card, bind the memory maps, and activate the operating system. The kernel supports standard POSIX task management, memory management, and I/O interfaces.

Operating system resources are provided to the application programs through standard library interfaces mapped through a system jump table solution. Drivers provided by the operating system include DSP card controller, FLASH controller, battery RAM controller, communications port mapper, on board modem controller, Kermit data transfer controller, system latch controller, and a system debug monitor.

Automated Extract, Translate, Load (ETL) System

Extract, Translate, Load (ETL) solution to provide Point of Sale audit data collection and delivery. The architecture incorporates distributed load balanced process management, fault tolerance, error recovery management, results reporting, and IPC management. The ETL process is part of a major project to redesign the enterprise sales data processing systems. The ETL portion is responsible for processing audit files from remote locations using a variety of POS tools resulting in various data file formats. The ETL process utilizes dynamically mapped rule sets to define the extraction process for the various delivered formats and a second rule set to define the formats and destinations used to populate the enterprise databases.

The ETL process design incorporates concurrent processing, multi-tasking, load balancing, IPC, and shared resources to accommodate the large volume of data and manage system loading. The N-Tiered design provides APIs that separate the general application logic from the details of resource usage and management. The design provides shared libraries and shared memory to reduce the resources necessary to process the large volume of source files simultaneously through concurrent processing.

The ETL process flow is incorporated into a 3 phase design to separate the logical components content processing. The first phase is responsible for identifying the source of the data and collecting the mapping rules required to parse the content. The 2nd phase is responsible for parsing and validating the data. The final phase is responsible for populating the databases as directed by the destination mapping rules. Each phase is processed by a program designed specifically for the required task. The parsing program is designed to parse content based on the rules so that any new audit file format can be introduced into the system without modification to the process phase programs. Shared memory is used to pass results from one phase to the next. To maximize performance and minimize resource usage rule sets are cached in shared memory as their need is discovered and flushed from shared memory when resource thresholds are approached.

The process manager incorporates a load "bubble" design to maximize process pools for each phase of content processing during burst periods. This design prevents overloading of the database server while maximizing resources that are less stressed, such as CPU, file system, and memory. The basic concept of the design allows data files detected in the sweep of the file delivery home to add as many processes as are needed to the 1st phase process pool, within threshold limits. As data sets complete the first phase they are assigned to processes in the 2nd phase pool. When the process pool runs out, the pending data set waits. As data sets complete the 2nd phase they are assigned to a process from the 3rd phase pool. When the collected data file list empties, and the 1st phase load requirements began to taper off, the load bubble migrates to the 2nd phase, and later to the 3rd phase. Each phase can be configured to control the minimum and maximum load percentages. In addition to controls over each phase, the overall ETL service can tuned through the configuration files During idle periods the process manager steps down the number of ready processes in each pool to the lowest threshold.

Call Center Management System

Redesigned turn-key Call Center Management System. This is a Client/Server solution consisting of 26 server side managed processes to provide client data collection and management, call center work distribution management, results data collection and management, and automated system maintenance. A system process manager/scheduler provides for unattended system operations and a user interface provides system configuration management and operation report generation tools. The system uses a relational database consisting of over 125 tables for client source data management, results data collection, and system configuration management. The User Interface is designed to be accessed from both Windows and Unix workstations.

The system was designed and developed around a three tier software design model. The system includes 10 shared libraries that provide an API between low level system support and the top level application programs. Library support includes process logging management, memory management, shared resource management, file management, and data format disassociation for both client source data and the database architecture. The three tier model allows for system upgrades to be performed without taking the system offline and provides a single point of change if and when structural changes are made to the underlying data models.

The original software was a collection of 17 Korn Shell programs using SQL command streams executed as cron jobs. The goal of the initial phase of the project was to evaluate how to best stabilize the system, provide process and data audit trails, improve overall performance, and maintain an in production presence throughout the project. The first phase of the project was completed in 3 months and produced a base document set which included a system overview, project proposal, project plan, and data dictionary. The remaining phases of the project spanned over 2 years in which the call center had less than 1% down time due to the migration. The system reliability went from daily production problems to 100% issue free center operations.

Massive Multi-player Online Real-Time Strategy Game

The game features 24/7 continuous play and interactive Player vs Player gaming. Interactive game management is provided through any HTML 4.01 compliant browser acting as a Thin-Client. The game play is continuous in a persistent universe where the game pieces act under the direction of orders issued by the player. This is a space based game where the player controls 1 interactive ship, a fleet with 4 types of automated ships, and a home planet with a living population and manufacturing capabilities. The player directs fleet operations that include movement, mining operations, and resupply operations. The player manages alliances with other players and builds a database of game elements discovered from exploration. The interactive interface provides navigation control, combat control, player to player communications, and cargo management for direct Player vs Player interaction.

The game incorporates distributed processing, shared memory, and an extremely efficient relational database design capable of processing a large volume of concurrent transactions. The persistent game pieces incorporate both timed and proximity detection event activation triggers. The interactive player session interface features framed control panels with event transition timed refreshing. Interactive player control panels are generated by look-ahead event processing, transferred to a directory created for the user session on the webserver, and delivered to the browser as static pages.

Online Safe Deposit Box

This application is a secure online safe deposit box for personal information needed in case of emergencies. The application provides secure access to information with any HTML 4.01 compliant browser. The N-Tiered solution incorporates SSL access, non cookie user session management, binary CGI back office gateways, relational database, and CORBA communications over an SOA load balanced server farm. The login process features standard user/password access with an additional question/answer challenge gateway.

Interactive Voice Response Inventory Ordering System

The application provides a 24/7 scheduling solution for gas station delivery orders. The interactive voice response application allows a station to access the system and schedule a delivery by volume and date. The system allows up to 20 interactive callers and 8 user terminals simultaneous access to product information and delivery scheduling. The application is built on IVR vendor equipment supported by a Real-Time Unix operating system kernel.

The application call processing manager uses a multi-level state machine solution to provide round-robin service for interactive caller prompt delivery and response processing. The design includes a proprietary database management system, user interfaces, automated system backups, mainframe database update controller, report generators, and system activity logging facilities.

Electronic Document Vault

The system is a layered Interleaf application providing a complete tool set to control the checkin/checkout process of engineering documents. The system provides a major element of the corporate ISO-900x strategy. The system provides user interfaces from either integrated Interleaf Drop-Down menus or a GUI Browser.

CAD Data Extraction

Design and analysis programs to support an in-house product engineering/manufacturing process automation enterprise solution. This system consists of over two dozen sub-systems that provide automation to the design and manufacturing process of OEM products. This system is an Enterprise solution operating in a Client/Server environment supporting Sun and Windows NT workstations. The system extracts design data originating in CAD tools and stores the results in a relational database. The system then provides the data used drive the manufacturing process.

Managed the conception, design, implementation, and deployment of a library tool set to encapsulate and standardize database access, CAD data extraction, and report generating processes. The tiered approach allows programs to share solutions, reduce development time, and create a single point for data layout changes.

Managed the conception, design, implementation, and deployment of departmental project documentation standards based on Full Life Cycle Methodologies. Once the standards were deployed and adopted by the team overall productivity was increased while overlapping development efforts were reduced. The standards lead to a reduction in full staff attended meetings and an increase in shared code base usage.

Other Projects

Point of Sale Device Transaction Manager
Real-Time Interactive Voice Response Message Delivery
In-Store Check Verification System
Bellcore compliant MML Communications Controller
Remote Database Update System
Process Swap Manager (non multi-tasking OS)
Collectibles Inventory and Investment Management Application
Distributed Job Process Manager
HDLC Communications Controller
Automated Office Interface Controller and Simulator