Chris Chabot wrote:
Hey guys,

Great looking proposal!

On Mon, Jul 6, 2009 at 1:53 PM, Ate Douma <a...@douma.nu> wrote:

The Wookie proposal has my high interest, especially from the bridging POV
between W3C Widgets and Google Gadgets.


It seems there's a few mixed terminologies here, so in interest of making
sure we're all talking about the same things I'll quickly go over the
different types of 'gadgets' that could potentially be supported by Wookie:


   - Google Gadgets, as described here:
   http://code.google.com/apis/gadgets/docs/spec.html This is a clasic
   gadget type model that doesn't have any social tools in it, think clasic
   iGoogle home page type gadgets.. this actually has the Google brand
   associated with it and because it's a product name it's called Gadgets (cap
   G). It's an interesting platform to support, but in general iGoogle is
   moving to OpenSocial gadgets instead (which is backward compatible).

   - OpenSocial gadgets not a Google brand or product, instead both the
   specification process and the reference implementation (Apache Shindig
   (-incubating)) are community driven. In the beginning it started out with an
   iGoogle style API but has evolved to a completely different (much more
   elegant and powerful) platform that has a very large feature set, and
   focuses on social. Next to that there's the OpenSocial Foundation which has
   people from many social-interested companies and is a non-profit corporation
   created to sustain the free and open development of OpenSocial
   specifications. (more info at
   http://www.opensocial.org/page/opensocial-foundation-faq). The main entry
   point to find out about OpenSocial is http://www.opensocial.org/ and the
   Shindig reference implementation can be found at
   http://incubator.apache.org/shindig/

   - There's mention of 'Wave gadgets', Google Wave uses the same gadgets
   javascript API, but adds a bit of functionality to it (as described at
   http://code.google.com/apis/wave/extensions/gadgets/reference.html), the
   added functionality is focused around the real time nature of Google Wave
   with functions for participants changes and data state changes.

Now to support Google Gadgets and OpenSocial, the easiest way to accomplish
that would be to just completely pull in Apache Shindig (-incubating),
there's a lot more to it then just a bunch of JavaScript API's, there's also
3 different rendering models, a REST and JSON-RPC interface to the social
data with OAuth for authentication, and lots of tricky details to deal with
things like translations, preferences, security tokens, html/css/image
rewriting, proxy services, oauth support  and javascript injection and
dependency parsing. The good news is that all of this is already available
so mixing it in shouldn't have to be rocket science :)

To make this work the iframe (that points to the OpenSocial gadget rendering
end-point) creation is a bit tricky as well, lots of params to deal with,
and Social Site is a nice demo of how this could be done so you could either
borrow that code or implement it in a way that makes sense to Wookie.

OpenSocial does assume you have a social graph though (the activities and
app data part of OpenSocial are optional, though the platform is more
attractive if you offer those too), so you could either take Shindig's
approach and assume that the Wookie users will implement the social data
interface classes them selves and connect it up to their existing social
data, and/or you could include Social Site which provides that for you ..
with some clever crafting supporting both use-cases shouldn't be to bad
though.

Google Wave Gadgets is a different beast entirely, they're basically just
the same gadgets as from OpenSocial, but without the real time Wave server
behind it that drives the real time data state changes it doesn't seem to
make a lot of sense to support it in a portal type project, and pulling in a
complete communications platform might be outside of Wookie's project scope.

Well, the Wave gadget API looks quite simple and doesn't seem to need all the complexity of operational transformation required by concurrent editing of waves. Looks like a simple Comet server notifying all sessions of a given gadget can do the trick, and after a quick look at the existing Wookie code, it seems to be more or less how it's implemented.

And this Wave API implementation is also where some overlap can appear between Shindig and Wookie. Wookie's primary objective is the implementation of the W3C widget specification, while the Wave API implementation is more and OpenSocial / Shindig thing.

So I agree with your point, and it will be necessary that the Wookie team uses a clear terminology (and project structure?) so that people understand what part of Wookie relates to what spec in order to avoid confusion.

This doesn't prevent, however, Wookie to provide complements or extensions to Shindig pretty much like SocialSite does.

Sylvain

--
Sylvain Wallez - http://bluxte.net


---------------------------------------------------------------------
To unsubscribe, e-mail: general-unsubscr...@incubator.apache.org
For additional commands, e-mail: general-h...@incubator.apache.org

Reply via email to