19
Google I/O 2008: Rich Internet Application (RIA) Development Alek Davis Copyright © 2008

Google I/O 2008: Rich Internet Application (RIA) Development

Embed Size (px)

DESCRIPTION

Overview of the Google I/O 2008 developer's conference, Rich Internet Application (RIA) development, and related technologies.

Citation preview

Page 1: Google I/O 2008: Rich Internet Application (RIA) Development

Google I/O 2008:Rich Internet Application (RIA) Development

Alek DavisCopyright © 2008

Page 2: Google I/O 2008: Rich Internet Application (RIA) Development

04/11/23Google I/O 2008: Rich Internet Application (RIA) Development2 of 19

Topics

• Report from Google I/O 2008

• Emerging standards and technologies

• Rich internet applications (RIA)

Page 3: Google I/O 2008: Rich Internet Application (RIA) Development

04/11/23Google I/O 2008: Rich Internet Application (RIA) Development3 of 19

Google I/O 2008

• About– May 28-29– San Francisco– Official site

• http://code.google.com/events/io/– Alek Davis: Technoblog

• Overview, impressions, links• Recommended videos, slides

• Tracks– AJAX & JavaScript (APIs, Web 2.0, HTML 5.0, Gears, GWT, search, offline)– APIs & tools (GWT, Google App Engine, Python)– Maps & geo (Flash, Mashups, Map API)– Mobile (Android, Gears, Mobile Apps)– Social (OpenID, OAuth, OpenSocial)– Code labs, tech talks, fireside chats

Page 4: Google I/O 2008: Rich Internet Application (RIA) Development

04/11/23Google I/O 2008: Rich Internet Application (RIA) Development4 of 19

Miscellaneous

• Travel– Parked at Berkeley's Ashby station ($5/day), took BART– Stayed at St. Francis Drake

• Keynotes– Learn about technologies covered at the conference (Vic Gundotra)– Learn about Google (Marissa Mayer)

• Informal chats– From the Google IO Conference blog (by Intel's Karun and Andy):

• "We had a chance to talk to a tech lead on Google Gears about how they develop and elevate application efficiently. His answer is simple - they do not follow any software development methodology or approach. They have [best coding] practices. On the top of it, the hiring bar is so high, the engineers generate good quality code and constantly find ways to improve it by peer reviews. Some parts of the organization follow SCRUM, but they are not crazy about it. What they believe is: less process more room for innovation."

Page 5: Google I/O 2008: Rich Internet Application (RIA) Development

04/11/23Google I/O 2008: Rich Internet Application (RIA) Development5 of 19

Trends and buzzwords

• Web 2.0– Internet as a platform– Hosted services, social networking, wikis, RSS, RIA, …

• Cloud computing– Apps run somewhere in the "cloud" (intranet or Internet)

• RIA (rich internet apps)– Web apps which look and perform like desktop apps

• JavaScript– Not as lame as it once was; optimization in new browsers

• Offline, desktop integration– Enabling Web apps to run offline

• Mashup– Web app that combines data from multiple sources into a single tool

• HTML 5.0– Not coming any time soon

Page 6: Google I/O 2008: Rich Internet Application (RIA) Development

04/11/23Google I/O 2008: Rich Internet Application (RIA) Development6 of 19

Rich internet applications (RIA)

• Two primary technologies– JavaScript (AJAX)

• Built-in browser support– Google AJAX APIs– jQuery, Prototype, script.aculo.us, MooTools, Dojo, …– Yahoo! User Interface Library (YUI)– ASP.NET AJAX

– Virtual machines (plug-ins)• Require installation (plug-in/runtime)

– Gears– Java / JavaFX – Flash / Flex – Curl– BrowserPlus– Silverlight

Page 7: Google I/O 2008: Rich Internet Application (RIA) Development

04/11/23Google I/O 2008: Rich Internet Application (RIA) Development7 of 19

Open source AJAX libraries

• Hosted by Google– http://code.google.com/apis/ajaxlibs/– Versioned, documented– Will be there "forever"

• jQuery• Prototype• script.aculo.us• MooTools• Dojo

<script src="http://www.google.com/jsapi"></script><script>  // Load jQuery  google.load("jquery", "1");</script>

Page 8: Google I/O 2008: Rich Internet Application (RIA) Development

04/11/23Google I/O 2008: Rich Internet Application (RIA) Development8 of 19

More AJAX libraries

• Google– Specialized

• Maps, search, RSS feed, language, visualization, blogging, …– Two families of APIs

• Google Data (GData) APIs (calendars, contacts, notbook, …)• Google AJAX APIs (search, maps, language, …)

• Yahoo!– The Yahoo! User Interface Library (YUI)

• Drag and drop, auto-complete, menu, tree view, tab view, …• Samples (demos)

• Microsoft– ASP.NET AJAX

• Built into .NET 3.5 (add-on for .NET 2.0)– Auto-complete, menu, accordion, masked edit, …• Samples (demos)

Page 9: Google I/O 2008: Rich Internet Application (RIA) Development

04/11/23Google I/O 2008: Rich Internet Application (RIA) Development9 of 19

Google RIA tools

• Google Web Toolkit (GWT)– Open source Java software development framework that allows web

developers to create AJAX apps in Java• Compiles Java app to optimized JavaScript (AJAX) code• Not designed for desktop apps

• Gears (former Google Gears)– Not released to public, yet (developer-only preview release)– Browser extension that enables the browser scripts to access the local

data store; designed mostly for offline support, but not only– Three main components

• Local server that caches app resources (HTML, JavaScript, images, …)• Database (powered by SQLite) that stores the data for offline use• Worker thread pool that synchronizes data in the background

– Apps that use Gears• Zoho (online office suite), Remember the Milk (to do list), Google Reader

(RSS feed reader), …

Page 10: Google I/O 2008: Rich Internet Application (RIA) Development

04/11/23Google I/O 2008: Rich Internet Application (RIA) Development10 of 19

Sun RIA tools

• JavaFX– Not available yet (developer preview by invitation)– Based on JavaFX Script (new scripting language)– Targets desktop and Web– Runtime, browser plug-ins, development tools– Advantages (or "advantages")

• "Built on Java [platform] (Java SE and Java ME)" ● "Sun will leverage its unrivaled reach to distribute the JavaFX runtime across all devices and screens" ● "Competing platforms are just beginning to provide early SDKs that provide relatively rudimentary capabilities for building browser and desktop resident applications"

– Confusing:• "JavaFX is a different technology, product and brand than the Java

platform. JavaFX is not dependent on any particular JVM or runtime environment, and JavaFX is not built using the JVM specifications. JavaFX leverages the appropriate runtime for each platform - on the desktop it leverages the JRE and is co-bundled with it, while on mobile it leverages the Java ME runtime, and similarly it can run on top of other VMs."

Page 11: Google I/O 2008: Rich Internet Application (RIA) Development

04/11/23Google I/O 2008: Rich Internet Application (RIA) Development11 of 19

Adobe RIA tools

• Flex– Next generation of Flash– Uses declarative XML (MXML) and ActionScript

• Supports JavaScript and CSS– Requires Flash 9 (or later) browser plug-in

• AIR (Adobe Integrated Runtime)– Desktop apps built using

• Flash• Flex• HTML, CSS, JavaScript (AJAX)

– Requires installation• Top 10 Apps Worth Installing Adobe AIR For

– Example• SitePoint: Tech Times: Issue 187: Adobe Air

Page 12: Google I/O 2008: Rich Internet Application (RIA) Development

04/11/23Google I/O 2008: Rich Internet Application (RIA) Development12 of 19

Mozilla RIA tools

• Prism– Converts Web apps into desktop apps– Uses mini-browser– Simple– Example:

• SitePoint: Tech Times: Issue 187: Mozilla Prism

Page 13: Google I/O 2008: Rich Internet Application (RIA) Development

04/11/23Google I/O 2008: Rich Internet Application (RIA) Development13 of 19

Yahoo! RIA tools

• BrowserPlus– Limited availability (only works from sites operated by Yahoo!)– Browser plug-in (a'la Gears)– Desktop integration– Handy functionality (promised)

• Drag-and-drop• Desktop notification• File uploader

– Does not work on my computer

Page 14: Google I/O 2008: Rich Internet Application (RIA) Development

04/11/23Google I/O 2008: Rich Internet Application (RIA) Development14 of 19

Microsoft RIA tools

• Silverlight– Browser plug-in (a'la Flash/Flex)– Subset of .NET runtime (full .NET Framework is not needed)– Rich media capabilities (images, HD video, …)– Version 2.0 is in beta (version 1.0 is very limited)– Installation issues

• "Message ID: 1638: Another version of Microsoft Silverlight is already installed on your computer. Please remove the existing version (see instructions) before reinstalling Silverlight."

– No drag-and-drop (between processes)– Demo: Microsoft Health

Page 15: Google I/O 2008: Rich Internet Application (RIA) Development

04/11/23Google I/O 2008: Rich Internet Application (RIA) Development15 of 19

Other RIA tools

• Curl– Most mature RIA technology

• 10 year old• Originated at MIT• 300 customers, 40 partners (mostly Japanese)

– Best suited for enterprise apps• Business focused• Data analysis• Reporting graphics

– Curl Nitro• Desktop integration (a'la Google Gears, Adobe AIR)

– Demos: Enterprise Software

• More RIA tools are available– Wikipedia: List of RIA Platforms / Approaches

Page 16: Google I/O 2008: Rich Internet Application (RIA) Development

04/11/23Google I/O 2008: Rich Internet Application (RIA) Development16 of 19

RIA technology war

• Who is winning?– The most ubiquitous

• Flash players are present on ~90% of client systems– The least disruptive

• More than half of users do not follow links to install plug-ins– Things to consider

• Platform support (Windows, OS X, Linux)• Internet vs. intranet

Page 17: Google I/O 2008: Rich Internet Application (RIA) Development

04/11/23Google I/O 2008: Rich Internet Application (RIA) Development17 of 19

More from Google

• Google Apps– Communication and collaboration apps (a'la Office Live Small Business)

• Mail, calendar, messaging, office docs, home page, web sites• Google app engine

– Private preview– Python language (runtime)

Page 18: Google I/O 2008: Rich Internet Application (RIA) Development

04/11/23Google I/O 2008: Rich Internet Application (RIA) Development18 of 19

Emerging technologies

• OpenID– Identity service, which allows Internet users to log on to many different

web sites using a single digital identity. OpenID is a decentralized, free and open standard.• Coding Horror: OpenID

: Does The World Really Need Yet Another Username and Password?

• OAuth– Open protocol for secure API authentication which gives users access to

their data while protecting their account credentials.• Dare Obasanjo: OAuth

: Standardizing Authentication and Authorization for Web APIs

• OpenSocial– Set of common (Google) APIs for building social applications across many

(social) websites. OpenSocial consists of both (Google) JavaScript APIs and Google Data APIs.

Page 19: Google I/O 2008: Rich Internet Application (RIA) Development

04/11/23Google I/O 2008: Rich Internet Application (RIA) Development19 of 19

Additional references

• Rich Internet Applications– Wikipedia: Rich Internet Application– Eweek: RIA War Is Brewing– AJAX, Flash, Silverlight, or JavaFX: Must We Choose?– How and Why AJAX, Not Java, Became the Favored Technology for Rich

Internet Applications– Why did Ajax beat Java in the RIA market?

• Miscellaneous– How Cloud & Utility Computing Are Different