Distributed Proxy: A Design Pattern for Distributed Object Communication

This paper presents the Distributed Proxy pattern, a design pattern for distributed object communication. The Distributed Proxy pattern decouples distributed object communication from object specific functionalities. It further decouples logical communication from physical communication. The Distributed Proxy pattern enforces an incremental development process, encapsulates the underlying distribution mechanisms, and offers location transparency. 1 Intent The Distributed Proxy pattern decouples the communication between distributed objects by isolating distributionspecific issues from object functionality. Moreover, distributed communication is further decoupled into logical communication and physical communication parts. 2 Motivation An example motivates for the problems and respective forces involved in distributed object communication. 2.1 Example A distributed agenda application has several users which manipulate agenda items, either private (appointments) or shared (meetings). A meeting requires the participation of at least two users. When an agenda session starts, it receives an agenda manager reference from which the agenda user informationcan be accessed. It is simple to design a solution ignoring distribution issues. The Booch[1] class diagram in Figure 1 shows the functionalities design of the agenda application, where distribution issues are ignored. Enriching this design with distribution is complex. For example we must consider different address spaces. In terms of our agenda application this means, that operation getUser in Agenda Manager should return to the remote Agenda Session a User object across the network. Another source of complexity is need to implement distributed communication. For instance, the communication between Agenda Session andAgenda Manager is implemented using sockets. From a user’s perspective, however, all distribution issues should be hidden. They just want to manipulate agenda items. Item Meeting Appointment A 0+

[1]  António Rito Silva,et al.  Functionality and partitioning configuration: design patterns and framework , 1998, Proceedings. Fourth International Conference on Configurable Distributed Systems (Cat. No.98EX159).

[2]  Grady Booch,et al.  Object-Oriented Design with Applications , 1990 .

[3]  Nat Pryce,et al.  Component interaction in distributed systems , 1998, Proceedings. Fourth International Conference on Configurable Distributed Systems (Cat. No.98EX159).

[4]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[5]  James O. Coplien,et al.  Pattern languages of program design , 1995 .

[6]  Peter Sommerlad,et al.  Pattern-Oriented Software Architecture , 1996 .

[7]  Douglas C. Schmidt,et al.  The ADAPTIVE Communication Environment An Object-Oriented Network Programming Toolkit for Developing Communication Software , 1993 .

[8]  Raghu V. Hudli,et al.  CORBA fundamentals and programming , 1996 .

[9]  António Rito Silva,et al.  Component Configurer: A Design Pattern for Component-Based Configuration , 1997 .

[10]  Teresa Gon Passive Replicator : A Design Pattern for Object Replication , 1997 .

[11]  Douglas C. Schmidt,et al.  Acceptor and connector , 1997 .

[12]  Miguel Antunes,et al.  Naming: design pattern and framework , 1998, Proceedings. The Twenty-Second Annual International Computer Software and Applications Conference (Compsac '98) (Cat. No.98CB 36241).

[13]  Kendall Scott,et al.  UML distilled - applying the standard object modeling language , 1997 .

[14]  Douglas C. Schmidt,et al.  Reactor: an object behavioral pattern for concurrent event demultiplexing and event handler dispatching , 1995 .