(计算机应用技术专业论文)基于构件的连锁企业信息系统研究与实现.pdf_第1页
(计算机应用技术专业论文)基于构件的连锁企业信息系统研究与实现.pdf_第2页
(计算机应用技术专业论文)基于构件的连锁企业信息系统研究与实现.pdf_第3页
(计算机应用技术专业论文)基于构件的连锁企业信息系统研究与实现.pdf_第4页
(计算机应用技术专业论文)基于构件的连锁企业信息系统研究与实现.pdf_第5页
已阅读5页,还剩54页未读 继续免费阅读

(计算机应用技术专业论文)基于构件的连锁企业信息系统研究与实现.pdf.pdf 免费下载

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

文档简介

河北工业大学硕士学位论文 基于构件的连锁企业信息系统研究 摘要 软件构件是可复用的软件单元,利用软件构件技术可以将复杂的应用系统分成若干个 可以实现的、易于开发的、可复用的软件单元。基于构件的软件开发方法是基于构件、复 用构件库中的一个或多个构件来构造应用软件系统的过程。软件构件技术和基于构件的软 件开发方法己经成为软件产业未来发展的主要方向。 本文深入研究了在系统分析的基础上进行构件划分、提取的过程。目前,业界内还没 有一种专门针对构件提取的开发方法。本文是根据对r u p 开发方法的研究,依据构件开发 的特性要求,提出了一种在r u p 基础上的改进方法。该改进方法,力求能从系统的需求分 析入手,直到构件的设计实现,为开发过程提供指导。在这个过程中,强调了设计模式在 构件开发中的重要作用。 本文根据连锁企业信息系统的开发过程,演示了改进后的每个开发步骤和工作任务。 演示系统的开发是面向j 2 e e 平台,所以在对改进过程的余绍过程中也是结合j 2 e e 的特性 介绍的。最后,提出了一种针对连锁企业信息系统的开发构架和构件,并在这一基础上实 现了手机连锁店信息系统的建设,验证了构件开发的良好效果。 关键词:r u p ,构件,构架,设计模式,软件工程 董王塑丝墼羹丝尘些篁;垦圣篁堑窒 t h er e s e a r c ho fc o m p o n e n t - b a s e dc h a i n ,s l n f o r m 【枷o ns y s t e m a b s 7 r 己a c t t h ec o m p o n e n to ft h es o f t w a r ei sas o f t w a l eu n i tt h a tc a nb er e u s a b l e t h ec o m p o n e n t t e c h n o l o g yo fs o f t w a r ec a l ld i v i d eac o m p l i c a t e da p p l i c a t i o ns y s t e mi n t os e v e r a lo n e st h a ta r e r e a l i z a b l e ,e a s yt od e v e l o pa n dr e u s a b l e c o m p o n e n t - b a s e ds o f l w a r ed e v e l o p m e n tu t i l i z e c o m p o n e n t st oc o n s t r u c tt h es o f t w a r es y s t e m c o m p o n e n tt e c h n o l o g ya n dd e v e l o p m e n ta p p r o a c h i sb e c o m i n gt h em a i nd i r e c t i o n o f f i l t u r ed e v e l o p m e n to f s o f t w a r ei n d u s t r y n l ep a p e rh a sb e e nf u r t h e ri n v e s t i g a t e dt od i v i s i o na n dd r a w i n go ft h ec o m p o n e n t a t p r e s e n t ,t h e r ei s n oa n ys u c hk i n do fd e v e l o p m e n ta p p r o a c h e sw h i c hs p e c i a l l yu s e df o r c o m p o n e n td r a w i n g t h ep a p e rp r o p o s e dak i n do fi m p r o v e dm e t h o do nt h eb a s i so fr c 假乃e i m p r o v e dm e t h o dm a k e se v e r ye f f o r tt oo f f e rg u i d a n c ef o rd e v e l o p i n gt h ec o u r s e n l ep a p e rd e m o n s t r a t e dt h a td e v e l o p ss t e pa n dt a s ke a c ho n ea f t e ri m p r o v i n ga c c o r d i n gt o t h ed e v e l o p m e n tc o n r s eo fc h a i n si n f o r m a t i o ns y s t e m d e m o n s t m t i v es y s t e md e v e l o p m e n ti so n t h eb a s i so fj 2 e ep l a t f o r m f i n a l l y ,ak i n do fd e v e l o p m e n tf r a l t l e w o r ka n dc o m p o n e n ti sp u t f o r w a r dw h i c hd i r e c t e sa g a i n s tc h a i n si n f o r m a t i o ns y s t e m t h em o b i l et e l e p h o n ec h a i n s 1 1 l f o r m a t i o ni sr e a l i z e d w jd r a wac o n c l u s i o nt h a tc b s dc a ni m p r o v et h ee 壤c i e n c yo fs o f t w a r e d e v e l o p m e n t k e yw o r d s :r u p ,c o m p o n e n t ,f r a m e ,d e s i g np a t t e r n s ,s o f t w a r ee n g i n e e r i n g 河北工业大学硕士学位论文 第一章绪论 卜1 引言 商业连锁经营是指同一商业企业中,多个营业实体在某个商业范畴内以相同模式统一经营管理,它是 一种先进的经营方式和组织形式。连锁企业的“集中管理、分散经营”模式,是其最为突出的特点。通 过利用网络技术、通讯技术、软件技术等计算机技术,商业连锁企业的管理信息系统可以加快企业信息 处理速度、提高企业的管理水平。同时,市场也对商业连锁企业管理信息系统的开发提出了新的要求即 提高开发效率、改蘸系统结构。软件组件技术的应用有利于这一目标的实现。 随着经济的高速发展,连锁企业的规模不断扩大,连锁企业的数量也在不断增加,连锁企业的经营 范围不断扩张。连锁经营是一种建立在规模经营基础之上的零售经营方式。连锁经营与单店经营的区别, 首是在“连锁”上,亦即前者是在“总部配送中心”控制管理之下,若干门店一起进行的零售经营活动: 而后者则不然。第二个区别是,相对于后者,前者追求的是规模经济效益,故其更加注重效率。连锁超 市大都是微利经营,其成败与否往往就取决于效率。基于以上两点认识,对连锁经营和管理方式进行分 析与探讨,以及研究有关计算机管理实现的方案,则离不开“总部配送中心”与“门店”的关系分析,离 不开对如何提高经营管理效率这一主要目标的探讨。连锁经营的特点:分布广、门店多、经营变化快、 运作效率高等。基于以上考虑,开发的软件系统应当可扩展、可复用、满足分布式、具有灵活性的特点。 基于构件的软件开发( c o m p o n e n t b a s e ds o f t w a r e d e v e l o p m e n t ) 是最近业界内非常推祟的开发方法, 它是继面向过程、面向对象后,软件工程又一个重要的发展方向。构件化的开发为软件的复用、开发效 率的提高、软件的灵活性提供了保证。 当前,连锁企业在发展过程中都认识到了信息化的重要性。根据以上关于连锁企业的特点和基于构 件软件开发的特征的介绍,构件技术将为连锁企业信息系统的开发带来无限的活力。 1 - 2 构件技术的国内外发展状况 软件构件技术在最近一、二年内已经轰轰烈烈地开展起来。目前国内许多大工程、大项目都纷纷采 用这项技术,如8 6 3 计划近一半的项目、通信方面许多大项目的投标、金融行业的业务处理系统等,都 在朝这个方向走。而且软件构件的方法已经被确定为“十五”期间软件技术发展趋势。 领域工程技术:美国国防部高级研究项目署建立了“用于易修改的可靠系统的软件技术”项目,研 究领域特定的、基于复用的软件工程技术,并建立了三个示范工程项目。美国空军电子系统中心与美国 航空航天局合作建立了“可复用防务软件的中央档案库”项目,以促进国防项目中的软件复用。 c o r b a 分布式对象技术:b e l l s o u t h 公司在大型机上有大量的应用程序和数据,新的业务过程需要 与之协作。c o r b a 技术提供的解决方案是将遗留系统包装为构件,以o r b 为“软总线”集成新老系 统。由摩托罗拉发起的著名的“铱星工程”中,最终采用了o r b 产品作为软件构件之间的互连框架。 【1 1 产品线技术:1 9 8 5 年,瑞典c e l n u s t e c h 系统公司,同时接到两份合同一一瑞典海军和丹麦海军的 轮船系统,两个系统都需要很强的容错性和分散性,该公司采用s s 2 0 0 0 产品线方法后,获得了巨大成 功,将硬件与软件的费用比例从过去的3 5 :6 5 变成了8 0 :2 0 0 。1 据预测,今后,软件开发商必须了解主要系统集成商和应用软件开发人员所需要的基本构件,因为 他们在引导着构件技术的需求和功能走势。到2 0 0 8 年,所有新开发的应用至少有6 0 将是基于构件的 基于构件的连锁企业信息系统研究 组装,开发商的市场应变能力也因此得到提高。 由此可以看出,全世界的软件行业,特别是在应用领域中的软件技术,正在酝酿着一次飞跃,这次 飞跃将会对软件行业的生产方式产生根本性的变革。这对于我们来说既是挑战也是机遇。如果我们充分 利用构件化技术,就可以将我们的套装软件做得更灵活、更经济、更易于普及。口】 但目前软件构件技术在我国还处于发展阶段,目前迫切需要解决瞰下问题:针对如何开发应用,需 要有一套开发规范和质量保证体系;如何提取领域构件,仍然是处于摸索阶段。开始时,我们是采用通 过功能划分来提取构件,这就影响构件的可复用性,目前可以采用领域中的模型和各种设计模式来提取 构件是一条好的途径,但还未总结出可操作的规程;最后鉴于分布式系统、网络系统和多媒体应用,国 际上的复合文档和j a v a 正处于迅速发展时期,在我国还缺乏实际应用的经验。i j l 软件构件化是软件产业未来的发展趋势,软件构件化的研发工作在我们国家业已起步。在国内,构 件软件的理论和实际工程己被人们普遍关注。在理论上,北京大学、中科院软件所、吉林大学、南京大 学、复旦大学、中山大学等单位,均发表了不少有价值的学术论文。在实际工程上,青鸟公司、中软公 司、华科电脑公司等均采用基于构件技术开发应用软件,积累了不少经验,获取极好的效益。在实践中, 清华大学正和i b m 公司联合进行软件构件的开发工作。他们从1 9 9 6 年开始傲构件,当时做了6 个通用 的商用构件:表、按键、图表、人员档案、记事本、包装格式等。利用这6 个构件,组建了2 个应用的 演示程序,一个是通讯录,一个是商业用的订单。1 9 9 6 年1 2 月j a v a 出台后他们全力做j a v a 构件,也 就是j a v a b e a n ,迄今为止已完成了近3 0 个j a v a b e a n 。在i b m 公司的协调组织下,他们联合印度、白 俄罗斯、印加等国家利用互联网和群件技术,实现了三大洲五个国家的异地协同,构建了一个虚拟实验 室,共享着几十个数据库,共同投入软件构件的研发工作。今年的计划是做l o o 个j a v ab e a n ,其中大 多数均为商用。 总而言之,软件构件化技术为我国的软件行业提供了迎头赶上的可能性,我们应该充分重视,把握 这一契机,引导我国构件技术的发展。 卜3 研究主要问题及范围 本文旨在利用面向构件的软件设计思想进行软件开发。研究并开发一个基于连锁经营的领域构架, 为连锁企业的信息系统的开发提供领域构件库。最后,通过对一个实际系统的开发( 手机连锁店管理信 息系统) 验证面向构件开发过程的高效性和灵活性。 关于如何提取领域构件的问题,本文将结合r u p 开发过程,并针对j 2 e e 技术,提出一种可操作 的、比较容易实现的构件化软件开发过程。本文还讨论了如何利用设计模式,更有效的划分构件、提高 构件的灵活性。 本文还针对连锁企业信息系统提出了一个基于b ,s 和c s 集成的领域软件构架,试图提出一种连锁 企业范围内的通用构架方案。 2 基于构件的连髓企业信息系l 踅研究 组装,开发商的市场应变能力也因此得到提高。 由此可以看出,全世界的软件行业,特别是在应用领域中的软件技术,正在酝酿着一次飞跃,这敬 飞跃将会对软件行、l t 的生产方式产生根本性的变革,这对于我们来说既是挑战也是机遇。如果我们充分 利用构件化技术就可以将我们的套装软件做得更灵活、更经济、更易于普及。口1 但目前软件构件技术在我国还处于发展阶段,目前迫切需要解决咀下问题:针对如何开发应用,需 要有一套开发规范和质量保证体系;如何提取领域构件,仍然是处于摸索阶段。开始时,我们是采用通 过功能划分来提取构件,这就影响构件的可复用性,目前州以采用领域中的模型和各种设计模式来提驭 构件是一条好的途径,但还未总结出可操作的规程;最后鉴于分布式系统、网络系统和多媒体应用,国 际上的复台文档和j a v a 正处于迅速发展时期,在我国还缺乏安际应用的经验。p l 软件构件化是软件产业未来的发展趋势,软件构件化的研发工作在我们国家业已起步。存国内,构 件软件的理论和实际工程已被人们普遍关注。在理论上,北京大学、中科院软件所、吉林大学、南京大 学、复旦大学、中山大学等单位,均发表了不少有价值的学术论文。在实际工程上,青鸟公司、中软公 司、华科电脑公司等均采用基于构件技术开发应川软件。积累了不少经验,获取极好的效益。在实践中, 清华大学正和i b m 公司联台进行软件构件的开发工作。他们从1 9 9 6 年开始做构件,当时傲了6 个通用 的商用构件:表、按键、图表、人员档案、记事本、包装格式等。寿4 用这6 个构件,组建了2 个应用的 演示程序,一个是通讯录,一个是商业用的订单。1 9 9 6 年1 2 月j a v a 出台后他们全力做j a v a 构件,也 就是j a v a b e a n ,迄今为止己完成了近3 0 个j a v a b e a n 。在i b m 公司的协调组织下,他们联合印度、白 俄罗斯、印加等国家利甩互联网和群竹技术,实现了三大洲五个国家的异地协同,构建丁一个虚拟宴验 室,共享着几十个数据库,菸同投入软件构件的研发工作。今年的计划是做1 0 0 个j a v ab e a n ,其中大 多数均为商用。 总而言之,软件构件化技术为我国的软件行业提供了迎头赶l 的可能性,我们应该充分重视,把握 这一契机,引导我国构件技术的发展。 卜3 研究主要同题及范围 本文旨在利用而向构件的软件设计思想进行软件开发。研究并开发一个基于连锁经营的领域构架, 为连锁企业的信息系统的开发提供领域构件库,最后,通过对一个实际系统的开发( 手机连锁店管理信 息系统) 验证面向构件丌发过程的高效性和灵活| 生。 关于如何提取领域构件的问题,本文将结合p u p 开发过程,并针对j 2 e e 技术,提出一种可操作 的、比较容易实现的构件化软件开发过程。本文还讨论丁如何利用设计模式,更有效的划分构件、提高 构件的灵活性。 本文还针对连锁企业信息系统提出了一个基于b s 和c ,s 集成的领域软件构架,试图提出一种连锁 企业范围内的通用构架力案。 企业范国内韵通用构架方案。 2 河北工业大学硕士学位论文 第二章构件技术和开发方法分析 2 - 1 软件构件技术 软件行业发展的数十年中,程序编写的模式和风格都己发生了很大的变化。最早的程序员是通过直 接编写仅仅由0 和1 组成的机器代码来”告知”机器运行程序的。在今天如果使用这种方法来编写应用程 序简直是不可想象的。 1 9 9 1 年,m i c r o s o f t 公司的”v i s u a lb a s i c ”( v b ) 的诞生对编程世界产生了翻天覆地的强烈冲击。由于 v b 是架构在w i n d o w s 平台上的,所以编程者可以调用系统的动态连接库( d l l s ) ,这种动态连接库就 是早期的构件雏型。同时编程者还可以使用我们称之为”v be x t e n t i o n ”( v b x ) 的预先做好的功能模块 集。也正是因为有了v b ,程序员才第一次真正的将自己的应用程序以最直接的方式和编程的操作环境 无缝连接。程序员在v b 上的开发过程实现了真正意义上的所见即所得。随着v b 和其他的可视化开发 工具的不断成熟,程序员对各种功能模块的调用越来越标准化了。 从抽象程度来看,面向对象技术已达到了类级重用( 代码重用) ,它以类为封装的单位。这样的重用 粒度还太小,不足以解决异构互操作和效率更高的重用。构件将抽象的程度提到一个更高的层次,它是 对一组类的组合进行封装,并代表完成一个或多个功能的特定服务,也为用户提供了多个接口。整个构 件隐藏了具体的实现,只用接口提供服务。这样,在不同层次上, 构件均可以将底层的多个逻辑组合 成高层次上的粒度更大的新构件,甚至直接封装到一个系统,使模块的重用从代码级、对象级、架构级 到系统级都可能实现,从而使软件像硬件一样,能任人装配定制而成的梦想得以实现。近几年来,构件 技术的发展已证明了它的巨大威力,在这其中,c o r b a 标准和j a v a 技术的突破,功不可没! 至今构 件技术己形成三个流派:s u n 的j a v a 平台、m i c r o s o f t 的n e t 、i b m 的c o r b a 。h 2 - 1 1 构件的概念和基本性质 软件构件是指应用系统中可以明确辨识的构成成份,包括源代码、需求、系统和软件的需求规约、 系统和软件的构架、文档、测试计划、测试案例和数据以及其他开发活动有用的信息。 基于构件的开发来自于利用构件生产应用软件的概念。开发者在设计和详细描述阶段,使用内部开 发的构件和公开市场的构件来为他们的应用软件提供尽可能多的功能。然后,开发者编写其它的构件来 粘联代码,把构件一一连接。他们可以把新写的构件放进公司的知识库,以至于其它人就可以使用这些 构件的功能。这种做法有效提高了软件重用的效率并降低了开发成本。打个比方,如果有一个开发人员 创建了一个构件能够让一个客户进入公司的数据库。那么,其他程序员就不必重新编写这个功能,而是 从公司的知识库提取这个用户构件,然后直接放入程序使用其功能。 构件的基本性质要求如下:l o 构件不是一个完整的应用程序。一个构件能够和其它的构件联合在一起形成一个应用程序或者 更大的构件。构件被设计为在应用程序范围内实现有限的任务集。 构件通常会用在一些不可预知的条件下,就好像现实世界中的零件被用到生产者没有预料到的 地方。通常,构件与同类型的构件组合运用,实现“即插即用”的效果。 构件有一组规范的接口( i n t e r f a c e ) 。仅能够通过接口控制构件。接口是构件向外界暴露其功能 的唯一方式。构件的接口与它的实现相分离,构件的实现能够用o b j e c e 、c o d e 等方式。 3 基于构件的连锁企业信息系统研究 构件是一个能共同操作的对象。构件能够通过地址空问、网络、语言、运行系统等调用。构件 是独立于系统的软件实体。 构件是扩展的对象。 2 一l 鼍构件模型标准 构件模型用于描述构件及其装配关系,没有标准的构件模型,就没有真正的即插即用构件。目前业 界存在三种主流的构件模型标准,m i c r o s o f td n a 系列、e j b 和c o r b a 构件模型( c c m ) 。其宗旨是一 致的,都是要解决分布环境下软件构件的集成和互操作问题,只是实现方案上的各有差异。 o m g 的c o r b a c o r b a 分布计算技术是o m g 组织基于众多开放系统平台厂商提交的分布对象互操作内容的基础 上制定的公共对象请求代理体系规范。 c o r b a 分布计算技术,是由绝大多数分布计算平台厂商所支持和遵循的系统规范技术,具有模型完 整、先进,独立于系统平台和开发语言,被支持程度广泛的特点,已逐渐成为分布计算技术的标准。 c o b r a 标准主要分为3 个层次:对象请求代理、公共对象服务和公共设施。最底层是对象请求代理 o r b ,规定了分布对象的定义( 接口) 和语言映射,实现对象问的通讯和互操作,是分布对象系统中 的“软总线”:在o r b 之上定义了很多公共服务,可以提供诸如并发服务、名字服务、事务( 交易) 服务、 安全服务等各种各样的服务:最上层的公共设施则定义了组件框架,提供可直接为业务对象使用的服务, 规定业务对象有效协作所需的协定规则。目前,c o r b a 兼容的分布计算产品层出不穷,其中有中间件厂 商的o r b 产品,如b e a m 3 ,i b mc o m p o n e n tb r o k e r ,有分布对象厂商推出的产品,如i o n a o b i x 和 o o c o b a c u s 等。 c o r b ac c m ( c o r b ac o m p o n e n tm o d e l ) 技术是在支持p o a 的c o r b a 规范( 版本2 3 以后) 基础上 结合e j b 当前规范的基础上发展起来的。c o r b a 构件模型是o m g 组织制定的一个用于开发和配置分 布式应用的服务器端构件模型规范,它主要包括如下三项内容: ( 1 ) 抽象构件模型,用以描述服务器端构件结构及构件间互操作的结构; ( 2 ) 构件容器结构,用以提供通用的构件运行和管理环境,弗支持对安全、事务、持久状态等系统服务 的集成: ( 3 ) 构件的配置和打包规范,c c m 使用打包技术来管理构件的二进制、多语言版本的可执行代码和配 置信息,并制定了构件包的具体内容和基于x m l 的文档内容标准。 总之,c o r b a 的特点是大而全,互操作性和开放性非常好。c o r b a 的缺点是庞大而复杂,并且 技术和标准的更新相对较慢,c o b r a 规范从1 0 升级到2 0 所花的时间非常短,而再往上的版本的发 布就相对十分缓慢了。在具体的应用中使用不是很多。 s u a 的j 2 e e 为了推动基于j a v a 的服务器端应用开发,s u n 于是在1 9 9 9 年底推出了j a v a 2 技术及相关的j 2 e e 规 范。j 2 e e 的目标是提供平台无关的、可移植的、支持并发访问和安全的,完全基于j a v a 的开发服务器 端构件的标准。 在j 2 e e 中,s u n 给出了完整的基于j a v a 语言开发面向企业分布应用规范。其中,在分布式互操作 协议上,j 2 e e 同时支持r m i 和i i o p 。而在服务器端分布式应用的构造形式测包括了j a v as e r v l e t 、 j s p ( j a v as e r v e rp a g e ) 、e j b 等多种形式,以支持不同的业务需求,而且j a v a 应用程序具有“w r i t eo n c e ,r u n a n y w h e r e ”的特性,使得j 2 e e 技术在发布计算领域得到了快速发展。j 2 e e 简化了构件可伸缩的、其 于构件服务器端应用的复杂度。虽然d n a2 0 0 0 也一样,但最大的区别是d n a 2 0 0 0 是一个产品,j 2 e e 是 一个规范,不同的厂家可以实现自己的符合j 2 e e 规范的产品。j 2 e e 规范是众多厂家参与制定的,它不 4 河北工业大学硕士学位论文 为s u n 所独有,而且其支持跨平台的开发。目前许多大的分布计算平台厂商都公开支持与j 2 e e 兼容技 术。e j b 是s u n 推出的基于j a v a 的服务器端构件规范j 2 e e 的一部分,自从j 2 e e 推出之后,得到了广 泛的发展,已经成为应用服务器端的标准技术。s u ne j b 技术是在j a v ab e a n 本地构件基础上,发展的 面向服务器端分布应用构件技术。它基于j a v a 语言,提供了基于j a v a 二进制字节代码的重用方式。e j b 给出了系统的服务器端分布构件规范,这包括了构件、构件容器的接口规范以及构件打包、构件配置等 的标准规范内容。e j b 技术的推出,使得用j a v a 基于构件方法开发服务器端分布式应用成为可能。从 企业应用多层结构的角度,e j b 是业务逻辑层的中间件技术,与j a v a b e a n s 不同,它提供了事务处理的 能力,自从三层结构提出以后,中间层,也就是业务逻辑层,是处理事务的核心,从数据存储层分离, 取代了存储层的大部分地位。从分布式计算的角度,e j b 像c o r b a 一样,提供了分布式技术的基础。 提供了对象之间的通讯手段。从i n t e r n e t 技术应用的角度,e j b 和s e r v l e t 、j s p 一起成为新一代应用 服务器的技术标准。e j b 中的b e a n 可以分为会话b e a n 和实体b e a n ,前者维护会话,后者处理事务, 现在s e r v l e t 负责与客户端通信,访问e j b ,并把结果通过j s p 产生页面传回客户端。j 2 e e 的优点是, 服务器市场的主流还是大型机和u n i x 平台,这意味着以j a v a 开发构件,能够做到”w r i t eo n c e ,q _ l n a n y w h e r e ”,开发的应用可以配置到包括w i n d o w s 平台在内的任何服务器端环境中去。 m i c r o s o f td n a2 咖 m i c r o s o f td n a2 0 0 0 ( d i s t r i b u t e di n t e m e ta p p l i c a t i o n s ) 是m i c r o s o f t 在推出w i n d o w s 2 0 0 0 系列操作系 统平台基础上,在扩展了分布计算模型,以及改造b a c ko f f i c e 系列服务器端分布计算产品后发布的新 的分布计算体系结构和规范。在服务器端,d n a2 0 0 0 提供了a s p 、c o m 、c l u s t e r 等的应用支持。目 前,d n a 2 0 0 0 在技术结构上有着巨大的优越性。一方面,由于m i c r o s o f t 是操作系统平台厂商,因此 d n a2 0 0 0 技术得到了底层操作系统平台韵强大支持;另一方面,由于m i c r o s o f t 的操作系统平台应用广 泛,支持该系统平台的应用开发厂商数目众多,因此在实际应用中,d n a 2 0 0 0 得到了众多应用开发商 的采用和支持。d n a2 0 0 0 融合了当今最先进的分布计算理论和思想,如事务处理、可伸缩性、异步 消息队列、集群等内容。d n a 使得开发可以基于m i c r o s o f t 平台的服务器构件应用,其中,如数据库事 务服务、异步通讯服务和安全服务等,都由底层的分布对象系统提供。 以m i c r o s o f t 为首的 d c o m c o m c o m + 阵营,从d d e ,o l e 到a c f i v e x 等,提供了中间件开发的基础,如v c ,v b ,d e l p h i 等都支持d c o m ,包括o l ed b 在内新的数据库存取技术,随着w i n d o w s 2 0 0 0 的发布,m i c r o s o f t 的 d c o m c o m c o m + 技术,在d n a 2 0 0 0 分布计算结构基础上,展现了一个全新的分布构件应用模型。 首先,d c o m c o m c o m + 的构件仍然采用普通的c o m ( c o m p o n e n t o b j e c t m o d e l ) 模型。c o m 最初作为 m i c r o s o f t 桌面系统的构件技术,主要为本地的o l e 应用服务,但是随着m i c r o s o f t 服务器操作系统n t 和d c o m 的发布,c o m 通过底层的远程支持使得构件技术延伸到了分布应用领域。d c o m c o m c o m + 更将其扩充为面向服务器端分布应用的业务逻辑中间件。通过c o m + 的相关服务设施,如负载均衡、 内存数据库、对象池、构件管理与配置等等,d c o m c o m c o m + 将c o m 、d c o m 、m t s 的功能有机 地统一在一起,形成了一个概念、功能强的构件应用体系结构。而且,d n a 2 0 0 0 是单一厂家提供的分 布对象构件模型,开发者使用的是同一厂家提供的系列开发工具,这比组合多家开发工具更有吸引力。 但是它的不足是依赖于m i c r o s o f t 的操作系统平台,因而在其它开发系统平台( 如u n i x 、l i n u x ) 上不能发 挥作用。 相关性比较分析 目前,针对上述的各种分布计算平台技术,都出现了相似且具有可比性的分布式构件,即c o r b a c c m ( c o r b ac o m p o n e n tm o d e l ) 技术、s u n 的e j b ( e n t e r p r i s ej a v a b e a n ) 技术和d n a2 0 0 0 中的 c o m d c o m c o m + 技术。 对于以上三种技术的采用以下三种标准进行比较分析。 集成性:集成性主要反映在基础平台对应用程序互操作能力的支持上。它要求分布在不同机器平台和操 作系统上、采用不同的语言或者开发工具生成的各类商业应用必须能集成在一起,构成一个统一的企业 5 至重塑丝墼童墼尘些篁j 旦至竺堑塞 计算框架。这一集成框架必须建立在网络的基础之上,并且具备对于遗留应用的集成能力; 可用性:要求所采用的软件构件技术必须是成熟的技术,相应的产品也必须是成熟的产品,在至关重要 的企业应用中能够稳定、安全、可靠地运行。另外,由于数据库在企业计算中扮演着重要角色,软件构 件技术应能与数据库技术紧密集成; 可扩展性:集成框架必须是可扩展的,能够协调不同的设计模式和实现策略,可以根据企业计算的需求 进行裁剪,并能迅速反应市场的变化和技术的发展趋势。通过保证当前应用的可重用一眭,最大程度地保 护企业的投资。 如表2 1 ,从集成性,可用性,可扩展性三个方面,给出了上述三种主流分布计算平台的比较结果。 表2 1 性能比较 t a b l e2 。ip e r f o r m a n c ec o m p a r i n g 虽然这三种平台因为其形成的历史背景和商业背景有所不同,各自有自己的侧重和特点,其实在它 们之间也有很大的相通性和互补性。例如,e j b 提供了一个概念清晰、结构紧凑的分布计算模型和构件 互操作的方法,为构件应用开发提供了相当的灵活性。但由于它还处于发展初期,因此其形态很难界定。 c o r b ac c m 是一种集成技术,而不是编程技术。它提供了对各种功能模块进行构件化处理并将它们 捆绑在一起的粘合剂。e j b 和c o r b a 在很大的程度是可以看作为互补的。这个适应w e b 应用的发展 要求,许多厂商多非常重视促进e j b 和c o r b a 技术的结合,将来r m i 可能建立在i i o p 之上。c o r b a 不只是对象请求代理o r b ,也是一个非常完整的分布式对象平台。c o r b a 可以扩展f a b 在网络、语 言、组件边界、操作系统中的各种应用。目前许多平台都能实现e j b 构件和c o r b a 构件的互操作。 同e j b 和c o r b a 之间相互之间方便的互操作性相比,d c o m 和c o r b a 之间的互操作性要相对复杂 些,虽然d c o m 和c o r b a 极其类似。d o c m 的接口指针大体相当于c o r b a 的对象引用。为了实现 c o r b a 和d c o m 的互操作,o m g 在c o r b a 3 0 的规范中,加入了有关的c o r b a 和d c o m 互操作 的实现规范,并提供了接口方法。因为商业利益的原因,在e j b 和d c o m 之间基本没有提供互操作方 法。 综合考虑,本系统决定采用, 1 2 e e e j b 的构件模型标准。采用j 2 e e e , i b 主要是看中它的继承了 j a v a 语言的跨平台性,并且j 2 e e 已经在很多大型系统的开发中获得了成功,j 2 e e 事实上已经成为了 企业级应用的主流。j 2 e e 在开放性、扩展性方面要优于c o r b a 和d c o m ,这两个方面也正是构件 开发所追求的。 在本文后面的系统设计和实现中,我们将以j 2 e e 平台为基础,讨论构件开发。本文所讨论的软件 开发过程也是针对j 2 e e 平台的。 6 河北工业大学硕士学位论文 2 - i 一3 构件库 构件库是为了能存储和管理构件,除此之外,构件库还为构件的创建者和使用者之间架起一座“理 解构件含义”的桥梁。构件库系统类似于数据库管理系统,它具备数据库的基本特征和功能,为了向基 于构件的应用系统开发提供构件,构件库管理系统必须能够存储构件和构件相关信息( 比如,构件的语 义描述、构件的形态等) 。 为了能够管理和维护构件信息,构件库管理系统必须能够提供如下的操作: 构件的添加:主要是构件的测试和认证方法,只有合格的构件才能添加到构件之中; 构件的检索:也就构件的需求匹配,与一般的数据库不同,构件匹配通常不能得到完全满 意的构件,对与需求相关或相近的构件,需要通过适配使之满足需求; 其他构件库管理手段:构件的删除、备份、用户登记和存取控制、使用跟踪和统计分析、 异构构件库的连接等。 构件库的设计通常会涉及到一个或多个特定的应用领域,在特定的应用领域中构件库的设计必须满 足以下三个条件: 领域完整性:对于某一领域的构件库,其表述的概念必须覆盖了整个领域,即不能存在属 于该领域的构件不能被构件库处理; 领域抽象性:构件库必须按一组关键抽象概念组织起来; 领域标准化:构件库必须按照领域标准设计。 构件库系统的一个实际例子就是北京大学青鸟构件库系统,这个构件库系统用于对可复用构件进行 描述、管理、存储和检索。它以青鸟构件模型为基础,建立青鸟构件库数据模型,并与其它c a s e 工 具相结合,支持构件的生产、描述( 使用青鸟构件描述语言) 、分类、存储、查询和复合。 青鸟构件库提供一系列的支持工具来协助构件库的使用者和管理者共同用好构件库,发挥出构件 库应有的价值。青鸟构件库系统的整体结构如图2 1 所示: 构件入库工具集 h | 通信模块 j 分类工具i * _ d a c - q 通信模块f _ 1 1 i l 譬 工数据库 构件查询工具集 服务器 i 查询工具ll 反馈工具 网 i 数据库 络 管理系统 构件库维护工具集 l 用户数据库li 反馈意见ii 术语空间i入 维护工具 i 处理工具il 维护工具l f 构件库l q 图2 1 青乌构件库系统的总体结构”1 f i g 2 1 a r c h i t e c t u r eo f j b c s 【7 】 7 董至垫丝塑翼丝尘些篁星至丝堡塞 该构件库系统包含三个相关工具集,它们通过网络与数据库服务器通信,支持用户对构 件库的使用。 构件入库工具集:由构件库管理员使用,其中包括构件分类工具,主要功能是将新构件加入构 件库及修改已有构件信息; 构件查询工具集:由构件库用户使用,其中包括构件查询工具和构件使用意见反馈工具,协 助构件库用户浏览、查询、提取构件,反馈用户对构件的使用意见; 构件库维护工具集:由构件库管理员使用,其中包括用户数据库维护工具、构件制作者数据 库维护工具、构件库管理员数据库维护工具、用户反馈意见处理工具、刻面术语空间维护工 具和构件库信息统计工具,对构件库的各部分内容进行维护。 青鸟构件库采用了以刻面分类策略为主,多种分类策略相结合的策略。在对构件进行分类时,除了 为构件在各个刻面中关联一组术语以外,还要为构件填写属性,关联一组关键词,并在构件之间建立各 种关系。相应地,也为青鸟构件库的用户提供多种查询手段。查询时除提供一组术语以外,还可以提供 一些属性值,一组关键词进行查询,并可以依据构件之间的关系进行导航式查询。 2 1 _ 4 基于构件的应用框架 目前在框架设计方面成熟的技术较少,大体可分为两类:实践法与系统法。p j 1 实践法 许多专家甚至认为框架不可能是系统设计的结果,而只是在从底向上设计中的一个结果。实践法也 可以说是实例( e x a i l l p l e ) 驱动的设计方法,它是从若干个具体的典型应用中,抽象出相似点来构建框架, 框架反过来又应用于不同的问题,并在解决不同问题的过程中得到更新,在框架的设计和实现的两步中, 不断反复。等到框架逐渐成熟时,需要修改和反复的内容就会越来越少。具体步骤为: 分析问题领域,确定所需框架。从一类应用而不是单个的程序去分析、比较各种不同的软件解 决方案,寻求这些方案的共性和每个程序的唯一性特征。这些共性,尤其是那些经常被多个程 序使用的部分将成为框架的基础。然后定义框架体系结构并设计,包括设计用户与框架间的交 互、给用户提供的最终工具等。 框架的实现。包括框架核心类的实现、框架的测试、框架的试运行、框架的反复更新。 框架的部署。包括文档的提供、分发过程,为用户提供技术支持,维护和更新框架。 这种方法也就是先在具体类基础上进行泛化,提取出抽象类。抽象化也是框架开发的一个关键。不 过,根据这种方法设计出的框架的可适用性很大程度上依赖于其基于的具体应用。 由于框架的开发具有反复性,且需要深入了解应用领域,因此框架的开发很难按进度表进行。框架 的设计者也需要和应用开发者紧密合作,因为框架只有在使用它开发应用的过程中才能发现其哪些部分 有待改进。 2 系统法 由于有人认为框架的设计也可以通过系统的方法得到,因此人们提出了逐步泛化的框架设计方法。 此时框架的设计分两步: 第一步是问题的泛化。它要求解决如下问题:问题领域中的哪些概念可以表现为变量,并且需要统 一处理,是否可以发现一些具体的概念,它们能被泛化为一个更抽象的概念。 第二步是框架的设计。在这一步中,泛化是从反向考虑,以实现每一级的框架。换言之,晟先实现 最通用的框架,然后实现次通用的框架,以此类推。如图2 2 所示,其中,框架o 就是最终要实现的框 架。 8 河北工业大学硕士学位论文 图2 2 层次关系 f i g 2 2l e v e lr e l a t i o n 这一步需要解决如下问题:系统的哪一部分可能需要改变? 用户需要在什么地方向框架中加入自己 的代码? 采用两步的设计方法可以避免在早期的开发过程中局限于应用专用的类和体系结构,并且有 利于使用通用的设计模式。 框架的设计是一个反复的过程,在这个过程中需要领域和设计两方面的专家意见,框架用户和框架 开发者之间的交流对框架的设计也很重要,因为框架是在不断反复的过程中逐步成熟的。 在本系统中,采用的是系统法。本系统在对用户需求分析的基础上,并通过研究连锁企业的共同特 点,试图提出一种通用的框架。 2 - 2 1 软件开发方法综述 2 _ 2 软件开发方法 1 结构化方法 结构化开发方法是由e y o u r d o n 和l l c o n s t a n t i n e 提出的,即所谓的s a s d 方法,也可称为面 向功能的软件开发方法或面向数据流的软件开发方法。y o u r d o n 方法是8 0 年代使用最广泛的软件开发 方法。它首先用结构化分析( s a ) 对软件进行需求分析,然后用结构化设计( s d ) 方法进行总体设计, 最后是结构化编程( s p ) 。它给出了两类典型的软件结构( 变换型和事务型) 使软件开发的成功率大大 提高。 2 面向数据结构的软件开发方法 j a c k s o n 方法是最典型的面向数据结构的软件开发方法,j a c k s o n 方法把问题分解为可由三种基本结 构形式表示的各部分的层次结构。三种基本的结构形式就是顺序、选择和重复。三种数据结构可以进行 组合,形成复杂的结构体系。这一方法从目标系统的输入、输出数据结构入手,导出程序框架结构,再 补充其它细节,就可得到完整的程序结构图。这一方法对输入、输出数据结构明确的中小型系统特别有 效,如商业应用中的文件表格处理。该方法也可与其它方法结合,用于模块的详细设计。 3 面向问题的分析法 p a m ( p r o b l e ma n a l y s i sm e t h o d ) 是8 0 年代末由日立公司提出的一种软件开发方法。 它的基本思 想是考虑到输入、输出数据结构,指导系统的分解,在系统分析指导下逐步综合。这一方法的具体步骤 是:从输入、输出数据结构导出基本处理框;分析这些处理框之间的先后关系;按先后关系逐步综合处 理框,直到画出整个系统的p a d 图。这一方法本质上是综合的自底向上的方法,但在逐步综合之前已 9 董兰垫丝墼堡望尘些篁皇至篁塑壅 进行了有目的的分解,这个目的就是充分考虑系统的输入、输出数据结构。p a m 方法的另一个优点是 使用p a d 图。这是一种二维树形结构图,是到目前为止最好的详细设计表示方法之一。

温馨提示

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

评论

0/150

提交评论