AXML 0403

43 %
57 %
Information about AXML 0403

Published on April 8, 2008

Author: Renato


Active XML:  Active XML Serge Abiteboul INRIA-Futurs and Xyleme Gemo Project By: Omar Benjelloun, Bernd Amann, Jerome Baumgarten Angela Bonifati, Gregory Cobéna, Ioana Manolescu, Tova Milo and more Outline:  Outline Introduction AXML AXML documents AXML peer AXML as a client AXML as a server Extensions Architecture et implementation Applications Warehousing Mobile computing P2P auctions Conclusion Introduction:  Introduction Preamble: The new context of distributed data management:  Preamble: The new context of distributed data management Standard for data exchange, XML Extensible Markup Language Labeled ordered trees XML query languages: XPATH, Xquery Standards for distributed computing: Web services SOAP, WSDL Simple Object Access Protocol Activation of methods on remote web servers Xquery Xpath SOAP WSDL XML Distributed information management on the web?:  Distributed information management on the web? Data integration Mediation: e.g., data integration Warehousing of web resources Hybrid data integration Web portals, enterprise knowledge, comparative shopping, procurement, business intelligence, … Data management for cooperative work Data management for mobile applications Digital Libraries, B2C, B2G, B2B, X2Y E-commerce, E-government, E-procurement, E-something Data management for ambient computing, grid computing Network management Distributed data management in P2P Information is everywhere:  Distributed data management in P2P Information is everywhere services XML XML services XML XML XML XML services XML services XML Web Web service Web service Data warehouses Databases Web sites PC, PDA, cell phones, home appliances, cars… Goal of Active XML:  Goal of Active XML Facilitate distributed data management Focus on data integration in a peer-2-peer context Make the information available everywhere independently of the nature source AXML is a declarative language and an infrastructure to support the language E.g., for data integration, complementary to techniques such as Information Manifold Active XML:  Active XML Active XML documents:  Active XML documents XML documents with embedded Web service calls (SOAP) Intensional Some of the data is given explicitly whereas for some, its definition (i.e. the means to acquire it when needed) is given Dynamic If the external sources change, the same document will provide different information Reaction to world changes XML + embedded service calls (omitting syntactic details):  XML + embedded service calls (omitting syntactic details) <resorts state=‘Colorado’> <resort> <name> Aspen </name> <scond>“Aspen”) </scond> <hotels ID=AspHotels > ….<city name=“Aspen”/>) </hotels> </resort> … </resorts> May contain calls to any SOAP web service :,… to any AXML web services to be defined Example: AXML document after service evaluation:  Example: AXML document after service evaluation <resorts state=‘Colorado’> <resort> <name> Aspen </name> <scond>“Aspen”) <depth unit=“meter”>1</depth> </scond> <hotels ID=AspHotels > …. (<city name=“Aspen”/>) </hotels> </resort>… </resorts> Not a new idea in databases Not a new idea on the Web:  Not a new idea in databases Not a new idea on the Web Mixing calls to data is an old idea Procedural attributes in relational systems Basis of Object Databases In HTML world Sun’s JSP, PHP+MySQL Call to Web services inside documents Macromedia MX, Apache Jelly Active XML peer :  Active XML peer Peer-to-peer architecture Each Active XML peer Repository: manages Active XML data with embedded web service calls Web client: uses Web services Web server: provides (parameterized) queries/updates over the repository as web services AXML peer soap From XML server to AXML peer:  q1($1,$2) From XML server to AXML peer XML XML q1(a,b) SOAP answer Internet Web client XML-server AXML-peer AXML AXML (A) XML AXML Web services: :  AXML Web services: Arguments: Active XML Result: Active XML Distributed computing: by sending data containing service calls, one can delegate some work to other peers Partial computations: by returning data containing service calls, one can give to the receiver the control of these calls AXML peer as a client:  AXML peer as a client The main novel issue: the evaluation of calls:  The main novel issue: the evaluation of calls When to activate the call Where to find its arguments What to do with its result How long with the returned data remain valid What exactly to exchange: to-call-or-not-to-call When to activate the call:  When to activate the call Explicit pull mode Frequency: Daily, weekly, etc. After some event: e.g., when another service call completed This aspect of the problem is related to active databases Implicit pull mode : Lazy When the data is requested Difficulty : detect that the result of a particular request may be affected by a particular call This is related to deductive databases Push mode E.g., based on a query subscription; the web server pushes information to the client E.g., synchronization with an external source This is related to stream and subscription queries Fun technical issue: lazy mode:  Fun technical issue: lazy mode Management of intensional data Materialize only the minimal set of relevant data Non recursive: Given a query and a document What are the portions of the document involved in the query What are the lazy Web services that may contribute to this portion of the document Recursive case: related to deductive databases What to do with its result (1):  What to do with its result (1) Hotels is a data container Its red child is its implicit definition The result, a forest, is placed under Hotels When called more than once, one needs to define the merge policy (as an attribute of sc) Policy: a web service that takes two forest (old and new) as input E.g., append, replace, fusion… Append Replace Local fusion What to do with the result (2) More complex fusion:  What to do with the result (2) More complex fusion Global fusion Fusion of a result forest with the entire document or some specific sub-tree of the document Based on XML-ID: fusion of elements with same ID With global fusion, it is not possible to control which portions of the document may be affected by a service call The lazy mode becomes unfeasible – need to systematically reevaluate the service The schema of the result may provide some indications Where to gets its arguments:  Where to gets its arguments Specified as children of the service call node May also contain service calls In particular, path expressions ../../city_name Difficulty: the semantics of the service call should not depend of the context of the call When passing an AXML document, all paths that are context-dependent should have been resolved To call or not to call city “Colorado” GetCapital city “Denver” How long will the returned data remain valid:  How long will the returned data remain valid 0 Just long enough to answer a query Mediation 1 day, 1 week, 1 month… Caching Unbounded It may remain forever: archive It may remain until the service is called again in replace mode Until some explicit deletion Warehousing Various portions of the document may follow different policies Hybrid Example: AXML document with control attributes:  Example: AXML document with control attributes <resorts state=‘Colorado’> <resort> <name> Aspen </name> <scond> <sc valid=“1 day” mode=“lazy” >“Aspen”) <sc> </scond> <hotels ID=AspHotels > <sc valid=“1 week” mode=“immediate” ><city name=“Aspen”/>) </sc> </hotels> </resort> … </resorts> What exactly to exchange (Sigmod03):  What exactly to exchange (Sigmod03) A parameter of a call contains some service calls The result of a call contains some service calls Do we have to evaluate these calls before transmitting the data or not Hi John, what is the phone number of the CEO of INRIA? (33) 0156 00 01 Look in the yellow pages at Larrouturou in INRIA’s directory Find his name at then look in the directory When exchanging data: to-call-or-not-to-call:  When exchanging data: to-call-or-not-to-call Alternative1 Send <city>“Colorado”)</city>) Alternative2 Call“Colorado”) Send <city>Denver</city>) Alternative3 Call“Colorado”) Call<city>Denver</city>) Send <t>25</t> Allow to control who does what city “Colorado” GetCapital When exchanging data: to-call-or-not-to-call :  When exchanging data: to-call-or-not-to-call Someone asks for information about Aspen Definition of an extension of XML schema that distinguish between Hotel* and () → Hotel* What is the expected type … SCond:sct… Hotels: Hotel* Evaluate all calls and return result … SCond:() → sct… Hotels: Hotel* Get the list of hotels that are not full and return result … SCond:() → sct … Hotels: () → Hotel* Do not evaluate any call and return result When to exchange data (digression):  When to exchange data (digression) Undecidable problem Some pspace complex subcase Muscholl, Schwentick, Segoufin Alternating tree automatas How is this controlled: typing :  How is this controlled: typing This is based on a compromise between client and server Server publishes a type for the service provided Client publishes a type for the service expected When sending a call, the client has to meet the requirements of the server When receiving a call, the server tries to meet the requirements of the client Problem (dynamic): given a document + a type + typing declaration for Web services, find which calls to evaluate to cast the document to that type Problem (static): find whether for any document of a particular type, there is always a rewriting to some target type AXML peer as a server:  AXML peer as a server Support for (continuous) queries and update of peer documents (provided proper access rights) Publish query services in Xquery, XOQL, XPATH…:  Publish query services in Xquery, XOQL, XPATH… AXML web services: defined using queries over AXML documents let service Get-Hotels($x ) be for $a in document(“")/resorts/resort, $b in $a//hotels/hotel where $a@name=$x return <h> {$b/name} {$b/price} </h> Continuous services – Push mode:  Continuous services – Push mode Being implemented Provide/use continuous services let service Get-Hotels($x ) be continuous Surveillance of the list of available hotels changes Test this regularly (every hour, day, week, etc.) What to do when a change is detected Notification Send the new list Send the delta with the old list Asynchronous services and sessions Change control and in particular management of replication Pub/Sub, etc. Slide33:  AXML web services: defined using XML-Update over AXML documents – similar to Xquery AXML ID-based fusion Argument: a forest of trees where all the roots have IDs Fusion of each tree in the forest with the sub-tree of the document whose root has the same ID Local fusion Argument: the ID of the tree to modify and of the tree to “merge” it with Both fusion May result in adding/modifying information May lead to an error: the update is rejected Publish update services Extension:  Extension Security Distribution and replication Security:  Security Peers exchange AXML documents containing service calls A server (resp. client) might ask the client (resp. server) to do something « bad »: <sc> </sc> <quote date=“july 8th 2002”> My heart was bumping <context>Nikoloz Tskitishvili, picked 5th in the NBA draft by the Denver Nuggets</context> <sc>« BMW Z3 »)</sc> </quote> Security - continued:  Security - continued Access rights in a peer P Access rights on the data managed by the peer For each client, the calls that P is willing to serve For each server, the calls that P is willing to request Control via the type of the arguments and result Trivial example (pure XML client): I accept no call; I send and receive only purely extensional data Distribution and replication (Sigmod03):  Distribution and replication (Sigmod03) Devices with limited capabilities Cell phone, pda, home appliances… Storage space Computational power Network bandwidth Therefore, we need to: Distribute the work among devices, by: Calling external services ( done !) Distributing documents across several devices (peers) Replicate documents and services, to allow for “local” computation and improve parallelism Distribution and replication:  Distribution and replication An AXML document may be distributed between several peers + some of it may be replicated Example:  Example Suppose that access to guides of resorts in Colorado is charged I may want to replicate the Aspen guide on my PDA (some of the data is intensional) I want it also replicated on a proxy Some of it may be only on the PDA (e.g., some pictures) The intensional data (e.g., temperature) has to be refreshed regularly on my PDA When I annotate the guide in my PDA, I want the annotations to be replicated on the proxy to be used by the entire family and my friends Query rewriting and optimization :  Query rewriting and optimization Query q q1 q2 Answer Web services are used to support query evaluation Update and synchronization :  Update and synchronization Update u u1 synchronization Web services are used to support synchronization Technical issues:  Technical issues A data model for AXML with distribution and replication Query and update language; by default, ignore distribution + replication Means to specify explicitly a particular copy Supported by AXML Web services Query evaluation Cost model Optimization and load balancing when there is replication Update propagation to support replication Decide which data and services to replicate to improve performances When replicating a service, need to replicate data that it uses for improving performances, need to adapt the code Architecture and implementation:  Architecture and implementation Global architecture:  Global architecture query read update SOAP wrapper SOAP SOAP AXML peer S3 SOAP service SOAP client AXML peer S1 AXML peer S2 AXML XML AXML AXML AXML store service descriptions AXML engine Query engine Implementation :  Implementation SUN’s Java SDK 1.4 XML parser XPath processor, XSLT engine Apache Tomcat 4.0 servlet engine Apache Axis SOAP toolkit 1.0 X-OQL query processor persistent DOM repository JSP-based user interface JSTL 1.0 standard tag library V0 – demo at VLDB’02 P2P auctioning system Status:  Status Prototype V0 available Work for V1 Implemented and not integrated in the system: Typing to control partial evaluation of arguments and result of calls Lazy evaluation Distribution and replication Continuous services Light peer on a telephone Illustration :  Illustration Applications that are being considered at different stages P2P Auction VLDB02 demo:  P2P Auction VLDB02 demo Each peer proposes auctions: Document myauctions.xml with the peer’s items and their current bids Services offered: getLocalAuctions(), status(auctionId) Each peer bids on auctions: Document mybids.xml with the peer’s bids Service offered: bid(peer,auctionId, amount) bidUpTo(peer, auctionId, increment, limit) Each peer knows about other peers’ auctions: Document allauctions.xml contains calls to other peers that transitively retrieve their known auctions. Service offered : getAllAuctions() When an auction closes, the winner is notified. Warehousing of Web resources :  Warehousing of Web resources Construction of warehouses with web data Global schema + high level spec (GUI)  compiled to AXML Services used to feed information, enrich it and monitor it Google search engine Crawler: Wget (Xyleme – not yet integrated) Classification (in Greece) Clustering XyDiff and site changes, etc. RNTL Project on food risk Mobile data :  Mobile data AXML peers as mobile entities Active data store with query capabilities Metadata and object profiles Storage services for mobile objects Processing services for mobile objects For mobile: use proxies to store private data, perform processing, provide specific services European Project DBGlobe on Globe computing Mobile data (continued):  Mobile data (continued) Light-weight AXML peers PDA, cellular phone, laptop… Limited storage, network bandwidth Sometime disconnected Limited functionalities Have to rely on proxies Support for continuous services based on a mail server and SMTP Need a naming scheme Mobile data (continued):  Mobile data (continued) Context awareness Where am I? (geographical position) Where is the « nearest » peer proxy? (network position) Active use of this information For providing context dependent data (e.g., time, temperature, nearest restaurants, etc.) For selecting services (e.g., choose a nearby proxy for caching) Network management:  Network management Use AXML exchange of information to configure hardware/software components Use AXML for component awareness Use AXML for re-configuration Experiments @INRIA-Rennes Ambient computing:  Ambient computing House appliances, cars, telephone, PDA, PCs, etc. carry AXML Exchange of information in AXML European project submission air@home Conclusion:  Conclusion AXML services:  AXML services A simple, data-centric, declarative way to use and create web services compatible with current standards for web service invocation A powerful means of rapidly deploying data-centric, P2P, Web applications Combination in a P2P context of Deductive databases (intentional information) Active databases Distributed databases Stream data and pub/sub Synchronous and asynchronous messaging Many issues Simple idea, complex system…:  Many issues Simple idea, complex system… Security Control of call activation via typing Access control Lazy evaluation and optimization Replication and distribution Mobility Termination Implementation Foundations And more Other issues that should be considered:  Other issues that should be considered Editor for AXML (person-machine interface) AXML peer on a mass storage XML repository More applications Merci:  Merci

Add a comment

Related presentations

Related pages

da885e30e98b8bed26de4543df9b2d6f.virus - Ist Diese Datei ...

AXML Dynamic Link Library; Foxiest; Conuko; FAEDS; DNSDELFT; Argentao; HTML Executable PDF Viewer Samples; UWWPE; Grandterre; Xlag's Skype Tool; Meist gelesen.
Read more
Read more

Business artifacts -

... Pierre Bourhis , Bogdan Marinoiu , Alban Galland, AXART: enabling collaborative work with AXML artifacts, ... doi>10.1147/sj.423.0403: Leading on ...
Read more

allegro-C Systemhandbuch 26 by Bernhard Eversberg - issuu

Konrad Lorenz077 337 S.087 3-7776-0403-8090 2647-36110 2 1 2=Bd. 2020 ¬Die¬ Erkenntnis der Natur : ...
Read more

Add visual test using monkeyrunner · garuma ... - GitHub

@@ -3,18 +3,24 @@ Microsoft Visual Studio Solution File, Format Version 11.00 # Visual Studio 2010 : Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC ...
Read more

mimetypeMETA-INF/container.xml1.0 urn:oasis:names:tc:opendocument:xmlns:container OEBPS/content.opf application/oebps-package+xml OEBPS/adxdk116.gifOEBPS ...
Read more

Patent US20100061534 - Multi-Platform Capable Inference ...

Multi-Platform Capable Inference Engine and Universal Grammar Language Adapter for Intelligent Voice Application Execution US 20100061534 A1
Read more

Decomposition of geometrical constraint systems with ...

... new algorithms, Journal of Symbolic Computation, v.31 n.4, p.409-427, April 1, 2001 [doi>10.1006/jsco.2000.0403] 10 ...
Read more