Steve Caughey, David Ingham and Paul Watson
Department of Computing Science,
Newcastle University,
Newcastle upon Tyne, NE1 7RU, U.K.
s.j.caughey@ncl.ac.uk,
dave.ingham@ncl.ac.uk and
paul.watson@ncl.ac.uk
Metabroker comes in two parts, a Generic Broker Module and a Specific Broker Module. The Generic Broker Module (GBM) provides a distributed object framework and a set of commonly useful services. This module also contains a run-time library of the common data types (and protocols) encountered on the Internet. All objects within the GBM offer a common set of useful interfaces and are either instances of the data types offered by the GBM or by the Specific Broker Module.
The external entities of concern to a broker are the clients who wish to make use of the broker and the resources which the broker deems of interest to clients. Within the Metabroker, proxy objects (or just proxies) are used to represent and maintain information relating to clients and resources. In addition to these external entities the Metabroker will also have its own internal entities. These will include services offered by the broker, services used internally, and entities used to record complex relationships between entities within the broker. All of these entities are also structured as objects, which we collectively call relationship objects. Objects can register their interest in specific events with an Event Service, or can inform the service of events they can generate and of objects to be informed when this occurs. An Agent Service allows clients and resource providers to create agents which can respond on their behalf to the occurrence of specific events.
That part of the broker which is specific to some particular information domain is envisaged as a plug-in Specific Broker Module (SBM). This configures the GBM, populating it with the necessary objects and then monitoring its behaviour. It is capable of on-line reconfiguration where this is deemed necessary. Once configured the Metabroker can go live, listening for and responding to clients.
In order to validate some of the concepts presented in this paper, we have implemented several prototype systems. One of these prototypes was a simple toolkit for building brokers that utilise forms-based Web services. An example broker, known as the Informed Traveller, was built which provides a journey planning service encompassing both rail and air travel. The aim of another prototype, QObjects, was to demonstrate how content metadata could be structured and queried in a generic manner. The experience gained in implementing our prototypes has convinced us of the viability of the Metabroker project. We aim to utilise components from these prototypes together with our previous experience in distributed object services [3, 1, 2] to implement the full Metabroker architecture.
[1]
S.J. Caughey et al., SHADOWS: a flexible support system for objects in a distributed system,
in: Proc. of the 3rd IEEE International Workshop on Object Orientation in Operating Systems
(IWOOOS), Ashville, North Carolina, USA, December 1993,
http://arjuna.ncl.ac.uk/group/papers/p028.ps
[2]
D.B. Ingham, M.C. Little, S.J. Caughey, and S.K. Shrivastava,
W3Objects: bringing object-oriented technology to the Web,
The Web Journal, 1(1): 89105,
Proc. of the 4th International World Wide Web Conference,
Boston, USA, December 1995,
http://www.w3.org/pub/Conferences/WWW4/Papers2/141/ or
http://w3objects.ncl.ac.uk/pubs/bootw
[3]
G.D. Parrington et al.,
The design and implementation of Arjuna,
USENIX Computing Systems Journal, 8(3): 253306, Summer 1995,
http://arjuna.ncl.ac.uk/group/papers/p048.ps