HASSLE PROGRAM DEVELOPMENT


HASSLE Description


The Hierarchical Access System for Sequence Libraries in Europe is a network environment for remote asynchronous execution of jobs (e.g. sequence database searches). HASSLE is the first general, platform-independent implementation of a user-transparent access communication tool which is not targeted at a single application. HASSLE is successfully used by many EMBnet(European Molecular Biology network) nodes. HASSLE is written in ANSI C and runs on various operating systems. Reinhard Doelz wrote all the previous versions of HASSLE. The following prerequisites help to make HASSLE effective:



The HASSLE code layers


For this project, the HASSLE package has been broken into segments:

the protocol layers, the API (Application Programmers Interface), the vertical utilities (which allow access to variables from each layer without the need for global variables) and a verification suite (which allows for complete error-testing by inducing artificial errors from within the code, and testing that the program responds accordingly- this is imperative for testing such areas as network-problems). Since the design follows the layers of the protocol, if a layer has to be changed, for instance, a transmission protocol other than TCP/IP, then only the relevant layer needs to be modified


The purpose of the design is:



The HASSLE Documentation


The redesign is top-down: before any computer-language coding has been done, the package has been thoroughly documented resulting in a complete reference of the functions. The documentation is then converted into Postscript and on-line versions, the latter (Mosaic) allows effective “walking” within the code. Each function contains a detailed description including the purpose, where the function was called from, arguments needed etc. Such a design was needed because of the increase in the amount of code and the complexity with each successive HASSLE version release.

The format of the hypertext documentation consists of three sections:





Using this system, a programmer can, for example, lookup the description of any function by clicking the mouse on the function name, or can lookup exactly where in the program the function is called and what the next function call will be.


This graphical representation describes the history of HASSLE. As the amount of C lines C modules and C functions is increasing at such a massive rate between each successive version of HASSLE, the present increase indicates that without a completely new design, the next version of HASSLE could contain a possible 400 or more C functions. Consequently the new design has had the dramatic impact of reducing the number of functions to less than 100.


The design phase of the redesign is already finished and documented.

Most of the coding for the client is finished, furthermore due to the built-in verification, the modules which have been completed have also been tested individually for errors. Another design feature was to avoid the overhead of duplicated code for the client and the server (e.g. the communication programming). Since the client and server need the functionality of the lower layers of the design, both access the same modules resulting in bonus of a portion of the server programming is already written and tested.