Thursday, January 17, 2008

Mobicents JSLEE or Mobicents SIP Serlvets: Which one is better?

Religious arguments over alternative technologies can be fun...for a few days. Then they become wasteful. Instead of taking sides, we decided that it is important to encompass the largest possible community of developers.

The Mobicents team now offers implementations of both JSLEE and SIP Servlets. Jean Deruelle, Ranga M, Vladimir Ralev, Bartosz Baranowski and other members of the core Mobicents team built the SIP Servlets (JSR 289) implementation from scratch in less than 3 months. As can be expected it shares many of the underlying components with the existing JSLEE SIP Resource Adaptor, most notably the JSIP open source stack from NIST.

Web developers who are still shy to open the doors of the VoIP realm will find it easiest to prototype using SIP Servlets. As their needs grow with the sophistication of their converged applications, they will reach to JSLEE, which has an advanced programming model optimized for solving communications problems and a rich palette or Resource Adaptors covering a variety of telco protocols.

What is next? As we're acquiring experience with Java EE, JSLEE and SIP Servlets, we are thinking about a unified programming model. It should be intuitive to add voice and video features to an application based on EJB3 and Web Beans. Some early work shows that this is possible and we are confident it won't take long before the open source community rallies around a unified model. Join the discussions.

7 comments:

Michael Maretzke said...

Hey Ivelin, I'm looking forward to see the SIP Servlet implementation of the Mobicents project.

The heads behind the implementation read like the who-is-who in telco programming. This is promising news!

I'm just curious - what made you eventually decide to implement the SIP Servlet specification?

All the best,
Michael.

Michael Maretzke said...

Hey Ivelin, Mobicents team!

This is interesting news - indeed. The team working on the implementation reads like the who-is-who in telco programming.

However, this raises some questions in my mind:

1) Are you really aiming for a combined programming model mixing the aspects of JSLEE, SIP Servlet and JEE together?

2) What is the reason for doing so? Every technology has its area of application and is designed in one way or the other to meet specific requirements. Why should one super-platform live up to the promises of the specialized versions?

3) Why having a SIP Servlet programming model in parallel to the JSLEE model?

Obviously, I'm biased working for a SIP Servlet company - but am looking for an interesting discussion on the before mentioned points.

All the best,
Michael.

Ivelin said...

>I'm looking forward to see the SIP Servlet implementation of the Mobicents project.

Take a look at it. Its publicly available:
https://sip-servlets.dev.java.net/

> I'm just curious - what made you eventually decide to implement the SIP Servlet specification?

"we decided that it is important to encompass the largest possible community of developers".

Ivelin said...

> 1) Are you really aiming for a combined programming model mixing the aspects of JSLEE, SIP Servlet and JEE together?

Yes. It should be even more straightforward to extends enterprise apps with telephony features than it is today.

> Why should one super-platform live up to the promises of the specialized versions?

Good question. Maybe its hard, but we'll give it a try. JBoss SEAM has successfully shown that it is productive to unify the programming models between two traditionally separate tiers - web front end and database back end.

> 3) Why having a SIP Servlet programming model in parallel to the JSLEE model?

As you said, each tool is right for the job, but more importantly we want to allow both communities to work together, share ideas, best practices and ultimately help enhance the frameworks.

> Obviously, I'm biased working for a SIP Servlet company - but am looking for an interesting discussion on the before mentioned points.

Until not long ago you were biased towards JSLEE. Being among the few experts familiar with both JSLEE and SIP Servlets, it is fun to have this discussion.

M. (Neo-Ranga) said...

Ivelin,

Good blog.

Thanks for recognizing me. However, my name should come last. Credit belongs to the rest of the team members with occasional advice from me. In other words I made occasional comforting noises and wrote a bit of code. Special credit to Jean Deruelle and Vlad Ralev.

Some points:

- SIP Servlets on top of JSIP is entirely possible and JSIP can be leveraged for this. Proof by example has been provided in this project. In fact the fit is rather nice and we should find a way to expose JSIP API to those who want lower level control. It needed some hacks to JSIP to implement Servlets on top of JSIP and I am going to include these changes into JSIP 1.3.

- We should work towards integrating the JSIP and SIP Serlvet API so applications can exploit both. That was the initial architectural goal behind defining the APIs in the first place. Too bad this goal fell by the wayside and the servlet group went off and defined incompatible API (especially Address and URI). I am willing to work towards that goal - adding to JSIP as necessary.

Best regards,

Ranga

Ivelin said...

Following up on this topic, Jean Deruelle created a demo that illustrates a meaningful way of

integrating JSLEE with SIP Servlets

Check it out and come talk to us about it at the JBoss booth at Java One 2008. We will be showcasing this demo and more good stuff at the booth.

Aayush Bhatnagar said...

A pretty interesting concept. But, i was wondering what could be the motivation behind a unified programming model. It will encompass a larger community of developers for sure. Maybe the protocol agnostic nature of JSLEE could be leveraged by the SIP Servlet container. From the example application, it seems that two independent programming models (JSLEE and SIP Servlets) are communicating together to deliver a composite application. Is there a new reference architecture being designed which combines JSLEE and Servlets? Or have i misunderstood the meaning of a combined programming architecture? Sounds pretty exciting though :)
I wonder if there will be any implications regarding the combined platform's scalability and performance.
Aayush.