Slideshow transcript
Slide 1: Project Syndroid Gadgets on a Cloud Computing Platform Ray Cromwell CTO Timepedia.org
Slide 2: Problem: Gadgets can span many Clouds Android iGoogle OSX Google Yahoo Desktop And many Flash widget startups
Slide 3: Clouds •Android and J2ME are Java •What of iPhone SDK? Objective-C? Javascript? •iGoogle, Yahoo, Google Desktop, OSX Dashboard, Javascript •Browser and Android have different persistent storage APIs too
Slide 4: Fatigue •Developers duplicate work •Write same widget over and over •New environments like OpenSocial and Gears make it more problematic
Slide 5: Help! •Wouldn’t it be nice to write a Gadget just once? •And deploy it everywhere natively? •And take advantage of OpenSocial and Gears-like storage? •And abstract away network I/O?
Slide 6: Syndroid •Synthesis of Android and GWT •Write Gadgets to a restricted API •Compile to Javascript or Dalvik or (later) Actionscript •Run on Android, iGoogle, OSX, Yahoo, et al
Slide 7: How? •New subset of Android declarative UI XML •UI widgets with Android, Browser, Flex implementations •Abstract Canvas system for Graphics •Proven Cross GWT->Android->Flash •Persistent Storage API •OpenSocial Proxy Container
Slide 8: Picture = 2^10 Words Syndroid Gadget XML + Java + Packaging UI Elements Networking Storage OpenSocial Cloud Agnostic Android GWT Flex/AIR Shindig OSX Dashboard Google Desktop Cloud Specific
Slide 9: UI Elements •Define subset of Android/GWT widgets useful for Gadgets •Map to UI XML and Java implementation classes •Restricted LCD event handling
Slide 10: UI Elements •Full Canvas API supportable •Proven GWT->Android->Flash implementation in Chronoscope •Custom UI elements can be created across the cloud! (games and graphs for example)
Slide 11: Networking •Common Gadget Operations •Fetch RSS/Atom/JSON Data •Submit Forms •Especially useful with File Upload •OpenSocial environment layered on top
Slide 12: OpenSocial •What does it mean to run an OpenSocial container in an Android phone? •Use Address Book as social network?
Slide 13: No! •I want Orkut/Plaxo/Ning/etc widgets to run in my phone and show data from those containers.
Slide 14: Solution: Proxy Container Syndroid Internet OpenSocial Gadget QuickTimeᆰ and a GIF decompressor are needed to see this picture. Syndroid Syndroid Proxy OpenSocial API Networking Android Any Shindig
Slide 15: OpenSocial Proxy •Uses optional proxy server to access foreign container interfaces •In cases where direct access is possible with XHR/JSON, proxy can be avoided •User deploys Gadget and uses Preference to select destination OpenSocial container
Slide 16: Persistent Storage Syndroid Storage DB and Preferences Android Android SQLLite GWT Gears Desktop AIR Local DB pref
Slide 17: Persistent Storage •SQL-Like interface to Android, AIR, and Gears Databases •How to handle non-Gears JS environments? Open Question •HashMap-style prefs interface for everything else
Slide 18: GWT, the Enabler •Single language: Java •Subset JRE runs in JS, Android, and can be made to run in ActionScript and J2ME •Code written to GWT JRE + Abstract UI/Event system is Cloud Safe •Can be translated into multiple environments
Slide 19: Open Question •Interaction of Caja and GWT code •Can GWT be modified to produce Cajoled code for Shindig containers?
Slide 20: Details to finalize •Set of widgets •Event interface •Packaging and Deployment process •Toolset
Slide 21: Syndroid •Write Gadgets in Java •Use OpenSocial and Offline Features •Compile and Deploy as Native Android App •Compile and Deploy to JavaScript •and later AIR/Flash •Support OSX Dashboard, Google Desktop, Vista Sidebar, Yahoo Widgets, ....
Slide 22: Syndroid One Gadget API to Rule Them All



Add a comment on Slide 1
If you have a SlideShare account, login to comment; else you can comment as a guest- Favorites & Groups
Showing 1-50 of 4 (more)