加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 综合聚焦 > 酷站推荐 > 酷站 > 正文

基于中间件技术的多层分布式系统的研究

发布时间:2017-02-21 15:23:38 所属栏目:酷站 来源:ITPUB论坛
导读:副标题#e# 【 技术文章】 1 引言 分布式系统的信息处理分布在许多计算机上而不是局限在单一机器上。目前一般类型的分布式系统体系结构可以分为两种。一种是客户机 / 服务器( C/S )体系结构,它由客户端提供用户界面、运行逻辑处理应用,而服务器接受客户

    CORBA 的底层结构是基于面向对象模型的,由 OMG 接口描述语言( OMG Interface Definition Language, OMG IDL )、对象请求代理( Object Request Broker, ORB )和 IIOP 标准协议( Internet Inter-ORB Protocol )3个关键模块组成。

    使用接口描述语言编写的对象接口,使得与语言无关的独立性成为可能。 IDL 使得所有 CORBA 对象以一种方式被描述,仅仅需要一个由语言( C/C++ 、 CORBA 或 Java )到 IDL 的“桥梁”。 CORBA 对象的互通要以对象请求代理为中介,这种互通信可以在多种流行通信协议之上实现。在 TCP/IP 上,来自于不同开发商的 ORB 用 IIOP 标准协议进行通讯。

    为了保持 CORBA 的商业中立性和语言中立性,必须有一个中介,存在于像 C++ CORBA 服务器代码和 Java CORBA 客户机这样的实体中间,这就是 IDL 。一个底层对象的若干相关方法和属性被 IDL 集入一个单一接口。一旦 IDL 接口定义完成,它可以以 Sub 码或框架代码的形势编译成所选用的语言。在所有的 ORB 中都有 IDL 编译器。 IDL 不同于其它的面向对象程序设计语言,我们不能用它指定所定义的类或方法的具体实现。 IDL 是一种描述性语言而不是编程语言,用它定义底层对象接口,使得接口定义与对象实现分开。 IDL 编译器编译 IDL 代码,生成相应语言的头文件及客户代理和服务器代理对象。

    CORBA 技术规范利用了当今软件技术发展的最新成果,在基于网络的分布式应用环境下实现应用软件的集成,使得面向对象的软件在分布、异构环境下实现重用、可移植和互操作。其特点如下: ① 在 CORBA 规范中引入了代理( Broker )的概念,一个代理至少可以完成对客户方提出的抽象服务请求的映射;自动发现和寻找服务器;自动设定路由,实现到服务器方的执行。 ② 实现客户与服务对象的完全分开,客户不需要了解服务对象的实现过程以及具体位置。 ③ 应用程序间的统一接口。 CORBA 提供软总线机制,这是系统定义的一组接口规范,使得在任何环境下,采用任何语言开发的软件只要符合接口规范的定义,均能集成到 CORBA 系统中。 ④ CORBA 采用面向对象的软件实现方法开发应用系统,实现对象内部细节的完整封装,保留对象方法的对外接口定义。 ⑤ 分层的设计原则和实现方式。 CORBA 规范只是针对 OMA 体系结构中的 ORB 制定的工业标准,而面向对象定义则可以在 OMA 的应用对象或应用开发环境中逐步分层定义和实现。

    5 COM/DCOM 技术规范

    COM ( Component Object Model ,组件对象模型)是 Microsoft 软件组件标准,是构造二进制兼容软件组件的规范。 COM 的体系结构包括统一数据传输、持久存储和智能命名、 COM 核心等。其中 COM 核心包括服务控制管理、接口代理、接口基和 COM 库。 COM 核心定义了 COM 对象与使用者如何通过二进制标准接口进行交换的规格说明。持久存储通过 Istorage 和 Istream 接口提供一个“文件系统”。智能命名通过对象实现接口,使用户可以在以后重新连接一个指定的对象实例,并且使对象实例仍保持原来的状态,另外还提供保存它们名字和其它持久信息的机制。 COM 库提供对所有客户及组件都非常有用的组件管理服务。

    DCOM 是 COM 的分布式扩展, Microsoft 把 DCOM 作为开发 Internet 和组件的基础。当客户和组件位于不同机器时, DCOM 用 TCP/IP 协议等取代 COM 中的本地进程间通信 LRPC ,从而对位于 Internet 不同机器上的组件对象之间的相互通讯提供了透明的支持。

    COM/DCOM 技术具有以下特点: ① 语言无关性。 COM 规范的定义不依赖于特定语言,它采用的是一种二进制代码级的标准,而不是源代码级的标准。 ② 可重用性。 COM 重用性是建立在组件对象的行为方式上的,它指示了 COM 对象如何重用已有的 COM 对象功能。有两种途径:包容和聚合可实现 COM 重用性。 ③ 位置透明性。组件从一台计算机转移到另一台计算机仅涉及到重新配置的问题,不涉及到一个大的开发项目。

    6 结论

    中间件的目标就是掩盖底层的异构性,方便编程。因此理想的中间件应该提供对多种程序设计语言的支持,有良好的跨平台能力,同时还具有网络透明性、位置透明性和访问透明性等特点。

    支持跨平台能力是 CORBA 的一大特色。基于 CORBA 开发的应用,完全避免了底层平台的不一致所带来的问题,它支持 Unix 、 OS/2 等众多平台。 EJB 是依赖于 Java 语言的技术,由于 Java 的平台无关性,使得 EJB 可以运行在不同的开发平台上。 COM/DCOM 仅实现了 32 位 Windows 操作系统平台,这使得跨平台支持带来了困难。

    在语言支持方面, CORBA 一开始就设计了 IDL 转换标准语言,所以对于大多数面向对象的语言 CORBA 都支持。 COM/DCOM 也具有语言无关性,只有 EJB 是基于 Java 语言的,但由于 Java 的广泛使用, EJB 技术也得到越来越多开发者的喜爱。

    总之, 3 种中间件技术都有其优势, Java 由于平台无关性的优势显著,成为理想的 Internet 技术;而 Windows 平台的广泛使用也使 COM/DCOM 具有深厚的基础; OMG 组织在 10 几年来一直在为自己的组件软件建立标准,而且已被很多组织和公司采用。对于异构环境下的企业应用开发, CORBA 和 EJB 有着明显的优势,并且 CORBA 和 EJB 所依赖 Java 技术可以很好的互补。 CORBA 处理网络透明性, EJB 处理实现透明性。由此看来, CORBA 和 EJB 技术紧密结合是今后多层分布式系统发展的一大趋势。

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读