版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、中间件 & 软件平台,系统产品线核心平台交换,问题,什么是软件平台? 软件平台给我们软件产品开发带来的好处? 我们应该在软件开发什么阶段考虑引入软件平台?,中间件 & 软件平台,中间件 中间件起源 中间件定义 中间件特征 中间件分类 中间件发展趋势 软件平台 软件平台定义 中间件分类 软件平台作用 软件平台特征 中间件&软件平台优越性,中间件伴随网络的产生、发展而兴起 中间件的概念和产品起源于在二十世纪九十年代初期,九十年代中期开始风行起来。那时候的中间件定义为“介于应用和操作系统之间的系统软件”。显然当时的操作系统已经不能完全满足企业应用的需要,企业应用所需要的跨平台、安全性、稳定性、完整性
2、和信息可靠传递等已超出了操作系统的范畴。中间件的诞生正满足了企业应用的这些需要。 中间件产生的过程 第一台电子计算机:1946年,埃尼阿克 最早的程序语言:1955年,Fortran 第一个操作系统:1966年,IBM OS/360 互联网诞生:上世纪90年代,文顿瑟夫 第一个中间件:1990年,Tuxedo,贝尔实验室,交易中间件 消息中间件诞生:1994年,MQ系列产品,IBM JAVA诞生:1995年,SUN .Net的诞生:,1.1 中间件起源,中间件出现的驱动力主要来自软件研发过程碰到的种种问题。从软件出现最早是用于科学计算,然后是计算机辅助设计、辅助制造等等工业应用。在企业管理领域
3、大规模应用后,业务需求不断的变化、系统不断增加、流程更复杂、系统越来越不堪重负,出现了需求交付方面的重大挑战,以至于人们用“软件危机”来描述软件工业所面临的困境。 软件危机的四个表现:质量问题、效率问题、互操作问题、灵活应变问题; 造成软件危机的根本原因:异构性、标准规范的滞后。,1.1 起源-软件危机是中间件发展的最大驱动力,2001年美国软件项目完成情况,1.1.1 中间件发展驱动力:屏蔽异构性,异构性表现在计算机的软硬件之间的异构性,包括: 硬件(CPU和指令集、硬件结构、驱动程序等) 操作系统(不同操作系统的API和开发运行环境) 数据库(不同的存储和访问方式)等等 造成异构的原因源自
4、市场竞争、技术升级以及保护投资等因素。 希望屏蔽异构平台的差异性问题是促成中间件发展的驱动力之一。,1.1.2 中间件发展驱动力:实现互操作,因为异构性,产生的结果是软件依赖于计算环境,使得各种不同软件之间在不同平台之间不能移植,或者移植非常困难。 而且,因为网络协议和通信机制的不同,这些系统之间还不能有效地相互集成。 造成互操作性不好的原因,主要是标准的滞后。 解决应用系统之间的互操作性问题也是中间件发展的驱动力之一。,1.1.3 中间件发展驱动力:共性凝练和复用,软件应用领域越来越多,相同领域的应用系统之间许多基础功能和结构是有相似性的,每次开发系统都从零开始绝对不是一种好的方法,也是对质
5、量和效率的很大的伤害。 尽可能多地凝练共性并复用以提高软件开发效率和质量,通过中间件通过提供简单、一致、集成的开发和运行环境,简化分布式系统的设计、编程和管理,这也是中间件发展的重要驱动力。,1.1 起源-总结,可以从两个方面来解决软件危机:工程方法、平台与技术。 工程方法就是用工业工程、系统工程的理论、方法和体系来解决软件研发过程中的管理问题,包括团队管理、项目管理、质量控制等等,这就是软件工程。除了软件工程方法之外,我们发明了更多的软件架构规划、设计和实施的方法,不断累积领域的知识与经验等等。 更好的技术手段,包括更好的程序设计语言、更好的平台和软件开发技术,如面向对象分析与设计、基于组件
6、的软件开发、面向服务等等。而这方面,在技术上逐渐发展的成果大部分都凝聚在今天的中间件平台之中。 而这些更好的技术手段,从本质上是通过复用、松耦合、互操作等机制来提高软件质量、加快软件研发效率、使研发出来的产品能够相互集成并灵活适应变化。,IDC:中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。 梅宏:中间件是指网络环境下处于操作系统、数据库等系统软件和应用软件之间的一种起连接作用的分布式软件,主要解决异构网络环境下分布式应用软件的互连与互操作问题,提供标准接口、协议,屏蔽实现细节,提高应用系
7、统易移植性 。 仲萃豪 :中间件=平台通信,1.2. 中间件定义,中间件处于操作系统软件与用户的应用软件的中间。 中间件在操作系统、网络和数据库之上,应用软件的下层,总的作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。 形象地说就是“上下”之间的“中间”。,1.2. 中间件定义,中间件主要为网络分布式计算环境提供通信服务、交换服务、语义互操作服务等系统之间的协同集成服务,解决系统之间的互连互通问题。 形象地说就是所谓“左右”之间的“中间”。,1.2. 中间件定义,平台化 应用支撑 软件复用 解除耦合关系 互操作性,1.3. 中间件特征,1.3.
8、1 中间件特征-平台化,所谓“平台”就是能够独立运行并自主存在,为其所支撑的上层系统和应用提供运行所依赖的环境。 显然,不是所有的系统或者应用都可以称之为平台的。 中间件是一个平台,因此中间件是必须独立存在,是运行时刻的系统软件,它为上层的网络应用系统提供一个运行环境,并通过标准的接口和API来隔离其支撑的系统,实现其独立性,也就是平台性。,1.3.2 中间件特征-应用支撑,中间件的最终目的是解决上层应用系统的问题。 现代意义上的中间件在软件的模型、结构、互操作以及开发方法等四个方面提供了更强的应用支撑能力。 而要最终解决软件的质量问题、效率问题、互操作问题、灵活应变问题这四大问题,需要在软件
9、技术的内在结构(Structure)、架构(Architecture)层面进行思考。,1.3.3 中间件特征-软件复用,软件复用,是指同一事物不作修改或稍加改动就多次重复使用。 软件复用的方式:子程序、类库、组件、企业对象组件、框架、服务。,1.3.4 中间件特征-解除耦合关系,传统软件将软件之中核心三部分网络连接、数据转换、业务逻辑全部耦合在一个整体之中,形成“铁板一块”的软件,“牵一发而动全身”,软件就难以适应变化。 中间件的引入极大地解除了耦合关系: 分布式对象技术将连接逻辑进行分离。 消息中间件将连接逻辑进行异步处理,增加了更大的灵活性。 消息代理和一些分布式对象中间件将数据转换也进行
10、了分离。 SOA架构,通过服务的封装,实现了业务逻辑与网络连接、数据转换等进行完全的解耦。,1.3.5 中间件特征-互操作性,传统软件互操作技术存在问题。 互联网前所未有的开放性意味着各节点可采用不同的中间件技术,对技术细节进行了私有化的约束,构件模型和架构没有统一标准,从而导致中间件平台自身在构件描述、发布、发现、调用、互操作协议及数据传输等方面呈现出巨大的异构性。各种不良技术约束的结果是软件系统跨互联网进行交互变得困难重重,最终导致了跨企业/部门的业务集成和重组难以灵活快速的进行。 在软件的互操作方面,传统中间件只是实现了访问互操作,即通过标准化的API实现了同类系统之间的调用互操作,而连
11、接互操作还是依赖于特定的访问协议,如JAVA使用RMI,CORBA使用GIOP/IIOP等。而SOA通过标准的、支持Internet、与操作系统无关的SOAP协议实现了连接互操作。而且,服务的封装是采用XML协议,具有自解析和自定义的特性,这样,基于SOA的中间件还可以实现语义互操作。,1.4. 中间件分类,应用服务类中间件,为应用系统提供一个综合的计算环境和支撑平台,包括 : ORB: 交易中间件:主要功能是管理分布于不同计算机上的数据的一致性,保障系统处理能力的效率与均衡负载 ;适用于联机交易处理系统 ;交易中间件所遵循的主要标准是X/open DTP模型,典型的产品是Tuxedo。 应用
12、服务器中间件:JAVA从2.0企业版之后,不仅仅是一种编程语言,而且演变为一个完整的计算环境和企业架构。为JAVA应用提供组件容器,用来构造Internet应用和其它分布式构件应用,是企业实施电子商务的基础设施,这种应用服务器中间件发展到为企业应用提供数据访问、部署、远程对象调用、消息通信、安全服务、监控服务、集群服务等强化应用支撑的服务。使得JAVA应用服务器成为了事实上的应用服务器工业标准。由于它的开放性,使得交易中间件和对象请求代理逐渐融合到应用服务器之中。典型的应用服务器产品包括IBM Websphere Application Server、Oracle Weblogic Appli
13、cation Server和金蝶Apusic Application Server等。 应用集成类中间件,应用集成类中间件是提供各种不同网络应用系统之间的消息通信、服务集成和数据集成的功能, 包括: 消息中间件: 企业应用整合: 企业服务总线:,1.4. 中间件分类,业务架构类中间件: 作为共性的凝练,中间件不仅要从底层的技术入手,将共性技术的特征抽象进中间层,还要更多地把目光投向到业务层面上来,根据业务的需要,驱动自身能力的不断演进,即,不断出现的新的业务需要驱动了应用模式和信息系统能力的不断演进,进而要求中间件不断地凝练更多的业务共性,提供针对性支撑机制。 近年来,这一需求趋势愈发明显,越
14、来越多的业务和应用模式被不断地抽象进入中间件的层次,如业务流程流、业务模型、业务规则、交互应用等等,其结果是中间件凝练的共性功能越来越多,中间件的业务化和领域化的趋势非常明显。 消息代理和一些分布式对象中间件将数据转换也进行了分离。 业务架构类中间件包括:业务流程中间件、业务管理中间件、业务交互中间件,1.5. 中间件发展趋势,变宽、变厚 一体化 平台化,1.5.1 中间件发展趋势:变宽、变厚,中间件的本质特征是对计算环境的抽象和对应用共性的凝炼。 计算环境的抽象:具体来说就是对异构性的支持,包括:硬件平台、网络环境、操作系统、数据库等等。十年来,中间件的发展多在计算环境的抽象上。目前的中间件
15、可以在不同硬件平台、不同操作系统、不同网络环境下提供各种应用服务。 应用共性凝练:可从两个角度考虑。 自底向上的技术导向:中间件发展趋势的显著特点之一就是自底向上的技术导向,它典型地是对操作系统、网络、编程语言等基础软件能力的抽象和封装,其关注主要聚焦于分布式应用构建的技术细节,抽取分布系统构造中的共性问题,封装这些共性问题的解决机制,对外提供简单统一的接口,从而减少开发人员在解决这些共性问题时的难度和工作量。这导致越来越多的网络应用将被抽象形成标准的平台服务,加入到中间件之中。 自顶向下的业务驱动:业务化代表了中间件对复杂业务支持方面的发展趋势,即,从自底向上技术驱动转变为更多自顶向下的应用
16、层的业务驱动,凝练更多的应用和业务模式,支持复杂业务的开放式多方协同和按需集成能力。 自底向上的技术导向和自顶向下的业务驱动共同决定了中间件将变宽、变厚。,1.5.1 中间件发展趋势:变宽、变厚,1.5.1 中间件发展趋势:变厚,众所周知,对组织而言,通过IT对信息进行有效的管理及利用是其业务成功的关键因素,IT是要为业务服务的。中间件技术作为企业计算的核心基础设施之一,仅仅关注技术本身是不够的,尤其是在当今全球化趋势之中谋求生存和发展,IT信息系统及其基础设施对战略和业务的有效支持是至关重要的。 因此,作为共性的凝练,中间件不仅要从底层的技术入手,将共性技术的特征抽象进中间层,还要更多地把目
17、光投向到业务层面上来,根据业务的需要,驱动自身能力的不断演进,即,不断出现的新的业务需要驱动了应用模式和信息系统能力的不断演进,进而要求中间件不断地凝练更多的业务共性,提供针对性支撑机制。 近年来,这一需求趋势愈发明显,越来越多的业务和应用模式被不断地抽象进入中间件的层次,如业务流程流、业务模型、业务规则、交互应用等等,其结果是中间件凝练的共性功能越来越多,形象的看,中间件的发展趋势之一就是变得越来越“厚”。,1.5.1 中间件发展趋势:变宽,此外,在以互联网为代表的新技术推动下,伴随全球化的脚步以及国民经济和国家信息化建设的高速发展,企业/政府的业务合作和资源共享的广度、深度和频度都在不断的
18、拓展,企业竞争本身已经从单纯的个体间行为演变为产业链层面上的激烈竞争,而电子商务的建设也呈现出从边沿向纵深的发展趋势。 企业信息化在ERP打破企业内部界限,形成企业内部无边界信息流的情况下,全程电子商务将实现企业、伙伴、供应商和客户的互联互通,打破企业间的界限,形成跨行业/组织/部门之间无边界信息流,复杂业务协同往往需要将原本零散、片段的业务流程和信息优化进一个集成的环境,多个业务实体在互联网提供的广泛连通性基础之上进行开放、灵活、可信的信息交换和互操作,实现企业间的业务协同,及时响应变化并有效的支持业务战略的交付,从而快速形成新的竞争力优势。 因此,从支持基于互联网广泛连通性的复杂业务协同和
19、集成的角度来看,形象地说,中间件的另一发展趋势是变得越来越“宽”。,1.5.2 中间件发展趋势:一体化,一体化的目的是易于平台演化、易于开发、易于管理 一体化将提供统一的系统管理框架,易于管理 一体化将提供统一的编程模型,易于开发 一体化将提供统一的互操作协议,易于集成和互操作 一体化代表了中间件从单一功能性产品到互联网统一平台的重要发展趋势,1.6.1 对象请求代理中间件:ORB,分布式对象计算:随着对象技术与分布式计算技术的发展,两者相互结合形成了分布对象计算,在21世纪初,分布式对象计算一度风靡全球。 分布式对象计算的核心是ORB。 分布式对象计算的典型代表是CORBA和COM+。,1.
20、6.1 对象请求代理中间件:ORB(CORBA),CORBA规范描述了对象在ORB上进行互操作以及不同的ORB实现间互操作。 对象请求代理(ORB)是CORBA规范中处于核心地位,定义异构环境下对象透明地发送请求和接收响应的基本机制。ORB使得对象可以透明地向其他对象发出请求或接受其他对象的响应,这些对象可以位于本地也可以位于远程机器。ORB拦截请求调用,并负责找到可以实现请求的对象、传送参数、调用相应的方法、返回结果等。client对象并不知道同server对象通讯、激活或存储server对象的机制,也不必知道server对象位于何处、它是用何种语言实现的、使用什么操作系统或其他不属于对象接
21、口的系统成分。 ORB上的对象可以是client,也可以是server,甚至兼有两者。当对象发出一个请求时,它是处于client角色;当它在接收请求时,它就处于server角色。大部分的对象都是既扮演client角色又扮演server角色。另外由于ORB负责对象请求的传送和server的管理,client和server之间并不直接连接,因此,与RPC所支持的单纯的Client/Server结构相比,ORB可以支持更加复杂的结构。 目前主流的CORBA实现包括:TAO、INOA Orbix2000。,消息中间件指的是利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统
22、的集成。 通过提供消息传递和消息排队模型,它可在分布环境下扩展进程间的通信,并支持多通讯协议、语言、应用程序、硬件和软件平台,实现应用系统之间的可靠异步消息通信,能够保障数据在复杂的网络中高效、稳定、安全、可靠的传输,并确保传输的数据不错、不重、不漏、不丢。 消息中间件具有三种工作模式:点对点模式、消息队列模式、订阅/发布模式。 目前流行的消息中间件产品有IBM的Websphere MQ、 BEA的MessageQ、金蝶Apusic MQ、SUN的JMS等。 消息中间件特点: 异步通信: 多路复用: QoS:,1.6.2 消息中间件,1.6.2 消息中间件-消息队列模式,消息队列模式是一种程序
23、之间的非直接的通信模式,它允许程序通过消息队列进行通信。消息队列模式通常意味着无连接模式,并不强制要求对方程序一定可用。消息放入到消息队列中,直接或者按顺序传送。这种方式允许程序按照不同的速度独立运行,而不需要在双方之间建立一条逻辑连接。 消息队列模式适用于事件驱动的应用开发,当一个应用程序发生了某一事件(表现为一个消息),会导致其他应用程序某种行为的发生。,1.6.3 消息中间件-订阅/发布模式,发布/订阅是一种异步消息传输机制,它把消息的发布者(Publisher)与消息的订阅者(Subscriber)以一种松耦合的方式联系在一起,它们不需要知道对方的任何信息,甚至不需要知道对方是否存在,
24、就可以实现消息的异步传递。 在发布/订阅模式中,没有传统意义上的客户端和服务器,只有网络中进行信息发布的应用程序(发布者)和接收特定主题信息的应用程序(接收者)。 发布者和订阅者之间通过主题(Topic)交换信息。 发布者向消息中间件发布某个主题的消息,订阅者向消息中间件订阅某个主题的消息。 消息中间件则保证将发布者发布的消息及时、可靠地传送给所有对之感兴趣的消息订阅者。,2. 软件平台,软件平台是中间件技术结合应用需求发展的产物,是中间件一体化、平台化发展的产物,2.1 软件平台定义,软件平台是指用来构建与支撑应用软件的独立软件系统。它是开发与运行应用软件的基础,是任何一个应用软件得以实现与
25、应用的必要条件。 软件平台有两个基本要素:支撑环境和开发体系: 支撑环境是指应用软件系统开发与运行的基本条件 开发体系是指开发、维护与管理应用软件的工具与方法。,2.2. 软件平台-分类,软件平台按照层次及功能划分,可分为三种:操作系统平台、软件基础架构平台、业务基础软件平台 ; 操作系统平台是最底层的软件平台,其作用在于实现了应用软件与硬件平台的交互; 软件基础架构平台是在操作系统平台之上的层次,其作用在于为复杂应用软件提供技术基础设施; 业务基础软件平台是软件平台的第三层,其作用在于实现软件开发过程中技术和管理业务之间的分离,2.3. 软件平台-作用,提供软件系统运行的支撑环境:软件平台必
26、须为在自己基础之上开发的应用软件提供运行的支撑环境,如果离开了软件平台提供的支撑环境,这些开发的应用软件将无法运行。 提供相关接口,屏蔽技术细节:软件平台必须为开发人员在自己基础之上开发软件系统提供大量的API,从而使开发者不用去关心软件平台本身,以及该软件平台下一层的技术细节。例如,通过提供大量的API,操作系统平台很好地屏蔽了计算机硬件的技术细节,中间件平台则成功地使开发者不用自己再费劲去分析与实现复杂应用软件之间的通信、部署及管理等技术难题。 支持应用系统的开发、部署与管理等功能:软件平台应该为开发者提供一个相对完整的开发环境。通过支撑环境与开发维护管理体系,软件平台能使开发者在自己所提
27、供的环境就能开发出他们想要的应用软件,并实现对开发过程的管理。不仅如此,软件平台还要能实现对自身之上的种种应用软件进行管理,为他们之间实现集成与连接提供有效的解决方法。,2.4. 软件平台-特性,独立性:独立性是指软件平台能为开发者提供一个完整的开发与运行环境。有了软件平台,开发者在其中便可实现应用软件的开发、部署与管理。 开放性:开放性是指软件平台本身必须是对第三方,尤其是合作伙伴开放的。只有开放,合作伙伴才能在此软件平台上开发出各种各样的应用软件系统。对某些软件平台而言,开放性的另一种含义是指跨平台,即软件平台能适应不同的软硬件环境。 标准化:标准化是指软件平台必须为其合作伙伴提供可标准化的接口或规范,甚至是语言。软件平台所提供的“标准”可以是XML、Web服务等业界公共的标准,也可以自己的专用标准。,2.4. 软件平台-特性,集成性:集成性是指软件平台要具备集成各种应用软件的能力。应用软件可能有两种,一是在此软件平台基础之上开发的,一是在其他软件平台上开发的。软件平台的集成性是针对第一类应用系统。对第二类应用系统的集成,有的软件平台能实现,有的软件平台就不能实现。 安全性:安全性是指软件平台必须具备一定的安全管理功能,要有灵活方便的权限管理、加密技术。这种安全性不仅要体现软件平台本身的安全,外人很难入侵,还体现在它能为其应用软件提供安全管理。 可扩展性:可扩展
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 混凝土质检员工作总结报告20篇
- 销售组长工作总结范文5篇
- 销售员工个人发言稿(素材下载8篇)
- 污泥处理处置中心工程项目可行性研究报告
- 离子膜烧碱技改工程可行性研究报告
- 青协个人工作计划5篇
- 高中班主任工作计划下学期5篇
- 主题公园绿化景观设计合同
- 影视后期制作合同模版
- 仓储物流钢板桩施工合同
- 水工岩石分级及围岩分类
- 基因扩增实验室常用仪器使用课件
- 2023年营养师、营养指导员专业技能及理论知识考试题库(附含答案)
- 斜井敷设电缆措施
- 施工机械设备租赁实施方案
- 牙膏产品知识课件
- 液化气站人员劳动合同范本
- 第一章 教育政策学概述
- 常见土源性寄生虫演示文稿
- 全员育人导师制学生谈话记录
- 了解学前儿童科学领域核心经验
评论
0/150
提交评论