Bradley Schatz, Distributed Systems Research CRC, Queensland University of Technology Bradley Schatz
Bruce Davey, Physiology and Pharmacology Department, University of Queensland, Qld 4072, Australia. Phone +61 7 3365 1751 Fax: +61 7 3365 1766 davey@plpk.uq.oz.au
World Wide Web, GUI, Web Applications, Content Generation, Servlets
This paper describes the Hive Application Framework and reasons for its development. Hive is a portable application framework intended to simplify the task of dynamic content presentation on the World Wide Web. Implemented as an Object Oriented abstraction for web application development, providing a web publishing framework encapsulating the functionality of a HTTP web server, and a GUI framework for presentation of media. Our goal is to provide a framework which seamlessly integrates a composition model of media presentation with scalable performance and future extensibility. This model has successfully been applied in practice to form a group communication system for the University of Queensland's Department of Physiology and Pharmacology. This paper will present the various design issues faced in creating a dynamic web application, and how they are addressed by OOAD methods and the Hive framework.
This article describes the development of the Hive Application Framework and how it was implemented in the Physiology and Pharmacology Department at the University of Queensland.
The Physiology & Pharmacology Department at the University of Queensland has for some years been trying to find solutions to the problems brought about by the increasing student numbers in its courses. In 1996 one such course had over 1200 students. The problems addressed included:-
With the large numbers involved and in light of the large investment this department has made in Information Technology, it was thought that using IT in some form may provide solutions to some if not all these problems as well as make more use of the Technology.
In 1995, the department trialed a student bulletin board system based on a Hypercard stack. The purpose of this bulletin board system was to provide a system where a student could post a question to an academic and at some later time come back to read the answer. By using a Hypercard stack and making the system run from a server, students could access the system from most of the computers in the department and check on answers. Using the stack method meant that all students could read both questions and answers, thereby reducing duplication and, as we found, form the basis of a study guide. To refine the system, different stacks were built for each subject as well as a general stack for student to student communication.
The system worked by allowing a student to open the stack and either browse the stack or insert a new card to ask a question. Once a question was entered it could be locked to prevent tampering. When an academic checked the system, they could answer the question and lock the answer. For the purposes of evaluation and statistics, an Authorware shell was built which could be wrapped around the stack to provide username and password authentication and collect statistics.
On its own the system worked well. The problem arose when run from the server. Hypercard is not ideal for multi-user environments and we experienced many crashes requiring rebuilds from backups. There were students with enough knowledge of Hypercard to be able to break into the system and cause some problems and finally the system had no easy method for graphics to be included in answers. Another issue which arose from the statistics gathered was a problem with the computer literacy of students. A surprising number of students were reluctant to use the system because of their own competency with Information Technology. This problem seems to be resolving itself as subsequent studies have shown a change in the IT skills of first year students.
Because of these and the problem of access for platforms other
than Macintosh or access from outside the department it was
decided to develop a bulletin board system utilising the World
Wide Web.
A web based system was developed and run during 1996 using CGI
scripts to run perl programs on the Department's server. This
solution provided a vast improvement in the stability of the
system, allowed graphics to be inserted in answers easily and
better statistics to be gathered. It also opened up access to
students from any internet access point and by
any platform capable of run a web browser. This meant they could
go to the library, a college or use a home dial up connection to
access the bulletin board system. The results showed marked
improvement in acceptance of the system. The problem which caused
most consternation was the speed of response of the system.
Running on a well used server and having to run perl scripts for
every page meant response times were sometimes unacceptable.
As a result it was decided to commission the development of a new system with a similar functionality but with greatly improved performance. This lead to Bradley Schatz developing the Hive application framework. This system has been implemented in the Department of Physiology and Pharmacology at the University of Queensland in 1997. This system works in a similar manner to our previous web version, allowing for user authentication, significant statistics gathering and an easy to use and understand interface.
A few extra options were added. Each subject board now has an index of questions, listed by topic. The statistics can now easily be imported into a spreadsheet for analysis, and management is easy. It also can be run from a lower specification server, which we have done, thereby removing some of the load from the main Departmental server. In this configuration the response time is very quick and further data gathering throughout the year should give us an indication of how well the new system is received by the students.
The Student Bulletin Board System as running in the Physiology and Pharmacology Department of the University of Queensland provides a readily accessible, subject oriented communication platform for students of the Physiology and Pharmacology Department. The system is advertised and promoted to all students within the department with extensive notes in prac books and operational explanations at early lectures. The students are encouraged to use the system to access lecturers for explanations to problems arising from prac classes or lectures. A student news bulletin board is provided purely for student to student communication.
Operation is as simple as possible within certain constraints. For open access boards, the student can go directly to the board required and browse existing questions and answers or they can ask a new question. Questions can be browsed by sequential searching or via a list page where each question is listed by topic. Forward and back buttons are available and a link to the subject selection page is also always available.
A login page is provided for access to those boards which are required to have user identification and to allow authentication of academics and system administrators. In general academics have access to answer questions and to insert graphics. Administrators have authority to create boards and control access as well as collect statistics. These access privileges are easily administered through an access control page for each board.
To gain useful statistics, it has been our practice to impose login access to most boards, this allows statistical data to be analysed against student results, subject streams, course or year. It also allows us to assess the usefulness or otherwise of the entire system.
For AUSWEB97 delegates, access to the University of Queensland Physiology and Pharmacology Department Bulletin Board System at URL http://bruce.plpk.uq.edu.au:8001/BulletinBoard will open with the greeting page and delegates are able to click on the continue link to access the system as an anonymous user. Here you will be presented with a list of the boards available to unregistered users. Following any of the links will bring up the most recent page of the board selected. There are buttons for moving around in the board to browse questions, changing subject (read board), log out, add a question or jump to the index of questions for this board. Academics are presented with a few extra buttons to allow answering questions and delete questions. System administrators are also presented with buttons to control access and obtain statistics. Most of the administration of the boards is carried out via web pages presented when logged in as an administrator. Some of the higher level administration tasks (like creating new boards, deleting boards etc) are still being carried out in a shell on the server but are expected to be included in web based administration pages in future versions. Some sample boards will be created for AUSWEB97 delegates to use during the conference.
This section describes the Hive Application Framework and reasons for its development. Hive is a portable application framework intended to simplify the task of dynamic content generation on the World Wide Web. It is designed to replace the use of CGI scripts to create complex web based applications and interactive webs as well as simple Form processing, with the advantages of scalable high performance and simple debugging. Hive is envisioned as a tool for creating server based multi-user applications that use a client's web browser as a GUI terminal.
Hive exploits native web server API's, or an integrated webserver to give compiled language performance with the ease of cross platform portability. User state is simple to maintain as Hive applications exist as long running processes (UNIX daemons). Most importantly, Hive is free.
Hive can be used to create Servlets that complement web server functionality, implementing new web services, multi-user applications which can use a browser as the user interface.
The Common Gateway Interface (CGI), superceeded by a plethora of disparate server API's, has provided an implementation of dynamic content creation, but suffers from focusing the creator's attention upon the low level HTTP protocol. Hive provides a HTTP abstraction, and a GUI framework (similar to Smalltalk MVC, MFC, OWL, etc) which simplifies the creation of user interface components. Low level HTTP and HTML functionality is encapsulated in a framework of re-usable, generic objects which can be used to create both single and multi user applications.
Hive is a set of application and user interface objects which move the focus of programming web based applications from parsing of requests and creating responses (the basis of the HTTP protocol) to events generated by the various HTML, JavaScript, and Java user interface elements.
Link to Hive home pages is at http://bruce.plpk.uq.edu.au/HiveOn analysis of the requirements outlined above, an object model representing the data collected and presented by the bulletin board was created. These include Folder, Document, Person, Authorizer, Date, Section, and Statistic. These objects were implemented as persistent objects using the Shore Object Database, which was selected for its ease of data storage, random accessability, free availability, transaction based nature and C++ binding.
Next, the views which the user uses to manipulate and read the data within the database were identified: Folder Contents View, Folder Selection View, Edit Document View, Document View, Edit Answer View, Statistics View. These views were implemented as subclasses of the Hive class document, which provides a simple interface to menus and dynamic content within a web page. Standard GUI components were used to compose views of the persistent objects identified in the previously.
User state is managed by allocating each user its own URL, and dynamically generating the necessary views dependent on the user's state within the application.
Hive can be used to create Servlets complementing web server functionality, implement new web services, multi-user applications which use a browser as the user interface; etc.
Included in the distribution, are several example servlets, some of which are accessable by the following links:
The hive engine represents a useful and cost effective tool for developing interactive web based applications. Implementation is easy and development of applications relatively straight forward. Performance is the key factor to consider when developing web based applications and our experience shows Hive to provide the best performance over the web of any of the methods assessed. System hardware requirements are minimal and development cycles are short. In essence, using Hive has provided us with a system which addresses our performance issues, development timeframes and on-going management concerns.
Also, the information bases developed have a lifetime and extended usability due to the Object Oriented model.
Bradley Schatz, Bruce Davey © 1997. The authors assigns to Southern Cross University and other educational and non-profit institutions a non-exclusive licence to use this document for personal use and in courses of instruction provided that the article is used in full and this copyright statement is reproduced. The authors also grants a non-exclusive licence to Southern Cross University to publish this document in full on the World Wide Web and on CD-ROM and in printed form with the conference papers, and for the document to be published on mirrors on the World Wide Web. Any other usage is prohibited without the express permission of the authors.