2.4 Other Approaches
2.4.2 Location Approach
G
G’ G’’
P1 P2
P1 P2
Change Plans
Change Actions
Status Plan Request Goal
Management
Change Management
Component Control
Figure 2.5: Architectural framework
components for adaptive changes in distributed systems. Unlike mine, the adaptation in their approach can’t be reused. When environment changes frequently occurred in such system, their research can’t be suited well.
• The dynamic relocation of software components may be viewed as an adaptation of distributed system architecture.
• Evolved the semantics of inter-component reference dynamically for adaptation.
Unlike the FarGo system, Ben-Shaul et al. proposed another system called Hadas [5][34][7]. It was designed to adapt to changes in distributed applications. Adaptation is a major element of Hadas and it dynamically supports the deployment of existing software components and autonomously addresses sites.
In particular, 1) Each software component in Hadas can be defined by users. 2) As each component is mutable, it extends a special class of adaptive objects termed Ambassadors, which can dynamically be deployed to the remote side of computers. 3) Each software component has an interface consisting of methods and data members, which can be evolved at runtime. 4) Each component contains two sections, the first is a fixed section, and the second is an extensible section. The data items and methods of the components are defined in the former as class-based items that may not be changed during their lifetimes. The latter comprises the mutable portion of the components through their structures and behaviors to dynamically adapt to changes. For instance, new/old items (data, objects, or methods) can be dynamically added/removed or changed for components on-the-fly. 5) Through Hadas’s built-in meta-methods, which are responsible for structural and behavioral changes, individual components adapt themselves to changes in distributed applications. Readers can find detailed samples in their previous work [5][34][7].
Both of their approaches provided migration of software components for adap-tation from the adaptability perspective. Their major distinction was the FarGo systemfs focus on reference as the subject of adaptability; whereas, Hadasf focus was on the definition of software components.
These studies represented two location research projects for adaptation, and they were very similar to my research. I also used the relocation of software components to adapt themselves to changes on distributed systems. However, their research and mine had two major distinctions. First, I not only migrated the source code, but also migrated the state of software components to destination computers for adap-tation. However, their research just migrated source code for adapadap-tation. When changes occurred, the software components could not be restarted to immediately deal with their tasks, whereas those in my research could. Second, Hadas compo-nents could define changes by users inside of compocompo-nents; however, I distinguished adaptation concerns from business logic concerns for adaptation. As Hadas provided
meta-methods embedded into components, neither of the components nor adaptive functions could be reused, whereas my research not only provided software compo-nents, but also user-defined adaptive programs that could be reused. I promoted these adaptive definitions to language level.
Suda and Suzuki [83] proposed a bio-inspired middleware system, called Bio-Networking, for disseminating network services in dynamic and large-scale networks that have large numbers of decentralized data and services. The system provides reusable software components for developing, deploying and executing cyber-entities (CEs). Low-level operating and networking details can be embedded in CEs, and high-level runtime services provided to adaptability to their services and behaviors.
In addtion, the system enables CEs to be replicated, moved, and deleted, like mine does. However, [83]’s policies for migration and duplication of agents has already been decided beforehand, and the users cannot define that in Bio-Networking middleware system. Conversely, mine proposal provides policy language to define adaptive con-ditions and behaviors for their systems to adapt to various changes. Furthermore, unlike mine system, Bio-Networking’s target is a large number of homologous com-puters, and the destinations of agent migrations depended on the number of service requests in addition to the locations of clients.
Wu et. al, and Fok et. al [99] [27] are focus on sensor networks. Wu’s group present a simplified analytical model for a distributed sensor network by using mobile agents. They formulate the route computation problem in terms of maximizing an objective function, which is directly proportional to the received signal strength and inversely proportional to the path loss and energy consumption [99], and Fok’s group presents a mobile agent middleware for self-adaptive applications in wireless sensor networks [27], called Agilla. It provides a programming model in which applications consist of evolving communities of agents that share a wireless sensor network. The agents can dynamically enter and exit a network and can autonomously clone and migrate themselves in response to environmental changes like mine. However, these approaches do not separate the adaptation from agents, therefore, their adaptation can’t be reused, and their proposals can not dynamically change the fixed system architectures.
Paolo et. al [4], and Gray et. al [31] proposed agent-based middleware for mo-bile computing. Such middleware facilitates service-specific optimization and allows
users to adapt to local resources. Mobile users can change locations and dynamically adaptive mobility-enabled applications to the properties and characteristics of their network connections and hardware devices. In addition, mobile agents simplifies dy-namic personalization by following user movements and tailoring service depending on personal preferences. Gray’s group described a mobile agent systemAgent Tcl[31]
that is under development at Dartmouth College. They present a system to support agents that provide network sensing and routing services. It support agents allow an agent to transparently migrate between a mobile computer and a permanently con-nected machine or between one mobile computer and another regardless of, when the mobile computers connect to the network. However, both of them did not separate the adaptation from agents, therefore, their adaptation can’t be reused.
Radu et al., presents a framework, called DACIA, for building adaptive distributed applications [52]. In DACIA, distributed applications are viewed as consisting of con-nected components that typically implement data streaming, processing, and filtering functions. It also provides mechanisms for runtime reconfiguration of applications to allow them to adapt to the changing of operating environments. The key contribution of DACIA supports migration of components from original host to different host dur-ing execution, while maintaindur-ing communication connectivity with other components.
The proposed approach is similar with mine, however the runtime reconfiguration of applications are difficult to be reused. Once the software components is relocated, the new reconfiguration could cause conflicts, in their paper, they did not consider this issue.
Ito et. al., [39] presents a communication infrastructure of agent-based middle-ware for ubiquitous computing environments. The proposed approach provide an adaptive communication mechanism that can select communication schemes flexibly, according to the properties of inter-agent communication, and resource status. In addtion, this mechanism enables the agent platform to adapt to various inter-agent communication requirements in a ubiquitous computing environment with limited resources. However, the proposed middleware doesn’t separate the adaptation from agents.