Thursday, September 25, 2008

Mobicents 2008 core team meeting

A year passed since the core Mobicents team was physically together in one location. In 2007 the team was much smaller. Eduardo, Bartek, Vladimir, Amit and I met in Varna, Bulgaria to review our progress and brainstorm about the 2008 roadmap. We ended up with a few napkins with notes and a lot of hangover from the nights of barstorming.



This year we went for a different format. The team is now bigger with Alex, Jean, Luis, Oleg, and Silas joining in late 2007. With 10 people we needed some structure to the meeting. So we drafted an agenda which turned out to span 4 full work days from Wednesday to Saturday. For the curious to learn what was so much to talk about and for our own reference , the full agenda and presentations for most session is available online.


Due to the increasing market demand, we also wanted to take the opportunity and exchange knowledge with the pre-sales and consulting teams. Dunja Heinrich and Marion Roth from the Red Hat Human Capital team in Munich offered to help us with logistics so we took the offer. And, by the way, they proposed the meeting to take place during October Fest - the world famous beer festival. Offer we couldn't resist.

So we showed up in the Munich office for the first meeting day on September 17. The first half of the day we spent on cross team knowledge transfer with the Solution Architects team. In the afternoon the hard core work began with a presentation by Eduardo on the challenges of the new JSLEE 1.1 specification, which we are implementing. It is not possible to attend a presentation by this man without sidestepping into deep design arguments on class loading, deployment dependencies and other such problems that can easily put anyone to sleep. However being Eduardo and not someone else, the discussion was as much a stand up comedy show as it was collaborative design. Following JSLEE 1.1, he transitioned to the topic of Presence Services. 30 minutes in the presentation we started understanding what XDM, XCAP, Resource Subscription Management and such things stand for as we grew more puzzled with the complexity of IMS, 3GPP, OMA and related acronyms.

Next in line were Alex and Bartek with presentations on Diameter sub-projects. Authentication, Authorization and Billing started making sense until we began overlapping with Presence Services. It is still not quite clear to me when HSS is supposed to be used vs Presence Services. HSS has something to do with user authentication and service subscription management, while presence servers help users store their buddy lists. Then more complex scenarios come when both a Diameter Sh interface (offered byHSS) and an XCAP interface (offered by XDM server, part of Presence Services) have to be consulted in order for Bob to leave a simple voice message to Alice. Confusing stuff. Good thing we have the white board diagrams photographed and uploaded for reference. Confusing as it may be, AAA is a complicated problem and there is no simple solution it seems. So we will keep pressing on our support for Diameter interfaces for both JSLEE and SIP Servlets in the future.

At the end of the first day we had dinner with the marketing team, which was arranged by Anna Amoretti, who I knew from the JBoss Inc days. Thank you, Ana.

Thursday started with design discussions and roadmap planning on Diameter sub-projects. We agreed on a common POJO framework that can be shared between JSLEE Resource Adaptors and Java EE connectors for SIP Servlets applications.

Then we moved on to discuss our community documentation pages and User's Guide. I was glad to finally meet with Silas, who has been diligently transforming the hundreds of random Wiki pages sprinkled all over the web and often out of date or even contradicting into a coherent, easy to follow User's Guide. In the process he has also created some impressive tools, one even written in Haskell - a very interesting pure functional programming language.

We ended Thursday with a warm up session on Mobicents Media Server. Being a very important topic, it was helpful to prime the pump for an extensive discussion on Friday.

Friday was much anticipated day for me. I was truly hoping to finally meet the great talent who created from scratch in one year a product that competes with established market players. To my great disappointment Oleg Kulikoff was not granted visa by the German consulate in Moscow and was not able to join us. He drove 15 (yes, fifteen!) hours in one direction from Volgograd to Moscow for the visa appointment. What a sad thing. Made me appreciate the value of telecommunications. I also appreciated the level of bonding among the core Mobicents developers. Amit, Bartek and Vladimir who each had their name in the @author tags of the MMS source files, pieced together the picture and we were able to go through a range of important MMS issues from internal resource management to API productization and JSR 309.

The next topic was less exciting from a pure development point of view, but we knew it is of critical importance to our customers. Mobicents Management Console and integration with JBoss Operations network was covered thoroughly. Vladimir offered a competitive analisys and state of development for each JSLEE, SIP Servlets and Media Server (Bartek chipped in).

Final topic for Thursday was Quality Engineering. The army of one named Luis Barreiro went through the massive amount of machines and tools that he has deployed and customized in order to support a constantly improving test infrastructure. To get a hint of what he's done, take a look at his presentation. The live evidence for his contribution to the project is the long list of continuous build jobs. Oh, by the way, I forgot to mention that during the Docs session he created a daily build for the User Guide, which now ensures an always fresh online book.

Saturday is supposed to be a day for late wake up, friends, family and fun. So it was ... except the family part. It was massively energizing to hear what Jean Deruelle had to say about his baby project. Jean is one of these quiet geniuses who just get big things happen. This kind of people don't advertise their skills much. They let their work speak. Knowing Jean from his valuable contributions to the Mobicents JSLEE project back in 2005, I had an idea of his qualities, but did not realize that it was just the tip of the iceberg. Since Jean started in late 2007, he took over an initial code base started by Ranga, Bartek and Vladimir and went wild with it. A first release of MSS came out in January 2008, followed by 4-6 week regular releases after that with increasing set of features. Jean and Vladimir are very close to some big news and I am barely holding back to give it away here...

After the official part of the meeting winded down, we geared up for the opening night of October Fest. Managed to get there around 8pm, but it was impossible to find a free table. Across the street from the fair we found a small restaurant and had dinner. From there we hit the streets and started bar hopping. Things get a little blurry at this point (conveniently :-).

Our stay in Munich would not have been as productive as it was without Tobias Hartwig who coordinated the training session for the SA team, Daniela Koenig who accommodated our day to day needs, Werner Knoblich who offered advise on our sales strategy, and Rob Eiselt who offered insight on marketing priorities.

In conclusion, this was our biggest and most productive Mobicents team meeting ever. The community force is still with us and that keeps us going. From day 1 top priority for each of us is to look at Mobicents public forums every day and stay connected with our community. That is what determines our roadmap priorities before anything else. Commercial success is a pleasant and practical side effect that is also appreciated.

Take a look at a few photos from Munich:

3 comments:

Aayush Bhatnagar said...

Nice informative presentations...and photographs.
:)

HSS and XDM :-?
There is no architectural or functional linkage between them as far as i know. They were made for different purposes. Very curious to know more about the call scenario.

tc :)

Aayush

aleho said...

Thankx, it's first article where is possible read what is in behind the Mobicents and his future :-)

BTW, don't mix HSS and XDMS usage, HSS could store specific application or user's data, but his usage is primary for internal network elements and network control and it is not accessible simply from user and application side (only via Sh interface). In opposite, XDMS allows store different kinds of user's data, without size limits (hopefully) and better organize them (in various collections). It is also more open to user and application side (via Agggregation proxy), so users can safely access and modify (via XCAP) these data (own data or data to which have granted access). And last but not least unique functionality is possibility to subscribe notifications about data changes (via SIP), it allows create good applications, like very well structured Presence Servers :-)

Aayush Bhatnagar said...

To put things in perspective, by taking an example, profile management takes place at three places:

1) Transport Profile:

which is maintained at the IMS access layer (this can be WiMax). This is basically the QoS profile of the customer.WiMax for example, defines 3 QoS profiles, namely: Profile A, B and C. This profile is of no importance to this discussion..and is just for information.

2) Customer Profile:

which is maintained at the HSS. A customer profile is provisioned from the back-end by the operator. Each user profile in the HSS is indexed by an IMPI (IMS Private User Identity). Each IMPI may have several Service Profiles and each service profile can have multiple IMPUs (IMS Public User Identities). Each service profile also defines a set of initial filter criterion (iFc). IFCs are XML fragments that represent a set of conditions to be followed by the S-CSCF to route requests to IMS Application servers.
An example of an iFc condition may be as follows:

If (method==SUBSCRIBE)&& Event header == 'presence', then route the request to the IMS Presence server.

The S-CSCF downloads the customer's service profile containing these iFc fragments for IMS service routing (ISC interface).

Apart from iFc's, the HSS also stores a set of CNSA's (Core Network Service Authorization) rules...that represent the operator's local policy and restrictions.

Eg: G711 audio codec will not be allowed.

3) Profile maintained by SIP-application servers in the XDMS.

SIP application servers are spoilt for choice. They can maintain the service specific data and configurable data in a dedicated server like a XDMS. They may also store this metadata in the HSS over the Sh interface. The only motivation behind providing the Sh interface in IMS is to have a common metadata storage repository in the form of the HSS. This repository data is transparent to the HSS and is totally consumed by the SIP AS. However, XDMS is a better choice for data storage in the context of IMS services. Using diameter to just store and retrieve data is an overkill. XDMS provides more flexibility, as the SIP AS can manipulate XML fragments, elements and even attributes as and when the user configures it over XCAP. If the same data were stored in the HSS, then the SIP AS would need to retrieve it from the HSS, parse the XML, make necessary changes and store it back in the HSS. This is a far lengthy and inefficient way of doing the same thing !

Just my 2 cents !

Aayush.