REMOTE: REQUEST MANAGEMENT FOR TASK EXECUTION
EXPLANATION OF SERVICE
REMOTE provides users of wireless devices with new software applications (developed like web services) in order to avoid the dependence on the performance of their devices. REMOTE allows mobile user to browse available services, configure the execution parameters of the chosen one, and request its execution using a simple application that guides user actions through two steps:
- Service selection: the user can express his requirements and preferences at a semantic level and the system shows a graphical and hierarchical representation of the available services that match her/his request. For this task, the system makes use of a software service ontology described using DAML+OIL. Thus the user can navigate the service ontology, see the different features of the services (description, inputs, etc) and select the most appropriate one for her/his needs.
- Service execution: after the user selects a particular service, the system analyzes the semantic description of such a service, available in DAML-S format, and generates a user interface to allow the user to enter the input parameters of the service. Taking into account the service execution requirements, the system selects the best node to execute it. Once the service has been executed, the system presents the result of the execution to the user of the wireless device.
Our system supports three generic types of services:
- Locally executed services: they must be executed on the user's wireless device due to their nature (e.g., an MP3 Player) but no installation is required as services will "travel" to the user device and execute once there.
- Remotely executed services: these services are executed completely on high performance computers connected to the fixed network. Once the execution ends, the system returns the results to the user's wireless device (e.g., a differential equation system solver).
- Hybrid services: a part of the service is executed remotely and the other part is executed on the user's wireless device (e.g., net gaming).
Agents involved in the system:
- Alfred: It is an intelligent agent who stores information about the wireless device and about the user. It knows how to initialize all the utilities available in the ANTARCTICA system. Once the utility required by the mobile user is initialized, Alfred delegates the execution of the service on the corresponding specialized agents.
- The Ontology Manager agent: it is at the closest proxy and it is on charge of: 1) initializing the service discovering process, and 2) managing the remote service execution. In order to attend service discovering requests, it makes use of a system based on Description Logics to query the service ontology taking into account the user preferences.
- The Browser agent: it is created at the proxy and then it travels to the user's wireless device to help her/him to navigate the service catalog. Once the user has selected a service, this agent creates the most appropriate graphical user interface (GUI). Then the user enters the service input parameters through the GUI.
- The Executor agent: it is created at the proxy by the Ontology Manager agent to attend a service execution request. It analyzes the service semantic description and executes it where the Ontology Manager decided after analyzing the service execution requirements and taking into account the execution information received from the execution nodes.
- The Monitor agent: it resides at the service execution nodes, which are high performance computers interconnected with the proxy that allow software execution by incoming agents. The Monitor agent measures some features (like processor speed, free disk space, remote communication speed and free memory) and sends this information to the Ontology Manager.
We have developed REMOTE using agent-based technology and Java JDK1.3. After analyzing some available autonomous agent platforms we chose Tryllian, because it provides the system with some important features like persistency and habitat security.