inria - progress report dbglobe meeting - athens november 29 th, 2002
TRANSCRIPT
INRIA - Progress report
DBGlobe meeting - Athens
November 29th, 2002
Outline
A reminder about Active XML AXML documents & services System architecture The VLDB’02 Demo
Distribution and replication Motivation: small mobile devices Example and issues Contributions
Security and capabilities Controlling service invocations Why ? How we do it: using schemas.
Conclusion
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• e-bay.net, google.com, babel.org, etc.• AXML peers also offer web services.• Locally defined services can be called.
Are enriched by each service call's resultsThe returned nodes are inserted as brothers of the corresponding <sc> element.
Can use XPath expressions for call parametersRelative path expressions are evaluated starting from the <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 ?
AXML Documents are powerful data integrators.
AXML Services
let 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 web 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.
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
The VLDB’02 Demo
Each peer can bid on any auction: Using the placeBid(auctionId, amount) service, offered by the auction holder.
Functional bidding system, without a centralized server
Each peer provides some auctions: An AXML document holds the auctions offered by the peer Services offered to other peers on these auctions:
getAuctions(), getHighestBid(auctionId), placeBid(auctionId, amount)
Each peer knows about some peers’ auctions: An AXML document, containing calls to other peers,
transitively retrieve their know auctions, thanks the intensional answers mechanism. This knowledge is shared, by providing the
getKnownAuctions() service.
When an auction closes, the winner is notified.
Distribution and replication
Motivation
Devices have limited:• Storage space• Computation power• Network bandwidth
Therefore, we would like to: distribute the load among devices, by:
• Using several services (we already do !)• Distributing documents across several devices.
replicate documents and services, to allow for “local” computation.
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 : How do we know which data / services should be replicated ? How to adapt the replicated code ? The PDA has limited resources / capabilities, therefore:
• We need a rationale (cost model) to choose what to replicate• We should “link” to the parts that were not replicated distributed documents
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 An 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. An internal report has been produced
Security and capabilities
Controlling service calls
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).
Why controlling calls ?
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 ! For performance reasons, e.g.:
a proxy can invoke all the services on behalf of a PDA.
… and many others.
How we do it: With types !
Since web services provide XML Schemas for their input and output parameters (WSDL)…
… We extend XML schemas to describe the service calls of AXML documents.
An AXML document can be exchanged (as a service input or output parameter) iff it matches an agreed upon (extended) schema.
We provide algorithms to make a document conform to a schema: It finds which service calls should be invoked This is an inherently recursive process, since these calls may
return data that contains service calls. A prototype was implemented An internal report was produced
Conclusion
We extended Active XML in two directions that we believe to be useful for the DBGlobe project.
But there are many others ! Does this fit with your vision of the
architecture ? Your feed-back is welcome.
Thank you.