|
|
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
|
|