Thursday, September 24, 2009

Encounter with JOPR

There is a discussion for Mobicents Media Server 2.x.y Console requirements on

  • whether it should be built using Swing that can be installed on any machine and this stand-alone instance connects with Mobicents Media Server for statistics and configuration
  • use standard JOPR server that almost all Mobicents project is using as de-facto and write agent that will monitor media server.

In quest to understand what exactly is JOPR I decided to write a custom plugin for JOPR and see how it can monitor any resource's that we want.

I started with blog from Heiko and this was very useful. Thank you JOPR guys for such a niece blog! After reading all 5 Part's I decided to give it a try.

Started with SVN check-out of JOPR from to my local directory /jopr/src/

Since JOPR is also using maven, building JOPR was not nightmare. However JOPR by default requires the access to Postgres database and it wasn't easy for me to install Postgres and get it running :( I wish JOPR uses in-memory HSQLDB initially and latter on give an option to go for Postgres, Oracle, My-Sql or any DB that user may want to use in production. This will make the development very fast.

The wiki explaining the build of JOPR is given at

Once you have JOPR built and installed and have Postgres up and running, you need to develop a custom plugin as explained in Part3 of blog.

Assuming that custom plugin is built and ready, next step is start the server

  1. cd to /jopr/src/trunk/modules/enterprise/server/container/target/rhq-server-1.3.0-SNAPSHOT/bin and call ./ start
  2. Go to http://localhost:7080/ to see the JOPR console. Login as user rhqadmin and password rhqadmin
  3. Still we haven't started the Agent. So next cd to /jopr/src/trunk/modules/enterprise/agent/target/rhq-agent/bin and ./ -l. This will configure the Agent and ask few simple questions. For almost all of them the default answers are rigtht. Bellow is from my comandline showing what reply I provided

    RHQ 1.3.0-SNAPSHOT [4925] (Thu Aug 20 13:44:46 GMT+05:30 2009)
    Answer the following questions to setup this RHQ Agent instance.
    - After each prompt, a default value will appear in square brackets.
    If you press the ENTER key without providing any value,
    the new preference value will be set to that default value.
    - If you wish to rely on the system internal default value and
    not define any preference value, enter '!*'.
    - If you wish to stop before finishing all the questions but still
    retain those preferences you already set, enter '!+'.
    - If you wish to cancel before finishing all the questions and revert
    all preferences back to their original values, enter '!-'.
    - If you need help for a particular preference, enter '!?'.

    Agent Name [localhost] : postgres_agent
    Agent Hostname or IP Address [!*] :
    Agent Port [16163] :
    RHQ Server Hostname or IP Address [] :
    RHQ Server Port [7080] :
    The setup has been completed for the preferences at node [/rhq-agent/default].

    Next from client CLI I executed command 'plugins' just to refresh the plugins from server.

  4. Now go to http://localhost:7080/ Click on Dashboard - Auto-Discovery and you should see entry of the 'postgres_agent' agent. Import this Agent and now all the statistics including the custom plugin that we developed will be available to JOPR Server and we can monitor the stats. Below is the Screen shot showing the Response Time metrics exposed by our custom plugin.

So far so good. The conclusion is Agent needs to be installed on Mobicents Media Server that we need to monitor and Agent communicate to server Via JBoss Remoting. I am still learning what is the communication protocol and what is the load on client machine where Agent is installed due to agent activity. Remember Mobicents Media Server cannot take any heavy load else Jitter will kill all the performance.

Its now clear that we can expose the statistics using JOPR. Next I want to write a Agent that talks to MMS via MGCP protocol to avoid installing Agent at MMS side and expose some real statistics. Also one of the requirements of MMS Console is configuring the media-path at run-time with easy drag-and-drop feature from console. I still don't know if this is possible via JOPR Agent? And if yes can it be remote or needs to be in same JVM as Mobicents Media Server?

May be I will ask the JOPR experts to help me out with this dilemma.

Till then enjoy the JOPR :)

Friday, September 4, 2009

Mobicents Annual Meet at Brno Czech Republic - August 24 - 29, 2009

Last week Mobicents core team met at Brno, Czech Republic to discuss the achievements and road-map of Mobicents platform. Some brain storming between all the projects and some learning and party at the end of the day is something that is equally important :)

This time too it was as exciting as last year. This was third time Mobicents core team met, and each one of us did presentations of the project we are working on. The agenda of the meet was:

  • Overview of project status, partner ecosystem and market opportunities; internal training for pre-sales and consulting teams.
  • Productization achievements in 2009 and current challenges. Comparison with JBoss EAP and SOA productization. Goals and milestones for 2009-2010.
  • Documentation, achievements in 2009. Current process, challenges and goals
  • QE: achievements in 2009, current QE lab setup, automated test harness, outstanding challenges, what to expect in 2009-2010
  • MSS achievements, challenges and roadmap
  • IPBX Demo, STF, Ruby API
  • MMS achievements, challenges and roadmap, what to expect in 2009-2010
  • Diameter achievements, challenges and roadmap, what to expect in 2009-2010
  • Mobicents JSLEE 2.x.y achievements, challenges and roadmap, what to expect in 2009-2010
  • Presence Services achievements, challenges and roadmap, what to expect in 2009-2010
  • 3G and IMS
  • MMS - SS7 review, use cases, implementation strategies
  • HA status, implementation roadmap alternatives, cross-server strategy

The major achievements of the past year is Mobicents Media Server, Mobicents Sip Servlet Server, Mobicents JAIN SLEE Server and Mobicents Diameter all went GA! Mobicents JAIN SLEE Server is already JAIN SLEE 1.1 compliant.

This couldn't have been possible without the continuous support of the community. For all the discussions, presentation and blogs from other team members please visit Mobicents Brno page.

I did two presentations on MMS 2.x.y architecture and role of MMS in SS7 world.

MMS 2.x.y architecture makes it one of the most flexible and the only OpenSource media server available as of today built on top of JBoss Microcontainer.
For SS7 support, Zaptel compatible SS7 cards will be installed on MMS and MMS core will take care of media circuit. For signaling the lower level parsing of MTP2 and MTP3 will be done by MMS and then depending on the protocol the message will be forwarded to corresponding stack wrapped by JAIN SLEE resource adaptor for handling the signaling and business logic in SBBs. Going forward we will have complete SS7 support like ISUP, SCCP, TCAP, MAP, etc. This will bridge the gap between legacy and next generation applications.

We marked day end by team dinner at some real good restaurant's and visiting pub's. Also enjoyed playing soccer at Public Garden and Go-Karting on one of the evenings.

The Team from Left to Right : Jean, Ivelin, Amit, Luis, Bartek, Vladimir, Alex and Eduardo. Our host Pavel is missing.

RedHat, Brno office has great infrastructure and they also have Wii Game Console. Bartek killed me 'n' number of times while playing 'James Bond: Quantum of Solace'. "I will get back with vengeance Bartek"

The beer of Brno is worth mentioning, they have different varieties of beer and we didn't leave a single chance to savour it ;)

From left to right Vladimir, Alex and Eduardo

Thats me and Vladimir

Extreme right is Pavel. A big thanks to Pavel for arranging everything :) The team walking on a mission after beer.

The mystery man Oleg couldn't make this time either :( I hope one day will come when GOD's are happy and we will get blessing to meet Oleg face-to-face. Other members missing from team are Vicky and Jared.