logging in or signing up AXML 0403 Renato Download Post to : URL : Related Presentations : Share Add to Flag Embed Email Send to Blogs and Networks Add to Channel Uploaded from authorPOINTLite Insert YouTube videos in PowerPont slides with aS Desktop Copy embed code: (To copy code, click on the text box) Embed: URL: Thumbnail: WordPress Embed Customize Embed The presentation is successfully added In Your Favorites. Views: 182 Category: Education License: All Rights Reserved Like it (2) Dislike it (0) Added: April 08, 2008 This Presentation is Public Favorites: 0 Presentation Description No description available. Comments Posting comment... Premium member Presentation Transcript 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 ConclusionIntroduction: IntroductionPreamble: 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 XMLDistributed 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 XMLActive 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> Unisys.com/snow(“Aspen”) </scond> <hotels ID=AspHotels > …. Yahoo.com/GetHotels(<city name=“Aspen”/>) </hotels> </resort> … </resorts> May contain calls to any SOAP web service : e-bay.net, google.com… to any AXML web services to be definedExample: AXML documentafter service evaluation: Example: AXML document after service evaluation <resorts state=‘Colorado’> <resort> <name> Aspen </name> <scond> Unisys.com/snow(“Aspen”) <depth unit=“meter”>1</depth> </scond> <hotels ID=AspHotels > …. Yahoo.com/GetHotels (<city name=“Aspen”/>) </hotels> </resort>… </resorts>Not a new idea in databasesNot 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 JellyActive 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 soapFrom 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) XMLAXML 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 clientThe 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-callWhen 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 databasesWhat 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 HybridExample: 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” > Unisys.com/snow(“Aspen”) <sc> </scond> <hotels ID=AspHotels > <sc valid=“1 week” mode=“immediate” > Yahoo.com/GetHotels(<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 www.inria.fr then look in the directoryWhen exchanging data: to-call-or-not-to-call: When exchanging data: to-call-or-not-to-call Alternative1 Send Unisys.com/GetTemp( <city> webster.com/GetCapital(“Colorado”)</city>) Alternative2 Call webster.com/GetCapital(“Colorado”) Send Unisys.com/GetTemp( <city>Denver</city>) Alternative3 Call webster.com/GetCapital(“Colorado”) Call Unisys.com/GetTemp(<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 resultWhen 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 typeAXML peer as a server: AXML peer as a server Support for (continuous) queries and update of peer documents (provided proper access rights)Publish query servicesin 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(“my.resorts.com/resorts.axml")/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 servicesExtension: Extension Security Distribution and replicationSecurity: Security Peers exchange AXML documents containing service calls A server (resp. client) might ask the client (resp. server) to do something « bad »: <sc>qod.com/QuoteOfDay </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>buy.com/BuyCar(« 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 friendsQuery rewritingand 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 andimplementation: Architecture and implementationGlobal 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 engineImplementation : 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 systemStatus: 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 telephoneIllustration : Illustration Applications that are being considered at different stagesP2P 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 e.dot on food riskMobile 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 computingMobile 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-RennesAmbient computing: Ambient computing House appliances, cars, telephone, PDA, PCs, etc. carry AXML Exchange of information in AXML European project submission air@homeConclusion: ConclusionAXML 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 messagingMany issuesSimple 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 moreOther 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 You do not have the permission to view this presentation. In order to view it, please contact the author of the presentation.
AXML 0403 Renato Download Post to : URL : Related Presentations : Share Add to Flag Embed Email Send to Blogs and Networks Add to Channel Uploaded from authorPOINTLite Insert YouTube videos in PowerPont slides with aS Desktop Copy embed code: (To copy code, click on the text box) Embed: URL: Thumbnail: WordPress Embed Customize Embed The presentation is successfully added In Your Favorites. Views: 182 Category: Education License: All Rights Reserved Like it (2) Dislike it (0) Added: April 08, 2008 This Presentation is Public Favorites: 0 Presentation Description No description available. Comments Posting comment... Premium member Presentation Transcript 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 ConclusionIntroduction: IntroductionPreamble: 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 XMLDistributed 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 XMLActive 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> Unisys.com/snow(“Aspen”) </scond> <hotels ID=AspHotels > …. Yahoo.com/GetHotels(<city name=“Aspen”/>) </hotels> </resort> … </resorts> May contain calls to any SOAP web service : e-bay.net, google.com… to any AXML web services to be definedExample: AXML documentafter service evaluation: Example: AXML document after service evaluation <resorts state=‘Colorado’> <resort> <name> Aspen </name> <scond> Unisys.com/snow(“Aspen”) <depth unit=“meter”>1</depth> </scond> <hotels ID=AspHotels > …. Yahoo.com/GetHotels (<city name=“Aspen”/>) </hotels> </resort>… </resorts>Not a new idea in databasesNot 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 JellyActive 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 soapFrom 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) XMLAXML 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 clientThe 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-callWhen 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 databasesWhat 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 HybridExample: 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” > Unisys.com/snow(“Aspen”) <sc> </scond> <hotels ID=AspHotels > <sc valid=“1 week” mode=“immediate” > Yahoo.com/GetHotels(<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 www.inria.fr then look in the directoryWhen exchanging data: to-call-or-not-to-call: When exchanging data: to-call-or-not-to-call Alternative1 Send Unisys.com/GetTemp( <city> webster.com/GetCapital(“Colorado”)</city>) Alternative2 Call webster.com/GetCapital(“Colorado”) Send Unisys.com/GetTemp( <city>Denver</city>) Alternative3 Call webster.com/GetCapital(“Colorado”) Call Unisys.com/GetTemp(<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 resultWhen 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 typeAXML peer as a server: AXML peer as a server Support for (continuous) queries and update of peer documents (provided proper access rights)Publish query servicesin 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(“my.resorts.com/resorts.axml")/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 servicesExtension: Extension Security Distribution and replicationSecurity: Security Peers exchange AXML documents containing service calls A server (resp. client) might ask the client (resp. server) to do something « bad »: <sc>qod.com/QuoteOfDay </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>buy.com/BuyCar(« 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 friendsQuery rewritingand 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 andimplementation: Architecture and implementationGlobal 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 engineImplementation : 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 systemStatus: 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 telephoneIllustration : Illustration Applications that are being considered at different stagesP2P 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 e.dot on food riskMobile 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 computingMobile 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-RennesAmbient computing: Ambient computing House appliances, cars, telephone, PDA, PCs, etc. carry AXML Exchange of information in AXML European project submission air@homeConclusion: ConclusionAXML 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 messagingMany issuesSimple 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 moreOther 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