《三章应用软件集成体系结构.ppt》由会员分享,可在线阅读,更多相关《三章应用软件集成体系结构.ppt(61页珍藏版)》请在三一文库上搜索。
1、第三章 应用软件集成体系结构 l概述 l客户机/服务器模式 l分布式计算 l软件重用技术 l中间件技术 lJ2EE应用架构 l.NET应用架构 l基于组件的软件开发 Date1信息系统集成 3.1 概述 l软件应用架构 20世纪60年代到70年代,软件危机使软件成本日益增长,开发速度难以 控制,质量无法保证,软件的维护困难等。-软件工程 软件工程发展初期,设计的重点是数据结构和算法的选择上。随着规模 和复杂度的变化,人们开始认识到软件架构的重要性。 l软件架构的定义 将软件系统划分成多个模块,明确各模块之间的相互作用,组合起来实现 系统的全部特征,就是系统的架构。 软件架构为软件系统提供了一个
2、结构、行为和属性的高级抽象,并由构成 系统的元素的描述及元素的相互作用、元素集成的模式,以及这些模式的 约束组成。 Date2信息系统集成 3.1 概述 l软件架构的作用 l软件架构是系统环境中的一个高层概念,每个系统都有一个架构。架 构是用于表达整个系统的结构和行为的模型,表达系统如何满足其环 境上下文的要求,并表示主要的系统构件、其交互和依赖关系,以及 其操作所需满足的约束。 l软件架构模型 l研究软件架构的首要问题是如何表示软件架构,即如何对软件架构建 模。根据建模角度(侧重点)不同,通常将软件架构的模型分为5种: 结构模型、框架模型、动态模型、过程模型和功能模型。 l最常用的是结构模型
3、和动态模型。 Date3信息系统集成 3.1 概述 l应用软件的计算模式 l应用系统在某种计算问题的解决过程中,采用的对计算资源的组织、 调度上的某种有效方法。 l计算资源是参与计算过程的所有资源:处理器、存储器、通信线路、 程序和数据等。 l从发展历程看,应用系统的计算模式主要包括集中式和分布式计算。 l20世纪80年代之前,人们深入思考的是如何充分利用计算资源。 l近年来,网络技术的发展使得分布式计算技术成为核心技术。 l工业化分布式计算技术的发展已经经历了两代:第一代分布式计算技 术是以支持信息共享为目标的面向过程的客户机/服务器技术;第二代 分布计算技术是以面向对象为主要特征的分布式对
4、象技术。 l当前以Internet为平台的Agent计算、网格计算等分布式计算技术逐步 深入的影响未来分布式计算技术的发展。 Date4信息系统集成 3.2 客户机/服务器模式 l两层C/S模式 lC/S的核心特征是任务的分解,由不同的计算 资源承担任务,通过协作完成任务。 l两层C/S模式是最早使用的C/S模式。 客户端操作系统 应用业务逻辑 用户交互界面 数据库 数据库管理系统 网络操作系统 服 务 器 客 户 机 Request Response Date5信息系统集成 3.2 客户机/服务器模式 lB/S结构 lBrower/Server 浏览器/服务器模式 数据库 数据库管理系统 网
5、络操作系统 服 务 数据库访问系统 Web支撑系统 网络操作系统 Web 服 务 客户操作系统 浏览器 客 户 机 HTTP CGI TCP/IP IIOP Active X RequestRequest HTTP TCP/IP Date6信息系统集成 3.2 客户机/服务器模式 l多层C/S结构 lB/S模式在构造复杂应用系统时,利用CGI等 技术开发部署很难提高系统运行效率。 l现有的Web服务器支撑系统很难对各类中间 件进行有效的管理和组织,需要专门针对中 间件的支撑系统。 l数据操纵的安全性很难保障。 l应用系统被划分为:客户层、表示层、业务 逻辑层(应用层)、数据管理层(数据层)。
6、Date7信息系统集成 3.2 客户机/服务器模式 l多层C/S模式中,应用系统被划分为 客户层:一般PC,通过浏览器与Web服务器联系 ,访问Web服务器资源。 表示层:Web服务器,接受用户交互式操作,并 将操作请求传递给应用服务器。 业务逻辑层:应用服务支撑系统,分布式对象管 理容器,接受Web服务器的请求,执行业务逻辑 返回结果,与后台数据库绑定,一般将数据库资 源映射为数据对象。 数据管理层:数据库服务器。 Date8信息系统集成 3.2 客户机/服务器模式 l多层C/S结构的基本计算过程 对多层C/S模式的支持规范主要有Sun的J2EE和 微软的.NET。 数据库 数据库管理系统
7、网络操作系统 数据库服务器 应用逻辑 中间件管理容器 网络操作系统 应用服务器 客户操作系统 浏览器 客 户 机 请求 Web支撑系统 网络操作系统 Web 服 务 器 服务 Date9信息系统集成 3.3 分布式计算 l移动Agent l20世纪90年代初由General Magic 公司在推出商业 Telescript时提出的,主要思想在于:结合Agent技术 和分布式计算技术,将服务请求Agent动态移到服务 器端执行。使此Agent较少依赖网络传输,而直接面 对要访问的服务器资源,降低了对网络带宽的依赖。 l移动Agent不需要统一调度,由用户创建的Agent,用 户可自行创建多个Ag
8、ent,同时在一个或多个节点上 运行,形成并行求解能力。 l可自行决定何时中断任务,并将自己转移到另一台机 器上。 l具有自治性和智能路由的性能。 Date10信息系统集成 3.3 分布式计算 l网格计算 lGrid称为网格计算 l思想在于:将闲置在Internet各处的MIPS捆绑在一起加 以利用,以便用累积的计算能力来完成超级计算机的 任务。 l网格计算主要应用在大批量的小任务,如:声视频点 播,具有突发的大量的资源需求,实时分布式仪表系 统等。 l目前对网格的一般理解是指把整个互联网或某个区域 整合成统一的计算机系统。 l网格的根本特征不在于规模,而是资源的广泛共享。 Date11信息系
9、统集成 3.3 分布式计算 l分布式对象技术 l分布式技术的应用使得系统规模越来越大。 l网络间的异构问题必须解决。 l分布式系统的复杂性使得系统的可靠性降低。 l分布式软件的开发和维护成本高昂。 l通过结合面向对象技术,实现分布式软件的可移植 性、互操作性、可靠性和可重用性。 l屏蔽了不同系统间的差异和底层细节,减小分布式 系统开发难度,提高分布式软件的性能。 l目前主流的有:COM/DCOM、Java、COBRA Date12信息系统集成 3.3 分布式计算 l分布式对象技术 l采用了面向对象技术中的封装性和继承性两大特点。所操作的 对象通常称之为组件。 客户 客户stub 线路协议 客户
10、端 服务器 服务器stub 线路协议 服务器端 网络环境 高层 中层 底层 Date13信息系统集成 3.4 软件重用技术 l软件重用概念 l指在两次或多次不同的软件开发过程中重复使用相同 或相近软件元素的过程。 l软件元素包括:程序代码、测试用例、设计文档、设 计过程、需求分析文档或领域知识。 l将这种可重用的元素成为软构件,可重用的软件元素 越大,重用的粒度越大。 l基于构件的软件开发通常包括构件获取、构件分类和 检索、构件评估、适应性修改,以及将现有的构件在 新的语境下组装成新的系统的过程。 l软件重用中的构件是指语义完整、语法正确和有可重 用价值的单位软件,是软件重用过程中可以明确标识
11、 的元素。 Date14信息系统集成 3.4 软件重用技术 l面向重用的软件开发 l需考虑“使用重用的开发(Develop with reuse)”和“用 于重用的开发(Develop for reuse)”。前者使用已有 的构件进行软件开发;后者的目的是开发可重用的 软件。 l用户需根据应用领域的特点及相似性确定构件的可 重用性。 l一旦确定了重用价值,就可以将构件的设计通用化 ,然后将其加入到构件库。 l整个软件的开发过程是构件的不断积累、不断完善 的渐进过程。 l在开发的过程中对构件修改、或替代原有构件。 Date15信息系统集成 3.4 软件重用技术 l面向重用的软件开发 l以面向对象
12、方法为基础,增强软件的重用性。 l开发过程中可重用的构件,可以使面向对象方法中的对象或对 象的集合,也可以使非面向对象方法中的可重用构件。 领域分析 软件开发 理解构件功能 检索所需构件 确认构件的重要性 可重用构件库 领域知识 用户需求目标软件 Date16信息系统集成 3.5 中间件技术 l中间件概念 l中间件(Middleware)是位于硬件、操作系统 等平台和应用之间的通用服务。 中间件(系统服务) 应用程序1应用程序2应用程序3 操作系统/硬件平台1操作系统/硬件平台2 Date17信息系统集成 3.5 中间件技术 l中间件的目的 l实现应用与平台的无关性,满足大量应用的需要。 l中
13、间件的作用 l屏蔽操作系统和网络协议的差异,为应用程序提供 多种通信机制满足不同领域的应用需要。 l中间件服务所遵循的原则离实际还有很大的距离。 多数中间件使用专有的协议,使应用只能构件在单 一的厂家的产品之上。 l有些中间件只提供某些平台的实现,限制了应用在 异构系统之间的移植。 Date18信息系统集成 3.5 中间件技术 l中间件的分类 l数据库访问中间件 l远程过程调用中间件 l面向消息中间件 l事务中间件 l分布式对象中间件 Date19信息系统集成 3.5 中间件技术 l数据库访问中间件 通过一个抽象层访问数据库,从而允许使用相同或相似的代 码访问不同的数据库资源。 典型的如:Wi
14、ndows下的ODBC和Java中的JDBC l远程过程调用中间件 一个应用程序使用RPC来“远程”执行一个位于不同地址空间 内的过程,从效果上看和执行本地调用相同。 一个RPC应用分为两个部分:服务器和客户 服务器提供一个或多个远程过程;客户向服务器发出远程调 用。 客户和服务器之间的网络通信和数据转换通过代理程序(stub 与 skeleton)完成,从而屏蔽了不同操作系统和网络协议。 Date20信息系统集成 3.5 中间件技术 l面向消息中间件 利用高效可靠的消息传递机制进行平台无关的数 据交流,并可基于数据通信进行分布系统的集成 。 典型的产品:IBM的MQSeries 使用MOM,
15、通信双方的程序可以在不同的时间运 行,程序不在网络上直接通话。 消息放入适当的队列,等待目标程序运行。 避免了网络通信的复杂性。 消息队列和网络通信的维护工作由MOM完成。 Date21信息系统集成 3.5 中间件技术 l分布式对象中间件 l采用分布式对象技术,结合面向对象技术实现。 l对象请求代理(Object Request Broker , ORB)模型提 供了一个通信框架,在异构的分布计算环境中透明 地传递对象请求。 lORB是一种对象总线,定义了异构环境下对象透明 的发送请求和接受响应的基本机制,是建立对象之 间客户/服务器关系的中间件。 lORB使对象可以透明地向其他对象发出请求或
16、接受 其他对象的响应,这些对象可在本地也可远程 lORB拦截请求调用,并负责找到可以实现请求的对 象、传送参数、调用相应的方法、返回结果等。 l客户不需要知道服务器的信息。 Date22信息系统集成 3.5 中间件技术 l事务中间件(Transaction Processing Monitor) 最早出现在大型机上,为其提供大规模事务处理的可靠运行环境 。 事务处理监控程序位于客户和服务器之间,完成事务管理与协调 、负载平衡、失效恢复等任务。 随着对象技术和事务技术的结合,出现了对象事务监控器,可保证 分布式对象的事务完整性。 事务中间件可以满足现代业务应用系统的12条基本原则:完整性 、安全
17、性、可伸缩性、可用性、可管理性、互操作性、适应性、 易开发性、经济性、快速的响应时间、数据的可分布性、易用性 。 采用商业事务中间件的优势在于缩短产品投放市场所需的时间、 节省应用开发费用、减少系统运行开销、简化应用集成、降低软 件的维护费用等。 Date23信息系统集成 3.5 中间件技术 l构件技术与中间件 l中间件作为存在于系统软件与应用之间的特殊层次,对典型的应用模 式进行抽象,从而使应用软件开阿人员可以将精力更多地放在业务逻 辑上,并按照标准形式进行开发,从而使软件架构的应用成为可能。 l构件的使用对架构技术(即环境、基础设施、计算平台等)有极大的依 赖性。只有在适当的架构中,软件才
18、有可能被抽象成为构件。 l中间件,从本质上说是对分布式应用的抽象,抛开了与应用相关的业 务逻辑细节,保留了典型的分布交互模式的关键特征。经过抽象,对 复杂的分布式系统进行提炼和必要的封装隔离后,以统一的形式呈现 给应用。 l中间件与架构是从两种不同的角度看待软件的中间层次,可以将中间 件理解为架构或构建模型的具体实现,是构件存在的基础,中间件促 进了软件的构件化。 l中间件作为分布式计算平台,涉及各种不同的资源,包括各种操作系 统、数据库、网络协议甚至语言,其目标是在分布的环境中统一使用 这些资源。 Date24信息系统集成 3.5 中间件技术 l应用服务器 l应用服务器(Applicatio
19、n Server)是企业极应用在Internet上迅速发展的 条件下,出现的一种中间件技术。它可以处理客户和数据之间的交互 操作,并提供一组前面提到的中间件服务,包括事务管理、ORB、 MOM、系统安全、负载均衡及资源管理等。 l应用服务器还提供了一个称为容器的管理环境,可以对应用中的组件 进行配置和管理。 l应用服务器在技术上并没有任何标准和规范是为某个商业性公司所独 占,全部都基于Internet上的开放标准,因而具有极强的生命力。 l使用应用服务器可以帮助企业构建一个基于Internet的电子商务系统, 而且拥有很高的稳定性、可扩展性和安全性。 l应用服务器向企业级用户提供了设计、开发、
20、部署、运行和管理 Internet电子商务应用系统的平台,适用于Internet上的电子商务应用 。 Date25信息系统集成 3.5 中间件技术 l应用服务器的优点在于: 三层架构体系:适合Internet环境,使系统具有很强的可扩展性和 可管理性。 分布式环境:保证系统的稳定性,同时拥有较高的性能。 面向对象的模块化构件设计:提高开发速度,降低开发成本。 采用Java技术:完全跨平台,适合Internet需要,并获得大多数厂 商的支持,可以保护用户的投资。 应用服务器采用的三层(多层)架构,将应用逻辑单独作为一层,客 户可以根据不同的应用逻辑专心设计该层。需要扩展业务时,只 需专注于改进中
21、间层的设计,使原系统能够平滑方便地升级。 Date26信息系统集成 3.6 J2EE应用架构 lJ2EE(Java 2 Platform Enterprise Edition) l是Sun公司领导、各厂商共同制定并得到广 泛认可的工业标准。 lJ2EE将开发工作分为两类:业务逻辑开发和 表示逻辑开发,其余的系统资源则由应用服 务器自动处理,不必为中间层的资源和运行 管理进行编码。将更多的开发精力集中在应 用程序的业务逻辑和表示逻辑上,从而缩短 企业的应用开发周期、有效保护企业的投资 。 Date27信息系统集成 3.6 J2EE应用架构 lJ2ME(Java 2 Platform Micro
22、Edition) Java2平台简化版,适合嵌入式系统开发。 lJ2SE(Java 2 Platform Standard Edition) Java2平台标准版,是为Java Applet和应用程序提供的Java标 准运行环境支持的平台,包括输入/输出和图形用户界面等。 lJ2EE(Java 2 Platform Enterprise Edition) Java 2平台企业版,将Java企业级API捆绑在一起的成为Java 语言进行服务器端的企业应用部署的开发平台。J2EE运行在 J2SE之上。 Date28信息系统集成 3.6 J2EE应用架构 lJ2EE技术规范 规范简称 Java Me
23、ssage Service:Java消息服务,允许分布对象之间的异步通信JMS Java Mail:Java邮件,满足平台无关,协议 无关方式的邮件发送Java Mail Java Interface Definition Language:Java接口定义语 言,是实现 CORBA 标准的模型,允许与其他语言的集成和CORBA标准服务的分布处理 Java IDL Remote Method InvocationInternet Inter-ORB Protocol:远程方法调用 Internet Inter-ORB协议 ,是RMI的可移植性扩展,是基于CORBA标准协 议,允许进 程间相互通
24、信,实现 CORBA集成 RMI-IIOP Java Naming and Directory Interface:Java命名和目录接口,是透明查找 分布对象和服务的机制,用来定位组件和资源在网络中的位置 JNDI Java Service:Java感知对象,可以通过HTTP的请求/响应与Web客户的 交互,通常用来实现 表示逻辑 Servlet Date29信息系统集成 3.6 J2EE应用架构 lJ2EE技术规范(续表) 规范简称 Java Server Page:Java服务页 面,主要用于动态页 面生成,实际 上也是 Servlet,由HTML或XML和部分Java代码交织编 写,也
25、可实现对业务层 的 直接访问 JSP Java API for XML Parsing:解析XML的Java APIJAXP Enterprise Java Beans:企业级 Java Bean,用于封装业务逻辑 的软件组 件,通过EJB容器来管理EJB的生命周期、安全和事务 EJB Java Database Connectivity Extension:Java数据库连 接扩展,是Java访 问关系数据库的标准连接桥。 JDBC Date30信息系统集成 3.6 J2EE应用架构 lJ2EE多层架构 lJ2EE采用多层应用架构,整个系统分为客户层、J2EE应用服务器和 企业信息系统层。大
26、部分J2EE应用都划分成三层或四层,复杂的系统 可能会有更多的层次。 l这样每个层次都有明确的职责,系统结构十分清晰。 应用客户/ 浏览器 客户层 JSP/ Servlet Web层 EJB 业务层 数据库 EIS层 J2EE服务器 Date31信息系统集成 3.6 J2EE应用架构 lJ2EE多层架构 lJ2EE的多层次分布式应用模型是根据功能把 应用逻辑分成多个层次,每个层次支持相应 的服务器和组件,组件在分布式服务器的组 建容器中运行。 l在企业开发逻辑上将系统划分为五层:客户 层、Web层(表示层)、业务层、集成层和资 源层。 Date32信息系统集成 3.6 J2EE应用架构 lJ2
27、EE多层应用体系结构 浏 览 器 特 制 客 户 端 容器容器容器 Servlet JSP 会话 Bean 实体 Bean 消息驱动 Bean JDBC 公用 适配器 专用 适配器 数据库 其他 应用 系统 Date33信息系统集成 3.6 J2EE应用架构 lJ2EE客户层 系统的客户端,在J2EE体系中的客户端可以是浏 览器,也可以是具有特殊要求的定制客户端。 采用一般浏览器的是B/S结构中所提倡的瘦客户端 ;采用Java Applet一般属于胖客户端,客户端程 序具有部分业务逻辑描述,并提供具有Java风格 的特制用户交互界面。 客户端与表示层之间通过HTTP/HTTPS即可交互 ,承载
28、的语言一般是HTML或XML。对使用胖客 户端的情况,采用的交互手段可以多种多样。 Date34信息系统集成 3.6 J2EE应用架构 l表示层: 提供交互界面,接受用户的输入,将用户的操作 请求传递给应用层,等待应用层处理结果处理结 果,并将结果返回给用户。 在用户和应用逻辑之间起到中介作用。 表示层可以承担几乎全部逻辑,但是基于对系统 的可扩展性、可维护性和负载均衡等问题的考虑 ,在构造大型应用中,Web服务器(表示层)尽量 少一些业务逻辑的处理,而将业务逻辑交给应用 层。 表示层与应用层之间的通信主要借助JMS和RMI 进行。 Date35信息系统集成 3.6 J2EE应用架构 l业务层
29、 业务层主要完成业务逻辑的执行,与数据库及后 台系统资源进行交互的应用系统部分,在J2EE中 ,提供应用层业务逻辑支持和数据库操作支持的 组件主要是EJB。 EJB首先是一种技术规范,它本身并不提供分布 式计算支持。EJB的组件特性、分布式计算特征 均是由EJB容器提供的。 程序员将从繁重复杂的分布式对象和组件构造中 解脱出来,而把精力全部投入到业务逻辑本身。 Date36信息系统集成 3.6 J2EE应用架构 l集成层 集成层主要完成应用层的业务逻辑与各类数据库 资源、不同应用系统之间的集成。实现数据的共 享和应用功能的共享。 数据库连接主要由EJB和JDBC实现,应用程序之 间功能操作一般
30、采用适配器来实现。 l资源层 资源层主要是指信息资源,包括各类数据库、文 档以及其他的应用系统等。 可能是系统建设中新建的资源,也可能是企业信 息化过程中遗留下来的系统资源。 Date37信息系统集成 3.7 .NET应用架构 l.NET概述 l微软的.NET是一组开放的互联网协议,推出 的一系列产品、技术和服务。.NET开发框架 在通用语言运行环境基础上,给开发人员提 供了完善的基础库类、数据库访问技术及网 络开发技术,开发者可以使用多种语言快速 构建网络应用。 l包括企业内部、企业之间各类应用的集成统 一,也包括个性化集成服务。内容覆盖了不 同的设备接入、Web服务应用的开发、部署 、发布
31、、服务等。 Date38信息系统集成 3.7 .NET应用架构 l.NET框架概述 l.NET框架旨在实现下列目标: 提供一个一致的面向对象的编程环境,而无论对象代码是在本地 存储执行,还是在本地执行但在Internet上分布,或者远程执行。 提供一个将软件部署和版本控制冲突最小化的代码执行环境,以 消除“DLL HELL”问题。 提供一个保证代码安全执行的代码执行环境。 提供一个可消除脚本环境或解释环境的性能问题的代码执行环境 。 按照工业标准生成所有通信,以确保基于.NET框架的代码可与任 何其他代码集成。 l.NET框架体系结构由以下部分组成: 通用语言运行时、框架类库、ASP.NET以
32、及ADO.NET、企业服务 、Web服务、Windows窗体、远程处理等。 Visual.Studio.NET是全面支持.NET的开发工具。 Date39信息系统集成 3.7 .NET应用架构 l.NET开发框架 VBC+C#JScript 通用语言规范 ADO.NET ASP.NETWindows应用 通用语言运行环境(common language runtime) 框架类库(framework class library) Visual Studio.NET Date40信息系统集成 3.7 .NET应用架构 l通用语言运行环境(CLR) CLR处于.NET框架的最底层,它是将底层平台差
33、 异进行抽象的运行期基础设施。 CLR支持所有能用公共中间语言CIL表示的编程语 言。从而为多种语言提供了一种统一的运行环境, 使得组件和XML Web服务的综合使用不再受编程 语言的限制。 提供了更多的功能和特性,从而大大简化了应用程 序的发布和升级;多种语言之间的交互;自动的内 存和资源管理等。 .NET中的几个重要的概念是程序集、应用程序域 、元数据和IL中间语言。 Date41信息系统集成 3.7 .NET应用架构 l几个重要概念 l程序集 程序集是.NET平台用于部署和配置的单元。 它是自我描述的安装单元,由一个或多个文件组 成,一个程序集可以是一个包括元数据的DLL或 EXE,也可
34、以由多个文件组成,如资源文件、元 数据、DLL和EXE。 Date42信息系统集成 3.7 .NET应用架构 l应用程序域 提供安全而通用的处理单元,处理CLR可使用它 来提供应用程序之间的隔离。可以在具有同等隔 离级别的单个程序中运行几个应用程序域,而不 会造成进程间调用或进程间切换等方面的额外开 销,在一个进程内运行多个应用程序的能力显著 增强了服务器的可伸缩性。 应用程序域所提供的隔离优点在于: 在一个应用程序中出现的错误不会影响其他应用程序。 能够在不停止整个进程的情况下停止单个应用程序。 使用应用程序域可以卸载在党应用程序中运行的代码。 Date43信息系统集成 3.7 .NET应用
35、架构 l元数据 在CLR中运行的可执行文件与Windows可执行文 件不同,因为它们不仅有代码和数据,而且还有 元数据(meta data)。 在.NET中,元数据包括类型定义、版本信息、外 部程序集引用和其他标准化信息。.NET使用元数 据描述特定.NET程序集中使用和暴露的所有类型 。 元数据比类型库丰富得多,包括程序集、模块、 类、接口、方法、属性、字段、事件以及全局方 法等的描述。 可以利用.NET提供的反射API对程序集的元数据 进行访问。 Date44信息系统集成 3.7 .NET应用架构 lIL中间语言 Microsoft将它的语言抽象层成为公用中间语言 (common inte
36、rmediate language, CLR),IL类似 于Java编译器声称的字节码,支持所有面向对象 特性,包括数据抽象、继承、多态以及异常的事 件等概念。 任何.NET语言都可以转化为IL,因此.NET支持多 种语言,而且将来可能支持多种平台,只要目标 平台有IL。 公用类型系统CTS和公用语言规范CLS可确保多 种语言的兼容性、互操作性和可集成性。 Date45信息系统集成 3.7 .NET应用架构 CLR主要包括类装载器、JIT编译器和其他执 行支持和管理组件。 .NET PE( portable executable)文件位于CLR 的顶层,在CLR的VEE中执行。 类装载器负责将
37、.NET类装载进内存并为它们 的执行做准备。在成功完成之前,必须找到 目标类。一旦目标类装载,类装载器就向该 类的每个方法发出一个小的存根(stub)。 在类装载器装载之后,而在IL代码执行之前 ,验证器处理必须验证的代码。验证器在运 行时用来验证代码是否安全。 最后,托管的本机代码将接受其他执行支持 组建的处理,如代码管理、安全管理、无用 资源回收、异常管理、调试管理、列集管理 和线程管理等。 .NET PE文件 类装载器 JIT编译器 验证器 JIT 执行支持和管理 Date46信息系统集成 3.7 .NET应用架构 lADO.NET lADO.NET是数据访问模型,用于访问关系型数据库
38、系统。 lADO.NET优点如下: 互操作性 采用XML作为其有效的数据格式,解决了公用数据交换的限制,而且,由 于XML只是结构化文本,将XML作为HTTP网络协议顶层的数据格式,可 以将防火墙的相关问题减至最小。 可伸缩性 采用非连接数据机,当客户请求数据时,数据集将被获得,并传送至客户 ,然后连接会尽可能的及时关闭。提高了可伸缩性和系统的性能。 高效性 ADO.NET提供了丰富而可扩展的框架类,开发者可以在此基础上 快速开发健壮的、高性能的XML Web服务和现在流行的N层应用 程序。 Date47信息系统集成 3.7 .NET应用架构 lADO.NET的对象模型包括两组不同的类:内 容
39、组件和托管供应器组件。 内容组件包括DataSet类和 其他支持类: DataTable,DataRow等 托管供应器组件用于辅助数 据获取和更新。 SQL Server和其他OLE DB数据存储 Command Connection Connection Command DataReader DataAdapter 数据 存储 托管供应器组件 与数据相关组件 DataSet Date48信息系统集成 3.7 .NET应用架构 lASP.NET lASP.NET是Microsoft.NET中的网络编程结构,使得 建造、运行和发布网络应用非常方便和高效。 lASP.NET网络表单 设计目的就是使
40、得开发者能够非常容易的创建网络表单,将VB中的快速 开发模型引入到网络开发中来。 lASP.NET Web服务 在ASP.NET中,建造和使用网络服务都非常方便,在ASP.NET中建造 网络服务就是编写一个扩展名为.asmx的文件,在这个文件中加入需要 表现的方法既可,网络服务的建造者不需要了解SOAP和XML的细节。 lASP.NET应用框架 ASP.NET应用不再是解释脚本,而是编译运行,再加上灵活的缓冲技术 ,从根本上提高了性能;发布一个网络应用,仅仅是一个复制文件的过 程;开发者可以将应用的配置信息存放在XML格式的文件中;提供更多 的认证和安全管理方式,提高应用程序的可靠性。 Dat
41、e49信息系统集成 3.7 .NET应用架构 lJ2EE与.NET比较 特征J2EE.NET 技术类型业界标准产品 中间件厂商30多家微软 解释器JRECLR 动态Web页面支持JSPASP.NET 中间层组 件EJB.NET管理的组件 数据库访问JDBC,SQL/JADO.NET 是否支持Web服务是是 是否具备中间件功能是是 Date50信息系统集成 3.8 基于组件的软件开发 l问题的提出 l计算机的不断发展为计算机及网络应用提供了大量技术先进、 功能强大的应用软件系统,同时也给软件开发者和用户提出了 问题: 软件系统规模庞大,研制周期长,维护费用高。 软件系统过于复杂,在一个系统中集成
42、了各种功能,大多数功能 不能灵活的装卸、单独升级或重复利用。 应用软件不易集成,即使各应用程序是用相同的编程语言编写的 ,并且运行在相同的机器上,特定应用程序的数据和功能也不能 提供给其他应用程序使用。 l面向对象的程序设计思想得到很大的发展,结果却产生了大量 的“对象孤岛”。 l将面向对象思想和组件编程思想结合发展出急于对象的组建软 件结构,为这一领域开辟了新的道路。 Date51信息系统集成 3.8 基于组件的软件开发 l组件技术的发展简史和特点 l软件系统规模庞大,研制周期长,维护费用高。 l软件系统过于复杂,在一个系统中集成了各种功能 ,大多数功能不能灵活的装卸、单独升级或重复利 用。
43、 l应用软件不易集成,即使各应用程序是用相同的编 程语言来编写的,并且运行在相同的计算机上,特 定应用程序的数据和功能也不能提供给其他应用程 序使用。 l为克服以上困难,实现行业范围软件的“即插即用”, 关键是解决软件系统的可操作性、可扩展性、语言 独立性和跨平台操作能力。 Date52信息系统集成 3.8 基于组件的软件开发 l软件组件可看成一种软件集成电路元件: 软件IC没有硬件IC的天然聚合性,构成粒度大小 自由,便于扩展。 通过规定一个统一的二进制标准,建立起机构之 间的智能互操作机制和语言独立性。 外界仅通过接口访问组件。 多侧面性,即组件表达的语义层次高,可以从不 同侧面进行连接,
44、外部特性不惟一。 支持封装、继承、多态性。 Date53信息系统集成 3.8 基于组件的软件开发 l开发EJB组件 lEJB容器 Enterprise Bean是在称作EJB容器的特殊环境中运行的软 件组件。容器容纳和管理的方式与Java Web服务器容纳 Servlet或HTML浏览器容纳Java Applet的方式相同。 EJB容器在运行时管理Enterprise Bean的各个方面,包括 远程访问Bean、安全性、持续、事务并行性和资源的访问 与合用。 容器不允许客户机应用程序直接访问Enterprise Bean。当 客户机应用程序调用Enterprise Bean上的远程方法时,容
45、器首先拦截调用,以保持持续、事务和安全性都正确应用 于客户机对Bean执行的每一个操作。 Bean开发人员可以将精力集中于封装商业规则,而容器处 理其他的一切。 Date54信息系统集成 3.8 基于组件的软件开发 lEJB组件的组成 规范的EJB组件由Home接口、Remote接口、组 件类和部署描述文件构成。 EJB组件的Home接口用于定义创建、查找和删除 组件对象实例的方法。以有状态会话类型EJB组 件CalcBonusEJB为例,其Home接口定义如下面 代码所示: Date55信息系统集成 3.8 基于组件的软件开发 lEJB组件的组成 在上述定义中,EJB组件的Home接口继承E
46、JBHome接口,在该接 口中包括两个异构类型的创建组件对象实例的create方法,两个方法均返回 该EJB组件的Remote接口对象。在Home接口中还定义了用于从EJB容器的 组件实例池中删除组件对象实例的remove方法。该方法对应于EJB组件类中 定义的ejbRemove方法。 对于实体类型EJB组件,在组件的Home接口中还应定义查找组件对 象实例的方法,用于客户端根据实体组件的主键值在EJB容器中查找指定的 实体类型EJB组件。该方法的定义和实现过程将在第6讲中详细讲解。 另外,Home接口中定义的create方法和remove方法能够抛出的 Remote Exception和Cr
47、eateException类型异常。两种类型的异常定义在 java.rmi包中并且异常的参数和返回值类型均为合法的RMI-IIOP类型。由异 常的返回值形式可以看出:EJB组件对象的Home接口是对Java RMI-IIOP协 议有效的接口,客户端应用可以基于RMI-IIOP协议访问部署在EJB容器中的 组件对象的Home接口。 在Home接口中定义的方法除了能够抛出上述系统异常外,EJB组件 的设计人员可以定义用户类型异常并Home接口中定义的方法抛出。 Date56信息系统集成 3.8 基于组件的软件开发 EJB组件的Remote接口用于定义客户端应用程序 能够调用的组件商务方法。与Jav
48、a接口定义相似 ,在Remote接口中定义的商务方法只是一个框架 而没有具体的实现代码。EJB组件设计人员根据 Remote接口中定义的商务方法在组件类中为这些 方法编写实现代码。有状态会话类型EJB组件 CalcBonusEJB的Remote接口定义如下: Date57信息系统集成 3.8 基于组件的软件开发 EJB组件的Remote接口继承定义在javax.ejb包中的EJBObject接口。 在Remote接口中定义了两个名称分别为calculateBonus和calculateTax的方 法。两个方法均抛出RemoteException类型异常。由Remote接口中定义的 方法能够抛出
49、的异常类型可以看出:Remote接口同样是对于Java RMI- IIOP协议有效的远程接口。 EJB组件类用于定义两种类型方法的实现代码: 一种是EJB组件的生命期方法,另外一种是EJB 组件的Remote接口中定义的商务方法。 Date58信息系统集成 3.8 基于组件的软件开发 会话类型EJB组件对象的组件类实现Session Bean接口、 实体类型EJB组件实现EntityBean接口、消息驱动类型EJB 组件实现MessageDriven Bean和MessageListener接口。 下面代码为有状态会话类型EJB组件CalcBonusEJB的组件 类定义代码: Date59信息系统集成 3.8 基于组件的软件开发 上述会话类型EJB组件对象CalcBonusEJB的组件类定义实现了Session Bean接口对象。 就有状态会话类型EJB组件而言,在组件类定义中除了实现组件的商务方 法外,还需要实现SessionBean接口中定义的ejbCreate、ejbRemove、ejbAc tivate和ejbPassivate等组件生命期方法。 会话类型EJB组件的生命期
链接地址:https://www.31doc.com/p-2626190.html