一种高性能IP‑SM‑GW系统的实现方法与流程

文档序号:12134762阅读:821来源:国知局

本发明涉及应用服务器技术领域,特别涉及一种高性能IP-SM-GW系统的实现方法。



背景技术:

IP-SM-GW是IMS(IPMultimediaSubsystem技术,即IP多媒体子系统技术)域中一个应用服务器,为实现基于IP短信业务而新增加的功能实体,它在IMS域内通过SIP协议接收和发送IP短信,与传统CS(Circuit Switched,电路交换)网络交互时采用MAP协议进行消息交互。在IMS核心网络中,它的作用类似一个应用服务器(AS,Application Server)。

IP短信流程分为移动始发短信流程(MO)和终结短信流程(MT)。 IP-SM-GW收到UE发送的短信并发送给短信中心(SMSC)的流程为MO短消息。当IP-SM-GW将短信中心(SMSC)发送的短信发给用户终端(UE)的流程为MT短消息。

现有技术都是在用户态直接调用系统进程进行业务处理,这种方法虽然方便直接,但是每次消息的接收或发送都需要调用一次系统进程,这造成系统压力过大,当处理用户数据增多时,会导致短消息收发性能下降。



技术实现要素:

为了解决现有技术的问题,本发明提供了一种高性能IP-SM-GW系统的实现方法,其能够灵活有效的提高IP-SM-GW系统大规模用户短消息并发性。

本发明所采用的技术方案如下:

一种高性能IP-SM-GW系统的实现方法,包括以下步骤:

A、创建一个由有限个任务线程的线程池,处理短消息业务,并将这些空闲的线程挂起;

B、建立epoll侦听接口,当侦听到终端的发送的注册消息或始发短消息及短信中心发送的终结短消息时,创建相应的文件描述符,并将事件加入到epoll队列中,对不同的事件进行处理并通知与其关联的空闲业务线程进行处理。

步骤A中,对线程池每个线程都是不停监控任务列表中是否有任务节点,如果没有任务节点继续等待,并将该线程设置为空闲阻塞等待状态,等待任务队列中有任务节点唤醒该空闲的任务线程来处理短消息业务;如果任务队列中存在着任务节点,就取出任务做相应的任务处理并将该任务节点从队列中删除。

步骤B中,超出部分的任务就先在任务队列中等待,待任务线程处理完任务后变为空闲后,就可以转而执行等待队列中的任务。

本发明提供的技术方案带来的有益效果是:

本发明的一种高性能IP-SM-GW系统的实现方法,是通过在IP-SM-GW系统中建立侦听接口和处理业务的线程池,通过侦听系统 epoll 队列中的事件,如果注册在epoll等待队列中的文件描述符事件状态发生了变化,内核就直接将这些事件放到events 数组中直接返回,并调用空闲的业务线程处理,不会随着监听事件数的增加而效率显剧下降。同时epoll 中所监听的事件数没有限制,它只与系统的资源有关。避免了现有技术频繁调用进程处理的低下的问题。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明的一种高性能IP-SM-GW系统的实现方法的方法流程图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

实施例一

如附图1所示,本实施例的一种高性能IP-SM-GW系统的实现方法,包括以下流程:

当IP-SM-GW系统启动时,创建一个含有m个活动的业务处理线程池,并调用epoll接口epoll_create,创建一个文件描述符句柄,并制定侦听事件的大小(即系统能够处理的并发请求消息的能力)。

当IP-SM-SW侦听到用户的移动始发短消息或者短消息中心的短消息时,调用epoll_ctl将对应侦听到的文件描述符添加到epoll 事件列表中。在系统进程中通过调用epoll_wait将epoll事件添加到任务队列中,并唤醒一个空闲的任务线程就行处理。

对线程池每个线程都是不停监控任务列表中是否有任务节点,如果没有任务节点继续等待,并将该线程设置为空闲阻塞等待状态,等待任务队列中有任务节点唤醒该空闲的任务线程来处理短消息业务。如果任务队列中存在着任务节点,就取出任务作相应的任务处理并将该任务节点从队列中删除。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1