关于Mobicents

Mobicents 是什么,如果你熟知VOIP ,SIP,IN,IMS ,NGN ,软交换,答案完全可以从其官方主页找到。如果你做过JavaEE ,但没有涉及过电信开发,可以看看下面的解释是否能找到答案。

我们可以把Mobicents 当成实现JAIN SLEE 规范的一个电信应用的应用服务器。
大家都知道Weblogic 是个符合JavaEE 规范的服务器实现。在Weblogic 上,我们可以通过EJB 支持分布调用,实现对象池,O/R mapping,实现声明性事务,通过Datasource 连接数据库,通过JMS 实现消息订阅,通过JSP 显示页面等等。也就是说在JavaEE 服务器上,我们可以很方便地按照JavaEE 的规范开发各种企业应用。类似,Mobicents 提供了一个符合SLEE 规范的基础框架来更方便容易地开发电信应用。例如呼叫转移,三方通话,位置查询等。

Mobicents 简单的结构如下:
 

其中最重要的组件包括:

  • SBB :可以理解成JavaEE 中的EJB ,都是完成应用逻辑的。
  • RA:是Mobicents 与外部系统的接口,用来连接外部资源,网元设备,实现协议转换,把复杂的电信信令协议映射成事件。Mobicents 已经包含了多种RA并且也提供可扩展的机制
  • Event Router:Mobicents 的核心,将事件分发到需要的SBB 去,实现事件机制,并且松耦合了业务对象SBB 和事件源RA。

其他的组件就和JavaEE 平台都类似,主要就提供一些基础的服务,例如日志等

开发者可以通过Mobicents 提供的这些组件/服务高效地开发电信应用,而不需要了解过多的电信知识,不用了解电信信令的具体内容(Mobicents 已经把这些信令转化成容易理解的事件对象)。从理论上说,与JavaEE 类似,我们只要关注业务即可。

那么为什么我们不在JavaEE上用JCA连接电信的网元设备,JMS分发事件,在EJB里组织逻辑呢?技术可行性上说,可以。但我个人理解,两种业务的paradigm不一样。做为一个framework,应该让开发者更接近业务领域的概念开发。

建在JavaEE 服务器上的企业应用往往是以数据中心的OLTP 应用,开发中考虑最多的往往是如何处理transaction。在这样的事务中,操作一般都是序列化执行的,并且往往一个操作依赖于前一个操作的结果。例如一个缴费系统,肯定要先从用户账户扣钱成功,然后再产生账单。

电信应用往往是基于事件使用状态机实现的,事件发生的时间点之间是不存在依赖关系的。例如一个电话Call,无论先收到主叫挂机还是被叫挂机都可能结束这个Call。使用一个状态机来实现Call的流程更自然和灵活些。

我个人理解Mobicents /SLEE 的设计思想应该是借鉴了智能网的模型,SBB 的概念和智能网概念模型中全局功能层的SIB类似,借助Mobicents 开发电信应用更符合电信应用的paradigm而又可以工作在IT的概念上。
(其它更多的区别也可以参看:http://java.sun.com/products/jain/article_slee_principles.html)

不过以后也许JavaEESLEE 两者会融合(现在Mobicents 就是跑在JBoss 上),这样就可以提供了带telecom feature的企业应用。Mobicents 的东家Redhat 也正致力于此。另外即使我们不开发电信应用,Mobicents 也可以一个大型Event Drivent Architecture的候选。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值