Future and Emerging Technologies (FET)
Future and Emerging Technologies (FET)
The roots of innovationThe roots of innovationThe roots of innovationThe roots of innovation
Proactive initiative on:
Global Computing (GC)
Proactive initiative on:
Global Computing (GC)
DBGlobe IST-2001-32645
WP4Querying and Information Discovery
INRIA (Serge Abiteboul)
DBGlobe (IST-2001-32645) 2
Main choices
• Main technical issues for querying in the DbGlobe context– Exchange of information between PMOs– Management of distribution and replication
• provides support for proxy, caching
• Requirement: use standards– XML– XML query languages (XPATH, Xquery, XOQL)– Web services (SOAP)
• Proposed solution: Active XML• Discovery of information: linked to discovery of services,
see WP1
DBGlobe (IST-2001-32645) 3
Outline for Active XML
• Active XML: data integration and querying platform– The AXML language– AXML peers : repository + Web client + Web server– System architecture
• Distribution and replication [Sigmod’03a]– Motivation: mobile devices with limited resources– Contributions
• Controlling service invocations [Sigmod’03b]– Motivations– A technique based on typing
• Conclusion
DBGlobe (IST-2001-32645) 4
Active XML
• XML document with embedded calls to Web services– Intensional information– Dynamic information
• AXML peer (e.g., a PMO)– Repository: stores (A)XML data– Client: calls Web services– Server: support for queries over repository data
• Foundations: to be further investigated– Deductive databases and fixpoint logic– Tree automata– Rewriting systems
DBGlobe (IST-2001-32645) 5
AXML Documents<knownAuctions ID="peer10">
<category name="Toys">
<sc>eBay.net/getOffers("Toys")</sc>
<auction id="1254" >
<heldBy>eBay.net</heldBy>
<item>Pink panther</item>
</auction> …
<sc>babel.org/translate("Czech", "English",
<sc>crystal.cz/getToys()</sc>)</sc>
<sc>peer25/getAuctions([../@name])</sc>
</category> ...
<sc frequency="once" >getMyAuctions()</sc> …
</knownAuctions>
May contain calls to any SOAP Web service
Are enriched by each service call's results
The returned nodes are inserted as siblings of the corresponding <sc> element
Activation of calls and data lifespan are controlled
• frequency: when is the service called ?
• validity: how long is the retrieved data kept ?
• mode: immediate or lazy ?Push and pull modes (see WP3)
DBGlobe (IST-2001-32645) 6
AXML Serviceslet closeAuction($a) be for $b in $a/bid where $b/amount =
max($a/bid/amount) return <sc mode="immediate"
frequency="once"> notifyWinner($b/who,
$a/aID, $b/amount) </sc> <status>closed</status>
A simple, declarative way to create Wef services…• A service operation is specified as a query with parameters.
• It may query (local) AXML documents.
• It is made available on the Web using the SOAP protocol.
… which allows for new, powerful features.• Intentional parameters and results: AXML documents (containing service calls) can be
exchanged.
• Continuous services send back a stream of answers (SOAP messages) to the caller.
Basic AXML services are compatible with current standards for Web services invocation.
Used in AXML documents, AXML services are powerful tools for data integration and querying.
DBGlobe (IST-2001-32645) 7
AXML Architecture
Queryprocessor
Evaluator
query
servicedescriptions
readupdate read
updateconsults
SOAPwrapper
SOAP
SOAP
AXML peer S3
SOAPservice
SOAP client
AXML peer S1
service call service result
AXML document store
AXML peer S2
AXML
XML
AXML
AXML
Technical environment:• SUN’s Java SDK 1.4 (includes XML parser, XPath processor, XSLT engine)• Apache Tomcat 4.0 servlet engine• Apache Axis SOAP toolkit 1.0 beta 3 • X-OQL query processor, persistant DOM repository• JSP-based user interface, using JSTL 1.0 standard tag library
DBGlobe (IST-2001-32645) 8
Example: A number of PMOs engaged in auctions
• Each PMO proposes auctions:– Document myauctions.xml with the
PMO’s items and their current bids– Services offered:
• getLocalAuctions(),• status(auctionId)
• Each PMO bids on auctions:– Document mybids.xml with the
PMO’s bids– Service offered:
• bid(PMO,auctionId, amount)• bidUpTo(PMO, auctionId,
increment, limit)
• Each PMO knows about other PMOs’ auctions:– Document
allauctions.xml contains calls to other PMOs that transitively retrieve their known auctions.
– Service offered : getAllAuctions()
• When an auction closes, the winner is notified.
VLDB’02 demo
DBGlobe (IST-2001-32645) 10
Motivation
• PMOs have limited resources:• Storage space• Computation power• Network bandwidth
• Therefore, we would like to:– distribute the load among PMOs, by:
• Using distributed services (AXML does it !)• Distributing documents across several devices
– replicate documents and services, to allow for “local” computation.
DBGlobe (IST-2001-32645) 11
• A user has a PDA, and is in Colorado.
• We could let her call the ski portal services,
• We would rather replicate on her PDA the relevant data and services, so that they can be called locally.
Example
• A national US ski portal :– Contains information about ski
resorts, hotels.– Provides services to query this
information.
• Issues :– Data / services should be replicated
?– How to adapt the replicated code ?– The PDA has limited resources /
capabilities, therefore:• We need a cost model to
choose what to replicate• Control the use of replication
DBGlobe (IST-2001-32645) 12
Contributions
• We developed:– A data model for AXML with distribution and replication– A location-aware extension of XQuery to handle
distributed/replicated data and services.– A cost model for the peer-to-peer context, measuring the
“observable performance” of each peer– A replication algorithm (based on the cost model) that determines
• What data/services need to be copied ?• How to adapt the service code ?
• Implementation work is about to start.• A paper describing the results, to appear in SIGMOD’03
DBGlobe (IST-2001-32645) 14
Controlling service invocation
• Active XML peers call each other’s services, therefore they exchange AXML documents, that may contain service calls.
SOAP
AXML peer S3
SOAPservice
SOAP client
SOAP
AXML peer S1
service call
service result
SOAP
AXML peer S2
(A)XML documents
• When such a document is exchanged, the services calls it contains can be invoked :– by the sender (before sending the
document)– or the receiver (after receiving it)
• How do we control it?
DBGlobe (IST-2001-32645) 15
Controlling service invocation: why?
• For security reasons or capabilities, e.g.:– I don’t trust this service/domain– I don’t have the right credentials to invoke it, or it
costs money.– I don’t know how to deal with a service call,
because I don’t know Active XML !• Decide where to perform some calls:
– It may be better to have a proxy perform all the calls on behalf of a PDA
– Improve performances• … and many others.
DBGlobe (IST-2001-32645) 16
How we do it: With types !
• WSDL : Web services description language (XML schema)
• We extended it to include service calls• We provide algorithms to decide “to call or not to call”
– It finds which service calls should be invoked– This is an inherently recursive process, since these calls may
return data that contains service calls• Foundations: alternating tree automata techniques
– General problem still open – progress • A prototype has been implemented• A paper describing the results, to appear in SIGMOD’03
DBGlobe (IST-2001-32645) 17
Conclusion
• Active XML Version 1 is out• Extensions of AXML to fit DBGlobe requirements:
– Design of distribution & replication; implementation has started – Design of the control of call invocation; has been implemented
and is now being integrated
• Work on optimization has progressed– Very complex issue– Involves many facets of optimization of distributed databases +
novel issues– More work needed
• AXML PMO on a small device– Implementation for coming year