北向接口系统及其实现方法转让专利

申请号 : CN200910204965.1

文献号 : CN102033741B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张天虎

申请人 : 华为技术有限公司

摘要 :

本发明公开了一种北向接口系统及其实现方法,其中系统包括:通讯层处理模块,用于建立与OSF系统之间的连接,接收OSF系统发送的消息;适配层处理模块,用于对消息进行协议层面的转换;并将待发布的服务生成的业务组件注册到第一适配组件;业务层处理模块,用于将消息进行语意层面的转换,将消息的内容转换成能够被NEF系统识别的内容;公共服务层处理模块,用于将经过语意层面的转换后的所述消息发送给所述NEF系统。本发明实施例中,通讯层处理模块、适配层处理模块、业务层处理模块和公共服务层处理模块分别采用不同的组件对OSF系统发送过来的消息进行处理,实现了北向接口系统的组件化和灵活性。

权利要求 :

1.一种北向接口系统,其特征在于,包括:

通讯层处理模块,用于调用北向通讯组件建立与操作系统功能集OSF系统之间的连接,接收所述OSF系统发送的消息;

适配层处理模块,用于调用第一适配组件对所述消息进行协议层面的转换,使得所述消息的格式转换成能够被网元功能集NEF系统识别的格式;并将待发布的服务生成的业务组件注册到所述第一适配组件;

业务层处理模块,用于调用业务组件将经过协议层面的转换后的所述消息进行语意层面的转换,使得所述消息的内容转换成能够被NEF系统识别的内容;

公共服务层处理模块,用于调用公共服务组件将经过语意层面的转换后的所述消息发送给所述NEF系统;

所述适配层处理模块,具体用于将根据待发布的服务生成的JAR文件加载到哑元组件指定的路径下,启动所述哑元组件和待发布的服务生成的业务组件,将所述待发布的服务生成的业务组件注册到所述第一适配组件,完成服务发布。

2.根据权利要求1所述的系统,其特征在于,所述适配层处理模块具体用于调用所述第一适配组件将所述OSF系统发送的消息转换成能够被所述NEF系统识别的数据对象。

3.根据权利要求1所述的系统,其特征在于,所述公共服务层处理模块还用于调用日志组件和授权组件为所述通讯层处理模块、适配层处理模块和业务层处理模块提供日志服务和授权服务。

4.根据权利要求1所述的系统,其特征在于,所述适配处理模块还用于停止待注销的服务的业务组件,去除所述哑元组件指定的路径下的根据待注销的服务生成的JAR文件,重新启动所述哑元组件,完成服务注销。

5.根据权利要求1所述的系统,其特征在于,所述公共服务层处理模块还用于调用监控组件获取各个探针的收集结果,并将各个探针的收集结果推送到消息队列中,调用所述监控组件,按照提取策略从所述消息队列中提取探针的收集结果。

6.根据权利要求5所述的系统,其特征在于,所述适配层处理模块还用于调用第二适配组件将所述探针的收集结果通过超文本传输协议HTTP发送给用户浏览器。

7.根据权利要求5所述的系统,其特征在于,所述公共服务层处理模块具体用于调用所述监控组件中的探针管理器获取各个探针的收集结果。

8.根据权利要求5~7中任一项所述的系统,其特征在于,所述探针包括用于监控系统资源的探针、用于获取对业务调用的信息的探针和用户自定义的探针中的至少一种。

9.根据权利要求1或2或5或6所述的系统,其特征在于,所述公共服务层处理模块还用于调用公共服务组件接收所述NEF系统发送的消息;

所述业务层处理模块还用于调用业务组件将所述NEF系统发送的消息进行语意层面的转换,使得所述消息的内容转换成能够被所述OSF系统识别的内容;

所述适配层处理模块还用于调用第一适配组件对经过语意层面的转换后的消息进行协议层面的转换,使得所述消息的格式转换成能够被所述OSF系统识别的格式;

所述通讯层处理模块还用于调用北向通讯组件将经过协议层面的转换后的消息发送给所述OSF系统。

10.一种北向接口系统实现方法,其特征在于,包括:

调用北向通讯组件建立与操作系统功能集OSF系统之间的连接,接收所述OSF系统发送的消息;

调用第一适配组件对所述消息进行协议层面的转换,使得所述消息的格式转换成能够被网元功能集NEF系统识别的格式;并将待发布的服务生成的业务组件注册到所述第一适配组件;

调用业务组件对经过协议层面的转换后的消息进行语意层面的转换,使得所述消息的内容转换成能够被所述NEF系统识别的内容;

调用公共服务组件将经过语意层面的转换后的所述消息发送给NEF系统;

其中,所述将待发布的服务生产的业务组件注册到所述第一适配组件,包括:将根据待发布的服务生成的JAR文件加载到哑元组件指定的路径下,启动所述哑元组件和待发布的服务生成的业务组件,将所述待发布的服务生成的业务组件注册到第一适配组件,完成动态服务发布。

11.根据权利要求10所述的方法,其特征在于,所述调用第一适配组件对所述消息进行协议层面的转换,将所述消息的格式转换成NEF系统能够识别的格式包括:调用所述第一适配组件将所述OSF系统发送的消息转换成能够被所述NEF系统识别的数据对象。

12.根据权利要求10所述的方法,其特征在于,所述方法还包括:调用日志组件和授权组件提供日志服务和授权服务。

13.根据权利要求10所述的方法,其特征在于,所述方法还包括:调用公共服务组件接收所述NEF系统发送的消息;

调用业务组件将所述NEF系统发送的消息进行语意层面的转换,使得所述消息的内容转换成所述OSF系统能够识别的内容;

调用第一适配组件对经过语意层面的转换后的消息进行协议层面的转换,使得所述消息的格式转换成所述OSF系统能够识别的格式;

调用北向通讯组件将经过协议层面的转换后的所述消息发送给所述OSF系统。

14.根据权利要求10所述的方法,其特征在于,所述方法还包括:停止待注销的服务的业务组件;去除哑元组件指定的路径下的根据待注销的服务生成的JAR文件;重新启动哑元组件,完成服务注销。

15.根据权利要求10所述的方法,其特征在于,所述方法还包括:调用监控组件获取各个探针的收集结果,并将各个探针的收集结果推送到消息队列中,并调用所述监控组件,按照提取策略从消息队列中提取探针的收集结果。

16.根据权利要求15所述的方法,其特征在于,所述方法还包括:调用第二适配组件将所述探针的收集结果通过超文本传输协议HTTP发送给用户浏览器。

17.根据权利要求15所述的方法,其特征在于,所述调用监控组件获取各个探针的收集结果包括:调用所述监控组件中的探针管理器获取各个探针的收集结果。

18.根据权利要求15~17中任一项所述的方法,其特征在于,所述探针包括用于监控系统资源的探针、用于获取对业务调用的信息的探针和用户自定义的探针中的至少一种。

说明书 :

北向接口系统及其实现方法

技术领域

[0001] 本发明涉及电信管理网络技术,尤其涉及一种北向接口系统及其实现方法。

背景技术

[0002] 电信管理网络(Telecommunications Management Network,简称TMN)中,位于网元功能集(Network Element Function,简称NEF)系统和操作系统功能集(Operation System Function,简称OSF)系统之间的q接口就是通常描述的北向接口,该接口的功能是提供OSF系统和NEF系统连接的通路,包括协议层面的转换和语意层面的转换。北向接口往往是作为NEF系统中的一个模块来发布的。
[0003] NEF系统和OSF系统之间协议层面的转换主要是指交换信息使用的底层通信技术,已经被广泛接受的标准协议主要包括公用对象请求代理(CommonObject Request Broker Architecture,简称CORBA)、简单网络管理协议(Simple Network Management Protocol,简称SNMP)、简单对象访问协议(Simple Object Access Protocol,简称SOAP)和交易语言1(TransactionLanguage 1,简称TL1)等。
[0004] NEF系统和OSF系统之间语意层面的转换包括一些电信领域的北向标准,如3GPP、电信管理论坛(Telecommunications Management Forum,简称TMF)814、TMF854等,这些标准主要定义了管理电信领域的故障管理、配置管理、计费管理、性能管理和安全管理这五种基本业务功能操作。
[0005] 北向接口系统作为网络管理系统中的一个关键系统,最初是使用C/C++语言来开发的,但是北向接口系统本身的特点是快速开发、灵活定制以适应不同OSF系统的对接需求,而这正是C/C++语言难于实现的。于是,使用java语言来开发北向接口系统开始被逐渐重视起来,同时OSF厂商也开始使用java技术来开发北向接口系统,SUN也推出了基于java平台企业版本(JavaPlatform,Enterprise Edition,简称JEE)的基于java技术的OSS(OSSJ)标准。基于JEE开发的北向接口系统,存在的问题是:由于JEE体系庞大,采用JEE开发的系统无法实现北向接口系统的轻量化和灵活性。

发明内容

[0006] 本发明实施例提供一种北向接口系统及其实现方法,能够实现北向接口系统的组件化和灵活性。
[0007] 一方面,本发明实施例提供了一种北向接口系统,包括:
[0008] 通讯层处理模块,用于调用北向通讯组件建立与操作系统功能集OSF系统之间的连接,接收所述OSF系统发送的消息;
[0009] 适配层处理模块,用于调用第一适配组件对所述消息进行协议层面的转换,使得所述消息的格式转换成能够被网元功能集NEF系统识别的格式;并将待发布的服务生成的业务组件注册到所述第一适配组件;
[0010] 业务层处理模块,用于调用业务组件将经过协议层面的转换后的所述消息进行语意层面的转换,使得所述消息的内容转换成能够被NEF系统识别的内容;
[0011] 公共服务层处理模块,用于调用公共服务组件将经过语意层面的转换后的所述消息发送给所述NEF系统。
[0012] 另一方面,本发明实施例还提供了一种北向接口系统实现方法,包括:
[0013] 调用北向通讯组件建立与操作系统功能集OSF系统之间的连接,接收所述OSF系统发送的消息;
[0014] 调用第一适配组件对所述消息进行协议层面的转换,使得所述消息的格式转换成能够被网元功能集NEF系统识别的格式;并将待发布的服务生成的业务组件注册到所述第一适配组件;
[0015] 调用业务组件对经过协议层面的转换后的消息进行语意层面的转换,使得所述消息的内容转换成能够被所述NEF系统识别的内容;
[0016] 调用公共服务组件将经过语意层面的转换后的所述消息发送给NEF系统。
[0017] 可见,本发明实施例提供的北向接口系统及其实现方法中,通讯层处理模块、适配层处理模块、业务层处理模块和公共服务层处理模块分别调用不同的组件对OSF系统发送过来的消息进行处理,实现了北向接口系统的组件化;其中,适配层处理模块用于将待发布的服务生成的业务组件注册到所述第一适配组件,从而实现提供注册服务,可以动态发布新的Web服务而无需重启整个系统,具有灵活性;同时,通讯组件、第一适配组件、业务组件和公共服务组件可以根据实际需要来扩展,具有灵活性。
[0018] 下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

附图说明

[0019] 图1所示为本发明北向接口系统实施例一结构示意图;
[0020] 图2所示为本发明各实施例中系统组件划分示意图;
[0021] 图3所示为本发明实施例中页面服务(Web Service)动态发布原理示意图;
[0022] 图4所示为本发明实施例中监控组件的结构示意图;
[0023] 图5所示为本发明实施例中探针的实现示意图;
[0024] 图6所示为本发明实施例中调用监控组件收集探针结果的示意图;
[0025] 图7所示为本发明北向接口系统实现方法实施例一流程图。

具体实施方式

[0026] 轻量化和组件化是北向接口系统追求的目标,OSGI(Open ServiceGateway Initiative,简称OSGI)成为实现北向接口系统的理想选择,OSGI贵方为网络服务定义了一个标准的、面向组件的计算环境。在模块的组织方面,OSGI可以采用一个功能模块一个组件(Bundle)的方式组织模块,在OSGI框架的支持下不会出现需要引用其他模块组件的情况,而只需要引用其他组件定义的接口即可,这样每一个模块对应的组件的开发不会很复杂,同时组件的部署也非常简单。采用OSGI技术,模块的复用非常简单,由于OSGI是规范性质的定义,只需要部署组件即可为系统增加相应的模块。而且OSGI不需要使用JEE环境来支持,java标准版(JSE)环境就可以运行。
[0027] 采用OSGI技术的系统具备如下特点:
[0028] (1)可插拔的系统:采用OSGI技术的系统,可以调用安装新的组件、更新或停止现有的组件来实现系统功能的插拔;
[0029] (2)可动态改变行为的系统;
[0030] (3)稳定、高效的系统:采用OSGI技术的系统采用的是微核机制,微核机制保证了系统的稳定性,微核机制的系统中,只要微核是稳定地运行的,系统就不会崩溃,也就是说,采用OSGI技术的系统不会受到运行在其中的组件的影响,不会因为组件的崩溃而导致系统崩溃;
[0031] (4)规范的、可积累的模块:可以对接不同的系统,积累不同的对接模块,从而形成对接模块仓库,提供大量的可重用的模块。
[0032] 本发明提供基于OSGI的北向接口实现方法的实施例,充分利用OSGI的优势,实现了北向接口系统的组件化和轻量化。
[0033] 如图1所示为本发明北向接口系统实施例一结构示意图,该北向接口系统包括:通讯层处理模块11、适配层处理模块12、业务层处理模块13和公共服务层处理模块14,适配层处理模块12分别与通讯层处理模块11和业务层处理模块13逻辑连接,业务层处理模块13与公共服务层处理模块14逻辑连接。
[0034] 其中,通讯层处理模块11用于调用北向通讯组件建立与OSF系统之间的连接,接收OSF系统发送的消息;
[0035] 适配层处理模块12用于调用第一适配组件对该消息进行协议层面的转换,使得该消息的格式转换成能够被NEF系统识别的格式,并将待发布的服务生成的业务组件注册到第一适配组件;
[0036] 业务层处理模块13用于调用业务组件将经过协议层面的转换后的消息进行语意层面的转换,使得该消息的内容转换成能够被NEF系统识别的内容;
[0037] 公共服务层处理模块14用于调用公共服务组件将经过语意层面的转换后的消息发送给NEF系统。
[0038] 其中,适配层处理模块12具体可以用于调用第一适配组件将OSF系统发送过来的消息转换成能够被NEF系统识别的数据对象,并将待发布的服务生成的业务组件注册到第一适配组件。
[0039] 图1中,公共服务层处理模块还可以与通讯层处理模块11和适配层处理模块12逻辑连接,公共服务层处理模块14还可以用于调用日志组件和授权组件为通讯层处理模块11、适配层处理模块12和业务层处理模块13提供日志服务和授权服务。
[0040] 本发明实施例一提供的北向接口实现系统中,通讯层处理模块、适配层处理模块、业务层处理模块和公共服务层处理模块分别调用不同的组件对OSF系统发送过来的消息进行处理,实现了北向接口系统的组件化;其中,适配层处理模块用于将待发布的服务生成的业务组件注册到所述第一适配组件,从而实现提供注册服务,可以动态发布新的Web服务而无需重启整个系统,具有灵活性;同时,通讯组件、第一适配组件、业务组件和公共服务组件可以根据实际需要来扩展,具有灵活性。
[0041] 本发明实施中,北向接口系统中的各个组件的划分遵循如下的原则:
[0042] (1)每个组件的功能明确、单一;
[0043] (2)业务处理作为一个单独的组件;
[0044] (3)组件与组件之间的交互应该尽量通过接口(OSGI Service)来完成。
[0045] 基于上述的原则,可以将北向接口系统分成四个层次,如图2所示为本发明各实施例中系统组件划分示意图:
[0046] (1)北向通讯层
[0047] 北向通讯层用于建立与OSF系统之间的物理连接,提供发送和接收消息的通道。北向通讯层包含一系列用于实现具体通讯协议北向通讯组件,例如,用于实现超文本传输协议(HyperText Transfer Protocol,简称HTTP)的HTTP服务器组件,用于提供java消息业务(Java Messaging Service,简称JMS)的JMS服务器组件等。如果OSF系统中不包括JMS服务器(JMS server),那么北向通讯层中可以包括JMS服务器组件和JMS客户端组件,如果OSF系统中包括JMS服务器,那么北向通讯层中可以只包括JMS服务器组件(Bundle)。
封装了CORBA能力的CORBA组件也可以是一种北向通讯组件。
[0048] (2)协议适配层
[0049] 协议适配层主要的功能是实现协议层面的转化,将一种消息格式转换成另一种消息格式,包括第一适配组件,例如第一适配组件可以是SAOP组件,SOAP组件主要用于将OSF系统发送的SOAP消息转换成数据对象,另外SOAP组件还用于提供页面服务(Web Service)的动态发布和注销。协议适配层还包括第二适配组件,第二适配组件可以是REST组件,该REST组件用于将北向接口系统内部的信息以WEB用户界面(User interface,简称UI)相关资源发布给外部浏览器。
[0050] 协议适配层中的各个组件都需要使用北向通讯层提供的通讯服务,并提供相应的OSGI服务给下层组件使用。
[0051] (3)业务层
[0052] 业务层主要用于进行业务逻辑处理,将经过协议适配层处理后的消息进行语意层面的转换,可以包括用于实现不同的业务的业务组件。例如,可以包括告警处理组件(Fault Management Bundle)、存量处理组件(InventoryManagement Bundle)、配置组件(Configuration Management Bundle)等。根据需要,可以开发实现不同业务的不同组件,将不同的组件添加到业务层中。业务层的组件都使用SOAP组件的页面服务(Web Service)动态发布和注销服务来发布自己的页面服务(Web Service)。
[0053] (4)公共服务层
[0054] 公共服务层主要用于提供底层的、和业务无关的公共服务,包括多个公共服务组件,这些公共服务组件提供给上面三个层次的组件使用,例如,公共服务层可以包括日志服务组件(Log Bundle)、授权组件(License Bundle)、南向通讯组件和监控组件(Monitor Bundle)等公共服务组件,南向通讯组件用于和NEF系统建立物理连接,监控组件用于通过探针动态地跟踪消息。
[0055] 下面结合图2详细说明本发明实施例一的工作原理。
[0056] 以OSF系统查询告警为例,首先,北向接口系统中的通讯层处理模块调用北向通讯组件建立与OSF系统之间的连接,接收OSF系统发送的用于查询告警的SOAP消息,适配层处理模块调用SOAP组件将用于查询告警的SOAP消息转换为数据对象,并将数据对象发送给业务层中的告警处理组件,业务层处理模块调用告警处理组件将数据对象转换成业务实现数据,例如,业务实现数据包括告警发生时间、告警发生次数、告警发生端口等,告警处理组件将业务实现数据发送给公共服务层的南向通讯组件,公共服务层处理模块调用南向通讯组件将业务实现数据发送给NEF系统。
[0057] 如图1所示的实施例中,适配层处理模块具体可以用于调用第一适配组件对接收到的消息进行协议层面的转换,使得接收到的消息的格式转换成能够被网元功能集NEF系统识别的格式;并将根据待发布的业务生成的JAR文件加载到哑元组件指定的路径下,启动哑元组件和待发布的业务生成的业务组件,将待发布的服务生成的业务组件注册到第一适配组件,完成业务发布。
[0058] 所述哑元组件为预先定义的所述第一适配组件的必要组件,所述哑元组件能够从一个事先指定的路径下加载任意协议数据JAR文件。
[0059] 下面结合图2,详细说明适配层处理模块完成动态服务发布的过程。
[0060] 页面服务描述语言(Web Services Description Language,简称WSDL)是定义一个页面服务(Web Service)的基础,WSDL包括两部分内容:类型(Types)和绑定信息(Binding),类型定义使用该页面服务(Web Service)所需交换的数据的格式,即SOAP消息中的数据格式,绑定信息用于定义该页面服务(Web Service)所接受的SOAP消息和最终实现这个服务的java方法之间的映射关系。
[0061] WSDL文件首先要通过JAXWS定义的工具进行编译以生成java相关的类,JAXWS是XML页面服务(Web Service)的java应用编程接口(ApplicationProgramming Interface,简称API),因为WSDL是语言无关的,而具体的实现又是语言相关的,所以编译的过程就是语言绑定过程。这与CORBA中将交互式数据语言(Interactive Data Language,简称IDL)编译成指定语言的过程相同。被编译后的WSDL文件生成两个主要部分:业务端接口(ServiceEndpoint Interface,简称SEI)和协议数据类。协议数据类来自java-xml数据绑定(简称JAXB)对WSDL中的类型的编译结果。SEI本身是一个java接口,页面服务(Web Service)的提供者就是要实现这个接口。协议数据类就是调用这个接口所需要的java数据类型。
[0062] 编译WSDL文件生成的协议数据类需要被打包成独立的JAR文件。
[0063] 由于组件和组件之间使用了不同的类加载器,所以必须使用导入导出的方式让不同的组件实现类的共享,这是OSGI的核心思想。要注册一个页面服务(Web Service),就必须将编译WSDL文件生成的SEI注册给SOAP组件,同时SOAP组件运行时需要能够看到任何被注册服务所必须的数据信息,即编译WSDL文件生成的协议数据类。所以SOAP组件也必须要导入不同WSDL文件生成的数据信息。但是从工程的角度来说,SOAP组件需要导入什么信息不是实现确定的,需要根据具体的页面服务(Web Service)来确定,因此每次发布新的页面服务(Web Service)的时候,都需要修改SOAP组件来得到MAINFEST.MF文件,这就导致北向接口系统的框架没有独立性。
[0064] 为了解决这一问题,本发明实施例中定义一个哑元组件(MetaDataBundle),该哑元组件本身不包含任何JAR文件,该哑元组件能够从一个事先指定的路径下加载任意协议数据JAR文件,并将所有的公共的接口导出。同时,将该哑元组件设定成SOAP组件的必要组件(Required Bundle),这就意味着哑元组件所有的导出公共数据都将缺省地导入到SOAP组件中。
[0065] 如图3所示为本发明实施例中页面服务(Web Service)动态发布原理示意图,当有新的页面服务(Web Service)要发布时,将JAR文件加载到哑元组件路径下,然后根据待发布的服务生成业务组件,该业务组件用于实现新的待发布的服务。启动待发布的服务生成的业务组件和哑元组件,待发布的服务生成的业务组件获取SOAP组件发布的注册页面服务(Web Service),然后将SEI向SOAP组件注册,即待发布的服务生成的业务组件注册到SOAP组件,这样就完成了一个服务的动态发布。
[0066] 图1所示的实施例中,适配层处理模块还可以用于停止待注销的业务组件,去除哑元组件指定的路径下的根据所述待注销的业务生成的JAR文件,重新启动哑元组件,完成业务注销。
[0067] 下面结合图2,说明适配层处理模块完成服务注销的过程。
[0068] 注销服务的过程与发布的过程正好相反。
[0069] 首先,适配层处理模块停止需要注销的业务组件,然后去掉哑元组件指定的路径下的根据待注销的业务生成的JAR文件,重新启动哑元组件,完成业务注销。
[0070] 如图1所示的实施例中,公共服务层处理模块还可以用于调用监控组件获取各个探针的收集结果,并将各个探针的收集结果推送到一个消息队列中,探针包括用于监控系统资源的探针、用于获取对业务调用的信息的探针和用户自定义的探针;调用监控组件,按照提取策略,从消息队列中提取探针的收集结果。适配层处理模块具体还可以用于将探针的收集结果通过超文本传输协议(HTTP)发送给用户浏览器。
[0071] 北向接口系统不同于网络管理系统中的其他系统,网络管理系统中的其他系统使用相同的技术和稳定的接口,99%的问题在系统发布时就解决了。但是,北向接口系统需要对接不同的其他系统,而其他系统具有很大的不确定性,无法事先测试其他系统,当出现故障时,无法在短时间内确定是北向接口系统出现了故障还是其他系统出现了故障。究其原因,主要是由于现有的北向接口系统内部状态管理不透明造成的。
[0072] 为了解决这一问题,本发明实施例中,公共服务层处理模块调用监控组件获取各个探针的收集结果,从而可以跟踪北向接口中所有消息、状态和资源,获取北向接口系统中各个消息的状态参数。
[0073] 下面详细介绍公共服务层处理模块获取各个探针的收集结果以及提取探针的收集结果的实现过程。
[0074] 为了对北向接口系统进行跟踪,需要定义如下几类探针:
[0075] 1、用于监控系统资源的探针。
[0076] 用于监控系统资源的探针主要针对系统的资源进行监控,可以包括组件内容(BundleContext)的监控,OSGI框架事件的监控、OSGI服务活动时间的监控、权限、配置、启动级别的监控等,还可以包括线程池的监控,消息队列的监控等。
[0077] 2、用于获取对业务调用的信息的探针
[0078] 用于获取对业务调用的信息的探针主要用于获取对该服务调用的信息,例如用于获取对业务调用的信息的探针可以包括用于获取线程信息的探针、用于获取参数的探针,用于获取返回信息的探针,用于获取时间信息的探针等。
[0079] 3、用户自定义的探针
[0080] 用户自定义的探针主要是用于对用户自定义的资源进行监控,所有的用户自定义的探针应当实现统一的接口并向探针收集服务进行注册才能使用。
[0081] 在图2中,公共服务层中包括监控组件,协议适配层包括REST组件,这两个组件Bundle相互协作,实现探针数据的收集和最后的展示。所有探针的信息可以通过监控组件提供的OSGI服务接口来查询,查询的结果可以发送给REST组件,由REST组件将查询结果传递给Web浏览器显示给用户。用户可以通过Web浏览器配置哪些探针可以启动,哪些探针可以关闭。用户配置探针的配置信息发送给监控组件,监控组件实时地中止或添加探针到指定的位置。
[0082] 如图4所示为本发明实施例中监控组件的结构示意图,监控组件中包括探针管理器35、复杂事件处理器36和事件收集器37,复杂事件处理器36用于收集各个探针收集的数据,事件收集器37用于将探针收集到的数据和时间轴顺序存储,探针管理器35用于提供探针激活、关闭和配置策略的接口。用于监控系统资源的探针包括允许探针(Permission Prob)31、用户探针(UserProbe)32、配置探针(Configuration Probe)3 3、组件启动级别探针(StartLevel Probe)34等,还可以包括用户自定义的探针38。
[0083] 探针可以采用截取器技术和动态代理技术来实现。如图5所示为本发明实施例中探针的实现示意图。图5中,使用了截取器技术来调用特定OSGI服务,利用java动态代理机制实现截取器(Interceptor)设计模块。探针关闭时,对组件的调用称为普通调用,探针开启时,对组件的调用称为跟踪调用。普通调用和跟踪调用时,该组件对外部暴露的是相同的接口。在正常调用时,调用路径为①②组成的路径,在跟踪调用时,调用路径变为③④⑤组成的路径。路径④实现的功能就是探针做的功能,包括获取检测结果等,组件本身不会感知路径④的存在。
[0084] 探针可以附加各种策略,策略可以非常灵活,比如可以根据特定的时间点和时间范围来获取,可以根据线程的ID或是特定的接口信息来获取。探针提取信息的过程也是可以进行精确微调的,比如在特定的时间点才启动探针,在特定的时间点关闭探针,还包括探针对不同的之信息来截取信息,比如仅仅截取来自某个开放软代码软件(open source software,简称OSS)请求的信息,或仅仅截取所有消息包括尺寸大于5K的消息,这些策略可以通过Web浏览器的配置界面由用户完成。
[0085] 探针的基本功能是按照既定的设计检测相关的信息并将检测到的信息推送到一个消息队列中,然后由监控组件中的消息提取器来按照用户的提取策略,从消息队列中提取探针的检测结果。
[0086] 如图6所示为本发明实施例中调用监控组件收集探针结果的示意图,图6中,线程T1在其调用的路径上有三个探针分别是P1、P3和P5,线程T2在其调用的路径上有三个探针分别是P2、P4和P5,每个探针的功能都是将调用点的时间、线程ID、传入参数和传输参数收集,并将收集到的数据打包发送给监控组件中的复杂事件处理器,复杂事件处理器就是一个按照时间排序的消息队列。监控组件中的事件提取器根据用户的提取策略,从复杂事件处理器中提取探针收集结果,假设用户的提取策略是根据线程ID提取探针收集结果,这样,复杂事件处理器提取的探针收集结果发送给REST组件,REST组件将探针的收集结果通过HTTP接口发送给Web浏览器,在Web浏览器上将探针的收集结果显示,这样用户就能看到特定ID的线程所经历的所有调用的接口信息。
[0087] 本发明还提供北向接口系统实施例二,该实施例二中,公共服务层处理模块14还可以用于调用公共服务组件接收NEF系统发送的消息;业务层处理模块13还可以用于调用业务组件将NEF系统发送的消息进行语意层面的转换,使得消息的内容转换成能够被所述OSF系统识别的内容;适配层处理模块12还可以用于调用第一适配组件对经过语意层面的转换后的消息进行协议层面的转换,使得消息的格式转换成能够被所述OSF系统识别的格式;通讯层处理模块11还可以用于调用北向通讯组件将经过协议层面的转换后的消息发送给所述OSF系统。
[0088] 公共服务层处理模块14还可以用于调用监控组件获取各个探针的收集结果,并将各个探针的收集结果推送到消息队列中,调用所述监控组件,按照提取策略从所述消息队列中提取探针的收集结果。适配层处理模块12还可以用于调用第二适配组件将所述探针的收集结果通过超文本传输协议HTTP发送给用户浏览器。
[0089] 下面结合图2详细说明本发明实施例二的工作原理。
[0090] 以NEF系统上报告警为例,首先,北向接口系统中的公共服务层处理模块调用公共服务组件(例如图2中的南向通讯组件)接收NEF系统发送的用于上报告警的消息;业务层处理模块调用业务组件将用于上报告警的消息经过语意转换,转换成OSF系统能够识别的内容;适配层处理模块将经过业务层处理模块处理后的消息进行协议层面的转换,将消息的格式转换成能够被OSF系统识别的格式;通讯层处理模块将经过适配层处理模块处理后的消息发送给OSF系统。
[0091] 如图7所示为本发明北向接口系统实现方法实施例一流程图,包括:
[0092] 步骤101、调用北向通讯组件建立与操作系统功能集OSF系统之间的连接,接收OSF系统发送的消息。
[0093] 具体的,步骤101可以由通讯层处理模块执行。
[0094] 步骤102、调用第一适配组件对消息进行协议层面的转换,使得消息的格式转换成能够被NEF系统识别的格式;并将待发布的服务生成的业务组件注册到第一适配组件。
[0095] 具体的,步骤102可以由适配层处理模块执行。具体地,步骤102可以调用SOAP组件将收到的OSF系统发送的SOAP消息转换为能够被NEF系统识别的格式,并将待发布的服务生成的业务组件注册到SOAP组件。
[0096] 步骤103、调用业务组件对经过协议层面的转换后的消息进行语意层面的转换,使得消息的内容转换成能够被NEF系统识别的内容。步骤103可以由业务层处理模块执行。具体地,业务层处理模块可以调用具体的业务组件将数据对象转换成业务实现数据,例如,可以调用告警处理组件将数据对象转换成告警发生时间、告警发生次数、告警发生端口等业务实现数据。
[0097] 步骤104、调用公共服务组件将经过语意层面的转换后的消息发送给NEF系统。具体地,公共服务层处理模块可以调用南向通讯组件将业务实现数据发送给NEF系统。
[0098] 步骤102中的调用第一适配组件对消息进行协议层面的转换,使得消息的格式转换成能够被NEF系统识别的格式的步骤具体可以为:调用第一适配组件将OSF系统发送的消息转换成能够被NEF系统识别的数据对象。例如,可以调用第一适配组件将OSF系统发送的SOAP消息转换成能够被NEF系统识别的数据对象。
[0099] 在如图7所示的实施例一的基础上,还可以包括:
[0100] 步骤201、调用公共服务组件接收NEF系统发送的消息。具体地,公共服务层处理模块可以调用公共服务组件,例如南向通讯组件,接收NEF系统发送的消息。
[0101] 步骤202、调用业务组件将NEF系统发送的消息进行语意层面的转换,将消息的内容转换成OSF系统能够识别的内容。步骤202可以由业务层处理模块执行。
[0102] 步骤203、调用第一适配组件对经过语意层面的转换后的消息进行协议层面的转换,将消息的格式转换成所述OSF系统能够识别的格式。步骤203可以由适配层处理模块执行。
[0103] 步骤204、调用北向通讯组件将经过协议层面的转换后的消息发送给所述OSF系统步骤204可以由通讯层处理模块执行。
[0104] 步骤102中,将待发布的服务生成的业务组件注册到第一适配组件的步骤包括:将根据待发布的服务生成的JAR文件加载到哑元组件指定的路径下,启动哑元组件和待发布的服务生成的业务组件,将所述待发布的服务生成的业务组件注册到第一适配组件,完成动态服务发布。
[0105] 本发明实施例中的哑元组件本身不包含任何JAR文件,该哑元组件能够从一个事先指定的路径下加载任意协议数据JAR文件,并将所有的公共的接口导出。同时,将该哑元组件被设置成SOAP组件的必要组件(RequiredBundle),这就意味着哑元组件所有的导出公共数据都将缺省地导入到SOAP组件中。
[0106] 哑元组件为第一适配组件的必要组件,使得哑元组件和第一适配组件能够共享加载到哑元组件指定目录下加载数据JAR文件。当有新的页面服务(Web Service)要发布时,只需要将重新启动哑元组件和待发布的服务生成的业务组件,无需重新启动整个系统,实现了页面服务(Web Service)的动态发布。
[0107] 本发明北向接口系统实现方法实施例一还可以包括:停止待注销的服务的业务组件;去除哑元组件指定的路径下的根据待注销的服务生成的JAR文件;重新启动哑元组件,完成服务注销。
[0108] 具体地,可以由适配层处理模块停止待注销的服务的业务组件;去除哑元组件指定的路径下的根据待注销的服务生成的JAR文件;重新启动哑元组件,完成服务注销。
[0109] 可见,在前面有益效果的基础上,本发明实施例提供的动态注销服务的方法,也只需要先停止待注销的业务组件,删除哑元组件中的根据待注销的服务生成的JAR文件,然后重新启动哑元Bundle即可,无需重新启动整个系统,实现了页面服务(Web Service)的动态注销。
[0110] 本发明北向接口系统实现方法实施例一还可以包括:调用监控组件获取各个探针的收集结果,并将各个探针的收集结果推送到消息队列中;并调用所述监控组件按照提取策略从消息队列中提取探针的收集结果,并调用第二适配组件将所述探针的收集结果通过HTTP协议发送给用户浏览器。
[0111] 具体地,可以由公共服务层处理模块调用监控组件,按照预先设定的提取策略,从消息队列中提取探针的收集结果,提取策略可以根据不同的需求来设置。公共服务层处理模块可以通过REST组件将探针的收集结果通过HTTP协议传递给用户浏览器。
[0112] 上述的探针包括可以用于监控系统资源的探针、用于获取对业务调用的信息的探针和用户自定义的探针中的一种或多种。
[0113] 其中,调用监控组件获取各个探针的收集结果包括:调用监控组件中的探针管理器获取各个探针的收集结果。本发明提供的跟踪方法,调用监控组件获取各个探针的收集结果,并根据提取策略将探针的收集结果发送给用户浏览器,使得用户能够获取每个探针跟踪的消息的数据,实现了对北向接口系统中各个消息的跟踪。
[0114] 综上所述,可见,本发明实施例提供的北向接口系统中,通讯层处理模块、适配层处理模块、业务层处理模块和公共服务层处理模块分别调用不同的组件对OSF系统发送过来的消息进行处理,实现了北向接口系统的组件化;其中,适配层处理模块用于将待发布的服务生成的业务组件注册到所述适配组件,从而实现提供注册服务,可以动态发布新的Web服务而无需重启整个系统,具有灵活性;同时,通讯组件、第一适配组件、业务组件和公共服务组件可以根据实际需要来扩展,具有灵活性。
[0115] 在前述基础上,本发明提供的动态发布服务的方法,哑元组件为第一适配组件的必要组件,使得哑元组件和第一适配组件能够共享加载到哑元组件指定目录下加载数据JAR文件。当有新的页面服务(Web Service)要发布时,只需要将重新启动哑元组件和待发布的服务生成的业务组件,无需重新启动整个系统,实现了页面服务(Web Service)的动态发布。
[0116] 在前述基础上,本发明实施例提供的动态注销服务的方法,也只需要先停止待注销的业务组件,删除哑元组件中的根据待注销的服务生成的JAR文件,然后重新启动哑元组件即可,无需重新启动整个系统,实现了页面服务(Web Service)的动态注销。
[0117] 在前述基础上,本发明提供的跟踪方法,调用监控组件获取各个探针的收集结果,并根据提取策略将探针的收集结果发送给用户浏览器,使得用户能够获取每个探针跟踪的消息的数据,实现了对北向接口系统中各个消息的跟踪,同时也能实现对OSF系统和NEF系统中的消息的跟踪。
[0118] 本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
[0119] 本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
[0120] 上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0121] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
[0122] 最后应说明的是:以上实施例仅用以说明本发明的技术方案而非对其进行限制,尽管参照较佳实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对本发明的技术方案进行修改或者等同替换,而这些修改或者等同替换亦不能使修改后的技术方案脱离本发明技术方案的精神和范围。