Sunday, November 06, 2011

Mobicents Media Server passes 100% JSR 309 Compliance

The Mobicents Media Server continues the tradition of the Mobicents community to drive simultaneously Open Source innovation and Standardization to an otherwise siloed telco industry. As of today, November 6, 2011, the Mobicents Media Server is the first Open Source (LGPL) 100% JSR 309 compliant implementation.

JSR 309 is the standard Java API that allows control of media server resources. It makes it possible for Java developers to implement in a standard and portable way, rich media applications such as Conference Calling, Interactive Voice Response, DTMF detection, Text To Speech, Video Playback and many others.

Established media server vendors such as HP OpenCall, Dialogic, Voxeo, and Radisys already offer JSR 309 drivers for their products. And now MMS joins the group as the first Open Source implementation.

We welcome all interested community users to verify our claim and bring up any potential issues. Build and run instructions are located at:
https://code.google.com/p/mediaserver/wiki/InstallationNotes

Please report your test results on the mobicents public mailing list or the Media Server issue tracker.

The path to JSR 309 certification has been a long and hard battle. It started over three years ago when we decided to join the JSR 309 Expert Group. Participating in the discussions has been a great experience. We learned a lot from the other members of the EG, most of which had deeper experience with media delivery at the time. The HP OpenCall team, who lead the spec did a great job advancing the collaboration past religious deadlocks towards results. As far as I remember the 309 EG met its deadlines pretty closely. Impressive for a big group of contributors to a communications standard. Anyone who ever sat on an ITU, OMA or GSMA standards committee would understand why I make this remark.

Starting with a strong specification and TCK, we were able to advance with the implementation, even though it required significant refactoring because the 309 model was fundamentally different than the original MMS architecture. By December 2009 we have reached the 70% pass mark. It took almost another two years to solve the last 30% riddle. But we finally solved it!

Many, many thanks to the project lead Oleg Kulikoff, who did not give up the fight to design a quasi-real-time media server engine, that delivers predictable, measurable media processing operations in pure Java, without relying on hardware guaranteed preemptive scheduling properties.

I strongly recommend following Oleg's blog if you are interested in this non-trivial problem. There are important implications that will play a big role in our cloud strategy, where we have to deal with virtualized environment, several layers above and across commodity hardware.

Many thanks to the other key contributors: Vladimir Ralev, Yulian Oifa, Amit Bhayani, and Bartosz Baranowski who supported Oleg throughout various stages of his journey. Special acknowledgement goes to Yulian who helped us cross the finish line in the last few weeks after Oleg had reached the 90% TCK mark.

I know there are other contributors to MMS that I missed to acknowledge. Please correct me in the comments to this post.

I am very excited about this achievement and look forward to community feedback.

Important as it may be, JSR 309 is just one of the milestones on the MMS roadmap. Stay tuned for other great announcements in the near future, especially ones related to auto-scaling MMS in the cloud. Better yet, take an active role in the project and help us get there faster! Everyone wins.

No comments: