OOD on the AS/400
(Object Oriented Development)
By Dave Knott
The members of TUG are once again pleased to welcome Dave Knott of IBM Canada, who will take us on a thorough exploration of AS/400 application development concepts using object oriented techniques. Following his presentation, Tom Dzorevski (also with IBM Canada) will demonstrate a real application created with these methods - the NHL Draft.
NHL Entry Draft was a show case of IBM Client Server technology
with the AS/400 Advanced Series at the focal point. In a matter
of six short weeks, an industrial strength Client/Server application
was completed from initial request to production by a team of
two. This article describes the Object Oriented Rapid Application
Development of the application and the technology used.
Object-oriented modeling techniques were used in
both analysis and design phases for the application. Team members
attest, "We implemented a 3 layered architecture which contributed
much to the underlying stability of the software amidst the very
frequent requirements changes and modifications typical of Rapid
Described here is the approach taken to design and
implement this Client/Server application for scalability, providing
effective performance in production for multiple clients.
The National Hockey League had been looking for some
years to develop an Information System that would effectively
support NHL team management during the yearly draft. The NHL
had an AS/400 application that tracked and recorded the draft
activity, but the only interface to this system for NHL team personnel
were the printed reports provided at the end of each round.
In mid-May, the NHL asked IBM to be the Information
Systems provider for the 1995 NHL draft to be held on July 8th.
A new Client/Server application was requested to provide information
on the players, draft picks and trades to the teams and the media.
In assessing the application, there were a number
of factors that determined key design choices:
choice of VisualAge and Smalltalk as the RAD tool.
an intuitive GUI interface was required, and frequent reviews
were with representatives from the NHL on the effectiveness of
a polling mechanism was implemented to refresh the display at
a frequent interval.
instrumentation was built in to the application to allow run-time
tuning changes to parameters.
Three critical sessions were planned with the customer.
The first was an initial requirements gathering session with the
NHL's AS/400 development team, end users, and the IBM C/S development
team. The object was to clarify the business objectives, identify
the scope, and determine the assumption and constraints. A requirements
prototype was developed within 2 weeks with AS/400 data access
The purpose of the second session with the customer
was to identify additional business requirements and validate
the technology used. This was followed by more detailed discussions
of the business process inherent in the NHL draft, target usage
of the application and previous experience in attempting to provide
an information system to NHL team management.
The third and final session before deployment had
two key objectives. An integration test between the C/S application
and the NHL's RPG draft management application, and the user's
acceptance of the application.
In parallel with this activity the team did investigation
of proposed technical implementation of the requirements using
this requirements prototype. They identified two areas where they
would require additional parts and contacted the vendors for those
parts (both participants in the IBM Object Connection program)
for supply. Upon receipt they assessed these with some trial
implementations and determined that they would make use of the
ProParts package from Dakota Technologies.
At this point they consciously invested time in developing
an analysis model that described the problem domain (the NHL draft
business process). This analysis model is shown in figure 1. The
analysis model of the business process provided a remarkably stable
base for the object model layer of the application throughout
many subsequent changes and refinements to the application function.
The application was designed in 3 layers: view, object
model, and service. The view layer was responsible for displaying
the information to the user from the object model. The object
model was a representation of the business problem to be solved.
The service layer was to ensure that data in the object matched
the information on the AS/400 database. Layering the application
in this fashion, allowed changes be to made in one layer with
out impacting the other layers. For example, the object model
layer remained static after the first week of development even
though there were constant changes in the database and view layers.
In the service layer of the application, extensive use was made
of the rich set of VisualAge parts available for working with
the AS/400 as a server. These include the ability to represent
an AS/400 database record format as a Smalltalk class and to perform
queries, searches and record reads against an AS/400 database.
The application's core function was largely developed
in three weeks, enabling continuous review and refinement with
the National Hockey League over the balance of development. In
parallel, there was extensive testing and resolution of problems
found. Scalability was simulated by changing polling rates and
by leaving the application running over extended periods and reviewing
instrumentation logs for communication errors. This technique
uncovered a critical error in the client/server implementation
that would otherwise have only been discovered during the actual
The final step in the application was to package
and deploy the application. Further stress testing using the instrumentation
built into the application was performed at the arena where the
NHL Draft was to be held over the two days before the event. Code
updates, configuration information and data (player bitmaps, team
logos) were applied up to the day before. With over fifty client
PCs, the team used shared folders on the AS/400 to carefully manage
the propagation of these changes to each client machine.
A new step in the process of development with a truly
Object-Oriented tool is to establish what ready made parts are
available for use and/or extension. In addition to the parts available
with the VisualAge product, the developers made extensive use
ProParts from Dakota Technologies.
The primary part used in this package was the Bitmap part. It
extended the base VisualAge functionality in certain specific
ways that were important for our application (scaling of bitmaps).
The AS/400 Parts feature of VisualAge.
These parts provide access to a very complete set of the application
function of the AS/400 (database access, data areas, program call..
). What is really strong about the parts however, is the rich
suite of behavior provided with each part. This allows a client/server
developer using VisualAge to make use of the rich function of
the AS/400. For example, to implement the broadcasting of information
from the AS/400 to 50 Client work stations the team used a supplied
part that uses DDM to communicate with the AS/400 Database.
The NHL Draft application is an example of successful
Rapid Application Development of a Client/Server application using
IBM VisualAge. Acceptance of the application by the NHL teams
was very positive and it is expected that the NHL will continue
to use such an Information System. In developing a production
Client/Server application, having an effective set of parts that
provide robust communication with the server is invaluable and
the AS/400 Parts for VisualAge were key to our success.
User training was limited to providing a six page
booklet showing the application Views and associated function.
Feedback on the usability of the application was very positive.
Much of the success of the application must be credited
to the committed involvement of the NHL Information Systems staff
in the design and development.
Crucial requirements would have been overlooked at
the requirements review if not for the NHL statistician, who pointed
out the critical requirement that the information displayed by
the application must always be ahead of the information posted
on the arena board. A typically passive client design was changed
to incorporate polling and real-time update.
Finally, it was noted that a small effective team
is essential for Rapid Application Development. Decisions had
to be made quickly and effectively during development, with no
time for formal process or extensive debate.