(电力系统及其自动化专业论文)基于j2ee平台的电力scada系统的应用研究.pdf_第1页
(电力系统及其自动化专业论文)基于j2ee平台的电力scada系统的应用研究.pdf_第2页
(电力系统及其自动化专业论文)基于j2ee平台的电力scada系统的应用研究.pdf_第3页
(电力系统及其自动化专业论文)基于j2ee平台的电力scada系统的应用研究.pdf_第4页
(电力系统及其自动化专业论文)基于j2ee平台的电力scada系统的应用研究.pdf_第5页
已阅读5页,还剩69页未读 继续免费阅读

(电力系统及其自动化专业论文)基于j2ee平台的电力scada系统的应用研究.pdf.pdf 免费下载

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

文档简介

西南交通大学硕士研究生学位论文第1 i 页 a b s tr a c t t h ep o w e rs c a d as y s t e mh a sp l a y e di r r e p l a c e a b l er o l eo ne l e c t r i cp o w e r d i s p a t c ha u t o m a t i o ns y s t e m i nr e c e n ty e a r s ,o p e na n dd i s t r i b u t i o n a ls y s t e m s t r u c t u r ei st h et e n d e n c yo fs c a d as y s t e m ,b e c a u s ei tc a np r o v i d eh i g h i n t e g r a t i o n ,e x c e l l e n tp o r t a b i l i t ya n dw i d e s p r e a di n f o r m a t i o ns h a r i n ga b i l i t yt o s c a d a w i t h t h ef a s td e v e l o p m e n to fi n t e r n e t i n t r a n e tt e c h n o l o g y , t h e a p p l i c a t i o ns t r u c t u r eo fs c a d as y s t e mh a sf o r m e d b st h r e e - t i e rs t r u c t u r e , w h i c hb a s e do nt r a d i t i o n a lc ss t r u c t u r e t h i sn e wb ss t r u c t u r ec a np r o v i d e g o o dr u n n i n gp a t t e r nt or e a l i z ec r o s sp l a t f o r ma n dd i s t r i b u t i o n a la p p l i c a t i o n f i r s t ,t h i sp a p e rr e s e a r c h e st h ea p p l i c a t i o no fj 2 e ep l a t f o r ma n do p e ns o u r c e f r a m e w o r kw h i c hb a s e do nj 2 e ep l a t f o r mi np o w e rs c a d as y s t e m j 2 e ei st h e m a i n s t r e a me n t e r p r i s ed i s t r i b u t i o n a la p p l i c a t i o np r o g r a md e v e l o p m e n tp l a t f o r m a tp r e s e n t ;i th a st h eo b v i o u sb st h r e e - t i e rs t r u c t u r es t y l e ,a n dt h o s ep r o d u c t s w h i c hc o n f o r mt ot h ej 2 e es p e c i f i c a t i o nc a nb r i n go p e na n dp o r t a b i l i t yt ou s e r s s ou s i n gj 2 e ep l a t f o r mt od e s i g nb ss t r u c t u r ea p p l i c a t i o np r o g r a mw i l l s t r e n g t h e ni t sp o r t a b i l i t y , r e u s a b i l i t ya n di n f o r m a t i o ns h a r i n ga b i l i t y a c c o r d i n gt ot h ej 2 e em u l t i - t i e ra r c h i t e c t u r e ,a n di n t e g r a t eo p e ns o u r c e f r a m e w o r kw h i c ha r es t r u t sa n dh i b e r n a t e ,d e s i g nt h r e e t i e ra r c h i t e c t u r eo f s c a d as y s t e m t h i sa r c h i t e c t u r ei n c l u d e s c l i e n t - t i e r , m i d d l e - t i e ra n d d a t a b a s e t i e r , a n de a c ht i e r sf u n c t i o ni sc l e a r , s oc h a n g ea n yt i e rn e e dn o tm o d i f y o t h e rt i e r s t h i sa r c h i t e c t u r ei sp r o p i t i o u st oi m p r o v es y s t e m sm a i n t a i n a b i l i t y , r e u s a b i l i t ya n de x t e n s i b i l i t y o nt h eb a s eo ft h e o r ya n a l y s i s ,t h i sp a p e ra n a l y z e st h es y s t e mw o r kf l o w , d e f i n e st h es y s t e mr e q u i r e m e n t s ,a n di n t r o d u c e st h e c o n c r e t ed e v e l o p m e n t t e c h n o l o g y , m o d u l e s c o r ec l a s s e sa n dt h e i rm e t h o d s f i n a l l yt h r o u g hr e a l i z i n g u s e rm a n a g e m e n t ,g r a p h i cd i s p l a ya n dt h er e p o r ti n q u i r ym o d u l et ov a l i d a t et h i s p r o t o t y p es y s t e m sf e a s i b i l i t y , a n de x h i b i t si t sm o r er e u s a b i l i t y , m a i n t a i n a b i l i t y a n de x t e n s i b i l i t y k e y w o rd :p o w e rs c a d a s y s t e m ;b st h r e e - t i e rs t r u c t u r e ;j 2 e ep l a t f o r m ;o p e n s o u r c ef r a m e w o r k 西南交通大学曲陶父逋大罕 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学 校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查 阅和借阅。本人授权西南交通大学可以将本论文的全部或部分内容编入有关 数据库进行检索,可以采用影印、缩印或扫描等复印手段保存和汇编本学位 论文。 本学位论文属于 1 保密口,在年解密后适用本授权书; 2 不保密西使用本授权书。 ( 请在以上方框内打“) 篙譬芎磐使日期:乞冀z 向 指导老师签名:诧奇专 西南交通大学学位论文创新性声明 本人郑重声明:所呈交的学位论文,是在导师指导下独立进行研究工作 所得的成果。除文中已经注明引用的内容外,本论文不包含任何其他个人或 集体已经发表或撰写过的研究成果。对本文的研究做出贡献的个人和集体, 均己在文中作了明确的说明。本人完全意识到本声明的法律结果由本人承 担。 本学位论文的主要创新点如下: 在电力s c a d a 系统软件设计中,在应用j 2 e e 平台的技术基础上,引 入基于j 2 e e 平台的开源框架技术,以降低开发难度,并通过合理划分系统 软件层次,提高软件的可复用性和可扩展性。 西南交通大学硕士研究生学位论文第1 页 第1 章绪论 1 1 课题研究背景及意义 在电力自动化系统中,电力s c a d a 系统作为电网调度自动化的基础,具 有完整信息、提高效率、正确掌握系统运行状态、加快决策、帮助快速诊断 出系统故障状态等优势,是提高电网运行的可靠性、安全性与经济效益、减 轻调度员负担、实现电力调度自动化与现代化的不可或缺的工具。 s c a d a 系统是结合计算机软、硬件和网络通信等技术于一体的复合系统, 自其诞生之日起就与计算机技术的发展紧密相关。早期的s c a d a 系统主要是 基于各厂家的专用系统,系统本身不具有开放性,因而系统在维护、升级以 及与其它外部系统互通信息等方面有着难以逾越的障碍。到了9 0 年代,依 照开放性的原则,基于分布式计算机网络以及关系数据库技术的s c a d a 系统 实现了较大范围的联网,越来越多的计算机技术汇集进s c a d a 系统中,促成 了s c a d a 系统的快速发展。最近几年,s c a d a 系统的发展逐渐进入一个新的 阶段,主要表现在广泛采用先进的i t 信息技术、面向对象技术、组件技术 等,在实现s c a d a 系统的数据采集、设备控制、测量、参数调节等“四遥 功能的标准、开放的基础上,进一步提高了s c a d a 系统与其它系统的接口和 集成的能力,进一步满足综合安全经济运行的需要。 传统电力s c a d a 系统架构主要基于c s ( 客户机n 务器) 结构,该结构是 一种典型的二层结构模式,其构建的系统,客户机一般完成人机交互、前台 计算;服务器承担数据的集中处理和存储。c s 结构在一定程度上实现了数 据处理与人机交互的分离,但由于这种二层的结构模式将不少业务逻辑放在 前台客户机上,导致存在以下一些固有局限:跨平台能力差,客户端可能安 装了不同的操作系统,这就要为每一种操作系统设计相应的程序,开发成本 高;系统的安装、维护、升级成本高,难以满足多用户条件下的要求;系统 可伸缩性和可扩展性差,不便于同其它系统集成,应用范围受到限制,不能 满足大型应用系统的需求心1 。 随着互联网技术的发展与普及,以及由此带动的多个领域的技术革命, 加上s c a d a 系统应用规模的不断扩大,上述传统s c a d a 系统所面临的问题被 西南交通大学硕士研究生学位论文第2 页 逐渐放大,因此迫切需要引入新的设计理念和技术以适应新形势下的客户要 求。基于浏览器n 务器b s ( b r o w s e r s e r v e r ) 结构的出现成为克服c s 结构 的固有缺点的利器。8 s 结构是一种基于w e b 的三层分布式体系结构,它由 客户层( 浏览器) 、中间层( 包括w e b 服务器和其它应用服务器) 、数据层组 成。b s 结构显著区别于c s 结构的地方在于该结构模型是由各种信息和应 用程序集合松散组成,而这些信息和应用程序又可以驻留在一台或者多台硬 件平台上。由b s 构建的系统,前台客户端是标准的浏览器,基本不用安装 其他特定的软件,操作风格一致,合法用户只需拥有浏览器就可以十分容易 地访问系统。总的说来,基于b s 结构的系统具有如下优点:最大限度实 现了平台无关性,用户可以透明地跨越不同的平台和不同的网络,以相同的 界面访问系统:b s 是一种瘦客户端模式,基本不用在客户端进行维护工作, 有效减低系统运行和维护的成本;系统具有良好的通用性和开放型,应用范 围扩大,与其它系统进行信息整合也更容易。 针对互联网技术迅猛的发展,以及为了便捷、高效地开发企业级多层分 布式应用程序,以s u n 为代表的公司推出了引领业界潮流的j 2 e e 平台技术。 j 2 e e 利用以互联网为基础的分布式计算和通信激增的特点,通过先进的软件 架构,利用网络协议和格式,协调众多的智能设备和数据访问,从而提供更 简单、更高效的数据服务h 1 。j 2 e e 是目前市场上主流的企业级分布式应用程 序开发平台,它具有鲜明的b s 结构风格、“一次编写、到处执行 的跨 平台性,以及许多满足j 2 e e 规范的产品给用户带来的开放性和可移植性。 1 2 国内外研究现状 日新月异的信息技术促进了现代电力企业自动化和信息化进程的快速 发展,企业逐渐将管理、决策、市场信息和现场监控信息结合起来,综合实 现一体化的解决方案。同时,企业内部之间以及与外部交换信息的需求也在 不断扩大。现代电力企业对生产的管理要求不断提高,这种要求已经不局限 于通常意义上的对电力系统生产、运行状态的监控,同时还要求把现场监控 信息和管理信息结合起来,建立一套全集成的、开放的、综合自动化的信息 平台,把企业的横向通信和纵向通信紧密联系在一起,通过对经营决策、管 理、计划、调度、过程优化、故障诊断、现场控制信息的综合处理,形成一 个意义更广泛的电力行业综合信息管理系统。在各种信息综合过程中,具有 w e b 功能的s c a d a 系统,更易满足企业自动化信息平台的要求,更易使采集 西南交通大学硕士研究生学位论文第3 页 和监控的数据得以开放,并被更多的管理系统、控制系统以及用户访问一1 。 目前国内外存在多种实现w e b 应用系统的技术途径,其中最具有代表性、 使用最广泛的两大类分别是微软公司提出的n e t 平台和s u n 、i b m 等公司提 出的j 2 e e 平台。作为彼此竞争的应用平台,j 2 e e 和n e t 开发平台在目标和 体系结构上极其相似,但在实现上又完全不同。对两个平台产生至关重要影 响的三个方面是:系统平台基础构造、三层多层体系结构和移植性能扩 展。j 2 e e 另一个重要特征就是它的架构开放性,它本身是一系列规范,而不 是产品,任何符合这一规范的产品都是j 2 e e 兼容的。这使得j 2 e e 从制订之 初就得到了广泛的支持。而n e t 在设计之初就紧紧地把平台规范与产品胶合 在一起,虽然n e t 架构的- 4 , 部分具有开放性( 如c # 语言、w e b 服务等) , 但至少目前不太可能会有一个非微软的n e t 实现m 1 。 j 2 e e 发展到今天,轻量、敏捷已成趋势。轻量实际上是一种开发思想和 方法,它包括两个部分,一个是开发,一个是运行。具体来讲,在开发阶段, 要能迅速地构建应用系统;在运行阶段,要尽量减少系统运行开销,使运行 更加轻便。但是传统的j 2 e e 平台没有能够提供一个令人满意的应用程序编 程模型,致使开发难度较大,系统臃肿。不少j 2 e e 开发者选择了另外一种 开发方式可以降低j 2 e e 开发难度的开源框架,较为流行的有s t r u t s 、 h i b e r n a t e 和s p r i n g 等,现在它们已经在很多j 2 e e 项目种扮演着重要角色。 j 2 e e 平台的日益成熟是开源框架流行的主要原因,当使用j 2 e e 的标准a p i 实现应用难度较大时,优秀的开源框架则成为解决实际问题的利器,它们不 仅提供了极为丰富的技术文档,在其背后还有一个专业的团队做支持,并且 一切都是免费的。总之,一些优秀开源框架融入到j 2 e e 开发项目中,将使 应用系统开发更简单、高效,综合成本也更低。 j 2 e e 已经逐渐成为企业级w e b 开发的标准,在很多大型或是中小型w e b 应用系统中都有成功的案例,比如电子商务、银行系统、企业信息管理等领 域。但在j 2 e e 平台上开发具有实际应用价值的整套s c a d a 系统及其相关系 统的成功例子很少。 。目前大部分国内s c a d a 系统主要是基于传统的c s 结构,客户端均为“胖 客户模式,需要运行专用的监控软件来显示和管理监控参数及响应控制命 令,当系统扩展时,所有客户机上运行的监控软件均需作相应的修改,系统 软件在易维护性和可扩展性等方面表现并不理想,难以与其它信息系统集 成。而现在国外大部分产品都开始或者已经向基于w e b 的s c a b a 系统方向发 展。开发基于b s 模式( w e b 化) 的s c a n 系统是当前发展的一个重要方向, 西南交通大学硕士研究生学位论文第4 页 它不仅能拓宽s c a d a 系统的适应范围,提高系统的可靠性,也使s c a d a 系统 的管理和维护变得更加简便。研究设计基于b s 结构的s c a d a 系统符合国际 上s c a d a 系统的发展潮流,对国内s c a d a 系统走上国际领先地位具有重要意 义 8 1 。因此,运用j 2 e e 平台技术开发基于b s 结构的电力s c a d a 系统既具有 现实的研究意义,也有广阔的应用前景。 1 3 本文的主要工作 本论文的主要内容是在分析电力s c a d a 系统的功能、物理结构和逻辑架 构的基础上,以j 2 e e 技术为应用平台,设计以b s 三层结构模式为基础的 系统软件框架,并实现一个电力s c a d a 系统的原型系统。其中,将基于m v c ( m o d e 卜v i e w c o n t r o l l e r ,模型一试图一控制器) 架构模式的s t r u t s 框架和 h i b e r n a t e 框架再结合j 2 e e 平台技术综合运用到系统的设计中,并实现电力 s c a d a 系统的基本功能,将是本文工作的核心内容。 本文对各章节工作安排如下: l 、第一章主要说明本课题的研究背景、研究意义、研究内容、国内外 研究现状和实现的方法,以及论文的具体工作安排。 2 、第二章介绍j 2 e e 平台技术,包括其体系结构和技术组成,重点分析 j 2 e e 平台的核心技术。 3 、第三章主要分析目前常用于j 2 e e 项目中的开源框架s t r u t s 和 h i b e r n a t e ,并介绍和分析基于s t r u t s 和h i b e r n a t e 等开源框架在j 2 e e 架 构中的应用。 4 、第四章分析系统设计方案,提出系统总体架构。主要是设计基于j 2 e e 平台的s c a d a 系统多层软件架构,合理配置系统功能模块。 5 、第五章是在前一章基础上,采用j 2 e e 组件技术及基于j 2 e e 的开源 框架( s t r u t s 、h i b e r n a t e ) 具体实现用户信息管理、系统报表编辑、图形 显示等功能。 6 、总结全文,提出未来工作方向。 西南交通大学硕士研究生学位论文第5 页 第2 章j 2 e e 平台概述 j 2 e e 是由s u n 公司引导、各相关计算机软件厂商共同参与发起的,现已 成为业界广泛认可的工业标准。j 2 e e 是建立在j a v a2 平台上的企业级应用 的解决方案,j 2 e e 技术的基础便是j a v a2 平台,它不但有j 2 s e 平台的所有 功能,同时还提供了对e j b ,s e r v l e t ,j s p ,x m l 等技术的全面支持,其最 终目标是成为一个支持企业级应用开发的体系结构,简化企业解决方案的开 发、部署和管理等复杂问题。 2 1j 2 e e 发展历程及应用前景 j 2 e e ,即j a v a 2 平台企业版( j a v a2p l a t f o r me n t e r p r i s ee d i t i o n ) , 是s u n 公司为企业级应用推出的标准平台。 在j 2 e e 诞生之前,市面上已经存在着很多程度不一的“准j 2 e e 中间 件。它们主要用于解决三大类问题:事务处理、分布式对象管理和w e b 请 求处理。s u n 于1 9 9 9 年1 2 月推出了j 2 e e 技术规范的第一个版本,该规范具 有重要的实际意义:首先,它为j a v a 企业开发提供了一幅清晰的全景,各 项分支技术在这个领域中的地位和作用得到了客观、准确的定义;其次,它 使用“容器 和“组件”等概念描绘了j a v a 企业系统的一般架构,明确地 划分了中间件厂商和应用开发者的职责所在;最后,它规定了应用服务器产 品的具体行为,在执行此标准的厂商产品之间实现了一定程度的可替换性和 互操作性吲。 j 2 e e 与j a v a 社区的决策机制j c p ( j a v ac o m m u n i t yp r o c e s s ) 几乎是 同步产生的。j 2 e e 下属的各种技术规范,包括1 4 版之后的j 2 e e 本身,都 被纳入了j c p 的议程。j 2 e e 社区中的另一股重要力量,是种类极为丰富的开 放源代码项目。2 0 0 2 年以来,在j 2 e e 领域的各个层面上,几乎所有主流产 品都有来自开源项目的替代方案,在其中很多位置上,开源产品甚至是首选 u 叫。高端产品的开源化或者免费化,在j 2 e e 产业的发展过程中产生了深远 的影响,预计未来在j 2 e e 的发展中将会继续扮演重要的角色。 在j 2 e e 自诞生起至今日的发展演化过程中,发生的最大变化是它放弃 西南交通大学硕士研究生学位论文第6 页 了对“分布式对象模型”的强调。传统上的“分布式对象架构”仅在异质系 统对远程调用等要求极为苛刻的应用场景时才会优先考虑,而不再是所有 j 2 e e 应用都应该使用的标准方案。除了这个显著的变化以外,前述提及的支 持开源软件运动的组织及个人,在对j 2 e e 技术的探索和拓展下,逐渐形成 了一个名为“轻量级容器架构的完整解决方案,对j 2 e e 平台里传统e j b 架构提出了挑战。以轻量级架构作为技术平台来开发普通的j 2 e e 项目,目 前已经得到相当广泛的应用。 j 2 e e 已经成为企业级开发应用的事实标准,很多厂家都表示将对j 2 e e 给予支持,并将j 2 e e 技术作为大型应用系统之间海量数据处理与信息共享 的安全稳定的端到端平台1 。无疑,j 2 e e 为企业勾勒了一幅具有更强的伸缩 性、开放性、安全性且简单易用的未来应用的蓝图。 但是j 2 e e 功能的强大也是一把双刃剑,正是因为它太强大了,以致让 人难以使用。目前,j 2 e e 开发依然十分复杂,开发的技术成本和人力成本仍 然很高。因此,j 2 e e 既要维持目前强大的功能,又要让大众得以采用,进行 简化工作十分必要。当然,j 2 e e 设计者们已经开始朝此方向前进。 2 2j 2 e e 体系结构 j 2 e e 是开放的、基于标准平台、用于开发、部署和管理n 层结构,且面 向w e b 、以服务器为中心的企业级应用。它是一套体系结构规范,而不是一 个具体的软件产品。 2 2 1j 2 e e 多层体系框架 j 2 e e 平台使用多层分布式应用模型。应用程序逻辑根据功能划分不同的 组件,由多个应用程序所组成的j 2 e e 应用系统可以安装在不同的计算机上, 取决于这些应用组件是属于整个多层的j 2 e e 环境中的哪一层2 i 。j 2 e e 为多 层应用系统提供了容器平台,程序组件在部署时被安装在容器里,容器是能 够提供基本功能的底层平台,它们之间通过接口进行通信。组件的安装过程 包括设置在j 2 e e 应用服务器中的参数和设置应用服务器本身。这些设置决 定了由j 2 e e 服务器提供的多种服务,例如安全、事务管理、j n d i 查询和远 程调用等。j 2 e e 应用框架使同样的组件在一个多层应用框架体系之内能够根 据其部署方式的不同实现不同的功能。 西南交通大学硕士研究生学位论文第7 页 事实上,s u n 设计j z e e 的初衷正是为了解决传统的两层c s 模式的弊端, 在传统c s 模式中,客户端担当了过多的角色而显得十分臃肿。在这种模式 中,第一次部署时比较容易,但难以升级或改进,可扩展性也不理想,并且 经常基于某种专业的传输协议。这些都使得它重用业务逻辑和用户界面逻辑 非常困难。现在j 2 e e 的多层企业级应用模型将传统两层模型的不同层面切 分成多个层次,一个多层化的应用可以为各种服务提供一个相应的独立层 次,有利于系统业务逻辑的专属分配。j 2 e e 多层应用系统模型如图2 - 1 所示: 匡囝圉o 蓦刁一i 圄圄 e i s 层 图2 - ij 2 e e 多层应用模型 尽管j 2 e e 应用程序如图2 1 所示那样可由三层或四层构成,但j 2 e e 多 层应用一般是指三层应用,因为它们逻辑上分布在三个不同的计算层次:客 户端( 客户层) 、j 2 e e 服务器( 中间层,它又包括w e b 层和业务层) 以及后 台数据库或是过去遗留下的系统( 资源层) 。三层应用系统通过在客户程序 和后台存储层之间提供一个多线程的应用服务器的方式,扩展了原来标准的 两层应用系统,即客户和服务器模型。 j 2 e e 应用程序是由组件构成,j 2 e e 组件是一个封装了功能的软件单元, 能够与相关的一些类和文件一起组装成j 2 e e 应用程序,并可与其他组件通 信。j 2 e e 组件是由j a v a 语言开发并且编译的,这与j a v a 开发的其他程序并 无差别。不同的是,相对于标准的j a v a 类而言,j 2 e e 组件要组装成j 2 e e 应用程序,要验证是否有良好的格式并且遵循了j z e e 规范,要部署并运行 在j 2 e e 应用服务器上,而且它们也是由j 2 e e 应用服务器来进行管理的。 下面分别对j 2 e e 多层系统模型的各个分层进行说明n 3 3 : 1 、客户层 西南交通大学硕士研究生学位论文第8 页 j 2 e e 的客户可以是一个w e b 组件或者是一个应用程序客户。w e b 客户即 “瘦客户 ,瘦客户意味着通常不需要直接与数据库打交道、执行复杂的业 务逻辑或者连接过去的遗留系统,这些重量级的操作都由运行在j 2 e e 应用 服务器上的e j b 或其它业务组件来完成。从w e b 层接收的页面还可包括内嵌 的j a v aa p p l e t 。w e b 组件是创建w e b 客户的首选,它不需要客户端安装任 何插件就能正常运行;同时,由于w e b 组件提供了w e b 页面设计和应用逻辑 代码的分离,也使得它能够设计出结构清晰、模块化的应用程序。此外,j 2 e e 的客户另外一种形式j 2 e e 应用程序客户,它运行在客户机上,提供强大、 灵活、易用的用户界面。应用程序客户可以直接访问运行在业务层上的业务 组件,也可以通过h t t p 协议与运行在w e b 层上的组件通信。 j 2 e e 应用程序可以使用基于浏览器的瘦客户或者相对比较“胖”的应用 程序客户,要决定采用哪一种,考虑的是要把事务过程的功能实现放在客户 端以贴近用户( 胖客户) ,还是把这些功能尽可能地放在远程服务器( 瘦客 户) 去实现。让远程服务器去实现更多的业务功能,有助于应用系统的分布、 部署以及管理。但是,在客户端实现更多的业务功能则有助于更好地感知用 户的使用体验。 2 、w e b 层 j 2 i i e 多层体系结构中的中间层又可再分为w e b 层( 或称之为表示层) 和 业务层,二者均位于应用服务器中。w e b 层产生表示逻辑,接收来自客户端 的用户反馈。客户端可以是h t m l 客户端或其它的w e b 客户端。在接收客户 端请求的基础上,w e b 层对用户的请求产生相应的响应。j 2 e e 的w e b 组件可 以是s e r v l e t 或者j s p 页面。s e r v l e t 是用j a v a 语言开发的类,它能动态处 理请求并构造响应。j s p 页面则是基于文本的,也能像s e r v l e t 一样被执行, 更多用于创建一些静态的内容。 对于w e b 层设计,现在流行的一种技术是基于m v c 模式架构的开发方法。 在m v c 模式中,要求在应用程序开发中将业务逻辑、界面显示和数据处理进 行分离,提高内聚性,并降低w e b 层与业务层的耦合,增强模块性和可重用 性。目前基于m v c 模式的有s t r u t s 、j s f 、w e bw o r k 等。本文后面将会专门 介绍m v c 模式。 3 、业务层 业务层是j 2 e e 系统多层结构中体现核心价值的部分,它主要专注于业 务规则的制定、业务流程的实现等与业务需求密切相关的系统设计。业务层 西南交通大学硕士研究生学位论文第9 页 在整个体系结构中的位置十分关键,它处于数据层与w e b 层之间,起到了数 据交换中承上启下的作用。由于层是一种弱的耦合结构,各层之间的依赖关 系是指向下的,下层无需知道上层实现细节,改变上层的设计对于其调用的 下层而言没有任何影响。正因如此,业务层的设计对于一个支持可扩展的系 统结构尤为关键,因为它扮演了两个不同的角色:对于数据层而言,它是调 用者;对于表示层而言,它是被调用者。 传统的j 2 e e 业务层组件由运行在业务层的e j b ( e n t e r p r i s eb e a n ,企 业b e a n ) 来执行复杂的业务逻辑,用于解决或满足某种特定商业领域的一些 需求。由前述可知,e j b 工作流程一般是:接收客户的调用请求,从数据层 读取数据并完成处理,然后把结果发送回客户程序中。有三种不同类型的 e j b ,分别是会话b e a n ( s e s s i o nb e a n ) 、实体b e a n ( e n t i t yb e a n ) 和消息 驱动b e a n ( m e s s a g e d r i v eb e a n ,m d b ) 。会话b e a n 代表客户的一次短暂的 会话过程,当客户执行完成后,会话b e a n 以及它所包含的数据也随之消失。 实体b e a n 则代表的是持久的数据,即便客户中止或者服务器关闭,j 2 e e 提 供的底层服务也将确保实体b e a n 的数据能够被保存下来。消息驱动b e a n 结 合了会话b e a n 和j m s ( j a v a 消息服务) 的特性,允许一个业务组件异步接 收j m s 消息。 4 、企业信息系统( e i s ) 层 企业信息系统层有时又称之为数据层或资源层,它主要是指对原始数据 ( 数据库或者文本文件等存放数据的形式) 的操作层,而不是指原始数据, 也就是说,它是通过对数据的操作来为业务逻辑层或表示层提供数据服务。 e i s 层通常包括企业资源规划( e r p ,e n t e r p r i s er e s o u r c ep l a n n i n g ) 系统、 大型机事务处理、数据库处理系统以及其它在构建j 2 e e 分布式应用系统时 已有的信息系统。实现本层的方法很多,比如直接使用j d b c 或者使用封装 了j d b c 的持久层框架。 2 2 2j 2 e e 多层应用模型的优势 j 2 e e 的多层分布式体系结构应用模型的优势主要体现在以下两个方面: 可以利用此模型来创建可重用的代码和可伸缩的应用系统。 这是因为该模型可以对应用程序业务逻辑进行解耦,使之成为高内聚低 耦合的应用系统,也就是说,可以将应用系统的组件和子系统分布在不同层 西南交通大学硕士研究生学位论文第1 0 页 次上。这样可以促进模块化应用系统的开发,而高度模块化的应用系统可以 促进软件重用,从而提升开发效率。此外,如果将应用系统分布在明确的层 上,则每一层就可在不同的计算机硬件环境中,因而获得一定程度的可伸缩 性。 该模型除可在运行资源级提供可伸缩性外,在开发队伍人力资源级 亦能提供可伸缩性。 开发企业级的应用系统通常是一项复杂、耗时的工程,这就需要由一个 或数个开发小组协同工作。而基于j 2 e e 开发应用系统是面向团队的开发, 同时,由于应用系统具有多层的特点;在开发过程中,每一个小组根据计划 安排在负责应用所要求的某个层时,只需将关注的重点放在那个特定层即 可。这样开发团队的规模就可以根据实际情况进行扩大或缩小。 2 2 30 2 e e 的容器和a pl j 2 e e 平台实际上是一个分布式应用程序一服务器环境,该环境主要包括 容器和一组扩充的a p i 。通过容器,j 2 e e 体系结构就能在开发和部署之间提 供无关性,并在不同类型的中间层服务器间提供可移植性。而j 2 e e 的a p i s 则为j 2 e e 应用程序定义了编程模型 1 、容器提供的服务 在j 2 e e 应用程序的组装过程中,会针对该应用程序中的各个组件,或 者是针对j 2 e e 应用程序本身的需要,对容器进行设置,用以定制j 2 e e 服务 器所提供的底层服务支持,包括命名和目录服务( j n d i ) 、事务管理、安全 服务以及远程调用等。j 2 e e 架构提供的这些可配置的服务意味着在同一个 j 2 e e 应用程序中的组件可能会有不同的行为表现,这取决于它们部署的j 2 e e 容器环境n4 i 。此外,除了容器提供的可配置服务之外,容器还管理着一些不 可配置的服务,例如e j b 和j a v as e r v l e t 的生命周期、数据库连接池以及 对数据持久化等。 j 2 e e 规范使用容器机制的好处是:通常由于瘦客户的多层应用程序比较 难以开发,因为它们需要编写许多复杂的代码去解决事务、状态管理、多线 程、资源池以及其它复杂的底层细节。但是基于组件和平台无关的j 2 e e 架 构则使开发j 2 e e 应用程序时不必理会这些底层细节的设计,因为业务逻辑 被封装在可重用的组件中,而且j 2 e e 应用服务器针对每一种组件类型,以 容器的形式提供了大量的底层服务,开发人员不再需要自己去开发这些底层 西南交通大学硕士研究生学位论文第11 页 的服务,可以专注于业务逻辑代码的设计上。 2 、容器类型 个j 2 e e 应用服务器包括一个或者多个j 2 e e 容器。不同的容器位于 j 2 e e 架构的不同层次中,各自担负相应的功能,因此在应用程序部署时会将 不同的组件安装到相应的容器中,如图2 2 所示。 图2 - 2j 2 e e 应用服务器和容器 j 2 e e 应用服务器主要包含四种类型的容器:应用程序客户端容器、 a p p l e t 容器、w e b 容器和e j b 容器。 e j b 容器:管理所有j 2 e e 应用程序中e j b 的执行,e j b 及其容器运 行在j 2 e e 服务器上。 w e b 容器:管理所有j 2 e e 应用程序中j s p 页面和s e r v l e t 组件的执 行,w e b 组件及其容器运行在j 2 e e 服务器上。、 应用程序客户端容器:管理所有j 2 e e 应用程序中应用程序客户端组 件的执行,应用程序客户端及其容器运行在客户机上。 a p p l e t 容器:负责管理h p p l e t 的运行,由客户端机器上的w e b 浏览 器和j a v a 插件一起构成。 3 、0 2 e ea pi 简介 j 2 e e1 4 包含了每个j 2 e e 平台必须支持的一组j a v a 标准扩充a p i ,下 面介绍一些较常见的a p i n 引: j a v as e r v l e t 技术:j a v as e r v l e t 是可用于定义h t t p 的s e r v l e t 类。 s e r v l e t 扩展了服务器的能力,这些服务器上的应用程序可以通过请求一响应 模式来访问。虽然s e r v l e t 可以响应任何类型的请求,但通常情况下它们用 西南交通大学硕士研究生学位论文第12 页 于扩展w e b 服务器上的应用程序。 j s p 技术:j s p 技术可以把一些s e r v l e t 的代码片段直接插入文本文 件中间。j s p 页面是基于文本的,它包含了两种类型的文本:一类是静态模 板数据,可以用任何文本表达,如h t m l 或x m l ;另一类是j s p 元素,它决定 了页面上的动态内容。 e j b 技术:e j b 是一段包括属性和方法的代码,是业务逻辑的实现模 块,它可以独立使用或是与其它e j b 一起在j 2 e e 服务器上执行业务逻辑。 有三种不同类型的e j b :会话b e a n 、实体b e a n 和消息驱动b e a n 。实体b e a n 的一个好处是不需要写任何s o l 语句或使用j d b ca p i 就能够实现对数据库 的访问,这些繁杂的事情将会交给e j b 容器来完成。不过若是重载了缺省的 容器管理持久性,则就必须使用j d b ca p i 。同样,若使用会话b e a n 来访问 数据库,也需要使用j d b ca p i 。 j d b c :使用j d b ca p i 可以在j a v a 程序中执行s o l 命令。所谓的容器 管理持久化,是指数据库的访问由容器来实现,而不需要在e j b 中包含任何 的j d b c 代码或s q l 指令。当重载了实体b e a n 的容器管理持久化,就可以在 e j b 中使用j d b ca p i 来访问数据库,或者也可以在会话b e a n 中使用它来直 接访问数据库,这亦称之为b e a n 管理持久化。j d b ca p i 包括两部分:应用 程序接口和服务接口,应用程序接口用于在组件中访问数据库;服务接口则 连接了j d b c 驱动程序和j 2 e e 平台。 j n d i :即j a v an a m i n ga n dd i r e c t o r yi n t e r f a c e ( j a v a 命名和目录 接口) ,该a p i 包括两个部分:提供了l d a p ( 轻量目录访问协议) 、n o v e l d i r e c t o r ys e r v i c e 或者n e t s c a p ed i r e c t o r ys e r v i c e 等目录服务资源上执 行标准操作的方式;查看用于生成e j b 、j d b c 连接等的接口,例如应用程序 服务器在j n d i 服务中绑定到一个数据源对象后,网络中任何j d b c 客户应用 程序都可以使用与该数据源关联的逻辑名来检索该数据源对象。 图2 - 3 说明了j 2 e e1 4 中的a p i s 在各种j 2 e e 容器中的作用n 6 。: 西南交通大学硕士研究生学位论文第13 页 2 3j 2 e e 设计模式 2 3 1 设计模式简述 图2 - 3j 2 e e 平台a p i s 模式( p a t t e r n ) 就是做事的一种方法,也即实现某个目标的途径或技 术。这种捕获有效技术的思想可以应用到许多领域当中,比如烹饪、生产产 品、开发软件以及其他一些行业。对于任何一个正迈向成熟的行业,人们总 会开始寻找一些通用和有效的方法,来达到目标并解决不同场合中的问题。 由某个行业的从业人员组成的社区通常会发明一些专业术语,以便于同行之 间进行交流。这其中的某些专业术语将称为模式,即实现特定目标的公认技 术17 i 。 设计模式是一套被反复使用、多数人熟知、经过分类编目、代码设计经 验的总结,它是用来解决一类相关问题的通用技术,而不是解决问题的特解。 西南交通大学硕士研究生学位论文第14 页 使用设计模式是为了可重用代码,让代码更容易被他人理解,保证代码可靠 性。毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编 制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。 现在已经出现了数十种软件设计模式,并且随着可复用面向对象软件的发 展,新的大量的设计模式正不断出现。 目前,可复用面向对象软件系统一般划分为三大类:应用程序、工具箱 和框架。一般我们平时开发的具体软件都是应用程序;j a v a 的a p i 属于工具 箱;而框架是构成一类特定软件可复用设计的一组相互协作的类,例如e j b 是j a v a 应用于企业计算( j 2 e e ) 的框架。框架通常定义了应用体系的整体 结构、类和对象的关系等设计参数,以便于具体应用实现者能集中精力于应 用本身的特定细节。框架主要记录软件应用中共同的设计决策。框架强调设 计复用,因此框架设计中必然要使用设计模式。 设计模式使人们可以更加简单方便地复用成功的设计和体系结构。将已 证实的技术表述成设计模式也会使新系统开发者更加容易理解其设计思路。 通常,一个设计模式包含四个基本要素: 1 、模式名称 模式名称是一个助记名,一般用一两个词来描述模式的问题、解决方案 和效果,命名一个新的模式增加了设计词汇。设计模式允许在较高的抽象层 次上进行设计。基于一个模式词汇表,开发团队成员之间就可以讨论模式并 在编写文档时使用它们。模式名可以提高开发者思考层次,便于与其他人交 流设计思想和设计结果。找到恰当的模式名也是设计模式编目工作的难点之 2 、设计的问题 描述了应该在何时使用设计模式。它解释了设计问题和问题存在的前因 后果,它可能描述了特定的设计问题,如怎样用对象表示算法等,也可能描 述了导致不灵活设计的类和对象结构。有时候设计问题部分还包括使用模式 必须满足的一系列先决条件。 3 、解决方案 描述了设计的组成部分,它们之间的相互关系以及各自的职责和协作方 式。因为模式就像一个模板,可应用于多种不同的场合,所以解决方案并不 描述一个特定而具体的设计或者实现,而是提供设

温馨提示

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

评论

0/150

提交评论