Friday, April 21, 2006

GData is about more than Google Calendar integration

Hi, I'm Mark and I'm a Google powered shiny baubles addict. Last Thursday (or there abouts) Google launched Google Calendar. It works in a fiendishly clever and impressive way, Google has raised the bar so high that we have come to expect nothing less of their web application offerings (I won't mention the A word but expect it is in there).

A couple of days later and Google have launched the Google Calendar data API. The Google Calendar data API is based upon a new common API model called GData. Impressive as the calendar application is, reading between the lines it is actually GData that looks set to have longer lasting significance (see ZDNet article on GData, Google: Master of Space and (Now) Time [found this via What's Google Calendar Really About ]).

GData is still slightly shrouded in mystery at the moment, the full details are yet to be fully disclosed but there are some really tantalizing glimpses around.

Quoting the Google Code announcement "GData model uses REST principles and Atom or RSS 2.0 syndicated feeds as the base resource model to expose data held by Google services (like Google Calendar)".

The GData protocol is also set to provide an Authentication service, this looks like it might provide a single sign-on solution for web applications.

There are client libraries for GData in Java and C#(.NET) flavours as well as detailed descriptions of the bare GData web service style XML protocol requests (so that scripting languages need not miss out).

This all sounds a bit like the beginnings of a Google powered enterprise portal to me. Integration of Google's own applications is already starting to happen, little chunks of Google Calendar are starting to surface inside Gmail. Fellow portal developers will appreciate that single sign-on is usually the key sticking point for portal integration. Every system I try and integrate with wants to be the "single" gateway, it wants to be the portal. Recent examples I've worked with include Blackboard (don't ask!) and Oracle applications (just try and get Oracle Collaboration Suite applications to integrate without using Oracle Single Sign-On). I'm slightly concerned that there might now be a Google single sign-on service (just how many *single* sign-on services should I be expected to integrate with!)

Controlling the single sign-on gateway is about maintaining power, the ability to access Google's fantastic calendar, mail, blogs, feed readers, web storage and other future services might prove a very seductive draw even if it doesn't play nice with external systems.

Google's decision to place it's efforts behind the Atom format is also starting to make sense to me. Although to be fair the GData protocol supports Atom and RSS 2.0. I must admit I don't know much about the Atom API, as used by Google's blogger.com, but its seems to be about reading and writing information on the web (e.g. content management for blogs). GData's introduction of REST seems to be an attempt to make the whole Atom API approach easier. GData is also extending the Atom API approach to include other common elements information (what Google refer to as "Kinds") such as capturing calendar information.

Great that is all we need, a whole new set of standard formats to integrate with and there I was complaining about Microsoft proprietary RSS extensions! Yahoo's Upcoming.org have already integrated with the new Google Calendar format. I really don't mean to moan; I'm very excited about Google's GData offering and very much look forward to seeing what is coming next.

2 comments:

Mark McLaren said...

Such a cool technology...and such a powerful too.



But the Google calendar java tutorials make overly large assumptions about the people using them. And in my experience, if you flail around and figure out the exclusions in the tutorial, the code still doesn't compile, or even resolve correctly in the Eclipse IDE.



Are you aware of simple *working* examples of how to integrate Google calendar using Java?



What a gold mine that would be!
Note: Comment imported. Original by Anonymous at 2006-06-15 15:29

Mark McLaren said...

Hi Phil,



I have a working example of inserting an event, see Insert.java. You are quite right, the example given in Google's official GData tutorial doesn't actually work as it is written!





I have also been doing some investigation on using iCal4j with Google Calendar. I will blog about these experiments when I get around to it! Basically, I've written a servlet that can create xCal[ender] format from Google Calendar.




Note: Comment imported. Original by markmc website: http://content.mark-mclaren.info/ at 2006-06-15 20:01