INRIA Presentation (draft)

judgedrunkshipΔιακομιστές

17 Νοε 2013 (πριν από 3 χρόνια και 6 μήνες)

82 εμφανίσεις

INRIA

WP4



DBGlobe review meeting
-

Cyprus

January, 2003

Outline



Active XML: data integration and querying platform


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 results

The returned nodes are inserted as brothers
of the corresponding <sc> element.

Can use
XPath expressions

for call parameters

Relative 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 and querying.

AXML Architecture

Query

processor

Evaluator

query

service

descriptions

read

update

read

update

consults

SOAP

wrapper

SOAP

SOAP

AXML peer S3

SOAP

service

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.


A paper describing the results, to appear in SIGMOD’03

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

SOAP

service

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


A paper describing the results, to appear in SIGMOD’03

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.