Top Banner
0 AJAX Unplugged Ajax Unplugged Architecture and Tips for Taking Web Applications Offline J.J. Zhuang [email protected]
19

Architecture and Tips for Taking Web Applications Offlineajaxexperience.techtarget.com/images/Presentations/Zhuang_JJ_Ajax... · Architecture and Tips for Taking Web Applications

Apr 22, 2018

Download

Documents

dinhtu
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Architecture and Tips for Taking Web Applications Offlineajaxexperience.techtarget.com/images/Presentations/Zhuang_JJ_Ajax... · Architecture and Tips for Taking Web Applications

00 AJAX Unplugged

Ajax Unplugged

Architecture and Tips for Taking Web Applications Offline

J.J. [email protected]

Page 2: Architecture and Tips for Taking Web Applications Offlineajaxexperience.techtarget.com/images/Presentations/Zhuang_JJ_Ajax... · Architecture and Tips for Taking Web Applications

11 AJAX Unplugged

Agenda

Who’s Zimbra?Why do we need offline Webapps?What options are there?

Review some “offline” technologiesDemo!Architecture of Zimbra DesktopChallenges for the developerQuestions?

Page 3: Architecture and Tips for Taking Web Applications Offlineajaxexperience.techtarget.com/images/Presentations/Zhuang_JJ_Ajax... · Architecture and Tips for Taking Web Applications

22 AJAX Unplugged

Why Offline?

Lack of always-on internet accessAlways-on need for information

Travel – Air, Train, Auto, etcISP service interruptions

Client or Server (Data Center)Remote; unconnected land and water

Even a remote officeMore and more data lives in ‘the cloud’

Today’s SaaS require network accessThat’s how a true desktop app works

Page 4: Architecture and Tips for Taking Web Applications Offlineajaxexperience.techtarget.com/images/Presentations/Zhuang_JJ_Ajax... · Architecture and Tips for Taking Web Applications

33 AJAX Unplugged

Why Offline AJAX?

Performance (client and server)Removes latency from network opsOffloads *even* more work to client CPUAllows server requests to be batched

Same UI both online/offlineSaves $$ training users for one appSaves $$ on software costs of separate offline app

Page 5: Architecture and Tips for Taking Web Applications Offlineajaxexperience.techtarget.com/images/Presentations/Zhuang_JJ_Ajax... · Architecture and Tips for Taking Web Applications

44 AJAX Unplugged

What solutions are out there today?

The Fancy Caching ApproachFirefox 3 Offline SupportGoogle GearsDojo Offline Toolkit

The Desktop VM ApproachMozilla XUL RunnerAdobe AIR (formerly Apollo)Joyent Slingshot

Roll your ownZimbra Desktop

Page 6: Architecture and Tips for Taking Web Applications Offlineajaxexperience.techtarget.com/images/Presentations/Zhuang_JJ_Ajax... · Architecture and Tips for Taking Web Applications

55 AJAX Unplugged

Firefox 3 Offline

FeaturesAnywhere Firefox runs (*nix, Win, Mac)Gecko rendering for HTML/JavaScriptWHATWG client-side storage, offline eventsSQLite for offline storage

LicenseMPL - Open Source

AvailabilityAlpha 5

Page 7: Architecture and Tips for Taking Web Applications Offlineajaxexperience.techtarget.com/images/Presentations/Zhuang_JJ_Ajax... · Architecture and Tips for Taking Web Applications

66 AJAX Unplugged

Google Gears

FeaturesLocalServer - Cache & Serve HTML, JS, CSS, etcDatabase - SQLite with full-text searchWorkerPool - Async resource-intensive tasksWinXP & Mac OS X 10.2+ & LinuxFirefox (Mac/Win/Linux), IE (Win)

LicenseOpen Source - New BSD License

AvailabilityPublic BetaGoogle Reader Offline Several Sample Apps

Page 8: Architecture and Tips for Taking Web Applications Offlineajaxexperience.techtarget.com/images/Presentations/Zhuang_JJ_Ajax... · Architecture and Tips for Taking Web Applications

77 AJAX Unplugged

Dojo Offline Toolkit

FeaturesBuilt on top of Google GearsExtends Gears with a higher level APIEncryption supportSimple Hashtable storage api

LicenseOpen Source like Dojo (AFL or BSD)

AvailabilityBeta with Dojo 0.9Live Demos - Simple, Moxie (doc editor)

Page 9: Architecture and Tips for Taking Web Applications Offlineajaxexperience.techtarget.com/images/Presentations/Zhuang_JJ_Ajax... · Architecture and Tips for Taking Web Applications

88 AJAX Unplugged

Mozilla XUL Runner

FeaturesWhere Firefox runs (*nix, Win, Mac)Gecko rendering for HTML/JavaScriptJavaScript access XPCOM objects via XPConnect

LicenseMPL - Open Source

AvailabilityDeveloper PreviewShipping apps today (Google Adwords Editor)

Page 10: Architecture and Tips for Taking Web Applications Offlineajaxexperience.techtarget.com/images/Presentations/Zhuang_JJ_Ajax... · Architecture and Tips for Taking Web Applications

99 AJAX Unplugged

AIR (formerly Apollo)

FeaturesFileIO, On/Off-line, Windowing, Clipboard, DnD, Local Storage, Network APIsEventually could be delivered via Flash►Or like Flash

WebKit for HTML/JavaScript renderingWinXP SP2+ & Mac OS X 10.4.8+

LicensePlan to contribute rendering changes to WebKitActual runtime free but closed sourceDeveloper tools cost (optional)

AvailabilityPre-release BetaSeveral demo apps (on their wiki)

Page 11: Architecture and Tips for Taking Web Applications Offlineajaxexperience.techtarget.com/images/Presentations/Zhuang_JJ_Ajax... · Architecture and Tips for Taking Web Applications

1010 AJAX Unplugged

Joyent Slingshot

FeaturesRuby on RailsActiveRecord SyncSQLite local storageMac OSX & WinXPSeems to lack OS native support

LicenseOpen Source under GPL v2; Commercial versionFree if using Joyent’s application hosting

AvailabilityOSS Public ReleaseSeveral apps ported

Page 12: Architecture and Tips for Taking Web Applications Offlineajaxexperience.techtarget.com/images/Presentations/Zhuang_JJ_Ajax... · Architecture and Tips for Taking Web Applications

1111 AJAX Unplugged

Demo

See it in action

Page 13: Architecture and Tips for Taking Web Applications Offlineajaxexperience.techtarget.com/images/Presentations/Zhuang_JJ_Ajax... · Architecture and Tips for Taking Web Applications

1212 AJAX Unplugged

Zimbra Offline

FeaturesLinux, Win32 and Mac (Intel)Firefox, Internet Explorer and SafariIdentical AJAX interface to online versionMicro Server for sync, persistence, and search►Derby (Meta Data, User Profile)►Lucene (Full text search)►Jetty (HTTP, JSP)►Filesystem for messages

Support for large datasets multi-GBLicense

Open Source - MPL/ZPLAvailability

Zimbra Desktop Alpha

Page 14: Architecture and Tips for Taking Web Applications Offlineajaxexperience.techtarget.com/images/Presentations/Zhuang_JJ_Ajax... · Architecture and Tips for Taking Web Applications

1313 AJAX Unplugged

Zimbra Desktop Sync Service

Underlying file system

Lucene Index Derby

Meta-data/User profile

Zimbra Message

Store

JDBC

J2SE JRE

Jetty

Zimbra AJAX Toolkit

SOAP/XML (JSON) HTTP

Zimbra Desktop Client

Web browser (Firefox, IE, Safari)

ZimletsZimbra POPIMAP

SOAP/XML HTTP

IMAP (Future)

POP(Future)

Zimbra Micro Server Architecture

Page 15: Architecture and Tips for Taking Web Applications Offlineajaxexperience.techtarget.com/images/Presentations/Zhuang_JJ_Ajax... · Architecture and Tips for Taking Web Applications

1414 AJAX Unplugged

Challenges for the Developer

Selecting *what* to take offlineSecurity risksDoes the user need it?Can they use it offline?

Sync is hardConflict resolutionMulti-user and multi-client

End-User Desktop SupportRisk of increased support/debugging costs

Upgrades and PatchesHave a plan *before* you release

Page 16: Architecture and Tips for Taking Web Applications Offlineajaxexperience.techtarget.com/images/Presentations/Zhuang_JJ_Ajax... · Architecture and Tips for Taking Web Applications

1515 AJAX Unplugged

Thank You! Questions?

More Information:www.zimbra.com/desktopwww.zimbra.com/blogwww.zimbra.com/forums

Page 17: Architecture and Tips for Taking Web Applications Offlineajaxexperience.techtarget.com/images/Presentations/Zhuang_JJ_Ajax... · Architecture and Tips for Taking Web Applications

1616 AJAX Unplugged

Some Related Linkshttp://blog.monstuff.com/archives/000272.htmlhttp://developers.sun.com/javadb/overview/product_tour/readme.jsphttp://labs.adobe.com/technologies/apollo/http://www.sitepen.com/blog/2007/01/02/the-dojo-offline-toolkit/http://codinginparadise.org/projects/dojo_offline/release-02-20-2007/demos/storage/editor.htmlhttp://joyeur.com/2007/03/22/joyent-slingshothttp://blog.magnetk.com/2007/03/22/joyent-slingshot/http://www.bluishcoder.co.nz/2007/02/offline-zimbra-with-firefox.htmlhttp://weblogs.mozillazine.org/roc/archives/2007/02/offline_web_app.htmlhttp://ejohn.org/blog/offline-events/http://developer.mozilla.org/en/docs/XULRunnerhttp://blogs.salesforce.com/features/2006/03/offline_edition.htmlhttp://www.tiddlywiki.com/http://www.zimbra.com/desktop

Page 18: Architecture and Tips for Taking Web Applications Offlineajaxexperience.techtarget.com/images/Presentations/Zhuang_JJ_Ajax... · Architecture and Tips for Taking Web Applications

1717 AJAX Unplugged

Next-Generation Integrated Messaging & Collaboration SolutionMail, Contacts, Calendar, Web Documents, Wiki, VOIP, RSS, Mash-ups, Search, Sharing, Web services, etc.

Customers:8M+ paid mailboxes: enterprises, SMBs, hosting providers, EDU & ISPs1400+ customers

What Makes ZCS Different?Innovation – rich, ubiquitous user experience + cost-effective administrationOpen Source – transparency, community, extensibilityCompatibility – diverse environments & user groups support, investment protection, flexibility, application integration

Partners:

Awards:

Zimbra Snapshot

Page 19: Architecture and Tips for Taking Web Applications Offlineajaxexperience.techtarget.com/images/Presentations/Zhuang_JJ_Ajax... · Architecture and Tips for Taking Web Applications

1818 AJAX Unplugged

Zimbra Sync

Zimbra Collaboration Platform

Standards Clients Outlook 2003, 2007Apple Desktop

iPhone

Standards (Q3 beta)

Blackberry

zSync

BES

J2ME

XHTML

IMAP, POP, iCal, RSS/Atom, CalDAV (beta)

zSync

zSync

iZimbra

iSync MAPI

Disaster Recovery

Zimbra Sync

Pocket PC

5 & 6Palm Symbian

Zimbra Server

Alpha

zSync

Evolution (Beta)

Email - Calendar - Contacts - Tasks