Hi,

On Tue, Mar 4, 2008 at 6:36 PM, Fabio Mancinelli <[EMAIL PROTECTED]>
wrote:

>
> On 4 mars 08, at 13:27, Asiri Rathnayake wrote:
>
> > First of all, I'm pretty new to this topic. But please help me clear
> > some of my doubts. :)
> >
> > What functionality of XWiki will be exposed via the new WebService ?
> > same stuff as in XMLRPC ? or more ?
> >
> Basically the idea is to make XWiki interoperable and addressable
> using the REST architectural style principles.
>
> At a high level of abstraction, yes the services will be provide the
> same functionalities of XMLRPC.
> But in a REST oriented solution the "interface" will be the one
> provided by HTTP (the 4 verbs), not a custom API like the one already
> present in the XMLRPC extension.
>
> > And why REST and not SOAP ?
> >
> There is a long debate about REST vs. SOAP (the comparison here is a
> bit wrong since REST is not a protocol), anyway REST and WS à la SOAP
> are two ways of doing WebServices that exploit rather opposite
> paradigms. So definitely I would say that we DO NOT want to do SOAP! :)
>
> To be concise the idea, following rest principles, is:
> 1) Give every XWiki resource an ID (i.e., an URI)
> 2) Make everything accessible through a uniform interface (i.e. HTTP
> or WebDAV)
>
> This implies:
> 1) Do some "resource" engineering in order to well define the URI space
> 2) Think about resource representations
> 3) Build the "business logic" to map the new way of accessing resources.
>
> Just an example for what it could look like.
>
> GET http://site/spaces -> gets the list of the available spaces
> POST http://site/spaces [SPACEINFO] -> create a new space
> DELETE htp://site/spaces/foo -> delete space foo
> PUT http://site/spaces/foo [SPACEINFO] -> Update space info (like
> description, etc.)
> etc.
>
> The trick here is that you have all the relevant things directly
> addressable and accessible through a uniform interface (i.e., HTTP or
> WebDAV). You will be able, for example, to say something like
> "GET http://site/space/page/object/field"; and retrieve the value of
> the field of the object associated with a given page on a given space.
> Doing a PUT on that URI will set the value.
>
> Currently you have to do something like:
> XMLRPCClient
> .getSpace
> ("space").getPage("page").getObject("Object").getField("field");
>
> The uniform interface (HTTP) allows you also to write the previous URI
> in a browser instead of compiling java code with brittle APIs :) An it
> would work :)
>
> Of course this is only the tip of the iceberg (and of the problems :))
>
>
> > This can have
> > some repercussions even on semantic features that Stèphane was
> > proposing on the chat.
> >
> > Can we discuss those here as well ? :)
> >
> Yes :)
>
> The foundation of RDF and all the semantic frameworks (à la semantic
> web) are the fact that "things" can be expressed and referenced
> through URI.
>
> In RDF, in fact, triples that establish relationships between thing
> are in the form
>
> SubjectURI PredicateURI [ObjectURI | Literal]
>
> To be more concrete I might say something like:
>
> person://fabiomancinelli http://ontology/fullname "Fabio Mancinelli"
> That basically states that my name is "Fabio Mancinelli", provided
> that person://fabiomancinelli is the URI that identifies the "physical
> person" that's me.
>
> Now, by exposing XWiki resources in a RESTful way we are basically
> exposing all the relevant XWiki "things" via a URI. We can use those
> URI for describing semantic relationships. So we could say something
> like
>
> http://site/space/page http://ontology/tag http://ontology/Technology
> http://site/space/page http://ontology/tag http://ontology/News
>
> In order to state that a given page has the Technology and News tags.
>
> Of course I've been very concise because it's not that easy and what
> I've described requires a lot of effort despite its simplicity.
>
> But if the engineering is done well this could result in a very
> powerful extension.
>
> It would be nice to send an email saying:
>
> "Hey Asiri look at the paragraph http://site/space/page/paragraph/1
> and review it", then you do a "PUT on http://site/page/paragraph/1";
> and boom, the page will be updated reflecting the changes you did with
> respect to that paragraph. :)
>

This sounds really cool.

Thanks a for the detailed explanation. :)

- Asiri


>
> I hope that I've been clear.
> I know that's a not easy topic and it has a lot of nuances.
>
> Feel free to ask other questions.
>
> > Thannks a lot.
>
> You are welcome.
>
> Cheers,
> Fabio
> _______________________________________________
> devs mailing list
> [email protected]
> http://lists.xwiki.org/mailman/listinfo/devs
>
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to