Active XML documents are XML documents that may include embedded calls to Web services. Hence, AXML documents are a combination of regular extensional XML data with data that is defined intensionally, i.e., as a description that enables obtaining data dynamically (by calling the corresponding service).
AXML documents evolve in time when calls to their embedded services are triggered. The calls may bring data once (when invoked) or continually (e.g., if the called service is a continuous one, such as a subscription to an RSS feed). They may even update existing parts of the document (e.g., by refreshing previously fetched data).
An AXML document is a (syntactically valid) XML document, where service calls are denoted by special XML elements labeled call. An example AXML document is given below. The figure shows first the XML serialized syntax, then a more abstract view of the same document as a labeled tree. The document in the figure describes a (simplified) newspaper homepage consisting of (i) some extensional information (the name of the newspaper, the current date, and a news story), and (ii) some intensional information (service calls for the weather forecast, and for the current exhibits). When the services are called, the tree evolves. For example, the tree at the bottom is what results from a call to the service f at weather.com to obtain the temperature in Paris.
<?xml version=”1.0″ encoding=”UTF-8″ ?>
<axml:call service=”email@example.com” >
NOTE: The above presented syntax is written from a scientific point of view, for a better understanting of the principles behing Active XML. For the syntax of an AXML document, version 2.0, please refer to documentation.
When exchanged between two applications/peers, AXML documents have a crucial property: since Web services can be called from anywhere on the Web, data can either be materialized before sending, or sent in its intensional form and left to the receiver to materialize if and when needed.
Answering a query on an AXML document may require triggering some of the service calls it contains. These services may, in turn, query other AXML documents and trigger some other services, and so on website builder software. This recursion, based on the management of intensional data, leads to a framework in the style of deductive databases.
Efficient query processing is, in general, a critical issue for Web data management. AXML, when properly extended, becomes an algebraic language that enables query processors installed on different peers to collaborate by exchanging streams of (A)XML data. The crux of the approach is (i) the introduction of best Website Builder generic services (i.e., services that can be provided by several peers, such as query processing) and (ii) some explicit control of distribution (e.g., to allow delegating part of some work to another peer).
AXML and the AXML algebra target all distributed applications that involve the management of distributed data. AXML is particularly suited for data integration (from databases and other data resources exported as Web services) and for managing (active) views on top of data sources. In particular, AXML can serve as a formal foundation for mash-up systems. Also, the language is useful for (business) applications based on evolving documents in the style of business artifacts, and on the exchange of such information. The fact that the exchange is based on flows of XML messages makes it also well-adapted to the management of distributed streams of information.