FORMI: an RMI extension for adaptive applications

RMI is a well-known middleware that smoothly integrates into Java. RMI uses classical RPC-based client-server interaction, precisely remote method calls. Although RMI has several extension points (i.e., for replacing transport protocols and call semantics), this is not enough for many applications as it can not cope with non-RPC-based communication, fault tolerance, scalability, and quality-of-service in general. We present FORMI, an RMI extension for supporting the very flexible fragmented-object model. This model allows to build distributed objects with arbitrary internal communication protocols and interaction patterns (e.g., internal peer-to-peer communication) and with a truly distributed internal structure (e.g., replicated servers, smart proxies, hierarchical servers). Both, internal communication and structure, remains hidden behind the RMI-object interface and is thus transparent to clients. We demonstrate our approach by an Internet radio example.