DCOBE: Distributed Composite Object-Based Environment

G. Yilmaz
2005 Computer journal  
This paper introduces a new programming model for distributed systems, distributed composite objects (DCO), to meet efficient implementation, transparency, and performance demands of distributed applications with cooperating users connected through the internet. DCO model incorporates two basic concepts. The first is composition, by which an object is partitioned into sub-objects that together constitute a single composite object. The second one is replication, which extends the object concept
more » ... o the distributed environment. The DCO model allows the representation of an object as a collection of subobjects and enhances the object distribution concept by implementing replication at the subobject level and only when demanded. DCOBE, a DCO-based programming environment, conceals implementation details of the DCO model behind its interface and provides basic mechanisms for object composition, distribution and replication of object state, consistency management, concurrency control and dynamic deployment of restructured objects. It facilitates the design of distributed applications, reducing significantly the overall time for development by taking care of distributed system issues. DCOBE, being implemented on JVM, provides an environment that works on heterogeneous platforms. A distributed application is developed using the Java language in a centralized manner and then made available on the internet. Objects are dynamically deployed to requesting client nodes. This allows users to deal with various environments that exist in a wide area network and to separate applications from the implementation of shared objects. Such software facilitates implementation because programs are written on top of a high-level execution environment. Programmers are no longer concerned with the complexities of distribution and maintenance of shared data, while maintaining acceptable levels of interactive performance. This paper introduces a new programming model for distributed systems, distributed composite objects (DCO) [1], to meet efficient implementation, transparency, fault tolerance and performance demands of cooperative applications with users connected through the internet. The distributed composite object model incorporates two basic concepts. The first concept is composition, by which an object is partitioned into sub-objects (SO) that together constitute a single composite object (CO). The second basic concept is replication. Replication extends the object concept to the distributed environment. Sub-objects of a composite object are replicated on different address spaces to ensure availability and quick local access. Decomposition of an object into sub-objects reduces the granularity of replication. To a client, a DCO appears to be a local object. However, the distributed clients of a DCO are, in fact, each associated with local copies of one or more sub-objects and the set of replicated sub-objects distributed over multiple address spaces form a single distributed composite object. A software layer, Distributed Composite Object Based Environment (DCOBE) [2] provides a programming framework that is based on the DCO model. DCOBE is a middleware built on Java Virtual Machine and presents functionalities that facilitate the development of internet wide distributed applications, through a well-defined interface. An important feature of the programming framework is transparency. Users of DCOs acquire the benefits of a centralized environment as DCOBE takes care of issues such as distribution and replication of object state, management of consistency, and concurrency control. They are automatically programmed separately from the application code, thus enabling developers to concentrate on the semantics of the application they are working on. The paper is organized into eleven sections. Related work is explained in Section 2. Section 3 presents object composition and replication concepts. The distributed composite object model is described in Section 4. Management of sub-objects is explained in Section 5. Section 6 presents DCOBE architecture, while Section 7 explains the creation steps of a distributed composite object. An automatic class generator is presented in Section 8. A sample application is described in Section 9. Section 10 provides an evaluation of DCOBE. Finally, Section 11 presents our conclusion and plans for future work. Related Work The DCO model has benefited from the large amount of research dedicated to consistency strategies on shared memory systems [3] . DCOBE provides a flexible framework for associating various replication coherence protocols for different sub-objects of a composite object. The majority of work on distributed object models follows an approach that allows clients to transparently access an object through remote method invocations. Related work includes DCOM [4], CORBA [5] and JAVA RMI [6] . In all cases, an object is presented to remote clients by means of a proxy that is installed at the client and offers the same interface as the actual object. Remote method invocation basically uses the same technique as RPC [7] and, when combined with object serialization (JAVA RMI), it forms a powerful technique for transparently invoking remote objects. The main difference with all these models to our work is that they provide remote objects, rather than physically distributed objects and, hence, fail to handle complex distribution issues such as replication and concurrency control. Smart proxies [8, 9] , on the other hand, add more functionality into stubs, e.g., adding caching mechanisms to reduce communication overhead and latencies, or forwarding method invocations to some member of a replica group for the purpose of load balancing or fault tolerance. Current smart proxy implementations usually either modify the middleware such that compatibility is no longer maintained, or they use means such as portable interceptors. In the latter case, a signifcant overhead in remote invocation mechanisms is introduced by adding additional levels of indirection on the client side. Smart proxies stay closer at the traditional client-server structure. An alternative approach is to fully encapsulate distribution in an object, which leads to a model of partitioned objects. The partitioned object model, used by Spring [10], SOS [11], Globe [12] and AspectIX [13] allows combining multiple distributed parts into a single distributed object with a single identity. A model called Subcontract is offered in Spring [14]. The Spring Subcontract structures an object around the so-called object representation, a table of method entries and a Subcontract. Spring offers two replication Subcontracts; the replicon and caching Subcontracts. The replicon is more basic; it binds each client to a replica and permits multi invocation on replicas. The caching Subcontract is more elaborate. However, as a general mechanism, it is too limited. Subcontracts do not provide generic support for a variety of consistency protocols
doi:10.1093/comjnl/bxh084 fatcat:3oed4e6pqrhy7d25r7p7ldelr4