The Developer and System
The Bernische Kraftwerke is the electricity supplier for the region surrounding the town of Berne, Switzerland. The production and consumption of electricity is monitored at a large number of switching stations. This monitoring information is transferred every 15 minutes to the central database. The information is then available over a Wide Area Network (WAN) for detailed on line and batch analysis.
The LSE project, although by no means a large software system, contains many features familiar to professional software developers:
- 100% availability required (hot standby).
- Loss of information = loss of income!
- Compatibility with the existing system (being replaced)
- Client/Server principles
- Graphical user interface (Motif)
- Relational database (SQL)
- Communication with existing systems (some archaic, e.g., telex)
- Maintenance and further development by the customer must be easy
The hardware configuration consists of a central cluster of VAX 4000 computers which access the database directly, and a collection of (VAX) workstations that communicate over the WAN with the "server" processes in order to manipulate the data as required. The operating system on all machines is VMS, and all programs are written in Ada (DEC Ada). The source files total approximately 80,000 lines of code.
Ada has been in use at Paranor since 1985; the staff has been both comfortable and satisfied using it. There is no longer discussion about programming language choice -- the developers always use Ada. And in the case of this project, the customer whole-heartedly agreed.
The development team consisted of four designer/programmers working reasonably independently. The main interfacing was done physically via the database and technically via common type definitions (Ada packages).
This project saw the introduction of a development environment (directory structure, command scripts) that has since been used and extended in later projects. The DEC Ada system of chains of program libraries is used in order to allow parts of the application (subsystems) to be developed 'privately' without disturbing the other developers excessively.
The project team also produced a system of developing VMS sharable images written in Ada, which, although it cuts out some of the checking done by the Ada System, is still verifiable using 'home built' support procedures and offers the advantages of 1) cutting down link time in development, and 2) easing maintenance of the production system.
Ada is right for the project because...
Based on an article by Alan Paterson, Paranor AG.
- It allows data abstraction + information hiding (packages, private types)
- It includes concurrency
- It allows for easy interfacing to other software such as SQL and Motif (Note: This is true of DEC Ada + Ada9X)
- It is highly readable
The original system, replaced by this Ada project, which ran on PDP 11/44, RSX 11 M, FORTRAN, required 9 minutes to process the data each 15 minutes. The new system takes 2.5 seconds!