Middleware Framework for Resource Discovery in Mobile Environments

23 downloads 524 Views 172KB Size Report
basis for developing distributed applications on heterogeneous environments. Furthermore, a framework for collaborative environment in this architecture was.
In Proc. of The International Conference and Exhibition on Next Generation Mobile Applications, Services, and Technologies (NGMAST 2007), IEEE, Cardiff, Wales, UK, pp. 185-190, Sep. 2007.

Middleware Framework for Resource Discovery in Mobile Environments *

Jameela Al-Jaroodi and Nader Mohamed College of Information Technology United Arab Emirates University, P. O. Box 17555, Al Ain, UAE {j.aljaroodi, nader.m}@uaeu.ac.ae

Abstract In this paper, we introduce a middleware framework for collaborative resource discovery in pervasive environments. Collaborative resource discovery mechanisms are available to handle static to semistatic resources. However, incorporating dynamic mobile users introduces a different set of problems. First, how do we know when a resource becomes available? How do we identify the resource, its current location and its moving patterns? How do users know when a resource moves out? The introduced middleware framework provides mechanisms to dynamically discover resources, include them in the collective, and manage their mobility requirements. The framework involves the collaboration of software agents residing on the group members’ nodes to collect, organize and efficiently exchange information. Through this exchange the resources will be updated and the members will be able to maintain connectivity and collaboration while they are on the move.

Keywords: Pervasive Computing, Collaborative Agents, Middleware Framework, Resource Discovery.

1. Introduction Pervasive computing (i.e. systems that are unobtrusively embedded in the environment, completely connected, intuitive, effortlessly portable, and constantly available) is gaining momentum as a driving force for distributed and applications. The enabling technologies for this trend include wireless networks, mobile computing, and middleware. Mobile devices (such as PDAs, mobile phones, and sensors), wireless networks, and middleware services can be collectively used to form powerful collaborative applications for mobile users thus forming a pervasive computing environment. Resource discovery is an important aspect of efficient utilization of computing resources; therefore, many research efforts have been invested in the issue. In

general, most resource discovery approaches address the issues of information resources on the Web, peer-to-peer networks and large distributed databases. Furthermore, very few of these approaches address the issues related to physical and computing resources that support distributed environments such as heterogeneous clusters and mobile networks. More importantly, very few discuss resource discovery as a middleware service. The initial research in distributed systems middleware architecture  0 provided a basis for developing distributed applications on heterogeneous environments. Furthermore, a framework for collaborative environment in this architecture was developed  [2] earlier for static distributed environments. In this paper we move towards applying similar middleware collaborative techniques for pervasive systems. We aim to explore, in terms of resource discovery, the design issues for these environments and the requirements. Then a middleware framework for the mobile environment is introduced to facilitate pervasive applications and provide efficient collaborative resource discovery mechanisms. In this paper, Section 2 is an overview of related work and Section 3 discusses resource discovery concepts. Section 4 introduces the middleware framework, while Section 5 discusses the collaborative resource discovery mechanism in the framework. Finally, Section 6 concludes the paper.

2. Related work Mobile devices with networking/computing capabilities like Cell phones, PDAs (Personal Digital Assistants), GPS (Global Positioning System) devices and hand-held computers have made pervasive computing possible at various levels. However, the heterogeneity of these devices and the variety of available resources pause several challenges that need to be resolved to enable a wide range of pervasive applications. Currently there is a lot of research being conducted in several disciplines that

*

This work is supported by a UAEU individual research grant # 01-04-9-11/07.

collectively would form the general pervasive model. Examples of this research are: collaborative systems, mobile ad hoc networks, mobile computing, in addition to distributed systems and middleware. The characteristics of collaborative systems are: the existence of fixed infrastructure, adaptability, non mobile and usually in flexible in terms of data transports, discovery mechanisms and protocols. To develop collaborative applications for mobile networks, there are several challenges  [20]: Intermittent/unstable network connections, user mobility and dynamic changes in location, and spontaneous and occasional initiatives for mutual actions. MoCA  [20] is a middleware architecture designed to support collaborative applications for mobile users. It is based on IEEE 802.11 and requires a partially static (structured) network to operate. Mobile Collaborative Systems, which allow collaboration via wireless network and mobile devices, still lack robust functionality and content representation support  [21]. The main enablers for such applications are context-awareness (location, time, system and device status, preferences, connectivity properties, and history) and adaptability  [17]. The authors discuss the functional requirements for middleware to support context-aware applications. The defining characteristics for such applications are: can adapt to the environment, can use any network type, are multitasking, and are more user-friendly. While the challenges are: adaptability, wireless communication, distribution of functionality, proximity, open standards and dynamic end-user systems In terms of middleware support, several research groups are working in the area. For example the authors explore an open approach to middleware implementation  [4] with the motivation to accommodate the demanding requirements for quality of service adaptation imposed by mobile multimedia applications. Middleware for wireless mobile networks was also studied in  [10]. Mobile computing presents major challenges for middleware to overcome  [9]. In particular frequent changes and poor network QoS. In addition, middleware heterogeneity exists, thus mobile client applications developed upon one type of middleware are unable to interoperate and utilize services implemented on an alternative type. The authors propose a configurable and dynamically reconfigurable middleware platform, named ReMMoC (Reflective Middleware for Mobile Computing), which allows mobile client applications to be developed independently of the underlying middleware technology. Furthermore, mobility raises new issues such as more dynamic context and limited computing resources  [8]. The authors propose a middleware, called 3DMA, which introduces three requirements: distribution, decoupling and decomposition. Mobile devices cannot identify where they are; therefore, it is important in some cases to provide mechanisms to find the location of a device to facilitate location-aware

applications. Companies like Intel are working towards making devices aware of their location  [7]. The MINEMA  [13] programme aims to unify European research on middleware for mobile environments to foster definition and implementation of widely recognized middleware abstractions for new and emerging mobile applications. It identifies several challenges such as the development of ad hoc, specialized middleware solutions that are hard to re-use in different contexts and the difficulty to create a unified abstraction for this middleware. Another major issue in pervasive computing is the need for efficient resource discovery and recovery mechanisms. Researchers introduced several approaches for resource discovery is in relation to mobile hosts and wireless networks. A statistical framework  [3] is described for resource discovery in distributed computing environments with mobile hosts. Denny et al. provide another example  [6], where the authors describe Mobiscope, a service for discovering moving resources and identifying their locations. Finally, there is also some limited research in systems resource discovery as part of a larger set of management and allocation services to support distributed computing in various environments such as clusters, the Grid, sensor networks, and networked systems. A mechanism for rapid resource discovery using metadata trading  [14] is discussed. SWORD  [15] [16]  is a scalable resource discovery service for wide-area distributed systems using a query mechanism to probe resources. Kong and Berry  [12] use the architecture model proposed by DSTC’s architecture unit to specify a general resource discovery system. NEVRLATE  [5] is another approach to provide resource discovery mechanisms in peer-to-peer networks using a twodimensional grid for resource registration and lookup. The classified advertisement (classad) matchmaking framework  [19] provides a flexible and general approach to resource management in distributed environment with decentralized ownership of resources. Based on the examples introduced, we arrive at some interesting observations: 1. Most resource discovery approaches address the issues of information resources on the Web, peer-topeer networks and large distributed databases. 2. Although some techniques address physical resources management, very few address the resource discovery issues to support distributed environments like heterogeneous clusters and pervasive environments. 3. Very few approach the issues of resource discovery as a middleware-level service. In this paper, we approach the issues related to resource discovery for collaborative applications in mobile environments as an integral part of the middleware framework.

3. Resource discovery

4. The framework design

Pervasive systems have a unique set of properties  [11] that affect the design and implementation process of their applications. Many of these are contextual, thus requiring awareness and reaction to the environment changes. Some of these properties include dynamic computing environments, variable network properties, changing use environments and heterogeneous user platforms. In addition, non-contextual properties are also important and must be addressed. For example; burst-type user access, need for immediate availability of services, and small user devices, thus low power, small memory and limited interface capabilities. Furthermore, middleware design for mobile applications differs significantly from that for large scale distributed systems. Several approaches were discussed for middleware design in particular for mobile systems  [18]. Here we define the combined requirements that need to be addressed when designing pervasive applications. One of the main components that would support mobile systems is the existence of an efficient resource discovery mechanism. This mechanism will allow various nodes to discover the others to establish and maintain connectivity. In addition, the discovery process will be capable of detecting changes to the system during the process. When a distributed application is in use the members involved form a group, which identifies the boundaries of the environment. In addition, the abstract group representation will allow members to join and leave the group dynamically. A node may join a group if it possesses the required participation criteria. Our goal here is to establish a framework that could support an active and efficient resource discovery of stationary and mobile members. We are looking at a design that would be able to detect when members join or leave the group and also detect their current status in terms of connectivity, activeness, and location. Resource discovery deals with issues of finding resources to match the applications demands. In pervasive systems, it is the physical resources and the computing services that need to be discovered. Generally, resource discovery is part of a larger set of services called resource management, which include: resource discovery, selection, allocation, monitoring, and deallocation. The discovery is an essential step in the process of managing mobile systems resources and providing applications with the optimal set of resources. Furthermore, the discovery process requires continuous access to all available resources in the system. As a result, the discovery process becomes more complex due to (1) the increasing size of the group, and (2) the mobility of the group members.

Within a stationary group of users a hierarchical structure for self organization and collaborative resource discovery was introduced in  [2]. The middleware architecture (see Figure 1) includes a collaborative hierarchical structure at the middleware level that can support a large group of resources and efficiently manage them (see Figure 2). However this structure relies on the static location of resources and the underlying infrastructure. The introduction of mobile users adds to the complexity of the process and makes it difficult to maintain a fixed hierarchical structure. Many pervasive environments involve a mix of stationary and mobile members. Therefore, we base the framework design on the existence of at least one stationary reachable node. The remaining nodes may be stationary or mobile and can join/leave the group dynamically in an ad hoc manner.

Collaborative Application Middleware Framework (software agents) Network Services Figure 1. Architectural view of collaborative middleware framework.

the

The proposed framework is designed to take advantage of the hierarchical structure while being able to monitor and accommodate mobile resources as well. Each node in the group would be equipped with a software agent. The agents in the stationary nodes will initiate the process by establishing connections with each other. The group could then elect one node to be the group leader. TL

SL

A

SL M

A

A

M

TL = Top-Level Leader SL = Second-Level Leader A = Agent M = Mobile Agent L = Lower-Level Leader (MA Leader)

A

L

M

Figure 2. Example: Hierarchical structure of agents.

Leadership in this case is limited to topology and resource management issues (e.g. resource discovery and monitoring). It has nothing to do with the actual functionality of the group or the structure they use to collaborate. Therefore, the framework’s software agents are designed to be generic and would be usable in a wide range of applications. In the general types of collaborative and pervasive applications the group size is usually small and can be easily managed by one leader. However, if the group size grows and the interaction between the members is high, relying on a single leader is not efficient and not feasible. As a result, the leader agent is designed to have organization criteria that will allow it to decide when and how the group should be reorganized for better utilization of resources. In the proposed framework a leader agent should decide to break up the group in two cases: 1. When the size of the group reaches a given threshold, which results in less efficient management and slow responses. 2. When the amount of interaction between the leader and group members increases to a defined threshold value, which will cause the leader to be overwhelmed by administrative work, and not being able to do its actual functions as a collaborative group member. Thus, the structure will be divided into subgroups that will each elect their own leader, while the top-level leader maintains a high level view of the overall resources. In this case the second level leaders will handle the local resource management issues, while providing the top level leader with a collective view of their subgroups (i.e. for the top level leader the subgroup would be treated as a single large node with multiple resources rather than several independent nodes). At this stage the interaction between members will remain local if all members belong to the same subgroup. In case members need to interact with members in other subgroups, the connections are established through the second level leaders who in turn will interact through the top level leader. When the resources are discovered members are informed of the best way to contact the other subgroup members and they could then communicate directly. An agent on a mobile node will be responsible for advertising its existence and request to join the group. As soon as the initial organization is established each agent would listen to see if there are mobile nodes in range. Three possible scenarios may occur: 1. The top level leader makes the discovery. In this case the mobile agent is directly linked to the group through that leader and it is provided with the necessary connectivity information to collaborate with the rest of the group.

2. A second level leader makes the discovery. In this case the mobile agent joins that particular subgroup and receives its connectivity information from that subgroup leader to collaborate with other members. Here the second-level leader needs to update the top level leader with the new member information such that other subgroups would be aware of its existence. 3. A group member makes the discovery. In this case there are two options: a. The group member checks if the mobile agent is within range of its second level leader. If so, the mobile agent is directed to contact the second level leader and join the subgroup through it as in case 2. b. If the mobile agent is not within range of any of the leaders, the agent that made the discovery will form a subgroup (third level) with the mobile agent and pass that information to its leader. Interaction among members can be performed directly (when nodes have direct links to each other) or by using the routing capabilities of the agents to direct their communication when they have no direct connections. In addition, the mobile agent needs to maintain connectivity information including its distance from the leader and the strength of the signal. If the distance increases and/or the strength of the signal decrease, the mobile agent starts a new discovery process to find if there is another agent closer than its current leader. The mobile agent should then contact the new agent and establish a connection with it following one of the three scenarios described above. When the connection is established, the new agent takes over and the old connection with the previous leader is disconnected. As a result, the mobile agents will be able to adapt to their changing location and establish dynamic connections with the rest of the members as they move. The result of this interaction will be the formation of a hierarchical structure where the software agent will be handling the connectivity and availability issues and providing up-to-date information to the participating group members. The members will use this information to perform their distributed activities.

5. Dynamic resource discovery The agents take advantage of the established hierarchical structure to simplify many of their operations. They also utilize automatic startup and configuration mechanisms and dynamic agent allocations that reduce user involvement  [2]. The hierarchical structure also provides other advantages such as: (1) providing scalable mechanisms to easily expand the system. (2) Providing the update and recovery mechanisms for automatic detection of agent failure or relocation and techniques to report errors and adapt to changes. (3) Providing routing

capabilities in the leaders, to facilitate process communications across subgroups over multi-hop links. (4) Making the agents management and monitoring operations more efficient and less dependant on the full connectivity of all group members.

5.1 System Resources To manage resources during the application’s lifetime, information about the member nodes need to be collected and kept up-to-date. Any resource would have two types of attributes to describe it; quantitative and descriptive attributes. The quantitative attributes include measurable parameters such as processor speed and utilization, storage type and capacity, network bandwidth, latency and delays, and service execution time. In addition, mobile nodes also have signal strength, power level and distance from other nodes as attributes. These attributes are usually easily obtainable and can be compared to each other for selection and management purposes. In addition, some of these attributes are relatively static and can be collected once at startup time. However, many resources can change some of their attributes dynamically depending on the systems utilization, nodes locations and available connections. Resources also have many characteristics and descriptive attributes that are very helpful for system management. Information regarding the resource access policies, security levels, ownership, authentication rules, and reliability levels. These attributes define many of the resource characteristics and suitability of utilization by different applications. Furthermore, many of these are not directly comparable to each other and could lead to difficulties deciding on the utilization of resources when needed. Both types of attributes are necessary for any resource management service in a distributed environment. Although some of these attributes are static, many others dynamically change depending on the current state of the system and the applications utilizing it. As a result a continuous monitoring and collection of the status of these attributes is necessary to optimize utilization. However, this process is lengthy, time consuming and impose a large overhead on the distributed environment.

5.2 Discovery Mechanism We base this mechanism on the hierarchical structure established by the framework. As the agents establish their connections the process of resource discovery also starts. Agents will collaborate to collect the necessary information. Every leader will have to carry part of the overall responsibility of discovering and keeping track of the resources under their control. In addition leaders need to effectively communicate this information to other

leaders as necessary. At startup initial systems resources information are gathered and shared among leaders, this includes information about all members currently in the group including the mobile members. At this phase static attributes are identified, measured, and exchanged and the initial status of the remaining attributes are also collected. When a leader is elected, one of its initial duties is to collect the information as follows: 1. Initialize the resources database and identify local resources (within the node running the leader). 2. Collect resources information from the rest of the group. 3. Sort the information and maintain the two types of information (static and dynamic) separately. 4. Aggregate the information to provide a collective view of resources information that would be used by other nodes in the group. 5. Send the collective resource information to the rest of the nodes When information becomes available, agents and leaders communicate through the structure and agents collaborate to satisfy the user application requirements efficiently. The second phase is a periodic discovery task that monitors the dynamic attributes and keeps track of their status. In addition, leaders need to exchange some of this information, while maintaining low overhead on the system. In this phase, which continues throughout the agents and leaders lifetime, leaders are responsible for keeping the dynamic resources information updated and ready for use. The second level leaders poll members’ to detect any changes in their attributes. When significant changes occur such as a mobile node changing location and connectivity, the leader will update the top level leader about the changes. The top level leader will provide the updated information to the group members as needed. The periodic availability checks and updates can be fine-tuned to the system properties to minimize the number of checks performed. This mainly relies on the stability of the system used and the frequency of applications executions. If the system is stable and has low probability of failures and low-level mobility of nodes, then the period between checks can be set to be long, thus reducing the total messages exchanged. However, if the system includes unreliable components, connected through unreliable communications links, or mobile nodes change location frequently, the period should be short enough to discover failures and changes then recover quickly to minimize job failures. The combined efforts of the agents in the system will provide a complete view of the systems resources while minimizing disruption to the applications. The exchange of information is kept to a minimum due to the hierarchical organization of the framework.

6. Conclusion [7]

In this paper we introduced a middleware framework for collaborative resource discovery for pervasive applications on mobile distributed systems. The resource discovery process is a costly and complex operation and its costs increase drastically for large and dynamic environments. The framework introduced relies on software agents residing on the participating nodes and managing the process of resource discovery. The agents form a hierarchical structure that allows for a localized resource discovery within subgroups, thus reducing the overhead. In addition the subgroups strategically exchange information when needed to provide a complete view of the state of the system during its operations. Furthermore, the periodic monitoring allows for dynamically monitoring the changing resources and keeping track of mobile nodes. This allows mobile nodes to maintain connectivity and continuing their collaborative functions. The introduced framework however has one disadvantage, which is relying on the existence of at least one stationary node. Although this is generally the case foe many pervasive applications, we aim to further investigate the technique and develop a more flexible model that can mange the distributed environment even when all the nodes are mobile.

[8]

[9]

[10]

[11]

[12]

[13]

[14]

7. References [15] [1] Al-Jaroodi, J., N. Mohamed, H. Jiang, and D. Swanson, “Middleware Infrastructure for Parallel and Distributed Programming Models on Heterogeneous Systems,” IEEE Transactions on Parallel and Distributed Systems – Special Issue on Middleware, Guest Editors: R. Guerraoui and W. Zwaenepoel, IEEE, vol. 14, no. 11, pp. 1100 - 1111, November 2003. [2] Al-Jaroodi J. and N. Mohamed “Middleware-Level Collaborative Resource Discovery for Large Heterogeneous Clusters,” in proc. International Symposium on Collaborative Technologies and Systems (CTS05), St Louis, Missouri, May 2005. [3] Awduche, D. O., A. S. Gaylord, and A. Ganz, "On Resource Discovery in Distributed Systems with Mobile Hosts," in proc. International Conference on Mobile Computing and Networking, pp. 50 - 55, 1996. [4] Blair, G., G. Coulson, N. Davies, P. Robin and T. Fitzpatrick, "Adaptive middleware for mobile multimedia applications," in proc. Network and Operating System Support for Digital Audio and Video (NOSSDAV '97), St Louis, MO, 19-21 May 1997, pp. 245-254. [5] Chander, A., S. Dawson, P. Lincoln, and D. Stringer-Calvert, “NEVRLATE: Scalable Resource Discovery,” in proc. 2nd IEEE/ACM International Symposium on Cluster Computing and the Grid (CCGRID.02), Berlin, Germany, May 2002. [6] Denny, M., M. J. Franklin, P. Castro, and A. Purakayastha, “The Design of a Scalable Discovery Service for Moving

[16]

[17] [18]

[19]

[20]

[21]

Networked Resources,” IEEE Distributed Systems Online, IEEE, November 2003. Deshmukh, S. and J. D. Miller, “Location-Aware Computing,” in , Deviceforge.com (http://www.deviceforge.com/), Dec. 3, 2003. Fjellheim, T., S. Milliner, M. Dumas and K. Elms, “The 3DMA Middleware for Mobile Applications,” in proc. International Conference on Embedded and Ubiquitous Computing, Aizu-Wakamatsu City, Japan, August, 2004, pp. 312-323. Grace, P., G. S. Blair and S. Samuel, “Middleware Awareness in Mobile Computing,” in proc. 1st International ICDCS Workshop on Mobile Computing Middleware (MCM03), Providence, Rhode Island. May 2003. Hadim, S., J. Al-Jaroodi, and N. Mohamed, “Trends in Middleware for Mobile Ad Hoc Networks,” invited paper in the Journal of Communications, 2006. Kolos-Mazuryk, L., Poulisse, G.-J., Eck, P. van (2005). Requirements Engineering for Pervasive Services. Accepted for the OOPSLA-workshop on Building Software for Pervasive Computing, San Diego, USA, Oct. 16, 2005. Kong Q. and A. Berry, “A General Resource Discovery System for Open Distributed Processing,” in proc. 3rd IFIP TC6/ WG6.1 International Conference on Open Distributed Processing, Australia, Chapman and Hall, 1995, pp. 79 - 90. Middleware for Network Eccentric and Mobile Applications (MINEMA), http://www.esf.org/esf_article.php?language= 0&domain=1&activity=1&article=319&page=1059 Olukemi, T. O., “An Architecture for Resource Discovery in Distributed Communications, Systems,” in proc. London Communications Symposium, University College, London, UK, 2000. Oppenheimer, D., J. Albrecht, D. Patterson, and A. Vahdat, "Distributed resource discovery on PlanetLab with SWORD," 1st Workshop on Real, Large Distributed Systems (WORLDS 2004), December 2004. Oppenheimer, D., J. Albrecht, D. Patterson, and A. Vahdat, “Scalable Wide-Area Resource Discovery,” Technical Report UCB//CSD-04-1334, UC Berkeley, July 2004. Raatikainen, K. “Middleware for Mobile Applications Beyond 3G,” in Smartnet, 2002. Raatikainen, K., H. B. Christensen, and T. Nakajima, “Application requirements for middleware for mobile and pervasive systems,” ACM SIGMOBILE Mobile Computing and Communications Review, vol. 6, no. 4, October 2002, pp. 16 - 24, ACM Press, NY, USA. Raman, R., M. Livny, and M. Solomon, “Matchmaking: Distributed Resource Management for High Throughput Computing,” in proc. IEEE International Symposium on High Performance Distributed Computing, 1998, pp. 140 146. Sacramento, V., M. Endler, H. K. Rubinsztejn, L. S. Lima, K. Gonçalves, F. N. Nascimento and G. A. Bueno, “MoCA: A Middleware for Developing Collaborative Applications for Mobile Users,” in IEEE Distributed systems Online, October 2004. Su, X., B. S. Prabhu, C. Chu and R. Gadh, “Middleware for Multimedia Mobile Collaborative System,” in proc. IEEE ComSoc 3rd Wireless Telecommunications Symposium (WTS 2004), calpoly pomona, pomona, california, usa, May 2004.

Suggest Documents