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

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

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

【 技术文章】

    1 引言

    分布式系统的信息处理分布在许多计算机上而不是局限在单一机器上。目前一般类型的分布式系统体系结构可以分为两种。一种是客户机 / 服务器( C/S )体系结构,它由客户端提供用户界面、运行逻辑处理应用,而服务器接受客户端 SQL 语句并对数据库进行查询,然后返回查询结果。 C/S 结构曾给人们带来许多便利,但随着业务处理对系统提出更高要求以后,它也逐渐暴露出其客户端逐渐庞大和服务器负担过重的缺点,如灵活可扩展的工作流定制、保证数据在网络传输的稳定性和准确性、应付峰值数据的高负荷处理和平衡负载等诸如此类的要求, C/S 结构就难以满足。

    2 多层分布式体系结构

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


    为了解决两层 C/S 分布式体系结构存在的不足,提出了三层或多层分布式对象体系结构,在这种情况下,业务逻辑从客户端分离出来,移动到中间层。于是,在服务器和客户机之间增加了业务逻辑层或其它应用服务层。系统就成为了具有客户端的表示层、中间的业务逻辑层和数据库服务器的三层或多层体系结构,如图 1 所示:多层分布式系统体系结构的一般模型。多层体系结构将客户和资源分开,降低了服务器的负载,避免了服务器的性能缺陷对整个系统性能的影响,在多个服务器上分布应用程序处理的多层可变结构比二层的体系结构的伸缩性和扩展性更强。

    在多层分布式系统中,不同的组件可能用不同的语言来实现,且这些组件可能运行在不同类型处理器上。数据模型、信息表示法以及通信协议可能都不一样。因此,多层分布式系统就需要某种软件来管理这些不同部分,确保它们能通信和交换数据。中间件就是这样一种软件,它位于系统的不同分布式组件之间。

    中间件能够使应用系统相对独立于计算机软硬件平台,为大型分布式应用搭起一个标准的平台,把企业分散的系统技术组合在一起,从而实现企业应用软件系统的集成。中间件具有标准的程序接口和协议,使不同硬件和操作系统平台上分布式应用的数据共享和互操作。中间件在操作系统、网络和数据库之上,应用软件之下,总的作用是为处于自己上层的应用软件提供运行和开发环境,帮助用户灵活、高效的开发和集成复杂的应用软件。

    随着分布式技术和面向对象技术的结合,产生了大量基于分布式对象中间件的模型。目前主要的分布式系统中间件技术标准有: Microsoft 的 COM/DCOM 技术、 SUN 的 EJB 技术和 OMG (对象管理集团)的 CORBA (公共对象请求代理体系结构)技术为代表的三种基于中间件技术的分布式模型框架。

    3 EJB 技术规范

    EJB ( Enterprise Java Beans )是 J2EE 的核心技术之一,它是建立基于 Java 的服务器端组件的标准。 EJB 是以部件为基础框架,其中每个部件都是分布式对象,可以扩展,也可以适配在不同应用中使用,大大方便了企业应用开发。 EJB 不局限于一种特定的操作系统,也不局限于任何一种特别的机构、服务器解决方案、中间件或者通信协议,是一种可重用的具有高度可移植性的组件。 EJB 组件模型包含了 EJB 服务器、容器、 Home 接口、 Remote 接口等。

    EJB 服务器是管理 EJB 容器的高端进程或应用程序,并提供对系统服务的访问。 EJB 服务器实际是各种支持 EJB 安装的服务的集合,这些服务包括分布式事务管理、分布式对象管理和这些对象的分布式调用以及低层次的系统服务。

    EJB 容器是管理一个或多个 EJB 类和实例的抽象。它通过规范定义的接口使 EJB 类访问所需的服务。 EJB 容器管理 Enterprise Bean 对象的生命周期,协调分布式事务和实现对象安全性。

    远程接口( Remote Interface )列出了 EJB 类中的商业方法。 EJBObject 实现远程接口,并且客户通过它访问 EJB 实例的方法。 EJB 类开发者定义远程接口,容器开发商提供产生相应的 EJBObject 的方法。客户端不能得到 EJB 实例的引用,只能得到它的 EJBObject 实例的引用。当客户端调用一个方法, EJBObject 接收请求,把它传给 EJB 实例,同时提供进程中必要的包装功能。客户端应用程序通过 Home 对象来定位、创建、删除 EJB 类的实例,通过 EJBObject 来调用实例中的商业方法。

    Home 接口列出了所定为、创建、删除 EJB 类实例的方法。 Home 对象是 Home 接口的实现。 EJB 类开发者必须定义 Home 接口。容器厂商应该提供从 Home 接口中产生 Home 对象的实现方法。

    EJB2.0 规范定义了三种不同的企业 Bean ,分别是会话 Bean 、实体 Bean 和消息驱动 Bean 。会话 Bean 主要负责模拟商业过程,实现商业逻辑,处理商业规则和工作流。会话 Bean 又分为两个子类,无状态会话 Bean 和有状态会话 Bean 。实体 Bean 表示持久数据,为商业数据建模。按持久性划分,实体 Bean 又可以分为自管理的持久性实体 Bean 和容器管理的持久性实体 Bean 。消息驱动 Bean 和会话 Bean 相似,也执行一些商务逻辑,其区别在于只能够通过给这些 Bean 发送消息来调用它们,且实现了异步处理机制。从分布式计算的角度看, EJB 即提供了分布式技术的基础,又提供了对象之间的通信手段。

    EJB 技术的特点: ① 可移植性。由于 EJB 规范颁布了一组明确的 EJB 容器和 EJB 组件之间的契约,这保证了 EJB 组件在不同 EJB 服务器上可移植性。 ② 平台独立性。 EJB 体系结构完全独立于任何特定的平台、协议和中间件等基础设施。一个平台上开发的应用程序不做修改就可以移植到另一平台,完全实现了“一次编写,处处运行”的目的。 ③ 简化了分布式对象的开发、部署和访问。 EJB 分布式对象的开发人员只要按照 Enterprise Java Bean 建立的契约和协议实现对象。这使整个开发和管理变得简单,大大降低系统建设成本、减小开发周期。

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

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

推荐文章
    热点阅读