Virtual Web Service, In this blog we propose an application of software agents to provide Virtual Web Services.
A Virtual Web Service is a linked collection of several real and/or virtual Web Services, and public and private agents, accessed by the user in the same way as a single real Web Service.
A Virtual Web Service allows unrestricted comparison, information merging, pipelining, etc., of data coming from different sources and in different forms.
Detailed architecture and functionality of a single Virtual Web Service is user-dependent, and information gathered from existing Web Services may be used in an individual manner. The main goal of the proposal is twofold. First, virtual services allow unrestricted personalization of any Web Service by user-defined software executed at both the server- and the clientside.
Second, virtual services provide efficient server-side monitoring and alerting once ¿vital¿ information provided by a real service is changed, and this change is of any interest to particular user.
In addition, the service users are able to define their own, non-standard interfaces to existing services without a direct interaction with the service provider (information owner).
This feature allows for user-specific versioning of services and continuous improvement of the service from the user point of view. By shifting the personalization aspects to the users, we reduce overall maintenance costs (from the service owner point of view) and improve system flexibility and fast adaptation to dynamic changes in the environment and evolving user requirements.
The VWS is composed of two private agents, more or less
five (depending on the just-served requests) system agents, and two Web Services.
Agent PA1 is an entry point to the service. There are three basic ways to contact this agent, so called contexts: SMS context, email context (both textual communication channels), and HTTP context (menu-based channel). To distinguish the code that is responsible for serving the above contexts, contextual interpretation is used.
To this goal, the “context” attribute of each ASL tag marks the visibility of the marked tag at the run-time in a given context. The default context is “any”, i.e., if not explicitly mentioned, the tag appears in any context and is always interpreted at run-time.
Contextual interpretation increases the clarity level of the ASL code, thus it may be effectively used to program ASL-encoded private agents
Agent PA1 invokes several system agents: SA2, the main gateway to the Web services, SA1, the naturallanguage/chatterbot parser and keyword detector, and SA3, the menu-based preprocessor converting menu-based
invocations to the standardized form.
On the contrary to the user-generated requests to the PA1 agent, an asynchronous contact is invoked by the VWS itself, by sending an SMS/MMS/e-mail message. To this end, PA2 agent is used for monitoring given external Web service and informing service owner (via selected personal communication channel) about detected information changes.
Agent PA2 uses some additional system agents SAm and SAn, in order to provide longlasting comparison for selected information changes (here: a price list) from a Web Service and alerting the agent owner once any change is detected.
The agent is executed according to the “cron” context (automatic code
execution at certain moment in time), periodically every 15 minutes excluding certain days of a week (here: Sundays) and night hours.
Note that the ASL code, as well as the internal organization of a Virtual Web Service, strongly depends not only on the agent owner and his/her individual programming skills, but also on the availability of certain system
agents, detailed way of parameterization of the invocations of these agents, etc. Thus, the above described service should be treated as a reference only, to provide some overview on the personalization level offered by the ACE agents.
We think that due to the contextual interpretation and several comments included, the code is selfdescribed and need no other explanation. However, the private agents presented here are only a small example of the possibilities of the ACE framework.