inria - progress report dbglobe meeting - athens november 29 th, 2002

16
INRIA - Progress report DBGlobe meeting - Athens November 29 th , 2002

Upload: louisa-davis

Post on 21-Jan-2016

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: INRIA - Progress report DBGlobe meeting - Athens November 29 th, 2002

INRIA - Progress report

DBGlobe meeting - Athens

November 29th, 2002

Page 2: INRIA - Progress report DBGlobe meeting - Athens November 29 th, 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

Page 3: INRIA - Progress report DBGlobe meeting - Athens November 29 th, 2002

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.

Page 4: INRIA - Progress report DBGlobe meeting - Athens November 29 th, 2002

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.

Page 5: INRIA - Progress report DBGlobe meeting - Athens November 29 th, 2002

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

Page 6: INRIA - Progress report DBGlobe meeting - Athens November 29 th, 2002

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.

Page 7: INRIA - Progress report DBGlobe meeting - Athens November 29 th, 2002

Distribution and replication

Page 8: INRIA - Progress report DBGlobe meeting - Athens November 29 th, 2002

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.

Page 9: INRIA - Progress report DBGlobe meeting - Athens November 29 th, 2002

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

Page 10: INRIA - Progress report DBGlobe meeting - Athens November 29 th, 2002

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

Page 11: INRIA - Progress report DBGlobe meeting - Athens November 29 th, 2002

Security and capabilities

Page 12: INRIA - Progress report DBGlobe meeting - Athens November 29 th, 2002

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).

Page 13: INRIA - Progress report DBGlobe meeting - Athens November 29 th, 2002

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.

Page 14: INRIA - Progress report DBGlobe meeting - Athens November 29 th, 2002

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

Page 15: INRIA - Progress report DBGlobe meeting - Athens November 29 th, 2002

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.

Page 16: INRIA - Progress report DBGlobe meeting - Athens November 29 th, 2002

Thank you.