(计算机软件与理论专业论文)j2ee平台探讨及其在社保行业开发中的应用.pdf_第1页
(计算机软件与理论专业论文)j2ee平台探讨及其在社保行业开发中的应用.pdf_第2页
(计算机软件与理论专业论文)j2ee平台探讨及其在社保行业开发中的应用.pdf_第3页
(计算机软件与理论专业论文)j2ee平台探讨及其在社保行业开发中的应用.pdf_第4页
(计算机软件与理论专业论文)j2ee平台探讨及其在社保行业开发中的应用.pdf_第5页
已阅读5页,还剩81页未读, 继续免费阅读

(计算机软件与理论专业论文)j2ee平台探讨及其在社保行业开发中的应用.pdf.pdf 免费下载

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

文档简介

摘要 在行业软件开发中,架构的选择成为关系软件产品成败的重要因素。过去行 业软件的开发以两层架构为主,由于这种方式具有开发方便、快捷的优点,在一 定程度上加快了行业的信息化进程,但这种架构存在客户端应用程序大、不利于 更新和维护等缺点,已不能满足当今行业软件开发中信息整合的需要。三层多 层架构的出现提高了系统的灵活性、可伸缩性,并使性能提高成为可能,已经成 为当前行业软件开发的流行架构。 当前,比较流行的三层多层架构有n e t 平台和j 2 e e 平台,它们都为针对 分布式多层应用的设计、集成、性能、安全性和可靠性等诸多方面为用户提供了 总体的指南和规范。而j 2 e e 平台以其在可移植性、架构开放性、安全性、性能 等方面的优势,获得了更为广泛的应用。 本课题对当前行业软件架构进行了介绍和比较,对j 2 e e 平台进行了深入的 研究,阐述了j 2 e e 平台在行业软件开发中的特点和优势,并且对j 2 e e 平台中 常用的技术和开发模式进行介绍,阐述了j 2 e e 平台的理论基础。基于以上理论 研究,探讨了利用j 2 e e 进行架构设计时的几个关键问题,并且结合社保行业中 劳动就业系统业务需求,设计和开发了一个基于j 2 e e 平台的系统一劳动就业管 理系统( l m l s ) 。 本文对l m l s 的系统需求、系统目标和系统特点进行了描述,根据l m i s 系 统的要求,使用j 2 e e 平台进行系统开发。通过对l m i s 系统的分析,结合j 2 e e 平台的特点,设计了l m i s 系统架构,论文描述了l m i s 系统架构的设计过程, 主要包括:l m i s 架构层次结构;数据封装的设计和实现;表示层、控制层、业 务逻辑层的设计规范和实现过程;系统异常处理的设计和实现;系统日志处理的 设计和实现等。然后通过对l m i s 系统中职业培训模块的分析和设计,阐述了 l m i s 架构在模块开发中的具体应用。通过对l m i s 系统架构的设计,提出了一 个在行业软件开发中可供借鉴的开发模式。论文最后对l m i s 系统的开发进行了 总结,分析了系统开发过程中的优点和不足,然后结合l m i s 系统开发过程中的 心得和体会,对未来行业软件的开发提出了一些建议。 【关键字】三层多层架构j 2 e e m v cs t r u t sl m i s a b s i r a c t l ns o f t w a r ed e v e l o p i n g , t h ec h o i c eo ff r a m eh a sb e e nav e r yi m p o r t a n tf a c t o rt o t h ep r o d u c t ss u c c e s so rf a i l u r e i nt h ep a s t t h es o f t w a r ed e v e l o p i n gw a sm a i n l yb a s e d o nt h et w o - t i e rf r a m e , b e c a u s eo fi t sa d v a n t a g eo f c o n v e n i e n c ea n dr a p i dd e v e l o p i n g ,i t h a sa c c e l e r a t e dt h e p r o c e s s o f e n t e r p r i s e s i n f o r m a t i o nc o n s t r u c t i o ni ns o l v e d e g r e e b u ti t h a ss o m ed i s a d v a n t a g eo fb i gc l i e n ta n dd i s c o m m o d i o u sm a i n t e n a n c e a n d u p d a t e ,t h i sb l o c k e dt h ee n t e r p r i s e si n f o r m a t i o ni n t e g r i t y t h et h r e e t i e r m u l t i t i e r f r a m ep r o m o t e st h ef l e x i b i l i t ya n dp e r f o n n a n c eo fs o f t w a r e ,s oi th a sb e e n t h ep o p u l a r f r a m ei ns o f t w a r ed e v e l o p i n ga tp r e s e n t , a tp r e s e n t n e tp l a t f o r ma n dj 2 e ep l a t f o r ma r ea l lp o p u l a r t h r e e - t i e r m u l t i t i e r f l a m e s ,t h e y a l lg i v es o m eg u i d a n c ea n dc r i t e r i o n i n d e s i g n ,i n t e g r i t y ,p e r f o r m a n c e , s e c u r i t y o fm u l t i t i e r a p p l i a n c e j 2 e ep l a t f o r m g a i n s m o r e a p p l i c a t i o n sb y i t s m i g r a t o r y ,o p e n ,s e c u r i t ya n dp e r f o r m a n c ea d v a n t a g e t h i si s s u eg i v e si n t r o d u c ea n dc o m p a r et ot h es o f t w a r ed e v e l o p i n gf r a m e s ,b y s t u d y i n gj 2 e ep l a t f o r md e e p l y , i ts h o w s t h ea d v a n t a g e so fj 2 e ep l a t f o r m i tg i v e st h e t h e o r yf o u n d a t i o no f j 2 e ep l a t f o r m ,i n c l u d i n gt e c h n o l o g i e sa n dd e s i g np a t t e r n s b a s e d o nt h ej 2 e et h e o r ya n dl a b o u ra n de m p l o y m e n tr e q u i r e m e n t ,id e s i g n e da n dd e v e l o p e d t h el a b o u ra n de m p l o y m e n tm a n a g e m e n t i n f o r m a t i o ns y s t e m ( l m i s ) t h i si s s u ei n t r o d u c e st h er e q u i r e m e n t ,g o a l ,c h a r a c t e r i s t i c so fl m i s ,a n dm a k e s 3 2 e ep l a t f o r ma st h es y s t e mf r a m e t h e n ,i t i n t r o d u c e st h el m i s ss y s t e mf r a m e , i n c l u d i n g d a t a e n c a p s u l a t i o n ,a l l t i e r s d e s i g n a n d r e a l i z a t i o n ,e x c e p t i o n a n d l o g d e s i g n ,e t c b ye x p l a i n i n g t h ea n a l y s i sa n dd e s i g no ft h ep r o f e s s i o nt r a i n i n gm o d u l e o f l m i s i ts h o w st h ea p p l i a n c eo f t h es y s t e mf r a m ei ns y s t e md e v e l o p i n g i tg i v e sa p a t t e mi ns o f t w a r ed e v e l o p i n g a tl a s t , b ys u m m a r i z i n g t h el m i s s y s t e m ,i tg i v e ss o m e a d v i c et ot h es o f t w a r ed e v e l o p i n g k e yw o r d s l t h r e e t i e r m u l t i - t i e rf r a m ej 2 e em v c s t r u t sl m i s 1 l 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示谢意。 签名: 日期:孔巧年,月汨 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名:叠主主生导师签 日期: 电子科技大学硕士学位论文:j 2 e e 平台探讨及其在社保行业开发中的应用 1 1 课题背景 第一章引言 随着计算机技术的飞速发展,信息化已经成为当今社会的一个重要特征。许 多传统行业为了在激烈的市场竞争中求得生存和发展,都在加速自身的信息化建 设进程。在信息化建设过程中,由于受传统思维的局限,一个行业内部出现了很 多应用软件,而彼此之间无法进行信息共享,产生了很多“信息孤岛”,严重制 约了行业自身的发展。因此,行业内部信息资源的整合成为许多行业迫切需要解 决的问题。 在传统的软件开发过程中,大多使用客户朋& 务器( c s ) 架构进行开发,由 于这种架构存在客户端应用程序大、不利于更新和维护等缺点,已不适应信息整 合的需要。而当今比较流行的三层多层架构,在分层方面具有很多优点,并且 提高了系统的可扩充性和可维护性,已经得到了越来越广泛的应用。 1 2 课题任务 当今流行的软件开发架构有n e t 和j 2 e e ,并且在国内外的软件开发中都得 到了广泛的应用,但这些应用大都结合自身的特点进行开发,并没有提供一个可 供借鉴的模式。本课题比较了n e t 和j 2 e e 的特点,鉴于j 2 e e 在可移植性方面 的优势,选择j 2 e e 平台做为开发架构,阐述了社保行业软件一劳动就业管理系 统( l m i s ) 的开发过程,并且提出了一个可供借鉴的开发模式。 1 3 内容组织 本论文从软件架构介绍入手,对各种软件架构进行了比较,然后阐述了j 2 e e 平台的理论基础,最后结合l m i s 的开发过程,阐述了j 2 e e 平台在项目开发中 的应用。本论文各章的主要内容如下: 第一章引言 对课题研究背景、课题研究任务以及论文的内容组织作了一个整体性介绍。 第二章软件架构介绍 探讨了各种常用的软件架构,对当今流行的软件架构n e t 和j 2 e e 进行了比 较,并介绍了j 2 e e 平台理论基础,然后阐述了j 2 e e 架构在行业软件开发中的 电子科技大学硕士学位论文:j 2 e e 平台探讨及其在社保行业开发中的应用 优势: 第三章j 2 e e 架构设计中关键问题描述 从设计模式、业务数据封装、业务逻辑层设计方式等方面描述了j 2 e e 架构 设计中的几个关键问题: 第四章l m i s 系统架构分析与设计 介绍了l m i s 系统架构的分析和设计; 第五章l m i s 职业培训模块的分析与设计 通过对l m i s 系统中职业培训模块的分析和设计,阐述了l m i s 架构在系统 开发中的应用: 第六章总结与展望 对整个系统的开发进行了总结,并且对未来行业软件的开发进行了展望。 电子科技大学硕士学位论文:j 2 e e 平台探讨及其在社保行业开发中的应剧 2 1 软件架构概述 第二章软件架构介绍 行业软件开发通常涉及到多个方面,在进行软件开发前我们必须综合考虑这 些因素,选择合适的解决方案,最终才能开发出一个满足用户需求的、高效的应 用系统。 2 1 1 行业软件开发过程中需要考虑的因素 1 从系统本身考虑: 系统使用用户通常关心系统的性能、可扩展性、可靠性、可维护性、安全性、 新功能扩展的难易度和与原有系统的集成等因素。 2 从业务的角度考虑: 行业软件系统实现了业务流程,因此,势必包含了一些业务实体的表现。在 实现过程中系统需要收集并处理大量的结构化信息,它们可以管理上千的业务数 据类型和数据结构,数百万的这些类型的实例,以及他们之间的关联关系。另外, 系统还需要管理与众多用户之间的复杂的交互。 3 从系统整合的角度考虑: 许多业务系统的基本要求是能够与其他系统进行整合。比如对劳动就业管理 系统来说,需要在基本信息维护上与原有社保系统相整合。 在应用系统开发之前,通过对各种因素的分析,我们通常选择一种合适的架 构进行系统开发。软件架构有传统的c s 架构和当今比较流行的三层架构、多层 架构等。从软件架构的发展来看,它基本上是一个从单层到多层逐渐演变的过程。 2 1 2 软件层次结构 大多数应用程序,从p c 上的用户信息管理程序到大型机的复杂应用,都由 三部分组成: 用户界面部分:表示层 应用逻辑部分:业务逻辑层 电子科技大学硕士学位论文:j 2 e e 平台探讨及其在社保行业开发中的应用 数据访问部分:数据访问层 应用程序根据这些层次的逻辑划分规则,可分为单层、两层、三层,多层。 下面对各种层次结构的特点进行详细的介绍: 1 单层结构: 数据访问、表示和业务逻辑是在一个应用中,其特点是:代码复用性差、可 维护性差、修改十分困难;应用不是分布式的;不具有可伸缩性。 2 两层结构: 即客户,服务器( c s ) 结构。处理工作由客户方p c 机负责,服务器只是作 为应用程序和数据之间的传输控制器,即出现了所谓的胖客户端。用户界面和业 务逻辑仍然绑在起,代码难以重用;数据模型“紧耦合”在每一个客户端,数 据库结构改变将导致全体客户端改变,不利于更新和维护;客户端应用程序大。 3 三层体系结构: 应用程序把表示层、业务逻辑层和数据层分开,各层都有一组定义良好的接 口。其特点是:业务逻辑在中间层,成为“对象服务”;中间层通过连接池、 多线程、对象一致性等处理可以为多个客户提供服务,但缺点是编程变得困难, 中间层实现比较复杂。 4 多层结构 与三层结构最大的不同是提供了应用程序的基础设施服务( 安全、事务、传 输、缓冲、生存期管理等) 。它的优点是每一层可以被单独改变,而无需其他层 的改变;降低了部署与维护的开销;资源( 如连接) 可以被缓冲和重复利用;提 高了灵活性、可伸缩性,并使性能提高成为可能;瘦客户端的引入使i n t e m e t 接 入方便,而计算被集中至服务器端。但仍然存在问题,它对企业级应用开发人员 的要求相对比较高,熟悉分布式协议,熟悉事务处理、负载平衡、应用程序安全。 目前大多数企业级应用都是多层的应用。 2 2 当今流行软件架构比较 当今比较流行的行业软件开发平台有n e t 和j 2 e e 。下面我们进行分别介绍。 2 2 1 n e t 和j 2 e e 架构概述 m i c r o s o f t n e t 与s u nj 2 e e 是目前的企业w e b 服务平台市场的两个最重要 的应用架构。它们都为针对分布式多层应用的设计、集成、性能、安全性和可靠 性等诸多方面为用户提供了总体的指南和规范,基于这些指南和规范,技术提供 电子科技大学硕士学位论文:j 2 e e 平台探讨及其在社保行业开发中的应用 商提供了相应的平台、工具和编程环境。在具体的应用架构中,包括了针对应用 的表现层服务、服务器端进程、会话管理、商业逻辑架构、应用数据缓存、应用 逻辑、持久化性、事务、安全和日志服务等等。 1 m i c r o s o f t n e t : m i c r o s o f t n e t 是一个由s e r v e r 、c 1 i e n t 和s e r v i c e 组成的平台。n e t 架 构包括基本的运行库、用户接口库、c l r 、c # 、c 十+ 、v b n e t 、j s e r i d t n e t 、a s p n e t 以及n e t 架构a p i 的各个方面。它由以下三个部分组成: 1 n e t 平台:包括构建n e t 服务和n e t 设备软件的工具和基础架构; 2 n e t 产品和服务:包括基于m i c r o s o f t - n e t 的企业服务器f 如b i z t a l k s e r v e r2 0 0 2 和s q ls e n r e r2 0 0 0 ,他们对n e t 架构提供支持、; 3 第三方软件开发商提供的n e t 服务:构建在n e t 平台上的第三方服务; 2 j 2 e e : j 2 e e ( j a v e 企业版) 是一组规范集,每一个规范规定了j a v a 技术应当如何提 供一种类型的功能。j 2 e e 平台为基于多层分布式应用模型上的j a v a 应用的设计、 开发、装配和部署提供了一个完整的架构。j 2 e e 规范为开发应用和与企业系统 集成定义了数目众多的应用编程接口( a p i ) 和多种应用编程模型。最新的j 2 e e 规 范包括e j b2 0 、3 2 e ec o n n e c t o ra r c h i t e c t u r e l 0 、j d b c2 0 、j s p1 2 、s e r v l e t 2 3 、j t a l 0 1 、j m s l 0 2 、j n d i1 2 、j a v a r m i1 o 、r m l i i o p l 0 、j a a s l 0 、 a v a m a i l1 1 、j a x p 1 1 等。 2 2 2 n e t 和j 2 e e 架构的异同点 1 ) 两者之间的共同点: 1 类似的平台基础构造 j 2 e e 和n e t 两个平台在底层的执行引擎都源于托管的虚拟机概念。 在n e t 和j 2 e e 平台上,程序的编译都经过两个类似的过程。首先特定高级 语言编译器将c # ( 及其他n e t 语言) 和j a v a 源代码分别翻译成中间语言( i l ) 和字节代码( b y t e c o d e ) 。其次,在执行时,中间语言被即时编译器( j i t ) 编 译成特定平台的二进制代码,字节代码则通过j v m 解释执行,完成各自语言 的指令功能。在代码执行的同时,通用语言运行时和j a v a 虚拟机也都提出 了异常捕捉、类型安全、内存分配、垃圾收集等自动化内存管理工作,大大 减轻了现代软件的内存泄漏问题和程序员繁重的负担。 面向对象程序设计在j 2 e e 和n e t 平台中都获得了直接的支持,单根继 承加多接口实现是它们共有的特征。 电子科技大学硕士学位论文:j 2 e e 平台探讨及其在社保行业开发中的应用 一个能够为编程提供广泛服务的、可复用的a p i 类库对于现代软件平台 非常重要。从基础的集合、字符串操作到企业级的a p i 接口,如j m s 、j d b c 、 j a ) ( 、j n o i 等,可以看到j 2 e e 在这方面有着非常坚实的结构。微软n e t 架 构类库也提供了从图画、网络、线程到a d o n e t 、a d s i 、w i n d o w s 表单、a s p n e t 等一系列的a p i 。 2 相同的三层多层体系 基于三层多层分布式计算结构已毋庸置疑地成为当今企业应用的主流 模式。 在客户端,表示层负责用户与系统的交互。对于不同的处理要求,n e t 和j 2 e e 都提出了基于桌面的应用程序和基于浏览器的w e b 应用的开发组件: j a v aa p p l i c a t i o n 与w i n d o w s 表单、j a v as e r v l e t j s p 与a s p n e t 。 s e r v l e t j s p 与a s p n e t 是目前企业在“瘦客户端”应用的重点,两者都基 于h t t p 请求响应模型,通过h t m l 浏览器页面完成用户交互。 在中闯层,分布式业务组件负责企业应用的商业逻辑部署。由于这些业 务组件经常负责处理数据库连接、网络资源、线程等高昂的资源,所以一直 是三层多层架构的关键和企业应用的核心。j 2 e e 的e j b 是一个成熟的、得 到业界广泛支持的大型企业级组件架构,而n e t 组件则是建立在新型的c o m + 服务之上,两者在组件与操作系统的交互、客户端资源共享等方面都有很好 的支持。e j b 的核心是容器,容器是一个为组件提供服务的运行时环境,负 责为组件提供诸如事务处理、持久性、安全性、组建状态自动化管理等服务, 它分离了商业逻辑和系统底层逻辑,使开发人员的工作大为简化。n e t 则通 过元数据支持自描述性的组件开发、x c o p y 部署以及多版本共存,而无需注 册表和描述文件。 在后端数据层,两个平台都为数据库连接量身定做了一套数据存取模 型:j 2 e e 的j d b c 和n e t 的a d o n e t 。它们在支持传统s q l 数据源的同时, 也都支持新型的x m l 数据源。 2 ) 二者之间的区别和比较 1 移植、成熟度和扩展性方面的比较 在移植性方面,微软通过n e t 通用语言运行时来消除编程语言的差别, 而j 2 e e 则通过j a v a 虚拟机来消除平台差别。“选择,n e t 平台就意味着选择 w i n d o w s ”,这句话至少在可预见的一段时间里仍然是一个基本事实。跨平台 是j 2 e e 的一大特点,也是在选择企业应用开发平台时的个重要参考因素, 几乎所有的主流操作系统都提供了对j 2 e e 的支持。实际上如果要搭建跨 电子科技大学硕士学位论文:j 2 e e 平台探讨及其在社保行业开发中的应用 u n i x 、w i n d o w s 等多个操作系统平台,j 2 9 e 平台几乎是惟一的选择。j z e e 更 关注跨平台而不是跨语言。 在平台的成熟度方面,两者也有一拼。j 2 e e 在1 9 9 9 年形成了其成熟的 架构,并且到今天已经有相当成熟的经过检验的企业应用系统。而n e t 究其 渊源是源自微软以前开发企业应用程序的平台d n a ( d i s t r i b u t e dn e t w o r k a r c h i t e c t u r e ) ,其中包括了许多已经被证实的技术,并且这些技术已经在 产品中得到实现,包括微软的事务服务器、c o m + 、消息队列、s o ls e r v e r 数 据库等。而对于扩展性,广为业界接受的事实是n e t 平台的扩展思想是基于 软件的横向扩展,而j 2 e e 平台的扩展思想则是基于硬件的纵向扩展。 j 2 e e 另一个重要特征就是它的架构开放性,它本身是一系列规范,而不 是产品,任何符合这一规范的产品都是j 2 e e 兼容的。这使得j 2 e e 从制订之 初就得到了广泛的支持。b e a 、i b m 、0 r a c l e 等都相继开发了符合j 2 e e 的应 用服务器,它们的产品相互之间甚至可以兼容。而n e t 在设计之初就紧紧地 把平台规范与产品胶合在一起,虽然n e t 架构的- d , 部分具有开放性( 如 c # 语言、通用语言基础构造c l i 和w e b 服务标准) ,但至少目前很难想像会 有一个非微软的n e t 实现。 2 j 2 e e 在安全性方面的优势 s u n 提供的j a v a 语言提供了很好的安全性,在程序的编译过程中就会 对那些潜在的问题提出警告,而不是在开发完毕后,加上相应的安全机制。 2 2 3 2 e e 架构在行业软件开发中的优势 通过上面对n e t 和j 2 e e 架构的分析比较,我们可以看出j 2 e e 架构在一致 性、扩展性、性能方面有相当的优势,并且能够提供更好的安全机制,在企业级 大型应用的开发上,j 2 e e 架构能够提供更好的支持。 本论文主要讨论了社保行业中劳动力业务综合管理系统的应用开发,该系统 作为一个大型行业应用来说,对一致性、扩展性、性能提出了比较高的要求,并 且要求系统具有良好的安全性,因此在开发该系统时我们选择j 2 e e 作为开发平 台。 2 3j 2 e e 理论基础 本节探讨了j 2 e e 平台的理论基础,主要从j 2 e e 平台中的常用开发技术和 电子科技大学硕士学位论文:j 2 e e 平台探讨及其在社保行业开发中的应用 设计模式两个方面进行探讨。 2 3 1 常用开发技术 本节主要从表示逻辑、业务逻辑、数据访问逻辑等方面介绍了j 2 e e 平台中 的常用开发技术,并对j 2 e e 中的其他关键技术进行了介绍。 表示逻辑 在j 2 e e 架构里,表示逻辑主要包括客户层和w e b 层。表示逻辑主要采用j s p 、 s e r v l e t 、j a v a b e m l 技术。 w e b 层j 2 e ew e b 组件可以由j s p 页面以及显示h t m l 页面的s e r v l e t 组成。 调用s e r v l e t 或者j s p 页面的h n 哇l 页面,在应用程序组装时与w 曲组件打包在 一起。与客户层样,w e b 层可能包括j a v a b e a n 来帮助j s p 和s e r v l e t 完成其功 能,j s p 通常使用j a v a b e a n 和业务层中运行的e j b 组件打交道。运行在客户层 的w e b 组件依赖容器来支持诸如客户请求和响应等。 表示逻辑中主要有以下实现技术: l ,s e r v l e t s e r v l e t ( = s e r v e r + a p p l e t ) ,是一些运行于w 曲服务器端的j a v a 小程序, 用来扩展w e b 服务器的功能。它是一种小型的、独立于系统平台的服务器方 程序。s e r v l e t 是一种扩展w e b 服务器功能的技术,而且由于它是用j a v a 编 写的,所以能够访问整个j a v a a p i 库,包话用于访问企业数据库的j d b c a p l 。 s e r v l e t 用特定的j a v a 解决方案替代了其他的w e b 服务器方编程模式( 如: c g i ,i s a p i 等) ,因而继承了j a v a 的所有特性( 跨平台、多线程、o o ) 。用 来编写s e r v l e t 的s e r v l e ta p l 对于服务器环境和协议没有任何特殊的要求, 所以s e r v l e t 具有很强的可移植性,也不像利用c g i 程序等其他方式那样具 有性能局限。s e r v l e t 也同样使用h t 卯协议与客户端进行通信,s e r v l e t 最常 用的子集是“h 1 v r ps e r v l e t s ”。j a v as e r v l e t 不是用户调用的应用程序,而是 由实施该s e r v l e t 的w e b 应用程序中的w e b 容器根据客户端的h t f p 请求来 调用。当一个s e r v l e t 被调用时,w e b 容器把进入的请求信息转发到s e r v l e t , s e r v l e t 生成动态的响应信息。w e b 容器通过接收s e r v l e t 的请求与w e b 服务 器交互,并且把响应信息发送到w e b 服务器。 2 j s p j s p 为w e b 开发提供了一个架构,使用这个架构可以在服务器上使用 h t m l 、x m l 和j a v a 代码,建立安全、快速和独立于服务平台的动态内容。 电子科技大学硕士学位论文:j 2 e e 平台探讨及其在社保行业开发中的应用 j s p 是服务器端的脚本语言,是以j a v a 和s e r v l e t 为基础开发而成的动态网页 生成技术,它的低层实现是j a v as e r v l e t 。j n p ( j a v as e r v e rp a g e s ) 页面由h t m l 代码和嵌入其中的j a v a 代码所组成。服务器在页面被客户端所请求以后对这 些j a v a 代码进行处理,然后将生成的h t m l 页面返回给客户端的浏览器。 j s p 的特点:面向对象,跨平台,和s e r v l e t 样稳定,可以使用s e v l e t 提供的a p i ,克服了s e r v l e t 的缺点,一般和j a v a b e a n s 结合使用,从而将界 面表现和业务逻辑分离。 j s p 网页基于文本文档,它包含两个部分: 表示静态内容的h t m l 或者x m l j s p 标志和j a v a 语言编写的s c r i p t l e t 业务逻辑 业务逻辑主要在业务层处理。业务层为低层业务服务组件提供必要的接口。 业务组件通常被实现为运行在e j b 容器里的e j b 组件。e j b 组件从客户程序处 接收数据,对数据进行处理,再将数据发送到企业信息系统层存储。同时e j b 组件也可以从数据层获取数据,并将数据处理后返回客户端程序。 业务层经常被称为e n t e r p r i s ej a v a b e a n s ( e j b ) 层。业务层和w e b 层一起构 成了三层j 2 e e 应用中的中间层,而其他两层是客户层和企业信息系统层。 e j b 是一组符合定义规则并提供特定回调方法的j a v a 类以及一个x m l 配置 描述文件合并到一个单元中的产物。e j b 在应用服务器的容器里运行,容器负责 给e j b 程序提供系统级的服务,e j b 只关注具体的业务问题。e j b 不局限于特定 的服务器版本、特定的应用服务器提供商、中间件或者通信协议。e j b 只是一个 规范,任何公司都可以按照不同的方法来进行实现。通过使用e j b ,可以大大提 高小型工作组的生产效率,它的可移植性是它的优点之一。 e j b 可以用来实现企业级服务中的业务层,它是企业级应用的基础性软件, 也是相对稳定的部分。e j b a p i 设计的目标是使应用程序编程人员不必为系统级 的服务而编码,从而集中考虑业务逻辑。e j b 技术不适合于为报表系统来分析处 理过程和细粒度的服务。它适合于任何复杂的业务逻辑。正确使用e j b ,可以大 大提高开发人员的生产效率、应用程序部署、性能、可靠性、复用性等。 数据访问逻辑 在企业信息系统里,我们通常遇到的是数据库系统。数据库系统里记录了企 业的各种数据。由于数据库系统本身的多种多样,j 2 e e 为了使业务层组件能够 访问数据库系统,它提供了j d b c a p i 。j d b c a p i 由一个普遍适用的、与供应商 无关的数据库接口组成。它提供了一个公共的接口,以屏蔽供应商提供接口的特 电于 墩大学硕士学位论文:j 2 e e 平台探讨及其在社保行业开发中的应用 殊区别,它的实现由供应商提供,尽管它们的低层实现技术可能不同,但由于使 用了公共的接口,所以只要使用这些接口就可以连接到数据库,不同数据库连接 的低层实现的差别在用户端是透明的。 j d b c a p l 的类和接口包括在j a v a s q l 和j a v a x s q l 包里。 j a v a s q l 这个包里的类主要针对基本数据库编程服务,比如建立连接、产生 执行语句( s t a t e m e n t ) 、产生准备语句( p r e p a r e d s t a t e m e n t ) 、运行结果集和批处 理查询等。 j a v a x s q l 为连接管理、分布式事务处理和老式的连接提供了更好的抽象。它 还引入了连接池、分布式事务以及彳亍集。 j d b c 驱动程序有四种类型: j d b c o d b c 桥 部分j a v a 、部分本机驱动程序 中间数据库访问服务器 纯粹j a v a 驱动程序 j d b c 是一组a p i ,定义了用来访问数据源的标准j a v a 类库,使用这个类库 可以以一种标准的方法方便地访问数据库资源。j d b c 对数据库地访问具有平台 无关性。j d b c a p i 为访问不同数据库提供了一种统的途径,像o d b c 一样, j d b c 对开发者屏蔽了一些细节问题。 其他关键技术 1 j n d i j n d i 设计是为了简化在开发高级网络应用程序中对目录基础设施的访问。 传统上我们采用不同的a p i 访问不同的目录服务,但j n d i 提供了一个标准的 a p i 来访问任何类型的目录。同时它还为我们提供了在网络上存储和检索j a v a 对象的能力。 2 r m i 在j a v a 规范中规定:在j a v a 分布式对象模型中,远程对象就是从另一个j v m 调用其方法的对象,这个对象可以位于不同的机器上。这个对象由一个或者多个 远程接口来描述,这些对象的接口:声明了能够调用的远程对象的方法,远程方 法调用( r m i ) 就是调用一个远程对象上远程接口的一种方法的操作。远程对象 总是通过其远程接1 3 来访问的,客户端要想使用远程对象,首先要获得远程接1 3 的引用,这种引用的获得一般通过j n d i 来搜索。 3 j m s j m s 是一种基于j a v a 的技术,因此是平台无关的。它为消息服务定义了通 电子科技大学硕士学位论文:j 2 e e 平台探讨及其在社保行业开发中的应用 用j a v a 语言接口,支持最常见的消息传递模型( 发布订阅模型和点到点模裂) 。 通过对j m sa p i 的访问可实现面向消息的通信。j m s 通常用来实现异构系统之 间的松散集成。 4 x m l x m l ( e x t e n s i b l em a r k u pl a n g u a g e ) 是一种可以用来定义其他标记语言的语 言,被用来在不同的商务过程中共享数据。 j 2 e e 平台全面支持和实施x m l ,这种强大的组合可使x m l 具备跨平台的 兼容性,甚至用于对x m l 代码进行语法检查和调试的工具也可以与平台无关。 j 2 e e 和x m l 息息相关,w e b s e r v i c e 利用x m l 实现,j 2 e e 的配置描述文件 都是使用x m l 来定义和描述的。 5 j a v a b e a n j a v a b e a n 是基于j a v a 的组件模型,有点类似于m i c r o s o f t 的c o m 组件。 j a v a b e a n 通过j a v a 虚拟机( j a v av i r t u a lm a c h i n e ) 执行,运行j a v a b e a n 摄小的 需求是j d k i 1 以上的版本。在j a v a 平台中,通过j a v a b e a n 可以无限扩充j a v a 程序的功能,通过j a v a b e a n 的组合可以快速地生成新的应用程序。 2 3 2 设计模式 在利用j 2 e e 平台进行开发时,常用的架构设计模式是m v c 模式,下面对 m v c 模式及基于m v c 模式的一个典型应用一s t r u t s 进行详细地介绍。 m v c 模式: m v c 定义:m o d e l v i e w c o n t r o l ,模型一视图一控制器。是一种软件设计模 式,它最早应用在s m a l l t a l k - 8 0 上,用于构建用户界面。由于s m a l l t a l k 是面向 对象领域最早的开发语言,因此这种概念和说法被一直延续下来。最近几年,随 着人们对它深入的研究,m v c 逐渐成为了j 2 e e 平台的标准设计模式。 m v c 中各部分说明: 1 视图 视图是用户看到并与之交互的界面,也就是u l 在j 2 e e 的术语中,早期的 视图指的是由h t m l 元素组成的界面,在新式的w e b 应用程序中,h t m l 依旧 占据主流,但增加了一些新的方式,包括f l a s h 、x h t m l ,x m l x s l 等一些标 识语言以及w e bs e r v i c e s 等等。 m v c 一个大的好处是它能为你的应用程序处理很多不同的视图。在视图中 其实没有真正意义上的业务处理发生,它只是对数据实体( m o d e l ) 提供多种不同 电子科技大学硕士学位论文:j 2 e e 平台探讨及其在社保行业开发中的应用 的表达形式。它将表示逻辑和业务逻辑分开,使应用程序的各部分职责明确,从 而易于应用程序的扩展和维护。 2 模型 模型表示企业数据和业务规则。在m v c 的三个部件中,模型拥有最多的职 责。模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为 多个视图( 不同的表达方式) 提供数据。由于应用于模型的代码只需写一次就可以 被多个视图重用,因此减少了代码的重复性,增加了软件的复用度。 3 控制器 控制器接受用户的输入并调用模型和视图去完成用户的需求。所以w e b 请 求被发送时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定 调用哪个模型构件去处理请求,然后确定用哪个视图来显示模型处理返回的数 据。 图2 1 展示了m v c 的结构和处理流程: 图2 1 m v c 处理流程图 由于w e b 开发有定的特殊性,最明显的就是客户机和服务器的无状态 连接( 也就是h t t p 的特点) 。这种无状态行为使得模型很难将更改通知视图 ( 见上图的c h a n g e n o t i f i c a t i o n 事件) 。因此在w e b 上,为了发现对应用程序 状态的修改,浏览器必须重新查询服务器,这在无状态连接的物理结构下是 电子科技大学硕士学位论文:j 2 e e 平台探讨及其在社保行业开发中的应用 很难实现的。为了解决这一问题,人们对m v c 加以改进,提出了m v c 2 的 设计模式,它种改写主要是针对w e b 应用提出来的,图2 2 是a p a c h e 组织 对m v c 2 模型的流程描述: 图2 2 m v c 2 处理流程图 在m v c 2 的模式中,c l i e n t ( 稿l j 览器) 分担了一部分c o n t r o l l e r 和v i e w 原有 的职责,也就消除了h t t p 无状态协议对m v c 的影响,因此这种设计模式 更加适合多层结构的w e b 应用的开发。事实上,目前提到的m v c 也基本 上指的是在多层w e b 应用设计中使用的m v c 2 设计模式。 目前在j 2 e e 平台下,最常用的m v c 开发工具是a p a c h e 提供的s t r u t s , 下面对s t r u t s 进行介绍。 s t r u t s : s t r u t s 是m v c 的一种实现,它将s e r v l e t 和j s p 标记( 属于j 2 e e 规范) 用 作实现的一部分。s t r u t s 继承了m v c 的各项特性,并根据j 2 e e 的特点,做了相 应的变化与扩展。 s t r u t s 的工作原理,如图2 _ 3 所示: 图2 3s t r u t s 结构 1 控制 通过图2 3 大家可以看到有一个x m l 文件s t r u t s c o n f i g 。x m l ,与之相关联的 是c o n t r o l l e r ,在s t r m s 中,承担m v c 中c o n t r o l l e r 角色的是一个s e r v l e t ,叫 电子科技大学硕士学位论文:j 2 e e 平台探讨及其在社保行业开发中的应用 a c t i o n s e r v l e t 。a c t i o n s e r v l e t 是一个通用的控制组件。这个控制组件提供了处理 所有发送到s t r u t s 的h t t p 请求的入v 1 点。它截取和分发这些请求到相应的动作 类( 这些动作类都是a c t i o n 类的子类) 。另外控制组件也负责用相应的请求参数 填充a c t i o nf r o m ( 通常称之为f r o m b e a n ) ,并传给动作类( 通常称之为 a c t i o n b e a n ) 。动作类实现核心商业逻辑,它可以访问j a v a b e a n 或调用e j b 。最 后动作类把控制

温馨提示

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

评论

0/150

提交评论