scispace - formally typeset
Search or ask a question

Showing papers on "Distributed object published in 2006"


Proceedings ArticleDOI
11 Nov 2006
TL;DR: CRUSH is a scalable pseudorandom data distribution function designed for distributed object-based storage systems that efficiently maps data objects to storage devices without relying on a central directory.
Abstract: Emerging large-scale distributed storage systems are faced with the task of distributing petabytes of data among tens or hundreds of thousands of storage devices. Such systems must evenly distribute data and workload to efficiently utilize available resources and maximize system performance, while facilitating system growth and managing hardware failures. We have developed CRUSH, a scalable pseudorandom data distribution function designed for distributed object-based storage systems that efficiently maps data objects to storage devices without relying on a central directory. Because large systems are inherently dynamic, CRUSH is designed to facilitate the addition and removal of storage while minimizing unnecessary data movement. The algorithm accommodates a wide variety of data replication and reliability mechanisms and distributes data in terms of user-defined policies that enforce separation of replicas across failure domains.

449 citations


Book
01 Jan 2006
TL;DR: This dissertation presents a framework for enabling those interactions between components needed for the cooperation the authors intend, while minimizing the hazards of destructive interference, in E, a distributed, persistent, secure programming language.
Abstract: When separately written programs are composed so that they may cooperate, they may instead destructively interfere in unanticipated ways. These hazards limit the scale and functionality of the software systems we can successfully compose. This dissertation presents a framework for enabling those interactions between components needed for the cooperation we intend, while minimizing the hazards of destructive interference. Great progress on the composition problem has been made within the object paradigm, chiefly in the context of sequential, single-machine programming among benign components. We show how to extend this success to support robust composition of concurrent and potentially malicious components distributed over potentially malicious machines. We present E, a distributed, persistent, secure programming language, and CapDesk, a virus-safe desktop built in E, as embodiments of the techniques we explain.

320 citations


Journal ArticleDOI
10 Nov 2006
TL;DR: This paper presents the Creol syntax, operational semantics, and type system and shows that runtime type errors do not occur for well-typed programs.
Abstract: Object-oriented distributed computing is becoming increasingly important for critical infrastructure in society. In standard object-oriented models, objects synchronize on method calls. These models may be criticized in the distributed setting for their tight coupling of communication and synchronization; network delays and instabilities may locally result in much waiting and even deadlock. The Creol model targets distributed objects by a looser coupling of method calls and synchronization. Asynchronous method calls and high-level local control structures allow local computation to adapt to network instability. Object variables are typed by interfaces, so communication with remote objects is independent from their implementation. The inheritance and subtyping relations are distinct in Creol. Interfaces form a subtype hierarchy, whereas multiple inheritance is used for code reuse at the class level. This paper presents the Creol syntax, operational semantics, and type system. It is shown that runtime type errors do not occur for well-typed programs.

139 citations


Patent
28 Aug 2006
TL;DR: In this article, the authors present a method and apparatus for the management of the placement of immutable fixed-content objects in a distributed, multi-site, mult-tier nonvolatile storage hierarchy consisting of a plurality of storage media connected together over networks of varying bandwidth where the computing, storage, and network resources are subject to failure.
Abstract: A method and apparatus for the management of the placement of immutable fixed- content objects in a distributed, multi-site, multi-tier non-volatile storage hierarchy consisting of a plurality of storage media connected together over networks of varying bandwidth where the computing, storage, and network resources are subject to failure. The disclosure provides for scalability, performance, and robustness by distributing the object placement management tasks amongst a plurality of computing resources and eliminating the need for global synchronization or locking amongst said computing resources.

63 citations


Patent
25 May 2006
TL;DR: In this article, the authors present a technology for sharing data among multiple virtual machines in a cluster of virtual machines, which includes a computer-implemented method detecting operations performed by a first virtual machine on any local instance of a managed object and creating a transaction including the operation and an object identifier referencing the managed object.
Abstract: Technology for sharing data among multiple virtual machines in a cluster of virtual machines is disclosed. Each virtual machine identifies “managed” objects of an instance of an application running at the virtual machine. Operations performed by an instance of one application which affect the state of managed objects are detected and distributed. The technology includes A computer-implemented method detecting operations performed by a first virtual machine on any local instance of a managed object; creating a transaction including the operation and an object identifier referencing the managed object; and forwarding the transaction to all other virtual machines.

62 citations


Patent
09 Mar 2006
TL;DR: In this paper, a persistent authenticating mechanism to map real world object presence into virtual world object awareness is presented, in which the presence of a real-world object is detected and, while the realworld object's presence continues to be detected, it is made available for use in a virtual environment.
Abstract: A persistent authenticating mechanism to map real world object presence into virtual world object awareness are provided. The illustrative embodiments provide a mechanism by which the presence of a real world object is detected and, while the real world object's presence continues to be detected, it is made available for use in a virtual environment. The detection of the real world object provides an identifier of the object which is correlated with information regarding how to represent the object in the virtual environment, how the object may be utilized in relation to other objects in the virtual environment such that the real world object is modeled in the virtual environment, and the like. The detection of multiple real world objects may be performed and identification of each of the multiple objects may be used to determine how these objects may be utilized together in the virtual environment.

60 citations


Patent
11 Dec 2006
TL;DR: In this article, the identification of fixed content objects in a distributed fixed content storage system is described, where object identifier assignment prevents object identifier collisions in distributed non-connected system regardless of the number of objects being stored and ensures continued operation of the object storage system in the presence of network disruptions.
Abstract: This disclosure describes identification of fixed content objects in a distributed fixed content storage system. Unique object identifiers are assigned in a distributed object storage system which consists of a plurality of storage media interconnected over networks subject to disruptions. The object identifier assignment prevents object identifier collisions in a distributed non-connected system regardless of the numbers of objects being stored and ensures continued operation of the object storage system in the presence of network disruptions without requiring unique identifiers for entities performing allocations. Embodiments may be used within any system where there is a need for globally unique identifiers, and the allocation of the globally unique identifiers needs to occur in the absence of network connectivity. The globally unique identifiers may be transformed for security purposes.

57 citations


01 Jan 2006
TL;DR: The design and implementation of AQuA, an adaptive QoS-aware object-based storage device (OSD) suitable for use as the fundamental building block in an overallQoS-capable object- based storage system is presented.
Abstract: As storage systems are becoming larger and more complicated, they must handle an increasing variety of data storage needs. Storage system Quality of Service (QoS) has therefore become an important issue. Storage systems must be able to deliver satisfactory performance under both expected and unexpected workloads and, increasingly, must handle data (such as multimedia data) with real timeliness requirements. We are developing a petascale high-performance distributed object-based storage system called Ceph. Ceph’s object storage architecture and other unique features have given rise to new QoS issues that require new solutions. In this paper, we first discuss the issues involved with the design of the overall QoS framework, we then present the design and implementation of AQuA, an adaptive QoS-aware object-based storage device (OSD) suitable for use as the fundamental building block in an overall QoS-capable object-based storage system.

51 citations


Patent
09 Mar 2006
TL;DR: In this paper, a persistent authenticating system and method to map real world object presence into virtual world object awareness are provided, and illustrative embodiments provide a mechanism by which the presence of a real-world object is detected and, while the realworld object's presence is continued to be detected, it is made available for use in a virtual environment.
Abstract: A persistent authenticating system and method to map real world object presence into virtual world object awareness are provided. The illustrative embodiments provide a mechanism by which the presence of a real world object is detected and, while the real world object's presence is continued to be detected, it is made available for use in a virtual environment. The detection of the real world object provides an identifier of the object which is correlated with information regarding how to represent the object in the virtual environment, how the object may be utilized in relation to other objects in the virtual environment such that the real world object is modeled in the virtual environment, and the like. The detection of multiple real world objects may be performed and identification of each of the multiple objects may be used to determine how these objects may be utilized together in the virtual environment.

45 citations


Journal Article
TL;DR: This paper surveys the existing slicing techniques for object-oriented programs and briefly reviews the available techniques in slicing of concurrent object- oriented programs.
Abstract: This paper surveys the existing slicing techniques for object-oriented programs. Many commercial objectoriented programs are concurrent in nature. Concurrency is typically implemented in the form of multithreading or message passing using sockets or both. We therefore review the available techniques in slicing of concurrent object-oriented programs. Another trend that is clearly visible in object-oriented programming is client-server programming in a distributed environment. We briefly review the existing techniques for slicing of distributed object-oriented programs

35 citations


Journal Article
TL;DR: In this paper, the authors define a mathematical model for distributed object-based stochastic hybrid systems (OBSHS) and propose a formal OBSHS specification language in which system transitions are specified in a modular way by probabilistic rewrite rules.
Abstract: In practice, many stochastic hybrid systems are not autonomous: they are objects that communicate with other objects by exchanging messages through an asynchronous medium such as a network. Issues such as: how to compositionally specify distributed object-based stochastic hybrid systems (OBSHS), how to formally model them, and how to verify their properties seem therefore quite important. This paper addresses these issues by: (i) defining a mathematical model for such systems that can be naturally regarded as a generalized stochastic hybrid system (GSHS) in the sense of [6]; (ii) proposing a formal OBSHS specification language in which system transitions are specified in a modular way by probabilistic rewrite rules; and (iii) showing how these systems can be subjected to statistical model checking analysis to verify their probabilistic temporal logic properties.

Journal ArticleDOI
TL;DR: A family of models of coordination of distributed object systems representing different views, with refinement relations between the differentViews, is proposed, which are formalized in rewriting logic using the Reflective Russian Dolls model of distributed objects reflection.

Journal ArticleDOI
TL;DR: In this article, the authors propose an infrastructure of a responsive supply chain network, focusing on the deployment of the mcommerce technology which transforms a traditional supply chain networks to be more effective in coping with market changes.
Abstract: Purpose – This paper proposes an infrastructure of a responsive supply chain network, focusing on the deployment of the m‐commerce technology which transforms a traditional supply chain network to be more effective in coping with market changes.Design/methodology/approach – The proposed supply chain infrastructure embraces the concepts of distributed object technology, wireless markup language (WML), and extensible markup language (XML) schema to enable efficient data exchange among various data objects which reside in distributed platforms over geographically‐isolated regions, thereby leveraging the responsiveness of the entire supply chain network. A case study is conducted to evaluate the feasibility of the proposed model.Findings – Recent studies have found that wireless technology, mobile computing and internet programming techniques drive the development of mobile solution in various industries. Apart from location tracking of goods as well as relevant services, m‐commerce is able to play an importa...

Book ChapterDOI
29 Mar 2006
TL;DR: This paper addresses issues of how to compositionally specify distributed object-based stochastic hybrid systems (OBSHS), how to formally model them, and how to verify their properties by defining a mathematical model for such systems that can be naturally regarded as a generalized stochastically hybrid system (GSHS).
Abstract: In practice, many stochastic hybrid systems are not autonomous: they are objects that communicate with other objects by exchanging messages through an asynchronous medium such as a network. Issues such as: how to compositionally specify distributed object-based stochastic hybrid systems (OBSHS), how to formally model them, and how to verify their properties seem therefore quite important. This paper addresses these issues by: (i) defining a mathematical model for such systems that can be naturally regarded as a generalized stochastic hybrid system (GSHS) in the sense of [6]; (ii) proposing a formal OBSHS specification language in which system transitions are specified in a modular way by probabilistic rewrite rules; and (iii) showing how these systems can be subjected to statistical model checking analysis to verify their probabilistic temporal logic properties.

Patent
02 Jun 2006
TL;DR: In this paper, a system and method for obtaining loation and status information for a person, animal or object wearing a status device is described, where the status device transmitts location status through a distributed computer system to a locator device.
Abstract: A system and method for obtaining loation and status information for a person, animal or object wearing a status device The status device transmitts location status through a distributed computer system to a locator device

Patent
07 Aug 2006
TL;DR: In this paper, the content data is generated in an object-oriented database distributed over the network nodes, and a beacon data object is generated by the original node to hold the content and policy data that indicates how to terminate the beacon.
Abstract: Techniques for managing data distributed over nodes in a network include receiving, at an original node, content data that describes a physical entity that is not a router in a vicinity of the original node. In response to receiving the content, a beacon data object is generated in an object-oriented database distributed over the network nodes. The beacon holds the content data and holds policy data that indicates how to terminate the beacon. A node that has ownership of the beacon performs the step of terminating the beacon based on the policy data. Ownership of the beacon can be transferred so that the beacon stays associated with the physical entity, such as a room in a building, even as a mobile original node moves away from the physical entity. The content data can indicate conditions that invite responsive action, such as hazardous environmental conditions.

Proceedings ArticleDOI
02 Oct 2006
TL;DR: A novel algorithm for deterministic thread scheduling based on the interception of synchronisation statements based on shared data are protected by mutexes and client requests are sent to all replicas in total order, which is superior to other existing approaches.
Abstract: Determinism is mandatory for replicating distributed objects with strict consistency guarantees. Multithreaded execution of method invocations is a source of nondeterminism, but helps to improve performance and avoids deadlocks that nested invocations can cause in a single-threaded execution model. This paper contributes a novel algorithm for deterministic thread scheduling based on the interception of synchronisation statements. It assumes that shared data are protected by mutexes and client requests are sent to all replicas in total order; requests are executed concurrently as long as they do not issue potentially conflicting synchronisation operations. No additional communication is required for granting locks in a consistent order in all replicas. In addition to reentrant mutex locks, the algorithm supports condition variables and time-bounded wait operations. An experimental evaluation shows that, in some typical usage patterns of distributed objects, the algorithm is superior to other existing approaches.

Proceedings ArticleDOI
06 Mar 2006
TL;DR: The characteristics of distributed object models used in large-scale distributed software systems, including multiple heterogeneous embedded processors interacting with hardware co-processors and I/O devices, are summarized.
Abstract: This paper summarizes the characteristics of distributed object models used in large-scale distributed software systems. We examine the common subset of requirements for distributed software systems and systems-on-a-chip (SoC), namely: openness, heterogeneity and multiple forms of transparency. We describe the application of these concepts to the emerging class of complex, parallel SoC's, including multiple heterogeneous embedded processors interacting with hardware co-processors and I/O devices. An implementation of this approach is embodied in STMicroelectronics' DSOC (Distributed System Object Component) programming model. The use of this programming model for an architecture exploration of ST's Nomadik mobile multimedia platform is described.

Proceedings ArticleDOI
05 Jun 2006
TL;DR: An efficient location management scheme for object tracking in a multi-sink sensor network where users can inquire the locations of objects via any sink in the network through two distributed virtual tree construction algorithms.
Abstract: A wireless sensor network consists of many tiny sensor nodes. The distributed memory spaces of sensors can be considered as a large distributed database, in which one can conduct in-network data processing. This paper considers a sensor network used for object tracking where distributed location updates and queries are performed inside the network. Although this issue has been intensively studied for cellular networks, the same problem in sensor networks has very different characteristics. In this paper, we propose an efficient location management scheme for object tracking in a multi-sink sensor network where users can inquire the locations of objects via any sink in the network. A message-efficient algorithm that describes how to perform location updates and queries is proposed. Furthermore, two distributed virtual tree construction algorithms are also presented. The goal is to reduce the overall update and query cost. The efficiency of the proposed algorithms is evaluated and verified by simulations.

Proceedings ArticleDOI
27 Nov 2006
TL;DR: This paper focuses on replication middleware that allows for (but is not limited to) strict consistency of replicas since this is required by many real-life applications and presents a generalized architecture for both distributed object and service-oriented replication middleWare.
Abstract: Replication is a well-known technique to enhance dependability and performance in distributed systems. A plethora of replication middleware for distributed object systems has been proposed in the past decade. However, replication in service-oriented systems is still in its infancy. In this paper, we analyze some of the proposed service replication middleware solutions and compare them on an architectural level with object replication middleware. In particular, we focus on replication middleware that allows for (but is not limited to) strict consistency of replicas since this is required by many real-life applications. We identify six major infrastructure components and present a generalized architecture for both distributed object and service-oriented replication middleware. The result of our comparison is unambiguous: Replication middleware for service-oriented systems and distributed object systems (such as FT-CORBA) share many commonalities and only subtle differences caused by the different granularity of the replicated entity, or different transaction models.

Book ChapterDOI
01 Oct 2006
TL;DR: A set of procedures and measures for the BDA of distributed objects based on behavioral models (UML sequence diagrams) are proposed and applied to a case study to show its applicability and potential usefulness in predicting behavioral dependencies based on UML models.
Abstract: The development of Behavioral Dependency Analysis (BDA) techniques and the visualization of such dependencies have been identified as a high priority in industrial Distributed Real-Time Systems (DRTS). BDA determines the extent to which the functionality of one system entity (e.g., an object, a node) is dependent on other entities. Among many uses, a BDA is traditionally used to perform risk analysis and assessment, fault tolerance and redundancy provisions (e.g. multiple instances of a system entity) in DRTS. Traditionally, most BDA techniques are based on source code or execution traces of a system. However, as model driven development is gaining more popularity, there is a need for model-based BDA techniques. To address this need, we propose a set of procedures and measures for the BDA of distributed objects based on behavioral models (UML sequence diagrams). In contrast to the conventional code-based and execution-trace-based BDA techniques, this measure can be used earlier in the software development life cycle, when the UML design model of a system becomes available, to provide engineers with early insights into dependencies among entities in a DRTS (e.g., early risk identification). We also present a dependency visualization model to visualize measured dependencies. Our approach is applied to a case study to show its applicability and potential usefulness in predicting behavioral dependencies based on UML models.

Journal ArticleDOI
TL;DR: A systematic object-oriented methodology to build applications with remote access to industrial plants through Internet-like networks is proposed, which guides the designer regarding key issues, such as security, concurrency, distribution of alarms and monitoring information to different kinds of users.

Journal ArticleDOI
S. Vinoski1
TL;DR: If you need to glue together multiple technologies, such as databases, lightweight directory access protocol (LDAP), XML messaging, remote procedure calls (RPCs), and distributed objects, the Ruby programming language might be the answer to help you do it.
Abstract: If you need to glue together multiple technologies, such as databases, lightweight directory access protocol (LDAP), XML messaging, remote procedure calls (RPCs), and distributed objects, the Ruby programming language might be the answer to help you do it

Patent
29 Dec 2006
TL;DR: In this paper, a system and method for generating object graph data and transmitting the object graph over a network is described, which is based on the idea of analyzing relationships between objects within a network of objects to determine an object network structure.
Abstract: A system and method for generating object graph data and transmitting the object graph over a network. For example, a computer-implemented method according to one embodiment comprises: analyzing relationships between objects within a network of objects to determine an object network structure; generating object graph data representing the object network structure; serializing the object graph data and transmitting the object graph data over a network to a requesting computer; and interpreting the object graph data to render a view of the object network structure in a graphical user interface.

Book ChapterDOI
07 Nov 2006
TL;DR: A notion of spatial-behavioral typing suitable to discipline interactions in service-based systems modeled in a distributed object calculus is developed, building on a interpretation of types as properties expressible in a spatial logic.
Abstract: We develop a notion of spatial-behavioral typing suitable to discipline interactions in service-based systems modeled in a distributed object calculus. Our type structure reflects a resource aware model of behavior, where a parallel composition type operator expresses resource independence, a sequential composition type operator expresses implicit synchronization, and a modal operator expresses resource ownership. Soundness of our type system is established using a logical relations technique, building on a interpretation of types as properties expressible in a spatial logic.

01 Jan 2006
TL;DR: It is thought that making a well designed system that is also instrumented to be learned, understood and changed could have a large positive impact on many areas of computing.
Abstract: Intellectual Merits: A large number of the most important ideas and intellectual contributions of this system are new (or are non-mainstream ideas from the past that will appear new) disposed in powerful and often novel ways. Those we find particularly interesting are: how the bootstrapping is done, a “universal object” approach to end-user facilities, alternatives to “OS”, “apps”, “web”, etc., use of roles instead of inheritance, symmetric messaging and events, invertible processes, labeled histories, distributed objects, protection, separation of meanings from optimizations, coherence and persistence of meanings, instrumentation for many kinds of self-disclosure and explanation, new ways to program for end-users and adepts, etc. Broader Impacts: Most early learning of programming is done in a non-scalable way, somewhat equivalent to banging together a doghouse with nails and planks. What is learned doesn’t scale well by a factor of 5, let alone factors of 100+. Even more critical is that the deeper mathematics-like nature of the most powerful ideas in computing are poorly described and learned via papers: even if they are read, this is a difficult form for learning and understanding. We think that making a well designed system that is also instrumented to be learned, understood and changed could have a large positive impact on many areas of computing. It would constitute an example, and a kind of “the system is the curriculum” for learning many important powerful ideas, especially for teenagers, university students, and in the 3 rd world, where there is a pool of literally billions of potential computer users and authors, who could make great use of a simpler stronger approach to personal computing and explanation. Outline of the Proposal: 1. We start by giving an abstract of what we mean by “a whole personal computing system”. 2. Then we show suggestive examples of some of the design approaches we expect to take. 3. Some of the technical details and powerful principles will be discussed 4. Then we outline how we plan to go about making the system over a period of several years 5. We end with discussions of collegial relationships, education, dissemination, etc.

Proceedings ArticleDOI
25 Apr 2006
TL;DR: This work describes many interesting applications and commonly-used algorithms for which TBO~Ns are well-suited and provides a new (non-tool) case study, a distributed implementation of the mean-shift algorithm commonly used in computer vision to delineate arbitrarily shaped clusters in complex, multi-modal feature spaces.
Abstract: The increasing availability of high-performance computing systems with thousands, tens of thousands, and even hundreds of thousands of computational nodes is driving the demand for programming models and infrastructures that allow effective use of such large-scale environments. Tree-based overlay networks (TBO~Ns) have proven to provide such a model for distributed tools like performance profilers, parallel debuggers, system monitors and system administration tools. We demonstrate that the extensibility and flexibility of the TBO~N distributed computing model, along with its performance characteristics, make it surprisingly general, particularly for applications outside the tool domain. We describe many interesting applications and commonly-used algorithms for which TBO~Ns are well-suited and provide a new (non-tool) case study, a distributed implementation of the mean-shift algorithm commonly used in computer vision to delineate arbitrarily shaped clusters in complex, multi-modal feature spaces.

Patent
10 Aug 2006
TL;DR: In this article, the authors present an apparatus and a computer software product for the conceptioneering, predesign and configuration of a machine object represented by an object data model, where component objects are stored in an object database, wherein a component object contains at least one parameter object.
Abstract: The invention concerns an apparatus and a computer software product for the conceptioneering, predesign and configuration of a machine object represented by an object data model. Component objects are stored in an object database, wherein a component object contains at least one parameter object. In addition the database contains functional objects. The modeling approach implemented by the separation according to the invention of component objects and functional objects permits a distinction to be drawn between constraints within a component object and constraints which exist between component objects. The former are embraced by the component objects themselves and the latter by the functional objects. That encapsulation has in particular the advantage that the modeling process can be substantially clearer. In addition encapsulation permits re-use of the component objects in various systems.

Book ChapterDOI
14 Jun 2006
TL;DR: A novel approach to fault-tolerance in distributed object-based systems using the fragmented-object model to integrate replication mechanisms into distributed applications and the support of deterministic multithreading in replicated objects is described.
Abstract: This paper describes a novel approach to fault-tolerance in distributed object-based systems. It uses the fragmented-object model to integrate replication mechanisms into distributed applications. This approach enables the use of customised code on a per-object basis to access replica groups and to manage consistency. The addition of fault tolerance to the infrastructure has only little overhead, is fully transparent for clients, and does not require internal modifications to the existing middleware. Semantic annotations at the interface level allow the developer to customise the provision of fault tolerance. Operations can be marked as read-only to allow an execution with weaker ordering semantics or as parallelisable to allow true multithreaded execution. A code-generation tool is provided to automatically produce object-specific fragment code for client access and for replica consistency management, taking into account the annotations, the interface specification, and the non-replicated implementation. A further contribution of our code-generation approach is the support of deterministic multithreading in replicated objects.

Journal ArticleDOI
TL;DR: The work described in this paper solves one key problem for static analysis of RMI programs and provides a starting point for future work on improving the understanding, testing, verification, and performance of R MI-based software.
Abstract: Distributed applications provide numerous advantages related to software performance, reliability, interoperability, and extensibility. This paper focuses on distributed Java programs built with the help of the remote method invocation (RMI) mechanism. We consider points-to analysis for such applications. Points-to analysis determines the objects pointed to by a reference variable or a reference object field. Such information plays a fundamental role as a prerequisite for many other static analyses. We present the first theoretical definition of points-to analysis for RMI-based Java applications, and we present an algorithm for implementing a flow- and context-insensitive points-to analysis for such applications. We also discuss the use of points-to information for corrupting call graph information, for understanding data dependencies due to remote memory locations, and for identifying opportunities for improving the performance of object serialization at remote calls. The work described in this paper solves one key problem for static analysis of RMI programs and provides a starting point for future work on improving the understanding, testing, verification, and performance of RMI-based software