[Ocs] [rant] comments on open-collaboration-services

Josef Spillner spillner at kde.org
Wed Dec 21 04:48:31 PST 2011


Hello Thomas (e ciao Enrico),

During the OCS sprint earlier this year in Berlin the non-RESTful-ness of the 
spec was one of the main discussion topics. Assuming you refer to v1.6 of the 
spec, you should have a look at the most recent one which includes the changes 
resulting from the comments. It's not entirely yet what one would expect from 
a RESTful service, but certainly already a lot closer.

Now the interesting question is only where to find the most recent spec :)
Frank wanted to set up a git repository for it - not sure if this has been 
done yet. I'm sending you the draft I've found on my hard disk, it may even 
not be the latest one which we created.

If the free desktop community considers OCS important, then certainly all the 
material around it (including a list of conforming or compliant 
implementations) should be kept up-to-date and easily maintainable at a 
convenient place.

Josef

:: Thomas Koch Mittwoch 21 Dezember 2011
> Hi,
> 
> I'm writing my bachelor thesis on REST and person/contact information[1].
> By incident (via Enrico Zini's Talk on Debconf11 about app installers) I
> found open collaboration services, which also contains person informations
> and the common wrong claim to be restful.
> 
> Since I care about free software I dare to give a few comments from my
> first impression. I'm sorry if I should get anything wrong.
> 
> a) OCS is not restful for several reasons[2], e.g.:
>   - predefined URIs (templates) instead of discoverability
>   - no reuse of existing media types (see below)
>   - meta data in the body instead of in the header
>   - GET/POST/PUT and DELETE are already specified in REST (HTTP).
> Respecifying them means either that they're misused or that the
> specification is redundant. - "URL arguments" are a very good indicator of
> a non restful RPC-over-HTTP like API. An URI is an identifier, not a place
> to put procedural parameters. The method is GET and it has one required
> parameter: the URI. Several other optional parameters are specified in the
> HTTP request header.
> 
> b) Use descriptive tokens instead of (or additional to) numbers (type,
> status, ...). The extra bytes are well invested to ease development and
> "debuggability".
> 
> c) Reuse existing HTTP status codes and don't blow your specification by
> reiterating things that are already specified elsewhere.
> 
> d) Reuse existing standards and media types. Candidates could be:
> vCard/xCard, Activitystreams, ATOM especially ATOM categories, iCal Events,
> oAuth2, oStatus
> 
> e) It's especially sad, that there was another attempt to represent person
> data inside freedesktop which also didn't look for existing standards:
> http://groups.google.com/group/desktop-
> couchdb/browse_thread/thread/4dbac2e9d03aaa5d
> 
> There may be other standards that I'm not aware of for example to declare
> dependencies between software, maybe here?
> http://open-services.net/
> http://en.wikipedia.org/wiki/Description_of_a_Project
> 
> OpenSocial is similar in some regards but also a non restful standard and
> shouldn't be taken as a model. But at least it is supported by major
> companies and still has an open process. It is an example that even Yahoo,
> Google, IBM and others can produce bad standards.
> 
> [1] https://github.com/thkoch2001/bachelor-thesis
> [2] http://kellabyte.com/2011/09/04/clarifying-rest/
> 
> Regards,
> 
> Thomas Koch, http://www.koch.ro
> _______________________________________________
> Ocs mailing list
> Ocs at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/ocs
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ocsspec
Type: text/x-matlab
Size: 149726 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/ocs/attachments/20111221/c3930879/attachment-0001.bin>
-------------- next part --------------
Initiatives:
 KDE Silk - "freeing the web from the browser"
 KDE, the S* desktop - social, semantic, service-oriented
 KDE webtech, webkit, libweb, lokarest, attica/knewstuff, nepomuk, ...
  + (qt)folks, telepathy, libsocialweb
 Informational self-determination and Data souvereignty

Related application groups: PIM, Network (chat + webapps)

- contacts:
  * address book (persons, groups) [vcard, foaf]
- events:
  * calendar (both explicit + derived from birthdays) [ical]
- messages:
  * special inbox folder, notes [msg, xface]
  * ?-blogging widgets
  * word processing tools
- events & messages:
  * newsreader [rss]

Another related application group: Content?

- photos
  * photo management and image processing tools
- games
  * ???

- "become part of the social web"
  * sign-up wizard & management tools

+ non-desktop apps e.g. foafpress



More information about the Ocs mailing list