基于CORBA技术的EDFA远程监控软件架构设计

2013-12-10 14:07菲尼萨光电通讯科技无锡有限公司
电子世界 2013年4期
关键词:通信协议调用远程

菲尼萨光电通讯科技(无锡)有限公司 华 歆

目前,EDFA(Erbium Doped Fiber Amplifier)的电路设计已经使其成为了相对独立的智能化嵌入式设备,在对其进行相应的应用模式设置后,就可以运行在无人监管的状态下。但是,随着光纤通信网络应用规模的不断扩大,EDFA的使用量也随之迅速增多、而且应用分布的结构日趋复杂,在这样的前提下,为了监控EDFA的运行状态以防止意外的运行异常,或者针对相关应用需要人为更改EDFA的工作模式,所以必需要构建一套专门的EDFA网络监控系统来对EDFA的实时运行状态加以管理。

一、EDFA控制的演化

由于EDFA的工作稳定性直接影响到光纤通信网络的传输性能,所以对于EDFA的电路设计要求非常严格,几乎要为其在实际应用中遇到的各类问题都备有相对的解决方案,因此,一个独立的EDFA模块本身就可以工作在没有任何外围设备干预的状态之中。

随着光纤通信网络技术的日益复杂化,对EDFA的实际应用也提出了多种要求,有时就需要人为参与一些对它的操作设置,这样就需要有外部的相应软件对它进行监控。最普通的方法是在计算机中设计一个控制软件,通过使用与EDFA中匹配的通信协议,就可以很好的监控EDFA的工作状态。

单机的EDFA控制虽然设计简单、操作方便,但是这种模式的管理使得资源消耗比较浪费,因此又提出了多机控制方式,即一台计算机同时管理多台EDFA,监控方式可以采用针对特定单机的访问模式,也可以采用分时轮循多机的访问模式。

图1 软件框架模型示意图

但是对于EDFA网络的集中管理,新的问题又出现了。第一,EDFA在区域上的分布比较随机,很可能所要管理的EDFA由几个不同的计算机单独管理,第二,所有的EDFA种类比较繁多,因此其通信协议也不尽相同,无法使用统一的通信协议对其进行管理。针对这样的问题,有一种方法可以非常有效的解决,那就是采用分布式应用的方式来设计远程监控软件。

二、CORBA简介

CORBA(Common Object Request Broker Architecture公共对象请求代理体系结构)是由OMG组织制定的一种标准的面向对象的应用程序体系规范。由对象请求代理ORB、对象服务、公共设施、域接口和应用接口这几个部分组成。其核心部分就是对象请求代理ORB(Object Request Broker)。ORB提供了一种机制,通过这种机制,对象可以透明地发出请求和接收响应。分布的、可以互操作的对象可以利用ORB构造进行互操作的应用。ORB可看作是在对象之间建立客户/服务关系的一种中间件。基于ORB,客户可以透明的调用服务对象提供的方法,该服务对象可以与客户运行在同一台机器上,也可以运行在其他机器上通过网络与客户进行交互。ORB截取客户发送的请求,并负责在该软件总线上找到实现该请求的服务对象,然后完成参数、方法调用,并返回最终结果。

ORB最重要的特性是提供了客户与目标对象之间的交互透明性,具体屏蔽了以下几个内容:

对象位置:客户不必知道目标对象的物理位置。目标对象可能与客户一起驻留在同一个进程中或同一机器的不同进程中,也有可能驻留在网络上的远程机器上;

对象实现:客户不必知道有关对象实现的具体细节。例如对象设计所采用的编程语言,对象所在结点的硬件平台和操作系统等;

对象的执行状态:客户不必知道目标对象在被其发送调用请求时是否处于活动状态,如果目标对象不是活动的,那么在ORB传送客户的调用请求之前,会自动的将它激活;

对象通信机制:客户不必知道ORB所使用的通信机制,如TCP/IP、管道、共享内存、本地方法调用等;

数据的表示:客户不必知道本地机器和远程机器对数据的表示方法是否相同。

ORB的这些特点使应用程序开发者不必过多的了解底层分布式编程的细节,而把精力集中在自己的具体应用设计上。

三、实现原理

在客户向目标对象发送请求之前,必须知道目标对象所支持的相关服务,而目标对象通过界面定义来说明它所能提供的服务。CORBA的对象界面由OMG IDL来定义。IDL(接口定义语言)是一个纯说明性语言,与主机上具体采用的编程语言无关。只要是支持CORBA开发的编程语言工具,它都可以通过自己独特的IDL编译器来编译IDL文件,这就强制性的使界面与对象实现分离,即可以用不同的编程语言来实现目标对象。

IDL编译器除了将IDL文件映射成相对应的编程语言之外,还会根据IDL文件中的界面定义来产生客户方的存根和服务方的框架。存根代表客户创建并发出请求,框架则把这个请求交给CORBA对象来实现。具体的说,存根为客户提供了一种机制,使客户不用关心ORB的细节,它负责将客户请求的参数进行封装和发送,并对返回的结果进行接收和解封装。而框架在接收到客户的请求后,会先将请求参数解封装,从中识别客户请求所需要的服务,然后调用对象实现,并把执行结果进行封装后返回给客户。

当然,CORBA的底层细节是实现ORB通信的关键,其中包括为ORB之间通信规定传输文法和信息格式的GIOP(Global Inter_ORB Protocol)、如何在TCP/IP网络上交换GIOP消息的IIOP(Internet Inter_ORB Protocol)、标准对象引用格式IOR(Interoperability Object Reference),还有联系对象实现和ORB本身的对象适配器等。由于这些内容不用程序开发者过多的关注,所以不在这里详述。

四、设计应用

要设计一个基于CORBA技术的EDFA远程监控软件,首先必须对软件需求进行分析,清楚所设计的软件要具备哪些功能,并对其中需要哪些具体的服务有个总体把握,这对以后设计、编写IDL文件和Servant文件很重要。

整个软件设计可以分为两个部分进行:EDFA控制和CORBA服务。

一般来说,在设计EDFA控制软件时,会根据客户的要求和EDFA所具备的功能制定一套相应的控制通信协议,包括数据传输格式、相关命令字、校验方式、返回信息编码等,通过这个协议,计算机就可以控制EDFA的工作方式并实时监测其运行状态。

而CORBA服务的开发要遵循一定的开发步骤,首先是编写IDL文件。因为CORBA关系服务将对象关系使用IDL描述成CORBA对象,所以一个IDL中规定的接口描述将决定整个CORBA服务的功能范围,而且一旦设计好CORBA服务程序后再对IDL进行更改,则整个CORBA服务程序必须重新构建才能够实现新的功能要求。编写完成IDL文件后要用专门的编译器对其进行编译,以生成存根和框架供客户端及服务器端编码使用。最后是编写辅助功能文件,并根据选定的CORBA服务方式编写客户端和服务器端的代码。

因此,要设计一个基于CORBA技术的EDFA远程监控软件,首先要将所有对EDFA的远程控制命令都为其设计一个对应的接口模块,并规定各个接口中的传输变量及数据传输的格式。然后一个非常重要的步骤就是编写Servant文件。Servant称作仆从管理器,是POA(可移植对象适配器)中的一个组件,用于实现一个或多个对象请求,通常存在于服务器进程的环境中。ORB将客户端根据对象引用发出的操作请求转换为对仆从的调用。因此,Servant的编写质量直接关系到整个软件运行的效率。对一个基于CORBA技术的EDFA远程监控软件而言,Servant所负责的操作就是如何将CORBA服务转换成对应的EDFA控制通信协议。最后,根据采用的CORBA服务方式编写出客户端和服务器端的代码。整个软件的框架模型如图1所示。

通过采用CORBA服务的方式,客户在网络上发出控制EDFA的请求,ORB则自动截取这个服务的请求,然后负责在网络上找到可以实现该请求的服务对象并将其定位和调用。而服务器端通过Servant将CORBA服务请求转换成对应的EDFA控制命令和通信协议并对EDFA进行相应的操作,最后将操作结果转换成CORBA服务的信息传输格式返回到网络上供发送请求的客户接收。

五、结语

使用CORBA技术来实现的EDFA远程监控软件,除了可以很好的满足采用分布式构建的EDFA应用网络的监控要求,而且能够支持应用集成框架的建立,适应协同工作的需求,更方便地实现EDFA应用网络的可移植性、互操作性和分布透明性。

[1]张云勇,张智江,等.中间件技术原理与应用[M].北京:清华大学出版社,2004.

[2]朱其亮,郑斌.CORBA原理及应用[M].北京:北京邮电大学出版社,2001.

[3]何丽,方英兰,等.分布式应用程序开发[M].北京:清华大学出版社,2004.

[4]对象计算组织TAO开发者指南1.3a.美国:Object Computing,Inc,2003.

猜你喜欢
通信协议调用远程
让人胆寒的“远程杀手”:弹道导弹
远程工作狂综合征
核电项目物项调用管理的应用研究
LabWindows/CVI下基于ActiveX技术的Excel调用
远程诈骗
基于Z-Stack通信协议栈的红外地温采集电路设计
基于系统调用的恶意软件检测技术研究
基于DMX512通信协议的多路转发器设计与研究
基于NS-3的PLC多频通信协议仿真平台设计与实现
RSSP-I、RSSP-Ⅱ及SAHARA三种安全通信协议实现技术简介