• Enhance system performance by maximizing use of system resources, such as CPU, memory, and network bandwidth
• Distribute and allocate system resources according to application resource requirements
• Remote procedure calls extend traditional procedure calls to a distributed paradigm, allowing procedures in heterogeneous distributed platforms to be called as if they were local. The Open Group incorporated its RPC standard into the Distributed Computing Environment standard. Most Unix-based operating systems and many non-Unix systems support DCE's basic core of services.
• Transaction-oriented middleware aims to interconnect heterogeneous database systems. It supports the processing of distributed transactions across platforms, offers high performance and availability, and ensures data integrity.
• Message-oriented middleware provides asynchronous rather than synchronous interactions. That is, the client need not be synchronized with the server because the client deposits messages in a message container, such as a queue, which the server can collect at any time.
• Object-oriented middleware supports the remote invocation of object methods. CORBA, Java remote method invocation (Java RMI, http://java.sun.com/j2se/1.3/docs/guide/rmi/index.html), the Distributed Component Object Model (DCOM, www.microsoft.com/com/dcom.asp), and .NET are important OO middleware platforms.
• Component-oriented middleware is a recent evolution of OO middleware. It allows for the large reuse of software and introduces more reconfigurable capabilities into distributed applications. That is, component-based technology lets developers dynamically insert and replace pieces of binary code. Examples of these technologies include Enterprise JavaBeans (EJB, http://java.sun.com/products/ejb) and the CORBA Component Model (CCM). 11
Openness and flexibility. Priority transforms let the system change priorities during resource reconfiguration to accommodate external factors such as server load. The Dynamic Scheduling CORBA standard lets the system modify scheduling parameters during operation, giving dynamic applications more flexibility to adapt. In addition, Dynamic Scheduling provides language support (IDL definitions) for configuring processing, communication, and memory resources. Because it has no resource model for representing resources at multiple abstraction levels, its ability to support resource configuration and reconfiguration is limited.
Ease of use. RT-CORBA's distributable threads handle the complexity of large-scale applications. A distributable thread represents the processing resources of a coarse-grained distributed interaction. Expanding these threads to encompass communication and memory resources as well would improve the approach. In addition, this approach does not support the uniform representation of heterogeneous resources.
Openness and flexibility. The logical model is related to the Reference Model for Open Distributed Processing (RM-ODP) 18 computational viewpoint, which provides representation for a system's elements along with their logical interactions. In addition, the layered interpretation engineering model, which realizes the logical model, resembles both the RM-ODP engineering and technology viewpoints. Because we can apply the models recursively, they can represent various levels of abstraction. The UML scheduling profile also fully supports resource configuration at multiple abstraction levels. However, the standard focuses more on support for modeling real-time systems' QoS requirements and does not address resource reconfiguration issues directly.
Ease of use. The approach supports the separation of concerns, thus simplifying complex design problems by separating logical aspects from implementation concerns. Furthermore, because the logical and engineering models are detached, the logical model can be realized on several different platform configurations without modification. Hence, the standard provides tools to address the complexity of large-scale systems and presents a comprehensive resource model for representing heterogeneous resources uniformly.
• A scheduling spanning tree describes the execution path across multiple nodes of an application.
• A two-phase negotiation and adaptation protocol performs an admission control test on the associated spanning tree and propagates either a commit or an abort command along the tree.
Openness and flexibility. The ripple scheduling algorithm fully supports resource reconfiguration. RTARM offers both coarse- and fine-grained adaptation. The distributed session—the unit of resource management encompassing all the resources required for executing an application—supports coarse-grained adaptation. In case of resource contention, for instance, the system might suspend an entire application on behalf of a higher-priority one. Low-level SMs can achieve fine-grained reconfiguration. Although the framework provides mechanisms for resource reconfiguration, its support for static resource configuration seems limited.
Ease of use. A main strength of the RTARM framework is its generic resource model, in which SMs model different resource management components uniformly. Hence, it fully supports the management of heterogeneous resources. Using distributed sessions tackles the complexity of large-scale applications.
Openness and flexibility. In the ERDOS framework, systems reconfigure resources by performing QoS degradation and modifying the application graph structure. A hierarchical resource model allows both coarse- and fine-grained adaptation. Users can configure resources using an extended CORBA IDL; however, the extensions only partially capture the resource framework.
Ease of use. In large-scale applications, the application model lets users recursively encapsulate object interactions. A service's granularity can range from that provided by a single component to that of the entire application. Finally, users can model multiple types of resources uniformly; thus, the approach fully supports the representation of multiple resource types.
Openness and flexibility. QuO's adaptive mechanisms let users introduce dynamic changes according to monitored conditions. However, QuO offers no resource model for uniformly representing resources at different levels of abstraction, as do some of the approaches presented earlier. Thus, its flexibility for resource management is limited. Because the approach is RT-CORBA–compliant, it provides some support for both resource configuration and resource reconfiguration.
Ease of use. QDL removes some of the complexity of programming QoS. However, the approach provides no resource description language. In addition, the QuO/TAO approach focuses on single client-server interactions and doesn't directly support resource management for a large number of interactions. However, as an RT-CORBA–compliant ORB, it does provide support for dealing with large-scale applications. Finally, it gives no support for the treatment of heterogeneous resources.
Openness and flexibility. The finest granularity for a resource manager is constrained to a node-wide scope, hence limiting the possibilities for finer-grained resource reconfiguration. For instance, users can inspect a given node's CPU availability. Nevertheless, dynamicTAO provides no specific facilities for reconfiguring the resource usage of a single application or a particular application task running on a single node. Moreover, the approach's main focus is application adaptation, such as changing a video application's frame rate and dynamic customization of the ORB (core ORB component replacements) rather than resource adaptation. Although the prerequisite description format supports resource configuration, only coarse-grained configuration is feasible because a node is the finest granularity for a resource abstraction. So, partial support is offered for both configuration and reconfiguration of resources.
Ease of use. Resource managers partially support the representation of heterogeneous resources. The resources modeled by a resource manager are limited to clusters of resource managers (that is, collections of resource managers managed by higher-level resource managers) and a node's hardware resources. For instance, resource managers don't support separate modeling of communication resources. Although using hierarchical managers to cross node boundaries helps diminish the complexity of managing large-scale applications, dynamicTAO presents no abstractions for managing resources on a per-application or -session basis (as supported by RTARM and ERDOS). In this respect, it provides partial support.
Hector Duran-Limon is a lecturer in the Department of Computing Science at the Tecnológico de Monterrey. His research interests include resource management in adaptable middleware platforms and the role of reflection on such platforms. He is also interested in the use of ADLs and component-oriented techniques for constructing distributed real-time systems. He has a PhD from Lancaster University. Contact him at the Dept. of Computing Science, Tecnológico de Monterrey, Campus Guadalajara, Mexico; email@example.com. Web: http://academia.gda.itesm.mx/~hduran.
Gordon Blair is a professor of distributed systems at Lancaster University, an adjunct professor at the University of Tromsø, and a visiting researcher at the Simula Research Laboratory in Oslo. He has a PhD from Strathclyde University. Contact him at Dept. of Computing, Lancaster Univ., Bailrigg, Lancaster LA1 4YR, UK; firstname.lastname@example.org.
Geoff Coulson is a reader in distributed computing at Lancaster University. His research interests include middleware architecture, programmable networks, and network and operating system support for continuous media. He received his PhD in distributed multimedia systems from Lancaster University. He is a member of the ACM and the British Computer Society. Contact him at the Dept. of Computing, Lancaster Univ., Bailrigg, Lancaster LA1 4YR, UK; email@example.com.