・学术论坛・ 分布式应用程序开发框架的研究 Study of distributed application development framework 童琨 (马鞍山钢铁股份有限公司自动化工程公司 安徽马鞍山 243000) [摘要】本文介绍分布式应用的相关概念、技术,对CORBA,ICE分布式中间件技术进行讨论, 这种开发框架的软件具有高度的 可扩展性与重用性、支持多编程语言开发和分布式部署的特点,非常适合系统实时性、稳定性、控制精度要求高的工业级应用中。 【关键词】分布式应用 CORBA ICE 接口定义语言 【中图分类号]TP31 1 [文献标识码】A 【文章编号ll007—9416(2010)04—0085—02 1引言 一Broker Architecture)。分布式应用环境都 采用C1ient/Server架构,CORBA的应用 提高了分布式应用软件的开发效率。ICE (Internet Communication Engine)是新一 如支持用户数据报协议、异步方法分派、 内建的安全性、自动的对象持久,以及接 口聚合。 个分布式系统是若干个独立的计算 机的集合,但是对该系统的用户来说,系 统就像一台计算机一样。因此分布式应用 2分布式应用程序的体系结构 分布式应用系统基于面向对象的中间 软件不需要具有整体结构,同时它可以基 于多种编程语言开发并运行在多种操作系 统平台上。OMG(Object Maiqagement 代的面向对象中间件平台,开发者只需付 出很少的努力,就能够用ICE构建出分布 式应用。ICE在概念上与CORBA类似,但 Group)对象管理组织在1992年提出利用对 象技术的开发一个用于分布式应用的开源 框架即CORBA(Common Obiect Request 在许多方面都有突破性的进展:它的对象 模型更简单、更强大;解决了过去困扰中 件,中间件是一种独立的系统软件或服务 程序,分布式应用软件借助这种软件在不 同的技术之间共享资源。中间件位于客户 机/服务器的操作系统之上,管理计算资 源和网络通讯。中间件具有标准的程序接 间件的低效问题;提供了许多新特性,比 工作的完成情况。 部分网络设备的运行状况。(测试工具为 SolarWinds 2001 Enhanced Ping)(图5) 【3】曾湘黔.防火墙与网络安全一入侵 这种管理方式让具体管理人员对于自 身管理系统的问题十分清楚,从而保证了 整个网络安全体系的动态性和有效性。 检测和VPNs.北京:清华大学出版社,2004 年. 2.7.4基本服务运行正常 通过对所有流经网络管理器的数据包 [4l W.RICHARD STEVENS.TCP/IP 2.7运行效果 经过对校园网络的一系列调整、改 造,珠海学院的校园网络运行得到了极大 的改善,我们从以下几个方面来评定: 2.7.1网络基本流量对比 进行监控,分析得到网络中各种协议的运 行情况及流量状态。该监控囊括了网络上 所有协议的定义,分作传统协议、P2P下 载、网络电视、即时通信、流媒体、网络 详解卷l:协议.机械工业出版社,2000年. I5】W..RICHARD STEVENS.TCP/IP 详解卷2:实现TCP/IP.机械工业出版 社,2000年. 【6】W.RICHARD STEVENS.TCP/IP 详解卷三:TCP事务协议.机械工业出版 社,2000年. 电话、网络游戏 股票交易、网络安全这 些监控模块,直接体现了网络上各种协议 珠海学院学生用INTERNET线路共计 有3条,2条200M电信带宽,l条1O0M网 通带宽。j三条线路分别连接在3台防火墙 上,分别为3.1,3.10,4.1。下列图为对 前2台防火墙的INTERNET接口进行的数 据取样(图3)。 如图4所示,每到高峰期时,200M带 的应用情况。 2.7.5服务器系统运行稳定 通过对主要服务器的系统状态监控, 了解CPU、内存、SWAP等的运行状态及 各服务进程的运行状态,确定服务器的是 否正常。 【7】张小斌,严望佳.黑客分析与防范技 术.北京:清华大学出版社,2003.82-91. [8]张仕斌,谭三等.网络安全技术.北 京:清华大学出版社,2004.87—121. 宽基本上已经全部占满。 2.7.2用户网络运行稳定 珠海学院网络运行时间为8:00~24: 3结语 OO,其余时间断网,下表即位珠海学院上 网用户的信息统计。如表所示,一天之中 校园网络作为校园信息系统的基础网 络平台,网络的安全、稳定运行是保证各 项业务平稳运行的基础保障,必须建立起 套可行的、有机的安全管理体系,根据 一[9】段钢.加密与解密(第三版).电子工 业出版社,2008. 【10]曹元大,薛静锋,祝烈煌,阎慧.入 侵检测技术.人民邮电出版社,2007. [11】应向荣.主动防御系统的重要性 [J].北京:中国计算机报,2003.7. 在中午与晚上分别为两个最高峰的运行 值,用户在线率高,网络带宽消耗也相应 提升。 2.7.3网络运行稳定 学校的实际特点进行有效的部署。从北京 理工大学珠海学院校园网络安全体系的建 立中,我们积累了一些基础,并在此基础 上,本文提出了在PDRR基础上,以安全 珠海学院网络分为办公网络(教学楼 部分)与学生网络(生活区部分),为了保 障系统的安全,这两个部分之间的网络作 了相应的策略控制,只能通过服务器进行 数据交换。每天,网管对两部分网络进行 监控各自的运行状态,以及时了解网络中 可能出现的问题。 策略为核心,以安全技术为支撑,以安全 管理作为落实手段,建立了校园网络安全 管理体系。 [参考文献】 [1]康弗瑞.网络安全体系结构.北京: 人民邮电出版社,2005年.15-21. [2]戴英侠.计算机网络安全.北京:清 华大学出版社,2004年.89—131. 下图分别描述了位于教学区与生活区 数字技术与应用 85 ・学术论坛・ 口和协议,可以实现不同硬件和操作系统 客户对象Stub是IDL定义的方法接13,经 IDL编译器编译后,在编写客户对象时,高 级编程语言可应用的用于识别服务对象方 法的代码。客户对象Stub提供服务对象接 口的简要说明。服务对象的Skeleton是IDL 作。这就是一个抽象的过程。直接去定义 接口,然后剩下的工作换。 平台上的数据共享和应用互操作。 3基于CORBA的系统架构(图1) 就交给Ice Ran Time来完成各种语言之间对象的相互转 4.3客户机与服务器的结构 客户与服务器都由这样一些代码混合 而成:应用代码、库代码、根据Slice定义 生成的代码。整个结构有两个方面:客户 端/服务器,它们共同使用的就是ICE核 3.1对象请求代理(ORB) CORBA是一种架构,它使用远程过程 调用(RPC)的模式提供平台独立的进程 定义的方法接口,经IDL编译器编译后,形 问通信。一个远程过程调用看起来就像本 成的说明服务对象提供方法的框架。对于 地函数调用一个过程。对象请求代理 服务对象接口中的每个方法,必须在服务 (ORB)是CORBA规范的基础,其主要功 对象程序中实现。 能是定位服务对象,分析客户对象的请 求,获取服务对象的功能接口,在客户与 服务对象间建立通信连接。 3.2接口定义语言(1DL) 心(Ice Run Time),上图中关键的部分就 是ICE核心,也就是Ice Run Time。ICE 对于ICE的对象模型,S1ice(Specification 核心为远地通信提供了客户端和服务器端 Language for ICE)就是用来描述ice的对 运行时支持。其中的大量代码所涉及的是 4基于ICE的系统架构(图2) 4.1 SIice(ICE规范语言) IDL是CORBA的另外一个重要组成部 象模型有哪些接口,有哪些操作,以及要 网络通信、线程、字节序,以及其他许多 分,用于说明CORBA服务对象完成的功 交换的数据类型。可以把Slice看成是一个 与网络有关的问题。客户端=ICE核心+代 能,但不能够利用IDL实现该功能。IDL是 合约,各种平台,各种语言映射,相互调 理代码+ICE API。服务器=ICE核心+骨 独立于其他编程语言的功能描述性语言, 用的公共接口,共同遵守的规则。Slice允 架(skeleton)代码+对象适配器+ICE 这从另外一个侧面说明了C0RBA的语言 许以一种独立于特定编程语言的方式定义 API,Proxy和Skeleton都是由Slice的定义 环境独立性。利用IDL,完成CORBA服务 客户一服务器的合约。Slice定义由一个编 生成的。对象适配器会把来自客户的请求 对象方法的说明,然后利用语言映射工 译器编译成特定编程语言的API,也就是 映射到编程语言对象上的特定方法。 具,将用IDL定义的CORBA对象方法说明 说,与所定义的接口和类型对应的那一部 4.4 ICE的实际应用 翻译成高级编程语言(C++或Java)的接口 分API,会由生成的代码组成。 Client连接Server时一定要注意设置超 说明,最后根据接口说明,利用C++或 4.2语言映射 时时间,不然很容易导致网络阻塞;在涉 Java编写对象实现程序。 目前ICE提供了c++,java,c#,vb, 及到一些传递通信所需要的参数,如端 3.3 Stub和Skeleton python,php的语言映射。因为各种语言 口、IP、协议等,这些参数应该从配置文 客户对象的Stub和服务对象的Skel- 的对象模型是不一样的,必须把这些不同 件里读取,或者通过参数传递,不要进行 eton是IDL与对象实现语言之间的桥梁。 的对象模型映射到同一个模型上,进行操 硬编码;在利用多线程进行异步程序开发 时,要注意给共享资源加锁,以免导致数 IDL 据被破坏;我们在编写ICE的程序时,可以 用户定义 将客户端程序封装成一个类,至少包括三 个方法,初始化通信器,调用相关操作,销 cl・aIsDsL・ 口I1E LJ帅L pp I;I 。*。ID肼LS2 D ̄ L】}IDLSCpp 自动生成 毁通信器。这样当项目组成员需要与服务 *IDLC.ON I l ・IDLSobj 器进行通信时,只需要实例化此类即可, 从而提高效率并更加标准化;对于日志及 client stUb seryer skeletc n 编程调试信息可以继承并改写ICE::Log— C++ ger类,从而定制记录跟踪、警告或错误消 C 1ant÷.cpP ClaSS hD p. M } yAppcpp 用户提供 息。 .cpp {.5结语 client.obi +.obj MyAPP.obj 综上比较,ICE与CORBA相比是一 客户端士线 对象实现.(Servant) 服务器士 个简单的平台,使用它开发工作量更小, 线 代码更少,复杂性也更小。它所遵守的将 r CORBAn 如:TAO,0rbi 接口与实现分离、位置透明(服务的使用 CORBA.dl1 名称由供麻商定义 ARTVisiBroker 和服务的位置无关)、类型化的接口、接口 支持多继承等原则,使它完全可以用来开 图1 CORBA体系架构 发工业级的分布式应用。 【参考文献] [1】Henning M,SpruieU M,Ice分布式 程序设计3.3.1b,2009-07. [2】Henning M,新一代面向对象中间件 【J].程序员,2004(9). [3】Henning M,Steve Vinoski,基于 C++C0RBA高级编程,译者徐金梧,徐 科,吕志民等.清华大学出版社,2000—07. [作者简介】 童琨I男;高级工程师;l976午3月出生 在马鞍山钢铁股份有限公司自动化工程公 口IceAPI 司从事计算机软件开发。 口 }城的 ; 图2 ICE体系架构 86 数字技术与应用