JBoss.orgCommunity Documentation
Mobicents SIP (Session Initiation Protocol) Servlets deliver a consistent, open platform on which to develop and deploy portable and distributed SIP and Java Enterprise Edition services. The Mobicents SIP Servlets Server is a certified implementation of the SIP Servlet v1.1 (JSR 289) specification that can run on top of either the JBoss Application Server or the Tomcat Servlet Container.
Mobicents SIP Servlets for JBoss (MSS for JBoss) strives to develop interoperability standards between SIP Servlets and the Java Service Logic Execution Environment (JSLEE) so that applications can exploit the strengths of both. The JAIN-SIP Reference Implementation is leveraged as the SIP stack, and the Mobicents JAIN SLEE Server is used as the SLEE implementation.
Features of the Mobicents SIP Servlets Server
the first certified SIP Servlet v1.1 (JSR 289) implementation
a current call rate of 100 calls per second over a 24-hour duration: 8,640,000 total calls
load balancing, cluster and failover support
merged SIP and HTTP session management
a browser-based Management Console
a bundled JSLEE/SIP interoperability demonstration application for MSS for JBoss
Mobicents Media Server
extensions such as SUBSCRIBE/NOTIFY, among others
Telecommunications applications demand High-Availability (HA), fault tolerance, scalability and performance. Providing highly-available end-user applications that are tolerant of faults is commonly achieved through the use of clustering technologies.
Clustering is a complex subject that is often used to collectively address a variety of techniques aimed at improving the high-availability and scalability of services and applications. Such techniques include distributed state replication, load balancing, and failover capabilities. The usage of any one of these techniques improves either reliability or performance, but for the sake of the other. It requires careful analysis of real-world scenarios to arrive at an architecture which represents the optimal balance of performance and reliability.
Based on experience with production deployments and extensive feedback from the Open Source community, Mobicents HA has undergone several iterations of refinement. In its current incarnation, the architecture can be described as a "star topology" with symmetric application servers and a smart, lightweight load-balancing element with built-in failover logic. The amount of state replication is kept to a minimum for maximum scalability with sufficiently-high reliability.
For purposes of clarity, the SIP Servlets High-Availability sections use terms—such as cluster—with meanings specific to the context of Mobicents SIP Servlets. Therefore, the following definitions are provided to clarify more precisely what is meant by the terms cluster, node, SIP Servlets Server and so on, in the subsequent sections, and in the context of Mobicents High-Availability.
The crux of possible confusion is this: any heterogeneous group of SIP Servlets Servers behind a SIP load balancer is, by definition, a cluster. Those SIP Servlets Servers can be either MSS for JBoss servers or MSS for Tomcat servers. However, a homogeneous group of MSS for JBoss servers served by a SIP load balancer, in addition to being a cluster, also possesses JBoss-specific clustering capabilities. Those clustering capabilities include, principally, state replication and the ability to fail over. Therefore, when specific clustering capabilities are spoken of, they are always referring to the context of a homogeneous cluster of MSS for JBoss server nodes served by a load balancer.
Glossary of Cluster-Related Terms
A Mobicents SIP Servlets Server refers to either a SIP Servlets-enabled JBoss Application Server (MSS for JBoss) or a SIP Servlets-enabled Tomcat Servlet Container (MSS for Tomcat). Anywhere the term SIP Servlets Server is used, you are free to substitute the JBoss or the Tomcat variety depending on the one you are interested in.
A node is simply a SIP Servlets Server in a cluster. In this document, a node can be either an MSS for JBoss server or an MSS for Tomcat server.
A cluster, as used in this document, refers simply to a group of one or more nodes, i.e. SIP Servlets Servers, behind a SIP load balancer. The minimum number of nodes in a cluster is one. The case of a cluster with one node almost always occurs in a degraded cluster: one in which other nodes, for some reason, have become unavailable.
The Mobicents SIP load balancer is not a full-fledged SIP Servlets Server itself. Rather, it is a simple proxy server whose primary purpose is to intelligently route SIP requests and replies between healthy and available SIP Servlets Servers residing in a cluster on a Local Area Network (LAN), and User Agents (UAs) accessing a SIP service or application from a Wide Area Network (WAN). The SIP load balancer therefore acts as a kind of gateway between a Wide Area Network with User Agents, and a Local Area Network wherein the SIP Servlets Server cluster nodes reside.
Once installed, the MSS for JBoss or MSS for Tomcat instance can be accessed and configured using the SIP Servlets Management Console. The management console is available at http://localhost:8080/sip-servlets-management/.
Information on how to use the SIP Servlets Management Console is available from the Help link on the top main menu bar. Clicking Help displays a Default Application Router Help pop-up which can be repositioned and resized by dragging.
Recent versions of the SIP Servlets Management Console feature a Server Settings tab, in which concurrency and congestion control settings can be tuned.
For more information on concurrency and congestion control tuning, refer to Configuring the Concurrency and Congestion Control Settings.