Loading Calendar Data...

This sometimes takes a while if Google is running slow.

Overview, Use, Importance, Learn

Overview

On the right is a small, but important proof of concept. It demonstrates that sophisticated applications can written in only client-side JavaScript. Traffik has no server-side logic. Client-side application development has many advantages over traditional server-side development, but we will get to them in a moment. First, lets show off the demo - Traffik.

Use

Traffik lists Google Calendar events and plots their locations in a map. Traffik shows only calendar events with locations.

When the application first loads, it shows events from Jupiter ITS's calendar. However, you can click the Login button to supplement your own calendar. After clicking Login, you will be direct to a Google page asking if you want to grant access. Clicking Grant access will bring you back here.

Click Create new event to create an event for your calendar.

Click the event's title to see its location in the map.

Importance

All browsers wisely implement the same origin policy. The same origin policy prevents document or script loaded from one origin from getting properties of a document from a different origin. It basically means that JavaScript running from a page on one server can't access anything from another server. However, Google's GData library gets around this problem without compromising security.

How is this possible?

In a YouTube video, Jun Yang of the GData team talks briefly about the methods used. It sounds very similar to the methods detailed in the Subspace paper by Collin Jackson of Stanford and Helen Wang of MSFT. Xucia has a demonstration of another version of this technology called CrossSafe.

Without getting too technical, these libraries use nested iframes and continuations to allow JavaScript extra-domain data access.

Ok, secure remote scripting ... but so what?

Secure remote scripting is a critical piece of technology that will drive the adoption and reap the benefits of Service Oriented Architecture (SOA) in the form of Enterprise mashups.

With remote scripting, developers can create complex applications that employ a diverse set of services without writing a single line of server code. This is really easy on system administrators as their servers just have to host files.

Learn

This demo was created with JavaScriptMVC. JavaScriptMVC is a lightweight client side web development framework that makes building things like this easy.

Download Traffik's source.