Summary
The Session-Initiation Protocol (SIP) is an IETF standard to create, modify, and terminate an IP communication session. A recent JavaWorld article introduces the SIP Servlet Specification (JSR 116), and presents a Java servlet that can interact with a SIP-compliant client, such as Windows Messenger.
Advertisement
The Session-Initiation Protocol (SIP) was designed to enable session management in IP-based communication protocols. While SIP is often used in the context of multimedia applications, such as IP telephony and instant messaging, SIP can be useful whenever there is a need to maintain a communication session between a client and a server.
In a recent JavaWorld article, SIP Programming for the Java Developer, Wei Chen introduces the SIP Servlet Specification (JSR 116), and presents an example SIP servlet that can interact with any SIP-compliant client, such as Microsoft's Windows Messenger, which is what the author uses to illustrate the article.
Chen points out that SIP in many ways complements HTTP, which is a sessionless protocol. Compared to HTTP, SIP is:
Responsible for session management. The actual multimedia content, such as instant messages, voice, and video, may or may not be transmitted via SIP.
Asynchronous and stateful. For each SIP request, there could be multiple responses. This means the application has to process each SIP message within a proper state context.
An application protocol that can run on both reliable and unreliable transport. Thus, the application must guarantee the message delivery with message retransmission and acknowledgement.
A peer-to-peer protocol where there is no clear distinction between client and server. Either side must be able to send and receive requests and responses.
JSR 116 presents a Java SIP API and programming model based on servlets. In contrast to an HTTP servlet, a SIP servlet extends SipServlet, and instead of an HttpSession, a SIP servlet creates and interacts with a SipSession. Chen contrasts the HTTP and SIP use of sessions:
Typically, an HttpSession is created when a user logs in and destroyed after logout. A SipSession typically represents one logical conversation, even if you have multiple conversations between the same endpoints. So SipSession is more dynamic and has a shorter lifespan.
The conclusion of the article presents an example SIP servlet that consumes messages from a SIP-compatible client, such as Windows Messenger, and echoes those messages back to the client.
In addition to instant messaging and IP telephony, what other uses do you see for SIP in the enterprise?
IMS will enable traditional ISV to bring their apps to the mobile phone apps market, something really difficult now, due mainly to the difficulties inherently associated with handling the suite of mobile networking protocols (SS7, CAMEL, etc), and also lot of connectivity restrictions from the mobile operators.
I think that under this context, SIP, through IMS, can bring another level of integration between enterprise systems and mobile devices.