(计算机软件与理论专业论文)基于j2ee架构的业务中间件的研究与实现.pdf_第1页
(计算机软件与理论专业论文)基于j2ee架构的业务中间件的研究与实现.pdf_第2页
(计算机软件与理论专业论文)基于j2ee架构的业务中间件的研究与实现.pdf_第3页
(计算机软件与理论专业论文)基于j2ee架构的业务中间件的研究与实现.pdf_第4页
(计算机软件与理论专业论文)基于j2ee架构的业务中间件的研究与实现.pdf_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

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

文档简介

摘要 中间件技术作为软件技术发展历史上的一个里程碑,它大幅度地减少了应用 的实施工作量,提高了应用软件的成功率。基础中间件的定位是解决业务无关的 基础技术,它不能解决业务需求分析、业务流程开发、规则变更等问题。在实际 的项目开发中,常常是在为一些相似的功能进行的重复的劳动,这些都大大降低 了软件的生产率和灵活性。因此,在基础中间件的基础之上,如果提供一个能够 基于业务的中间件,它能够提供软件开发中常见的业务功能和系统功能,将能够 顺应软件开发的发展方向,对提高软件的生产率、成功率和交付率都十分有意义。 本文在分析了中间件技术的发展之上,结合应用系统的基本模型,提出了系 统的设计原则和目标,并给出了系统模块化的解决方案。根据传统j 2 e e 层次的 划分,系统的框架设计大致分为展示层、业务层、数据层的三层,各个层次都有 相对独立的框架,具有较低的耦合度。其中展示层的w e b 接口在封装和实现过 程中参考和借鉴了s t r u t s ,并使之更加符合业务特点;业务层主要完成具体的业 务规则,是应用系统的核心部分。业务层需要实现的功能主要包括业务流程的配 置,事务管理等功能;数据层参考和借鉴了h i b e r n a t e 和i b a t i s 。通过工厂模式定 义外部接口,内部实现既支持h i b e r n a t e ,也可以直接使用系统自主开发提供的 d a o 来实现;当需要时,还可以直接使用j d b c 操作数据来完成业务逻辑实现。 数据总线作为系统数据交换的核心,在本系统中扮演了底层的关键角色,系 统各个层次之间的数据交换和传递都依赖于它。业务组件作为系统应用的核心, 它负责调用展示层和数据层的组件来完成相应的业务操作。本文给出了数据总线 和业务组件部分的设计思路并用u m l 图描述了各个类之间的关系。最后,通过 一个实例描述了基于系统平台的开发配置规范。 关键词:中间件;业务中间件;j 2 e e ;开源框架 a b s t r a c t t h em i d d l e w a r e ,a sam i l e s t o n ei nt h eh i s t o r yo fs o f t w a r ed e v e l o p i n g ,h a s r e d u c e dt h ew o r k l o a do fs o f t w a r ei m p l e m e n t si nal a r g ee x t e n ta n de n h a n c e dt h e s u c c e s sp o s s i b i l i t yo fs o f t w a r ed e v e l o p i n g b a s i cm i d d l e w a r ei su s e dt os o l v et h e b a s i ct e c h n i c a lp r o b l e m i tc a nn o ts o l v et h ep r o b l e mo fb u s i n e s sr e q u i r e m e n t s a n a l y s i s ,b u s i n e s sw o r k f l o wd e v e l o p i n g ,r u l e sc h a n g i n ga n ds oo n i nt h er e a lp r o j e c t d e v e l o p i n gs i t u a t i o n ,w ea l w a y sk e e pd o i n gs o m er e p e a t e dw o r k ,w h i c hw i l lr e d u c e t h ep r o d u c t i v i t ya n da g i l i t yo fs o f t w a r ei nal a r g es c a l e s o ,i fw ec a nd e v e l o pa b u s i n e s sm i d d l e w a r eo nt h eb a s e o fb a s i cm i d d l e w a r e ,w h i c ho f f e rt h en o r m a l b u s i n e s sa n ds y s t e mf u n c t i o n s ,w ec a ne n h a n c et h ep r o d u c t i v i t y , s u c c e s sp o s s i b i l i t y a n dd e l i v e r yo ft h es o f t w a r e a n da tt h es a m et i m e ,w ec a nh o l dt h ef u t u r eo fs o f t w a r e d e v e l o p i n g w ed i s c u s si n t h i sp a p e ro ft h et e c h n i c a li d e ao fo r i g i n ,b a c k g r o u n d , g r o w t ha sw e l la st h ed e v e l o p m e n ta n df u t u r eo fm i d d l e w a r ea n dg i v et h es p e c i f i c t d e f i n i t i o na n dc h a r a c t e r i s t i co fi t a n dw ea l s oa n a l y z et h em i d d l e w a r ea c c o r d i n gt o i t sc a t e g o r y a f t e rt h a t ,w ed i s c u s st h ej 2 e ee n t e r p r i s ef r a m e w o r ka n ds o m ep o p u l a r o p e n - s o u r c ef r a m e w o r kb a s e do ni t a n dt h e n ,w eg i v et h ei n f r a s t r u c t u r eo fab u s i n e s s m i d d l e w a r es y s t e ma c c o r d i n gt ot h es t r u c t u r eo fs o f t w a r eo fn o w a d a y s w h a t sm o r e , w ed i s c u s st h ed e s i g ni d e aa n df u n c t i o n so fe a c hl a y e ro ft h es y s t e m a tt h ee n d ,w e d e m o n s t r a t ea na p p l i c a t i o nb yu s i n go u rb u s i n e s sm i d d l e w a r e t h i sp a p e rg i v e st h ed e s i g np r i n c i p l ea n dt a r g e to fb u s i n e s sm i d d l e w a r es y s t e m a sw e l la st h em o d u l a r i z e dr e s o l v e n to nt h ea n a l y s i so ft h ed e v e l o p i n gh i s t o r yo f m i d d l e w a r e a c c o r d i n gt ot h ec l a s s i cj 2 e ep l a t f o r m ,t h ea r c h i t e c t u r eo ft h es y s t e m c a nb ed i v i d e di n t ot h r e el a y e r s - - f r o n tl a y e r , b u s i n e s sl a y e ra n dd a t al a y e r e v e r y l a y e rh a si t so w na r c h i t e c t u r ea n dl i t t l ec o u p l i n gr e l a t i o nw i t ho t h e r s t h ei m p l e m e n t o ft h ef r o n tl a y e rr e f e r e n c e st h es t r u t sa p p l i c a t i o nf r a m e w o r ka n db ed e s i g nt om e e t t h ec h a r a c t e r i s t i co fb u s i n e s s b u s i n e s sl a yi st h ek e yl a y e ro ft h es y s t e m i ti su s e dt o h a n d l et h eb u s i n e s sr u l eo fa p p l i c a t i o n i t sm a i nf u n c t i o n si n c l u d et h ec o n f i g u r a t i o no f b u s i n e s sw o r k f l o w , t h em a n a g e m e n to ft r a n s a c t i o n sa n ds oo n t h ei m p l e m e n to fd a t a l a y e rr e f e r e n c e st h eh i b e r n a t ea n di b a t i sf r a m e w o r k i td e f i n e sae x t e r n a li n t e r f a c eb y u s i n gt h ef a c t o r yd e s i g np a t t e r n ,t h ep r a c t i c a li m p l e m e n to fw h i c hc a ns u p p o r t h i b e r n a t ea n dt h ed a oc o m p o n e n t sp r o v i d e db yt h es y s t e m w h e nn e c e s s a r y , w ec a n u s ej d b c d i r e c t l yt om e e tt h eb u s i n e s sn e e d d a t ab u sp l a y sav e r yi m p o r t a n tr o l ei nt h es y s t e m a st h ek e yp a r to ft h es y s t e m , i i t h ed a t a e x c h a n g i n ga n dt r a n s f e r r i n go fe a c h l a y e rd e p e n do ni t t h eb u s i n e s s c o m p o n e n t ,t h eo t h e rk e yp a r to ft h es y s t e m ,i su s e dt oi n v o k et h e c o m p o n e n t so ff r o n t l a y e ra n dd a t al a y e rt oh a n d l et h eb u s i n e s so p e r a t i o n t h i sp a p e rg i v e st h ed e s i g n i n g i d e ao ft h ed a t ab u sa n db u s i n e s sc o m p o n e n t a n da l s os h o wt h er e l a t i o no ft h ec l a s s e s 毗e a c nc o m p o n e n tb yu s i n gu m la tt h el a s t p a r t ,t h i sp a p e rd e m o n s t r a t e st h e d e v e l o p i n ga n dc o n f i g u r a t i o nr u l e so ft h es y s t e mb yu s i n gar e a le x a m p | ei nt h er e a l d e v e l o p i n gs i t u a t i o no nb a s i so ft h es y s t e m k e yw o r d s :m i d d l e w a r e ;b u s i n e s s m i d d l e w a r e ;j 2 e e ;o p e n s o u r c ef r a m e w o r k i i i 独创性声明 本人声明,所呈交的论文是本人在导师指导下进行的研究工作及取得的研究 成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人 已经发表或撰写过的磺究成果,迩誉包含为获得戴汉理工大学竣其它教弯搬梅戆 学链或诞整丽使用过豹材辩。与我丽工终静嗣虑对本研究所做的任何贡献均已 在论文中作了明确的说明并表示了谢意。 关于论文使用授权的说明 本入完全了解武汉理工大学鸯关保留、经| 籍i 拳霞论文懿裁定,静学校露权保 留、送交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部戚部 分内容,可以采用影印、缩印或其能复制手段傺存论文。 签名; 武汉理工大学矮士学位论文 1 1 课题研究的背景 第一章引言 计冀桃的阃世,改变了攘个蜒界。但髓着裘统的建设越来越庞大积复杂,支 持的业务也越来越丰富。系统的建设岛管理,尤其是软件系统的实现,给技术专 家和实施者提出了更为严竣的挑战。最初的应用开发都是唐接在操作系统一层上 舜始静,当时豹壅爝软件实麓工作量綦本土7 0 豹辩阋孺来傲输入输出酌入梳乔 蘧,剩下鲍3 0 戆赋瓣中大部分王据寰要翅予织决底层懿技术阕题,鞋:翔遥谖、 事务,安全等方面,因此当时的废用软件开发成本高昂,并且成功率非常低。随 着经验和技术的不断成熟,软件发展到了第二个阶段,出现了基础中问件。基础 串闯侔湃蔽了底联技术,便之与应用无关,并且能够大幅度瑰减少应用的实施工 作爨,提褰瘦弱较箨黪残功搴。东这个浚段,大量系统软律舞供蠢攘出备耪鬣次 的簇础中闯传,包括成用服务器中间传、交易中间侈等,著名的产晶包括b e a 的w e b l o g i c 、t u x e d o 和i b m 的w e b s p h e r e 、c i c s 镰。嗣前纂础中间件的分工 也越来越细,生要包括数据库服务器相关的软件( 主要功能是异构数据库的集成、 数据库乏润酌同步、数据采集帮擦掘等) 、应用服务嚣( 圭簧包括交荔容器,j 2 e e 的中阕馋秘w e b s e r v i c e 的孛闼纷) 、赛瑟缝理类中闯传( 魏p o r t a l 耧投表王其) 等等。衣实际的应用系统开发项髓中,应该尽量采用成熟软件可以减少项县的风 险社1 。 但蔻由予系统软件提供商一般不愿意介入复杂多变的妲务疑理流程,因既基 戳孛阕绺鲍定位蔻解凌蝗务无关瓣基餮l l 技术,它苓戆艇决娩务嚣求分拆、整务流 程舞发,媲则变熨等问题。谯实鼯的项目群发中,常鬻是在为一些樱似的功熊进 行的重复的劳动,这些都大大降低了软件的生产率和灵活性。因此,在基础中间 件的基虢i i 之上,如果提供一个能够基予业务的中间件,它能够提供软件升发中常 冤静堑务功黥:稀系统臻能,将麓够颓疵软箨开发豹发震方商,对提高软件的生产 率、成功率穗交慰率都十分骞意义。 1 2 研究课题国内外衙究现状 为了打破早期的系统实现方式和技术的局限性,产生了一类可复用的基础软 件,行内称之为m i d d l e w a r e 。上僦纪9 0 年代初,在m i d d l e w a r e 开始登上世界软 件舞台乏时,立帮弓| 超了s u n 、潞m 、o r a c l e 甚至m i c r o s o f t 的极大兴趣。因为 m i d d l e w a r e 袭分鸯式联壤孛扮演连接苓溺平台煞挢粱,提供犍务实瑗静基础支撑 1 武汉理工大学硕士学位论文 技术和服务的关键角色,m i d d l e w a r e 迅速上升到了与数据席、操作系统并驾齐驱 的地位,被称为全球基础软件的“三驾马攀”。在巾国,m i d d l e w a r e 则被客方通 科技第一次翻译成“中闯件”,从此,“中间件”的概念立刻出现在备个媒体和学 术及技术文章的显赫位置。中阀件的闷世,可以通过成熟的软件基础技术,设计 和开发更犬范围、疑复杂的应用业务系统;可以采用软件复用的技术,通过很有 限的投入,熹接吸收成熟的软件技术、模块与服务,迅速实现复杂妲务系缝,两 应翔者只需要关注娥务的实现过程;利用巾河侔技术,直接接口先进的设计理念 和底层系统,使系统轻丽易举获得先进、稳定和易用等各种特性;采用成熟的产 品旃设计,直接翻羯现有技术和资源,大犬减小开发周期,使系统酌建设风险大 大降低,实现高的舔统经济价值和社会效菔【2 】。 中阗律技术茇袋到今天,已经戗括了基础中游佟( 清怠串闯件、交易串阋件、 j 2 e e 应用服务器等) 、应用集成平台( e a d ,门户( p o r t a l ) 技术等众多领域, 完全可瑷针对各释大型分布式系统豹需求掇供完整瀚解决方案。j 2 e e 静糕粱体 系鲐构技术的发展,尤其是近年来w e b s e r v i c e 技术和s o a 概念的起,为系统 之蠲豹集成、应震之藏嚣交赢,雏务与资源豹快速获得提供了更先逡静技术缣障。 中间技术的发展,为未来的r r 系统勾画了熙美好的前景1 3 l 。 1 3 课题研究的目的及意义 在当今企业信息化改革的浪潮中,软件项目的实施的好坏将直接关系到企业 的生存和发展。如何瞧最大程度的爨赢企业级应用软件开发豹成功搴,如锷能最 大限度地降低由于瞬息万变的业务撬则给1 1 r 项目贸旖带来的风险融经成为软件 开发人员应该着重勰决的嘲题。在实际的威用开发避程中,舞发人鼹经常会重复 地鳞决一些相似的娩务功能和系统功能,比如权限管理策略、应用礁控、工作流、 业务逻辑变更、数搦库访闯、需求确认、用户界面舞发、渡务报袭开发等模块。 这臻问题极大造影晌了快速歼发和部署应丽软件的可能性,并且也会在很大程度 上影响应用系统的可维护性翔稳定性。 围魏,簧解决这些海嚣,最好韵方法是为开发人员提供一个业务中间件,把 各种成熟的业务功能模块和基础技术以及行业应用组件库加入其中,主要的目魄 是为行韭应精系统褥供基础瀚开发、运行、维护环境,可以作为行渡应用系统统 一的技术框架。达到快速有效地部辫业务系统,最大程度地提高工作效率和降低 顼器的斑殓,获蔼挞离软释颁磊静成功率。 2 武汉理工大学硕士学位论义 1 4 课题来源 j 京长城软件岛系统有限公司作为中国电子集翻旗下的家国有盯企业, 承担着大量的电子政务方籁的项耳任务。为了提高软件的开发效率、达到软件服 务快速交付酌嚣的,公司研发都承疆起本项目豹研发。 l 。s 课题研究爨路 l 蹶定辍标 通过对当今流舒的企业级分布式应用开发框架j 2 e e 和一些主流的j 2 e e 开源 挺絮靛磅突秘分拆,论述了一令监务孛舞终熬基藤絮狡窝羧心功熊,势绘爨了一 些梭心功能的解决肖案。 2 研究内容 如秘摹q 震j 2 e e 絮构翻舞源框架来构建中间纷 系统所应实现的核心功能 系统的基础框架 系统的核心平台设计 数搬总线的设计 业务组件的设计 3 研究的关键瀚题 如何充分利用j 2 e e 平台的絮构 各火主流j 2 e e 应用框架的集成 如何实现数搌总线和业务组件 1 6 本文的组织 本文共分六章。 繁一章为弓l 言。分辑7 泛足十攀寒软停嚣发按零懿发震遨路,绘爨7 数务孛 间件技术产缴的原因和背景以及它的用途和广阔前燎。并对网内外中间件技术的 发展遴孬了分析讨论,最羼绘出了本文豹研究愚路。 第二章从总体上介绍了中间件技术以及当今主流的企业级应用糕架j 2 e e ,并 讨论了凡静魄较漉孝子躲开源癌爆程黟框架;每j 鞋:同辩,磅究了足秘鬻鼹浆j 2 e e 设计模式,为后面系统的设计打下濑础。 3 藏汉璎王大学硕士学铰论文 第三章讨论了传统应用程序的基本模擞,并结合企业应用的实际情况,绦出 7 泣务中阕佟系绕戆基本模型稻设诗方案。 第朗章分撰7 本系绫鳇蒸础核心警台豹层次架构,势参照传统j 2 e e 应嬲程 序架构给出了本系统各个层次架构的设计思路。同时,也讨论丁各个层次的功能 划分。 第赢章详绥介绍了系统数据总线和业务组件的设计方法,并用u m l 语亩描 述了系绞核,类之蠢熬依赖关系。 第六章通过一个麓攀实例描述了基于系统乎台的配置拜发艇范。 第七章为全文的总结和避一步研究的腱望。 4 武汉理工大学硕士学位论义 第二章系统选型方案 2 1 软件系统层次的发展 计算机软件技术经过了几十年的沉淀和积累,朦次已缎发展的越来越清晰。 扶翔2 - 1 霹默番出,戮现泠段,应瘸较俸憨开发霹敬建立在不网豹琴凌层次主: 救 嚣 麓 敬 融 实 麓 工 作 量 圈2 - 1 反用软件屡次的发展 辗据鹭2 - l 掰承,哥骧将应灞软徉技,| 乏静发震转为嚣淘操作系绕酚段、基磷 中间件阶段和业务中间件阶段。 2 1 1 面向操作系统阶段 在软伴技术发糕的初期,应疆系统酌开发都是赢接面对操作系统一级的,当 时的软件开发的工作量大部分集中在如何处理用户的输入输如的人机界面,还有 一部分工佟主要弼予解决藏层的技术嗣题,眈如系统通讯、安全、攀务等方面, 导皱当时的软件开发成本商昂,同时成功攀也非常的低。 2 1 2 基础中间件阶段 这个阶段的应阐软件开发技术开始普遍地采用基础中问件技术。基础中间件 屏蔽了底层技术,使之与应用无关,并且熊够大幅度地减少应用的实施工作星, 提崭应孺软件的成功率。大缀系统软件提供商推出备种层次的基础中间件,镪括 通讯中间件、设备驱动中间件等。基础中间件的出现使应用实施摆脱了大量的底 层技术,翅遁讯、并发量控翻、群繁、瞬络计算、攀务处理、安全管理、组彳串管 理等,并且也提高成用软件的稳定蚀和伸缩性。 5 武汉壤工大学碛士学位论文 随蓑社会的发展,备行分工越来越细,业务也越来越复杂,瞬息万变。基础 串阕 孛豹软 牟提供巍苓愿意芘费巨额豹成本来介入笺杂多交静堑务链理流程。因 此蓉础巾阕黪戆定为楚勰决业务恶关鲍基础技术,宅琴能解决业务器求分爨、业 务流程歼发、规则变更等问题1 4 1 1 5 1 。 2 1 3 业务中阀件阶段 在寞际豹应蠲软件汗发过程强中,会缀常的碰到诸如权限管理,工作流、业 务逻辑变更、数嚣痒谤润、羯户器嚣器发之类榻叛悉显重复静溺蘧。麴莱花赞大 量妁人力物力去鳞决这些目题,这和警今段行业倡导的快速舞发秘部署的理念 背道而驰,并且也会在很大的程度上影响应用系统的可维护性和稳定性。 这时,磁基础中间件的基础之上,出现了业务中间件的概念。铝的出现,旨 在解决童述较箨帮发过程中常觅豹重复劳动闷熬,它能将备种戒熟豹盈务劫靛和 基麟技零融会在一起,以逸至l 快速奏效地部署威惩稷彦,最大辍度戆提褒开发效 率_ 和软件项目的成功率n “”。 这时,出现了业务中间件。它屏蔽了诸如权限管理、数据库访问,用户界面 开发等等重复且稠叛的功毹,将各种成熟的业务功麓模块和旗础技术融合在一 起,达捌块逮有效逡部署鼗务系统,疑大程度黪提鬻工侔效率。 2 2 系统架构选燮 随卷i n t e m e t 计算的迅速发展,铭为- - i - j 掰兴鲍语言,j a v a 以其完全瑟向慰 象的设计风格和良好的平台无关性,已经超越了语亩本身的功能,成为了开发 w e b 应用的理想平台。然而,要开发基于i n t c r n e t 的分布应用,仅依靠j a v a 语 言本身掇供懿珐黥是遥远不够豹,大黧分布式系统特别蔻电子商务、政务熬或稻 对企业鲍售怠系统蠖搬了复杂性。金数应燃系绕戆嚣发一直瑟螨饕繁大挑战:一 方颟,企业应用系统面对的是一个异构的分布式环境,它必须支持与已有系统的 集成性和与其他系统的互操作性;另方面,作为给客户、合作伙伴和企业内部 提供信蕊服务的平台,企监系个的统还必须具有高可用性、安企住、可靠性和可 传缨牲。这些器求霉麴上复杂多交匏髑户嚣求黪不戮镩缩豹交季孪酵翔,锼褥金控 系统的歼发越来越困难。开发商期广大程序员一嶷在努力推动魏殷切期待一令成 熟、标凇的企业平台来简化和规范企业系统的开发和部署【s 1 0 l 。 j 2 e e 是s u n 公司在1 9 9 9 年6 月推出豹技术规范,是目前能够满足当今企业 开发要求静最佳解决方案髑。j 2 e e 是一个标准豹体系结构,它提供了萋予组件 舷、以应用服务器为核心的多层成题钵系结秘,以及系统必绥静可靠性、霹扩震 性、可管理性和安企性。这种多层结构简化了开发、配置和维护企业应用的过襁, 6 武汉毽工大学琰圭学使论文 它最大的优点就麓将企业的业务逻辑同显示逻辑分歼,应用服务器为组件提供了 一泵弼鼢褒麓鼹务,鲡事务管理、多线程、分奄式稷序设诗、缓i 申涟等,这赫使 褥拜发蠹能够犍糖力集中予特定镊域的业务蝮剃熬维织上,恧不用过多兹关心薅 些底层的复杂而又烦琐的系统级事项。它是一缎规范,嚣在为支持j a v a 语言服 务器端部署而提供平台无关的、可移植的、多用户的、安全的和标准的企业级平 台。一个j 2 e e 典翟的缩构如图2 - 2 所示 | 2 1 1 1 3 1 。 客户屡 串赫爱 企业信息系 统层( e l s ) w e 搏蠢 应胤器中 。同r 二订网 ( ) 期i 瓣 冈“轴冈 数据库 1 j l 。一 图2 - 2j 2 e e 典型架构图 整个应麓系统蠡客户鬓( c l i e n t ) 、孛鬻层,也嗣泣务逻辑簇c l i e n tb u s i n e s s b g i e ) ) 和企业傣息系统层( e n t e r p r i s ei n f o r m a t i o ns y s t e m s ) 均成: 1 释户层:应用客户端部分,包禽浏贸器和普通的g u l 应用稷序。浏览器 使用h t r i 与w e b 容器进行通信。一个独立的应用程序也可以使用i r r r p ,或 者使用远程方法调用( r m l ) 壹按与e j b 容器通信。它可戳是蒸于w e b 疵用韵, 瞧霹以苓是蘩手w e b 瓣。农一个基予w e b 静j 2 e e 孛,淤览器受赛显承蠹运行 在w e b 层的w e b 组件生成的包含各辨标记语骞( 1 1 1 r m l 、x m l 、x s l 等) 的 w 聪b 页面,它可以通过运行在w e b 层中的j s p 页丽和s e r v l e t 与j 2 e e 服务器 中运行在其它一些基于网络系统中的j a v a 程序,可以通过r m m i o p 直接访问运 行在f _ j b 容器孛掰b 缎绛。不基予w e b 静客产瑞程薄可能遣镶括一个j a v a b e a n 类来管联用户输入,势烽竣入发送到业务逻辑层中运行鳇e j b 慰象来处理。 2 。中间层:包括w e b 容器和e j 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 s p 提供了一种在礴页 中嵌入维馋的方式,它是一个基于文本熬文档,鸯w e b 容器编译残稳庭翡 s e r v l e t ,这样在应用程序逻辑和袭示逻辑之闻有了清楚的分解。w e b 层也可以 包括一个j a v a b e a n 类来管理用户输入,并将输入发送到业努逻辑层中运行的瑚b 对象来她理。w b 容器构成了应用的故务逻辑规刚,楚整个应用的核心部分。它 7 武汉理工大学磺士学靛论文 按业务捌分成一个个独立的逻辑单元e j b 。e j b 从客户稷序处接收数据,对数据 送行处灌,褥将数据发送裂企鼗信怠系统藩存储,还可戳秩存储串检索数据,并 燃数据送凰客户程序。业务逻辑层位予应用服务器枣,瘦用黢务嚣中斡e j b 容 器提供了分布式计算中组件所需要的所有服务,例如:组件生命周期的篱理、数 据库连接的篱理、分布式事务管理、组件的命名服务、自动容错以及负载的自动 均衡能办等。实现盈务逻辑酌e i b 缀件可以受加高效遗运行在应用程序服务器 枣。 3 。企业信息系统鼷( e n t e r p r i s ei n f o r m a t i o ns y s t e m ) :运行- 3 = e i s 服务器,这 一层为企业的信息系统服务,包括数据库系统、事务处理系统等。该层是j 2 e e 应用和非j 2 e e 应用的连接点。 整务中瀚 牟不露予基磷串阋侔,蒸硝巾淘件豹鏊在群蔽底瀑技术,使之句应 用无关,并且毙够大螺度她减少疲用豹实旗王佟量l 堋。鼗务孛阙终瓣是捻建褒基 础中间件之上。为软件开发提供纂础的业务支撑。传统的中问彳牛技术的门槛较褒, 学习周期较长,不能够适应信息化建设对中间件的需求。因此,为了提高业务中 阿件的实现鹩可能往和满足各种行韭应用软件所要求的可靠健、可伸缩设和安全 经,必然要将它槐建予一个毙较残熬熬技术平台之土。j 2 e e 提供了串鬻层集成 框架,用来满足可用、可靠及可扩展的应爆霈求。邂过统一的开发平台,j 2 e e 降低了开发多层成用的成本和复杂度,支持对现有应用程序的集成;提高了异构 环境的协同工作能力:支持打包和应用部署;增加了安全机制,提高了性能。此 羚,基予j 2 e e 技术的拜源獠架技术氇褥雨后春笋般酌击现和发展,这又为j 2 e e 技术的发展滚入了无穷鼹活力。 因此,采用j 2 e e 平台作为本系统的基础架构,是一个合理的选择。 2 。3 系统核心设计模式 为了使系统具有电好的稳健性和可扩展性,各个层次具有寓内聚、低擐合的 特点,在系统设计时,必须采用一些被证明是有效的,并鼠能够提高系统开发效 率稻灵浠往的设计模式1 1 5 1 。 j 2 e e 模型提供了一令缀好熬金遂嶷用耩粲及解凌方法,提供了炙活盼技术选 择,但它只是一个应用拜发框架,不能解决系统的所有阅题;嬲时,多层企业应 用框架在提高了软件的蘑用性和分解了阅题的复杂性的同时,也使得代码庞大, 层岛层之间的控制关系复杂。因此,对于复杂的硷业应用软件的开发来说,一个 好懿软件结秘也是至关蓬要瓣,蔫决定大鍪l 鑫盈应焉较侔矮量豹关键因素。m v c 设计模式以它可以分离数据访问魏数撰表现,霹以开发一今其鸯 枣缭挂静、矮子 扩展的控制器来维护整个流程的优势,从众多的设计模式中脱颞丽出,成为j 2 e e 8 武汉疆工大学磺士学位论文 平台的首选郴撕。在j 2 e e 企业缀应用开发中,采用m v c 设计模斌,能简化开 发豹过程,麴快舞发速度,提高软俘豹性能帮掰维护性。m v c 模式运稻予j 2 e e 平台的具体体系缝 奄如图2 - 3 所示1 1 8 1 1 1 9 1 1 孤。 灞2 - 3 j 2 e e m v c 俸系结构 模型负贵与数据库的交驻,管理数据,完成商业逻辑,是企业应用最复杂赍q 、 核心的部分,是决定系统的性能的关键。数据库连接是模型中的一个熟悉感,在 方法孛执行数据席褶美搽绍。它包含了整个系统豹遴辑运算,数据瘁操律,主要 由一系刿鲍城务j a v a b e a n ,匿话b e a n 襄实体b e a n 维成,完成对数据艨熬谤瓣 操作。视图用来呈现模型的内容,决定如何把数据表示出来,当模型改变时,视 图要跟着改变,以维持数据的一致性。同时,视图负责把用户的操作意图传给控 制器。褫图由j s p ,j a v a b e a n s 实现,标准客户端上的视翻由j a v a 图形界面等组 戏。控粼器楚结含模式秘褫强煞缝带,受费解释露户瓣搽佟意图,势把窘家绘模 型去执符,并且横据请求以及执行结暴来决定下次显示娜一个视黧。控制爨由 s e s s i o ne l b 和控制类实现睇“。 在这个模式中,m v c 鲶理过程为;首先控制器接收用户的请求,用户单击 w e b 爱蚕孛翡超链接或者提交表萃对,控涮嚣本身不输鼢任僻信息和傲任何处 理,只爨接收请求势鳞辑请求,转换为模型的输入参数,然磊诞用攘应的模型寒 进行处理,模型用业务逻辑来处理用户的请求并返回数据,最聪控制器将相应的 视湖格式化模型返回数据,井通过表示层璧现给用户。 将m v c 思愆运糟予系统的开发,将简化软件开发过程,撬高了软件性能、 霹缨护缓帮代码簧臻率,达爨了撬裹软棒舞发效率耧软辞覆量舱器豹。 d a o 模式是标准j 2 e e 设计模式之一,它将底层数据访闯操作秘上层的业务 逻辑分开,从而可以使用这个模式构建功能强大的数据库访问层。应用程序中使 用数据访问对象使我们可以将底层数据访问逻辑与业务逻辑分离出来1 2 2 - 2 4 1 。 基本豹d a o 串惫含了为每个数j 蕹源疆供宅l 建、读取、更新、秘除( g r u d ) 9 武汉理工文学殒圭学辍谂文 搡作的d a 0 类,而具体的d a o 类包含访问特定数据源的数据逻辑。d a o 模 式中各释关系鼢炎霉魏鹜2 - 4 所示。辩稚s 赫删e 娩务对象) 代表数据客户灞。 正是该对象豢要谤闽数据灏以获取积存糖数据。d a t a a c c c s s o b j c c t ( 数据谚阀对象) 是d a 0 模式的主要对象也是该模式的核心部分。它封装和实现了对数据源的访 问,并通过v a l u e o b j e c t 在b u s i n e s s o b j e c t 和d a t a s o u r c e 之间传递数据。 豳2 4 :d a o 类绣梅鼷 霆魏,d a o 豹实瑷主簧俸藐在d a t a a c c e s s o b j e c t 的实现上,我稍可班用 a b s t r a c tf a c t o r y 模式表实玟d a o 。d a t a a c c e s s o b j e c t 撞取该b u s i n e s s o b j e c t 黪低 层数据访问炙现,以保证对数据源的邂明访闻。 当数据存储模式不变化时,可以使用f a c t o r ym e t h o d 模式产生一系列应用所 需的d a o 对象,每个d a o 对魏都封装了对数据层的访问。当数据存储模式处 予不叛变纯瓣,搿浚使瘸a b s t r a c tf a c t o r y 模式。这静模式霹叛根据不潮存储模 式蕊使用f a c t o r ym e t h o d 摸式产生几缀针慰不固存锉模式憋一系列d a o 对象。 v a l u e o b( 值对象玳袭用做数据携带着的值对象。可以ject d a t a a c c e s s o b j e c t 使用值对象来把数据返回给客户端。d a t a a c c e s s o b j e c t 也会接受来自于客户端的 数据,其中箱子受新数据溺鼢数结存放手谴对象中来传递。v a l u e o t 】j e c t 是鼗务 对象和d a o 之间传递数据熬载体,d a o 使用它囊业务对象提供壹溜,瑟薪秘处 理后的数据;业务对象通过它把霈要插入,更新和删除的数据提交绘d a o ,从 而宪成对数据存储的更改。 b u s i n e s s o b j e c t 通遥御建d a o 对象获得它的引厢,然后其通过调用不简的 d a o 方法与d a t a s o u r c e 遴转交嚣。b u s i n e s s o b j e c t 熬请求分秀嚣种类鳌:检索数 据和更撅数攒。检索数据时,b u s i n c s s o b j e c t 囱d a o 发送执 亍捡索服务的瀵感, d a o 与d a t a s o u r c 罄建立数据源的连接,然后把命令发给数据源。从数据源获得 数据后,创建v a l u e o b j e c t 存放检索结果,并把此v a l u e o b j e c t 发送给 b u s i n e s s o b j e c t ,荻餐霓离藩的往用。 1 0 武汉理王大学硕士学位论文 更新数据时,b u s i n e s s o b j e c t 酋先将需要更新的数据通过v a l u e o b j e c t 封装并 发绘d a o 。d a o 将获得的v a l u e o b j e c t 解析,并照掰楣墩的数撼源,最聪把更 新的结果邋圆给b u s i n e s s o b j e c t 处理。 系统农设计数搬层的时候,应爨持采用d a o 的设计模式,使渡务层与数据 层之间静藕合度遮剿最小,使系统烫加符合面向对歙的设计思想,具有更好的灵 活性。 2 3 主流应用程序框架分析 由于m v c 思想出现,鼯致了在j 2 髓架构下业务、显承和控制分离,使得应 是舞发夔分王越来越细,续采在l 勰e 领域,密瑗了5 层终掏戆掇念:展承屡, 控制层,服务层,领域层和持久层。 事实上,在j 臻领域巾,展零层帮持久瑟戆瓣题毙较集孛,瞧是鼓零缨苇 比较多,工作量比较大的两个层次。这个领域内的r r 工作者通过将项目巾一些 好黪东西遴行提炼期工,撼象为解决莱一类阉题的孬之有效戆方法翔思想,势搀 这艨思想加以实现,形成了相应的框架产晶。 2 0 重展示层框架产晶 j a k a r t a - s t r u t s 惫a p a c h e 软锋缝绫舞供蠡冬一瑗嚣液添健璐矮鑫,窀为j a v aw e b 应用提供了模型视图控制器( m o d e l v i e w c o n t r o l l e r ,m v c ) 框架,尤其适用 于秀发丈墅豫扩震憨w e b 寝惩。s t r u t s 这今名字来源予在建壤移瓣鼗飞掇串使雳 的支撑金属架。s t r u t s 为w e b 应用提供了个通用的框架,使得开发人员可以把 精力集中在妇褒织决实酝照务蜒医七。霓终,s t r u t s 框架撼供了许多霹供扩震窝 定制的地方,使得成用程序可以方便地扩展框架,来更好地通应用户的实际需求。 它邋过基予标准懿技术,“填空式”浆软传舞发方法,来减轻在剖建裁顼鞋瓣器 些令人抱怨的极费时间的工作1 2 5 1 。 s t r u t s 实质上就是在j s pm o d e l 2 的基鹚上实现豹一令m v c 撵架。在s t r u t s 框架中,模型由实现业务逻辑的j a v a b e a n 或e j b 组件构成,控制器由 a c t i o n s e r v l e t 和a c t i o n 来实现,视灏由一缎j s p 文纷梅成。厦2 - 5 晟示了s t r u t s 实现的m v c 框架。 1 1 斌汉理点大学硕士学位论文 晖k 砂 、 模型) _ j a v a b e a a 图2 - 5 s t r u t s 实现的m v c 框架 系统在展示层模型的实现方面,应该首先参考和借鉴s t r u t s 。利用s t r u t s 成熟 的框架结槐和设计想来构建囊己的鼹示层嘏絮。历蠢从客户蝼豹请求都具鸯统一 的入口,通过页面调用的交翁码来判断具体分发到哪个业务组件( a c i i ) 来处理业 务逻辑。业务组件然后通过调用数据层d a o 模型鞠业务逻辑模型寒完成震户请 求的处理,最后,将结果返回给客户页面。 2 3 2 持久层框架产晶 众雳周缎,持久促数攒访月( 鼓者巍数攥存取) 足乎慧疑有j 2 e e 乃堑掰有 企业级应用程序中必不可少的一个缀成部分。目前,持久数据依然藏要采用关系 型数据库采保存。谤遮秘搽痒关系溅数据瓣方式秘蒺略可键百花蹇放,从鏊予 s q l 的方案矗到完蒋的o r 映射一成俱全。其中h i b e r n a t e 和i b a f i s 都是最出色 的持久层挺絮产晶之一1 2 6 l 。 h i b e r n a t e 是一个强大的对象,关系数据瞅射工其,它也熄在j d b c 之上提供 封裟,不过更为复杂。h i b e r n a t e 提供了完全透明鲍持久他枧剑,这意喙整,客 户代码可通过一种究全面向对象盼方式来她理持久化,而无需和s q l 打交道吲。 h i b e m a t e 管理j a v a 类至q 数据库凝的映射( 包括j a v a 数摄类到s o l 数据类型 的政射) ,擞供数据的c r u d ( 创建、获取、更新、删除) 搽作。使用h i b e r n a t e , 可火幅度减少开发时手工使用s q l 和j d b c 畿来的魔烦。 h i b e r n a t e 内建裔一种成为h q l 语言,它和s q l 的语法很接近,但它不与特 定的数据库液或字段发生直接关联,它提供了s q l 的大部分功能,并且支持类 似迄接、统计函数、批量取出特定字段等关系型概念。h q l 与s q l 最大的区别 在予,查询是以对蒙,而非数据库字段的形式矧。 1 2 武汉攫工大学磺士学位论文 h i b e r n a t e 作为中间件,可以为任何一个需簧访问关系数据库的j a v a 应用服 务,图2 - 6 显示了h i b e r n a t e 静逶瓣往。串闯伟静另一个特点是透明後,律为 h i b e r n a t e 的使用誊,无毳关心它是如蜒实现熬,只濡要躲避鲤 毒谤阂它豹接鑫 就行了i 捌。 图2 - 6h i b e r

温馨提示

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

评论

0/150

提交评论