Wednesday, March 28th, 2007
Zimbra has had a local proxy solution for a long time, so it only made sense that they would innovate quickly to come up with Zimbra Desktop:
Zimbra Desktop is the next generation leap forward for Web 2.0 applications- now you can have Zimbra’s Ajax-based collaboration experience online and offline. That means when you are out of the office without a connection (say, in a plane, train, or automobile), you can keep working without missing a beat. Write email, add new appointments, edit documents and when you re-connect changes will be automatically synced to the Zimbra Server.
We talked to Kevin Henrikson of Zimbra and he kindly answered some questions:
Q. Not all offline is equal. What is Zimbra’s solution, and how does it compare to Apollo, Slingshot, Firefox…
Zimbra has used a variety of off the shelf open source technologies to provide our offline solution. Jetty(http support), Derby (SQL support), Lucene (full-text indexing), etc. The choice of these components was for several reasons. They can be embedded, Java based(our tech of choice), made reuse of our current code easy, ability to support extremely large data sets, and ability to be optimized for heavy email/collaboration work loads. The key difference is large datasets and the ways in which we need to to access that data with a mix of structural (SQL), full-text (search) and object (blob) patterns. Most other offline solutions take a file or object based storage API but for Zimbra we need to be more flexible.
Summary of ways in which Zimbra Desktop’s solution differ’s from apollo/slingshot/firefox/dojo:
- Released and publicly available today(although in alpha)
- 100% Open Source and based on open protocols/technology
- Cross platform including Mac/Linux/Win32
- Designed for very large datasets (sub-second search responses on multi-GB mailboxes)
- Reuses Zimbra AJAX web UI and SOAP/JSON based API
- Requires a local client install(some of the above may not)
- Cross browser (Safari/IE/Firefox)
- Java Based vs Rails (Slingshot) vs Flex/Flash (Apollo) vs Browser specific (Firefox)
What are the challenges for a developer to create offline capable applications?
Some questions/challenges when taking a webapp offline:
- Do you take all your features and data offline?
- What browsers/platforms will you support?
- Data integrity now that an offline copy can become the master.
- Conflict resolution and change mgmt in multi-user environments/applications.
- End user desktop support. Something many web app developers take for granted.
How important is offline to your customers?
Very important. In fact this was a major driver. People have asked for a Zimbra offline solution and in particular wanted the same interface they’d fell in love with when working online. Countless number of times we’ve heard customers and our community and ask to keep the Zimbra AJAX interface when away from home and a network connection. The pain they felt when forced to use Outlook, Apple Mail, Thunderbird, or some other fat client when traveling made them want a Zimbra like interface and feature set.
Should the average Joe start trying to implement offline, or should we be waiting for the new standards to be implemented and such?
It depends. Do you users need it? Are they asking for it? Is the data your app needs offline access to small and simple? Applications like Instant Messaging don’t make sense to take offline. On the flip side applications where offline editing, composing and creating are common may have reasons or need for an offline solution today. For Zimbra we heard the need frequently. Other applications may not have that same pressure and can wait until standards are written and toolkits like Dojo stabilize and become popular making the hard things easy for the average web developer. Dojo in particular is something we are watching with great interest. Brad Neuberg has been looking at this issue for quite sometime. First with AMASS (flash backed web storage), then Dojo Storage (pluggable storage toolkit) and more recently the Dojo Offline Toolkit(complete offline framework). It’s 100% open source, cross platform and cross browser. Doesn’t quite meet the needs of an application like Zimbra but will help a large number of applications on the web today. Those apps should be able to create an offline solution rather quickly when starting with the Dojo Toolkit. In particular we like the way he’s handled online/offline detection and the automatic switch between.
Posted by Dion Almaer at 9:14 am