A Peer-to-Peer Approach to Enhance Middleware Connectivity Erik Klintskog , Valentin Mesaros , Zacharias El Banna , Per Brand , and Seif Haridi Distributed Systems Lab., Swedish Institute of Computer Science, Kista, Sweden, erik, zeb, perbrand @sics.se Computer Science Dpt., Univ. catholique de Louvain, Louvain-la-Neuve, Belgium, valentin@info.ucl.ac.be IMIT - Royal Institute of Technology, Kista, Sweden seif@it.kth.se Abstract. One of the problems of middleware for shared state is that they are designed, explicitly or implicitly, for symmetric networks. However, since the In- ternet is not symmetric, end-to-end process connectivity cannot be guaranteed. Our solution to this is to provide the middleware with a network abstraction layer that masks the asymmetry of the network and provides the illusion of a sym- metric network. We describe the communication service of our middleware, the Distribution Subsystem (DSS), which carefully separates connections to remote processes from the protocols that communicate over them. This separation is used to plug-in a peer-to-peer module to provide symmetric and persistent connectiv- ity. The P2P module can provide both up-to-date addresses for mobile processes as well as route discovery to overcome asymmetric links. 1 Introduction Development of distributed applications is greatly simplified by using programming systems that offer abstractions for shared state, e.g., distributed objects as in JavaRMI or CORBA. Considerable research and work has been done on protocols for shared state [1, 2], mechanisms [3], and systems [4, 5] to make them more transparent without sacrificing efficiency. The existing shared-state protocols have usually been, implicitly or explicitly, designed for connectivity-symmetric networks, e.g., LANs and clusters. By symmetric connectivity between two machines we understand the fact that they both can connect to each other via the physical network. On the other hand, we speak about asymmetric connectivity between two machines when only one of them is able to con- nect to the other one. However, symmetry is not guaranteed on the Internet, in particular due to firewalls and Network Address Translators. Consequently, when the state-sharing protocols make use of messaging based on static IP addresses and assume symmetric connectivity over the Internet, they fail to work properly. In the light of this unfortunate fact, many take the view that shared-state abstractions are just not possible for asymmetric networks [6], or that new and completely different kinds of shared-state protocols are necessary. We