第1章中间件技术导论_第1页
第1章中间件技术导论_第2页
第1章中间件技术导论_第3页
第1章中间件技术导论_第4页
第1章中间件技术导论_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

李桃迎管理科学与工程JavaWeb中间件技术

2第1章中间件技术导论1.1中间件的定义1.2中间件的分类1.3平台与中间件1.4中间件特点及优势1.5软件构件技术的产生1.6软件构件的定义1.7基于构件的软件工程1.1中间件的定义中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。• 中间件• 运行在分布式环境下• 网络通信功能• 屏蔽分布式系统的异构性和复杂性中间件的定义OSOS中间件中间件应用应用网络OSOS中间件中间件应用应用中间件=平台+通信中间件=平台+通信ForExampleJDBC、ODBC是数据库中间件使应用程序独立于特定的数据库产品Oracle、Sybase、Informix、DB2、Ingres、SQLServer、Access、MySQL、CloudScape、……数据库中间件是应用程序和数据库系统的连接器》ODBC——提供C语言的接口JDBC——提供Java语言的接口JDBC既支持两层结构,又支持三层结构和多层结构》Java语言和工具的设计目标:writeitonceandrunitanywhere!ForExample:JDBC• 建立数据库连接发送SQL语句• 处理SQL语句执行结果1.2中间件的分类• 按照IDC的分类方法,中间件分为六类:1. 终端仿真/屏幕转换2. 数据访问中间件(UDA)3. 远程过程调用(RPC)中间件4. 消息中间件(MOM)5. 交易中间件(TPM)6. 对象中间件中间件的分类• 可以把中间件分为两大类:• 底层中间件:用于支撑单个应用系统或解决单一类的问题• 交易中间件• 应用服务器(WAS)• 消息中间件• 数据访问中间件• 高层中间件:更多的用于系统整合,通常会与多个应用系统打交道,在系统中的层次较高,并大多基于前一类的底层中间件运行• 企业应用集成中间件(EAISuites)工作流中间件(Workflow)门户中间件(Portal)• 网格中间件终端仿真/屏幕转换• 终端仿真/屏幕转换中间件• 用以实现客户机图形用户接口与已有的字符接口方式的服务器应用程序之间的互操作。• 应用• 它们应用于早期的大型机系统,主要功能是将终端机的字符界面转换为图形界面,目前此类中间件在国内已没有应用市场。数据访问中间件• 数据访问中间件• 为了建立数据应用资源互操作的模式,对异构环境下的数据库实现联接或文件系统实现联接的中间件如OGSA-DAI等• 应用• 适用于应用程序与数据源之间的互操作模型• 客户端使用面向数据库的API,以直接访问/更新服务器端数据源• 基于SQL语句,是应用开发更加简单远程过程调用中间件• 远程过程调用(RPC)中间件• 通过远程过程调用(RPC)实现异构分布式环境下不同应用之间进行通信访问的中间件。• 应用• 从一台机器或一个进程调用另一台机器或另一进程的服务或方法,这种调用是通过网络来实现的。• 一个应用程序使用RPC来“远程”执行一个位于不同地址空间里的过程,并且从效果上看和执行本地调用相同。• RPC是一种广泛使用的分布式应用程序处理方法。远程过程调用中间件• 工作原理:一个RPC应用分为两个部分:server和clientServer提供一个或多个远程过程,client向server发出远程调用• Stub提供数据转换和通信服务,屏蔽操作系统和网络差异。ClientServer交易中间件• 交易中间件• 交易中间件就是一组程序模块,用以大大减少开发一个联机交易处理系统所需的编程量• 为应用程序提供运行环境及各种服务,如程序加载、程序启动、并发进程处理等• 交易中间件是专门针对联机交易处理系统而设计的• 联机交易处理系统• 联机交易处理系统需要处理大量并发进程,处理并发涉及到操作系统、文件系统、编程语言、数据通讯、数据库系统、系统管理、应用软件交易中间件• 分布式交易处理的标准及参考模型• X/OPEN组织专门定义了分布式交易处理的标准及参考模型• 把一个联机交易系统划分成资源管理(RM)、交易管理(TM)和应用(AP)三部分,定义了应用程序、交易管理器、多个资源管理器是如何协同工作的。• 交易管理器可归入交易中间件• 应用• 只适用于联机交易系统,如银行业务系统、订票系统等。• 尽管交易信息也是消息,基于消息传输,但应用范围较小。消息中间件消息中间件(Message-OrientedMiddleware,MOM)• 利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。• 通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信,并支持多通讯协议、语言、应用程序、硬件和软件平台。• 目前流行的MOM中间件产品IBM的MQSeriesBEA的MessageQ• ……消息传递和排队技术• 消息传递和排队技术有以下三个主要特点:• 通讯程序可在不同的时间运行• 对应用程序的结构没有约束• 程序与网络复杂性相隔离• 消息中间件可以既支持同步方式,又支持异步方式• 异步中间件技术可以分为两类• 广播方式:把消息分发给系统的所有用户• 发行/订阅方式:可以指定哪种类型用户可以接收哪种类型的消息消息中间件• 消息中间件采用的两种形式:消息传递(messagepassing)消息队列(messagequeuing)对象中间件• 面向对象的中间件• 提供一个标准的构件框架,能使不同的厂家的软件通过不同的地址空间、网络和操作系统互相交互访问。该构件的具体实现、位置及所依附的操作系统对客户来说都是透明的。• 例如:用户通过简单组装或扩展已有构件就可以建立一个客户/服务器结构的信息系统。• 面向对象的中间件技术的目标• 为软件用户及开发者提供一种应用级的即插即用的互操作性,就像现在使用集成块和扩展板一样。对象中间件• 对象中间件的标准:OMG组织的CORBAMicrosoft的COMIBM公司的SOM应用对象ORB通用工具对象服务应用服务器• Web应用服务器• 主要是指基于Java和J2EE/EJB的应用服务器软件• 国内市场上应用的Web应用服务器主要有三类:国外、国内厂家的商业化产品及一些OpenSource(开源)软件例如:Tomcat、JBoss、IBMWebSphere、BEAWebLogic、SunAppServer、OracleiAS……应用服务器• 技术方面• 在技术方面的更新主要是对标准的支持、新的开发工具和对Web服务的支持等方面。• 解决的问题• 体系结构:应用服务器应当具备至少三个层次的服务器端体系结构:请求接收层、业务处理层、数据层。• 负载均衡:应用服务器系统,都具有负载均衡的能力,即将用户发来的请求,恰当地分配给各个应用服务器,使大家可以分别负担系统的负载。• 高可靠性、数据库连接池、分布会话管理、……企业应用集成中间件• 企业应用集成中间件EnterpriseApplicationIntegration(EAI),通常指的是企业应用集成服务器。• EAI服务器通常是一个有着重量级“价格”的软件系统。软件通常运行在消息中间件之上,可以和Web应用服务器等中间件集成。应用系统1应用系统2EAI企业应用集成中间件• 应用• EAI服务器强调的是应用系统之间相互访问与集成的需求与能力,访问是双向的。• 集成的中心是作为枢纽的EAI服务器,枢纽向外的辐射(通过消息中间件等技术)把各个应用系统连接集成在一起。• 枢纽执行应用之间格式的转换消息传递的路由选择与控制及传输任务。企业应用集成中间件• 一个完整的EAI解决方案应当包含以下五个层面:• 用户交互:用户界面统一接入,利用门户技术进行构建。• 应用连接:通过HUB或总线架构,实现应用之间连接,完成相关的数据路由与数据格式转换。• 业务流程整合:实现业务流程管理,包括工作流管理和自动化流程两个方面。• 构建整合:该层面包含两个部分:构建与现有应用兼容的新应用;对现有资源重用以适应新环境的需要。• 信息集成:实现数据集成,在异构的数据源之间实现数据层整合工作流中间件• 工作流中间件• 定位于支持商务流程的自动化,即能够方便地进行处理集成。• 以文档为中心,支持文档流转的工作流软件。• 应用• 支持与Web应用服务器的集成,并提供使用浏览器获得工作列表、执行流程实例和监控管理工作流的能力。• 工作流引擎运行在Web应用服务器上,以浏览器作为工作流程中参与人员的操作界面,具备可视化的流程定义工具等必要的功能模块。• 开源工作流中间件包括jBPM、Shark等门户中间件• 门户中间件• 指的是门户服务器(PortalServer)。门户服务器是Web应用服务器上的“应用”。Portal门户• portal是一种web应用,通常用来提供个性化、单次登录、聚集各个信息源的内容,并作为信息系统表现层的宿主。完整的Portal通常由Portal服务器、Portlet容器、Portlet构成。• 应用开发上可以开发很多这样的“门户组件”同时集成别人开发的“门户组件”来构建企业门户。安全中间件• 安全中间件• 以公钥基础设施(PKI)为核心、建立在一系列相关国际安全标准之上的一个开放式应用开发平台• 对PKI基本功能如对称加密与解密、非对称加密与解密、信息摘要、单向散列、数字签名、签名验证、证书认证,以及密钥生成、存储、销毁等进一步扩充,进而形成系统安全服务接口、应用安全服务接口、储存安全服务接口和通信安全服务接口。安全中间件• 应用优势• 可以跨平台操作,为不同操作系统上的应用软件集成提供方便,满足用户对系统伸缩性和可扩展性的要求。• 在频繁变化的企业计算机环境中,能够将不同的应用程序无缝地融合在一起,使用户业务不会因计算环境的改变遭受损失。• 屏蔽了安全技术的复杂性,使设计开发人员无须具备专业的安全知识背景就能够构造高安全性的应用。1.3平台与中间件平台=中间件 +业务组件•“平台”中包含中间件,中间件是构造平台的基础;•在中间件之上有一层和应用有关联的“业务组件”,以进一步简化应用系统的开发。1.4中间件的特点•满足大量应用的需要•运行于多种硬件和操作系统(OS)平台•支持分布式计算,提供跨网络、硬件和操作系统(OS)平台的透明性的应用或服务的交互功能•支持标准的协议•支持标准的接口中间件的十大优越性• (1)应用开发• 业务逻辑和应用逻辑程序仅占总程序量的30%,而基础程序占了70%,使用传统意义上的中间件一项就可以节省25%~60%的应用开发费用。如是以新一代的中间件系列产品来组合应用,同时配合以可复用的商务对象构件,则应用开发费用可节省至80%。• (2)系统运行• 没有使用中间件的应用系统,其初期的资金及运行费用的投入要比同规模的使用中间件的应用系统多一倍。• (3)开发周期• 基础软件的开发是一件耗时的工作,若使用标准商业中间件则可缩短开发周期50%~75%。中间件的十大优越性• (4)减少项目开发风险• 研究表明,没有使用标准商业中间件的关键应用系统开发项目的失败率高于90%。企业自己开发内置的基础(中间件)软件是得不偿失的,项目总的开支至少要翻一倍,甚至会十几倍。• (5)合理运用资金• 借助标准的商业中间件,企业可以很容易地在现有或遗留系统之上或之外增加新的功能模块,并将它们与原有系统无缝集合。• (6)应用集合• 依靠标准的中间件可以将现有的应用、新的应用和购买的商务构件融合在一起进行应用集合。中间件的十大优越性• (7)系统维护• 基础(中间件)软件的自我开发是要付出很高代价的,此外,还要每年维护自我开发的基础(中间件)软件和应用软件。• 而在一般情况下,购买标准商业中间件每年只需付出产品价格的15%~20%的维护费。• (8)质量• 标准的中间件在接口方面都是清晰和规范的。标准中间件的规范化模块可以有效地保证应用系统质量及减少新旧系统维护开支。• (9)技术革新• 标准的商业中间件,则对技术的发展与变化可以放心,中间件厂商会责无旁贷地把握技术方向和进行技术革新。中间件的十大优越性• (10)增加产品吸引力• 不同的商业中间件提供不同的功能模型,合理使用,可以让你的应用更容易增添新的表现形式与新的服务项目。从另一个角度看,可靠的商业中间件也使得企业的应用系统更完善,更出众。1.5软件构件技术的产生• 为什么要研究软件构件技术?软件复用:以构件技术为核心软件体系结构:构件+构件之间的关系网络环境:软件分布在不同结点上软件构件技术的产生• 1968年NATO软件工程会议上Mcllroy的论文提出了“大量生产的软件构件”• 第一次引入了软件复用概念软件复用思想的历史背景• 子程序的概念即体现了复用的思想• 程序库将一些通用子程序收集到程序库中供其他程序员在编程时使用,例如:数学程序库等。• 在其后的发展过程中有许多复用技术的研究成果和成功的复用实践活动。但是技术上的不成熟,使得软件复用未得到应有的进展。软件复用思想的历史背景• 近十几年来,面向对象技术逐步成为主流技术,为软件复用提供了基本的技术支持,软件复用研究重新成为热点。• 软件复用被视为解决软件危机提高软件生产效率和质量的现实可行途径对比传统工业• 这是软件复用与软件构件技术受到高度重视的根本原因• 分析传统工业,如机械、建筑等行业以及计算机硬件产业,其成功的基本模式是:• 符合标准的零部件(构件)生产• 基于标准零部件的产品生产(组装)• 其中:复用是必需的手段,构件是核心和基础• 这种模式是• 产业工程化、工业化的必由之路• 软件产业发展的必然途径软件复用的两种方法• 产品复用是目前现实的、主流的途径• 产品复用• 复用已有的软件构件,通过集成(组装)构件得到新系统• 过程复用• 复用已有的软件开发过程,使用可复用的应用生成器来自动或半自动生成系统• 过程复用依赖于软件自动化技术的发展,目前只适用于一些特殊应用领域产品复用的两种方式• 黑盒复用:不需对构件作任何修改即可直接复用• 这是理想的复用方式• 白盒复用:已有构件并不能完全符合用户需求• 需要根据用户需求进行适应性修改产品复用的两个过程• 可复用软件构件的开发• 如何开发出便于复用的软件构件• 基于可复用软件构件的应用系统构造• 如何利用现有的软件构件开发出目标系统实现软件复用的关键因素软件构件技术(SoftwareComponent)领域工程(DomainEngineering)软件体系结构(SoftwareArchitecture)软件再工程(SoftwareReengineering)开放系统(OpenSystem)软件过程(SoftwareProcess)CASE技术• 非技术因素CASE技术软件过程软件过程非技术因素非技术因素领域工程领域工程软件再工程软件构架技术开放系统技术构件、构架应应用用系系统统领领域域构件标准构件分类、构件组装遗遗产产软软件件系系统统软件构件技术是软件复用的关键技术CASE技术1.6什么是软件构件• 从一般意义上讲构件是系统中可以明确辨识的构成成分软件构件则是 软件系统中 具有一定意义的相对独立的构成成分• 由于目前讨论的软件构件主要着眼于其复用意义,因此软件构件主要是指可复用软件构件(Reusablesoftwarecomponent,RSC)软件构件的定义构件是一个不透明的功能实现体能够被第三方所组装,且符合一个构件模型定义1[Szyperski1996]

一个构件是一个组装单元它具有约定式规范的接口以及明确的依赖环境构件可以被独立地部署,由第三方组装• 定义2[SEI2001]

构件是一个不透明的功能实现体能够被第三方所组装,且符合一个构件模型构件是可以被复用的软件实体,由构件规约与构件实现两部分组成复用 可以发生在不同应用领域的软件系统之间可以发生在相同领域内的不同系统之间,可以发生在一个系统在演化过程中的不同阶段之间• 定义3:构件是可以被复用的软件实体,由构件规约与构件实现两部分组成复用 可以发生在不同应用领域的软件系统之间可以发生在相同领域内的不同系统之间,可以发生在一个系统在演化过程中的不同阶段之间分为基础构件、领域构件、专用构件软件构件的定义构件规约构件信息(组装合约)构件的运行管理规约(运行合约)• 构件规约• 用于描述如何对构件进行使用与管理• 是对构件外部特征的形式化描述• 是关于构件的知识构件接口(客户合约)构件的使用规约构件规约(specification)构件实现(Implementation)• 构件实现是构件内部的代码实现体• 对于一个面向过程的系统• 一个构件由系统的一个或多个紧耦合的模块组成• 对于一个面向对象的软件系统• 一个构件由系统的一个或多个紧耦合的对象组成(a)(b)(c)构件实现构件规约构件规约1构件规约2构件实现1构件规约构件实现2构件的规约与实现构件构件规约构件实现构件的规约与实现•例如:假设有一组有用行为被定义为管理一组人员的姓名和地址。其中可以包括:设定某个人的住址,查询这个人在这个地

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论