第三章 应用软件集成体系结构.ppt

上传人:eastlab115 文档编号:376930 上传时间:2018-10-08 格式:PPT 页数:61 大小:693KB
下载 相关 举报
第三章 应用软件集成体系结构.ppt_第1页
第1页 / 共61页
第三章 应用软件集成体系结构.ppt_第2页
第2页 / 共61页
第三章 应用软件集成体系结构.ppt_第3页
第3页 / 共61页
第三章 应用软件集成体系结构.ppt_第4页
第4页 / 共61页
第三章 应用软件集成体系结构.ppt_第5页
第5页 / 共61页
亲,该文档总共61页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、2018/10/9,信息系统集成,1,第三章 应用软件集成体系结构,概述 客户机/服务器模式 分布式计算 软件重用技术 中间件技术 J2EE应用架构 .NET应用架构 基于组件的软件开发,2018/10/9,信息系统集成,2,3.1 概述,软件应用架构20世纪60年代到70年代,软件危机使软件成本日益增长,开发速度难以控制,质量无法保证,软件的维护困难等。-软件工程软件工程发展初期,设计的重点是数据结构和算法的选择上。随着规模和复杂度的变化,人们开始认识到软件架构的重要性。 软件架构的定义将软件系统划分成多个模块,明确各模块之间的相互作用,组合起来实现系统的全部特征,就是系统的架构。软件架构为

2、软件系统提供了一个结构、行为和属性的高级抽象,并由构成系统的元素的描述及元素的相互作用、元素集成的模式,以及这些模式的约束组成。,2018/10/9,信息系统集成,3,3.1 概述,软件架构的作用 软件架构是系统环境中的一个高层概念,每个系统都有一个架构。架构是用于表达整个系统的结构和行为的模型,表达系统如何满足其环境上下文的要求,并表示主要的系统构件、其交互和依赖关系,以及其操作所需满足的约束。 软件架构模型 研究软件架构的首要问题是如何表示软件架构,即如何对软件架构建模。根据建模角度(侧重点)不同,通常将软件架构的模型分为5种:结构模型、框架模型、动态模型、过程模型和功能模型。 最常用的是

3、结构模型和动态模型。,2018/10/9,信息系统集成,4,3.1 概述,应用软件的计算模式 应用系统在某种计算问题的解决过程中,采用的对计算资源的组织、调度上的某种有效方法。 计算资源是参与计算过程的所有资源:处理器、存储器、通信线路、程序和数据等。 从发展历程看,应用系统的计算模式主要包括集中式和分布式计算。 20世纪80年代之前,人们深入思考的是如何充分利用计算资源。 近年来,网络技术的发展使得分布式计算技术成为核心技术。 工业化分布式计算技术的发展已经经历了两代:第一代分布式计算技术是以支持信息共享为目标的面向过程的客户机/服务器技术;第二代分布计算技术是以面向对象为主要特征的分布式对

4、象技术。 当前以Internet为平台的Agent计算、网格计算等分布式计算技术逐步深入的影响未来分布式计算技术的发展。,2018/10/9,信息系统集成,5,3.2 客户机/服务器模式,两层C/S模式 C/S的核心特征是任务的分解,由不同的计算资源承担任务,通过协作完成任务。 两层C/S模式是最早使用的C/S模式。,客 户 机,Request,Response,2018/10/9,信息系统集成,6,3.2 客户机/服务器模式,B/S结构 Brower/Server 浏览器/服务器模式,2018/10/9,信息系统集成,7,3.2 客户机/服务器模式,多层C/S结构 B/S模式在构造复杂应用系

5、统时,利用CGI等技术开发部署很难提高系统运行效率。 现有的Web服务器支撑系统很难对各类中间件进行有效的管理和组织,需要专门针对中间件的支撑系统。 数据操纵的安全性很难保障。 应用系统被划分为:客户层、表示层、业务逻辑层(应用层)、数据管理层(数据层)。,2018/10/9,信息系统集成,8,3.2 客户机/服务器模式,多层C/S模式中,应用系统被划分为 客户层:一般PC,通过浏览器与Web服务器联系,访问Web服务器资源。 表示层:Web服务器,接受用户交互式操作,并将操作请求传递给应用服务器。 业务逻辑层:应用服务支撑系统,分布式对象管理容器,接受Web服务器的请求,执行业务逻辑返回结果

6、,与后台数据库绑定,一般将数据库资源映射为数据对象。 数据管理层:数据库服务器。,2018/10/9,信息系统集成,9,3.2 客户机/服务器模式,多层C/S结构的基本计算过程 对多层C/S模式的支持规范主要有Sun的J2EE和微软的.NET。,客 户 机,请求,服务,2018/10/9,信息系统集成,10,3.3 分布式计算,移动Agent 20世纪90年代初由General Magic 公司在推出商业Telescript时提出的,主要思想在于:结合Agent技术和分布式计算技术,将服务请求Agent动态移到服务器端执行。使此Agent较少依赖网络传输,而直接面对要访问的服务器资源,降低了对

7、网络带宽的依赖。 移动Agent不需要统一调度,由用户创建的Agent,用户可自行创建多个Agent,同时在一个或多个节点上运行,形成并行求解能力。 可自行决定何时中断任务,并将自己转移到另一台机器上。 具有自治性和智能路由的性能。,2018/10/9,信息系统集成,11,3.3 分布式计算,网格计算 Grid称为网格计算 思想在于:将闲置在Internet各处的MIPS捆绑在一起加以利用,以便用累积的计算能力来完成超级计算机的任务。 网格计算主要应用在大批量的小任务,如:声视频点播,具有突发的大量的资源需求,实时分布式仪表系统等。 目前对网格的一般理解是指把整个互联网或某个区域整合成统一的计

8、算机系统。 网格的根本特征不在于规模,而是资源的广泛共享。,2018/10/9,信息系统集成,12,3.3 分布式计算,分布式对象技术 分布式技术的应用使得系统规模越来越大。 网络间的异构问题必须解决。 分布式系统的复杂性使得系统的可靠性降低。 分布式软件的开发和维护成本高昂。 通过结合面向对象技术,实现分布式软件的可移植性、互操作性、可靠性和可重用性。 屏蔽了不同系统间的差异和底层细节,减小分布式系统开发难度,提高分布式软件的性能。 目前主流的有:COM/DCOM、Java、COBRA,2018/10/9,信息系统集成,13,3.3 分布式计算,分布式对象技术 采用了面向对象技术中的封装性和

9、继承性两大特点。所操作的对象通常称之为组件。,网络环境,高层,中层,底层,2018/10/9,信息系统集成,14,3.4 软件重用技术,软件重用概念 指在两次或多次不同的软件开发过程中重复使用相同或相近软件元素的过程。 软件元素包括:程序代码、测试用例、设计文档、设计过程、需求分析文档或领域知识。 将这种可重用的元素成为软构件,可重用的软件元素越大,重用的粒度越大。 基于构件的软件开发通常包括构件获取、构件分类和检索、构件评估、适应性修改,以及将现有的构件在新的语境下组装成新的系统的过程。 软件重用中的构件是指语义完整、语法正确和有可重用价值的单位软件,是软件重用过程中可以明确标识的元素。,2

10、018/10/9,信息系统集成,15,3.4 软件重用技术,面向重用的软件开发 需考虑“使用重用的开发(Develop with reuse)”和“用于重用的开发(Develop for reuse)”。前者使用已有的构件进行软件开发;后者的目的是开发可重用的软件。 用户需根据应用领域的特点及相似性确定构件的可重用性。 一旦确定了重用价值,就可以将构件的设计通用化,然后将其加入到构件库。 整个软件的开发过程是构件的不断积累、不断完善的渐进过程。 在开发的过程中对构件修改、或替代原有构件。,2018/10/9,信息系统集成,16,3.4 软件重用技术,面向重用的软件开发 以面向对象方法为基础,增

11、强软件的重用性。 开发过程中可重用的构件,可以使面向对象方法中的对象或对象的集合,也可以使非面向对象方法中的可重用构件。,领域分析,软件开发,理解构件功能,检索所需构件,确认构件的重要性,可重用构件库,领域知识,用户需求,目标软件,2018/10/9,信息系统集成,17,3.5 中间件技术,中间件概念 中间件(Middleware)是位于硬件、操作系统等平台和应用之间的通用服务。,中间件(系统服务),应用程序1,应用程序2,应用程序3,操作系统/硬件平台1,操作系统/硬件平台2,2018/10/9,信息系统集成,18,3.5 中间件技术,中间件的目的 实现应用与平台的无关性,满足大量应用的需要

12、。 中间件的作用 屏蔽操作系统和网络协议的差异,为应用程序提供多种通信机制满足不同领域的应用需要。 中间件服务所遵循的原则离实际还有很大的距离。多数中间件使用专有的协议,使应用只能构件在单一的厂家的产品之上。 有些中间件只提供某些平台的实现,限制了应用在异构系统之间的移植。,2018/10/9,信息系统集成,19,3.5 中间件技术,中间件的分类 数据库访问中间件 远程过程调用中间件 面向消息中间件 事务中间件 分布式对象中间件,2018/10/9,信息系统集成,20,3.5 中间件技术,数据库访问中间件 通过一个抽象层访问数据库,从而允许使用相同或相似的代码访问不同的数据库资源。 典型的如:

13、Windows下的ODBC和Java中的JDBC 远程过程调用中间件 一个应用程序使用RPC来“远程”执行一个位于不同地址空间内的过程,从效果上看和执行本地调用相同。 一个RPC应用分为两个部分:服务器和客户 服务器提供一个或多个远程过程;客户向服务器发出远程调用。 客户和服务器之间的网络通信和数据转换通过代理程序(stub 与 skeleton)完成,从而屏蔽了不同操作系统和网络协议。,2018/10/9,信息系统集成,21,3.5 中间件技术,面向消息中间件 利用高效可靠的消息传递机制进行平台无关的数据交流,并可基于数据通信进行分布系统的集成。 典型的产品:IBM的MQSeries 使用M

14、OM,通信双方的程序可以在不同的时间运行,程序不在网络上直接通话。 消息放入适当的队列,等待目标程序运行。 避免了网络通信的复杂性。 消息队列和网络通信的维护工作由MOM完成。,2018/10/9,信息系统集成,22,3.5 中间件技术,分布式对象中间件 采用分布式对象技术,结合面向对象技术实现。 对象请求代理(Object Request Broker , ORB)模型提供了一个通信框架,在异构的分布计算环境中透明地传递对象请求。 ORB是一种对象总线,定义了异构环境下对象透明的发送请求和接受响应的基本机制,是建立对象之间客户/服务器关系的中间件。 ORB使对象可以透明地向其他对象发出请求或

15、接受其他对象的响应,这些对象可在本地也可远程 ORB拦截请求调用,并负责找到可以实现请求的对象、传送参数、调用相应的方法、返回结果等。 客户不需要知道服务器的信息。,2018/10/9,信息系统集成,23,3.5 中间件技术,事务中间件(Transaction Processing Monitor) 最早出现在大型机上,为其提供大规模事务处理的可靠运行环境。 事务处理监控程序位于客户和服务器之间,完成事务管理与协调、负载平衡、失效恢复等任务。 随着对象技术和事务技术的结合,出现了对象事务监控器,可保证分布式对象的事务完整性。 事务中间件可以满足现代业务应用系统的12条基本原则:完整性、安全性、

16、可伸缩性、可用性、可管理性、互操作性、适应性、易开发性、经济性、快速的响应时间、数据的可分布性、易用性。 采用商业事务中间件的优势在于缩短产品投放市场所需的时间、节省应用开发费用、减少系统运行开销、简化应用集成、降低软件的维护费用等。,2018/10/9,信息系统集成,24,3.5 中间件技术,构件技术与中间件 中间件作为存在于系统软件与应用之间的特殊层次,对典型的应用模式进行抽象,从而使应用软件开阿人员可以将精力更多地放在业务逻辑上,并按照标准形式进行开发,从而使软件架构的应用成为可能。 构件的使用对架构技术(即环境、基础设施、计算平台等)有极大的依赖性。只有在适当的架构中,软件才有可能被抽

17、象成为构件。 中间件,从本质上说是对分布式应用的抽象,抛开了与应用相关的业务逻辑细节,保留了典型的分布交互模式的关键特征。经过抽象,对复杂的分布式系统进行提炼和必要的封装隔离后,以统一的形式呈现给应用。 中间件与架构是从两种不同的角度看待软件的中间层次,可以将中间件理解为架构或构建模型的具体实现,是构件存在的基础,中间件促进了软件的构件化。 中间件作为分布式计算平台,涉及各种不同的资源,包括各种操作系统、数据库、网络协议甚至语言,其目标是在分布的环境中统一使用这些资源。,2018/10/9,信息系统集成,25,3.5 中间件技术,应用服务器 应用服务器(Application Server)是

18、企业极应用在Internet上迅速发展的条件下,出现的一种中间件技术。它可以处理客户和数据之间的交互操作,并提供一组前面提到的中间件服务,包括事务管理、ORB、MOM、系统安全、负载均衡及资源管理等。 应用服务器还提供了一个称为容器的管理环境,可以对应用中的组件进行配置和管理。 应用服务器在技术上并没有任何标准和规范是为某个商业性公司所独占,全部都基于Internet上的开放标准,因而具有极强的生命力。 使用应用服务器可以帮助企业构建一个基于Internet的电子商务系统,而且拥有很高的稳定性、可扩展性和安全性。 应用服务器向企业级用户提供了设计、开发、部署、运行和管理Internet电子商务

19、应用系统的平台,适用于Internet上的电子商务应用。,2018/10/9,信息系统集成,26,3.5 中间件技术,应用服务器的优点在于: 三层架构体系:适合Internet环境,使系统具有很强的可扩展性和可管理性。 分布式环境:保证系统的稳定性,同时拥有较高的性能。 面向对象的模块化构件设计:提高开发速度,降低开发成本。 采用Java技术:完全跨平台,适合Internet需要,并获得大多数厂商的支持,可以保护用户的投资。 应用服务器采用的三层(多层)架构,将应用逻辑单独作为一层,客户可以根据不同的应用逻辑专心设计该层。需要扩展业务时,只需专注于改进中间层的设计,使原系统能够平滑方便地升级。

20、,2018/10/9,信息系统集成,27,3.6 J2EE应用架构,J2EE(Java 2 Platform Enterprise Edition) 是Sun公司领导、各厂商共同制定并得到广泛认可的工业标准。 J2EE将开发工作分为两类:业务逻辑开发和表示逻辑开发,其余的系统资源则由应用服务器自动处理,不必为中间层的资源和运行管理进行编码。将更多的开发精力集中在应用程序的业务逻辑和表示逻辑上,从而缩短企业的应用开发周期、有效保护企业的投资。,2018/10/9,信息系统集成,28,3.6 J2EE应用架构,J2ME(Java 2 Platform Micro Edition)Java2平台简化

21、版,适合嵌入式系统开发。 J2SE(Java 2 Platform Standard Edition) Java2平台标准版,是为Java Applet和应用程序提供的Java标准运行环境支持的平台,包括输入/输出和图形用户界面等。 J2EE(Java 2 Platform Enterprise Edition)Java 2平台企业版,将Java企业级API捆绑在一起的成为Java语言进行服务器端的企业应用部署的开发平台。J2EE运行在J2SE之上。,2018/10/9,信息系统集成,29,3.6 J2EE应用架构,J2EE技术规范,2018/10/9,信息系统集成,30,3.6 J2EE应用

22、架构,J2EE技术规范(续表),2018/10/9,信息系统集成,31,3.6 J2EE应用架构,J2EE多层架构 J2EE采用多层应用架构,整个系统分为客户层、J2EE应用服务器和企业信息系统层。大部分J2EE应用都划分成三层或四层,复杂的系统可能会有更多的层次。 这样每个层次都有明确的职责,系统结构十分清晰。,J2EE服务器,2018/10/9,信息系统集成,32,3.6 J2EE应用架构,J2EE多层架构 J2EE的多层次分布式应用模型是根据功能把应用逻辑分成多个层次,每个层次支持相应的服务器和组件,组件在分布式服务器的组建容器中运行。 在企业开发逻辑上将系统划分为五层:客户层、Web层

23、(表示层)、业务层、集成层和资源层。,2018/10/9,信息系统集成,33,3.6 J2EE应用架构,J2EE多层应用体系结构,2018/10/9,信息系统集成,34,3.6 J2EE应用架构,J2EE客户层 系统的客户端,在J2EE体系中的客户端可以是浏览器,也可以是具有特殊要求的定制客户端。 采用一般浏览器的是B/S结构中所提倡的瘦客户端;采用Java Applet一般属于胖客户端,客户端程序具有部分业务逻辑描述,并提供具有Java风格的特制用户交互界面。 客户端与表示层之间通过HTTP/HTTPS即可交互,承载的语言一般是HTML或XML。对使用胖客户端的情况,采用的交互手段可以多种多

24、样。,2018/10/9,信息系统集成,35,3.6 J2EE应用架构,表示层: 提供交互界面,接受用户的输入,将用户的操作请求传递给应用层,等待应用层处理结果处理结果,并将结果返回给用户。 在用户和应用逻辑之间起到中介作用。 表示层可以承担几乎全部逻辑,但是基于对系统的可扩展性、可维护性和负载均衡等问题的考虑,在构造大型应用中,Web服务器(表示层)尽量少一些业务逻辑的处理,而将业务逻辑交给应用层。 表示层与应用层之间的通信主要借助JMS和RMI进行。,2018/10/9,信息系统集成,36,3.6 J2EE应用架构,业务层 业务层主要完成业务逻辑的执行,与数据库及后台系统资源进行交互的应用

25、系统部分,在J2EE中,提供应用层业务逻辑支持和数据库操作支持的组件主要是EJB。 EJB首先是一种技术规范,它本身并不提供分布式计算支持。EJB的组件特性、分布式计算特征均是由EJB容器提供的。 程序员将从繁重复杂的分布式对象和组件构造中解脱出来,而把精力全部投入到业务逻辑本身。,2018/10/9,信息系统集成,37,3.6 J2EE应用架构,集成层 集成层主要完成应用层的业务逻辑与各类数据库资源、不同应用系统之间的集成。实现数据的共享和应用功能的共享。 数据库连接主要由EJB和JDBC实现,应用程序之间功能操作一般采用适配器来实现。 资源层 资源层主要是指信息资源,包括各类数据库、文档以

26、及其他的应用系统等。 可能是系统建设中新建的资源,也可能是企业信息化过程中遗留下来的系统资源。,2018/10/9,信息系统集成,38,3.7 .NET应用架构,.NET概述 微软的.NET是一组开放的互联网协议,推出的一系列产品、技术和服务。.NET开发框架在通用语言运行环境基础上,给开发人员提供了完善的基础库类、数据库访问技术及网络开发技术,开发者可以使用多种语言快速构建网络应用。 包括企业内部、企业之间各类应用的集成统一,也包括个性化集成服务。内容覆盖了不同的设备接入、Web服务应用的开发、部署、发布、服务等。,2018/10/9,信息系统集成,39,3.7 .NET应用架构,.NET框

27、架概述 .NET框架旨在实现下列目标: 提供一个一致的面向对象的编程环境,而无论对象代码是在本地存储执行,还是在本地执行但在Internet上分布,或者远程执行。 提供一个将软件部署和版本控制冲突最小化的代码执行环境,以消除“DLL HELL”问题。 提供一个保证代码安全执行的代码执行环境。 提供一个可消除脚本环境或解释环境的性能问题的代码执行环境。 按照工业标准生成所有通信,以确保基于.NET框架的代码可与任何其他代码集成。 .NET框架体系结构由以下部分组成: 通用语言运行时、框架类库、ASP.NET以及ADO.NET、企业服务、Web服务、Windows窗体、远程处理等。 Visual.

28、Studio.NET是全面支持.NET的开发工具。,2018/10/9,信息系统集成,40,3.7 .NET应用架构,.NET开发框架,2018/10/9,信息系统集成,41,3.7 .NET应用架构,通用语言运行环境(CLR) CLR处于.NET框架的最底层,它是将底层平台差异进行抽象的运行期基础设施。 CLR支持所有能用公共中间语言CIL表示的编程语言。从而为多种语言提供了一种统一的运行环境,使得组件和XML Web服务的综合使用不再受编程语言的限制。 提供了更多的功能和特性,从而大大简化了应用程序的发布和升级;多种语言之间的交互;自动的内存和资源管理等。 .NET中的几个重要的概念是程序

29、集、应用程序域、元数据和IL中间语言。,2018/10/9,信息系统集成,42,3.7 .NET应用架构,几个重要概念 程序集 程序集是.NET平台用于部署和配置的单元。 它是自我描述的安装单元,由一个或多个文件组成,一个程序集可以是一个包括元数据的DLL或EXE,也可以由多个文件组成,如资源文件、元数据、DLL和EXE。,2018/10/9,信息系统集成,43,3.7 .NET应用架构,应用程序域 提供安全而通用的处理单元,处理CLR可使用它来提供应用程序之间的隔离。可以在具有同等隔离级别的单个程序中运行几个应用程序域,而不会造成进程间调用或进程间切换等方面的额外开销,在一个进程内运行多个应

30、用程序的能力显著增强了服务器的可伸缩性。 应用程序域所提供的隔离优点在于: 在一个应用程序中出现的错误不会影响其他应用程序。 能够在不停止整个进程的情况下停止单个应用程序。 使用应用程序域可以卸载在党应用程序中运行的代码。,2018/10/9,信息系统集成,44,3.7 .NET应用架构,元数据 在CLR中运行的可执行文件与Windows可执行文件不同,因为它们不仅有代码和数据,而且还有元数据(meta data)。 在.NET中,元数据包括类型定义、版本信息、外部程序集引用和其他标准化信息。.NET使用元数据描述特定.NET程序集中使用和暴露的所有类型。 元数据比类型库丰富得多,包括程序集、

31、模块、类、接口、方法、属性、字段、事件以及全局方法等的描述。 可以利用.NET提供的反射API对程序集的元数据进行访问。,2018/10/9,信息系统集成,45,3.7 .NET应用架构,IL中间语言 Microsoft将它的语言抽象层成为公用中间语言(common intermediate language, CLR),IL类似于Java编译器声称的字节码,支持所有面向对象特性,包括数据抽象、继承、多态以及异常的事件等概念。 任何.NET语言都可以转化为IL,因此.NET支持多种语言,而且将来可能支持多种平台,只要目标平台有IL。 公用类型系统CTS和公用语言规范CLS可确保多种语言的兼容性

32、、互操作性和可集成性。,2018/10/9,信息系统集成,46,3.7 .NET应用架构,CLR主要包括类装载器、JIT编译器和其他执行支持和管理组件。.NET PE( portable executable)文件位于CLR的顶层,在CLR的VEE中执行。类装载器负责将.NET类装载进内存并为它们的执行做准备。在成功完成之前,必须找到目标类。一旦目标类装载,类装载器就向该类的每个方法发出一个小的存根(stub)。在类装载器装载之后,而在IL代码执行之前,验证器处理必须验证的代码。验证器在运行时用来验证代码是否安全。最后,托管的本机代码将接受其他执行支持组建的处理,如代码管理、安全管理、无用资源

33、回收、异常管理、调试管理、列集管理和线程管理等。,2018/10/9,信息系统集成,47,3.7 .NET应用架构,ADO.NET ADO.NET是数据访问模型,用于访问关系型数据库系统。 ADO.NET优点如下: 互操作性采用XML作为其有效的数据格式,解决了公用数据交换的限制,而且,由于XML只是结构化文本,将XML作为HTTP网络协议顶层的数据格式,可以将防火墙的相关问题减至最小。 可伸缩性采用非连接数据机,当客户请求数据时,数据集将被获得,并传送至客户,然后连接会尽可能的及时关闭。提高了可伸缩性和系统的性能。 高效性ADO.NET提供了丰富而可扩展的框架类,开发者可以在此基础上快速开发

34、健壮的、高性能的XML Web服务和现在流行的N层应用程序。,2018/10/9,信息系统集成,48,3.7 .NET应用架构,ADO.NET的对象模型包括两组不同的类:内容组件和托管供应器组件。,内容组件包括DataSet类和其他支持类:DataTable,DataRow等 托管供应器组件用于辅助数据获取和更新。,2018/10/9,信息系统集成,49,3.7 .NET应用架构,ASP.NET ASP.NET是Microsoft.NET中的网络编程结构,使得建造、运行和发布网络应用非常方便和高效。 ASP.NET网络表单设计目的就是使得开发者能够非常容易的创建网络表单,将VB中的快速开发模型

35、引入到网络开发中来。 ASP.NET Web服务在ASP.NET中,建造和使用网络服务都非常方便,在ASP.NET中建造网络服务就是编写一个扩展名为.asmx的文件,在这个文件中加入需要表现的方法既可,网络服务的建造者不需要了解SOAP和XML的细节。 ASP.NET应用框架ASP.NET应用不再是解释脚本,而是编译运行,再加上灵活的缓冲技术,从根本上提高了性能;发布一个网络应用,仅仅是一个复制文件的过程;开发者可以将应用的配置信息存放在XML格式的文件中;提供更多的认证和安全管理方式,提高应用程序的可靠性。,2018/10/9,信息系统集成,50,3.7 .NET应用架构,J2EE与.NET

36、比较,2018/10/9,信息系统集成,51,3.8 基于组件的软件开发,问题的提出 计算机的不断发展为计算机及网络应用提供了大量技术先进、功能强大的应用软件系统,同时也给软件开发者和用户提出了问题: 软件系统规模庞大,研制周期长,维护费用高。 软件系统过于复杂,在一个系统中集成了各种功能,大多数功能不能灵活的装卸、单独升级或重复利用。 应用软件不易集成,即使各应用程序是用相同的编程语言编写的,并且运行在相同的机器上,特定应用程序的数据和功能也不能提供给其他应用程序使用。 面向对象的程序设计思想得到很大的发展,结果却产生了大量的“对象孤岛”。 将面向对象思想和组件编程思想结合发展出急于对象的组

37、建软件结构,为这一领域开辟了新的道路。,2018/10/9,信息系统集成,52,3.8 基于组件的软件开发,组件技术的发展简史和特点 软件系统规模庞大,研制周期长,维护费用高。 软件系统过于复杂,在一个系统中集成了各种功能,大多数功能不能灵活的装卸、单独升级或重复利用。 应用软件不易集成,即使各应用程序是用相同的编程语言来编写的,并且运行在相同的计算机上,特定应用程序的数据和功能也不能提供给其他应用程序使用。 为克服以上困难,实现行业范围软件的“即插即用”,关键是解决软件系统的可操作性、可扩展性、语言独立性和跨平台操作能力。,2018/10/9,信息系统集成,53,3.8 基于组件的软件开发,

38、软件组件可看成一种软件集成电路元件: 软件IC没有硬件IC的天然聚合性,构成粒度大小自由,便于扩展。 通过规定一个统一的二进制标准,建立起机构之间的智能互操作机制和语言独立性。 外界仅通过接口访问组件。 多侧面性,即组件表达的语义层次高,可以从不同侧面进行连接,外部特性不惟一。 支持封装、继承、多态性。,2018/10/9,信息系统集成,54,3.8 基于组件的软件开发,开发EJB组件 EJB容器 Enterprise Bean是在称作EJB容器的特殊环境中运行的软件组件。容器容纳和管理的方式与Java Web服务器容纳Servlet或HTML浏览器容纳Java Applet的方式相同。 EJ

39、B容器在运行时管理Enterprise Bean的各个方面,包括远程访问Bean、安全性、持续、事务并行性和资源的访问与合用。 容器不允许客户机应用程序直接访问Enterprise Bean。当客户机应用程序调用Enterprise Bean上的远程方法时,容器首先拦截调用,以保持持续、事务和安全性都正确应用于客户机对Bean执行的每一个操作。 Bean开发人员可以将精力集中于封装商业规则,而容器处理其他的一切。,2018/10/9,信息系统集成,55,3.8 基于组件的软件开发,EJB组件的组成 规范的EJB组件由Home接口、Remote接口、组件类和部署描述文件构成。 EJB组件的Hom

40、e接口用于定义创建、查找和删除组件对象实例的方法。以有状态会话类型EJB组件CalcBonusEJB为例,其Home接口定义如下面代码所示:,2018/10/9,信息系统集成,56,3.8 基于组件的软件开发,EJB组件的组成,在上述定义中,EJB组件的Home接口继承EJBHome接口,在该接口中包括两个异构类型的创建组件对象实例的create方法,两个方法均返回该EJB组件的Remote接口对象。在Home接口中还定义了用于从EJB容器的组件实例池中删除组件对象实例的remove方法。该方法对应于EJB组件类中定义的ejbRemove方法。 对于实体类型EJB组件,在组件的Home接口中还

41、应定义查找组件对象实例的方法,用于客户端根据实体组件的主键值在EJB容器中查找指定的实体类型EJB组件。该方法的定义和实现过程将在第6讲中详细讲解。 另外,Home接口中定义的create方法和remove方法能够抛出的Remote Exception和CreateException类型异常。两种类型的异常定义在java.rmi包中并且异常的参数和返回值类型均为合法的RMI-IIOP类型。由异常的返回值形式可以看出:EJB组件对象的Home接口是对Java RMI-IIOP协议有效的接口,客户端应用可以基于RMI-IIOP协议访问部署在EJB容器中的组件对象的Home接口。 在Home接口中定

42、义的方法除了能够抛出上述系统异常外,EJB组件的设计人员可以定义用户类型异常并Home接口中定义的方法抛出。,2018/10/9,信息系统集成,57,3.8 基于组件的软件开发,EJB组件的Remote接口用于定义客户端应用程序能够调用的组件商务方法。与Java接口定义相似,在Remote接口中定义的商务方法只是一个框架而没有具体的实现代码。EJB组件设计人员根据Remote接口中定义的商务方法在组件类中为这些方法编写实现代码。有状态会话类型EJB组件CalcBonusEJB的Remote接口定义如下:,2018/10/9,信息系统集成,58,3.8 基于组件的软件开发,EJB组件的Remot

43、e接口继承定义在javax.ejb包中的EJBObject接口。在Remote接口中定义了两个名称分别为calculateBonus和calculateTax的方法。两个方法均抛出RemoteException类型异常。由Remote接口中定义的方法能够抛出的异常类型可以看出:Remote接口同样是对于Java RMI-IIOP协议有效的远程接口。,EJB组件类用于定义两种类型方法的实现代码:一种是EJB组件的生命期方法,另外一种是EJB组件的Remote接口中定义的商务方法。,2018/10/9,信息系统集成,59,3.8 基于组件的软件开发,会话类型EJB组件对象的组件类实现Session

44、 Bean接口、实体类型EJB组件实现EntityBean接口、消息驱动类型EJB组件实现MessageDriven Bean和MessageListener接口。下面代码为有状态会话类型EJB组件CalcBonusEJB的组件类定义代码:,2018/10/9,信息系统集成,60,3.8 基于组件的软件开发,上述会话类型EJB组件对象CalcBonusEJB的组件类定义实现了Session Bean接口对象。 就有状态会话类型EJB组件而言,在组件类定义中除了实现组件的商务方法外,还需要实现SessionBean接口中定义的ejbCreate、ejbRemove、ejbAc tivate和ej

45、bPassivate等组件生命期方法。 会话类型EJB组件的生命期由EJB组件部署的EJB容器控制,因此在定义的方法中没有任何代码。如果定义一个组件管理持久性(BMP)实体类型的EJB组件,则需要为所有的组件生命期方法编写生命期控制代码。 另外还需要明确的是:客户端应用程序调用部署在EJB服务器中EJB组件的方法,其实质上不是直接调用组件类中定义的方法,而是通过EJB组件的Home接口和Remote接口在EJB容器中的映射由EJB容器采用代理方式调用EJB组件类中的商务方法或者生命期方法。,2018/10/9,信息系统集成,61,3.8 基于组件的软件开发,部署描述文件是EJB组件的组装者和部署者应用的XML类型文档,其主要作用是声明EJB组件的构成、部署过程中需要EJB容器提供的服务以及对于系统资源的需求等信息。在EJB组件的组装和部署过程中,部署描述文件和EJB组件的Home接口、Remote接口以及组件类定义文件打包成为JAR压缩文档。下面的代码为CalcBonusEJB组件对象部署描述文件的部分代码:,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教学课件 > 大学教育

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1