Tak Woo,
Email: t.woo@dstc.edu.au
Home Page:
Tak Woo [HREF 5]
CRC for Distributed Systems Technology,
Bond University, School of Information Technology
Gold Coast, 4229, Australia
Keywords: World-Wide Web, Middleware, CORBA, DCE
Introduction
The emergence of middleware systems for distributed systems is
seen to be an extensible and empowering technology. The
World-Wide Web (WWW) [Berners-Lee et al, 1994] can capitalise on this by
providing access to distributed system services via this middleware
and access of WWW services to distributed
systems. The integration of such middleware systems, particularly
OSF's DCE (Distributed Computing Environment) [HREF 6, OSF 1993]
and
OMG's CORBA (Common Object Request Broker Architecture) [HREF 7, OMG 1993], into the WWW will provide the following benefits:
access to a larger range of services
access to middleware services without the necessity of installing and managing that middleware system.
The integration of WWW and middleware systems will enable the two-way provision of services:
WWW clients can invoke middleware services
middleware clients can invoke WWW services.
This paper will concentrate on the former scenario. With the proliferation of services on both WWW and middleware, the integration will see the overall enhancement of service provision in distributed environments.
An Architecture for Integrating WWW and Middleware
Figure 1 below illustrates our proposed architecture which enables WWW clients to access and invoke middleware services. In the architecture, the clients interact with the WWW, which in turn interacts with a range of
middleware systems which provides access to the distributed system services.
The Type Manager and Trader are two important common services and are
discussed in the next section. This layered approach, with the combination
of middleware gateways, provides the underlying framework for the architecture.
Type Manager
A type manager [Biggs et al 1994] is an object which
stores knowledge about types, e.g.
their definitions and the relationships between them. At its interface,
it provides operations to manipulate this knowledge.
In the context of this paper, we are particularly interested in the
browsing and selection of service types, and in accessing the corresponding
interface type definitions. Interface type definitions are usually expressed
in an Interface Definition Language (IDL) such as DCE IDL
[OSF 1993] or OMG IDL [OMG 1993].
Trader
A trader [ISO Trader 1994, Beitz and Bearman 1994] stores
information about service instances.
It gains this knowledge from service providers exporting a description
of their respective service.
The trader provides potential clients an import operation
which returns the interface identifiers for services matching the client's request.
Integration Protocol
To integrate WWW and middleware, there is a need to define the
interactions between the various components. Therefore,
we introduce the following integration protocol, which is illustrated
in Figure 2:
get service type
WWW client contacts the type manager. The clients browses and
eventually selects a service type.
get interface identifier of selected services
WWW client contacts the trader. It requests services which match the selected
service type and additional parameters of the import operation.
The user selects (or lets the trader select) one of the matching services.
As a result, the client has an interfaces identifier of the selected service.
invocation (WWW)
To invoke an operation, the user has to select an operation from the
ones provided at the interface and to enter values for the operation's
parameters. Therefore, an appropriate form (in HTML format) is created
from the interface type definition.
Once the form has been completed, the user can invoke the operation, i.e.
sending a request to the WWW server which provides the gateway to the
middleware domain. Besides the operation name and its parameters, the
request has to contain the interface identifier of the selected service.
invocation (gateway)
To provide the gateway, the WWW server has to act as a middleware client.
To allow the standard WWW server to facilitate this, it has to invoke the
middleware client via the Common Gateway Interface (CGI).
Where the appropriate client comes from
will be discussed below.
invocation and termination (middleware)
The middleware client invokes the middleware server.
It receives the resulting parameters and hands them over to the
gateway. This has to happen via a pipe, eg standard output, and
requires a certain format. It seems appropriate that the middleware client
should already convert the parameters into HTML format.
termination (gateway)
The gateway receives the result in a certain format.
If the format is not already in HTML, then it converts the result to HTML.
termination (WWW)
The WWW clients displays the results as received from the gateway.
Step one and two are optional. If a user already knows which
service type he/she wants to use, then the get service type step can
be skipped.
If a user already knows about the interface identifier where the
services is provided, then the get interface identifier of selected
services step can be discarded.
Middleware Client Generation
The above integration protocol does not specify where the middleware clients
are coming from, nor how they work.
We have identified the following types of middleware clients:
specific clients
A specific middleware client serves a finite number of
interface types. Such clients can either already exist (static clients)
or be created on the fly (dynamic clients).
Dynamic clients can be compiled from templates and the interface type.
In the following section we will explain how to create dynamic clients
with DCE.
generic clients
A generic middleware client is able to invoke any operation on any interface.
The implementation of such clients is supported by CORBA's concept of
a dynamic invocation interface [OMG 1993].
A DCE Prototype
To demonstrate the integration protocol described above, a
DCE CGI gateway has been implemented for a DCE Browser
Marco [HREF 8].
Figure 3 illustrates how this works.
Through HTML forms, the DCE CGI gateway invokes the middleware client to
query DCE servers for their interface details. A form is then
displayed for a user to choose a particular RPC operation in order to
obtain more details on it.
A dynamic form with fields for filling in the necessary
parameters to invoke the selected RPC operation, is then generated.
At the moment, the DCE CGI gateway only uses static middleware clients
that already exist at runtime. With slight modifications, the gateway
should be able to generate dynamic middleware clients by using the
following steps:
The user browses through DCE interfaces (DCE IDL files) from a WWW client
The user selects an interface and invokes the DCE CGI gateway
The DCE CGI gateway uses the IDL file to generate a middleware client at runtime
The gateway uses the dynamically generated middleware client to invoke
the DCE RPC and displays the results on the user's WWW client browser.
Technology Issues
In this section we will overview the technology needed to derive HTML forms and
DCE client templates from an interface specification. The general idea
is that an interface specification is transformed by a parser
into an abstract syntax tree. Various back-end
tools can be applied to this abstract syntax tree. Figure 3 illustrates this approach.
Within the DSTC we have built parsing and unparsing tools based on
the standard utilities lex and yacc, and the compiler generator
kimwitu [Eijk and Belinfante 1990]. Kimwitu eases the handling of
abstract syntax trees and
provides interfaces to lex and yacc, and excellent support for tasks
such as unparsing or comparing trees.
Within the DSTC we have already implemented several back-ends,
to check equivalence and subtyping relations between two DCE interface
specification and to translate a DCE interface specification into a
CORBA interface specification.
Based on this experience we have a clear view on how to implemented
back-ends to derive HTML forms to select an operation and to capture parameters,
and to create templates for dynamic DCE clients, as described in the
previous section.
Related Work
In related work, the approaches to the integration of the WWW with
distributed middleware can be classified as follows:
Transport Mechanism
In this approach, the distributed middleware is used as a transport
mechanism for the HTTP protocol messages. This approach is used by
OSF's DCE Web project
[DCE Web, HREF 9]
and Digital's CORBA Web project
[ Digital's CORBA Web, HREF 10].
CGI-based
This approach uses the CGI for connecting the WWW server
with the distributed services managed by DCE or CORBA. It is used
by the Web* project
[Web*, HREF 11]
at West Virginia University.
Object-Oriented
In this approach a (CORBA)
object-oriented model is imposed onto the WWW, and the WWW HTML
documents are treated as (CORBA) objects. This approach is used by
APM (Architecture Projects Management Ltd) in their Distributed
Objects and the World Wide Web project [ANSA Web, HREF 12].
The intention of the OSF's DCE Web project was to apply state of
the art DCE services, particularly the DCE security services, to the
WWW. This allows the WWW resources to be accessed in a controlled
manner. The technology produced by the DCE Web project is called protocol
tunneling. With protocol tunneling, the WWW clients and servers
communicate with each other using the existing HTTP protocol, but they
use DCE RPC as the underlying transport mechanism. In this approach, the HTTP
messages are encapsulated as DCE RPC data, and thus the DCE
services such as security and naming are able to be used without
having to modify the HTTP protocol.
Instead of choosing DCE as a transport mechanism, Digital's
CORBA Web project chose the CORBA-based object system (ObjectBroker)
as a transport mechanism for connecting the WWW server to the
applications. This project developed a WWW broker as part of the
WWW server and an object wrapper to wrap the application data. The
communication between the WWW broker and the object wrapper is
via CORBA middleware.
The Web* (Web star) project at the CERC (Concurrent Engineering
Research Center) has taken a different approach to exploiting the
WWW and CORBA. This project is based on CGI. Web* generates
a CGI script to access a set of "Layout Pages" which are the HTML
files containing TCL (Tool Command Language) commands. The
script is able to directly access CORBA distributed services by
using CORBA's Dynamic Invocation Interface (DII). The
results from the distributed service are sent back to the WWW client.
Since the TCL/CORBA script has no idea of what the accessed
services are, the user has to supply the correct arguments and
object references, and must appropriately decode the results. In
most cases, this is an unreasonable requirement for the user.
APM uses an object-oriented approach to integrate the WWW with CORBA.
This approach imposes
the CORBA distributed object model onto HTTP, and thus the WWW
environment becomes a world of distributed CORBA objects. It uses
CORBA wrappers to make URLs look like CORBA objects. It uses
a CORBA/HTTP interceptor to make HTML located outside the CORBA world
accessible as a CORBA object to the CORBA applications, and to make
CORBA objects appear as WWW objects to users outside of the CORBA
environment.
Conclusion
This paper has presented an architecture for the integration of
middleware services and the WWW. The benefits of which will lead
to an increase in the number of services available to the end-user.
A prototype was developed
using this architecture and proved that the integration of such services is
possible.
In summary, we see the benefits of
the middleware integration to be paramount for the success of future
globally distributed systems.
Acknowledgements
The work reported in this paper has been funded in part
by the Cooperative Research Centres Program through the
Department of the Prime Minister and Cabinet of Australia.
We would also like to acknowledge David Arnold for his work on the DCE
Browser.
References
Time Berners-Lee, Robert Cailliau, Ari Luotonen, Henrik Frystyk
Nielsen, and Arthur Secret (1994), "The World-Wide Web",
Communications of the ACM, 37(8):76-82, August 1994.
A. Beitz and M. Bearman (1994), An ODP Trading Service for
DCE. in Proceedings of the First International Workshop
on Services in Distributed and Networked Environments (SDNE),
pages 42-49. June 27-28, 1994, Prague, Czech.
C.J.Biggs, W. Brookes, and J.Indulska (1994), "Enhancing
Interoperability of DCE Applications: A Type Management
Approach", in Proceedings of the First International Workshop
on Services in Distributed and Networked Environments (SDNE),
pages 50-57. June 27-28, 1994, Prague, Czech.
ISO Trader (1994), Rec.X.9tr/Draft ODP Trading Function ISO/IEC
13235: 1994/Draft ODP Trading Function. ISO/IEC JTC1/SC21,
N-9122, July, 1994.
OMG (1993), The Common Object Request
Broker: Architecture and Specification, Revision 1.2,
December 1993, Object Management Group, Cambridge, U.S.A.
OSF (1993), OSF DCE Application Development Guide,
Revision 1.0, 1993. Open Software Foundation, Cambridge
U.S.A.
P. van Eijk and A. Belinfante (1990),
"The Term Processor Kimwitu, Manual and Cookbook."
University of Twente Technical Report INF-90-45,
1990.
Hypertext References
HREF 1
http://ftp.dstc.edu.au/AU/staff/ashley-beitz.html,
Ashley Beitz's Home Page.
HREF 2
http://ftp.dstc.edu.au/RDU/staff/renato-iannella.html,
Renato Iannella's Home Page.
HREF 3
http://ftp.dstc.edu.au/AU/staff/andreas-vogel.html,
Andreas Vogel's Home Page.
HREF 4
http://ftp.dstc.edu.au/AU/staff/zhonghua-yang.html,
Zhonghua Yang's Home Page.
HREF 5
http://www.dstc.Bond.edu.au:8008/docs/TU/staff/tak.html,
Tak Woo's Home Page.
HREF 6
http://www.osf.org:8001/dce/index.html,
DCE's Home Page.
HREF 7
http://www.omg.org, OMG's Home Page.
HREF 8
http://www.dstc.edu.au/public/staff/david-arnold/marco.html,
Marco's Home Page.
HREF 9
http://www.osf.org:8001/www/dceweb/DCE-Web-Home-Page.html,
DCE Web Project.
HREF 10
http://www.ncsa.uiuc.edu/SDG/IT94/Proceedings/DDay/hastings/hastings.html,
Digital's CORBA Web Project.
HREF 11
http://webstar.cerc.wvu.edu/lpi/webice.html, Web* project
at West Virginia University.
HREF 12
http://www.ansa.co.uk/phase3-activities/wwwCorba.html,
ANSA Web project.