在信息产业高速发展的今天,企业间的竞争将更加激烈。随着规模的不断扩大和业务的不断更新,企业迫切需求完整的分布式解决方案,用于管理复杂的异构环境,实现不同硬件设备、软件系统、网络环境及数据库系统之间的完整集成。
背景介绍
纵观人类计算机的发展历史,每隔十年至十五年,信息产业就会发生周期性的变革,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所示。
分享到:
相关推荐
《分布式数据库系统及其应用(第二版)》由邵佩英编著,是中国科大出版社出版的专业教材,旨在深入探讨分布式数据库系统的理论基础和实际应用。 分布式数据库系统的核心思想是将数据分布在多个物理位置上的独立...
特别是在开发大型分布式应用系统时,这些技术展现了其强大的生命力与灵活性。本文将对目前最具代表性的三种分布式应用开发技术进行详细介绍:CORBA、DCOM以及RMI。 #### 1. CORBA (Common Object Request Broker ...
分布式应用系统更新及实现方式,涉及了一系列与分布式系统更新机制相关的关键知识点。在理解和掌握这些知识的过程中,首先需要对分布式系统以及版本控制等基础概念有所了解。 分布式系统是指一组独立的计算机,它们...
分布式数据库系统原理与应用 分布式数据库系统是一种将数据分布在多个地理位置独立的计算机节点上,通过网络进行通信和协调,使得用户能够透明地访问整个数据库系统的数据。这种系统设计旨在提高数据的可用性、容错...
《Delphi5.x分布式多层应用系统篇》是由王维编写的教程,旨在深入探讨如何利用Delphi 5.x开发高效、稳定且可扩展的分布式多层应用系统。本教程结合理论与实践,为读者提供了丰富的开发经验和实用技巧。 Delphi 5是...
3. 固有分布式应用:如事务处理、Java小程序等,这些应用重视吞吐量而非执行时间。 4. 协作工作(CSCW)和群件:支持用户间的合作,如分布式会议和远程教育。 为了实现不同平台和环境的互操作性,分布式计算环境...
整本书的内容编排由浅入深,由理论到实践,再深入到应用层面,非常适合对分布式系统有兴趣的读者进行系统性学习。尤其对于初学者而言,本书不仅可以提供扎实的基础知识,还能为他们提供一条清晰的学习路径,逐步深入...
本文将功率注水算法应用到分布式MIMO系统中,充分利用分布式无线通信系统的高覆盖性,通过调整发射天线的发射功率,使系统的容量得到显著改善。 分布式MIMO系统的优点在于它可以提供高覆盖性和高容量的无线通信服务...
分布式文件系统应用场景的探索主要涉及到数据中心、vSphere HA集群、PC服务器内置硬盘资源利用以及分布式文件系统软件的使用和实验等方面的知识点。 首先,数据中心的管理与技术应用是IT领域的重要分支,其主要目标...
分布式系统及应用是计算机科学中的一个关键领域,尤其在当今大数据和云计算的时代背景下,其重要性日益凸显。东北大学的研究生课程"分布式系统及应用"显然涵盖了这一领域的核心概念和实践技能。以下是对该课程相关...
通过学习东北大学的分布式操作系统课件,学生不仅能够掌握理论知识,还能了解到实际应用中的最佳实践,为未来在分布式系统领域的研究和开发打下坚实基础。这份课件全面且具有实践价值,对于想要深入理解分布式操作...
10. **微服务架构**:近年来,微服务成为分布式应用设计的流行模式,每个服务独立部署、扩展和更新,通过API接口进行通信,增强了系统的灵活性和可扩展性。 “qcode.org”这个文件名可能是某个分布式项目或者代码库...
在当今信息技术高速发展的背景下,分布式文件系统作为处理大规模数据存储和检索的重要技术,已经成为...在理解了分布式文件系统的技术原理和设计策略后,我们可以更好地应用这些技术来满足各种复杂和高要求的业务场景。
分布式储能系统在典型应用模式下,其应用功能和运行效果的表现是本文分析的重点。通过分析这些应用模式下的运行效果,可以得出分布式储能系统容量优化配置的约束条件和目标函数。这些约束条件和目标函数是储能系统...
实战方面,首先通过对阿里巴巴的分布式数据库OceanBase的实现细节的深入剖析完整地展示了大规模分布式存储系统的架构与设计过程,然后讲解了大规模分布式存储技术在云计算和大数据领域的实践与应用。, 《大规模...
分布式数据库系统原理与应用讲义是东北大学教师为了教授学生这一关键领域的知识而编写的教材。分布式数据库系统是现代互联网架构中的重要组成部分,它通过将数据分散存储在多个物理节点上,实现高可用性、可扩展性和...
分布式集群系统架构设计及应用部署 分布式集群系统架构设计及应用部署是指在高并发访问量和海量数据环境下,通过部署分布式集群环境系统来解决由于瞬间并发访问量过大造成网站崩溃、服务暂停的问题。该系统架构设计...
东北大学的这门课程可能涵盖了从基础概念到高级应用的广泛内容,旨在帮助学生理解和掌握分布式系统的原理和实践。 分布式操作系统的核心概念包括: 1. **分布式系统的基本特征**:分布式系统由分布在不同地理位置...
分布式数据库系统及应用是计算机科学领域的一个重要主题,它涉及到如何在多个计算机节点上存储和管理数据,以实现高可用性、高性能和可扩展性。本课件将深入探讨这一领域的核心概念和技术。 首先,分布式数据库系统...
南理工 魏松杰 对应他的英文版本PPT复习可用,同时是学习分布式系统的很好的PPT,分布式系统ppt对应分布式系统第五版英文版ppt,复习,自学可用,了解分布式系统,共10章,01-概述,02-系统模型,03-进程间通信,04-...