On Wed, Apr 16, 2008 at 10:25 AM, Ian Boston <[EMAIL PROTECTED]> wrote:

> +1 for 2, and willing to work on 2 (infact I need to anyway), but would
> like to put sufficient abstraction in to make 1,2,3 all work.

you are it for JavaDB impl

>
>
> and sorry to be confused and a pain, but the code base as of r648723 has
> PeopleService, ActivitiesService and DataService.... are we talking about
> implementing (2),(3) versions of (1) [as listed below] as it exists now,  or
> , a new impl of the restful API ontop of Abdera which potentially would not
> use PeopleService, ActivitiesService and DataService at all.
>
sorry, I wasn't clear. let me explain. (this is about java implmentation.
not sure if it will be directly applicable to php/any other lang)

I am talking about enhancing the current interfaces in
org.apache.shindig.social.opensocial package for People/Activities/Data to
handle RESTful API.

Right now, shindig implementation has an impl class XmlStateFileFetcher.java
to READ (xml file with data) from a filesystem.  It reads data to fulfill
various RETRIEVE requests for People/Activities/Data.

To implement backend for RESTful API,
The interfaces in org.apache.shindig.social.opensocial package are to be
enhanced to include methods to Retrieve a single entity for the given
criteria, Insert/Update/Delete a single entity. (Signatures for these
methods are not completely defined yet. but hopefully within a week)

and then implement the following

   1. *Filesystem *impl ( needs augmenting the current
   XmlStateFileFetcher.java to handle Insert/Update/Delete to correspond with
   Post/Put/Delete Restful operations, respectively.
   2. For *JavaDB and CouchDB*, we need NEW impl classes to handle
   Select/Insert/Update/Delete. Select can be a single entity (for RESTful API)
   or it can return 0 or more entities (to correspond with the current
   social-api in Shindig).

hope it is clearer now..

thanks



> Just trying to get the layers clear in my head.
>
> Ian
>
>
>
>
> On 16 Apr 2008, at 18:10, Vasu Nori wrote:
>
> > let me put this proposal to vote.
> >
> > Reference implementation of Opensocial API server (in java) should
> > provide
> > backend implementation for
> >  (1) file system
> >  (2) JavaDB
> >  (3) CouchDB
> >  (4) all the above
> >
> > If you voted for any one of the these, how about volunteering? :)
> > I can volunteer for (2).
> > (1) already exists in Shindig. Could use help in
> > adding/deleting/updating
> > data. Right now, Shindig already implements SELECT on data.
> >
> > thanks
> >
> > On Tue, Apr 15, 2008 at 10:46 PM, Santiago Gala <[EMAIL PROTECTED]
> > >
> > wrote:
> >
> >  El mar, 15-04-2008 a las 16:52 -0700, Kevin Brown escribió:
> > >
> > > > Couldn't SQLite serve the same role?
> > > >
> > >
> > > Of course. SQLite or Derby (embedded in the java server) or any
> > > relational DB with the proper scripts for creation of the demo DB.
> > >
> > > I pointed at CouchDB because:
> > > - it has a json on HTTP wire format used with a ReST API, i.e., it can
> > > be mapped to directly serve what we want here.
> > > - it is programmed using javascript in the server, i.e., quite natural
> > > for people coding gadgets. (See for instance
> > > http://wiki.apache.org/couchdb/GettingStartedWithJavaScript )
> > > - it is designed as a "new breed" DB, easy to replicate and scale
> > > - they joined incubation close to when shindig did, so they are
> > > "neighbors" :)
> > > - I wanted to be provocative and point to something quite out of the
> > > ordinary
> > >
> > > I specifically told about "prototyping", as I was thinking that it
> > > might
> > > be quite useful for someone working on the right interfaces and
> > > formats
> > > to use such a tool. I was thinking about writing a quick snippet of
> > > code
> > > and testing on the fly. I don't think it is the right thing for
> > > production right now, as it might scare people.
> > >
> > > Regards
> > > Santiago
> > >
> > >
> > > > On Tue, Apr 15, 2008 at 3:56 PM, Santiago Gala <
> > > > [EMAIL PROTECTED]>
> > > > wrote:
> > > >
> > > >  El mar, 15-04-2008 a las 23:35 +0100, Ian Boston escribió:
> > > > >
> > > > > > I don't know enough about CouchDB to say if its a good solution,
> > > > > > but
> > > > > > am I correct in thinking its another server to setup and wont
> > > > > > run in
> > > > > > the same JVM as the Shindig instance ? (Looking at the svn it
> > > > > > see c
> > > > > > code, and mention of mod_couch ... sounds like it needs apache
> > > > > > httpd
> > > > > > to run ).
> > > > > >
> > > > >
> > > > > It does not. It won't run in the same JVM as Shindig,... because
> > > > > it is
> > > > > not java. mod_couch is an erlang module. CouchDB is written in
> > > > >
> > > > Erlang
> > >
> > > > + C (the javascript interpreter and the glue).
> > > > >
> > > > >
> > > > > > To make it really easy for someone to take a Shindig instance
> > > > > > out of
> > > > > > the box, the approach that Jackrabbit took might be worth
> > > > > > following.
> > > > > > They used a default DB of Derby, which didn't need any config,
> > > > > > as it
> > > > > > will run embedded. This also allowed them to make the TCK run
> > > > > > all
> > > > > >
> > > > > its
> > >
> > > > tests inside maven without additional config.
> > > > > >
> > > > > >
> > > > > You are assuming that everybody wants to run java, which is not
> > > > > something you are so free to assume, specially in this field.
> > > > > CouchDB
> > > > >
> > > > is
> > >
> > > > a DB that uses json as native wire format and javascript as backend
> > > > > language, which makes it have an excellent impedance with shindig
> > > > > as
> > > > >
> > > > it
> > >
> > > > might serve straight from the DB. While it is a very young project,
> > > > > I
> > > > > just mentioned its use for prototyping of the social stuff.
> > > > >
> > > > >
> > > > >  This may all be small point, since I see that Abdera has a number
> > > > > > of
> > > > > > other ColectionAdapters including iBatis, Hibernate and even
> > > > > > JCR.
> > > > > >
> > > > > > --------------
> > > > > >
> > > > > > Another quick question.
> > > > > >
> > > > > > With the REST api being implemented, is there any point in
> > > > > > implementing the Services (eg PeopleService) that exist in the
> > > > > > current code base against a DB backend .... or will they be
> > > > > > deprecated shortly (within 4 weeks)
> > > > > >
> > > > > >
> > > > > >
> > > > > > Ian
> > > > > >
> > > > > >
> > > > > >
> > > > > > On 15 Apr 2008, at 17:28, Jun Yang (杨骏) wrote:
> > > > > >
> > > > > > > On Tue, Apr 15, 2008 at 7:30 AM, Santiago Gala
> > > > > > > <[EMAIL PROTECTED]>
> > > > > > > wrote:
> > > > > > >
> > > > > > >  El mar, 15-04-2008 a las 03:59 -0700, Kevin Brown escribió:
> > > > > > > >
> > > > > > > > > On Tue, Apr 15, 2008 at 2:54 AM, Ian Boston <[EMAIL PROTECTED]
> > > > > > > > > >
> > > > > > > > >
> > > > > > > > wrote:
> > >
> > > >
> > > > > > > > >  Is the intention with the rest based apis for opensocial
> > > > > > > > > > in
> > > > > > > > > > shindig to
> > > > > > > > > > just provide the JS client libraries and leave the
> > > > > > > > > > implementation  of
> > > > > > > > > >
> > > > > > > > > the
> > > > > > > >
> > > > > > > > > server side of the api to the implementor.
> > > > > > > > > >
> > > > > > > > >
> > > > > > > >
> > > > > > > Yes.
> > > > > > >
> > > > > > >
> > > > > > >  or
> > > > > > > > > >
> > > > > > > > > > will Shindig be implementing a rest based server
> > > > > > > > > > component,
> > > > > > > > > >
> > > > > > > > > with DB
> > >
> > > > backend
> > > > > > > > > >
> > > > > > > > >
> > > > > > > >
> > > > > > > The first version will come with good support for relational
> > > > > > > databases, as
> > > > > > > is the common case.
> > > > > > >
> > > > > > >
> > > > > > >  I wonder if using a very simple CouchDB backend could make
> > > > > > > > sense.
> > > > > > > > CouchDB offers a DB with native json API and javascript
> > > > > > > > running
> > > > > > > >
> > > > > > > in
> > >
> > > > the
> > > > > > > > server, so at least propotype support for initial
> > > > > > > > experiments.
> > > > > > > >
> > > > > > > >
> > > > > > > Since the server is based on Abdera and Abdera already has an
> > > > > > > adapter for
> > > > > > > CouchDB, this should be easy.
> > > > > > >
> > > > > > > Jun
> > > > > > >
> > > > > > > It looks a great tool for this, though for a prototype python
> > > > > > > +
> > > > > > >
> > > > > > > > simplejson + some dictionaries can actually be a similar
> > > > > > > > very
> > > > > > > >
> > > > > > > simple
> > >
> > > > framework. Or s/python/<your favorite dynamic language>/ :)
> > > > > > > >
> > > > > > > >
> > > > > > > > > RESTful APIs are in development now, though nothing has
> > > > > > > > > been
> > > > > > > > > committed
> > > > > > > > >
> > > > > > > > yet.
> > > > > > > >
> > > > > > > > > See mail archives for discussion. I'd expect the first
> > > > > > > > > commit
> > > > > > > > > within the
> > > > > > > > > next week or two at most. The RESTful  spec was just
> > > > > > > > > finalized
> > > > > > > > > last week
> > > > > > > > >
> > > > > > > > --
> > > > > > > >
> > > > > > > > > we need a little time! :)
> > > > > > > > >
> > > > > > > > > Also, is there any intention to use POST on the rest URL's
> > > > > > > > > to do
> > > > > > > > > updates
> > > > > > > > >
> > > > > > > > to
> > > > > > > >
> > > > > > > > > social data where it makes sense... sorry if this has been
> > > > > > > > > > mentioned
> > > > > > > > > > already.
> > > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > We'll do whatever the spec requires.
> > > > > > > > >
> > > > > > > > >
> > > > > > > > +1, ReST requires POST/PUT for non-idempotent request, and
> > > > > > > > *updates* are
> > > > > > > > always non-idempotent. Even if I'm not following the spec
> > > > > > > > right
> > > > > > > > now, I
> > > > > > > > would be very surprised if the spec used GET for updates.
> > > > > > > > But
> > > > > > > > this, as
> > > > > > > > Kevin said, belongs to the spec ground.
> > > > > > > >
> > > > > > > > --
> > > > > > > > Santiago Gala
> > > > > > > > http://memojo.com/~sgala/blog/<http://memojo.com/%7Esgala/blog/><
> > > > > > > > http://memojo.com/%7Esgala/blog/><
> > > > > > > >
> > > > > > > http://memojo.com/%7Esgala/blog/> <
> > >
> > > > http://memojo.com/%7Esgala/blog/>
> > > > >
> > > > > >
> > > > > > > >
> > > > > > > >
> > > > > >  --
> > > > > Santiago Gala
> > > > > http://memojo.com/~sgala/blog/ <http://memojo.com/%7Esgala/blog/><
> > > > > http://memojo.com/%7Esgala/blog/> <
> > > > >
> > > > http://memojo.com/%7Esgala/blog/>
> > >
> > > >
> > > > >
> > > > >
> > > >
> > > >  --
> > > Santiago Gala
> > > http://memojo.com/~sgala/blog/ <http://memojo.com/%7Esgala/blog/> <
> > > http://memojo.com/%7Esgala/blog/>
> > >
> > >
> > >
>

Reply via email to