Web 1.0 started off for consumers, but began to change the ways in which businesses used technology. A handful of technologies allowed us to create a decade of exciting innovations. With Web 2.0, all of us have become participants, often without realising the part we play on the Web – clicking on a search result, uploading a video or social network page – all of this contributes to and changes this Web 2.0 infrastructure. This has enabled phenomenons like Yahoo! Flickr and open source, where a small group of people get together, put a basic model forward, and then let it loose. As a result of many contributions from around the world, we now get these phenomena. There are 11,000 participants in the Zimbra open source community, vastly more than the personpower Zimbra or Yahoo! could put into the project.
Another issue is that browsers weren’t initially designed for this kind of “punishment”, so it’s taken time for browsers to become solid productive AJAX containers. They can still do better, and Scott said he is excited to see the emergence of JIT-compilation technology that will allow browsers to operate at least two to three times faster.
With Zimbra, there is no caching of user data within the client. So in a public kiosk, there will be no security leaks under AJAX. The challenge is that the source code is now available to anyone with a web browser. It is crucial to protect against ever executing any JS code that is external to your application. For the first time, we have a universal user interface that is connected to and allows one to mix and match various UIs together: Scott reckons we’ve only just begun to touch the surface of what can be done with mashups.
There are four techniques to speeding up AJAX applications. Firstly, combine stuff together where possible. Then, compress the pages to shrink the required bandwidth for smaller pipes. Next is caching, to avoid having to re-get the JS and re-interpret it (in Zimbra, they include dates for when the JS files were last updated). The last and best technique is “lazy loading”. Zimbra is a very large JS application in one page. By breaking it up into several modules that can be loaded on demand, one can reduce the time from when you can first see and start using the application.
Offline AJAX is a fundamental change but offers many opportunities. You can have the web experience when on a flight or when far away from the data centre that you normally use. Zimbra is faster to use as an offline version while synchronising back to California, rather than having to wait for every operation to cross the ocean and back again. For Zimbra, they took the Java server code and produced a micro version to install on the local desktop. This allows one to preserve all the “smarts”, and make them available to desktop users. Offline isn’t for everything, for example, when data is so secure that it shouldn’t be cached on a PC, or if old data gets stale and no longer makes sense, etc. Also, you have to solve synchronisation issues. You can be changing your mailbox while on a plane, but new mail is arriving in the meantime and some reconciliation has to take place. And there is also the problem of desktop apps in general: once you have code, how do you upgrade it, etc.
In Web 1.0, UI logic, business logic, and data logic were all supposed to be separated. They could fix some (X)HTML and SQL schemas to aid with this, but in practice people didn’t modularise. In Web 2.0, there is an effort to have clearer separtions (due to mashups, feeds, etc.) between client / UI logic, server / business logic, and data logic. It’s better to modularise, and getting people to move towards a more modular architecture will allow you to get more value from your business applications, and will also allow you to “play in this Web 2.0 world”. In relation to SOA, Scott said that we are perhaps moving from something like ISO, where there’s one big document with a 10,000 page specification, to something almost as problematic, where there are one page specs for 10,000 or more web services. There is a well known theory that you can’t start with something complex and expeect everyone to suddenly start using it.
He then focused on software as a service, or SAAS. SAAS is inherent in the Web, since the service is off somewere else when you open up a browser page. He also talked about the opportunities when businesses are put together in the same data centres. This results in multi-tenancy, and the ability or need to set up a single server farm with tens of thousands of companies’ data all intermixed in a secure way without compromising each other. There is a need to think about how to manage so many users together at once. This is usually achieved through a common class of service for all these users as a whole. Administation should be delegated, to some extent, an important aspect to get right. You may also may want to allow users to customise and extend their portion of the applications they are using if appropriate.
Scott next talked about convergence. E-mail has made great progress in becoming part of the web experience (Hotmail, GMail, Yahoo! Mail, etc.). The same thing is now happening to IM, to VoIP, to calendars, etc. For example, a presence indicator next to an e-mail inbox shows if each user is available for an IM or a phone call. Or the reverse: someone tries to call or IM you, but you can push back and say that you just want them to e-mail you because you’re not available right now. Being able to prioritise communications based on who your boss is, who your friends are, etc., is a crucial aspect of harnessing the power of these technologies. On voice, we want to be able to see our call logs, to use these to dial our phone, e.g., you want to just click on a person and call that person. You may also want to forward segments from that voice call over e-mail or IM.
In Japan, they have had compelling applications for mobile devices for a lot longer than the rest of the world. Scott showed a demonstration of the Zimbra experience on an iPhone. Scott finished by saying that everything about these new technologies has to be used right to make someone’s life better, and to make usage more compelling. Innovation, or how deeply we can think about how the future ought to look like, is very important.
Seiji Sato from Sumitomo, whose subsidiary Presidio STX invested in Zimbra last year, then spoke. He started by mentioning that over 100 corporations are now using Zimbra. Sumimoto hopes to contribute to “synergy effects” in Japan’s Web 2.0 community by mashing up services from various businesses and by providing the possibility to extend and utilise available company competencies.
To expand Zimbra’s usage in Japan, Sumitomo have been working with their associate company FeedPath and other Web 2.0 business, providing Zimbra localisation and organising a support structure both for this market and for early adopters. Sato said that although Sumitomo are not a vendor or manufacturer, they feel that the expansion of Web 2.0 is quite viable and very important.
After the talk I asked Scott if Zimbra would be looking at leveraging any widgets that will be developed under the much-hyped OpenSocial initiative within the Zimbra platform, since it seemed to me that there is a natural fit between the implicit social networking information being created within Zimbra and the various widgets that are starting to appear (and I guess since they are just in XHTML / JS, there’s a technology match at least). Scott told me that Zimbra already has around 150 plugins, and that the ability to layer mashups on top of this implicit social network information is certainly very important to them. He was unsure if OpenSocial widgets would fit to Zimbra since their e-mail platform is quite different from SNS platforms, but he did say [theoretically, I should add, as there are no plans to do so] that if such widgets were ported to work with Zimbra, they would probably require extensive testing and centralised approval rather than just letting anybody use whatever OpenSocial widget they wanted to within Zimbra.