Posted in Open Source by Scott Dietzen on the June 27th, 2008
Software as a Service (SaaS) is often seen as an alternative model to Open Source Software (OSS) for the delivery of next-generation software. However, we argue below that SaaS and OSS are independent and even complementary paradigms.
Nevertheless, with few exceptions (e.g., SugarCRM), software startups do not pursue both approaches because building out an open source community and data center/operations is beyond their reach. Prior to the merger with Yahoo!, Zimbra made our bet on open source, believing that OSS was the best means to innovate in messaging and collaboration software (without having to fund a large data center, operations team, and sales force). While I am confident that this was the right choice, ever since the initial launch of the Zimbra Collaboration Suite, end-users have been asking us where they can get their Zimbra via SaaS rather than download, and we have been pointing them toward our many hosting partners.
On the other hand, most every SaaS offering (Microsoft Live the exception?) makes substantial use of OSS, and many contribute back to the open source projects they incorporate. But what most of them do not do is also open source the original code each develops for their SaaS product itself. Why should they? It is a substantial amount of additional work to launch an open source community. And the cynic would argue why give up proprietary intellectual property and lock-in unless your customers or competitive pressures are forcing you to do so? Indeed, the lock-in with SaaS may prove to be more onerous than it has been with proprietary software—not only is an organization tied to a proprietary software service, but its data is now resident in someone else’s data center. At the very least, your organization should ensure that any of your data stored remotely is fully accessible via web services, so you can preserve your options. Even then, migrating from one SaaS solution to another or from SaaS to traditional software is likely to prove at least as hard as switching between software stacks has been.
Which is why we see such a bright future for software that is delivered both in open source and via SaaS. Open source leads to better software, better through community innovation and hardening. And open source affords better long-term investment protection for both SaaS and “on premises” solutions. While SaaS allows organizations to ramp up new software with minimal investment, open source means they could always bring it in house later or move to an alternative provider (or at least have the negotiating leverage for doing the same). Consider many of the universities using Zimbra: universities often want the option of on-premises software for faculty and staff, but hosted software for students and alumni, all from one unified platform. The combination of open source and SaaS seems to be the one that best meets such customer needs.
Some of the SaaS vendors will argue that this is infeasible—that SaaS software is so different from “on-prem” software that the solutions must inherently be distinct. This is false. The overall Zimbra code base today delivers a unified user and administrator experience when scaling from a user’s desktop (Zimbra Desktop) to a single server for a SMB to the large multi-tenant, multi-data center farms of large service providers that support 10,000s of businesses or 10s of millions of consumers. The key is to design the software for SaaS from the inception and support on-prem as a special case—that is, to open source a software stack that is SaaS-ready. Zimbra has been delivered via SaaS since the very early days, the only distinction was that we did not build out the data centers but rather relied on our channel partners.
Of course, one of the major upsides for Zimbra in becoming part of Yahoo! last October is to leverage our new parent’s talent and resources to provide our own SaaS offering of Zimbra. The goal is to preserve all that users love about Zimbra—its community, its innovation, its extensibility, its partner/channel friendliness, and its long-term investment protection—but package it for the ease of adoption and low-cost of ownership of SaaS. Depending on your organization type, Yahoo! either has or will soon have a Zimbra SaaS package for you. At the same time, we are committed to continuing to work with our SaaS channel partners, many of whom offer Zimbra as a “white label” solution deployed from their data centers, and some of whom will actually be integrating Zimbra SaaS from Yahoo! within their own value-added SaaS offerings. Yahoo! is committed to this vision and ultimately sees the openness and extensibility of our infrastructure to be one of our chief competitive advantages—witness YUI, Hadoop, and Zimbra as well as OpenSocial, Open Search, OpenID, and so on.
So open source and SaaS are not contradictory, and end-users will ultimately be better off if they seek out software solutions that offer both!
Scott Dietzen is part of the Global Communications Products team at Yahoo! which spans Y!-Mail, Y!-Messenger, and Zimbra.
This week, Zimbra held a Zimbra Administration Course at the Yahoo! headquarters in Santa Clara. For those who don’t know, the administration course covers just about everything in Zimbra from A to Z.
I had the opportunity to lead the first two days of the basic/general sessions of the training course. Attendee’s learned everything from Installation and upgrades to Java Garbage Collection and Disaster Recovery.
We like to play a game during training called “stump the chump”, where attendee’s who stump me get t-shirts. Attendees also get to keep all the training materials, and exclusive access to a special training forum called “Camp Zimbra.
The Third day is the advanced course, and it was led by Anup P. Anup is a Zimbra Service Engineer who has a ton of Large Deployment experiences under his belt. He led the Third day covering things like performance graph generation, and cluster-specific options and questions.
Congratulations to the Zimbra Admin Class of June 2008 from all of us at Zimbra!
If you’re interested in when a Zimbra Training will be available for your region, or when the next one will be available, check out our Zimbra Training Page.
With Zimbra 5.0 we’ve introduced some newer ways to make the user experience faster with the Zimbra Web Client. We’ve talked about Jetty, YUI compression, and Lazy Loading, but now there’s just one burning question: Which browser is fastest?
There’s some amazing JavaScript handling enhancements about to be pushed into the major browsers. In-case you missed previous rounds of the browser wars we’ll tell you the answer, but you should still checkout Firefox 2 vs FF3RC1, Internet Explorer 7 vs IE8b, and Safari 3.1.1 vs SF nightlies to get more insight into how each fared on the testbed.
The gloves are off, this is a bare knuckle battle-royal fight:
The winner’s Safari!
Surprised?
So were we.
We had high hopes that FF3GA would at least match Safari 3.1.1 in order to contend with Apple’s Safari 4 just around the corner. Infact that graph is simply those tested in our browser war series; the WebKit nightlies (engine for SF4) deliver a knockout blow. And it’s not just our favorite testing software that shows this; we use OpenQA Selenium which allows us to nicely calculate time rendering a page while navigating the Zimbra AJAX web-client. Other commonly used benchmarks like SunSpider & VeriTest show very similar results and Safari 4 nightlies even fare well on the Acid3 DOM and JavaScript test, beating out Firefox 3 every time. But we’ll let the judges analyze and discuss later.
The SquirrelFish JavaScript interpreter in Safari 4 is a bytecode engine which eliminates almost all of the overhead of a tree-walking JavaScript interpreter. According to the WebKit project, the SquirrelFish engine is 1.6 times faster than the engine in Safari 3.1. SquirrelFish does its magic by turning JavaScript script into so-called bytecodes, an optimized code much more suitable for run-time execution than natural language-based commands, which are longer and more complicated to interpret – and therefore are slower. It also leaves room to experiment with things like constant folding, type inference, specialization based on expression context, peephole optimization, and escape analysis.
In addition, Safari 4 adds the ability to save webpages as standalone web applications (Similar to the Mac favorite Fluid, or Mozilla’s Prism which meshes nicely as an add-on to Firefox.), CCS enhancements to gradients, masks, and reflections, as well as some additional native font rendering and HTML5 support.
That said, there’s more to browser choices than JavaScript rendering in ZCS - it’s a great day for Firefox. The new release is packed with over 15,000 updates and new features; from the underlying Gecko and JavaScript engines to Profile-Guided Optimizations (dual pass compiling) that bring dramatic improvements to performance, memory usage and speed. And you can’t forget the best add-on network.
There was previously a clamoring in the forums about participating in Firefox 3 download day Guinness World Record attempt. Go do your part and download this awesome browser!
*Test machines were running AMD Opteron 1.8GHz Dual-cores with 2GB RAM against ZCS 5.0.6 GA RHEL4. As always performance will vary based on system configuration, network connection, and other factors like account data and preferences.
Some might be thinking it seems like a shorter gap in browser versions - why not Safari 3.0 through 3.0.4, or even 3.1 to show greater self improvement? First, we opted for current supported release vs betas. We did use Firefox 2.0.0.14 and the most up-to-date IE7 we could find for previous matches. Secondly, since we planned this series 3.1.1 became GA, so we decided to do Safari 3.1.1 build 525.17 (which was at least pushed to the masses) vs WebKit r33940 (the open-source browser engine packaged close to Safari 3.1.1 build 525.20).
But as you can see Safari clearly doesn’t need the moral boost anyways:
You know the drill: We used an OpenQA Selenium setup to calculate time rendering a page; across the same set of saved actions such as logging in, composing and viewing messages, navigating around various folders, switching between our many apps, and even changing options.
Those might not look like huge jumps, but Safari builds have been churned out so fast - and nothing on that graph is over 2 seconds. The older version only wins in a handful of cases, but that could easily be due to other test-harness factors when your dealing with 1/100th’s of a second.
Safari has clearly been working out - it’s fit, and plans to stay that way by avoiding dessert.
Mac users rejoice: Apple released Safari 3.1.1 build 525.20 (~WebKit r33940) on May 28th with Mac OS X v10.5.3.
Windows machines have Safari 3.1.1 but it’s still build 525.17, so some stuff hasn’t been incorporated into Windows releases yet; and Apple either takes their time distributing updates, or they’re waiting on a Safari 4 version before next push. Don’t fret, it’s still decently fast and you’ll have the latest JS engine soon no doubt.
There’s already a developer seed of Safari 4 released. Which includes the SquirrelFish JavaScript interpreter (renamed from GlassFish to avoid confusion with Apple’s other Java stuff). SquirrelFish is a bytecode engine which eliminates almost all of the overhead of a tree-walking JavaScript interpreter. It also leaves room to experiment with things like constant folding, type inference, specialization based on expression context, peephole optimization, and escape analysis but they haven’t implemented all that yet. Safari 4 adds the ability to save webpages as standalone web applications (much like site-specific browsers such as Fluid, Adobe AIR, Bubbles, the favorite Mozilla Prism and countless others), some CCS enhancements to gradients, masks, and reflections, as well as additional native font rendering which provides a better experience for Windows users.
You can grab the nightlies (currently WebKit r34581) here. Or grab the current Safari GA by heading over to Apple’s site.
*Test machines were running AMD Opteron 1.8GHz Dual-cores with 2GB RAM against ZCS 5.0.6 GA RHEL4. As always performance will vary based on system configuration, network connection, and other factors like account data and preferences.
Round 1 covered Firefox 2 vs 3RC1 and the results were much easier to predict and extrapolate, but it wasn’t the same for Internet Explorer 7 vs 8b. In the heavy weight division IE7 is often compared to a 500-pound gorilla, but could Microsoft convince it to go on a diet for IE8?
Once again we used a customized OpenQA Selenium setup to calculate time-taken rendering a page after clicking a particular button/link; across the same set of saved actions such as logging in, composing and viewing messages, navigating around various folders, switching between our many apps, and even changing options as done on Firefox. And IE7 connected a hard blow right off the bat.
It certainly wasn’t going to be a pushover fight. IE8b wiped the blood off it’s face from the initial loading and decisively won all the little forays. However, when throwing bigger JavaScript rendering tasks at the contestants it often looked to be anyone’s fight. The really crazy thing about it is that while there’s tons of CSS handling improvements in IE7 as opposed to IE6; IE8b touts more JavaScript enhancements than IE7 (what should matter for ZCS) but I just wasn’t blown back in awe. While IE8b’s endurance clearly won in the end, IE7’s punches are gonna leave a few bruises.
It’s good that Microsoft finally realized that people were tired of switching between Internet Explorer and a separate development environment such as IEWatch or Visual Studio and polished up their debug tools for JavaScript, CSS, and HTML. (We’re gonna cover our favorites from Firebug & Charles to Eclipse, IntelliJ, & GDB later.) They also included more ways to give feedback and track feature requests for this beta period as opposed to last time. IE8b contains sparse CSS3 support, but finally complete HTML4 adherence - though we’re rounding on HTML5, and CSS2.1 compliance isn’t new - it was even aimed for IE7 but ended up sub-par. As far as I can tell most of the JavaScript rendering speed reported by others have been because of DOM enhancements (how you store meaningful amounts of client-side data in a persistent and secure manner) rather than the stated JavaScript the engine overhauls. Either that or it just took so long to warm up for a noticeable kick in our tests.
Granted IE8 is farthest out, so hopefully that gives Microsoft time to refine their closed source browser. Don’t get me wrong IE8b is an improvement; but we’re rounding on GA release of Mozilla Firefox 3 next week, while Apple pushed Safari 3.1.1 into OS X 10.5.3 and already has a game-plan for Safari 4, so Internet Explorer better step up the training regiment.
*Test machines were running AMD Opteron 1.8GHz Dual-cores with 2GB RAM against ZCS 5.0.6 GA RHEL4. As always performance will vary based on system configuration, network connection, and other factors like account data and preferences.
A few years ago I thought the days of rambling off your entire schedule to someone else, over the phone or via email, to find a meeting time were long dead and gone. What I’ve found after a couple years in the work force is that most of the collaboration platforms today essentially only share free-busy information within your group. More often than not, in broad working units the folks on the other side have a different system. How do you really get anything done when there really is no seamless scheduling interaction between those platforms?
While we’d love the whole world to instantly convert to Zimbra, we realize that from time to time people in this situation for whatever reason (slow migration or stubborn departmental preference) have that one peer organization running different software. How to seamlessly find timeslots for meetings? And what to do for cases where you may not want to share your entire calendar with a huge list of people, a distribution list, or don’t want all your calendar events public?
Well, the CalConnect Roundtable we talked about earlier is finishing up, and as the week drew to a close we had another ace up our sleeve: Free-Busy Interop.
Both the Network and Open Source Editions of Zimbra now support two-way free/busy information with Microsoft’s Exchange Server, IBM’s Lotus Domino Messaging Server, Meeting Maker, and a slew of other third-parties that interact with our API. Plus, the framework is completely available to anyone who wants to build an extension for other platforms!
The query and propagation of free/busy data is done via REST and WebDAV interfaces. You can catch a in-depth walkthrough of how it’s done in this overview PDF.
For info on how to set it up, checkout SRC/ZimbraServer/docs/freebusy-interop.txt. Grab a copy via perforce, this post, or ask us about it in the ZCS forum section.
Don’t need interop? You can also visit http:// zimbraserver.domain.com/home/username?fmt=freebusy to display an aggregate HTML calendar of the user’s free-busy data. (Of course you can always choose to select “exclude this calendar when reporting free/busy times” on your calendar properties if you wish.)
iCalendar (the standard .ics not the Apple program) only gets you so far. We’ve previously covered CalDav in Apple’s iCal for Mac, but where does the CalDav field stand for Windows and Linux users?
It’s important to push communication between different programs, platforms, and technologies. We’ve just completed a free-busy interop that we’ll blog more about that later, but you can checkout the forum announcement.
This week, Jong L. and John H. are at CalConnect Roundtable XII from June 2nd to 6th, 2008. Where they’re doing some heavy testing with other clients and servers to make sure that we’re compatible and standards-compliant.
A good consortium for that is CalConnect’s Interoperability Test Events (C.I.T.E.) the latest we attended during a previous Roundtable back in February. It included all sorts of IOP and Mobile IOP events, where interoperability testing between different calendaring and scheduling implementations were preformed. Organizations participating in the C.I.T.E. events were Apple, Microsoft, Zimbra (Yahoo!), Oracle, Sun, Kerio, Marware, Scalix, and Sony Ericsson.
While there’s plenty of CalDav compatible programs out there our server-team judges are firm: Pizazz and setup wizards won’t get you anywhere if you can’t correct that meeting time or properly notify others of the change.
If you want strict specification adherence in a cross-app & cross-platform thick-client: Our winner is Mulbery for Linux, Windows, & Mac. In addition to being a Swiss-army-knife of protocols, it’s also Open Source.