project syndroid

22
Project Syndroid Gadgets on a Cloud Computing Platform Ray Cromwell CTO Timepedia.org

Upload: cromwellian

Post on 12-May-2015

7.553 views

Category:

Technology


0 download

DESCRIPTION

A proposed architecture for a Gadget API that allows deployment of OpenSocial/Gears enabled gadgets to Android, iGoogle, OSX Dashboard, Google Desktop, etc

TRANSCRIPT

Page 1: Project Syndroid

Project SyndroidGadgets on a Cloud Computing Platform

Ray CromwellCTO Timepedia.org

Page 2: Project Syndroid

Problem: Gadgets can span many Clouds

Android iGoogle OSX GoogleDesktop

Yahoo

And many Flash widget startups

Page 3: Project Syndroid

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

Page 4: Project Syndroid

Fatigue

•Developers duplicate work

•Write same widget over and over

•New environments like OpenSocial and Gears make it more problematic

Page 5: Project Syndroid

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?

Page 6: Project Syndroid

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

Page 7: Project Syndroid

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

Page 8: Project Syndroid

Picture = 2^10 WordsSyndroid GadgetSyndroid GadgetXML + Java + XML + Java +

PackagingPackaging

UI ElementsUI Elements NetworkingNetworking

OpenSocialOpenSocial

StorageStorage

AndroidAndroid GWTGWT Flex/AIRFlex/AIR

ShindigShindig

OSX DashboardOSX Dashboard

Google DesktopGoogle Desktop

Cloud Agnostic

Cloud Specific

Page 9: Project Syndroid

UI Elements

•Define subset of Android/GWT widgets useful for Gadgets

•Map to UI XML and Java implementation classes

•Restricted LCD event handling

Page 10: Project Syndroid

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)

Page 11: Project Syndroid

Networking

•Common Gadget Operations

•Fetch RSS/Atom/JSON Data

•Submit Forms

•Especially useful with File Upload

•OpenSocial environment layered on top

Page 12: Project Syndroid

OpenSocial

•What does it mean to run an OpenSocial container in an Android phone?

•Use Address Book as social network?

Page 13: Project Syndroid

No!

•I want Orkut/Plaxo/Ning/etc widgets to run in my phone and show data from those containers.

Page 14: Project Syndroid

Solution: Proxy Container

Syndroid Syndroid OpenSociOpenSocial Gadgetal Gadget

Android Android

SyndroidSyndroidOpenSocial OpenSocial

APIAPI

SyndroidSyndroidNetworkingNetworking ProxyProxy

Internet

QuickTime™ and aGIF decompressorare needed to see this picture.

Any Any ShindiShindi

gg

Page 15: Project Syndroid

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

Page 16: Project Syndroid

Persistent StorageSyndroid StorageSyndroid Storage

DB and PreferencesDB and Preferences

Android Android SQLLite SQLLite

Gears Gears

Android

GWT

Desktop AIR Local DBAIR Local DBpref pref

Page 17: Project Syndroid

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

Page 18: Project Syndroid

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

Page 19: Project Syndroid

Open Question

•Interaction of Caja and GWT code

•Can GWT be modified to produce Cajoled code for Shindig containers?

Page 20: Project Syndroid

Details to finalize

•Set of widgets

•Event interface

•Packaging and Deployment process

•Toolset

Page 21: Project Syndroid

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, ....

Page 22: Project Syndroid

Syndroid

One Gadget API to Rule Them All