CN103645959A - 电信实时系统多进程共享内存池交互组件和方法 - Google Patents
电信实时系统多进程共享内存池交互组件和方法 Download PDFInfo
- Publication number
- CN103645959A CN103645959A CN201310700002.7A CN201310700002A CN103645959A CN 103645959 A CN103645959 A CN 103645959A CN 201310700002 A CN201310700002 A CN 201310700002A CN 103645959 A CN103645959 A CN 103645959A
- Authority
- CN
- China
- Prior art keywords
- unimsg
- smp
- message
- memory block
- time system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
电信实时系统多进程共享内存池交互组件和方法,通过设置共享内存池SMP模块,有利于减少进程之间需要传输的数据量,提高电信实时系统处理性能,其特征在于,包括以下步骤,业务逻辑层的入口进程根据来自接口层的统一请求消息UNIREQ开始业务处理,并向共享内存池SMP申请一个内存块,将业务处理中的业务层统一消息UNIMSG存放在该内存块中;业务处理完毕后,仅仅将该统一消息UNIMSG的句柄传给下一个进程,而不是像之前传递整个统一消息UNIMSG;该下一个进程通过统一消息UNIMSG的句柄访问共享内存池SMP,从内存块中获得统一消息UNIMSG或释放所述内存块。
Description
技术领域
本发明涉及电信实时系统多进程技术,特别是一种电信实时系统多进程共享内存池交互组件和方法。
背景技术
目前,基于3G通信的数据和增值业务已成为发展重点,因此对承担业务实时计费,鉴权等后台任务的电信营运商的移动数据业务和增值业务管理平台系统之性能,提出了更高的要求。发明人认为,系统的进程间数据交互部分如果能够减少数据的内存拷贝,降低对操作系统内核的压力,则在相同硬件配置情况下,系统性能够得到显著提高。图1是现有技术中的电信实时系统架构示意图,如图1所示,电信实时系统多进程交互组件包括接口层和业务逻辑层,统一请求消息UNI REQ从接口层传递到业务逻辑层,统一回复消息UNI RSP从业务逻辑层传递到接口层。接口层包括多种消息接口适配器,例如,鉴权计费请求消息接口适配器,SOAP消息接口适配器,DIAMETER消息接口适配器。业务逻辑层包括分别连接交易中间件的多个进程,例如,入口进程,鉴权进程,批价进程,其它进程;统一消息UNIMSG通过交易中间件和IPC消息队列在进程之间传递。电信营运支撑系统的工作流程简要说明如下:①接口适配器将外部系统的各种消息转换为内部统一的请求消息(UNIREQ),发给应用服务器的入口进程;②入口进程处理请求消息,分析业务处理逻辑,根据消息指示,生成会话数据存放于数据库的会话表中,或再查找数据库获得已经生成的会话,整合生成业务层统一消息(UNIMSG)消息,包含管理信息段,请求信息段,回复信息段,并通过中间件将UNIMSG(内部使用IPC消息队列)发送给下一个业务进程;③业务进程访问UNIMSG中的信息进行逻辑处理,填写必要的回复信息,若处理失败或流程结束,通过中间件返回统一回复消息(UNIRSP)给接口适配层,否则将UNIMSG交给下一个业务进程处理;④接口层适配器将UNIRSP转换为外部消息,发送给相应的外部系统,完成鉴权计费处理。但是现有技术存在以下缺陷或不足:由于接口层和业务逻辑层之间设计为基于TCP/IP的局域网通讯,信息网络I/O的交互不可避免;对于基于中间件的IPC消息队列的进程间通讯,UNIMSG在进程间通过中间件来交互,但UNIMSG消息长度多达1K以上,使进程间的数据交换占用了大量的系统开销。
发明内容
本发明针对现有技术中存在的缺陷或不足,提供一种电信实时系统多进程共享内存池交互组件和方法,通过设置共享内存池SMP模块,以便在进程之间仅仅传递统一消息UNIMSG的句柄,而不是像之前传递整个统一消息UNIMSG,从而有利于减少进程之间需要传输的数据量,提高电信实时系统处理性能。
电信实时系统多进程共享内存池交互方法,其特征在于,包括以下步骤,业务逻辑层的入口进程根据来自接口层的统一请求消息UNIREQ开始业务处理,并向共享内存池SMP申请一个内存块,将业务处理中的业务层统一消息UNIMSG存放在该内存块中;业务处理完毕后,仅仅将该统一消息UNIMSG的句柄传给下一个进程,而不是像之前传递整个统一消息UNIMSG;该下一个进程通过统一消息UNIMSG的句柄访问共享内存池SMP,从内存块中获得统一消息UNIMSG或释放所述内存块,由此减少了进程之间需要传输的数据量,提高电信实时系统处理性能。
所述SMP包括内存块组成的内存池、Hash表、任务队列、计数器组和性能统计信息模块。
所述Hash表,用来存放共享会话信息。
所述任务队列,用于提供进程间的消息通知。
所述计数器组,用于提供进程间共享的计数器。
所述性能统计信息模块,用于组件使用过程中的统计数据。
电信实时系统多进程共享内存池交互组件,其特征在于,包括内置于电信实时系统业务逻辑层的共享内存池SMP模块,所述业务逻辑层的入口进程接收来自接口层的统一请求消息UNIREQ开始业务处理,并向共享内存池SMP模块申请一个内存块,将业务处理中的业务层统一消息UNIMSG存放在该内存块中,业务处理完毕后,仅仅将该统一消息UNIMSG的句柄传给下一个进程,而不是像之前传递整个统一消息UNIMSG,该下一个进程通过统一消息UNIMSG的句柄访问共享内存池SMP,从内存块中获得统一消息UNIMSG或释放所述内存块;所述业务逻辑层向接口层传送统一回复消息UNIRSP;所述SMP包括内存块组成的内存池、Hash表、任务队列、计数器组和性能统计信息模块,所述Hash表,用来存放共享会话信息;所述任务队列,用于提供进程间的消息通知;所述计数器组,用于提供进程间共享的计数器;所述性能统计信息模块,用于组件使用过程中的统计数据。
本发明的技术效果如下:采用本发明的电信实时系统,对其进行压力测试的结果表明,在相同硬件配置和测试环境下,同样的CPU利用率,系统的性能提高了30%以上。
附图说明
图1是现有技术中的电信实时系统架构示意图。
图2是实施本发明的引入了SMP的电信实时系统架构示意图。
图3是SMP的结构示意图。
具体实施方式
下面结合附图(图1-图3)对本发明进行说明。
图1是现有技术中的电信实时系统架构示意图,如图1所示,包括接口层和业务逻辑层,统一请求消息UNI REQ从接口层传递到业务逻辑层,统一回复消息UNI RSP从业务逻辑层传递到接口层。接口层包括多种消息接口适配器,例如,鉴权计费请求消息接口适配器,SOAP消息接口适配器,DIAMETER消息接口适配器,等等。业务逻辑层包括分别连接交易中间件的多个进程,例如,入口进程,鉴权进程,批价进程,其它进程等等;统一消息UNI MSG通过交易中间件和IPC消息队列在进程之间传递。经分析和测试,系统处理的开销很大部分用在进程,中间件,系统内核之间的数据交换,为减少这部分的CPU消耗,需要尽量减少数据在内存的拷贝。因此,如图2所示(图2是实施本发明的引入了SMP的电信实时系统架构示意图),引入SMP模块(Shared Memory Pool:SMP)机制:入口进程开始业务处理后,向SMP申请数据块,用以存放UNIMSG,根据消息指示生成会话,存放于共享内存会话表中,或在共享内存会话表中查找已有的会话,将该UNIMSG的句柄传给下一个进程,而不是象之前传递整个消息,后续进程通过UNIMSG句柄访问SMP,最后使用这个句柄的进程负责释放它。如此大大减少了进程之间需要传输的数据量,显著提高了处理性能。图3是SMP的结构示意图。如图3所示,SMP分为以下几个部分:内存块组成的内存池,Hash表,用来存放共享会话信息,任务队列,提供进程间的消息通知;计数器组,提供进程间共享的计数器;性能统计信息,组件使用过程中的统计数据。Attach到SMP的进程可以向SMP要求分配一个块,用于存放UNIMSG,也可以向SMP释放一个不再使用的块;进程从SMP得到一个块后,可以把这个块传给另一个进程,以便后续进程对块上的数据进行处理。进程处理完毕后,可以选择释放它,也可以将块存放在SMP的Hash表中(如对处于会话中的请求消息),其它进程则访问hash获得块,然后进程处理,会话结束后从hash中删除并释放这个块。
该系统为电信营运商的移动数据业务和增值业务管理平台,对终端用户的业务消费提供实时控制功能,完成包括鉴权,认证,批价等功能;设计目标为7X24小时的高可靠性,高性能,高并发的后台处理系统。系统构建于商业的主流的Unix平台和事务交易中间件,采用分布式集群架构设计,单节点则为进程池方式的多进程并行处理模式。本方案是针对单个服务器实例的优化并以此作为技术特征要求保护。本发明解决了在实际应用中,在Unix上的多进程处理模式下,为提高系统的处理性能,而设计的一个共享内存交互访问优化方案。系统引入共享内存池交互组件(SMP)后,需要对之前的实现做小量的调整,主要针对消息访问封装做修改,不影响业务逻辑的流程。在改造完毕后,对系统进行了压力测试,结果表明,在相同硬件配置和测试环境下,同样的CPU利用率,系统的性能提高了30%以上。接口层和业务逻辑层之间设计为基于TCP/IP的局域网通讯,信息的网络I/O的交互不可避免;业务逻辑层的服务器节点则设计为在同一台主机上,基于中间件的IPC消息队列的进程间通讯,UNIMSG在进程间通过中间件来交互,但UNIMSG消息长度多达1K以上,使进程间的数据交换占用了大量的系统开销。经分析和测试,系统处理的开销很大部分用在进程,中间件,系统内核之间的数据交换,为减少这部分的CPU消耗,需要尽量减少数据在内存的拷贝。因此引入内存共享池交互组件(Shared Memory Pool:SMP)机制:入口进程开始业务处理后,向SMP申请数据块,用以存放UNIMSG,处理完毕后,将该UNIMSG的句柄传给下一个进程,而不是象之前传递整个消息,后续进程通过UNIMSG句柄访问SMP,最后使用这个句柄的进程负责释放它。如此大大减少了进程之间需要传输的数据量,显著提高了处理性能。
系统流程说明如下:接口适配器将外部系统的各种消息转换为内部统一的请求消息(UNIREQ),发给应用服务器的入口进程;入口进程处理请求消息,分析业务处理逻辑,整合生成业务层统一消息(UNIMSG)消息,包含管理信息段,请求信息段,回复信息段,并通过中间件将UNIMSG(内部使用IPC消息队列)发送给下一个业务进程;业务进程访问UNIMSG中的信息进行逻辑处理,填写必要的回复信息,若处理失败或流程结束,通过中间件返回统一回复消息(UNIRSP)给接口适配层,否则将UNIMSG交给下一个业务进程处理;接口层适配器将UNIRSP转换为外部消息,发送给相应的外部系统,完成鉴权计费处理。
在此指明,以上叙述有助于本领域技术人员理解本发明创造,但并非限制本发明创造的保护范围。任何没有脱离本发明创造实质内容的对以上叙述的等同替换、修饰改进和/或删繁从简而进行的实施,均落入本发明创造的保护范围。
Claims (7)
1.电信实时系统多进程共享内存池交互方法,其特征在于,包括以下步骤,业务逻辑层的入口进程根据来自接口层的统一请求消息UNIREQ开始业务处理,并向共享内存池SMP申请一个内存块,将业务处理中的业务层统一消息UNIMSG存放在该内存块中;业务处理完毕后,仅仅将该统一消息UNIMSG的句柄传给下一个进程,而不是像之前传递整个统一消息UNIMSG;该下一个进程通过统一消息UNIMSG的句柄访问共享内存池SMP,从内存块中获得统一消息UNIMSG或释放所述内存块,由此减少了进程之间需要传输的数据量,提高电信实时系统处理性能。
2.根据权利要求1所述的电信实时系统多进程共享内存池交互方法,其特征在于,所述SMP包括内存块组成的内存池、Hash表、任务队列、计数器组和性能统计信息模块。
3.根据权利要求2所述的电信实时系统多进程共享内存池交互方法,其特征在于,所述Hash表,用来存放共享会话信息。
4.根据权利要求2所述的电信实时系统多进程共享内存池交互方法,其特征在于,所述任务队列,用于提供进程间的消息通知。
5.根据权利要求2所述的电信实时系统多进程共享内存池交互方法,其特征在于,所述计数器组,用于提供进程间共享的计数器。
6.根据权利要求2所述的电信实时系统多进程共享内存池交互方法,其特征在于,所述性能统计信息模块,用于组件使用过程中的统计数据。
7.电信实时系统多进程共享内存池交互组件,其特征在于,包括内置于电信实时系统业务逻辑层的共享内存池SMP模块,所述业务逻辑层的入口进程接收来自接口层的统一请求消息UNIREQ开始业务处理,并向共享内存池SMP模块申请一个内存块,将业务处理中的业务层统一消息UNIMSG存放在该内存块中,业务处理完毕后,仅仅将该统一消息UNIMSG的句柄传给下一个进程,而不是像之前传递整个统一消息UNIMSG,该下一个进程通过统一消息UNIMSG的句柄访问共享内存池SMP,从内存块中获得统一消息UNIMSG或释放所述内存块;所述业务逻辑层向接口层传送统一回复消息UNIRSP;所述SMP包括内存块组成的内存池、Hash表、任务队列、计数器组和性能统计信息模块,所述Hash表,用来存放共享会话信息;所述任务队列,用于提供进程间的消息通知;所述计数器组,用于提供进程间共享的计数器;所述性能统计信息模块,用于组件使用过程中的统计数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310700002.7A CN103645959A (zh) | 2013-12-18 | 2013-12-18 | 电信实时系统多进程共享内存池交互组件和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310700002.7A CN103645959A (zh) | 2013-12-18 | 2013-12-18 | 电信实时系统多进程共享内存池交互组件和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103645959A true CN103645959A (zh) | 2014-03-19 |
Family
ID=50251180
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310700002.7A Pending CN103645959A (zh) | 2013-12-18 | 2013-12-18 | 电信实时系统多进程共享内存池交互组件和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103645959A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104980454A (zh) * | 2014-04-02 | 2015-10-14 | 腾讯科技(深圳)有限公司 | 一种资源数据共享方法、服务器及系统 |
CN105447092A (zh) * | 2015-11-09 | 2016-03-30 | 联动优势科技有限公司 | 一种缓存方法及装置 |
CN108496408A (zh) * | 2016-01-26 | 2018-09-04 | 株式会社Ntt都科摩 | 基站及发送方法 |
CN109800035A (zh) * | 2019-01-24 | 2019-05-24 | 博云视觉科技(青岛)有限公司 | 一种算法集成服务框架系统 |
CN112445628A (zh) * | 2019-09-03 | 2021-03-05 | 腾讯科技(深圳)有限公司 | 进程间资源共享方法、装置与电子设备 |
-
2013
- 2013-12-18 CN CN201310700002.7A patent/CN103645959A/zh active Pending
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104980454A (zh) * | 2014-04-02 | 2015-10-14 | 腾讯科技(深圳)有限公司 | 一种资源数据共享方法、服务器及系统 |
CN104980454B (zh) * | 2014-04-02 | 2019-08-06 | 腾讯科技(深圳)有限公司 | 一种资源数据共享方法、服务器及系统 |
US10455003B2 (en) | 2014-04-02 | 2019-10-22 | Tencent Technology (Shenzhen) Company Limited | Method, server, and system for sharing resource data |
CN105447092A (zh) * | 2015-11-09 | 2016-03-30 | 联动优势科技有限公司 | 一种缓存方法及装置 |
CN108496408A (zh) * | 2016-01-26 | 2018-09-04 | 株式会社Ntt都科摩 | 基站及发送方法 |
CN108496408B (zh) * | 2016-01-26 | 2023-10-20 | 株式会社Ntt都科摩 | 基站及发送方法 |
CN109800035A (zh) * | 2019-01-24 | 2019-05-24 | 博云视觉科技(青岛)有限公司 | 一种算法集成服务框架系统 |
CN109800035B (zh) * | 2019-01-24 | 2022-11-15 | 博云视觉科技(青岛)有限公司 | 一种算法集成服务框架系统 |
CN112445628A (zh) * | 2019-09-03 | 2021-03-05 | 腾讯科技(深圳)有限公司 | 进程间资源共享方法、装置与电子设备 |
CN112445628B (zh) * | 2019-09-03 | 2023-10-24 | 腾讯科技(深圳)有限公司 | 进程间资源共享方法、装置与电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108255905B (zh) | 接口调用数据处理方法、装置和计算机设备 | |
CN111930529B (zh) | 基于消息队列及微服务的数据同步方法、装置及系统 | |
KR20220079958A (ko) | 블록체인 메시지 처리 방법 및 장치, 컴퓨터 및 판독 가능한 저장 매체 | |
US20200052982A1 (en) | In situ triggered function as a service within a service mesh | |
CN108509523A (zh) | 区块链数据的结构化处理方法、设备及可读存储介质 | |
CN103645959A (zh) | 电信实时系统多进程共享内存池交互组件和方法 | |
CN101808051B (zh) | 应用整合网关及其控制方法 | |
CN112132942B (zh) | 一种三维场景漫游实时渲染方法 | |
CN104734915A (zh) | 一种复合多进程多线程的多网络并发动态仿真方法 | |
CN105991520A (zh) | 内外网交互方法及系统 | |
CN109327335A (zh) | 一种云监控解决系统及方法 | |
CN108881408A (zh) | 一种基于物联网平台的多业务运行系统 | |
CN110096521A (zh) | 日志信息处理方法及装置 | |
CN110430068A (zh) | 一种特征工程编排方法及装置 | |
CN108920505A (zh) | 汇率查询组件装置、服务端及方法 | |
CN104468299A (zh) | 基于用户规则的企业服务总线系统 | |
CN114615096A (zh) | 基于事件驱动架构的电信计费方法、系统及相关设备 | |
CN102088475B (zh) | 控制流集中数据流分布的组合服务执行系统及执行方法 | |
CN101383814A (zh) | 一种实现基于连接池的数据访问的设备和方法 | |
CN116204307A (zh) | 兼容不同计算框架的联邦学习方法和联邦学习系统 | |
CN108259605B (zh) | 一种基于多数据中心的数据调用系统及方法 | |
CN104391876A (zh) | 一种静态数据存储及查询方法及系统 | |
CN108696559B (zh) | 流处理方法及装置 | |
CN112860462A (zh) | 一种实现iot平台基座互联互通的方法、装置及系统 | |
CN102902593A (zh) | 基于缓存机制的协议分发处理系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20140319 |
|
WD01 | Invention patent application deemed withdrawn after publication |