关闭

关闭

关闭

封号提示

内容

首页 【doc】基于模式的多层分布式软件系统架构的设计.doc

【doc】基于模式的多层分布式软件系统架构的设计.doc

【doc】基于模式的多层分布式软件系统架构的设计.doc

上传者: 伤心得到讲不出再见 2017-11-18 评分 0 0 0 0 0 0 暂无简介 简介 举报

简介:本文档为《【doc】基于模式的多层分布式软件系统架构的设计doc》,可适用于高等教育领域,主题内容包含【doc】基于模式的多层分布式软件系统架构的设计基于模式的多层分布式软件系统架构的设计第卷f第期l计算机工程ComputerEngineering年符等。

【doc】基于模式的多层分布式软件系统架构的设计基于模式的多层分布式软件系统架构的设计第卷f第期l计算机工程ComputerEngineering年月July软件技术与数据库文章编号:oo(o)咖so文献标识码:A中圈分类号:TP基于模式的多层分布式软件系统架构的设计阮军,杨春金(武汉理工大学信息工程学院,武汉)奠要:软件架构的复用是大型软件生产的必然要求该文讨论了一种基于模式的软件架构,它是在Borland的DataSnap技术的基础上建立起来的多层分布式架构在此方案中使用扩展的门面模式封装业务逻辑层,使用双对象池对远程数据模块进行优化关翻:模式架构多层分布式面向对象编程DesignofMultitieredDistributedSoftwareArchitectureBasedonPatternsRUANJun,YANGChunjin(SchoolofInformationEngineering,WuhanUniversityofTechnology,Wuhan)IAbStractlSoftwarereuseforsoftwarearchitectureisacertaindemandonmassproductionofsoftwareforcomputersThispaperdiscussesasoftwarearchitecturebasedonpatterns,whichisamultitiereddistributedsystem’SstructurebytechniqueofBorlandDataSnapInthisscheme,businesslogiclayerisencapsulatedbyanexpanded”Facade”andremotedatamoduleisoptimizedbyusingtwoobjectpoolingKeywordslPatternsArchitectureMultitiereddistributedstructure,OOP在现代软件工程中,软件复用已经成为一个主要目标低层次的代码复用通过面向对象的编程语言已成为现实,但是它已经不适合于特定领域大型软件生产的需求为了提高软件生产过程的复用力度,不仅要重用旧的代码,而且要复用相似的分析设计结果和体系结构,以减少构造新软件系统的代价并提高软件的可靠性而架构(Architecture)通常是指可预制和可重构的软件框架结构,就属于这种复用技术它是对协作完成一系列相关责任的类或接I:集合的抽象设计架构与模式模式(Pattern)是软件工程专家在软件开发过程中积累的,能够指导开发实践,提高设计质量和效率的规范化方法当专家求解一个特殊问题时,他们一般不是立即发明一种与已有解决方案完全不同的方案,通常是直接利用或改进现成的设计方法来解决新的问题,即复用已有的模式正如有人所说的,”模式好比是充满真知灼见的命名了的金块,它是被验证的解决方案的精华所在,该方案解决与某个计算有关的场景中重复发生的问题”本设计方案采用和借鉴了大量的模式,从广义上可以将模式分为大类:()架构模式(ArchitecturalPatterns)为模式中的最高层次,它描述了软件系统里的基本的结构组织或纲要,通常提供一组事先定义好的子系统,指定它们的责任,并给出把它们组织在一起的法则和指南,见图()设计模式(DesignPattern)提供了一个用于细化软件系统的子系统或组件,或它们之间的关系的纲要它的规模比架构模式小,并且一个架构模式常常可以分解成很多个设计模式以便联合使用例如,本方案中涉及到的有:)FactoryMethod工厂方法模式:将创建对象的责任委托给派生类业务逻辑层kint爵face~:rIM~tnager’TRoad(业务扩展)TWarehollseD数据存取层lTISysternModulelet|一(nace二=z了rJTSystemModulel(:=一TDataPipeFactory卜一一一一一叫TDataPipe臣圄圄圄图架糟崎层次模基)Facade门面模式:为子系统中的一组接口提供一个统一的门面供外部对象访问)Flyweight享元模式:使用共享的方式有效支持大量细粒度的作者筒介:阮军(一),男,讲师,博士生,主研方向:信息传输与处理,人工智能杨春金,副教授收穑日期:Emall:justinruancom一一篓,对象)Mediator中介者模式:定义一个对象封装一组对象及彼此问互动的方式()实现模式(ImplemenlafjonPattern)描述了使用给定语言的特征来实现组件的特定方面或它们之间关系的方法它关注设计和实现方面,包括命名规则,异常处理的规则等模式是一个从经验中提取的”准则”,并在一次次的实践中得到验证,在不同的层次有不同的模式,提供不同层面的指导本方案采用Layers(层)的架构模式作为具体软件体系结构的模板使用和借鉴创建型,结构型和行为型设计模式完成各层中相关的类和接口的设计而实现系统中具体的实现模式不是本文讨论的重点架构方案概要客户端服务器(ClientServer,cs)软件体系结构在世纪年代以后逐渐成熟起来,而多层CS结构是对传统的CS结构的一种改进,目前也在大量的实用系统中广泛地使用起来,并常与BS(浏览器服务器)模式结合使用,实现产品线的继承性,实用性,先进性与可扩展性因此,对于多层可复用的CS架构的研究目前仍然是不可或缺的不仅如此,”层”模式作为一种设计思想,”上层使用下层提供的服务,且仅通过调用层次问的特定接口获取下层服务下层暴露特定接口为上层提供特定服务,且不依赖于上层,也不知道上层的存在”,使得模块重用性,程序可维护性,物理分布的灵活性以及开发的并行性得到保证和提高,这也是它在业内根深蒂固,成为最广泛使用的软件体系结构的原因本架构方案也选用多层分布式模式,采用Delphi的DataSnap技术(也就是以前Delphi中的MIDAS技术)本架构共分为层,其总体结构如图所示()界面表示层:处理系统与用户的交互()业务逻辑层:处理系统内部模块之问的交互,以及处理实际的业务规则,包括进行逻辑判断,执行流程处理,计算或提供预定义的服务()数据存取层:专门处理业务逻辑层与数据存储层之问的数据交互操作,提供上层访问所需数据的手段,包括数据添加,修改,删除等操作()数据存储层:提供业务逻辑层所需的所有信息和数据本架构方案在本研究室开发的”高速公路综合管理系统”系列产品中广泛应用本文主要就业务逻辑层和数据存取层的设计加以讨论业务逻辑层的设计业务逻辑层主要处理系统内部模块之间的交互,并提供对上层提供系统运行状态与业务数据等的支持,以及处理实际的业务规则业务逻辑层主要包含个主要组件集,其构成如下:()Manager组件集:完成对整个业务逻辑层的封装,是其它种组件集实例的拥有者,对其它种组件集进行协调与管理它由类TManager及其子类,接口IManager,ILinkWork组成采用门面模式Manager组件所采用的门面模式实际上是双层的门面模式第l层是TManager与它支持的接口Imanager所组成的门面,它将客户端应用程序中包含最通用功能的多个内部模块封装到内部,通过接口IManager提供内部模块互调的支持,并隔离内部模块对TManager的依赖第层是TManager的子类TManagerA与接口ILinkwork所组成的门面,其中一一TManagerA将不同应用程序所需要的业务相关的数据与功能封装到门面之内,通过接口Ilinkwork向系统中的窗体提供系统级的功能支持,实现TmanagerA对外的过滤,并隔离MDI子窗体与主窗体对TManager的依赖,如图所示图TManager结构()Controller组件集:主要实现对运行期问客户端窗体的生成与释放进行的监视和管理它由抽象类TController及其具体子类组成,采用从抽象类继承的两层结构()Producer组件集:主要管理客户端各子窗口的类信息,并聚合类TFormFactory实现客户端各子窗口的生成它由抽象类TProducer及其子类,以及类TFormFactory所组成其中类TFormFactory采用参数化的工厂方法模式()Linkman组件集:主要负责实现子窗口之间的互动与简单数据传输它由抽象类TLinkman及其子类,以及类TCommand所组成其中TLinkman采用中介者模式()Guard组件集:主要实现客户端系统功能权限认证,管理用户权限数据它由抽象类与具体类组成两层的实现继承的结构()Warehouseman组件集:主要实现对远程数据模块(数据存取层)的远程调用它主要使用DataSnap技术,由抽象类TWarehouseman及其两级子类,以及聚合TDCOMConnection,TWebConnection,TSOCKConnection等Delphi组件组成,如图从抽象类TWarehouseman继承而来的第级子类实现对DCOM,HTTP,SOCK种连接方式的封装i口TWafehouseman毫四TCustom”~arehouseman目TWafehousemanD目TWafehousemanS目TWafehouseman”~,图Warehouseman类圈总之,通过双层门面Tmanager的封装,不仅完成业务逻辑层与界面表示层的分离,而且使业务逻辑层中稳定的部分(应用程序运行所需的,通用的,固有的部分)与时常变化的部分(应用程序所涉及的,具体的业务相关的部分)实现分离数据存储层的组成数据存储层是在Borland的DataSnap技术基础上建立的,位于系统的服务器端,提供对客户端的全动态支持利用MIDAS中间件创建应用服务器的远程数据模块(RemoteDataModule),客户端应用系统中TclientDataSet的实例通过接口IappServer访问远程数据模块RDM中动态生成的数据集TSQLDataSet的实例,实现远程的数据查询,增加与修改因此,数据存储层是基于DataSnap技术和使用dbExpress组件的构件由于RDM的结构本身就是采用了门面模式,因此在本方案中从TremoteDataModule派生出来的的远程数据模块TsystemModule也采用了门面模块,客户端通过IsystemModule访问数据模块内部对于远程数据模块RDM,由于DataSnap的RDM支持对象池(ObjectPooling)技术,使用该技术能够实现RDM实例的共享和重用,避免因每个客户首次连接RDM时都新建一个实例而造成重复的内存分配和数据库的连接,有效地提高了应用服务器的性能对于RDM的内部,客户端的TclientDataSet的实例访问数据库时需要RDM中的一对TSQLDataSet与TdataSetProvider的实例提供数据存取的支持在本方案中选用当客户端的TclientDataSet的实例访问数据库时,RDM动态生成TSQLDataSet与TdataSetProvider的实例对为客户端服务这样不仅方便服务器端的调试,也使远程数据模块具有很强的适应性和灵活性除此以外,本方案为RDM内部的TSQLDataSet与TdataSetProvider的实例对的生成与释放也引入了对象池技术,有效地提高了应用服务器的性能本方案中RDM内部对象池的实现采用了享元模式(Flyweight),如图一方面,将一对TSQLDataSet与TdataSetProvider的实例用类TdataPipe进行封装(聚合),而TdataPipe是从Ttimer(定时器)派生而来的当TdataPipe的实例DataPipe被客户端使用时,定时器禁止当DataPipe被客户端释放后并不是马上从内存中释放资源,而是首先启动定时器,如果在定时时间到达以前该DataPipe一直没有被再次激活,则在定时时间到时释放该DataPipe另一方面,将TdataPipe对象集合的状态数据封装在RDM中,由类TdataPipeFactory根据当前TdataPipe对象集合的状态数据选择是激活一个已存在的TdataPipe对象还是新建一个TdataPipe对象结合DataSnap所提供的已有的对象池,本架构方案给出了一个双对象池的实现(上接第页)实验结果及讨论实验使用了lMB内存的PIIIMHZPC,立体图像对使用了Tsukuba图像对(图l所示)验证算法的有效性和可行性,图分别给出了采用像素灰度值和Walsh系数特征作为匹配基元的SSD算法得到的视差图,都采用了的匹配窗M,最大视差为l其中图(a)为真实视差图,图(b)为采用像素灰度值为匹配基元的SSD算法得到的视差图,图(c)为采用Walsh系数特征为匹配基元的SSD算法得到的视差图,由实验结果可以看出,采用Walsh系数作为匹配基元得到的视差图相对更平滑,精确(a)真实视差圈墨(b)视差图(c)视差图图实验结果TRemoteDataModuleIAppServer…aceTSystemMoudJeTFimerf,,,,,,TDataPipeFactoryTDataPipeattributesattributesSuspendCount:IntegerDataSet:TSQLDataSetOperationsPipeNo:lntegerProvider:DataSetProvidercreateNew()Suspended:BoolemlDestroyOperationsGetDataPipe():IntegerCreateNew(),DestroycreateDataSetProvider(…):Integer,jResnmeSuspendremainate图远程j|【据楱块的类图结束语模式提供了一个功能行为的基本骨架,有助于建立一个复杂的架构每个模式提供组件,作用以及相互关系的模板使用这些模板可以提高设计的速度与质量理解并应用现成的模式使自己的方案得到一个较高的起点,节省了大量的时间在实践中,本研究室开发的”高速公路综合管理系统”系列产品大量使用此架构来提高程序建造的效率与质量参考文献I刘炜,房鼎益陈晓江面向模式的分布式软件构架可视化建模…计算机工程,,I():一刘艺Delphi模式编程M北京:机械工业出版社,祝建中基于MIDAS的多层分布式系统负载平衡和容错研究…计算机工程,,():陈文丽,周景用MIDAS开发多层分布式应用系统…科技情报开发与经济,,(I):由图可以看到,l,阶系数中的任意一阶Walsh系数都可以作为匹配基元,另外,Walsh系数的正负变化产生可以产生零交叉点,这也是一个很重要的特征,可以作为特征匹配的一个匹配基元,也可以作为约束条件应用到匹配中,这也是以后要研究的问题之一参考文献I章毓晋图像工程M北京:清华大学出版社,AhmedN,RaoKR,O~hogonalTransformsforDigitalSignalProcessingMNewYork:Springerverlag,GonzalezRCWintzPDigitalImageProcessing(Edition)MMassachusetts:AddisonWesley,BeauchampKCApplicationofWalshandRelatedFunctionsMOrlando:AcademicPress,MartinRR,AnguhMMQuadtrees,TransformsandImageCodingJComputerGraphicsForum,Noahholland,I,O():

职业精品

用户评论

0/200
    暂无评论

精彩专题

上传我的资料

热门资料

资料评价:

/13
0下载券 下载 加入VIP, 送下载券

意见
反馈

返回
顶部