借助于我们的WebLogic SIP Server,开始出现了对SIP(会话初始协议)的采用,于是我们开始看到客户正寻求将他们现有的SIP基础架构迁移或集成到WebLogic SIP Server上。最近,我讲授了一次关于WebLogic SIP server的课程,一个一直使用JAIN-SIP编程的学员问了我一个问题:SIP Servlets与JAIN-SIP有何区别?
WebLogic SIP Server是WebLogic Communications Platform产品家族中的两个产品之一,它支持SIP Servlets API (JSR-116)。Ken Lee在其文章中提到(即后一篇文章),WebLogic SIP Server是一个全面聚合了JavaEE-SIP-HTTP IMS的服从SIP Servlets的容器。
JSR 116是于2001年4月首次提出的,现在已经是最终规范了。WebLogic SIP Server完全服从JSR-116。BEA目前还领导着SIP Servlets API version 1.1. (JSR-289)的下一个版本的制定工作,该API预定于2007年2月完成。
SIP Servlets API构建于HTTP Servlets API的基础之上,J2EE开发人员可以很轻松地学会该技术,并可以与J2EE平台全面集成。SIP Servlets规范读起来并不难。我建议对构建SIP Servlet应用程序感兴趣的人可以读一读它。
PSTN、Wireless、Internet使用的都是JSR-32——JAIN-SIP (Java API for Integrated Networks)。该API适用于J2SE平台。其用途包括开发独立的用户代理、代理和注册应用程序。JAIN-SIP还可以用作SIP、JAIN-SLEE甚至是EJB容器的基础SIP实现。JAIN-SIP被设计为可扩展的。它采用了Listener/Provider模型,是一个事件驱动模型。其中有用于创建请求和响应消息以及SIP头部的工厂类。有一个每个头部都支持的接口,随后可以将其添加到请求或响应消息上。
SIP Servlet API的主要优点在于该API与J2EE Servlets API的密切关系,以及它的可伸缩性——因为SIP Servlets将运行在一个由大家最喜爱的供应商BEA所提供的预构建的SIP Servlet容器中。SIP Servlet容器管理诸如监听点、线程、事务和对话、会话状态和应用程序组件之类的资源。借助于WebLogic SIP Server的集群化和故障转移支持,可伸缩性可能是促使您选择使用SIP Servlet API来编写应用程序的最佳理由了。
JAIN-SIP和SIP Servlets可能会是免费奉送的技术,因为,可以使用JAIN-SIP构建一个Desktop User-Agent,来向使用SIP Servlet API编写、运行在一个SIP Servlet容器中的SIP应用程序发送SIP消息请求。将JAIN-SIP与SIP Servlets结合起来,就可以基于IMS架构构造一个相当复杂的端到端架构。请参考Sun的SIP and Java White Paper,获得SIP规范中对IMS架构的描述。
原文出处:http://dev2dev.bea.com/blog/shengs75/archive/2006/04/sip_servlet_vs.html