Group-Based Distributed Computing Programming & Distributed Platform Model By Kazi Farooqui Doctor of Philosophy in Computer Science Ottawa Carleton Institute of Computer Science University of Ottawa Ottawa, February 2000 Abstract The synergy of the client-server computing model, the object group model, and the group communication model leads to a new distributed computing paradigm - the group-based distributed computing paradigm. This paradigm is characterised by the extension of the existing point-to-point client-server distributed com-puting model to a model that explicitly addresses one-to-many and many-to-one client-server interactions, as well as other aspects of group-orientation such as synchronised message invocation, filtered message delivery, etc. The group-based distributed computing applications are structured as a client group interact-ing with a server group. The paradigm of next generation of information systems will involve a large num-ber of distributed objects which are structured as object groups and which interact in a client-server manner. Much research has been done in the past in the area of group communication. However most of this research exists in the low-level support for group communication, such as different types of ordered and reliable multicast protocols, membership management protocols, virtual synchrony, replication techniques, etc. Most of this research provides only low-level pieces of the complete puzzle. The big picture involves a vision of group-based distributed computing. This vision calls for a shift of focus from low-level issues of group communication to the high-level issues of an overall distributed environment capable of supporting group-based distributed computing applications. This thesis is focussed on the dual models of the distrib-uted environment - the distributed programming model and the distributed platform model, required for the support of group-based distributed computing applications. At the programming-level, we describe a communication primitive (analogous to the interrogation or remote procedure call of the basic client-server model), that explicitly addresses one-to-many and many-to- one interactions between a client group and server group. It is named group interrogation. It allows a singleton client to access a server group in one call, through the mediation of a group proxy object, and to receive multiple and variable number of replies in a controlled manner in response to that call. Similarly it allows a singleton server to receive multiple service requests from the client group as a single group service request and to issue multiple replies, one for each component request, in response to a group service request. The semantics of the proposed group interrogation primitive supports some of the sophisticated group communication requirements, such as multiple reply delivery, variable reply delivery, group reply delivery, controlled reply delivery, terminable reply delivery, and ordered reply delivery. Transparency is an important issue in a programming primitive. The proposed model allows the programmer to configure the level of group transparency by specifying different message distribution and collation policies. At the distributed platform level, the focus is essentially on the group support middleware platform, which resides on top of the low-level group communication protocols. The thesis presents the software architecture of an agent-based and policy-driven group support platform in an implementation indepen-dent manner. This is an extensible, configurable and programmable software architecture which permits the separation of group coordination aspects from the application issues. The goal is to enhance the level of middleware support provided by the current generation of distributed platforms such as CORBA. The thesis identifies a set of middleware-level group support services (GSSs), such as message distribution service, collation service, synchronisation service, filtering service, etc. commonly required by group-based applications and the corresponding group support agents (GSAs). The thesis presents a frame-work for the organisation of these group support agents. This framework is called the group support machine (GSM). The GSM serves as a framework for the identification of new group support services and for the identification of interactions that take place between the corresponding GSAs within the GSM, inorder to support different application requirements. Each component of the group-based application is sup-ported by GSM. The group support platform (GSP) is a set of inter-connected GSMs which communicate with each other through an inter-GSM protocol (IGP). This protocol defines the nature and format of inter-action between the peer GSAs within the distributed GSMs. In this model, the GSAs manage the group communication and coordination patterns on behalf of the user applications, who influence the behavior of these agents by means of policy specifications. The idea is to describe the functionality required of the group support platform (GSP) in a declarative language. The thesis presents such a declarative group support requirements specification language, the group policy specification language (GPSL), for the specification of a rich set of application requirements with respect to different group support services such as message distribution, collation, synchronisation, filtering, etc. Therefore the GSP offers selective group transparency by allowing applications to specify group support policies. Finally, the thesis describes the different types of group coordination models that are supported by the GSP and how the corresponding group coordination patterns can be specified using GPSL by a combi-nation of basic message distribution policy, collation policy, synchronisation policy, and filtering policy. This thesis is based upon the architectural principles underlying object-based distributed systems architectures such as RM-ODP, ANSA, ROSA, OMA, etc., and is scoped within the ODP computational and engineering models. The thesis presents an integration of diverse distributed object computing technol-ogies such as the client-server model, object group model, distributed agent model, policy-driven agent models, group coordination models into an advanced group-based distributed computing model.