Distributed Coordination Models for Client/Server Computing

  • Authors:
  • Richard M. Adler

  • Affiliations:
  • -

  • Venue:
  • Computer
  • Year:
  • 1995

Quantified Score

Hi-index 4.11

Visualization

Abstract

Interactions between distributed applications presuppose an underlying control model to coordinate information exchanges and networking software to implement that model. The client/server control model defines distributed interactions in terms of one program requesting and obtaining a service from a second, possibly remote, application. However, this basic model provides inadequate design support when clients need to invoke multiple, independent services, coordinated to reflect how those services interrelate and contribute to the overall application. The author describes extensions to the basic client/ server model that explicitly address one-to-many client/ server interactions by discussing three basic design issues: how multiple services are requested, how those services are managed, and how clients receive responses. The extended coordination models provide support for locating, obtaining, and synchronizing services, as well as for collecting and combining results from multiple servers in a manner that is transparent to clients. Extended models include a scripting engine for managing data and temporal dependencies among services; a basic request broker for mediating client access to distributed services; and extended request broker models that decompose composite services, manage redundant servers, and replicate messages to logical server groups. These coordination models were designed as generic, programmable control services. The control services are interoperable, so they can be combined like building blocks to match application-specific coordination requirements. The one-to-many coordination services are layered on top of an object-oriented, message-passing communication substrate, which transparently manages the complexities of interprogram interactions across networks of heterogeneous computers. This layered architecture lets complex coordination behaviors be modeled and executed external to application elements. It accomplishes this through high-level application programming interface (API) calls. The resulting partitioning of application and generic distributed behaviors yields improved modularity, maintainability, and extensibility of individual clients and servers.