architecture and tips for taking web applications...
TRANSCRIPT
00 AJAX Unplugged
Ajax Unplugged
Architecture and Tips for Taking Web Applications Offline
J.J. [email protected]
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?
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
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
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
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
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
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)
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)
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)
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
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
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
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
1515 AJAX Unplugged
Thank You! Questions?
More Information:www.zimbra.com/desktopwww.zimbra.com/blogwww.zimbra.com/forums
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
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
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