一种网元数据同步的方法及其装置的制造方法_2

文档序号:9330381阅读:来源:国知局
27] 4)、创建EJB Pro ject,新建MDB,这里作的效果是是当OMC系统发送消息到MQ中 时,ACS系统就通过此EJB监听收到消息。MDB类部分程序如下:
[0028]
[0029] 5)、打包部署 EJB 到% JB0SS_H0ME% \server\default\deploy 目录下。
[0030] 通过上述五个步骤的配置,在JBOSS启动时将上述文件初始化到中间件Hornetq 服务中,这样ACS系统就具备了可以消费OMC系统中的Hornetq服务器消息,即可使用MQ 来发送和接收消息。
[0031] 上述配置操作仅为一种示例,只要将ACS系统的远端IP地址和/或端口号配置为 OMC系统的IP地址和/或端口号,均应在本发明实施例的保护范围内,本发明实施例对此不 做限制。
[0032] 本发明实施例二提供一种网元数据同步的方法,如图3所示,具体地实现方法包 括:
[0033] 步骤S101,ACS服务器中的消息监听器监听消息队列,所述消息队列中存储的消 息是OMC服务器中的第一 JMS服务器根据网元上报的数据同步请求生成的,所述数据同步 请求中携带网元数据;
[0034] 步骤S102,所述ACS服务器中的第二JMS服务器根据所述消息监听器监听到的消 息更新所述ACS服务器侧的网元数据库,所述网元数据库用于存储网元数据。
[0035] 其中,首先OMC系统和ACS系统之间需要预先确定它们之间的消息通信协议。考 虑到JMS业务系统支持两种消息模型Point-to-Point (P2P)和Publish/Subscribe (Pub/ Sub),即点对点模式和发布订阅模型两种。具体地,在P2P模式中,包括:消息队列(Queue)、 发送者(Sender)、接收者(Receiver)。每个消息都被发送到一个特定的队列,接收者从队 列中获取消息。队列保留着消息,直到它们被消费或超时;在Pub/Sub模式中,包括:主题 (Topic)、发布者(Publisher)、订阅者(Subscriber)。多个发布者将消息发送到Topic,系 统将这些消息传递给多个订阅者。
[0036] 因此在步骤SlOl之前,还包括:ACS服务器向OMC服务器发送订阅请求,所述订阅 请求用于请求订阅所述OMC服务器发布的指定主题的消息。
[0037] 在步骤SlOl中,所述ACS服务器中配置有EJB容器,所述EJB容器包含用于实现 所述消息监听器的MDB实例;所述ACS服务器中的消息监听器监听消息队列,包括:通过所 述用于实现所述消息监听器的MDB实例监听所述消息队列。以下代码可用于实现上述消息 队列的创建:
[0038] Context context = new InitialContext(properties);
[0039] QueueConnectionFactory queueConnectionFactory = (QueueConnectionFactory)
[0040] context, lookup (queueConnectionFactoryName);
[0041 ] QueueConnection queueConnection = queueConnectionFactory.
[0042] createQueueConnection();
[0043] queueConnection. start ();
[0044] QueueSession queueSession = queueConnection. createQueueSession(transacted,
[0045] acknowledgementMode);
[0046] Queue queue = (Queue)context, lookup(queueName);
[0047] 其中,所述MDB实例中的远端IP地址被配置为所述OMC服务器的IP地址,和所述 MDB实例中的远端端口号被配置为所述OMC服务器的端口号,考虑到ACS系统和OMC系统可 以部署在同一个服务器上,当部署在同一台服务器上时IP地址相同,则将所述MDB实例中 的远端端口号被配置为所述OMC服务器的端口号。
[0048] 因为每个MDB只能处理一条消息,为了实现并发处理消息,EJB容器通常组合多个 MDB实例并发处理消息,当OMC系统往MQ (消息队列)发送消息时,EJB容器从MQ中读取消 息,因为这一过程属于异步调用,因此不会发生阻塞,提高了系统同步效率,同时也使得两 个系统之间的依赖性有了一定程度的解耦,减少了两个系统之间的依赖关系。
[0049] 在步骤S102之前,还包括:所述第二JMS服务器通过调用所述MDB实例中的接口 类中的消息处理方法,获取所述消息队列中的消息。具体地,所述第一 JMS服务器通过调用 所述接口类javax. jms. MessageLister中的onMessageO方法来传递消息。
[0050] 为了更加系统地描述ACS服务器与OMC服务器之间进行网元数据同步的过程,本 发明实施例二进一步通过图4描述这一过程。
[0051 ] 图4所述装置包括OMC系统和ACS系统,其中,在OMC系统中,包括OMC客户端(如 图中的Clientl)和OMC服务器(如图中的Serverl),ACS系统中包括ACS客户端(如图 中的Client2)和ACS服务器(如图中的Server2)。其中,Clientl和Client2用于为用 户提供操作界面和操作入口,Serverl和Server2用于处理客户端的请求报文。Serverl 和Server2还承载了第一 JMS服务器和第二JMS服务器(如图3中的JMS SERVER1和JMS SERVER2),JMS SERVER1和JMS SERVER2是实现JMS接口的消息中间件,用于处理消息路由 与传递的消息系统,第一 JMS服务器运行在Serverl上,第二JMS服务器运行在Serverf上。 其中,ACS服务器还承载了 EJB容器,每个MDB只能处理一条消息,为了实现并发处理消息, 所述EJB容器中包含至少一个MDB实例。
[0052] 所述OMC系统和ACS系统之间通过异步远程调用方式进行的网元数据同步,网 元设备将承载网元数据的JMS消息通过第一 JMS服务器,发送到目标MQ,所述目标MQ在 JMS初始化的时候由上下文中查找获得。OMC服务器从目标MQ中接收承载网元数据的 JMS消息,更新OMC系统的数据库,操作人员从与OMT地交互中得到网元数据,所述JMS消 息是JMS中的一种类型对象,由报头和消息主体两部分组成。报头由路由信息以及有关 该消息的元数据组成。消息主体则携带着应用程序的数据或有效负载。根据有效负载的 类型来划分,可以将消息分为几种类型,它们分别携带:简单文本(TextMessage)、可序列 化的对象(ObjectMessage)、属性集合(MapMessage)、字节流(BytesMessage)、原始值流 (StreamMessage),还有无有效负载的消息(Message)。
[0053] 因为ACS系统的E JB容器中包含至少一个MDB实例,所述MDB定义了一个消息 监听器,所述消息监听器监听目标MQ,当MDB中接口类javax. jms. MessageLister监听到 消息到达时,所述第一 JMS服务器通过调用所述接口类javax. jms. MessageLister中的 onMessageO方法来传递消息,第二JMS服务器将监听到的JMS消息转发给客户端2,操作 人员从与客户端2地交互中得到网元数据。
[0054] 基于上述网元数据同步方法,本发明实施例三提供一种装置,如图5所示:该装置 包括:监听模块S201和更新模块S202,共同实现在OMC系统和ACS系统之间进行网元数据 同步,其中:
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1