已阅读5页,还剩51页未读, 继续免费阅读
(交通信息工程及控制专业论文)基于J2EE的多层结构设计方法研究与应用.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
南京航空航天大学硕士学位论文 i 摘 要 随着企业信息化地位的提高,传统的企业开发平台正面临着严峻的挑战。现代的 企业信息系统业务逻辑多变、安全要求高、管理数据多,要求开发平台提供足够的灵 活性来适应现代企业应用系统开发的需要。在开发模型的系统结构方面,从最初的主 机/终端模型发展到b/s模型再到现在的多层b/s模式,相应地系统应用体系结构也由单 层结构发展到二层结构再到三层结构以至多层。如何在j2ee平台上根据客户需要快速 准确的开发网络应用系统是摆在广大科研人员面前的重要问题。 本文以多层浏览器/服务器构架和j2ee技术为基础,论述了基于j2ee以业务逻辑层 和web服务层为中心的企业应用,着重研究了该企业应用模型中的业务逻辑层及web 服务层的技术。首先深入研究了多层b/s构架和j2ee技术,对它们的优势、特性进行了 详细的分析研究,给出了基于j2ee的多层b/s企业解决方案,分析说明了以业务逻辑层 和web服务层为中心的企业应用实现方法。文章论述了基于j2ee以业务层为中心的企 业应用,着重研究j2ee多层模型中的核心层业务逻辑层和web服务层,在web服 务层通过使用单点登陆技术实现了统一身份认证,通过使用开发模式对业务逻辑层中 的工作流问题以及权限控制问题进行了详细设计。并结合实际项目工作,对如何应用 多层b/s构架及j2ee原则和技术方法构建高质量、高可用的分布式企业应用进行了尝 试。最后对全文进行了总结,提出了有待进一步深入研究和探索的问题。 关键词:关键词: j2ee,多层结构,统一身份认证,设计模式,工作流 基于 j2ee 的多层结构设计方法研究与应用 ii abstract with the enhancing of informatization within enterprise, the traditional enterprise development platform is now facing flinty challenges. because of the frequent change of internal logic, rigorous security demand and massive controlled data, modern enterprise information system demand that development platform should provide enough flexibility to adapt the demand of development of modern enterprise application system. in the system construction of the development model. it has developed from client/server model to the b/s model until now of multi-tiers b/s model; to adapt to the development of situation, the web application system of multi-tiers application architecture came into being. how to develop network application system fast and exactly on j2ee platform according to customers needs is an important problem in front of all researchers. premising basically with multi-tiers b/s frame based on j2ee, this thesis introduces enterprise application whose center is business logic tier and web service tier, and makes a point of investigating business logic tier and web service tier technology in the multi-tiers b/s enterprise application model based on j2ee. firstly, we lucubrate multi-tiers b/s frame and j2ee technology and summarize their advantages and characters. by detailed analysis and research, we propose that multi-tiers b/s enterprise application based on j2ee is the advanced solution to the construction of modern enterprise system. secondly, we introduce the multi-tiers b/s enterprise application model based on j2ee and make a point of the core tier-business logic tier and web service tier-in the j2ee multi-tiers model. in the web service tier, we realize unified identity service by using single sign on technology, in the business logic tier we design the workflow problem and permission control problem in detail by using design pattern. then combining with practical project, have a try on how to apply the method of multi-tiers b/s frame and j2ee principle and technology to the construction of high quality and practicable distributed enterprise application. finally, we propose some problems under further exploratory research on the basis of summarizing the whole thesis. keywords: j2ee, multi-tiers, unified identity service, design pattern, workflow 南京航空航天大学硕士学位论文 v 图表清单 图 2.1 集中式应用软件模型 3 图 2.2 两层结构应用软件模型4 图 2.3 三层结构应用软件的模型5 图 2.4 web 环境下三层应用软件模型7 图 3.1 基于 j2ee 的三层结构模型10 图 3.2 基于 j2ee 的多层结构模型11 图 4.1 客户层设计示意图 14 图 4.2 传统的用户身份认证模式16 图 4.3 单点登陆逻辑图17 图 4.4 基于 web 的 sso 流程示意图18 图 4.5 identity server 中 ldap 目录设计20 图 4.6 工作流关系图26 图 4.7 数据流问题模型27 图 4.8 基于 rbac 的权限模型30 图 4.9 权限控制模型31 图 4.10 界面展示程序流程图 31 图 4.11 数据层权限组成流程图32 图 4.12 数据层权限控制模型图33 图 4.13 界面层权限控制模型图33 图 4.14 界面层模块权限树 34 图 4.15 数据层设计示意图 36 图 5.1 “211 工程”项目管理系统总体功能图 39 图 5.2 项目立项申请建模42 图 5.3 重点学科建设权限建模43 图 5.4 重点学科申报应用模型44 图 5.5 重点学科申报模块示意图44 基于 j2ee 的多层结构设计方法研究与应用 vi 注释表 英文全称英文全称 缩写缩写 中文注释中文注释 java 2 platform enterprise edition j2ee java 2 平台企业版 multi-tiers distributed model 多层分布式模型 lightweight directory access protocol ldap轻型目录访问协议 independent software vendor isv 独立软件提供商 remote method invocation rmi 远程方法调用 single sign-on sso 单点登陆 role-based access controls rbac基于角色的访问控制 management information system mis 管理信息系统 承诺书 本人郑重声明:所呈交的学位论文,是本人在导师指导下,独立进行 研究工作所取得的成果。尽我所知,除文中已经注明引用的内容外,本学 位论文的研究成果不包含任何他人享有著作权的内容。对本论文所涉及的 研究工作做出贡献的其他个人和集体,均已在文中以明确方式标明。 本人授权南京航空航天大学可以有权保留送交论文的复印件,允许论 文被查阅和借阅,可以将学位论文的全部或部分内容编入有关数据库进行 检索,可以采用影印、缩印或其他复制手段保存论文。 (保密的学位论文在解密后适用本承诺书) 作者签名: 日 期: 南京航空航天大学硕士学位论文 1 第一章 绪论 1.1 研究背景和意义 在网络得到飞速发展和不断深入的今天,对于企业来讲,网络为企业跨越物理空 间的约束,进入国际市场提供了方便和廉价的途径,每个企业都具有这样的机会,走 得快的企业可以获得更多的竞争优势。对于应用互联网的企业,可以使企业的触角伸 的更远,过去需要很多资金和时间投入的市场宣传、客户服务以及客户联系,现在都 可以通过网络进行。而一个企业在互联网中是否拥有自己的地位,已经是国内外企业 都需要重视的问题。很多企业在进行市场信息采集和分析方面已经充分利用网络,很 多客户在寻找为其服务的商家时也是通过互联网进行搜寻。如果一个企业在互联网中 没有身影,将会丧失很多机会,对于企业来讲,良好的外部信息化可以使企业获得更 多的商机,可以对客户有更好更快的反馈和服务。网络技术的迅猛发展,在给企业带 来更多机会的同时也使得企业应用面临了更加复杂的需求。在企业逐步实施电子商务 的不同阶段,从企业内部网建设(intranet)到企业与企业之间互联(b to b),再到企业为 广大客户提供服务(b to c),企业应用将面对越来越多的用户,企业服务器将承担越来 越多的负载,性能要求、安全要求也将越来越高,企业迫切的需要有效实施企业应用 开发,使企业系统具备与网络时代相适应的特点,具有集成internet的能力;同时由于 企业的需求特点,如保证数据的完整性,并发的用户访问等,必须支持异构平台互联、 联机事务处理、安全、高可用等的内容,企业it环境也变得越来越复杂,企业中可能 会拥有多种操作系统,不同的数据库,异构网络环境以及数个应用等,把它们结合成 一个有机协同工作整体, 真正实现企业跨平台应用被提上了日程1。 在建设企业内部网 及其应用时,迫切地需要其具有良好的可伸缩性能,高质量结构,高度可用,以更好 地满足企业应用的不断扩大。 为了能够在竞争中处于有利的地位,采用合理的企业应用架构和新技术就成为企 业能否有效利用各自信息资源的关键因素。随着近年来科技的发展,企业分布式技术 日趋成熟,其中多层b/s构架和sun公司推出的j2ee技术被证明是成功的,已被应用于 越来越多的企业系统建设中。 1.2 当前研究现状和研究趋势 目前分布式企业应用最前沿的体系结构是三层b/s构架,该构架把表示逻辑,业务 逻辑,数据库等操作分离开来,各层相对独立,它是基于组件开发和应用服务器技术 的分布式应用2,3。这种以应用服务器技术为特点的多层分布式计算模型(multi-tiers distributed model),适应了企业应用的发展要求,使企业计算具有良好的可扩缩性、可 基于 j2ee 的多层结构设计方法研究与应用 2 靠性、稳定性、安全性等特点。同时,通过组件(component)技术进行代码重用,简化 了系统开发的周期和效率,大大降低了企业应用系统开发的复杂度。sun公司推出的 j2ee继承了java语言平台独立的特点,结合了组件技术、应用服务器技术,为构建现 代企业应用系统提供了先进的解决方案。它提供了一个框架用作开发分布式的体系, 使得企业应用开发人员可以无须考虑底层的实现细节,集中精力于企业业务逻辑的开 发,由j2ee服务器平台处理底层的通信并提供各种服务(如:名字服务、安全管理、交 易服务、事务管理等),从而可以更加快速高效地构建企业应用系统4。j2ee提供了一 套完整的开发多层分布式应用的技术和设施(服务api),是当今众多厂商支持的多层分 布式应用和应用服务器的标准,它通过ejb组件技术把业务逻辑独立出来,为快速灵活 地建立大规模的分布式企业应用提供了高效的解决方案, ejb规范详细说明了构建在应 用服务器上面的容器的标准,明确提供了一种方法来管理运行在应用服务器上的服务。 j2ee与ejb一起更是为面向internet的企业应用提供了无与伦比的支持5。 本文在三层结 构的基础上,重点设计了j2ee的四层结构。使用单点登陆实现了统一身份认证,通过 模板定制,实现了快速开发。同时还对模块控制和权限控制预留了接口,可以动态进 行添加,实现了可扩展性,对类似的系统也具有通用性。 1.3 论文组织 本文的章节安排如下: 第一章:绪论。介绍了本文的研究背景、研究现状和组织结构。 第二章:软件体系结构发展。阐述了软件结构体系发展,对传统的集中式应用软 件体系结构,两层体系结构以及三次体系结构进行了具体的分析,最好讨论了在构建 多层结构体系时的关键问题。 第三章:基于 j2ee 的多层应用软件体系结构。首先介绍了 j2ee 的三层结构体系, 进而引申出多层体系结构。详细的描述了多层应用软件体系结构,并对其内部通信机 制及技术性能进行了分析。 第四章:基于多层结构的软件设计模式。介绍了 j2ee 环境下设计模式的特点和表 示方法,在本章中主要对 j2ee 多层结构重的 web 服务层和业务层进行了详细的设计, 通过单点登陆方式在 web 服务层实现了统一身份认证,在业务层分别用观察者模式和 rbac 模式实现了工作流模型和权限控制模型。 第五章:系统实现与效果评估。结合南京师范大学信息化项目中的“211 工程”项 目子系统,介绍了使用这种基于 j2ee 的多层开发流程和系统运行效果。 第六章:结束语。对基于 j2ee 的开发模式进行了总结,并给出了改进方向,对今 后的工作做了展望。 南京航空航天大学硕士学位论文 3 第二章 软件体系结构发展 任何应用软件系统都可分为三个部分:表示层、应用逻辑层和数据层。表示层负责 与用户的交互,应用逻辑层处理业务流程, 实现业务逻辑, 数据层完成对数据库的操作。 根据这三部分之间结合的紧密程度不同,就形成了不同的应用软件体系结构。 2.1 集中式应用软件体系结构 该体系结构以主机终端模式为代表。在该模式中软件系统的三个部分都集中在主 机上,主机完成所有计算任务,数据集中存放在主机上,多用户通过字符终端分时使 用主机资源,终端的任务仅仅是完成数据的输入和输出工作6。图2.1为集中式应用软 件模型。 表示 层 应用 层 数据 层 图 2.1 集中式应用软件模型 该模式从计算机诞生初期至今都在广泛地应用。其优点是: (1) 可靠性高。 所有操作都在性能稳定的主机上执行, 不会出现因网络失败而造成系统 破坏的情况。 (2) 安全性好。数据程序等都集中存放在主机上,易于统一管理其安全性和一致性。 (3) 主机运算能力强大,具有处理庞大事物的能力、易维护。 但同时也存在以下缺点: (1) 界面不友好。以字符界面和命令行操作方式为主。 (2) 机器及其配套设施昂贵,操作成本高。 (3) 终端用户对资源和数据几乎没有控制权。 (4) 可扩充性差,尤其是该模式无法形成分布式应用。 该模式在银行、保险等相对集中并可靠性要求高的领域应用较多。但在计算机网 络不断发展和应用系统的用户不断增长的情况下,集中式应用软件体系结构无法满足 分布式应用的要求。 2.2 两层结构体系分析 传统的客户/服务器(client/server)应用软件模式大都是两层结构应用软件。在该 结构下,整个软件系统被分为客户端软件和服务器端软件两部分,客户机端软件一般 由应用程序及相应的数据库连接程序组成,服务器端软件一般是某种数据库系统。客 户机通过网络访问服务器上运行的数据库7。图2.2为两层结构应用软件模型。 基于 j2ee 的多层结构设计方法研究与应用 4 用户 界面 应用 逻辑 数据库 服务器 操作 图 2.2 两层结构应用软件模型 这样, 一个给定系统的功能可以简单的划分为用户系统环境(客户机)和数据库管理 环境(服务器)。而数据库管理服务器则提供了诸如存储过程、触发器等功能,同时不少 软件厂商也提供了工具来简化两层模型中客户机和服务器应用程序的开发。 两层体系结构和传统的集中式体系结构相比,有很大的灵活性,其优点主要表现 在以下几个方面: (1) 减少了网络负载; (2) 提供了友好的用户界面; (3) 性价比较高; (4) 具有良好的可扩展性; (5) 可以分布式管理。 这些特点部分地解决了集中式体系结构下的软件开发中的问题,对于在局域网内 并发用户较少时的分布式计算是一个不错的解决方案。但是,当并发用户数量增多时, 性能开始恶化。而且在实现管理服务的处理时,数据库厂商专用的数据库过程也限制 了应用程序的灵活性和 dbms 的选择。同时,当软件结构复杂性上升时,以下因素是 两层软件体系结构本身难以克服的问题: (1) 应用逻辑难以划分; (2) 缺乏健壮的安全性; (3) 缺乏可伸缩性; (4) 缺乏可移植性(例如数据库厂家专有的存储过程等)。 为了解决上述问题,产生了中间件(middleware)技术,而中间件的出现,导致了软 件体系结构向三层和多层计算模型演化。 2.3 三层结构体系分析 随着分布式对象技术的逐渐成熟,三层分布式体系结构得到了越来越多的应用, 三层体系结构解决了两层结构中存在的一些问题。在三层构架下,应用可以分布在不 同的系统平台上,通过分布式技术实现异构平台间的对象相互通信。三层体系结构中 的应用程序在逻辑上被分为三个不同的层, 各层都有定义好的接口8。 第一层称为表示 层,一般由用户图形界面或类似的事物组成;中间层称为业务层,由应用服务程序或 者业务逻辑构成;第三层称为数据层,包含应用程序所需要的各种数据。中间层(应 用程序逻辑)实际上是用户为检索自己所需的数据而调用的代码(通过表示层),然 南京航空航天大学硕士学位论文 5 后,表示层接收到数据并且进行格式处理以便显示出来。这种应用程序逻辑上的分隔 在用户界面基础上提供了很大的应用程序设计灵活性。这样不需要更改应用程序逻辑 就可以建立和实施多种用户界面,只要此应用程序逻辑是一个清楚定义的表示层接口 即可,从而使开发人员可以专注于应用系统核心业务逻辑的分析、设计和开发,简化 了企业系统的开发、更新和升级工作,极大增强了企业应用的伸缩性和灵活性。第三 层包含的是应用程序需要的数据,这些数据可以包含任何信息源,其中包括数据库、 一组xml、文档甚至是像ldap(lightweight directory access protocol)服务器这样的 目录服务。除了传统的关系型数据库存储机制之外,应用程序可以访问多种不同的企 业数据源9。 用户 界面 应用 逻辑 数据库 服务器 图 2.3 三层结构应用软件的模型 图2.3是三层结构应用软件模型。将呈现逻辑部署在客户pc机上,业务逻辑放置在 服务器端,没有利用web技术。客户pc机和中间层服务器之间的交互采用的是应用程 序私有的协议。中间层服务器通过重用那些跨越多个客户的昂贵资源来改进可伸缩性, 例如数据库连接。可伸缩性的改进带来了性能的改进。这个体系结构也改进了安全和 应用管理。这样的三层体系结构己经使用在大多数的企业资源规划(erp)系统和大容量 事务处理的特殊系统中。虽然这种三层体系结构消除了两层体系结构中的一些缺陷, 但其也存在以下不足之处: (1) 复杂性。开发一个这样的三层应用比开发两层应用更复杂。例如,程序员必须处理 分布、多线程、安全等事项。分布式的引用,使得开发者的系统级设计变得更加复 杂。另外,分布式应用需要客户it部门来补偿应用部署与管理支撑的缺乏。为了降 低分布式应的复杂性, 供应商借助于应用服务器的使用来解决问题。 应用服务器的 用意在将程序员从处理这些复杂关系中解脱出来。 (2) 应用缺乏可移植性。 因为适用于三层平台的应用服务器的各提供商在他的产品中使 用不同的应用编程接口,因此独立软件提供商(independent software vendor, isv) 就不可能写出能够部署在其他供应商提供的应用服务器的应用程序。 (3) 提供商的不兼容性。 难以集成来自不同提供商的应用, 因为各提供商使用一组不同 的协议,而这些协议之间没有标准的互操作性。 (4) 与 web 的不兼容性。传统的三层体系结构不能直接与 web 一起工作,其对于客户 与运行在服务器上的应用之间的通信使用一个专用的协议, 而这个协议不能与web 一起工作。 虽然许多应用框架提供商在他们前端产品上增加了对 web 客户的支持, 但是其结果依然受制于上述列出的缺陷。 基于 j2ee 的多层结构设计方法研究与应用 6 2.4 web 环境下多层体系结构 由于internet/intranet的用户大多遍布世界各地且数量很多,所以客户端的客户软件 和客户机与应用服务器的连接协议应是标准的、被广泛使用的。web技术是 internet/intranet上使用最广泛的应用,它为用户提供了一个标准的界面即web浏览器。 目前,internet/intranet环境下的应用软件发展方向是以web浏览器作为标准界面,使用 http协议完成浏览器与web服务器的通信, 应用层的web服务器负责与客户浏览器的交 互,使用java等技术进行复杂的实时事务处理10。 目前,存在许多构建internet/intranet环境下多层结构应用软件的方案和技术,本文 基于与平台无关的j2ee技术来讨论如何创建internet/intranet环境下的多层结构的应用 软件。 在internet/intranet环境下,应用中的代码是流动的,这是它与传统c/s模式下应用 软件的一个重要区别,也是一个重要的进步。客户机上只需安装一个标准的web浏览 器,其他的应用程序都存储在web服务器上,需要时才下载。这样,系统中的客户机 成为一个真正的“瘦客户机”。 如果在internet/intranet环境下将应用软件构建成两层结构,那么由于internet/intra- net环境下特有的通信速度和安全性等原因,系统会出现一些问题。 由于在internet/intranet环境下,系统通信信道的带宽参差不齐,速度快慢不一,总 体来说比单独的局域网信道差得多,因此要求系统间的通信量应尽可能小。按照两层 结构来构建应用软件,所有的应用都集中在客户端,那么必然导致客户端程序庞大。 例如客户程序用java applet编写,通过网络下载的java applet程序字节数较多,系统速 度下降,可靠性降低。如果系统需要访问数据库,那么客户端还必须下载一个较大的 jdbc驱动程序。 由于java技术中采用“沙箱”安全模型,所以java applet程序只能与源宿主机(所 谓源宿主机就是向web浏览器传送这个java applet程序的机器)上的程序通信,通过 jdbc访问位于源宿主机上的数据库系统,使得系统的灵活性大大下降,很难满足实际 的大型应用的要求。 internet/intranet用户遍布世界各地,不可能为他们各自安装特定的客户程序,web 浏览器是与应用无关的标准的与web服务器交互的程序,这种统一的客户机与应用服 务器交互的方式对internet/intranet应用程序的开发是非常重要的。 以上三个原因使得在internet/intranet环境下使用多层应用软件结构成为必然。 图2.4 是web环境下三层应用软件模型。系统的第一层由从web服务器上下载并运行于web 浏览器上的java applet组成,处理用户界面;第二层由一个应用服务器组成,处理应用 逻辑;第三层由数据库软件组成。第一层和第二层之间用http协议连接,第二层和第三 层之间用数据库访问协议连接(如jdbc等)11,12,13。 南京航空航天大学硕士学位论文 7 应用服务器 程序 应用服务器 程序 java applet java applet java applet 数据库 服务器1 数据库 服务器n 数据库 服务器2 web浏览器1 web浏览器2 web浏览器n http协议 用户自定义协议 db协议 图 2.4 web 环境下三层应用软件模型 图2.4是web环境下三层应用软件模型,采用该模型的系统主要有以下优点: (1) java applet程序只处理用户界面。较为简单,程序最小,便于在网络上快速传递。 (2) java applet程序与网关程序之间只传送请求信息和响应信息,通过网络传送的信息 量小。 (3) 所有的数据库操作都由与数据库服务器位于同一台主机或同一局域网环境主机上 的应用服务程序完成,速度快,可靠性高。 (4) 应用服务程序访问数据库不存在安全性限制。 它可以访问网络上任意主机上的数据 库,只要它拥有相应的权限。 上述模型只是一个简单的例子,为了提高系统的性能,可以在此模型的基础上进 一步完善,例如可以用主机上类似于cgi的servlet等程序生成的html语句与客户机交 流,并增加web服务层定位服务,从而形成多层结构,下一章中将详细讨论。 2.5 构建多层体系的关键问题 构建一个大型应用的多层体系结构应用软件是一项相当复杂的任务,作者认为在 进行这项工作时应当考虑开发平台的选择、中间件的选择、面向对象技术的使用及安 全问题的解决等问题。 2.5.1 开发平台的选择 在 internet/intranet 环境下,多层结构应用软件的第一层,即表示层,一般有两种 方式:一是客户端是 html 网页,另一种是客户端用 java applet。前一种适用于较简 单的应用,网络流量小,但不能胜任复杂应用的用户界面。后一种方法可生成动态复 杂的用户界面,甚至某些商业逻辑,但由于 applet 代码要通过网络下载,会占用较多 的网络带宽。在实际应用中用 html 制作界面的更多一些,也可用 jsp,利用 java 动 态生成 web 页服务器端的内容脚本来编写基于 html 的界面接口。 负责应用逻辑处理 基于 j2ee 的多层结构设计方法研究与应用 8 的中间层次选择什么平台是一个非常重要的问题。传统的多层结构应用软件负责应用 逻辑处理的中间层次一般选用 c 语言等传统语言开发的较多。但近几年随着 java 技术 的发展,越来越多的公司使用 java 来开发。由于 java 是跨越各应用平台的,它在开发 网络环境下的分布式多层结构应用软件时有着不可比拟的优势,且 java 技术本身具有 诸如安全性、组件技术、面向对象等的特性。尤其是最新出现的 ejb(基于 java 的服务 器方的组件技术)更使 java 成为最佳的中间层平台技术。从发展的角度看,将开发平台 定位在 java 上是一项明智的选择14。 2.5.2 中间件的选择 在多层应用软件中,负责业务逻辑处理的中间层次是重要的一层。对于大型的实 用系统来说,所有的软件都自行开发并非最好的选择。大量通用的服务可以由商品化 的中间件软件完成。所谓中间件就是为了解决分布式系统中的异构问题而提出的,它 是位于平台(包括硬件和操作系统)与应用之间的通用服务, 这些服务具有标准的协议与 接口。中间件为开发者提供了一个高层应用环境,将分布式系统中各种不同的计算机 硬件与软件系统屏蔽起来,从而使开发的应用具有良好的可扩展性、易管理性、高可 靠性和可移植性15。 internet/intranet 环境下的多层结构实际上就是一个分布式异构环境。 因此, 根据应 用的需要选择一个适当的成熟的中间件产品是非常必要的。 选择作为中间件的应用服务器应主要考虑以下几点要素: (1) 复用性。要再利用原来的业务逻辑,同时还要添加新的组件,才能提升系统水平和 业务处理能力。在考虑技术实现时,既要压缩开发成本,又要构筑能迅速应变的系 统,这对于提高企业的竞争能力至关重要。为此,人们渴望系统既能作用在应用服 务器中构筑的业务逻辑,又要能充分适应,跟踪新的业务需求。 (2) 可伸缩性和可靠性。 过去的企业系统基本上是以本企业的用户为主, 用户数也不是 太多。但是用应用服务器构筑的系统,不仅是企业内部,通过 internet,可以对全 世界的顾客和商业伙伴开放。因此,在可伸缩性和可靠性方面,对于应用服务器就 提出了更高的要求。而且,由 internet 所形成的电子商务市场在急速增长,交易额 和用户数也直线增长,而且这些用户是一天 24 小时不停的访问。因此,如果应用 服务器不能应对日益增大的处理,就会耽误商机。 (3) 负载平衡。要有把处理适当地分配给多个服务器,以求获得负荷分散的功能。由于 有负荷均衡功能,所以可以实现系统的大型化。 (4) 分散事务处理。在多个服务器处理关键业务时,数据更新中的一致性是个问题。为 了解决这个问题,要有相应的分散事务控制功能。 (5) 故障切换。为了提高系统的正常运行率,要准备待机(热备份)服务器,以便在发生 故障时,可以将处理转移到待机系统。 南京航空航天大学硕士学位论文 9 2.5.3 面向对象技术的使用 由于实际应用的纷繁复杂,中间件产品只能提供一些通用的服务,大量的开发工 作还是要由开发人员根据实际需要完成。在开发系统时,使用面向对象的技术是十分 重要的。在使用面向对象技术时,特别要注意使用对象组件技术。 2.5.4 安全问题的解决 作为一个大型的实用系统,安全问题是非常重要的。一般来说,在多层结构中, 安全问题应当由处理业务逻辑的中间层次来解决。解决安全问题主要有两种方法:一 是使用现有的安全产品来保护系统的安全性,如防火墙等;另一是在自行开发的程序 加入到保护系统安全的模块,如使用认证、加密等技术。在开发系统时,这两种方法 应当综合使用16。 2.6 本章小结 本章主要介绍了软件结构体系的发展,从最初的集中式应用软件体系结构,发展 到两层结构,再发展到三层结构,最后发展到现在的web环境下的多层结构。针对每 种结构都具体分析了其优缺点,并且详细的分析了在web环境下构建多层结构体系时 的关键问题。 基于 j2ee 的多层结构设计方法研究与应用 10 第三章 基于 j2ee 的多层应用软件体系结构 3.1 j2ee 的三层结构分析 在j2ee三层结构中,第一层是客户层,提供用户接口的功能;第二层是业务逻辑 层,提供完成所有业务逻辑和数据库存取的功能;第三层是数据库层,提供数据持续 存储的功能。图3.1是基于j2ee的三层结构模型。 applets 应用 server html或者 applets数据库 jdbc http rmi 客户层业务逻辑层数据库层 图 3.1 基于 j2ee 的三层结构模型 客户层的运行环境主要是web浏览器,运行的程序是客户端的java applet程序。业 务逻辑层主要有两部分组成: 一部分是web服务器, 它通过http协议向客户层提供java applet程序;另一部分是应用服务器,它包含了完成业务逻辑所需要的各种服务,它一 方面通过远程方法调用( remote method invocation, rmi)与运行在客户层的java applet 程序通信,另一方而通过jdbc访问存储在数据库中的数据。数据库层采用某种大型的 关系数据库系统,以满足最大数据的存储要求。 但是这种三层结构中存在java applet程序下载时间长和网络资源访问受到java安 全性限制两个问题。 常见的企业级网络应用构架通常是这样组织的:分布在各地机构中的一组计算机 组成一个局域网,各个局域网又组成一个庞大的广域网,数据分布存储在各地。在最 初的三层体系结构中, 客户端所需的java applet程序是在运行时从应用服务层中某台服 务器上下载的,但在一个复杂的广域网环境下,由于带宽和流量的不同常常使得下载 时间可能从秒级到分钟级,甚至更长17。这就需要一种机制来缓存各局域网中客户端 经常使用的java applet程序和静态数据,从而减少下载时间和网络流量。 由于java虚拟机中采用的是沙箱(sandbox)模型,它禁止访问任何本地或网络资源, 以及与非源宿主机(所谓源宿主机就是向浏览器传送java applet程序的主机)上运行的 程序通信。 在最初的三层体系结构中, 客户端的java applet如果需要访问某台计算机上 的文件,就只能通过中间层,即文件只有先从存储它的计算机传送到中间层,然后再 传送到这个客户端,从而导致在广域网上产生大量的数据传输。 南京航空航天大学硕士学位论文 11 3.2 多层应用软件体系结构 下面是一个用j2ee技术实现的基于internet/intranet的企业级应用体系结构。 它进一 步提高了系统的效率,是一个真正的由跨应用和客户、可重用的服务组成的多层应用 软件体系结构18,图3.2是基于j2ee的多层结构模型。 客户层数据层业务层web服务层 图 3.2 基于 j2ee 的多层结构模型 整个系统由四层组成,分别是客户层(client tier)、web服务层(web service tier)、 业务层(business tier)和数据层(database tier)。 (1) 客户层 客户层通常向用户提供应用的接口。它是一个图形用户界面。在这一层运行的程 序是java applet程序或html网页,这些程序可以运行在一个web浏览器环境下,也可 以运行在任何可以运行java软件的环境下(例如网络计算机)。客户层不需要完成任何重 要的业务逻辑,也不以任何方式直接和数据库交互,同时也不保存任何本地的状态信 息,它只提供与用户交互的功能,提供一个良好的人机界面。这样就保证了系统中的 客户机是一个直正的“瘦”客户机。 (2) web服务层 顶端web服务层是多层体系结构中非常重要的一层,它主要起代理(proxy)和缓存 (cache )的作用。为了解决三层结构中存在的两个问题,在这个体系结构中增加了一个 web服务层,它通常被放置在一个局域网(如外地分公司局域网)内部,为这个局域网内 部的多台客户机提供服务。 一台web服务器用缓存来存储应用需要的java applet程序和 静态数据,提供访问本地资源(例如用户文件和打印机)的能力,起了个java applet主机 和访问其他服务的代理作用。 该层主要包括以下几个部分:代理服务器、服务定位servlet(service locator servlet)、本地服务(local service)和代理servlet(proxy servlet)。 代理服务器的作用是缓存本地各客户机经常使用的java applet程序和静态数据, 与 普通代理服务器的作用相同。 基于 j2ee 的多层结构设计方法研究与应用 12 服务定位servlet的功能是根据客户机发来的请求寻找适当的服务,从而充成对客 户机需要的数据和网络资源的存取。 本地服务主要包括文件存取、打印、和会话等,这些服务的功能是根据各客户机 的请求完成对木地资源的访问。例如,一个客户机
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025浙江省富浙融资租赁有限公司第四期招聘1人笔试考试备考试题及答案解析
- 2025年11月广东深圳市光明区教育局赴山东、江西定点面向2026应届毕业生招聘教师60人考试笔试备考题库及答案解析
- 2025上海交通大学医学院教育发展基金会人员招聘3人笔试考试备考题库及答案解析
- 工地安全生产先进个人事迹报告
- 设备报废说明书编写指导
- 高校毕业生就业指导服务工作手册
- 传统中医病例详细分析报告
- 2025上饶宁能生物质发电有限公司招聘2人考试笔试参考题库附答案解析
- 项目管理流程规范及关键节点控制
- 2025四川自贡市第一人民医院招聘医疗辅助岗人员42人笔试考试备考题库及答案解析
- 场平工程施工方案与技术措施
- 中国非遗文化傩戏文化
- 航天梦课件展示
- 【初中地理】气温和降水(课件)- 2024-2025学年七年级地理上册同步课堂(湘教版2024)
- 【初中生物】光合作用(第一课时) 2024-2025学年七年级上册生物同步课件(北师大版2024)
- 加油站季节性安全检查台账(每季度)
- 上海市青浦区复旦五浦汇实验学校2024-2025学年六年级上学期数学期中考试试卷(无答案)
- 教师培训课件:《班会的设计与实施(小学)》
- 深圳引望智能技术有限公司模拟审计报告
- 小红书盈利模式及发展策略分析
- 全国民用建筑工程设计技术措施-电气
评论
0/150
提交评论