Adobe made several announcements at MAX a few months back related to new projects that were in the works. One of the projects announced that I thought was particularly compelling for AIR developers is code-named "Cocomo." To help provide some additional insights into Cocomo, I sent Nigel Pegg, senior engineering manager on the project, a few questions over email.
Rob: Hi Nigel. First question — what is "Cocomo"?
Nigel: Cocomo is the codename for a new Platform as a Service that lets Flex developers easily add real-time social and collaboration features to their applications… OK, that was a pretty "markety" sentence. In real-life terms, Cocomo is:
- A framework of client-side components for Flex that make it easy to build real-time multi-user apps. This includes really high-level components like full-on multi-user whiteboards, chat, etc, as well as foundation classes for building your own features, like data messaging classes and webcam and VoIP pubsub components. We’ve baked a lot of solutions to common problems into the framework, like user roles and permissions, room management, reconnect/failover, persistence and more.
- A service, hosted by Adobe, which acts as “the pipe” that connects your users. The client framework and the service work seamlessly together and because Adobe is hosting it, it means that the operations problems like availability, capacity, deployment, and maintenance are taken care of by Adobe. Cocomo is currently in beta.
Rob: Why should AIR developers care about Cocomo?
Nigel: They should care because it provides a way for AIR developers to build new classes of applications. We believe that the general progression of the Internet is making real-time interaction commonplace. Social features are already becoming a staple of a lot of applications on and off the web, but these are still largely asynchronous. We think that bringing social immediacy to applications, via features like live voice and video streaming as well as real-time collaborative workflows, can make applications that much more effective and compelling.
The other reason they should care is that it takes a lot to get this sort of thing right. The fundamental technology for building these kinds of features with Flash or AIR has existed for a while, and yet you don’t see as many applications as there could be out there. And we believe a big reason for that is that it’s hard to develop for, and even harder to deploy and maintain. The folks on the Cocomo team have decades of combined experience building apps like Adobe Acrobat Connect, as well as tons of experience building component frameworks. We spent a lot of time refining the framework, and so far the feedback has been really outstanding – people are building things in a weekend that would have taken weeks before. More importantly, developers are starting to try things they otherwise wouldn’t have bothered with, because the barrier to entry was just too high. The risk/reward is much more in developers’ favor now.
Rob: What are some examples of applications people are building on it?
Nigel: We’ve been in public beta for around two months now, so we weren’t really expecting a huge amount of activity yet. But it’s been pretty surprising how much has been happening. For example, Acesis has taken its AIR application for medical peer reviews and added the ability for doctors across the country to perform these reviews together in real-time, without having to leave the application or travel to meet each other. We have a bunch of companies building some really exciting stuff, still early going. One company is building long distance learning where the teacher is able to interact with the students using peer-to-peer voice. Another is working on an online gaming site, where webcam streaming and voice are crucial to the gameplay.
The developer community is really starting to pick up and run with it too. We’re working on an application “gallery” so all our links will be in one place, but check out multiplayer Sudoku: “Sudocomo”. Also, ShareFlickr is pretty cool; it lets you co-browse Flickr slideshows. And for the “what-the?” factor, you can’t beat the Cocomo-enabled Wiibot.
Rob: How to developers get started?
Nigel: It’s really easy. Literally minutes from getting an account, you’ll have your first app built and running. The Cocomo homepage has a bunch of resources to get started. Another way to get started might be to check out this blog post where you can find a link to an article from Ryan Stewart, the Cocomo Developer’s Guide, and links to several AdobeTV videos from my MAX sessions that have a lot of supporting information as well.
Rob: When will it be shipping?
Nigel: We’re currently in public beta, which started in November of 2008. We have a little ways to go yet. Rest assured that the Cocomo team is moving as fast as possible to get to a commercial launch. We are aware that depending upon the entity (e.g., enterprise, government, ISV, individual developers), service requirements such as support, compliance, and uptime may vary and we are discussing approaches to addressing these requirements. In addition, we recognize that developers expect flexible and predictable pricing and soon we’re going to start sharing our proposed pricing model with the community. If people want to stay up to date, follow the Cocomo team blog and my twitter stream includes Cocomo updates as well. Lastly, if anyone has questions, the Cocomo forums are the best place to reach the team.
Rob: Thank you, Nigel!