Selected Technical Application Development Projects
Signature Loan J2EE Intranet :
Signature loans are low interest, company-backed loans to
employees, with loan limits set depending on an employee's
length-of-service. The intent of this application was to
enable corporate employees to view their existing signature loan
balances on-line,
and to allow qualified employees to calculate and electronically
submit new loan requests to loan administrators.
Administrators then reviewed and either approved or rejected the
applications based on their merits, and so notified the employee
electronically. High-level application use cases and their
interactions are shown at the left. At the right is what's
called a VOPO diagram for the application, a view of participating
objects. Represented there are three development
layers: presentation, business logic and data storage. The
separation of the design into these components facilitates
application re-use and isolates the impact of user interface changes
-- the component most changed in technical applications. I
developed and unit / integration / stress / throughput tested this
application in an IBM VisualAge Java environment, and ported it into
an existing Microsoft IIS / IBM Websphere / Oracle database
production environment. This application served as a template
for many other, subsequent Human Resources intranet applications.
Point-of-Sale J2EE
Enterprise Application:
The problem was to develop
point-of-sale (POS) applications that displayed standard terminal
sales information along with "intelligent" advertisements
based on corporate marketing sales campaigns and knowledge of
specific customers. I developed data transfer protocols, data
ER diagrams and managed a part of the group technical
development. High level functional/operational requirements
included:
- POS applications must run in an IBM 4690 Operating System environment
- POS applications must not intrude on the existing terminal sales applications
- On failure, POS applications must quickly revert to existing terminal sales application
- The display format of sales information and ads must be determined by the POS corporation
- Accounting information on ads displayed must be readily available to the POS corporation
- Multiple POS displays at each station may be necessary
The high-level use case model is shown at right.
Internet
/ Extranet:
The Company realized that the Internet represented a fundamental
change in how information flows between the Company, its employees,
its vendors and its customers. The Company had no formal
methodology for implementing or overseeing corporate Web project
approval, development, maintenance or security. I was
installed as the Web Development and Maintenance Manager with the
following responsibilities: (1) develop and communicate a common
Internet/extranet/intranet infrastructure across business units, (2)
monitor
and manage the growth of Web applications across business units,
(3) analyze project needs, determining budgets and resources needed
to meet objectives, (4) collaborate with business units to
prioritize, approve and fund Web-related development and
maintenance, and (5) provide Web-related career development,
employee performance management, hiring and termination. In
the capacity of responsibilities 1 through 4 and in consultation
with business units, a high level corporate
Internet/intranet/extranet prioritization and development procedure
was implemented. Some of the phases implemented are shown
above left.
In conjunction with
various in-house Information Technology groups, matching runtime
development, test and production infrastructures were architected
and implemented (part of a well planned
staged, multi-platform development environment). The test runtime topology is
shown at left. To assist in monitoring and maintaining the
corporate Web enterprise architecture (to meet established business
requirements), various off-the-shelf
software components were purchased, some of which are shown in blue
in the Capacity
Planning figure above- right. The generalized IT categories
into which these products fall are indicated there in red.
The ultimate purpose of this displayed capacity planning methodology
was to create an IT Enterprise Architecture that meets business and
customer requirements (including an advanced Customer Care facility,
a sample interaction diagram for which is shown at right). See
my glossary for
definitions of terms used in these figures. In this
Internet/extranet environment, Company Web solution providers
(technical, content and design) primarily (but not exclusively) used
some combination of HTML, DHTML, JAVASCRIPT, ASP, JSP, CFM, Flash,
XML, SOAP, JAVA, PERL, and SQL -based tools to build solutions.
I touch on some of the resource management aspects of this
Internet/extranet development environment on my Agile Project Management
page under "Agile Application Development", where you can also find
a diagram of the general organizational and technical structure.
Simple Simulation :
To take my static, Monte Carlo business spreadsheet simulations
into the dynamic, discrete event environment I architected and
developed Simple Simulator (SIM²) in the mid-1990's.
(Some of the shortcomings of static spreadsheet simulations are
touched on in A Business Cash Flow Model.)
The application object model is shown at the left. At the
right is a listing of the application pseudo-code. SIM²
was Microsoft Windows-based, had both batch and interactive
"drag-and-drop" interfaces, was coded in Digitalk
Smalltalk and Microsoft C++, and employed many of the technical
capabilities present in today's commercially available simulation
packages:
-
Analysis Features:
-
Object oriented "Process" programming approach with optional CRN variance reduction techniques.
-
PMMLCG random number generator with optional multiple streams and random number repeatability.
-
Exponential, Gamma, Uniform, Normal and Sample Space input probability distributions.
-
Multiple simulation replications with automatic data generation and segregation.
-
Arrival, in-service, out-of-service, working hold, working wait, idle wait and client split events.
-
In/out-of-service probabilities based on calendar time.
-
Model size limited by available memory, disk space and analysis time.
-
Random Number Generator:
-
A Prime Modulus Multiplicative Linear Congruential Generator based on Marsh and Roberts' UNIRAN generator.
-
Can produce 21,474 independent streams of 100,000 random numbers each.
-
Optional random number repeatability, achieved by resetting each stream's seed before replication startup.
-
Programming approaches:
-
Object oriented "Process" approach scripts the activities of each individual simulation object (client, server, queue, connector) according to user input parameters.
-
Synchronization of alternative system configurations by dedicating a different random number stream to each of the seven SIMē input random number variate types (often referred to as the Common Random Numbers (CRN) variance reduction technique (VRT)).
-
Inverse transform methods for generating random variates from a given distribution.
Document/Information Management
:
"Finder" was an interactive application that I
architected and coded (Microsoft C) to search for occurrences of
specified words and phrases in the 50+ part, 1000+ page Federal
Acquisition Regulations (FAR) (and in the similar Defense
FAR). It made extensive use of doubly linked lists of lists
(ref. figure at left), providing techniques for both an
"immediate" search on relatively unique strings, and an
"extended" search, compilation and set manipulation (e.g.
union and intersection) of (D)FAR parts that had common words or
phrases. Displayed information included (D)FAR part numbers,
the number of string occurrences in each part and the textural
content with the search string highlighted. The Finder restart
facility allowed users to continue searches started during an
earlier session, and provided a system-crash safety net.
"AI²MS" was a highly interactive document management
application that I architected, partially marketed and coded
(Vax C, Digitalk Smalltalk), and technically managed. A high
level AI²MS VOPO diagram is shown at right (a view of
participating objects). Prominent in that
diagram are seven important components: Scan Stations, a scripted
Staging process, an OCR process or processes, one or more automated
content Filtering processes, Edit Stations, a Local Database, and
External processing with information storage. Scan Stations
were of three types -- paper, microfiche and microfilm. Each
Scan Station type had its requisite, necessarily different, scanning
component, but the software supporting all types was the same.
All incoming scan "jobs" were pre-scripted according to
either predetermined (if appropriate) or on-the-fly templates that
were associated with specific customer needs and/or input
quality/type. Scripting permitted the use of a Staging process
to direct/track jobs through the other components and the overall
management process. Required OCRing was scaled by adding more
OCR processors (perhaps necessary to maintain a given throughput
level for complex or "unclean" scanned input).
Content Filtering processes were similarly scalable, and provided
things such as intelligent and automated scaling, rotation,
white-space detection, context parsing, spell checking and bitmap
color detection. Edit Stations provided manual access to any
necessary "after filtering" results, reacting to flags
that might be raised by those processes. A Local Database was
closely integrated with job scripting and staging, OCRing, manual
editing, and process filtering. Hooks were provided for
integration with customer databases and subsequent external
processing.
Site managed with MyEclipse, a multi-language, multi-platform IDE
