




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
14员工综合网管系列培训:CORBA基础员工培训:CORBA基础CORBA(Common Object Request Broker Architecture,公共对象请求代理体系结构)是OMG(Object Management Group,对象管理集团)为了解决分布式处理环境中软件系统互联问题而定义的一种分布式处理体系结构。CORBA继承了面向对象的程序设计和分布式计算的特性,并支持客户机/服务器结构。在CORBA中,客户机和服务器是分离的,它们之间甚至无需知道对方的存在。一个客户机可以访问多个服务器,客户机和服务器之间也不存在一一对应的固定关系。CORBA提供了一种独立于程序设计语言的描述语言IDL(Interface Definition Language,接口定义语言)。IDL用来定义客户机方如何发起请求、服务器方如何定义与该请求对应的动作所需的信息。IDL使客户机和服务器双方无需局限于使用某钟特定的语言进行对象互连的程序设计。一. CORBA体系结构CORBA体系结构主要包括对象请求代理ORB、CORBA公共对象服务、CORBA公共设施和应用对象,如下图所示:ORB在CORBA规范中处于核心地位,它定义了CORBA对象总线,即定义了异构环境下对象透明地发送请求和接受响应的基本机制,是建立对象之间Client/Server关系的中间件。ORB拦截请求调用,并负责找到可以实现请求的对象、传送参数、调用响应的方法、返回结果等。Client对象并不知道同Server对象通讯、激活或存储Server对象的机制,也不必知道Server对象位于何处、它是用何种语言实现的、使用的是什么操作系统或其它不属于对象接口的系统成分。ORB屏蔽了对象的通信机制、位置、实现等,提供了异构分布式环境中应用之间的互操作性,同时也保证了多种对象系统之间的无缝连接。公共对象服务是一些IDL描述的系统级服务,可“插入”总线之上,用于扩充完善ORB功能。在电信网络管理中,主要使用CORBA的命名服务(Naming Service)、事件服务(Event Service)和生命周期服务(Life Cycle Service)三种服务。命名服务是ORB上对象定位的基本机制,它负责维护对象引用和逻辑名称间的关系。事件服务使得总线上的组件可以动态地注册或撤消事件处理,该服务通过事件通道对象收集组件间的分布式事件。生命周期服务提供在总线上创建、复制、移动和删除对象等操作。公共设施定义了可直接为业务对象所使用的水平和垂直应用框架。它是一些IDL定义的组件框架,提供可直接为业务对象使用的服务,规定业务对象有效协作所需的协定规则。包括用户界面、信息管理、系统管理和任务管理等水平公共设施和一些为诸如金融、制造、电信等特定“垂直”市场领域提供的IDL定义接口和框架,即垂直公共设施。 应用对象是一些业务对象和应用系统。二. IDL简介1. IDL的作用2. IDL的基本知识A. IDL是一种独立于具体编程语言的描述语言;其语法与JAVA有许多类似的地方;B. IDL语言是大小写敏感的一种语言;C. IDL允许多重继承;D. IDL语言的注释与C+完全相同,可以使用/和/*/两种方式;E. IDL中的module相当于Java中的package, 或者是C+中的namespace;interface相当于Java和C+中的class;F. IDL的基本数据类型有void, boolean, char, wchar, float, double, long, long long, unsigned long, unsigned long long, short, unsigned short, octet, string等;G. IDL可以使用const进行常数定义;也可以使用typedef进行类型的定义;同时也允许数据类型的前置申明;H. IDL的构造类型有enum,,struct, union,sequence,array和any;I. IDL支持异常类型的定义;J. Interface中属性的声明方式:readonly attribute attribute_type attributeName;方法的声明方式:oneway return_type methodName( param1_dir param1_type param1_name, param2_dir param2_type param2_name, .);oneway是一个可选项,表示该操作是非阻塞的,采用这种方式的操作不允许有返回值,同时所有的操作参数必须是in(输入),同时这个操作不允许产生任何异常。Param_dir表示入口参数的类型,主要有in(输入), inout(既做输入有做输出)和out(输出)三种类型。三. CORBA服务:命名服务与事件服务1. 命名服务 命名服务是ORB上对象定位的基本机制,它负责维护对象引用和逻辑名称间的关系。其使用方式与文件系统类似,其命名上下文(NamingContext)相当于文件系统中的子目录。在Q3中使用DN来进行管理对象的定位。A. 命名服务的层次关系及命名服务上下文B. 使用命名服务的大致过程C. 实际应用中对命名服务的改进 在使用CORBA命名服务时,对于下面的例子,如果给定Network1,Switch1序列,只能查找到Switch1这个NamingContext,相当于一个子目录,但在实际的应用中不仅需要访问这个上下文,还需要访问Switch1这个对象的属性和操作,例如在Q3中,通过DN不仅可以访问管理对象的属性,还可以根据该对象的DN和下一级对象的RDN来访问下一级对象。所以需要对命名服务进行变通和改进。2. 事件服务 事件服务使得总线上的组件可以动态地注册或撤消事件处理,该服务通过事件通道对象收集组件间的分布事件。CORBA事件服务有两种事件模型:A. push模型在这个模型中事件由事件提供者主动发送,类似于NE中发送告警后主动向Manager发送告警通知,当有事件发生后,事件提供者主动将事件发送给ProxyPushConsumer。 而事件接收者总是处于等待事件的状态,等待ProxyPushSupplier将事件发送给它,然后进行事件的处理。B. pull模型在这个模型中事件接收者主动从事件提供者查询事件,类似于Manager主动向NE采集告警数据。事件提供者总是处于等待状态,等待ProxyPullConsumer来主动查询事件,ProxyPullConsumer将获得的数据放置在一个事件队列中。当事件接收者主动向ProxyPullSupplier查询数据时,事件通道将事件队列中的数据返回给事件接收者。C. 事件服务的使用过程事件提供方:事件接收方:四. CORBA应用的开发过程1. 采用UML或其它OO设计方式定义系统需求,进行对象的抽象,确定系统的实现需要哪些对象类,各自的包含什么属性和操作;2. 根据抽象的结果编写IDL接口,并采用相应的IDL编译程序完成IDL到具体编程语言的翻译;3. 根据IDL翻译的结果,编写Server方的代码,即完成对象的实现部分;4. 根据IDL翻译的结果,编写Client方的代码,即完成对象方法的调用部分;5. 运行整个应用系统。对于ORB,从所有的图来看,好象ORB真是一条软件总线,实质上ORB只是CORBA工具提供的一些库文件,在连接时分别连接到Server和Client方的代码中。当然Client和Server方的代码首先要做的事情就是初始化ORB。五. CORBA应用的执行过程1. 不使用命名服务的情况A. Server方代码第一步:调用CORBA:ORB_init()初始化ORB;第二步:调用orb-BOA_init()初始化BOA;第三步:创建初始的对象;在后面的操作中,Client可以通过初始对象的操作来创建新的的对象,例如CORBA试验中的初始对象为Manager,通过Manager的CreateSubNetwork可以创建相应的子网对象,通过子网对象的CreateSDHNe方法可以创建相应的NE对象;第四步:调用boa-obj_is_ready( 初始对象 )表明该对象已经就绪,可以等待Client的方法调用,同时该对象向osagent(visiBroker中私有的对象查询服务的实现,相当于一种简化了的CORBA命名服务功能)和对象实现库进行登记,表示该对象已经就绪;对于以后创建的对象,如果允许Client进行远端操作,则必须都要调用这个操作;第五步:调用boa-impl_is_ready(),这样整个Server进入事件等待状态,等待Client请求,并相应该请求。B. Client方代码第一步:调用CORBA:ORB_init()初始化ORB;第二步:调用厂家私有的bind方法获取Server端初始对象的引用;第三步:调用Server端对象的方法进行各种操作,当然在操作过程中要注意捕获Server以及ORB抛出的异常。2. 使用命名服务的情况A. Server方代码第一步:调用CORBA:ORB_init()初始化ORB; 第二步:调用orb-BOA_init()初始化BOA;第三步:创建初始的对象;在后面的操作中,Client可以通过初始对象的操作来创建新的的对象,例如CORBA试验中的初始对象为Manager,通过Manager的CreateSubNetwork可以创建相应的子网对象,通过子网对象的CreateSDHNe方法可以创建相应的NE对象;第四步:调用boa-obj_is_ready( 初始对象 )表明该对象已经就绪,可以等待Client的方法调用,同时该对象向osagent(visiBroker中私有的对象查询服务的实现,相当于一种简化了的CORBA命名服务功能)和对象实现库进行登记,表示该对象已经就绪;对于以后创建的对象,如果允许Client进行远端操作,则必须都要调用这个操作; 第五步:调用CosNaming:NamingContext:_bind();获得最初始的CORBA命名上下文; 第六步:给初始对象分配一个逻辑名,并调用context-bind()将该逻辑名与初始对象进行关联;对于以后创建的对象,如果希望Client通过CORBA命名服务进行查找,则都必须执行这个步骤;第七步:调用boa-impl_is_ready(),这样整个Server进入事件等待状态,等待Client请求,并相应该请求。 B. Client方代码第一步:调用CORBA:ORB_init()初始化ORB;第二步:调用CosNaming:NamingContext:_bind();获得最初始的CORBA命名上下文;第三步:根据对象的逻辑名,调用context-resolve( )获得Server端对象的引用;第四步:调用Server端对象的方法进行各种操作,当然在操作过程中要注意捕获Server以及ORB抛出的异常。六. CORBA在传输网管中的应用CORBA具有平台无关性、程序设计语言无关性,特别适合于异构环境下的系统集成和网络管理,可以非常高效快速地开发TMN构件、集成现有的网络管理应用。CORBA的这些先进特性,非常适合于通讯网络管理系统的开发,也正是由于CORBA具有诸多优点,TINA(Telecommunications Information Networking Architecture)组织才将CORBA用作其DPE(分布式处理环境)的基石。 CORBA在电信管理系统中的典型应用CORBA在传输网管中的应用主要有两种方式1. 最理想的应用情况2. 采用JIDM规范翻译的互通方式(即采用CORBA-CMIP/SNMP网关的方式)A. 对Q3 AGENT的管理主要适合于厂家没有基于Q3的MANAGER、但有要对Q3 AGENT进行管理的情况,而且Manager采用的是CORBA技术。 Q3 Manager与Agent的关系 Q3 Manager的实现结构对于Q3 Manager的实现,首先需要使用GDMO/ASN.1到IDL的编译器,根据JIDM(Joint Inter-Domain Management Organization,Open Group与NMF成立的一个联合工作组,专门负责CORBA、TMN、SNMP之间的互操作)的规范翻译完成GDMO/ASN.1到IDL的转换,转换后的信息提供给Q3 Manager使用,从而保证Manager与Agent之间管理目标信息的一致性。CORBA与CMIP间的网关(完成JIDM的交互式翻译)是整个Q3 Manager实现的核心,它负责基于OSI的TMN Agent和基于CORBA的管理应用之间进行管理信息的交互。B. 对SNMP AGENT的管理 SNMP Manager的实现结构 SNMP Manager与Agent之间的协议操作流程同样,对于SNMP Manager的实现,首先需要使用SNMP MIB到IDL的编译器,完成MIB到IDL的转换,转换后的信息提供给SNMP Manager使用,从而保证Manager与Agent之间管理对象信息的一致性。CORBA与SNMP间的网关是整个SNMP Manager实现的核心,它负责基于SNMP的 Agent与基于CORBA的管理应用之间进行管理信息的交互。这种方式的缺点:A. CORBA-CMIP/SNMP网关工具比较专有,成本相对比较高;B. 这个系统的实现比较复杂;C. 需要对JIDM规范(静态和实时)非常清楚;这个规范文档我现在看到的就有500多页;D. 对象比较多,系统的效率不高。基本上是GDMO/ASN.1或MIB的原样翻译。E. 到现在为止还没有一个大型的厂商在其产品中进行实际的应用;F. 对开发人员的要求比较高(需要对JIDM、GDMO/ASN/MIB非常清楚);3. 直接采用IDL进行交互的方式 目前Lucent、Fujitsu,、Nortel,、Tellabs和Siemens采用的就是这种方式。Lucent、Fujitsu、Nortel和Tellabs公司于1998年9月2日在CHICAGO宣布共同开发标准的管理软件接口,从而使得电信运行商可以通过一个网管系统管理多厂商设备。这四家公司宣布在EML与NML之间采用CORBA作为其标准接口,并使用相同的接口定义规范。Siemens于99年1月也加入了这个组织。98年9月1417日,在Orlando举行的全美光通讯工程师大会上,四家公
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《2025企业合作合同范本 技术共享协议与协同研发保密合同(分公司专用)》
- 2025建筑外墙陶瓷挂板分包合同范本
- 黑龙江省哈尔滨市2024-2025学年高二下册7月期末考试数学试卷(附答案)
- 海南省定安县2024~2025学年 高二下册开学考试数学试卷附解析
- 广东省普宁市2024~2025学年 高一下册第二次调研考试数学试卷附解析
- 甘肃省天水市部分学校2025届高三第三次联考(三模)数学试卷附解析
- 2025届四川省绵阳市三台县中考二模数学试卷含答案
- 量子计算环境下隐私数据加密方法-洞察阐释
- 委托拍卖合同范本
- 社区社区资源整合管理基础知识点归纳
- 输变电工程安全文明施工设施标准化配置表
- li3000c中文操作手册
- 国开中国当代文学专题形考任务2-3-5-6答案
- 医疗安全(不良)事件汇总登记表(科室)
- 成都市双流县2022-2023学年四年级数学第二学期期末统考试题含答案
- 中药阴道灌洗技术
- 解读血气分析-课件
- 设备点检记录表
- 2023年副主任医师(副高)-耳鼻咽喉科学(副高)历年考试真题(易错与难点汇编)带答案
- 思想意识形态渗透-就在你我身边
- 铸造企业安全生产归档资料汇编(2022-2023版企业安全生产归档制度)
评论
0/150
提交评论