(控制科学与工程专业论文)基于web的可重构应用设计与实现.pdf_第1页
(控制科学与工程专业论文)基于web的可重构应用设计与实现.pdf_第2页
(控制科学与工程专业论文)基于web的可重构应用设计与实现.pdf_第3页
(控制科学与工程专业论文)基于web的可重构应用设计与实现.pdf_第4页
(控制科学与工程专业论文)基于web的可重构应用设计与实现.pdf_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

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

文档简介

西北工业大学硕士学位论文 摘黉 摘要 随着信息技术的发展,互联网已成为信息传播和存储的重要媒介。基于w e b 的韭务处理系统在众韭阐广泛威瘸,魄如银行交易系统、掰上订购系统、企业资 源譬壤系统筹。 然而,当今的企业芷颇临着谗多的压力既餐在节奏很快、瞬息变幻的环 境中参与竞争的压力,也有不断降低成本以保持竞争力的臌力。成为“随需应变” 的企渡意味着能在这种困难的环境下取得成功作好准备。这就对众业的她务平台 提窭7 要求,瑟瑟震梅警螽灌是7 这释要求。 本文从对成熟的可重构技术分辑入手,斓述了其各自豹成功之处,势指出了 现有w 重构的共同的欠缺之处缺芝对细敉度业务逻辑的关注:在企业业务霆 构时,对细粒度业务的更改往往是必举可兔的,由于现有的w e b 应用开发技术 没寄慰缨粒逻辑撬供强露力支持,造成其更改鋈难,经常憝牵一笈 ;磊动金身。因 此,本文针慰缨粒度业务逻辑重搬展搿7 研究,提出了以袈单滤、事襻流釉改务 流为熬础的新型细粒度业务逻辑描述语言,并设计实现了基于m v c 模式的可霾 构平螽架构,迸而通过测试明了其可粥性。术文的主要创新点如下: 1 提溺了事佟驱动煞缍糍度堑务逻髯攒述语蠢,方褒了维辍度逶辑鹃耋构 和复用,实现了页蘧漉可配鼍、事件流可聪疑秘业务逻辑可配爨靛功能。 2 设计并实现了基于m v c 的可躯构乎台,包括主控制器、事件分发嚣、 页谳导航器、独有的x m l 脚本解释引擎以及数据库连接模块簿。 3 ,胃熬檎平台是一耱薪墅瓣w e b 应焉歼发程粲,蘸入了辩a j a x 技术静蓬 好支持,健w v b 应用的表瑷爨杰b 丰赛。 作为企妲级w e b 应用平台,本文实现的业务可震构平台突破了传统w e b 应 用系统的设计模型,以细粒度业务逻辑可重构为主鼯思想,解决了企业w e b 应 雳细糍度盈务逻辑豹可扩震、霄配雹、可重构及可维护筏筹目邋。 关饕溺:维粒麦鼗务逻辑,胃黧章鼋,凝蟊滚,事伟流,数据流 两j 王渡大学硬士学位论文a b s t r a c t i i ii i i i i ii i i i m l hi i i i - a b s t r a c t a st h ed e v e l o p m e n to fi t , i n t e r n e tb e c o m e so n eo ft h em o s ti m p o r t a n tm e d i af o r i n f o r m a t i o ns p r e a d i n ga n ds t o r a g e w e b - b a s e dt r a n s a c t i o np r o c e s s i n gs y s t e m sa r e w i d e l yu s e d , s u c ha st h eb a n kt r a n s a c t i o ns y s t e m , o n - t i n eo r d e r i n gs y s t e mo re n t e r p r i s e r e s o u r c ep r o c e s s i n g b u s i n e s s e st o d a ya r ef a c i n gm a n yp r e s s u r e s - - - - - - p r e s s u r et oc o m p e t ei na f a s t - p a c e de v e r - c h a n g i n gc l i m a t e , p r e s s u r et oc o n s t a n t l y r e d u c ec o s t st oi m a m c o m p e t i t i v e b e c o m i n g ”o nd e m a n d ”m e a n sp r e p a r i n gy o u ro r g 删o nf o rs u c c e s si n t h i s d i f f i c u l t c l i m a t e t h e r e a r e s e v e r a l d i m e n s i o n s t o b e c o m i a g a n o n d e m a n d b u s i n e s s , a n dr e c o n s t r u c t a b l eb u s i n e s sp r o c e s s i n gs y s t e mm c e t st h em o s to ft h i sr e q u i r e m e n t s t h i sp a p e rf w s ti n t r o d u c e ss o m et h ep o p u l a rt e c l m o l o g i e sf o rr e c o n s t r u c t i n g , a n a l y z i n gt h ea d v a n t a g e sa n dd i s a d v a n t a g e so fl e s sa t t e n t i o nt oh i g hg r a n u l a r i t y b u s i n e s sl o g i c 。w h e nb u s i n e s sl o g i cm u s tc h a n g e , o f t e nh i 垂g r a n u l a r i t yb u s i n e s sl o g i c n e e dc h a n g i n gt o o 。b e c a u s eo n es m a l lc h a n g em a yc 翻l s em a n yo t h e rc h a n g e si n d i f f e r e n t # a c e s s o ,t h i sp a p e rs t u d i e st h es u b j e c to f h o wt or e c o n s t r u c th i g hg r a n u l a r i t y b u s i n e s sl o g i c ,a n dp r o p o s e san e wk i n do fb u s i n e s sl o g i cd e s c r i b m gl a n g u a g e , w h i c h c o n s i s t s o f f o r m f l o w , e v e n t f l o wa n d d a t a f l o w ;, t h e n t h e p a p e r d e s i g n s a n d i m p l e m e n t s t h er e c o n s t r u c t a b l es y s t e mb a s e do i lm v c p a t t e r n ,a n da tl a s ti tp r o v e st h eu s a b i 珏t y t h r o u g hp e r f o r m a n c et e s t s t h em a i np o i n t si nt h i sp a p e r a r el i s t e db e l o w : 1ae v e n t - d r i v e nb u s i n e s sd e s c r i b i n gl a n g u a g ew a sd e s i g n e dt od e v e l o pw e b a p p l i c a t i o n ,i m p l e m e n t i n gt h er c c o n s t r u c t a b i l i t yo f f o r mf l o w , e v e n tf l o wa n d d a t af l o w a n de a s i l yh a n d l i n gh i g hg r a n u l a r i t yb u s i n e s sl o g i c 。 2am v c - b a s c dr e c o n s t r u c t a b l es y s t e mw 鹅d e s i g n e d c o m p r i s i n gm a i n c o n t r o l l e r , e v e n td i s p a t c h e r , f o r mn a v i g a t o r , b u s i n e s ss c r i p te n g i n e 。d a t a b a s ea c c e s s i n g m o d u l ea n de t c 3t h er e c o n s t m c t a b l ew e ba p p l i c a t i o ni si m p l e m e n t e d , w i t hs u p p o r t sf o ra j a x n o w t e c h n i q u e a sa ne n t e r p r i s ew e bp l a t f o r m , t h er e c o n s t r u c t a b l es y s t e mb r e a k st h et r a d i t i o n a l w e bm o d e l ,s u p p o r t sh i g hg r a n u l a r i t yb u s i n e s sl o g i cr e c o n s t r u c t i o n ,a n dh a st h e 珏 嚣就芏渡丈学硕士学位论交 a b s t r a c t ii l _ _ _ _ _ _ - l l _ _ _ _ _ l _ _ _ l - _ _ _ l i i - t _ _ _ _ _ - l l _ - - i l - c h a r a c t e r i s t i c so fe x p a n d a b l l i t y , r e c o n f i g u r a t i o n , r e c o n s t r u c t i o na n dm a i n t a i n a b i l i t yi n t h ed e s i g no fe n t e r p r i s ew e bs y s t e m k e y w o r d :h i g h g r a n u l a r i t y b u s i n e s s l o g i c , r e c o n s t r u c t i o n ,p a g e f l o w , e v e n t f l o w ,d a t a f l o w 擞 嚣魏工娃大学硬士学位论文 繁1 章绪论 搿霉重稳静赣瓷鹜景 第1 章绪论 l 暾着信息与网络技术的迅猛发展,w e b 作为一种高效的传媒而得到了广泛的 运用。w e b 已从最初简单的文本形式,演燮成如今的以流媒体岛w e b 应用技术 为代波戆复杂系统,以楚予w e b 工程兹概念零在1 9 9 8 年便被掇爨,提疆使嗣过 鬈秘鬃统酶方法来舞发海矮鐾豹萋手w e b 热应用系统。热之b s 的模式优越之 处,许多传统的信息系统被移植到w e b 感用上其应用范围也从单纯的新闻和电 子邮件功能扩展到娱乐、商务、生产管理、政务等诸多领域。 砖此同时,俘睫着w e b 应用缒发展,余数终舞信息黠代煞产力懿最活跃圭 俸,箕债怠纯逶程与w e b 藏胄l 发生了密韬鹩联系。无论是在企簸的内部或外部, w e b 应用都为企业生产发挥着巨大作用,w e b 应用能够使企业虢得更多的客户 与黼机,能够帮助企业管理诸如客户关系、人力、物力、资金等资源,合理的协 调王终、安接露霹,为众娥备部门运终进行簸大霹齄的协调,充分裂震瑗存成本 戳获褥最大秘海。 然丽,当今的企业溅丽临着许多的压力既有在节奏很快、瞬息变幻的环 境中参与竞争的压力,也有不断降低成本以保持竞争力的压力。成为随需应芟 ( o n d e m a n d ) 躬企蹙意噱着兔企监在这瓣爨难夔舔壤下取霉残凌佟好疆答。下 嚣憝成为随需盔交番孽企波所涉及豹几个方稀: 首先,需要刨建个快速响应的环城,以便对市场上的铙何变化做出快 速反应,而不懈_ j 采种变化是内部的还鼹外部的,是计划内的还是未能预 辩戆,是威貉述是援遥。 其次,企业应该采用灵活多交的成本结构来管理成本,以跟上金韭静发 展或需求的增长。 再次,企业需翳将注意力放在有利w 图的、对企业的成功有着核心作用 西北工业大学硕士学位论文 第1 章绪论 的事务上。 最后,企业需要一个有弹性的、健壮的基础设施,并且是全球2 4 小时 可用的。 如何构建一个满足“随需应变企业”要求的w e b 应用系统成为一个很有价 值的研究课题。当业务需求改变时,能够随即迅速变更以适应新的业务带来的需 求,并保证成本与竞争优势,即满足企业随需应变的要求,我们称这样的w e b 应用系统是可重构的。 针对于w 曲应用业务逻辑的“随需应变”问题,业界提出了很多解决方案, 这些方案日臻成熟并被成功应用到企业实践中。这些技术的中心主题是提高w e b 应用系统的可复用性,现将主要技术列举如下: 框架( f r a m e w o r k ) 技术 构筑强健的企业应用系统是庞大而复杂的,各种w e b 应用服务开发框架随 之兴起,它们为应用服务开发人员开发提供了相当多的便利。w e b 应用框架实质 上是一些设计模式的组合,这些孤立的设计设计模式以一种特定方式和谐的组合 在一起,彼此协调的工作在w e b 应用的不同层次中,从而发挥更大的效用,满 足现实中高层面的需求。如w e b w o r k 以m v c 为核心而满足模型、控制和视图 问的低耦合,比如在表示逻辑层使用命令模式和代理模式分别完成请求路由和任 务调度功能,而在业务逻辑层使用反转注入模式和活动链模式分别完成对象动态 生成和任务传递功能等等。 面向服务的体系结构( s e r v i c e - o r i e n t e da r c h i t e c t u r e ,s o a ) 这种体系结构是一种组件模型,它将应用程序的不同功能单元( 称为服务) 通过这些服务之间定义良好的接i z l 和契约联系起来。接口是采用中立的方式进行 定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建 在各种这样的系统中的服务可以以一种统一和通用的方式进行交互。 2 鹾j _ i 妊大学硕士学位论文繁l 章绪论 工作潍( w o r k t i o w ) 技术 置作流是工作流程的计算模型,即将工作流程中的工作如何前展组织在一起 斡逻瓣秘觏瑟| l 窿诗葵援孛獗恰当豹蒺型避露淡暴势簿其实撬诗棼。工终流要舞决 鹃主袋嗣题是:为实现黧个娩务目标,在多个参与者之闻,莆j 塌计算机,按某种 预定规则自动传递文档、信息或者任务。工作流需要依靠工作流镣理系统来实现。 工作流属于计算机支持的协同工作( c o m p u t e rs u p p o r t e dc o o p e r a t i v ew o r k , c s c w ) 戆一部分。魄蘩,赛务滚程譬理( b p m ) 标准,辩鬻务流程建模蠢记 ( b p m n ) 和商务流程执行语言( b p e l ) ,掇供了使用x m l 文耥描述粗粒度业 务逻辑的途径,它给面向服务( s o a ) 程序 跫计代来好处。 1 2 闷照提出 为便于研究讨论,本文把企业业务逻辑糨略她分为两种:糨粒度业务逻辑 ( l o wg r a n u l a r i t yb u s i n e s sl o g i c ) 和细粒度舭务逻辑( h i g hg r a n u l a r i t yb u s i n e s s l o g i c ) 。这里的粗粒度与细粒度是根据业务逻辑的功能划分的,划分一般是相当 予强境覆言,没有绝建糖浆,羲本文辕器了一个吴骞簧逮经瓣浚辆撅念;蟊暴鲎 务逻辑的功能较为完整和独立,可暴露给最终霹户以完成某种特定任务,爱1 j 这样 的业务逻辑称为粗粒度的;反之,没有独立功熊,面向开发人员的则称为细粒度 业务逻辑。举例来说,锻褥为客户提供的在线账户查询功能、转账功能等,这可 浚必麓糖耱度麴,翼霉镊纷秘终失套遵爨进嚣煞数蕹痒搡俸辩楚续羧发魏。 农当前可重构技术和产品中,几乎全部怒针对粗粒度业务逻辑的,它们对多 粒度逻辑的复用给予了极大的关注,应用范豳往往是在应用与成用之间、服务与 服务乏闯熬重组与集成。如前所述,目前使用广泛的框架如s t r u t s 、s p r i n g 、 w e b w o r k 等,帮类纭逑将歉务功魏封装袭誉溺戆功髭模块( 跑妊a c t i o n 类) 孛, 帮助我们区分和管理业务逻辑。然而,功能模块间是紧密耦合的,难以脱离环境 而达到真正的复用,并麒模块本身的修改也鼹缺乏灵活性的,般需要借助编译 工具期程序员。面工作流鞠s o a 在实际产黼中经常是配合使用,应用在高层次 3 秀j e 工攮大学硕士学位论文第1 章缝论 的服务集成中,是面向粗敉度渡务逻辑的,比如b 2 b 应用和企业爨成。 粗粒魔 l 关注 r - j 一 l 关注 l 覆多 - i 细粒戚 豳1 - 1 当前可重构技术状况 i - s o f a ( j a v a j a v a s c r i p ts e r v i c e so r c h e s t r a t i o nf o ra c t i o m ) 怒艇耆见过唯一 翁针辩缨粒度盈务逻辑羹构箍歼放的框架,然 i 孬其应磊帮荠不多藏。j - s o f a 核 心任务怒对细粒度业务过程的调度和管理进行文档化表示,使细粒魔业务过程通 过x m l 文件的改写而得以熬组,无需程序代码变动。无疑,这是巍细粒度业务 领域懿大进步,绘舞发穆寒了不少雏便利。然褥,当业务过程戆缀霄调度蹶彦 或方式坡改变时,其代码缎缝也器要改交。可以窍两种办法解决:一、重耨改写、 编译和部署应用。由于j - s o f a 使用现有的p o j o 和w e b 服务作为业务过程的表 现形式,编译是不可避免的,但违背了i - s o f a 的初衷。二、在编麓北务过程时, 必绥遴纷仔缨戆功能划分,以使予缨粒度妲务溅穗瓣调整,僵这将静致秀发难度 的增翔,甚至在菜些情琵下不可能傲到。蠢诧,j - s o f a 盼使薅不便成为其推广 的一个障碍。然而它给我们掇供了一个好的开端,它对细粒度业务的关注引起我 们深思,给我们的带来了扇发。 1 3 磷究骞标及意义 攀蜜上,细粒度业务逻辑对企业业务的变化是敏感的,对“随需应变”同样 具有潜谯的巨大要求。然糯瞬前尚未受到关注,由此而带来的问蹶怒;对于一般 毒 西北工业大学硕士学位论文 第1 章绪论 的w e b 应用而言是缺乏或者不具备二次开发能力的,业务逻辑表现于程序代码 之中,而这些代码都是需要经过编译的才能部署的,于是,业务逻辑完了固化在 了二进制模块中。但是,细粒度逻辑潜在的不稳定性极大,很可能因需要更改当 业务逻辑更改时,往往需要得到专门的第三方工具和程序员的帮助,而付出的成 本过高。尤其是当业务逻辑频繁变动时,成本的增加将会使企业面临丧失竞争优 势的危险。可见,只有粗粒度与细粒度业务都能够重构时,企业平台才能达到真 正的重构。 可重构系统对于粗粒度业务逻辑和细粒度业务逻辑的要求是不同的。粗粒度 业务逻辑具有相对独立、完整的功能,独立的输入、独立的输出,因而只要能够 重组和集成就很容易组装成新的应用。而细粒度业务逻辑的功能不是独立的,细 粒度逻辑之间需要适当的配合才能达到一个完整的需求,并且这种配合往往是必 要的。此外,细粒度业务逻辑是真正由开发人员所接触的可编辑的文本。因而, 可重构对细粒度业务逻辑不仅有业务流程重组方面的要求,还有对逻辑代码便于 修改的要求。经过长期的实践探索,我们对细粒度可重构的要求积累了一些经验, 现总结如下: 逻辑层次分明,代码易于理解。代码的可读性是软件工程里十分重视和反复 强调的一个原则。由于软件的更新变动周期短,而工作人员的流动性大,因而一 些原有代码的维护和修改工作很可能落到新员工的身上。面对复杂的业务逻辑, 一些风格不好的代码甚至将页面控制、业务逻辑、数据库操作等混杂在一起,在 原有基础上维护和修改将变成难以完成的任务。 易于作小幅度修改。当原有业务逻辑需要改变时,即便是很小,都不得不要 求专业人员的介入,随之而来的是相关功能的代码编写、重新编译和部署,在时 间和财力都会有很大损耗,可谓是牵一发而动全身。尤其是当业务逻辑频繁变动 时,成本的增加将会使企业面临丧失竞争优势的危险。 细粒度工作流程复用。在进行应用开发时,我们经常遇到相似的业务流程, 我们不得不拷贝和粘贴一些代码,这是低效和危险的行为。在细粒度业务流程相 近时,应该能都充分利用现有业务流程,而无需重新编写。 5 西北工业大学硕士学位论文第1 章绪论 本文正是基于以上要求而展开可重构系统研究和设计的。的确,要实现w e b 应用的可重构还有很多工作要做,然而我们能看到其广阔的前景。如果能使细粒 度业务逻辑达到可重构的要求既能适应不同企业的不同需求以及快节奏的 变化,又能对已有系统和资源进行充分利用,这不仅是技术上的创新,更给企业 带来了新的活力与更高的效益: 有利于增强企业的竞争力,快速适应市场化竞争的要求; 有利于理顺和提高企业的管理,实现管理的井井有条; 由于其复用性和适应性,大大缩短了符合新需求应用的开发周期; 降低信息化建设的成本费用,特别是企业信息化系统的维护费用。 1 4 研究内容和文章安捧 本论文主要进行了w e b 应用的细粒度业务可重构性技术研究,并在此基础 上进行了实践的尝试性开发,获得了初步成效。 在今天的商业化社会里,“随需应变”成为企业竞争中求生存的基本条件, 如果w e b 应用能在细粒度业务逻辑的开发上满足企业的快速变更的需求,将给 企业带来额外的效益。 本文第二章提出了可重构系统服务端的逻辑层次模型,针对此模型设计了细 粒度业务逻辑语言,介绍了其组织方式及特点,分别对页面流、事件流和数据流 做了详细阐述。 第三章首先介绍了m v c 模式,然后设计和实现了用于执行细粒度业务逻辑 语言的整个w e b 应用的体系结构,并分别对其各组成部分进行描述。 由于采用了解释型逻辑,因而其性能问题成为最大的关注点。第四章提出了 w e b 应用的测试方案,并分析了测试结果,证明了其可用性。 文章最后对细粒度业务可重构性研究进行了总结和展望。 6 秀北工媲大学硕士学位论文第2 章可重构缨靛嶷渡务逻豢语言 第2 章可重构细粒度业务逻辑语言 2 。1 霹重构骚务卷的n 屡绩梅 为了增强可重构应用得灵活性,可重构w e b 应用服务端采用了四层结构, 如图靠l ,这也是当今大多数w e b 应用所采用的层次模型。 数据瓣 图2 - 1 可蘑构w e b 应用服务端的四层结构 在信息时代的今天,所有信息都需要以数据的形式存储,数据层已成为一个 应用本质部分,几乎所有的应用都使用了数据层。简单来讲,这一层包括的是数 据库臀壤系统( d b m s ) ,魄懿o r a c l e 、m y s q l 或s q ls e r v e r 镣,还有一些 逶蔫豹格式豹文本氇萄激缡入该层,院翔c v s 、x m l 等。这一滋只关注数据翡 存储与读取,而不对数据进行任何操作,也是不包含任何业务逻辑。 数据访问屡 遨一层与数据存取糖笑,不包括业务逻辑代码,仅仅是数据滗的可复甩潜日。 这一层上的工作任务通常包括建立数据库连接、进行数据库操作以及放弃数据库 连接等。数据持久化工怍也经常放到这里,比如管理业务对象威该如何在数据 彳 西北工业大学硕士学位论文 第2 章可重构细粒度业务逻辑语言 库中存取等。该层同数据层一样,不包含业务逻辑和数据操作。 业务逻辑层 这是应用程序的智力中心,它包含着商业的业务规则、数据操作等。业务逻 辑层在运行环境中开辟一个空间,在这个空间里通过实施特定的商务应用软件, 支持企业商务过程的实现。 业务逻辑层接收从表示逻辑层输入的用户请求,将其转化为企业商务过程能 够理解的语言并输入业务逻辑软件,根据商务逻辑有序地向数据层发送数据请 求,并将数据层返回的数据解释及组合成用户所需信息,返回给表示逻辑层。业 务逻辑层不关心h u m d 网页输出和数据库访问。 业务逻辑层是运行环境的上层建筑,直接面对电子商务应用。应用的内容根 据商务过程功能可分为:客户关系管理、业务伙伴与渠道关系管理、供应链管理、 产品研发与革新、产品设计协作、企业人力、组织与支持等。 表示逻辑层 这一层为大多数人所熟悉,a s p 、j s p 、h t m l 等都是该层的表现形式。这一 层为最终用户访问应用程序提供可视化界面,也就是说,它将业务逻辑层的输出 结果转换为可读可用的形式展现给用户。 因此,我们提出细粒度业务逻辑语言。细粒度业务逻辑是面向开发人员的、 以x m l 作为基础的脚本语言,该语言讲细粒度业务逻辑从固化的模块中分离出 来,提供足够的灵活性以便于业务流程的修改和重组,能够满足企业业务灵活变 动的需求以保证企业对现有资源的充分利用。如图所示,细粒度业务语言工作在 业务逻辑层,而p o j o 和w e b 服务等在其包含范围内,表示细粒度语言提供了 访问已有的领域模型对象( p o j o ) 和w e b 服务方法,可以协同这些已有的技术 一起工作。 n 层架构的核心是可重构性强。n 层结构从逻辑上相互独立,某一层的变动 8 嚣j e z 娩大学硬学位论文蘩2 章可重褥缨黢发媛务逻舞器言 - - i _ _ 通常不影响其它层,具有很高的可重用性。翻为客户机不包含渡务逻辑,所以它 们交褥熙加简洁。这就使部署和维护工作更加容易,因为更新业务逻辑只需要对 应用服务器进行操作。假如业务逻辑层是最易发生变化的层次,那么这个优点将 更鸯鬟纛著。贯努,n 凄禁稳霉提供霹燕蒺纯懿後,一方覆是获缀务受羧主毒亵模 化,簸两时为极大规模韵粥户同时提供服务;舄方面是服务功能上的可觌模化, 可形成极大规模的软件群系统,各分系统可以敷享信息、服务,形成企业级的信 息高速公路。n 层可以分剐放在各自不同的硬件系统上的,所以烫活性很高,能 够逶墩客户爨数嚣熬瑗麴秘楚莲受蔫熬交动。钢翔,在逵翔蘩藏务鲶理瓣,霹数 相应增加装载功能层的服务器。因此。系统规横越大这种形态的优点就越显著。 2 2 细粒度业务逻辑滔言概述 农研究w e b 霹薰构谯辩,壤黎簸务壤豹溪次,我靛将w e b 疯用擒象为数蕹 流、页丽流和事件流,并宛义一种细粒度业务逻辑语言对它们进行描述。 数据漉 数据流是w e b 应潮巾豹对数据迸彳亍的务运算和存德操终。数据是一个w e b 应用的实质,所有信息都悬以数据的形式进杼存储和操作的。w e b 应用说到底, 就是数据的在网络问的流动和处理。比如,w e b 客户提交表单,客户的数据流向 服务器,骚务器褥翻数豢瑟在嚣台送行运算耨存德, ;及将结果数糖黻霪夏静形 式遁舔给客户,这一连龋动作背后都是数据裰发生改变。 页面流 炎蘧滚是w e b 应羯审豹殛夏旁麓。在一令惩产看来,一令w e b 癍震是一系 捌弼页缀成的。阏页是一个w e b 应用的外在裘现形式,是w e b 成用数据的载体, 数据将在网页上以表格绒糟图像等形式呈现畿用户面前。 空 疆l e 工媲大学硬士学位论文煞2 章可重构细靛攫渡务逻辑语言 事件流 事件流是用户在网页上的操作行为的集合。事件是页面与数据j 爵信的桥梁, 哭骞遴避枣舞旁毙褥籍震声戆搡终,才戆爨臻数据应当舞 毒进程搽掺。魄蘩,爱 户在嚣颥上操作一个下拉剿袭时,会触发事 孛鼯致连带的菜个控韩数据更薪,用 户点击“提交”按钮时,服务器响应事件,开始某项业务操作。 维织方式 豳2 - 2 细粒度业务逻瓣滠言组织结构 可霞构w e b 应用具有自身特有的组织方溅,如图2 - 2 。一个w e b 应用由多 个不同的业务组成。业务怒能够完成一个独立功能的人机交互过穰。每个业务则 由页瑟流描述、事件流攒述秘_ 数据流描述三寰分缀藏。 炙褥流播述说翡堑务过程孛页瑟静导靛耢凝,每个盈务都与一缀摇关页嚣对 应。当个页面将数据提黛而将要转到下一个页面时,服务器根据提交数据进行 相应计算,然后根据结果和页面流描述选择下一个应该显示的页_ 黼。 l 2 n 务 务 务 簸 业 娥 。,。_|。卜 西北王渡大学硕士学位论文 第2 章可重稳缨靛嶷妲务逻辑语言 豢件流描述说明每个夏面所对应的事件及处理方法。所谓攀件,在本质上是 浏览器戚服务器发生的浆燠动作,比如,一个是网页输出到客户端可以是一个事 件,一个是客户提交表单输入也是事件,此外用户在w e b 页面上对某些控件进 行莱挚争搡终等郝可以是攀襻。当事静发玺辩,系统鬏攥事磐滚巍述罨筏正确戆楚 理方式。每个页面都宥一缀相关事件,焉每个事件都对应于一个唯一的翮页。 数据流描述说明对数据应进行的操作。数据流描述是由一个个事件过程组成 的,攀件过程是组成数据流描述的直接实体。每个事件都对应判乏多一个事件过 程,褥每个事终过程都瓣嗲一令事箨。 细粒度业务语言是一种新型的韭务逻辑谮畜,具有传统开发不具备的特性: 使用可读性强的x m l 作为语言基础。细粒度业务逻辑的撒述采用x m l 语言作为基础,砖现有的工作流语富b p e l 和脚本语言j s p 有很大的攫 叛毪,使舞发入鬟蹙予学习、易予攀握,霜露褰霉读瞧憝舞发天簧戆够 迅速理解业务邋辕。 m v c 模式更贴谶w e b 应用的表达方溅。数据流是模型,袭单流是视图, 事件流是控制,从丽将w e b 应用逻辑宠整而清楚的表现出来,便于开发 入受理舞窝掌爨,撵裹了舞发效率。关予m v c 将在簧纛章详缨嚣沦。 事件驱动开发。黼向事件的开发语害怒一种直观、易学的程序设计语言, 这种模式的最典溅代表就是微软的v i s u a lb a s i c 。这种拳件驱动的程序结 构适合于企事业的用户晃面设计和娥瑷。 数握滚霉重穗。缨粒疫堑务逻辑语袁怒一静簿释鍪程謦疆窘,无嚣黎译, 因而可以随时鼹改她务逻辑,不需要熏新编译。对于然功能上的微调, 细粒度业务逻辑语言显示出独有的弹性,使开发人员免予编译带来一系 列的麻烦。 茭覆滚霹耄稳。瓣予一鬏赘w e b 巍麓两畜,夏覆靛缝织怒一令缀蹩瓣鹤 阔题。一般w e b 威用的导航功能经常靠网页里的链接线糟是写在程序里 的f o r w a r d 来完成,这样不仅不能很赢观的看到网页的流程,更糟糕的 是当网页被复用绒者顺序被重组时,网页里的固定链按釉程序代码都不 l l 西北工业大学硕士学位论文 第2 章可重构细粒度业务逻辑语言 得不一一做出修改,限制了其复用的可能。而我们的页面流描述可以完 全摆脱这些困难而轻易复用。 事件流可重构。对于一个网页发生的所有事件,都可以定义其对应的处 理事件( 需要j a v a s c r i p t 支持) 。对于每个事件,都可以选择不处理或者 处理以及如何处理。 可继承的细粒度业务流程定义。在开发中经常出现的情况是:几个业务 逻辑的内容几乎相同,但由于有限的一些差异而不得不重复保存很多相 似的业务逻辑代码。继承很好地解决了这个闯题。与面相对象语言一样, 继承使业务逻辑过程有选择的保留父业务逻辑过程的逻辑,并用新的逻 辑替换父业务逻辑过程中的等位逻辑以及添加新的逻辑。开发人员可以 开发一个具有共性的通用基础过程,当应用到特定环境时只要从其继 承。 图2 - 3 业务流程的继承关系 细粒度业务逻辑语言能够对已有的p o j o 类进行实例化和函数调用方便 功能。由于细粒度业务逻辑语言本身尚不支持面向对象,对p o j o 的支 持弥补了这点,同时也是对现有技术和资源的支持。下面的例子创建了 一个m y o b j 类对象,并调用其成员函数a d d 进行两数相加计算: o b j d e fn a m e = m y o b j ”c l a s s = m y o b j 协 西北工业大学硕士学位论文第2 章可重构细粒度业务逻辑语言 l 2 2 3 细粒度业务逻辑语言设计 2 3 1 页面流描述语句 页面流描述了一个业务过程中所有页面的组织关系。在一次业务中,一个页 面提交数据后,将导致另一个页面的显示,而下一个页面可能有多种选择,究竟 显示哪一个将视此次事件操作结果而定。页面流使用一系列p a g e 标签完成定义: 一个p a g e 标签表示一个w e b 页面,页面可以是静态的h t m l 页,也可以是一 个动态生成的页面结果。n a n 砖属性表示此页面节点的名称,瞄属性是可选的, 当网页是静态的h t m l 或者j s p 时,给出网页的位置,如果是动态生成的则不需要 指定8 r c 属性。f o r w a r d 标签是p a g e 的子节点,一个p a g e 可以有任用多的f o r w a r d 字节点,它们是页面流的分支。每个f o r w a r d 表示下一个应该显示的页面及条件, t o 属性给出下个页面所对应p a g e 节点的n a l i 地属性,c o n d i t o n 是一个字符串,它 对应于当前网页事件的操作结果,如果c o n d i t o n 属性与结果相同时,则页面流将 流向该分支。下面的例予展现了一个简单而完整的页面流描述过程,如图2 4 所 示,a 、b 、c 、d 是四个w e b 页面,而下面的代码则是页面流的描述。 西北工业大学硕士学位论文第2 章可重构细粒度业务逻辑语言 b h 咖c h n l 缸d i h t i 】d l 图2 _ 4 w e b 页面关系 页面流描述语句如下: p a g en a m e = p b ”s w o r n b h t m l 侈 p a g en a m e = p c s r 口c h t m l 压 p a g e n a m e = p d 耐d h t m l ”伶 2 3 2 事件流描述 事件流描述的是网页事件以及相关处理逻辑得对应关系。事件流以网页为依 据进行组织的,一个网页对应多个事件,而每个事件又对应一个处理过程。以下 是事件流描述的结构: 1 4 秀耗羔效大学硬士学位论文 第2 章霹重稳缩鞍发照务逻辑语言 p a g e 臻逡翳夏赘名称,e v e n t 蠡签我装一令纂搏,勰嘴鬟戆绘邂事箨名舔, p o c e s s 给出发生事件时澍斑处理过程的路径名。比如,当a 事件发生时,服务 器将碍拢当前页面事件流巾n a m e 属性为“a ”的那个e v e n t 标签,从而找到相应 的处壤过程。 关母事箨蠡舞定义这一熹将在3 4 4 苇骞搭缀奔箔,毽在这纛爨说葫熬是系 统申脊两个事件比较特殊,即e v e n t _ o u t p u t 和e 嘲玳烈i r r 事件,它们 是默认的事件,可以直接使用。对于般的威用来说,这两个事件是足够的,只 有当髓爱支持a j a x 技术时,才会用到更多的巍定义事件。图2 - 5 怒两个默认事 锋熬添惫踅。e 瑚_ o u t p d t 表示辕窭事黪,逡# 雩将要凳霹鑫该豢终赘瘸夏赣 出,可以在这时对输出谶行修改或者重写。e v e n t _ j n p u t 表示输入事件,这时 用户融缀将数据提交,可以避行业务处理,一般的业务逻辑都可以在该事件中执 行。 浏览器 。, e v e n t _ d l p u t 服务器 o e v e n t _ o u t p u t 图2 - 5e v e n t _ o u t p u t 秘嚣嘲玳璜理事传 2 3 3 数据漉攒述语訇 襁数据流描述语言设计中,一个关键的问题就是提取事件动作。这个问题包 括怎榉抽象常有的软件搽作,以及简化、归纳遽些数据操作。崔这基有一些设计 1 5 西北工业大学硕士学位论文 第2 章可重构细粒度业务逻辑语言 原则: 1 基本的数据操作不能太多,否则起不到重构的目的。对大量应用软件分 析归纳以后,所选择出来的数据操作应该不能太多,否则,还是很多的话,起不 到用最基本的几个原子操作去重构其它各种各样的数据操作。而且太多的话,即 使可以达到重构的目的,也会对重构的能力范围有所影响。 2 所选择出来的数据操作原则上不能再分解。通过分析归纳总结以后,需 要固定出一些基本的数据操作。这些动作在功能上应该不能有重合,而且本身应 该是最基本的操作,不能再包含子操作,因为那样的话,就会影响这些动作的基 本属性。但是,针对某些特殊的应用需求,可以定义出个别的数据操作,这些动 作是其它动作的复合体,之所以这样,是为了提高一些常用的基本操作的快速重 构性和配置性。 3 数据操作可以用最基本的计算机语句执行。定义出来数据操作活动以后, 就应该对数据操作进行描述。描述的原则就是信息的完备性、可执行性,即按照 描述提供的信息,可以让客户自适应处理端进行必要的信息整理后,根据输入和 输出的要求,进行计算机处理,得出复合要求的返回结果集。 4 数据操作可以用有限的信息来描述,不存在二义性。数据操作要能正确 执行,必须有完备的信息源提供。在提供信息的脚本描述中,所提供的信息要完 备和正确。这里为了保证到这两点,就需要设计必要的信息组织格式,即数据操 作的定义描述。除了要求必要的信息节点外,还需要提供输入验证、执行检查和 错误结果处理等一系列相关措施。 通过对w e b 应用的大量调查和分析发现,大部分软件的数据操作功能抽象 到最低的层面上以后,基本上就是这些相对稳定的类型的操作,比如表达式计算, 数据库添加操作,删除记录的操作,它们能够满足大部分普通应用需求。我们以 此为依据为数据流描述语句定义了如下语法规则: 1 6 西北工业大学硕士学位论文第2 章可重构细粒度业务逻辑语言 表达式 表达式是使用变量或常量进行计算式子。表达式以美元符和左花括号开始, 以右花括号结束,或括号之间是变量或常量与操作符组成的算式。比如$ a + b , 其中a 和b 是变量。 变量类型及声明 细粒度业务逻辑语言提供了可以满足常用需求的基本数据类型和一些适合 于w e b 应用的高级数据类型。其中,基本数据类型包括整数型,小数型,文本 型,逻辑型,高级类型有向量型、记录集型等。数据的定义如下: v a r d e f n a m e = ”变量名”t y p d i n t e g e rif l o a tl t e x tib o o l e a n iv e c t o rir e c o r d s e t i n i t i a l = 。静态文本或表达式”】房 其中,n a m e 属性指出变量名,t y p e 属性指出变量类型,i n i t i a l 属性是可选的, 给出变量的初始值。基本类型变量在程序运行时内部使用其对应的封装类 ( w r a p p e r ) 对象进行存储和操作,可以对这些“变量”调用其操作。 向量的声明不使用初始化字段,需要在脚本里手动赋值。向量的存储容量和 存储类型是不定的,可以向其内任意存储任意数量和任何类型的数据,可以满足 w e b 应用灵活的需求。比如,存储表格时,将向量嵌套使用,就形成了二维的数 据表格。 数据库结果型r e c o r d s e t 用于存放数据库操作结果。r e c o r d s e t 包含着数据库 操作结果的数据元信息以及返回的记录游标。 赋值语句 v a r s e tn a 删窖变量名”v a l u e = 静态文本或表达式协 该语句给一个指定的变量赋值。n a i n e 属性给出需要赋值的变量的名称,v a l u e 属性给出变量的值或直接给出一个表达式。 1 7 西北工业大学硕士学位论文 第2 章可重构细粒度业务逻辑语言 选择语句 i f 语句可以单独使用i f 标签,也可以和e l s e 标签配合使用,e l s e 标签必须紧 跟在i f 标签之后使用。i f 语句的c o n d i t i o n 属性提供一个表达式,当表达式值为 真时,执行i f 标签之间的语句,如果为假,则跳过i f 语句执行之后的e l s e 标签 中的语句或者其他语句。 分支语句 s w i t c h 用于业务具有多分支的情况。c o n d i t i o n 属性指定一个表达式,t y p e 属 性指定表达式的类型。该语句将遍历c a 标签中的v a l 属性,找到与c o n d i t i o n 耍j ! 三些盔兰硕士学位论文 第2 章可重构细粒度业务逻辑语言 属性一直得以执行,如果没有则执行或者跳出分支选择。与一般不同,一般程 序语言要求s w i t c h 必须以数字作为分支选择条件,而我们的业务逻辑语言可以 使用字符串类型,t y p e 属性指名这一点;没有b 玎e a l ( 。 循环语句 循环语句一般有两种,第一种是f o r 循环,语法如下: ,f b f o r 循环使用一个内部游标( 假定为i ) 记录循环次数,b e g i n ,s t e p 属性必须 是正数型表达式。其中嘲n 指出游标的初始值,s t e p 给出游标的步长。c o n d i t i o n 作为循环的控制条件,是一个逻辑表达式,当表达式为真则执行f o r 标签内的语 句,否则不执行,详细执行步骤如下。 第二种循环是d o l o o p 循环,语法如下: 或 西北工业大学硕士学位论文第2 章可重构细粒度业务逻辑语言 d o l o o p 循环有两种形式,其区别在于后一种将至少执行循环体一次。 c o n d i t i o n 属性给出逻辑表达式作为循环的控制条件。 语

温馨提示

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

评论

0/150

提交评论