I am sometimes asked why Kerio replaced native client administration consoles with an exclusively web administration approach, which is perhaps seen as one of the more controversial decisions we have made in the past. As web technologies continued to mature, we anticipated a wider industry trend towards shifting user interfaces to the browser. Let me give you a quick peek at Kerio's long-term web development strategy.
Several years ago we observed a few trends among our customers and in the wider market:
- Our customers and partners started asking us for APIs to better integrate Kerio products into their IT infrastructures.
- We recognized the trend toward web based administration in many other products.
- We recognized the trend generally toward web user interfaces for client applications as well and were considering the future of webmail in Kerio Connect and were starting development on Kerio Workspace.
- We recognized that our admins were looking to mobile phone and tablets as platforms for administering their IT infrastructure.
At that time we had always built Kerio products as closed, self-contained applications. That helped us ensure very high quality and consistency across the various server OS platforms we support. It helped us keep our products small, fast and resource efficient. Though we had embraced open standards (and still do) to support as many clients as possible, our actual applications were designed as a black box.
One unfortunate consequence of this design approach is it led to us using a lot of even internally undocumented APIs and specialized internal libraries. In order to expose APIs publicly, we needed to start an extensive process of separating our UIs from the product engines and developing new, well-documented interfaces that could eventually be made public. We've been working hard at this for the past several years. You are now seeing some of the results in the recently released Kerio Connect Admin APIs beta - There will be much more in the coming months.
The client based admin consoles had always been built using Qt. At that time we were using Qt3, and around that time Trolltech - the developers of Qt - had just been acquired by Nokia. Qt4 was out and we were faced with a fairly large engineering effort to migrate this old admin console code. We also had serious questions (and still do) regarding Nokia's commitment to Qt. Technically, it was also unclear if the Qt roadmap included web user interfaces. As Qt is based on C++, we had serious doubts it would ever serve us on iOS or Android client devices like iPhones, iPad or any of the HTC or Samsung smartphones.
Like every company we have limited resources and must deploy them wisely. Oftentimes this means making a big bet on the future. This was the situation we found ourselves in a few years ago.
We did a great deal of research on web development frameworks and eventually settled on something called Ext JS as the basis for development of all of our web user interfaces, both admin and end user. Today they are a rapidly growing, successful Silicon Valley-based company Sencha. We are very pleased with this decision.
In choosing Ext JS we made a decision that has enabled us to leverage our development resources far more efficiently than we could have otherwise. That has allowed us to make countless other quality improvements in our products over the past few years.
In choosing to move away from Qt-based client administration consoles, to Ext JS-based web administration, we planned for a several version transition period. The engines in Kerio Connect and Kerio Control would continue to use the old interfaces. That allowed us to make sure the old consoles continued to work, while focusing all of our development resources on creating the APIs we needed for the future and create new web administration consoles. The latest versions of Kerio Connect and Kerio Control now do not support those old interfaces. They have been removed, allowing us now to continue our efforts to improve the performance of those engines. That old code was, in may cases, ugly, and prevented us from continuing our work on refactoring and improving the performance, functionality, reliability and quality of our engines.
I believe this was a prudent decision, and one taken with the current and future needs of our users as the starting point of the decision.
I also believe it was a very smart and farsighted decision. The experience and expertise we have gained over the past few years is paying off across our entire product line. Our webmail is finally getting the thorough redesign and rewrite it needs, leveraging our Ext JS skills. Without the effort to learn how to develop and deploy APIs we gained with our web administration consoles, this would have taken much longer. If you have had a chance to download and play with Kerio Connect 7.3 RC there is a preview of our new calendaring component. I think you will be impressed with it's speed and modern design. The same is true with Kerio Workspace. The iPhone interface is simply gorgeous and based on Sencha Touch. This means it will easily support Android and Window Mobile phones as well, as will all of our products in due course.
Our strategic commitment to web administration doesn't mean that our (web) developers are biased against client applications. To the contrary, we continue to use Qt in several areas where client applications are necessary (Kerio VPN Client, Kerio Workspace client helper app, etc.). What it does mean is that we are fully committed to achieving the same and hopefully better level of quality you came to expect with the native client admin consoles. In the future we expect to be able to do much, much more with our web administration consoles. We think you will be very excited with what we have coming out of our development teams in the coming years!
Original article available on our blog.