Projects:SLUB
From graph-ix.net
The SLUB library information system project was realized during an internship course at university. The students who applied for this task where asked to develop a program permitting users to get a visual overview of the location of a desired book within the library. Six students were selected to realize the system using an appropriate technology for implementation. Within the project, I created the software architecture and developed the program code almost exclusively.
Contents |
[edit] Requirements
A set of requirements was established in coordination with the library staff and the project tutor:
- Three-dimensional overview over all building levels
- Search and display accuracy up to individual bookshelves
- Maintainability by library staff
- Provision for on-site technological constraints
- Web browser-based access
[edit] Selected technologies
As the search terminals within the libary were exclusively running Linux, 3D application browser plug-ins such as Shockwave were discarded up-front, since no Linux clients exist. The two remaining options considered were Macromedia Flash and JOGL (Java bindings for OpenGL). A prototype 3D engine was written to evaluate the speed of rendering in Flash, however results were far less than satisfactory. Due to technological constraints and user interface issues, JOGL had to be abolished as well.
To nevertheless fulfill requirements, the team decided to switch to a fixed-perspective 2½D realization based on Flash, as demands on the rendering engine would be greatly reduced.
[edit] Implementation
The implementation was realized using the object oriented programming facilities present in ActionScript 2. To achieve maintainability without the need to modify source code, all persistent data was stored in XML files. This data is read in by a generic streaming-loader class to provide user feedback on slow connections. Once parsed, the file contents are used to construct respective runtime objects. User interaction is then realized using the Model-View-Controller pattern.
Due to the ability to obtain close-up views of the building levels, each level was created as a 3D model in Alias Maya and then exported into a 2D Flash vector graphics file. This permitted a relatively high level of detail while maintaining a large amount of rendering speed. As the client machines were fast Pentium 4 PCs, sufficient CPU power was available as well.
[edit] Final application
To access the information system click here.
Sample source code of the XML parser is available here.
