1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Tonge, Rzepa, Yoshida, page 3

Internet-based Distributed Systems.

There exist several mechanisms that enable communication between distributed systems using the Web. CGI (Common Gateway Interface) is a specification first introduced with the NCSA HTTP server model in 1993. This enables information to be passed back and forth between a browser and a web server, and represents the simplest middleware for communication between a Web browser and some external program or database. This communication is achieved via a CGI application, a script or executable program that sits on the Web server and interprets data fields embedded in a client's HTML input form. The CGI application then spawns a secondary process, a program calculating some property or a database query, before returning the results as a reloaded HTML page. This mechanism assumes there is no permanent connection between the client and server, i.e.it is a stateless mechanism where new processes must be continually created on the server for each request received from the client. Such an asynchronous connection can add a significant load to the server when many client requests have to be processed. A significant limitation of the conventional CGI approach is the requirement for continually re-establishing connections between client and server, which presents a restriction for processes that require authentication, such as those involving electronic commerce orindeed in a teaching environment involving authentication. Various modified CGI schemes have been developed, but none have become standard.

The issue of Web-based authentication and its application to chemical object handling therefore requires a brief introduction to the development of Internet-based object computing. An object is defined as combining data and data-handling methods, with a separate interface to define how other objects are to interact with it, i.e. defines those methods that are available to the client and the parameters required. Objects can reside anywhere on a network, such that a client object does not have to distinguish between local and remote services, as they are assumed transparent, and therefore have the potential to become re-usable software components. This model represents a distinct advantage over the traditional procedural methods of programming. Java itself provides methodology that enables clients, principally in the form of applets, to communicate directly with remote systems. The first is the database connectivity specification JDBC, which allows SQL-based operations to be requested of a remote relational database by the client.

The second is a true distributed computing architecture - the Remote Method Invocation (RMI),3which permits client objects to invoke methods across a network in remotely defined objects, treating them as if they were local to the client. Object models can be explicitly passed between a server and a client using Java serialisation (to convert the object to a byte stream). However, this distributed computing model is not heterogeneous, and it is difficult to use the RMI to access remote objects which have been written in a programming language other than Java, in particular those derived from older legacy systems. Historically, a large number of these legacy systems have been developed within companies and represent a substantial business investment. While industry cannot afford to completely redevelop them in Java, equally neither can it leave them isolated from developments in Web technology. This problem is addressed with a technique known as CORBA (Common Object Request Broker Architecture) object wrapping, which provides an object interface to these systems. CORBA is distributed object architecture originally developed by the Object Management Group