CN104660442A - 基于MongoDB的服务开通方法和*** - Google Patents
基于MongoDB的服务开通方法和*** Download PDFInfo
- Publication number
- CN104660442A CN104660442A CN201310605914.6A CN201310605914A CN104660442A CN 104660442 A CN104660442 A CN 104660442A CN 201310605914 A CN201310605914 A CN 201310605914A CN 104660442 A CN104660442 A CN 104660442A
- Authority
- CN
- China
- Prior art keywords
- order
- work order
- service
- mongodb
- database
- 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.)
- Granted
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于MongoDB的服务开通方法和***,其中,该方法包括:将接收的服务定单写入MongoDB集群中的定单数据库,根据定单分解规则将定单数据库中未处理的服务定单拆分成工单写入MongoDB集群中的工单数据库;根据工单调度规则将工单数据库中的工单写入工单数据库中的网元处理队列中;将网元处理队列中的工单进行处理,并反馈工单处理结果。本发明的基于MongoDB的服务开通方法和***,使用MongoDB作为服务开通***的数据库,利用MongoDB的Tailable Cursors特性,结合网元多连接和性能监控可以实现各指令派发的高效处理。
Description
技术领域
本发明涉及通信领域中业务开通技术领域,具体地,涉及基于MongoDB的服务的开通方法和***。
背景技术
服务开通涉及到运营商的业务支撑***和多个网元设备,是一个从用户开通、服务配置、网络配置、直到设备配置的端到端流程。在开展业务时,业务支撑***需要与网络侧的网元设备,例如HLR、AuC、SMSC、HSS/SLF、ENUM Server、AS、SCP、PSTN、MMSC等网络侧的网元存在接口,进行服务开通。服务开通***就相当于介于业务支撑***同网元之间的接口,接收业务支撑***的业务请求,通过网络向网元发送指令请求,接收网元反馈,向业务支撑***返回业务响应。
随着移动业务的发展,使用的网元设备越来越多,用户也越来越多,服务开通***的压力也越来越大,因此需要一个稳定的、高效的能支撑大容量的服务开通***以满足业务发展的需要。现有的服务开通接口一般一个网元对应一套独立程序,接口之间相互独立,每个接口有内部独立的处理逻辑,业务支撑***向服务开通***发送服务开通工单,存储在工单数据库中,网元进程从工单数据库中获取服务开通工单后,组成指令发送到网元设备,并将网元执行的结果回写到工单数据库中。每个网元进程都直接与工单数据库交互,每隔一定的周期获取待发送指令,占用大量的工单数据库资源,也有个别量大的网元采用内存缓存来实现,就是将工单独立存于缓存中,网元进程从缓存获取工单进行派发,派发结果回到工单数据库中,如图1所示。
在现有技术中,工单数据库接***互频繁,各个网元都需要同工单数据库进行交互。占用大量的宝贵的数据库资源,频繁的访问使工单数据库性能下降,影响***的整体性能。同时,所有的指令获取、处理、回写都过于依赖工单数据库,过多的工单数据库访问降低了单个指令的处理性能。同时为了保证工单派发的稳定和性能,大部分使用小型机来支撑,为历史工单存储带来压力,只能保留短时间的历史工单,为故障查找增加难度。对于使用内存缓存队列来提供发送性能介绍数据库压力,只能缓解部分需求,无法做到工单流程的可视化监控,满足运维的需要。
发明内容
本发明是为了克服现有技术中业务开通效率较低的缺陷,根据本发明的一个方面,提出一种基于MongoDB的服务开通方法。
根据本发明实施例的基于MongoDB的服务开通方法,包括:
将接收的服务定单写入MongoDB集群中的定单数据库,根据定单分解规则将定单数据库中未处理的服务定单拆分成工单写入MongoDB集群中的工单数据库;
根据工单调度规则将工单数据库中的工单写入工单数据库中的网元处理队列中;
将网元处理队列中的工单进行处理,并反馈工单处理结果。
本发明是为了克服现有技术中业务开通效率较低的缺陷,根据本发明的另一个方面,提出一种基于MongoDB的服务开通***。
根据本发明实施例的基于MongoDB的服务开通***,包括:
服务定单处理模块,用于将接收的服务定单写入MongoDB集群中的定单数据库,根据定单分解规则将定单数据库中未处理的服务定单拆分成工单写入MongoDB集群中的工单数据库;
工单处理模块,用于根据工单调度规则将工单数据库中的工单写入工单数据库中的网元处理队列中,并反馈任务处理模块的工单处理结果;
任务处理模块,用于将网元处理队列中的工单进行处理。
本发明的基于MongoDB的服务开通方法和***,使用MongoDB作为服务开通***的数据库,利用MongoDB的Tailable Cursors特性,结合网元多连接和性能监控可以实现各指令派发的高效处理。
本发明的基于MongoDB的服务开通方法和***,结合MongoDB的分布式部署,并发执行不同网元任务队列的指令派发,增强了服务开通***的并发能力。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为现有服务开通***原理示意图;
图2为本发明的***功能结构示意图;
图3为本发明基于MongoDB的服务开通方法实施例的流程图;
图4为本发明基于MongoDB的服务开通***实施例的结构示意图。
具体实施方式
下面结合附图,对本发明的具体实施方式进行详细描述,但应当理解本发明的保护范围并不受具体实施方式的限制。
本发明主要用于提高服务开通***的性能,同时实现全流程监控,减少核心数据库的资源占用,提高指令的处理效能,支持性能的动态调整。
MongoDB是一个基于分布式文件存储的数据库,旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富、最像关系数据库的数据库类型。它支持的数据结构非常松散,类似json的bson格式,因此可以存储比较复杂的数据类型。MongoDB最大的特点是其支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
MongoDB Tailable Cursors是一个类似于UNIX tail-f命令的功能,它使用在MongoDB的Capped Collection上,在Capped Collection上面执行查询操作,当操作完成后,可以不关闭返回的数据Cursor,并持续地从中读出新加入的数据,而且集合的大小可设定,当数据大小超出设定大小时,新数据会抹掉旧数据,利用此特性加上MongoDB的Replication机制,可以实现一个分布式的消息队列***。
在本发明中,服务开通***分成3个核心处理单元:服务定单处理模块、工单处理模块、任务处理模块。由于使用了分布式数据库MongoDB,同时每个网元使用独立的网元任务队列表,方便进行扩展,提高了指令的处理效率,同时有效降低了ORACLE数据库的使用,可以实现PC云化部署。同时辅于监控处理单元,可以实现服务开通流程的全流程监控,包括同一号码短时处理定单工单数、历史峰值分析等等,在WEB提供异常告警功能。
如图2所示,本发明的服务开通***主要包括:
服务定单处理模块,从定单数据库中获取待处理的服务定单,根据定单分解规则配置进行定单分解形成工单,同时根据工单处理结果形成定单反馈,将处理结束的数据搬到历史数据库中;
工单处理模块:根据工单流程配置进行处理,将工单发送到网元处理队列,同时进行工单处理反馈,将处理结束的数据写入历史数据库中;
任务处理模块:进行各网元指令的派发,包括网元指令生成,指令处理反馈接收等等,使用MongoDB的Tailable Cursors特性;
WEB管理模块,使用MongoDB使得可以有效直观的查看服务定单和工单执行情况,方便进行异常告警,同时提供人工干预的能力;
MongoDB数据集群:包括定单数据库、工单数据库和历史数据库:
定单数据库,用于存储从业务支撑***获取待处理的服务工单,主要由服务开通***提供的实时接口或者搬表程序从业务支撑***获取;
工单数据库,用于存储分解后的工单信息和网元处理队列信息;
历史数据库,用于存储处理后的定单和工单数据库;整个集群可以横向扩展,保存较长时间的数据,提供故障查询,同时利用MongoDB的mapreduce功能提供复杂的分析功能,包括同一号码短时处理定单工单数、历史峰值分析等等。
如图3所示,本发明的基于MongoDB的服务开通方法实施例包括:
步骤102:服务开通***将客户关系管理(Customer RelationshipManagement,以下简称CRM)***订单表的开通订购数据(例如新用户入网订单、家庭短号开通订单等信息)写入MongoDB集群中的定单数据库,或者CRM调用服务开通***提供的定单接收服务,服务开通***将服务定单写入MongoDB集群中的定单数据库,服务开通***支持不同种类的服务定单写入定单数据库不同的定单表中,例如:IMS定单、HLR定单、ADC开通定单,等等;
步骤104:服务开通***中的服务定单处理模块使用定单分解规则,将定单数据库中未处理的服务定单拆分成多个工单,写入MongoDB集群中的工单数据库中,并支持不同工单写入工单数据库中不同的工单表中,例如,将IMS定单拆分成HSS/SLF、ENUM Server、AS、HLR、SCP开通工单;
在步骤104中,上述定单分解规则支持对服务开通类定单分解逻辑通过定单流程定制管理进行配置,支持预约生效类定单在生效时才进行分拆,支持对服务开通类定单特定的数据修正和补充;支持开通定单分解过程中,设置工单生成顺序,优先级等工单属性;支持可以灵活按照开通定单要素及服务开通类业务逻辑进行分解,如:可以根据定单所关联的用户信息、业务特征进行分解。
步骤106:服务开通***中的工单处理模块根据工单调度规则将上述步骤104中拆分出的工单写入工单数据库中的网元处理队列中;
在步骤106中,工单调度规则提供服务开通类工单的调度管理规则,包括依赖、并发、回退等逻辑判断。如:某工单只有当定单的其它工单执行成功才能派发;某些有部分工单失败,根据业务特征对已经执行的工单进行回退,对未执行工单进行退单处理。
步骤108:服务开通***中的任务处理模块处理网元处理队列中的工单数据,同时更新工单表中的工单处理状态;
步骤110:工单处理模块根据各网元的处理反馈结果形成定单处理结果,反馈到服务定单处理模块中,同时将处理过的工单写入MongoDB集群中的历史数据库中;
步骤112:服务定单处理模块将定单处理结果反馈到CRM***,同时将处理过的服务定单写入MongoDB集群中的历史数据库中。
因此,服务开通***的正常处理流程结束。整个流程基于MongoDB集群,服务开通***的每个执行流程和处理步骤都可以监控,解决了现有使用内存缓存队列难以监控的问题。
本发明使用MongoDB作为服务开通***的数据库,利用MongoDB的Tailable Cursors特性,结合网元多连接和性能监控可以实现各指令派发的高效处理。
本发明的基于MongoDB的服务开通方法,结合MongoDB的分布式部署,并发执行不同网元任务队列的指令派发,增强了服务开通***的并发能力。
如图4所示,本发明公开了一种基于MongoDB的服务开通***,包括:
服务定单处理模块10,用于将接收的服务定单写入MongoDB集群中的定单数据库,根据定单分解规则将定单数据库中未处理的服务定单拆分成工单写入MongoDB集群中的工单数据库;
工单处理模块20,用于根据工单调度规则将工单数据库中的工单写入工单数据库中的网元处理队列中,并反馈任务处理模块的工单处理结果;
任务处理模块30,用于将网元处理队列中的工单进行处理。
其中:服务定单处理模块10,具体用于将接收的不同种类的服务定单写入定单数据库内不同的定单表,将定单数据库中未处理的服务定单拆分成各种工单写入工单数据库内不同的工单表。
其中:任务处理模块30,具体用于在对网元处理队列中的工单处理结束后,更新工单数据库中工单表的工单处理状态。
其中:工单处理模块20,具体用于将处理过的工单写入所述MongoDB集群的历史数据库中。
本发明的基于MongoDB的服务开通***,使用MongoDB作为服务开通***的数据库,利用MongoDB的Tailable Cursors特性,结合网元多连接和性能监控可以实现各指令派发的高效处理。
本发明的基于MongoDB的服务开通***,结合MongoDB的分布式部署,并发执行不同网元任务队列的指令派发,增强了服务开通***的并发能力。
本发明能有多种不同形式的具体实施方式,上面以图2-图4为例结合附图对本发明的技术方案作举例说明,这并不意味着本发明所应用的具体实例只能局限在特定的流程或实施例结构中,本领域的普通技术人员应当了解,上文所提供的具体实施方案只是多种优选用法中的一些示例,任何体现本发明权利要求的实施方式均应在本发明技术方案所要求保护的范围之内。
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种基于MongoDB的服务开通方法,其特征在于,包括:
将接收的服务定单写入MongoDB集群中的定单数据库,根据定单分解规则将所述定单数据库中未处理的服务定单拆分成工单写入MongoDB集群中的工单数据库;
根据工单调度规则将所述工单数据库中的工单写入工单数据库中的网元处理队列中;
将所述网元处理队列中的工单进行处理,并反馈工单处理结果。
2.根据权利要求1所述的方法,其特征在于,所述将接收的服务定单写入MongoDB集群中的定单数据库包括:
将接收的不同种类的服务定单写入所述定单数据库内不同的定单表;
所述将定单数据库中未处理的服务定单拆分成工单写入MongoDB集群中的工单数据库包括:
所述将定单数据库中未处理的服务定单拆分成各种工单写入所述工单数据库内不同的工单表。
3.根据权利要求2所述的方法,其特征在于,所述将网元处理队列中的工单进行处理包括:
在对所述网元处理队列中的工单处理结束后,更新所述工单数据库中工单表的工单处理状态。
4.根据权利要求3所述的方法,其特征在于,所述反馈处理结果包括:将处理过的工单写入所述MongoDB集群的历史数据库中。
5.一种基于MongoDB的服务开通***,其特征在于,包括:
服务定单处理模块,用于将接收的服务定单写入MongoDB集群中的定单数据库,根据定单分解规则将所述定单数据库中未处理的服务定单拆分成工单写入MongoDB集群中的工单数据库;
工单处理模块,用于根据工单调度规则将所述工单数据库中的工单写入工单数据库中的网元处理队列中,并反馈任务处理模块的工单处理结果;
任务处理模块,用于将所述网元处理队列中的工单进行处理。
6.根据权利要求5所述的***,其特征在于,所述服务定单处理模块,具体用于将接收的不同种类的服务定单写入所述定单数据库内不同的定单表,将定单数据库中未处理的服务定单拆分成各种工单写入所述工单数据库内不同的工单表。
7.根据权利要求6所述的***,其特征在于,所述任务处理模块,具体用于在对所述网元处理队列中的工单处理结束后,更新所述工单数据库中工单表的工单处理状态。
8.根据权利要求7所述的***,其特征在于,所述工单处理模块,具体用于将处理过的工单写入所述MongoDB集群的历史数据库中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310605914.6A CN104660442B (zh) | 2013-11-25 | 2013-11-25 | 基于MongoDB的服务开通方法和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310605914.6A CN104660442B (zh) | 2013-11-25 | 2013-11-25 | 基于MongoDB的服务开通方法和*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104660442A true CN104660442A (zh) | 2015-05-27 |
CN104660442B CN104660442B (zh) | 2018-10-26 |
Family
ID=53251173
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310605914.6A Active CN104660442B (zh) | 2013-11-25 | 2013-11-25 | 基于MongoDB的服务开通方法和*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104660442B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105227551A (zh) * | 2015-09-24 | 2016-01-06 | 四川长虹电器股份有限公司 | Xbrl应用平台的统一权限管理方法 |
CN106408490A (zh) * | 2015-07-30 | 2017-02-15 | 大唐软件技术股份有限公司 | 一种激活工单处理方法和激活工单处理装置 |
CN110704465A (zh) * | 2019-09-26 | 2020-01-17 | 中电万维信息技术有限责任公司 | 一种处理业务工单表的方法、装置及存储介质 |
CN111953517A (zh) * | 2020-07-09 | 2020-11-17 | 北京思特奇信息技术股份有限公司 | 一种实现业务规则热加载的方法及*** |
CN112469026A (zh) * | 2020-11-06 | 2021-03-09 | 北京思特奇信息技术股份有限公司 | 业务指令规则的端到端实现方法和*** |
CN112905318A (zh) * | 2021-02-04 | 2021-06-04 | 方新 | 一种基于消息优先级队列分布式交换网元调用方法及*** |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101022362A (zh) * | 2007-03-27 | 2007-08-22 | 华为技术有限公司 | 定位故障的方法以及业务维护平台 |
CN101102360A (zh) * | 2007-08-07 | 2008-01-09 | 中兴通讯股份有限公司 | 一种自动回单方法 |
CN101340487A (zh) * | 2007-07-03 | 2009-01-07 | 大唐软件技术股份有限公司 | 服务开通过程中的管理方法和*** |
CN102609464A (zh) * | 2012-01-16 | 2012-07-25 | 北京亿赞普网络技术有限公司 | Mongodb分片联表查询方法及装置 |
WO2013064815A1 (en) * | 2011-11-04 | 2013-05-10 | Performance Horizon Group | Method and database system for manipulating data |
-
2013
- 2013-11-25 CN CN201310605914.6A patent/CN104660442B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101022362A (zh) * | 2007-03-27 | 2007-08-22 | 华为技术有限公司 | 定位故障的方法以及业务维护平台 |
CN101340487A (zh) * | 2007-07-03 | 2009-01-07 | 大唐软件技术股份有限公司 | 服务开通过程中的管理方法和*** |
CN101102360A (zh) * | 2007-08-07 | 2008-01-09 | 中兴通讯股份有限公司 | 一种自动回单方法 |
WO2013064815A1 (en) * | 2011-11-04 | 2013-05-10 | Performance Horizon Group | Method and database system for manipulating data |
CN102609464A (zh) * | 2012-01-16 | 2012-07-25 | 北京亿赞普网络技术有限公司 | Mongodb分片联表查询方法及装置 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106408490A (zh) * | 2015-07-30 | 2017-02-15 | 大唐软件技术股份有限公司 | 一种激活工单处理方法和激活工单处理装置 |
CN105227551A (zh) * | 2015-09-24 | 2016-01-06 | 四川长虹电器股份有限公司 | Xbrl应用平台的统一权限管理方法 |
CN110704465A (zh) * | 2019-09-26 | 2020-01-17 | 中电万维信息技术有限责任公司 | 一种处理业务工单表的方法、装置及存储介质 |
CN111953517A (zh) * | 2020-07-09 | 2020-11-17 | 北京思特奇信息技术股份有限公司 | 一种实现业务规则热加载的方法及*** |
CN111953517B (zh) * | 2020-07-09 | 2023-08-29 | 北京思特奇信息技术股份有限公司 | 一种实现业务规则热加载的方法及*** |
CN112469026A (zh) * | 2020-11-06 | 2021-03-09 | 北京思特奇信息技术股份有限公司 | 业务指令规则的端到端实现方法和*** |
CN112905318A (zh) * | 2021-02-04 | 2021-06-04 | 方新 | 一种基于消息优先级队列分布式交换网元调用方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN104660442B (zh) | 2018-10-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104660442A (zh) | 基于MongoDB的服务开通方法和*** | |
CN103345423B (zh) | 一种处理异步任务的方法和*** | |
CN106233253B (zh) | 资源供应***及方法 | |
CN105471989B (zh) | 一种数据存储方法 | |
CN103930875A (zh) | 用于加速业务数据处理的软件虚拟机 | |
US20210004712A1 (en) | Machine Learning Performance and Workload Management | |
CN105045607A (zh) | 一种实现多种大数据计算框架统一接口的方法 | |
CN102761528A (zh) | 数据管理***及方法 | |
CN110750372B (zh) | 基于共享内存的日志***及日志管理方法 | |
CN105183549A (zh) | 基于任务分配的自动出票*** | |
CN104899274A (zh) | 一种内存数据库高效远程访问方法 | |
CN106021593A (zh) | 一种第一数据库与第二数据库接管过程中的复制处理方法 | |
CN102629220A (zh) | 一种动态任务分配管理方法 | |
CN105607956B (zh) | 一种计算机中的任务分配方法及*** | |
CN103944964A (zh) | 一种分布式***及根据该***进行逐步扩容的方法 | |
CN101827120A (zh) | 一种集群存储方法及*** | |
US10275289B2 (en) | Coexistence of message-passing-like algorithms and procedural coding | |
CN102955801B (zh) | 基于分布式数据库***的数据控制方法及*** | |
CN106528297A (zh) | 一种管理任务的*** | |
US10740317B2 (en) | Using message-passing with procedural code in a database kernel | |
CN105302817B (zh) | 分布式文件***管理方法和装置 | |
CN103475520A (zh) | 一种分布式网络中的事务处理控制方法及装置 | |
CN113312345A (zh) | 结合Kubernetes和Ceph的遥感数据存储***、存储及检索方法 | |
KR101771183B1 (ko) | 인메모리 캐시를 관리하는 방법 | |
KR101771178B1 (ko) | 인메모리 캐시를 관리하는 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |