project syndroid

Post on 12-May-2015

7.552 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

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

Project SyndroidGadgets on a Cloud Computing Platform

Ray CromwellCTO Timepedia.org

Problem: Gadgets can span many Clouds

Android iGoogle OSX GoogleDesktop

Yahoo

And many Flash widget startups

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

Fatigue

•Developers duplicate work

•Write same widget over and over

•New environments like OpenSocial and Gears make it more problematic

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?

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

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

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

UI Elements

•Define subset of Android/GWT widgets useful for Gadgets

•Map to UI XML and Java implementation classes

•Restricted LCD event handling

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)

Networking

•Common Gadget Operations

•Fetch RSS/Atom/JSON Data

•Submit Forms

•Especially useful with File Upload

•OpenSocial environment layered on top

OpenSocial

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

•Use Address Book as social network?

No!

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

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

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

Persistent StorageSyndroid StorageSyndroid Storage

DB and PreferencesDB and Preferences

Android Android SQLLite SQLLite

Gears Gears

Android

GWT

Desktop AIR Local DBAIR Local DBpref pref

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

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

Open Question

•Interaction of Caja and GWT code

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

Details to finalize

•Set of widgets

•Event interface

•Packaging and Deployment process

•Toolset

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

Syndroid

One Gadget API to Rule Them All

top related