Over the past year we've made substantial progress on building out CloudOS and the underlying engine that makes it run. This post acknowledges that progress as well as laying out future steps we must take.
A year ago, I published a roadmap of the improvements I thought we needed to make in CloudOS. I was reviewing it yesterday and realized that we've accomplished a great deal. Here's a list of the progress we've made against that roadmap in the last year:
- New Account API—the PCI system has completely replaced the old system and we're now supporting multiple KENs in a single cloud.
- Code repositories—We're added a more flexible code repository system allowing, for example, Github to be used as a store for KRL
- Performance improvements—the engine is almost two orders of magnitude faster than a year ago
- Support for other languages—The personal cloud application architecture has made it possible to use KRE from almost any programming language or system.
- Inter-PEN subscriptions—we now support and use events between picos (the new word for PEN).
- Application configuration—CloudOS supports application configuration in a standardized way
- PEN management—CloudOS has a full complement of tools for managing picos.
- Notifications—we've made much progress in understanding and using inter-pico notifications. In addition, the timeline system provides a nice dashboard for users to interact with and manage notifications.
- Contacts—The Forever application started us down the road of managing contacts between people and their clouds. There is more work to do here.
In addition to these that were on the list, we've done a few other important things that weren't on the list:
- Inter-pico subscriptions—We now support subscriptions between picos by owners, non-owners, and have a user interface for users to manage the subscriptions and authorizations. This allows sharing of picos between multiple owners, friends, etc.
- Event scheduling—KRL now supports event scheduling
- Sky Cloud API—Provide a means for KRL programmers to define Restful APIs for CloudOS services
- OAuth Support for Picos—Support OAuth authentication and connection to picos.
- Asynchronous events—We can now send and respond to events asynchronously.
There are undoubtedly things I'm forgetting and none of this includes incremental improvements to existing CloudOS services to support SquareTag. Given the progress we've made, I decided it would be nice to lay out a roadmap of what we envision happening in the near to medium-term in CloudOS.
Kernel Space Enhancements (KRL Engine)
- Logging—we still haven't got logging right. We need a way for each pico to have access to and be able to display it's detailed logs.
- Pixel—Pixel is the policy expression language. I've started it, but there's much to do to complete it.
- KRE Instances—We need other instances of KRE running and verify that CloudOS on each instance can function completely with picos on other instances.
- Portability—We need to be able to move an instance of a pico from on instance of the engine to another with no loss of functionality.
- Installation—The engine is still too hard to install and use. At the very least we need images on Amazon, VMWare, etc. that someone could use to play with it.
- High-value picos—Build security services for high-value picos including encrypted data, key management, and two-factor authentication.
- Architecture—I still believe we need to move to a more modular queue-based architecture for the engine to allow priority scheduling of events and more flexibility in resourcing.
- Channel management—CloudOS has no good way for users to manage channels.
- Open source—We need to complete the open sourcing of CloudOS.
- Social service—manage authentication to and access to various social services like Twitter and Facebook on behalf of applications
- Calendar service—manage user calendar (Google, Apple, etc.) interactions
- Todo service—service abstraction on top of core engines scheduling functionality. Developers can see schedule events, but advanced users might need to see what's happening in a schedule and change it.
- Payment service—inter-pico payments are important to much of what we see CloudOS being used for
- File service—service abstraction on Dropbox, Amazon S3, Personal.com, etc. We have a start with the Dropbox module, but there's much to do.
- Profile improvements—flesh out the profile to be more compliant with the VCARD spec. We're experimenting with XDI integration here as well.
- Contacts—Improve the contacts interaction within CloudOS and add contact items to the user's timeline.
Overall, I'm very pleased with what we've been able to do over the last year. Looking forward last July much of it seemed overwhelming in terms of how much needed to be done relative to our available resources. I'm confident we'll look back a year from now and feel equally impressed with the improvements in CloudOS and the underlying engine. My thanks go out to the great development team at Kynetx (Mark, Ed, Jessie, and Alex) as well as our partners, customers, and other supporters for pushing this along.
In addition to specific improvements to the system itself, I feel like we have a much better conceptual understanding of what we're building and what we can achieve with it. Even the lexicon is starting to come together. I'm excited for the next year.