In this paper we describe a design pattern for distributed rendezvous. We propose a variant of rendezvous that supports multiple server threads, each one devoted to a different client. On the server side a ForwarderObject is in charge of forwarding calls t
A Design Pattern for Distributed Rendezvous Ricardo Jimenez-Peris Marta Pati~o-Mart nez n Sergio Arevalo Universidad Politecnica de Madrid Facultad de Informatica 28660 Boadilla del Monte (Madrid), Spain frjimenez, mpatino, sarevalog@ .upm.es Keywords: Design Patterns, Rendezvous, Multithreaded servers, Distributed Systems, Object-Oriented Technologies. ABSTRACT In this paper we describe a design pattern for distributed rendezvous. We propose a variant of rendezvous that supports multiple server threads, each one devoted to a di erent client. On the server side a ForwarderObject is in charge of forwarding calls to the corresponding servers threads. This design pattern encapsulates both the forwarding algorithm and the server interface, so both can be changed independently. Guidelines are given on how to implement the design pattern in Ada 95, taking advantage of language speci c features such as streams. The Multithreaded Rendezvous pattern has been successfully applied in the implementation of Transactional Drago, an Ada extension to program fault-tolerant distributed applications. In applications based on rendezvous, when a client requests a service to a server, it issues a call to an entry point of the server with some parameters and then blocks till the server sends a reply with the service results. On the other hand, the server has its own ow of execution and at some points it accepts requests. When the server wants to accept a request for a particular service, it will block till a request for that service is received from a client. After that, the server executes the service, sends the results back to the client and then continues execution. Thus, rendezvous allows imposing a protocol of calls to clients. Distributed rendezvous implies that requests and replies may cross the network from the client node to the serve node. The implementation of distributed rendezvous ( g. 1) is very similar to the implementation of the wellknown RPC model 3]. In this implementation, when a server is designed, its services (or entry points) are speci ed by their name, and information about their parameters (types and modes) is also provided. From that speci cation, client and server stubs are automatically generated. The server stub is linked with the server and the client stub is linked with any client willing to use that server. The client stub must o er exactly the same interface the server o ers. The entry point implementation in the client stub must be able to locate the server, send it a message with the parameters of the call ( attened). Then, it waits for the server reply. When it is received it un attens the results and returns them to the client. Thus, the client makes calls to the remote server as it they were local. The server stub will have its own ow of control that receives messages from clients and then nds out which entry point is the message aimed to. It creates a task that knows how to un atten the message and how to call the entry point. T
his kind of tasks represents the client on the server side. When the server nishes the service, it returns the result to that task and the task sends a message back to the client stub with the attened results. When clients and servers interact by means of rendezvous, servers accept calls from di erent clients in their code. However, there are situations where it is not interesting that the same server accepts interleaving calls from di erent clients. For instance, in a transac-
Multithreaded Rendezvous:
1 INTRODUCTION Rendezvous has been widely used to synchronize concurrent programs. In a concurrent program the server o ers a set of services that clients call. In order to provide those services the client and server must synchronize, that is, the client should ask for a service and the server must be ready to execute it. Although rendezvous is provided as a basic mechanism in some languages, like Ada, distributed rendezvous is not. Using it in a distributed environment will be natural, especially for those that are used to work with it to build concurrent programs, but also to transform concurrent applications based on rendezvous into distributed ones. This work has been partially funded by the Spanish Research Council(CICYT), contract number TIC98-1032-C03-01 and the Madrid Regional Council (CAM), contract number CAM-07T/0012/1998.
A key design pattern used for extending GALibRobocode to its distributed ...The adoption of the pattern allows for more flexibility in the rendezvous ...
Network Rendezvous - a Data Management Pers_专业...of topology because of peer mobility pattern [8]...approach, thus it is essentially a distributed ...
Prototyping distributed multimedia systems using ...s were designed as an executable specification ...A rendezvous is implemented by having two ...
To manage such distributed projects, the software design patterns are used. A design pattern is a template of formalized best practices to solve a problem...
Developed verifiable design patterns for concurrent and distributed systems and interface-based automated modular verification techniques based on these patterns....
Design Pattern 10 SoftwareArchitecture & Design Pattern ACE/TAO : A CORBA... - An industry standard for distributedobject systems (proposed and maintained...
assume specified pattern 形成指定的队形,队形 控制 ? rendezvous at a common ...? Design of provably correct, distributed coordination algorithms 分布式协同算法...
sources are Lambertian distributed, a freeform TIR lens is designed in this paper to create a rectangular light pattern and a batwing light intensity far ...
A. Lynch. Distributed Algorithms. Morgan Kaufmann ...ock, reach pattern Sensor-based: search, estimate...S2: deployment S3: rendezvous Deployment (i) J....
Rendezvous Without Coordinates_工学_高等教育_教育...Index Terms—Consensus, distributed control, multi...become very limited, requiring a minimal design. ...
distributed Coordina=on Service Worker Worker ...ACLs, Tablet metadata Rendezvous ? Find tablet ...Communication pattern is arbitrary Replicating the ...
Most likely scenario: distributed, mobile “tether...(4) rendezvous, (5) pipelining, (6) iteration...? Algorithms, Patterns and Protocols –– Davis,...
我要评论