企业多层分布式应用架构   
  2000-07-19·   anony·yesky   
    
    
    
          在信息产业高速发展的今天,企业间的竞争将更加激烈。随着规模的不断扩大和业务的不断更新,企业迫切需求完整的分布式解决方案,用于管理复杂的异构环境,实现不同硬件设备、软件系统、网络环境及数据库系统之间的完整集成。   
    
  背景介绍   
    
          纵观人类计算机的发展历史,每隔十年至十五年,信息产业就会发生周期性的变革,1950年至1970年期间,企业主要采用大型主机-终端的体系结构,企业应用系统则采用单一、集中的方式为用户提供资源共享服务。80年代初期,开放系统与关系型数据库管理系统被企业大量采用,有别于集中式系统,应用程序逻辑分散在主从两端。随着Windows的普及,90年代则是图形化的应用时代,Client/Server体系结构也被广泛采用。90年代后期,信息产业出现了分布式对象技术,应用程序可以分布在不同的系统平台上,通过分布式技术实现异构平台间对象的相互通信。将企业已有系统集成于分布式系统,可以极大地提高企业应用系统的扩展性。90年代末出现的多层分布式应用为企业进一步简化应用系统的开发指明了方向。   
    
          在传统的Client/Server结构中,应用程序逻辑通常分布在客户端和服务器两端,客户端发出数据资源访问请求,服务器端将结果返回客户端。Client/Server结构的缺陷是,当客户端数目激增时,服务器的性能将会因为无法进行负载平衡而大大下降。而一旦应用的需求发生变化,客户端和服务器端的应用程序则都需要修改,这样给应用的维护和升级带来了极大的不便,而且大量数据的传输也增加了网络的负载。为了解决Client/Server存在的问题,企业只有向多层分布式应用转变。企业应用的多层架构如图1所示。   
    
          在多层分布式应用中,客户端和服务器之间可以加入一层或多层应用服务程序,这种程序称为“应用服务器”(Application   Server)。开发人员可以将企业应用的商业逻辑放在中间层服务器上,而不是客户端,从而将应用的业务逻辑与用户界面隔离开,在保证客户端功能的前提下,为用户提供一个瘦的(thin)界面。这意味着如果需要修改应用程序代码,则可以只在一处(中间层服务器上)修改,而不用修改成千上万的客户端应用程序。   从而使开发人员可以专注于应用系统核心业务逻辑的分析、设计和开发,简化了企业系统的开发、更新和升级工作,极大增强了企业应用的伸缩性和灵活性。   
    
          当企业需要建立基于Web的商业应用系统时,多层分布式体系结构同样提供了强大优势,为基于Web的商业应用提供了“瘦客户”的体系结构,使基于浏览器的客户可以与Intranet资源进行有效交互,并且不需要在客户端进行复杂的应用配置工作。多层分布式解决方案在异构平台间架起了桥梁,可以使基于Web的商业应用与企业已有系统集成在一起。   
    
          目前,在我国的企业中,大量采用的还是Client/Server体系结构,而在西方发达国家,企业由传统的应用系统向多层分布式应用系统的转变已经成为业界主流。相信在我国,多层分布式系统将得到更为广泛的应用。   
    
  多层分布式应用带来的挑战   
    
          尽管多层分布式体系结构为企业提供了极大优势,但比起传统的Client/Server方式,开发多层分布式应用具有更大的难度,给开发人员带来了新的技术挑战。主要包括了以下三个方面:   
    
          1.分布式对象标准的多样化   
    
          企业要构建多层分布式系统,必须遵循分布式的工业标准,基于什么样的标准直接影响到企业应用系统的开放性和可扩展性。目前分布式对象的标准主要有三种:Microsoft   的DCOM、Sun   Microsystems的Enterprise   JavaBeans/RMI以及OMG(Object   Management   Group)组织的CORBA(Common   Object   Request   Broker   Architecture)。DCOM是基于Windows环境的分布式对象标准,因此支持的平台种类有限。RMI与Enterprise   JavaBean是以Java语言为主体的分布式对象架构,适合大型企业的跨平台需求,但现实的应用系统环境一般是由多种不同的程序语言建立起来的,只依赖一种程序语言构建的企业应用是很少见的。CORBA是由800多个大型软、硬件公司参与的OMG组织所制定的分布式对象标准,获得IBM、Sun   Microsystems、Oracle、Sybase、Novell、Netscape等大型公司的支持,CORBA标准实现了不同平台之间对象的通信及互操作,软件供应商只要遵循应用对象与ORB间通信的IDL(Interface   Definition   Language),便能够以对象的形式提供服务或获得服务,ORB使开发人员完全不需要考虑异构平台、不同的通信协议或不同程序语言造成的差异,而专注于应用逻辑的开发。可见,CORBA提供了开放、灵活的分布式标准,适于企业构建多层分布式应用系统。   
    
          2.多层分布式应用的开发是很复杂的   
    
          如果用传统方式开发多层分布式应用,则需要开发人员具有较深的计算机系统级知识,需要掌握诸如并发性、安全性、可伸缩性及事务处理等各个方面的知识。而且需要实现对系统资源访问的有效管理,如对线程、内存、数据库连接、网络连接的管理。而这些复杂工作极大地耗费了开发人员的精力,限制了开发工作的进展。而企业应用系统的开发更多地要求开发人员专注于商业逻辑方面的开发,而不是在系统级开发上浪费更多时间。   
    
          3.分布式应用的分发、管理也是一个挑战   
    
          大多数的分布式应用是由成百上千的组件组成的,而在分发时,每一个组件都有属性需要进行配置。通常,对组件属性的配置方式依赖于组件所在的平台。   因此,应用被分发后,如何管理分散的组件将是一个挑战。管理者需要确保应用的组件能够正确运行、可以位于企业网内的任何机器上,并能及时发现处理错误(包括系统错误、网络中断、应用错误等情况)。   
    
          传统意义上的网络系统管理(比如:SNMP)只能通过分析主机的状态,获得应用程序运行的情况,但对于分布式应用系统来说,一个应用并非运行于某一台主机,因此,管理者需要管理整个网络的状态,这就需要有恰当工具的支持。   
    
  多层分布式应用的需求   
    
          开发企业多层分布式应用,通常有以下方面的需求:   
    
          1.易于开发   
    
          虽然多层分布式体系结构要求有较深的计算机系统级知识作为基础(比如:数据库、事务处理、网络安全、CORBA技术等),但对于IT开发人员来说,要求在不用深入了解系统底层复杂技术的情况下,能够在一个友好的可视化集成开发环境(IDE)中,快速、容易地开发出功能强大的多层分布式应用系统。   
    
          2.简化分发、管理工作   
    
          开发人员要求能够在一个集成开发环境中测试、修改分布式应用程序,以提高应用的性能,并可以实现在同一环境中对应用的分发、管理。由于许多应用包括了成千上万分布于企业各处的组件,因此,需要一个集中化的管理工具,用于管理、控制分布式应用,并实现错误检测、更正的功能。   
    
          3.企业应用的鲁棒性要求   
    
          一个完善的企业分布式多层应用,应该满足事务处理、安全管理、容错、负载平衡、可伸缩性、高性能方面的要求。   
    
          4.具有开放的、基于工业标准的体系结构   
    
          企业需要的是开放的、基于工业标准的解决方案,可以实现与其他符合标准的系统进行交互。   
    
          5.可以实现与各种数据库及已有系统的集成   
    
          企业分布式应用必须能够访问企业的数据资源,而企业数据通常存储在当前流行的大型数据库上(如:Oracle、Sybase等),或通过TP   Monitor(如:IBM   CICS、BEA   Tuxedo)访问,因此要求企业分布式系统能够与数据库及已有系统集成在一起。   
    
          6.支持不同平台环境   
    
          企业多层分布式应用需要支持不同的平台环境,服务器一端应该支持Windows   NT或   UNIX平台,而且不同平台的客户都可以访问服务器上的应用,包括:HTML、Java   applets   、Java   应用、Dynamic   HTML、C++应用等。   
    
  企业应用服务器   
    
          基于上述原因,当企业向多层分布式应用转变时,需要应用服务器(Application   Server)的支持,从而可以将不同的应用技术集成在一起,使多层分布式应用的开发、分发、管理变得更加容易。现在已经有很多企业使用了应用服务器技术,也极大地增强了企业应用的性能。但在我国处于应用中的应用服务器技术,还不能完全满足企业建立多层分布式应用的需求,这些应用服务器主要分为以下两类:   
    
          1.基于Web的应用服务器   
    
          基于Web的应用服务器一般提供了基于Web的Interner应用的开发环境,适于建立基于Web的Client/Server应用系统。在这种体系下,Web应用服务器通常运行在Web   Server上,用来处理客户请求。通常用ODBC和JDBC连接数据库。这种类型的应用服务器一般易于使用,并且支持基于EJB(Enterprise   JavaBeans)的服务器应用程序开发。但这种应用服务器存在的缺陷有:不支持事务处理、安全性差、对已有交易系统支持有限、性能较低。基于Web的应用服务器体系结构如图2所示。   
    
  2.基于中间件的应用服务器   
    
          基于中间件的应用服务器通过与已有系统(如:TP   Monitors)进行集成,可以为企业提供更强大的功能,包括:事务处理、安全管理、容错、负载平衡等,但多数解决方案都是基于Client/Server体系结构的,或仅限于三层体系结构,不适于建立分布式的Web应用,而且没有一个有效的开发管理环境。基于中间件应用服务器体系结构如图3所示。

企业多层分布式应用架构相关推荐

  1. 去中心化云存储技术 | CESS 的多层网络架构详解

    区块链以其特有的分布式算法和技术底层,让链上数据也随着区块链的不同实现了分布式存储,CESS(Cumulus Encrypted Storage System)去中心化云储存网络基础设施,让我们看到了 ...

  2. 【云驻共创】云原生应用架构之企业核心业务未来架构演进路线及华为云方案

    文章目录 前言 一.企业核心业务架构演进 1.企业核心业务应用架构和集成架构发展历程 1.1 企业核心业务应用架构发展历程 1.1.1 单体架构 1.1.1.1 特点 1.1.1.2 优点 1.1.1 ...

  3. 从分布式应用架构看 SOA、微服务和云原生

    从十余年前的各种分布式系统研发到现在的容器云,从支撑原有业务到孵化各个新业务,企业的发展离不开统一的.与时俱进的技术架构.本篇文章从企业分布式应用架构层面介绍了云原生计算架构带来的变化,希望能够帮助更 ...

  4. 基于阿里云搭建的适合初创企业的轻量级架构--架构总结

    ----基于阿里云搭建的适合初创企业的轻量级架构 前言 在项目的初期往往存在很多变数,业务逻辑时刻在变,而且还要保证快速及时,所以,一个灵活多变.快速部署.持续集成并可以适应多种情况的架构便显得尤为重 ...

  5. 如何正确使用AD构造企业的组织架构

    AD(活动目录)有一个非常基础,非常重要的功能,就是形成企业的组织架构.由于AD里面的数据是基础数据,所以全球所有主流应用都会使用AD里面的组织架构数据. 最常见的就是Outlook,当你打开在Out ...

  6. 分布式应用架构中的数据传输对象(DTO)

    分布式应用架构中的数据传输对象(DTO) Written by: Rickie Lee Dec. 1, 2004 在分布式架构中,相关层在物理部署上实现分离,通过网络或跨进程调用远程对象或服务.在这种 ...

  7. 如何基于阿里云搭建适合初创企业的轻量级架构?

    ----基于阿里云搭建的适合初创企业的轻量级架构 前言 在项目的初期往往存在很多变数,业务逻辑时刻在变,而且还要保证快速及时,所以,一个灵活多变.快速部署.持续集成并可以适应多种情况的架构便显得尤为重 ...

  8. 基于阿里云数加MaxCompute的企业大数据仓库架构建设思路

    摘要: 数加大数据直播系列课程主要以基于阿里云数加MaxCompute的企业大数据仓库架构建设思路为主题分享阿里巴巴的大数据是怎么演变以及怎样利用大数据技术构建企业级大数据平台. 本次分享嘉宾是来自阿 ...

  9. Flume在企业大数据仓库架构中位置及功能

    Flume在企业大数据仓库架构中位置及功能 hadoop 数据仓库 flume 数据仓库架构 1.如下图所示,外部数据中,关系型数据库导入到HDFS用sqoop,由Nginx产生的文件实时监控用Flu ...

最新文章

  1. 什么是人工神经网络?
  2. 常用的 分布式事务 都有哪些?我该用哪个?
  3. final关键字_Dart核心语言基础const关键字与final关键字的区别
  4. 【Linux】【通信】1.ping不通
  5. 中国移动MM7 API用户手册(七)
  6. 洛谷P1725琪露诺【单调队列+dp】
  7. jvm面试2 jvm如何加载java代码? JVM知识重点:内存模型和GC
  8. mysql数据库创建表时通过设置什么属性可以设置字段编号自动增加_Mysql数据库创建表样例和解释...
  9. 深度学习将灰度图着色_使用DeOldify着色和还原灰度图像和视频
  10. 扫描枪无限连服务器,无线扫描枪连接电脑的3个步骤
  11. html表白网页 音乐,html表白网页源码_表白篇_网页播放无声
  12. 关于fixed元素的【子父div】宽度问题
  13. [翻译]Exploiting CVE-2015-0057 ——Part 1
  14. DOM初探(16)——查看元素的集合尺寸
  15. Android 友盟统计集成
  16. 设计模式是不是一件脱裤子放屁的事
  17. HPC 网络技术 — Overview
  18. mybatis删除mysql提交事务,MYsql单独使用mybatis事务处理的无法回滚问题
  19. 漳州G324国道货车侧翻 2000多件酸奶遭人疯抢
  20. K线形态识别_黑三兵

热门文章

  1. SQL command not properly ended
  2. 一文读懂BP算法,BP算法通俗解析
  3. java数据类型 两大类_Java公开课|将Java数据类型分为这两大类,就能涵盖所有类型...
  4. 支持向量机(SVM)学习笔记
  5. [gdc18] farcry5地形技术
  6. 名帖243 唐寅 行书《题跋达摩六代祖师图》
  7. “玲珑杯”ACM比赛 Round #21 【线段树标记】
  8. 用渲染农场【渲染101】渲染的地产动画效果如何
  9. 【第44天】Servlet初学---编写最基本的Servlet工程的必要步骤
  10. 判断季节,是春夏秋冬哪一个季节