(计算机应用技术专业论文)基于j2ee架构的移动银行平台的设计与实现.pdf_第1页
(计算机应用技术专业论文)基于j2ee架构的移动银行平台的设计与实现.pdf_第2页
(计算机应用技术专业论文)基于j2ee架构的移动银行平台的设计与实现.pdf_第3页
(计算机应用技术专业论文)基于j2ee架构的移动银行平台的设计与实现.pdf_第4页
(计算机应用技术专业论文)基于j2ee架构的移动银行平台的设计与实现.pdf_第5页
已阅读5页,还剩79页未读 继续免费阅读

下载本文档

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

文档简介

摘要 摘要 本文主要是研究如何在基于j 2 e e 平台下开发移动银行平台系统。本系统是在 s m s 短信银行平台的基础上,对原有需求进行重新分析与提炼,并通过调查相关 的同类产品增加一些新的需求,从而形成了初步的移动银行平台需求。系统的” 发采用了基于u m l 的面向对象系统分析与设计方法,遵循了r u p 软件迭代式丌 发过程。 在开发的需求分析阶段,主要是理解需求并根据需求形成用例。在丌发的分 析阶段,我们将系统在逻辑上分成五层,它们分别是客户层、表示层、业务逻辑 层、数据访问层和e i s 层。客户层包括四种客户端类型,即s m s 手机客户端、w a p 手机客户端、j 2 m e 手机客户端和浏览器客户客户端。在表示层,对应于四种客户 端有相应的表示层组件为其提供视图服务。系统的业务逻辑层主要是为四种表示 层组件提供业务逻辑服务,当表示层需要业务逻辑相关的操作时,都是通过调用 业务逻辑层的服务来实现的。数据访问层是为上层提供数据访问的层,通过o r 映射,把对关系数据库的访问转换成对对象的操作。e i s 层是指系统的关系数据库 管理系统,系统中需要持久化的数据都存储在此数据库中。 在分析与设计阶段,我们通过分析原有s m s 短信银行系统的架构设计,研究 j 2 e e 蓝图的参考实现及j a v a 社区中些优秀的开源项目,最终确定了本系统的架 构。在客户层,我们只需为j 2 m e 手机客户端开发定制的客户端程序,其他客户端 只需使用手机内置的功能即可。对于j 2 m e 手机客户端的设计,我们参考了s u n 的无线应用参考实现s m a r t t i c k e t s ,基于m i d p 开发了客户端程序。在表示层,我 们选用了s t r u t s 的m v c 框架及标准的s e r v l e t 、j s p 等技术,实现了命令模式、业 务代理模式等。在业务逻辑层,我们将主要的业务逻辑都实现在无状态s e s s i o n b e a n s 中,通过实现s e r v i c el o c a t o r 来方便j n d i 查找资源( e j b 、j d b c 数据源等) , 通过实现s e s s i o n f a c a d e 来封装数据访问层接口和为表示层提供方便统的业务逻 辑调用。在数据访问层,我们选用了e n t i t y b e a n s 作为o r 映射,只提供了本地接 口调用。数据访问不通过e n t i t yb e a n s 直接进行,丽是通过业务逻辑的s e s s i o n f a c a d e 来访问,并且通过v a l u eo b j e c t 、a s s e m b l e r 等模式简化数据访闽过程。系 统的e i s 层选用关系数据库管理系统i n f o r m i x ,i n f o r m i x 是银行内广泛使用的数据 库管理系统之一。 在实现与测试阶段,我们完成上面设计部分用例的编码测试工作。 摘要 以上描述了系统开发过程中一个迭代过程,在整个开发过程中,大约经过了 四次迭代,每次迭代中的侧重点不同。在开发的初期,主要的任务在需求定义和 系统分析上。在开发的中后期,主要的任务集中在设计和编码上面。 关键词:手机银行,j 2 e e ,e j b ,s t r u t s ,s e r v l e t a b s 丁r a c 丁 a b s t r a c t t h ei n t e n t i o no ft h i st h e s i si st or e s e a r c ha n dd e v e l o pam o b i l eb a n kp l a t f o r m s y s t e m ( m b p ) b a s e do nj 2 e et e c h n o l o g y , m b pi sd e r i v e df r o ms m sb a n k ,w h i c hi sa s y s t e mi np r o d u c t i o nd e v e l o p e db yt o n g t e c h m o s to fr e q u i r e m e n t so fm b pa r ed e r i v e d f r o mr e q u i r e m e n t so fs m sb a n k a l s os o m en e wr e q u i r e m e n t sa r ea d d e da f t e r i n v e s t i g a t i n gt h er e l a t e dp r o d u c t sa n dd i s c u s s i n gw i t hb a n kc u s t o m e r si nt h ec o u r s eo f m o d e l i n ga n dd e v e l o p i n gm b p , w ea p p l yt h eo b j e c t - o r i e n t e ds y s t e ma n a l y s i sa n d d e s i g nm e t h o d sa n df 0 1 l o wt h er a t i o n a lu n i f i e dp r o c e s s ( r u p ) i nr e q u i r e m e n t s a n a l y s i sp r o c e s s ,w ef o c u so nu n d e r s t a n d i n gt h er e q u i r e m e n td o c u m e n t a t i o na n d t r a n s l a t i n gt h er e q u i r e m e n t si n t ou s ec a s e s i ns y s t e ma n a l y s i sp r o c e s s ,w ed i v i d em b p i n t of i v el o g i c a lt i e r s t h e ya r ec l i e n tt i e r , p r e s e n t a t i o nt i e r , b u s i n e s st i e r , d a t aa c c e s st i e r a n de i st i e r t h e r ea r ef o u rc l i e n tt y p e si n c l i e n tt i e r , w h i c ha r es m sm o b i l e w a p m o b i l e ,j 2 m em o b i l ea n dw e bb r o w s e rc l i e n t ,i np r e s e n t a t i o nt i e r , w ep r o v i d ef o u r c o r r e s p o n d i n gc o m p o n e n t sf o rf o u rc l i e n t s b u s i n e s st i e ri st op r o v i d eb u s i n e s ss e r v i c e f o rt h ep r e s e n t a t i o nt i e r ,a n da l lt h eb u s i n e s sl o g i ca r ei m p l e m e n t e di nt h i st i e r d a t a a c c e s st i e ri st h eo rm a p p i n gt i e ro fm b p , w h i c hm a p st h et a b l e si nt h ed a t a b a s ei n t o j a v ao b j e c t s e i st i e ri st h er e l a t i o n a ld a t a b l em a n a g e m e n ts y s t e m ( r d b m s ) w h i c h s t o r e sa l lp e r s i s t e n td a t ai nm b p i na n a l y s i sa n dd e s i g np r o c e s s ,w ef i n i s hd e s i g n i n gt h e a r c h i t e c t u r eo fm b pt h r o u g ha n a l y z i n gt h es m sb a n k sa r c h i t e c t u r e j 2 e eb l u ep r i n t a n ds o m es u c c e s s f u lo p e n s o u r c ef i a m e w o r ki nj a v ac o m m u n i t y , i nc l i e n tt i e r , w en e e d o n l y d e v e l o pc l i e n ta p p l i c a t i o nf o rj 2 m em o b u ec l i e n t o t h e rc l i e n t sc a ng e tt h e f u n c t i o n a l i t i e sf r o mt h em o b i l e s w h e nd e s i g n i n gt h ej 2 m em o b i l ec l i e n ta p p l i c a t i o n , w er e f e r e n c et h es m a r tt i c k e t so faw i r e l e s se n t e r p r i s e a p p l i c a t i o nf r o m s u n m i c r o s y s t e m s i ti sd e s i g n e da sam i d p i e to fj 2 m ea p p l i c a t i o n i np r e s e n t a t i o nt i e r w e c h o o s es t r u t s ,s e r v l e ta n dj s pa st h em a j o ri m p l e m e n t a t i o n s s o m ed e s i g np a t t e m s , s u c ha sc o m m a n d ,b u s i n e s sd e l e g a t ee t c ,a r ea p p l i e di nt h i st i e r i nb u s i n e s st i e r m o s to f b u s i n e s sl o g i ci si m p l e m e n t e da ss t a t e l e s ss e s s i o nb e a n s ( s l s b ) w ea p p l ys e r v i c e l o c a t o rp a r e mt of a c i l i t a t ej n d il o o k u p ,a n dp r o v i d eac o n v e n i e n ti n t e r f a c ef o rd a t a a c c e s s i n gb ys e s s i o nf a c a d ep a t t e m i nd a t aa c c e s st i e r ,w em a 口a l lt a b l e si nd a t a b a s e i n t oe n t i t yb e a n s ne i st i e r , w ec h o o s ei n f o r m i xd a t a b a s es e r v e ra so u rr d b m s w h i c hi sw i d e l yu s e db yc h i n e s eb a n k s i ni m p l e m e n t a t i o na n dt e s tp r o c e s s ,w ec o d e i l a b s t r a c t a n dt e s tf o ra l lt h ea b o v ed e s i g n s a l lt h ep r o c e s s e sa b o v ea r ei n c l u d e di no n eo l i t e r a t i o n so fo u rm b pd e v e l o p m e n t w ef i n i s ht h em b pi m p l e m e n t a t i o na f i e rf o u r i t e r a t i o n s k e y w o r d :m o b i l eb a n k ,j 2 e e ,e j b ,s t r u t s ,s e r v l e t 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示谢意。 签名:期:矿年月日 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名: 凝 扩 名 第一章引言 1 1 移动银行出现的背景 第一章引言 科学技术革命正在把我们带入到一个全新的时代,九十年代兴起的电子商务, 实现了商务活动向i n t e m e t 的转移。诸多成功的b 2 b 、b 2 c 、p 2 p 范式,把网络经 济的作用发挥到了极至。随着计算机技术和移动技术的日益完善的结合,新型的 移动计算的概念影响到了社会各个领域和阶层,移动商务已经成为当今广义互连 网领域灸手可热的话题之一,手机在人们生活中扮演的角色不断丰富。 移动电子商务和移动银行业务会随着手机使用者的不断增加和手机终端的高 速替换而呈现高速增长态势。据c o m p u t e r i n d u s t r y a l m a n a c 发布的有关研究报告, 2 0 0 5 年世界手机用户将要突破2 0 亿,丽1 9 9 0 年和2 0 0 0 年全球手机用户分别只有 1 1 0 0 万和7 5 亿。到2 0 0 5 年年底,中国毫无疑闷将拥有世界最多的手机用户,总 人数达4 亿,这相当于排在第二位美国的2 倍。 这个数字显示出移动通信增值市场的巨大潜力。熟练使用手机( 包括短信业 务) 沟通交流的客户群体大规模形成,银行通过手机向客户提供移动金融服务已 具备了成熟的市场推广基础。 在中国加入w t o 后,国内银行业面箍国外大型银行的激烈竞争。同叫,随着 经济的发展,人们对服务水平的要求也越来越商。寻求技术手段,借助于信息技 术来实现企业拓展新业务和新渠道,维系新老客户对银行的满意度和忠诚度,已 经成为现代银行进行信息化建设的熏要课题。 通过对银行日常业务的调查分析可以发现,5 0 - - 6 0 的金融业务属于非现金 业务,许多客户更多的是使用查询、转账、修改密码、缴费等功能,这些使用特 点为打造“移动金融殿务”业务奠定了基础。两手机系私人物品,随时携带在身 边,与客户紧密结合,具有较好的私密性。对于重要的数字信息具有较好的可读 性且便于保存,同时成本又低廉、快捷方便。这些特点使得当手机与银行账户结 合后,客户就可以通过手机享受到前所未有的便利、快捷的金融服务。 这种个性化的服务方式正好能满足银行和客户双方的需要,形成了新的市场 电子科技人学硕士学位论文 需求,给银行带来了新的发展机遇。 1 2 移动银行的出现及其发展现状 中国移动银行业务开展于1 9 9 9 年,中国移动通信集团公司率先与中国银行、 中国工商银行、招商银行合作,在北京等1 7 个省、市开通手机银行业务。但是由 于安全性令人担忧,产业合作模式不明朗、用户使用习惯尚未形成等原因,移动 银行并没有像人们期望得那样火爆。直到2 0 0 4 年,手机银行在业务成熟度、应用 广泛度上才取得了较大突破。 移动银行的实现技术,从最先采用的基于s t k 卡的短消息方式,到w a p 方 式、基于信令通道的u s s d 方式,甚至于普通的短消息。移动通信网络发展到2 5 代又出现了k j a v a 、b r e w 方式。 中国移动的手机银行推出较早,可为用户提供基于语音、短信、w a p 、k j a v a 平台的多项银行业务,其中,以短信通知为主的银信通业务在我国已经应用十分 广泛。该项业务可为用户提供p o s 消费通知、网上支付通知、工资到账通知、定 期存款到期通知、a t m 取款通知、其他账务变动通知等多项服务。中国联通在深 圳进行“手机金秘书”业务试点后,也在2 0 0 4 年1 2 月,与中国建设银行联合推 出了基于c d m a l x 网络b r e w 技术平台的手机银行业务,用户通过c d m a 手机 可以实现查询、转账、汇款、缴费、手机支付等除现盒存取以外的大部分银行业 务。 1 3 本系统简介 本系统为东方通科技公司对原有短信银行系统进行升级开发,使之适应多用 户客户端,形成面向多种客户端的统一移动银行平台。此系统是面向商业银行玎 发的服务系统,由于银行的核心系统的基础设施大多是建立在u n i x 平台上面, 同时又存在复杂的异构系统。移动银行平台作为对原有银行业务的扩展,必须能 够很好的与其他系统整合在起。所采用的技术也必须要具有很好的开放性,这 样才能避免绑定在一个专有的技术上,从而降低风险。 基于上面的考虑,本系统完全依照j 2 e e 标准,综合采用了j s p 、s e r 、, l e t 、e j b 、 j d b c 、j n d i 、j m s 等技术,以及一些成熟的开源框架如s t r u t s 、s p r i n g 等。出j 一 第一章引言 系统使用的都是开放的j 2 e e 技术,因此客户可以根据自己的需求选取不同的j 2 e e 应用服务器,将系统部署到不同的服务器之上。本系统是个多层架构的系统, 大体可分为客户端、表示层、业务逻辑层和数据访问层。大部分业务逻辑在e j b 中实现,当用户数量增大时,我们可以在不需再次开发的情况下,通过e j b 集群 来进行负载的均衡,从而满足性能的需求。 本系统的功能可分为以下两大类口】: 一面向银行客户的服务功能:客户注册、账户管理、账户信息、金融信息查 询、交易服务和服务设置。 - 面向银行内部管理的服务功能:客户管理、公告管理、业务统计管理、系 统监控、部门管理和操作员管理。 1 4 作者的主要工作 本人在移动银行项目中主要负责系统的服务端组件设计与开发,其中主要包 括j 2 m e 表示层组件及部分管理中心表示层组件的设计开发,以及业务逻辑层中与 j 2 m e 表示层相关部分的组件设计开发,和数据访问层组件的设计开发。同时,完 成了对实现的各个组件的单元测试。 1 5 论文的结构安排 第一章主要介绍移动银行的技术背景和发展现状,本系统的功能简介,作者 的在项目中的主要工作,及其文章的章节安排。 第二章主要介绍j 2 e e 技术及相关开发工具。 第三章主要是对系统的典型用例进行分析,并画出相应的用例图。对系统进 行架构设计和各层的总体设计。 第四章主要是对系统各个逻辑层进行设计和实现,并对设计中所使用的主要 设计模式的实现进行详细讲解。本章最后部分选择了两个典型的用例,对用例的 实现通过u m l 图及示例的伪代码进行详细讲解。 第五章主要是对系统的测试进行介绍,同时对系统的部署结构进行简要介绍。 第六章主要是系统的应用前景进行展望,并指出系统中在以后再次丌发时可 第一章引言 系统使用的都是开放的j 2 e e 技术,因此客户可以根据自己的需求选取不同的j 2 e e 应用服务器,将系统部署到不同的服务器之上。本系统是个多层架构的系统, 丈体可分为客户端、表示层、业务逻辑层和数据访问堪。大部分业务逻辑在e j b 中实现,当用户数量增大时,我们可以在不需再次开发的情况下,通过e j b 集群 柬进行负载的均撕,从而满足性能的需求。 奉系统的功能可分为以下两大类“j : 一面向银行客户的服务功能:客户注册、账户管理、账户信息、金融信息盘 询、交易服务和服务设置。 _ 面向银行内部管理的服务功能:客户管理、公告管理、业务统计管理、系 统监控、部门管理和操作员管理。 1 4 作者的主要工作 本人在移动银行项目中主要负责系统的服务端组件设计与玎发,其中主要包 括5 2 m e 表示层组件及部分管理中心表示层组件的设计开发,匕上及业务逻辑层中7 j - 2 m e 表示层相关部分的组件设计开发,和数据访问层组件的设计开发。同时,完 成了对实现的各个组件的单元测试。 15 论文的结构安排 第一童主要介绍移动银行的技术背景和发展现状,本系统的功能简介,作者 的在项目中的主要工作及其文章的章节安排。 第二章主要介绍j 2 e e 技术及相关开发工具。 第三章主要是对系统的典型用铡进行分析,并画出相应的用例图。对系统进 行檠构设计和各层的总体设计。 第四章主要是对系统各个逻辑层进行设计和实现,并对设计中所使用的主要 设计模式的实现进行详细讲解。本章最后部分选择了两个典型的用例,对用例的 实现通过u m l 图及示例的伪代码进行详细讲解。 第五章主要是对系统的测试进行介绍,同时对系统的部署结构进行简要介绍。 第六章主要是系统的应用前景进行展望,并指出系统中在以后再次开发时可 第六章主要是系统的应用前景进行展望,并指出系统中在以后再次开发时可 第一章引言 系统使用的都是开放的j 2 e e 技术,因此客户可以根据自己的需求选取不同的j 2 e e 应用服务器,将系统部署到不同的服务器之上。本系统是个多层架构的系统, 大体可分为客户端、表示层、业务逻辑层和数据访问层。大部分业务逻辑在e j b 中实现,当用户数量增大时,我们可以在不需再次开发的情况下,通过e j b 集群 来进行负载的均衡,从而满足性能的需求。 本系统的功能可分为以下两大类口】: 一面向银行客户的服务功能:客户注册、账户管理、账户信息、金融信息查 询、交易服务和服务设置。 - 面向银行内部管理的服务功能:客户管理、公告管理、业务统计管理、系 统监控、部门管理和操作员管理。 1 4 作者的主要工作 本人在移动银行项目中主要负责系统的服务端组件设计与开发,其中主要包 括j 2 m e 表示层组件及部分管理中心表示层组件的设计开发,以及业务逻辑层中与 j 2 m e 表示层相关部分的组件设计开发,和数据访问层组件的设计开发。同时,完 成了对实现的各个组件的单元测试。 1 5 论文的结构安排 第一章主要介绍移动银行的技术背景和发展现状,本系统的功能简介,作者 的在项目中的主要工作,及其文章的章节安排。 第二章主要介绍j 2 e e 技术及相关开发工具。 第三章主要是对系统的典型用例进行分析,并画出相应的用例图。对系统进 行架构设计和各层的总体设计。 第四章主要是对系统各个逻辑层进行设计和实现,并对设计中所使用的主要 设计模式的实现进行详细讲解。本章最后部分选择了两个典型的用例,对用例的 实现通过u m l 图及示例的伪代码进行详细讲解。 第五章主要是对系统的测试进行介绍,同时对系统的部署结构进行简要介绍。 第六章主要是系统的应用前景进行展望,并指出系统中在以后再次丌发时可 电子科技大学硕士学位论文 以改进的一些地方。 4 第二章系统的相关技术简介 2 1j 2 e e 概述 第二章系统的相关技术简介 j 2 e e 是s u n 公司推出的用于开发企业应用的多层、分布式应用体系结构的规 范。它的主要技术目标是为企业应用系统提供一个具有高度可移植性和兼容性、 安全性的平台。在这个平台上,可以快速地建立融合了i n t e r a c t 技术,尤其是w e b 技术的n 层结构的分布式企业应用。 2 1 1j 2 e e 多层模型 j 2 e e 平台为企业级开发建立了一个多层分布式应用模型。应用逻辑按照功能 被分成了许多组件,按照应用组件在多层j 2 e e 环境中的所属层次,它们被安装在 不同的主机上面。下图显示了多层j 2 e e 应用如何按层划分p j 。 _ 客户端层组件运行在客户机上面。 w e b 层组件运行在j 2 e e 服务器上面。 一业务层组件运行在j 2 e e 服务器上面。 e i s 层软件运行在日s 服务器上面。 虽然一个j 2 e e 应用可以包含如图所示的三或四层,然而j 2 e e 多层应用通常 被认为是三层应用。这是因为它们通常分布在三个不同地方:客户机、j 2 e e 服务 器和后台的数据库或遗留系统机。以这种方式运行的三层应用通过在客户端程序 和后台存储之间加入了一个多线程的应用服务器,扩展了标准的两层c s 模型。 电子科技大学硕士学位论文 2 1 2j 2 e e 组件模型 图2 - 1j 2 e e 的多层模型结构 j 2 e e 平台采用了基于j a v a 技术的分布式组件技术,j 2 e e 组件是一个本身包 含功能的软件单元,可以将它相关的类和文件装配到一个j 2 e e 应用中,同时它还 可以与其他组件进行通信。j 2 e e 规范定义了下列的j 2 e e 组件: - 远行在客户端的组件:客户端应用程序和a p p l e t 运行在j 2 e e 服务器上的w 曲组件:s e r v l e t 和j s p 运行在j 2 e e 服务器上的业务组件:e j b j 2 e e 组件是用j a v a 语言进行编写的,可以用编译其他j a v a 程序的方式来编译 它。j 2 e e 组件和标准的j a v a 类之问的区别是:a ) 它们需要装配才成为j 2 e e 应用: b ) 它们需要被校验是否很好的组织并且与j 2 e e 规范兼容;c ) 它们需要被部署到运 行和管理它们的应用服务器的生产系统上。 第二章系统的相关技术简介 2 1 ,3d 2 e e 容器模型 面向对象软件的基本组成单元是类和对象,类封装问题是解决方案的细颗粒 度概念,而对象是系统运行时剑建的类的实例。面向对象开发过程可以在类级实 现重用,这一封装级别对于企业级应用而言太低了。组件提供了更粗颗粒度问题 方法,有对象状态的类和一组操作可以封装单个概念,组件代表可作为一个或多 个概念完成功能的特殊服务,因丽组件为用户提供了多个接口。接口封装了组件 提供的服务,隐藏了实现细节的可见性。由于组件表示个或多个较细粒度类的 逻辑组合。且被定义在较高级别,具有较粗粒度级,所以一个组件可以直接封装 一个己划分的问题,该问题更直接地产生于分析和设计模型。 j 2 e e 规范中定义了四个主要的组件及其容器类。 四个组件一容器模型如下所述: 1 e j b 应用服务器:e j b 组件表示与应用逻辑相关的组件,由丌发人员和第 三方创建,用于在e j b 应用容器内部操作。e j b 环境由第三方生产商实现 用来为e j b 组件开发人员提供可伸缩的应用程序服务。 2 w e b 容器:w e b 组件有两种风格:j a v as e r v l e t 和j a v as e r v e rp a g e ( j s p ) 。 w e b 组件表示应用相关的由w e b 服务器接收的请求处理并产生w e b 昀应。 3 a p p l e t 客户机:a p p l e t 是能在测览器内运行的j a v a 应用程序,并在w e b 浏览器内提供一个g u i 。j 2 e e 规范介绍了把a p p l e t 驻留到标准化的a p p l e t 容器环境的方法,并加入了从基于j 2 e e 客户机到基于j 2 e e 服务的支持。 4 应用程序客户机:应用程序客户机是基于j a v a 的客户机,通常运行在用户 桌面或工作站上,并提供一个g u i 。j 2 e e 按范概述了标准应用程序客户机 容器环境,这种环境中有附加的a p l 支持基于j 2 e e 的客户机充当j 2 e e 服 务器。 2 2e d b e j b 技术是基于分布式计算的一种架构,主要用于处理面向事务的企业级应用 的组件。e j b 运行在e j b 容器- - j 2 e e 服务器中的一个运行时环境,e j b 容器为其 中的e j b 提供系统级的服务,例如:线程池、实例池、事务等。这些服务能使丌 电子科技丈学硕士学位论文 发者能快速地刨建和部署e j b ,从而构建具有事务性的j 2 e e 应用。 221e j b 的分类 e j b 组件可分为三大类它们分别是s e s s i o nb e a n 、e n t i t yb e a n 和m e s s a g e d r i v c nb e a n ,下面将分别加以介绍【4 1 。 1 s e s s i o nb e a n s 一个s e s s i o nb e a n 在j 2 e e 服务器中代表一个单独客户实体,客户实体通过调 用s e s s i o n b e a n 中的方法,从而实现对部署在服务器上的应用的访问。s e s s i o n b e a n 为他的客户实体执行操作,是客户实体从执行业务任务的复杂繁琐中脱离出来。 一个s e s s i o nb e a n 只能有一个客户实体,它不能被多个客户实体所共享。同时 s e s s i o n b e a n 不是持久化的,当客户实体中止以后,它的s e s s i o n b e a n 与它的联系 也将中止。 按照状态管理的方式,s e s s i o nb e a n 又可分为有状态和无状态两种。有状念 s e s s i o nb e a n s 在为一个客户实体服务的过程中,状态保持不变,也就是实例变量 的值是保持不变的。通过这种方式,可以维持客户的会话信息。无状念s e s s i o nb e a n s 只在一次调用的过程中保持状态的不变,容器不保证在两次方法调用时使用同。 个s e s s i o nb e a n s 。不过由于不用维持会话信息,无状态s e s s i o nb e a n s 就有很高的 效率。 2 e n t i t yb e a n s 一个e n t i t yb e a n 表示在一中持久化存储机制下的个业务对象,例如:客户 对象、订单对象或产品对象等。在j 2 e e 应用服务器中,持久化存储机制是关系数 据库。通常来说,每一个e n t i t yb e a n 都与关系数据库中一个表对应,每一个e n t i t y b e a n 的实例都对应着数据库表的一行。 e n t i t yb e a n s 又可分为b m p 和c m p 两种类型。b m p 是b e a n m a n a g e d p e r s i s t e n c e 的简写,使用b m p 方式,b e a n 本身需要处理所有的数据库访问代码。 虽然这种方式增加开发的复杂性,不过开发者可以完全控制e n t i t yb e a n 的访问方 式和过程。c m p 是c o n t a i n e r - m a n a g e dp e r s i s t e n c e 的简称,在这种方式下,e j b 容 器处理所有e n t i t yb e a n 需要的数据库访问代码。由于b e a n 里不再有数据库访问的 s q l 调用,b e a n 的代码不再绑定在某一个特定的持久化存储机制上面。因此,c m p 第二章系统的相关技术简介 使e n t i t yb e a n s 具有最大的可移植性。 3 m e s s a g ed r i v e nb e a n s ( m d b ) m d b ( m e s s a g e d r i v e nb e a n ) 是用来处理异步j m s 消息的一种e j b ,它通常 作为j m s 消息的监听器。除了m d b 接收的是j m s 消息而不是事件外,这个过程 与事件监听器很相似。j m s 消息可以是由任何j 2 e e 组件一应用程序客户端、另 个e j b 或w e b 组件,也可以是从根本不使用j 2 e e 技术的应用和系统发出。m d b 不仅可以处理j m s 消息,也可以处理其他类型的消息。 2 2 2e j b 组件的作用 圈2 - 2 简单m d b 应 ; = j 的结构 e j b 作为服务端组件,通常用来封装一个应用的业务逻辑。业务逻辑通常是指 用来描述一个应用目的相关代码,例如:在一个库存管理系统中,e j b 可能在日q 傲 c h e c k i n v e n t o r y l e v e l 和o r d e r p r o d u c t 的方法中来实现相关的业务逻辑。本地或远程 的客户,端可以通过调用这些方法,实现访问库存系统所提供的业务逻辑服务。因 此,e j b 在整个j 2 e e 多层架构应用中处于业务逻辑层,它通常要与前面表示层和 后面的e i s 层相结合,共同组成一个完整的j 2 e e 应用。 电子科技大学硕士学位论文 2 3s e t v i e t 2 3 1s e r v i e t 的优点 图2 - 3e j b 在j 2 e e 应用中位置 在s e r v l e t 出现以前,人们进行w 曲编程是通过公共网关接口( c g i ) ,c g i 程序可以使用多种编程语言开发。例如,p e r l 就是一种十分常用的c g i 程序设计 语言,而且现在绝大多数w e b 服务器都支持c g i ,这使得c g i 成为开发动态w e b 程序的一种通用技术,但c g i 技术有着它天生的缺点: - 首先,因为c g i 在c g i 中,对应来自客户的每个请求都要创建个进程来响 应,以提供服务,这极大地消耗了服务器的资源。使得c g i 程序不能很好地 扩展到服务大量的弗发用户,难以适应开发大型的应用系统的需求。 一其次,c g i 程序和w e b 服务器结合本质上是一种松藕合的结合,它们的结合 存在严重的安全漏洞。例如许多p e r l 脚本使用s h e l l 完成操作系统功能,如发 送邮件等。s h e l l 的使用就给黑客提供了可乘之机。 s e r v l e t 技术作为j a v a 技术平台支持w e b 应用的突破口和基础,解决了c g i 技术存在的问题。它通过多线程等技术解决了c g l 的性能问题。j a v a 平台提供了 第二章系统的相关技术简介 最强的兼容性。安全性也得到极大的提高,因为j a v a 技术平台提供了几乎所有用 户所需的功能。程序员已经不再需要使用s h e l l 来实现所需的功能支持。 2 3 2s e r v i e t 的生命周期 s e r v l e t 规范明确定义了生命周期的各个状态,它们包括如何加载、实例化、 初始化、处理响应客户端请求以及如何销毁。生命周期通过a p i 来表达就是s e r v l e t 接1 5 1 中的各个回调函数:i n i t 0 、s e r v i c e ( ) 、d e s t r o y 0 1 5 1 。 幽2 4s e r v l e t 的生命周期 1 加载和实例化 s e r v l e t 容器引擎负责加载和实例化一个s e r v l e t ,这一过程可能发生在引擎启 动时,也可能延迟到容器需要一个s e r v l e t 来处理一个请求时再进行。 首先,s e r v l e t 容器需要定位到一个s e r v l e t 的类文件,类文件可以处在本地文 件系统、远程文件系统甚至是通过网络服务来提供。然后,容器加载s e r v l e t 类文 件,并实例化一个对象实例供使用。 2 初始化 s e r v l e t 引擎加载并实例化s e r v l e t 后,必须要初始化它。初始化时s e r v l e ti i j 以从数据库里读取初始数据,建立j d b cc o n n e c t i o n ,或者建立对其他有价值的资 源的引用。在初始化阶段,i n i t 0 方法被调用。这个方法在j a v a x s e r v l e ts e r l e t 接 中定义。i n i t o 方法以一个s e r v l e t 配置文件( s e r v l e t c o n f i g 型) 为参数。s e r v l e t c o n f i g 电子科技大学硕士学位论文 对象由s e r v l e t 引擎来实现,可以让s e r v t e t 从w e b x m l 中读取一些n a m e v a l u e 列 的参数值。s e r v l e t c o n f i g 对象还可以让s e r v l e t 接受一个s e r v l e t c o n t e x t 对象。 3 处理请求 s e r v l e t 被初始化以后,就处于能响应请求的就绪状态。每个对s e r v l e t 的请求 由一个s e r v l e t r e q u e s t 对象代表。s e r v l e t 给客户端的响应由一个s e r v l e t r e s p o n s e 对象代表。当客户端有一个请求时,s e r v l e t 引擎将s e r v l e t r e q u e s t 和s e r v l e t r e s p o n s e 对象都转发给s e r v l e t ,这两个对象以参数的形式传给s e r v i c e 方法。这个方法由 j a v a x s e r v l e t s e r v l e t 定义并由具体的s e r v l e t 实现。 s e r v l e t 还可以实现s e r v l e t r e q u e s t 和s e r v l e t r e s p o n s e 接口。s e r v l e t r e q u e s t 接 口可以让s e r v l e t 获取客户端请求中的参数,如f o r md a t a 、r e q u e s t 信息、协议类型 等。s e r v l e t 可以从s e r v l e t l n p u t s t r e a m 流中读取r e q u e s t 数据。s e r v l e t r e s p o n s e 接口 允许s e r v l e t 设置r e s p o n s eh e a d e r s 和s t a t u sc o d e s 。实现这个接口可咀使s e r v l e t 能 访问s e r v l e t o u t p u t s t r e a m 流用来向客户端返回数据。 4 结束服务 s e r v l e t 引擎没有必要在s e r v l e t 生命周期的每一段时间内都保持s e r v l e t 的状 态。s e r v l e t 引擎可以随时随意使用或释放s e r v l e t 。因此,你不能依赖s e r v l e tc l a s s 或其成员存储信息。当s e r v l e te n g i n e 判断一个s e r v l e t 应当被释放时( 比如说引擎 准备停止或需要回收资源) ,引擎必须让s e r v l e t 能释放其正在使用的任何资源, 并保存持续性的状态信息。这些可以通过调用s e r v l e t 的d e s t r o y ( ) 方法实现。在 s e r v l e t 引擎释放一个s e r v l e t 以前,必须让其完成当前实例的s e r v i c e ( ) 方法或是等 到t i m e o u t ( 如果引擎定义了t i m e o u t ) 。当引擎释放一个s e r v l e t 以后,引擎将不能 再将请求转发给它,引擎必须彻底释放该s e r v l e t 并将其标明为可回收的。 24j s p j s p ( j a v a s e r v e r p a g e s ) 是由s u n m i c r o s y s t e m s 公司倡导、许多公司参与一起 建立的一种动态网页技术标准,它是j 2 e e 的重要组成部分。j s p 技术大大简化了 w e b 页面的编写,同时又提供了强大的功能和足够的灵活性来创建动态页面内容。 第二章系统的相关技术简介 2 41j s p 的优点 - w r i t eo n c e r u na n y w h e r e 特性 j s p 技术在它的动态w e b 页面、w e b 服务器和底层服务组件方晰具有平台独 立性,它可以在任意支持j a v a 技术的平台下编写,并且也可以平滑移植到任何其 他支持j a v a 技术的平台之上运行。使用j s p 编写的页面,可以通过任何个w e b 浏览器采进行访问。 一角色的分离 j s p 技术支持对程序员和页面编辑员的角色进行分离。程序员负责编写与服务 端进行交互的组件,页面编辑员负费将静态数据和动态内容组合在一起,生成客 户最终希望的页面。这样,每个组可以在不霈了解其他组工作的情况下来工作。 每一个角色专著在不同的方面,当然这些也可能都由一个人来完成,但通常情况 下并非如此。角色的分离提供了一个对工作的自

温馨提示

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

评论

0/150

提交评论