The present invention concerns a method and system for transient access to multimedia data using devices attached to a communications network. Specifically, the method and system enable Web Services to be deployed in an ad-hoc fashion on networked computing devices using taskable mobile agents. The invention is applicable in distributed systems such as enterprises and Internet.
In typical distributed systems it is not unusual to find Web Services (or more generally, Service Oriented Architectures) supporting information exchange, transactions, and tasking. Similarly, it is not unusual in domains such as manufacturing, aerospace, and military, to find an infrastructure for software agents allowing flexible, scalable, autonomous computing and tasking. A service is an application whose main service control logic is via its user-modifiable data. Service data is the data behind the service. The present invention concerns a framework which begins to enable the best characteristics of both of the above scenarios in which a Web Service that is designed such that calls to its operations allow the exploitation of the device service data is transported to, and deployed upon, a remote device. The Web Service implementation arrives at the device encapsulated within a mobile agent (sent by a controller user); upon arrival the mobile agent ‘deploys’ the software required to realize the Web Service's deployment. Once deployed, the Web Service acts as a facade to the node's stored multimedia data (e.g. documents, images, and songs) allowing other clients to exploit the data, either transparently or quite visibly to the node's user. Exploitation of the multimedia data can be anything from mining business intelligence, to image sharing, to alerting and entertainment. At a later time the ad-hoc service is torn down from the device or terminates. Ad-hoc service is a software entity that implements a gateway pattern, encapsulating transient access to service data.
There are many realistic scenarios in present day distributed multimedia systems which can advantageously use what is hereinafter sometimes referred to as Ad-Hoc Services (AHS); that is, those services that are lightweight, agile, and provide transient but important access to stored information via well-established Web Service protocols, such as the Simple Object Access Protocol (SOAP). SOAP is described, for example, at W3C Web Services, http://www.w3.org/2002/ws/ which is incorporated herein by reference. Ad hoc services transiently inhabit corporate desktops and mobile devices such as cellular phones; all the while, their lifecycles are mostly transparent to the owner of the device on which they operate. Ad hoc services are desirable when: there is no central server indexing distributed multimedia contents of remote devices; there is some competitive advantage that can be gained from remote data exploitation; or a “thin” transparent approach is desirable.
In peer-to-peer file-sharing, file-sharers make up what is sometimes called the transient Web. Unlike permanent Web nodes, transient Web nodes come and go in unpredictable fashion with variable network addresses. In the mobile agents realm, a special-purpose software infrastructure in combination with a communications protocol allow autonomous software entities (each with some goal, a plan, and policies admitting interaction) to migrate from node to node while coordinating with other resources to achieve a goal.
A Web service is, a software system designed to support interoperable machine-to-machine interaction over a network. For clients, a Web Service's interface is described in a machine-processable format and for access the client uses the Simple Object Access Protocol messages (usually over HTTP). In the networking universe, ad-hoc networks are autonomous networks that do not rely on fixed infrastructure. Within the network each node serves as a router and forwards packets for other nodes; the topology continuously changes.
The AHS approach, in which transient Web Services are transported and remotely controlled by mobile agents, enables powerful and feasible new information exploitation opportunities.
In the AHS approach there are benefits usually associated with the mobile agents and Web Services approaches. That is, by deploying Web Service logic to remote machines via autonomous mobile agents the result is the flexibility and taskability usually seen in agents deployments (military, industry, etc). By conforming to SOAP and Web Services specifications, for example, there are access mechanisms that are easily and universally exploited.
In accordance with the teachings of the present invention, referred to as the AHS approach, transient Web Services are transported and remotely controlled by mobile agents, thereby enabling powerful new information exploitation opportunities. For example, PC and cellular phone operating systems are now capable of running (small-footprint) agent-environments and Web Servers. Furthermore, most of these computing devices contain several built-in multimedia applications such as calendars, instant messaging (IM) and cameras. Ad hoc services, therefore, have a rich field of untapped multimedia service data.
AHS has followed from experience with Agent-based NGN (next-generation-network) Services integration. The principal design requirements for AHS include: (1) facilitate information exploitation by making more systematic (and transparent) the process of mining information from user devices; (2) serve as a multimedia data exploitation tool in deployments where no central server indexes device multimedia data; (3) exploit off-the shelf and standard software and protocols such as Web Services (e.g. SOAP) and agent software and standards (e.g. JADE or FIPA); and (4) lightweight software components, in terms of memory footprint and complexity.
To the extent that AHS operation requires some pre-loading and setup of software on networked devices, devices can be programmed such that the setup occurs automatically upon device ‘startup’, as a system service, and the like. Thus, the setup phase can be transparent and unintrusive to the device owner and/or user.
Three typical AHS uses envisioned in the present invention which help to illustrate the benefits of the framework are as follows:
Lightweight Corporate Information Mining. AHS service is deployed to, and activated via agents on, networked devices of employees, exposing Calendar, Inbox, and Notes service data to authorized clients. The AHS services on employees' devices are later torn-down. The whole process is transparent to, but allowed by, the employee.
Mobile Device Applications and Mining. An AHS service is deployed to a Java-enabled smart phone or wireless PDA and with permission exposes shared contacts, phone numbers, recent calls or other potentially useful information. A service consumer manipulates a subset of this information and subjects it to exploitation algorithms.
Overriding Desktop Application (Calendar) Semantics. Powerful use-cases in which an AHS service is deployed to a user's desktop and allows the remote backup of the device current calendar data. Once backed up, the calendar screen can be temporarily exploited for any other purpose; for example, the ‘week’ view can be used as an output screen.
It will be understood that the invention is not limited to solely these uses which are presented merely as illustrative examples.
A principal object of the present invention is therefore, the provision of a method and system for transient access to multimedia data using devices attached to a communications network enabling Web Services to be deployed in an ad-hoc fashion on networked devices using taskable mobile agents.
Another object of the present invention is the provision of a method and system where transient Web Services are transported and remotely controlled by mobile agents for enabling information exploitation.
Further and still other objects of the present invention will become more clearly apparent when the following description is read in conjunction with the accompanying drawings.
Referring now to the figures and to
Service creation, i.e., the service that façades a device-resident multimedia service.
Deploying the service to a remote device.
Controlling the service lifecycle.
Providing access to the service, including controlling security and privacy. ‘Ad hoc’ does not imply that security will not be enforced.
Subsequent exploitation of the device data.
Service creation shown in
Service deployment shown in
In the exploitation phase shown in
The Web Services lifecycle is controllable by the mobile agent 214 of the device 202, and, accordingly, by the controller 200 which can send messages to the mobile agent 214. For example, if a user at the controller GUI wishes to immediately tear-down the ‘Microsoft Office Miner’ service on a particular device, the mobile agent resident on the device stops the process implementing the service, stops the process implementing the SOAP server (e.g. tearing down the web service), and cleans up any local libraries or data that may have been useful for the transient service but serves no purpose after the service has terminated. As a result there are two controllable lifecycles: the first is the lifecycle of the Mobile Agent that transports the service, and the second is the lifecycle of the service on the remote device. Once transported and executing, the Controller could choose to terminate either one of these 2 controllable lifecycles independently. The remote lifecycle control could occur from a remote centralized point (e.g. an administrator's PC), or from multiple distributed Controllers.
Ad-hoc Service access/exploitation phase as shown in
Lightweight and agile are two attributes of the AHS framework. Lightweight refers to small-as-feasible memory footprint of software components and agile refers to mobility, life-cycle control, and cross-platform compatibility. In order to accomplish a lightweight and agile AHS framework, different software technologies can be exploited. For example, XSOAP is a lightweight implementation of SOAP for Java and C++. It is a Java RMI implementation that adds SOAP compatibility. It has been tested for compatibility against several Web Services implementations such as Apache. eSOAP is a commercial SOAP server, written in C++, for embedded systems.
XML parsing is an important part of parsing SOAP bodies and message payloads in AHS, particularly since parsing can be very CPU-intensive. Several XML parsers implement the sleek and simple XMLPULL API, and have efficient realizations. MXP1 is one such parser, with a Java.jar file size of less than 20 Kb. MinML is an experimental XML parser designed to run on memory-starved devices and embedded systems; e.g. those that have less than 512 Kb RAM. Implemented in Java, it supports SAX1 document models. The distribution file has a small 14 Kb footprint.
The Java Agent Development Environment (JADE) is one of several mobile agent platforms, but one of the few with support for FIPA standards. JADE allows developers to easily program distributed agent implementations. The Lightweight Extensible Agent Platform (LEAP) is a sophisticated port of JADE to the J2SE, J2ME and PersonalJava. A version of LEAP for PalmPilot, for example, has a reduced heap memory footprint of 86K. While JADE is used in some embodiments of the invention, it will be apparent to those skilled in the art that any similar framework could be used as a mobile agent framework.
Two important Web Services protocols, namely Universal Description, Discovery and Integration (UDDI) and the Web Services Description Language (WSDL), are preferred components of the Web Services.
In UDDI a business entity registers Business Services, each registered business service has a BindingTemplate describing a Web service at a particular address (access point). Good results are achieved when a new use-type value called adHocEndpoint is defined and used to describe AHS services (i.e. it captures better the semantic of ad hoc services)
The Web Services Description Language (WSDL) is a format for describing both the abstract service functionality (i.e. messages sent and received) and the concrete details of the services implementation (e.g. network addresses bindings to transport and wire formats). WSDL feature and property tags are used to express the start-time and end-time directly at the service description level.
W3C Ontology Web Language (OWL) is a sophisticated ontology language, although lesser degrees of sophistication can be achieved through XML Schema and RDF-based ontologies. Modeling multimedia content is important in AHS. For example, characterizing multimedia data and determining which native access methods apply are important considerations. In addition, since exploiters may be software agents, results from queries such as “get all photos stored in the device home directory” must be self-describing and parseable. Accordingly, an embodiment of the present invention exploits OWL and semantic Web technology.
A prototype version of the AHS framework leverages the Sun Java JDK 1.4, JADE 2.6 Agent Environment, and various software toolkits.
The AHS agents and service implementations can both be ‘templated’ out. That is, they may be written once and then used multiple times. For example, an AHS that migrates to a remote device, reads all the Internet Favorites from the system, removes those pointing to Yahoo!, and terminates, comprises a class of AHS service. This example of a templated class could be chosen immediately after its implementation, or, at any later time when a Controller wishes to relaunch the AHS, directed at a new set of devices. The destination device addresses are parameterized making the procedure repeatable and scalable.
AHS is not a Peer-to-Peer system, such as those used for file-sharing, nor is it a Grid Computing platform or single application such as SETI@home (a scientific experiment that uses Internet-connected computers in the Search for Extraterrestrial Intelligence). Rather, AHS provides transient access to multimedia data on devices attached to communications networks (e.g. next-generation networks or Intranets). AHS is much more agile and lightweight than OSGi and component mobility is an integral part of AHS which is not permitted in OSGi. In summary, the Ad-hoc Services framework: exploits inherent advantages of mobile code and information gathering occurs transparently to, but is authorized by, the device owner/user, so the services framework provides a transparent and flexible way to extract service data that is not already shared on servers. As a result enterprises achieve information awareness.
Having described and illustrated a method and system for enabling Web Services to be deployed in an ad-hoc fashion on networked computing devices using taskable mobile agents, it will be apparent to those skilled in the art that variations and modifications are possible without deviating from the broad principles and teachings of the present invention which shall be limited solely by the scope of the claims appended hereto.