分享
2023年实用型系统软件架构的简易设计.doc
下载文档

ID:1271656

大小:44KB

页数:21页

格式:DOC

时间:2023-04-19

收藏 分享赚钱
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
2023 实用型 系统软件 架构 简易 设计
实用型系统软件架构的简易设计与实现 摘 要:文章阐述了简易实用型web浏览企业应用网络系统软件框架模型的创立和层次结构,分析了它的主要科技含量,指出了它的巨大优势和市场潜力,说明了编程实现的重要技术环节,并列举了具体的实践应用。这种软件框架建模与实现:高效,简便,实用,易行。 关键词:领域驱动设计ddd;对象关系映射orm;控制反转ioc;依赖注入di;面向方面编程aop;工作单元unitofwork;实体框架;窗口通信根底wcf;窗口展现根底wpf 【abstract】the paper expoundsthe creation and layer-structure about a simple and practicable net-system- software-frameworkmodule of web-browser-enterprise-application. it analyzes main science-technology content. it point out thegreat advantage and marketpotential. it illustrates important programing links and lists a detailed example. the module feature: high performance, practicable, simple and easy to use. 【key words】domain drive design; object relational mapping; inversion of control; dependence injection; aspect oriented programming; unit of work; entity framework; windows communication foundation; windows presentation foundation 0 引 言 一般的web浏览器企业应用网络软件系统,常常采用业务数据库与b/s(brower/server)三层软件架构的形式,虽然易于软件设计和编程实现,但是维护和升级起来十分麻烦,很多时候不得不重新做起,更别提系统扩展了。这种体系,概念混淆,术语混乱,框架与模式僵化,设计与代码很难理解,sql(structured query language)运用繁琐,编程工作量大,软件制作效率低下,对于小中型企业系统还勉强凑合,对于中大型企业系统就根本行不通了。现代web浏览器企业网络软件系统设计,迫切需要高效、实用、架构简单、易于实现、编程自动化程序高、无关数据库设计的多层次通用性系统软件体系。可以灵活运用“领域驱动设计ddd(domain drive design)〞的编程思想,结合新出现的现代软件设计工具,到达这些目的,使项目软件设计集中到具体的“业务行为逻辑实现〞和“前端页面丰富〞方面,通过软件自动架构的方式,保证系统软件设计的极大简化高效和运行的最大稳定可靠,同时最低化维护本钱并最强化系统的可扩展性。 1 总体规划设计思想 根据领域驱动设计的思想,结合新出现的现代软件设计工具插件,采用分层架构的做法,围绕具体的业务逻辑,面向对象进行分析与设计,可以建立如图1所示的以业务领域为中心的四层根本典型web浏览器企业应用网络软件系统框架模型。 四层根本系统软件层次从上到下依次是:表现层、效劳层、领域模型层和根底框架层。 表现层主要通过用户界面向用户展示必要的数据信息,同时接收用户的反响。 效劳层提供对“领域模型层〞业务的封装,通过网络或接口向表现层暴露粗粒度的业务效劳。 领域模型层主要是展现业务领域的行为逻辑、业务处理状态以及实现业务的规那么,同时也包含了领域对象的状态信息。该层是整个应用程序的核心局部,它可以包含的概念和内容有:实体(entities)、“值〞对象(value objects)、领域效劳(domain services)、仓储契约/接口(repository contracts/interfaces)等。 根底结构层为应用程序的数据存取提供效劳,它可以是应用程序本身的持久化机制,也可以是外部系统提供数据访问的web service等。它提供了能被其它各层访问的通用技术框架,比方异常捕获与处理、日志、认证、授权、验证、跟踪、监视、缓存等。这些操作通常会横向散布在应用程序的各个层面,面向方面编程aop(aspect oriented programming)关注的就是如何在不影响对象本身处理逻辑的根底上来实现这些横切的却又必不可少的功能点。实践中通过使用一些流行的拦截(interception)框架(如microsoft unity、castle dynamicproxy等)可以方便地实现aop。 按照领域驱动设计的思想,领域模型建立在效劳层中,能够更好地应对复杂与不断扩展的大型企业软件应用需求,而实际应用中更多的是繁琐并不特别复杂的业务领域行为逻辑,把“领域模型〞独立一层,即保持了领域驱动设计的复杂应对与业务扩展的优势,又可以加速软件体系的运行效率。对于中小企业应用,这四个层次就足够了,对于业务领域的拓展和中大企业的应用,还可以把“领域模型层〞展开为假设干个层次,将根本的四层框架扩展n层框架。整个软件框架模型,能大能小,适应性更强大了。 还可以在根底结构层采用依赖注入ioc(称“控制反转〞)、工作单元、缓冲操作等技术,在“领域模型层〞所在orm框架中使用实体框架(entity framework)、hibernate等技术,在效劳层选用窗口通信根底wcf(windows communication foundation)、spring等技术,在应用层窗口展现根底wpf(windows presentation foundation)、struts ii等技术,标准编程,实现软件的大局部自动架构,提高软件的执行效率,做到即用数据库又与数据库无关。 选用这种web浏览器企业应用网络系统软件模型,项目软件设计就可以集中到具体的“业务行为逻辑实现〞和“前端页面丰富〞上面了。 2 新软件体系科技分析 2.1 框架模型的技术应用 架构的新软件体系,采用的主要新技术如下: 2.1.1 数据库动态生成技术和orm框架 对于应用,采用新版的entity framework 4.1实体框架,进行code-first/model-first编程,实现数据库从代码生成,大大提升开发阶段数据库应对业务的变化能力;对于j2ee应用,可以采用类似的hiberate技术。同时采用orm框架,隐藏数据访问的细节,使数据库交互变得简单易行,并且完全不用考虑具体的sql语句应用,从而实现快速开发,防止因sql操作而引发的各种人为问题。 2.1.2 一致的网络通信效劳应用 对于应用,效劳层采用wcf,实现业务功能在网络传输的能力,为多客户端应用场合提供统一的效劳接口,防止了重复开发,使移动或固定简易终端、个人计算机终端等能够连网的客户端都可以访问统一的效劳地址,实现系统效劳的一致性;对于j2ee应用,可以采用功能强大的spring。 2.1.3 面向方面编程aop应用 对于应用,采用微软企业库的policyinjection模块来实现aop。对于j2ee应用,采用集成有aop的spring。aop和ioc是进行逻辑别离和降低耦合度最主要的方式。aop技术,剖解封装的对象内部,将影响多个类的公共行为封装为一个可重用模块,并将其名为“方面(aspect)〞。它把软件系统分为两个局部:核心关注点和横切关注点。业务处理的主要流程是核心关注点,与之关系不大的局部是横切关注点。横切关注点,经常发生在核心关注点的多处,而各处都根本相似。通过aop技术,实现了诸如日志、事务管理、权限控制等横切关注点的通用逻辑,可以专注于核心关注点,将精力投入到解决企业的商业逻辑上来。同时这些封装好了的横切关注点提供的功能可以最大限度地复用于业务逻辑的各个局部,既不需开发人员作特殊的编码,也不因修改横切关注点的功能而影响具体的业务功能。 2.1.4 依赖注入及其实现 分层架构的设计,层与层之间是松散耦合的,上层不会具体依赖于下层,只依赖于它的一个接口。这样,上层不能直接实例化下层中的类,而只持有接口;接口所指变量最终究竟是哪个类,那么由依赖注入机制决定。对于应用,采用微软的unity2.0实现依赖注入,它包括控制反转ioc、di(dependence injection)和拦截技术。对于j2ee应用,可以采用含有ioc等功能的spring。 2.1.5 前端页面的丰富绚丽 为使前端网页界面丰富绚丽,可以采用通用的js(java script)、jquery、ajax、div(division) + css(cascading style sheet)、as(actionscript)-flash等技术实现导航、布局、感觉、视觉、动画、立体及其人机操作的简便和快捷。对于应用,还可以采用功能强大的ria(rich internet applications)---wpf或silverlight;对于j2ee应用,还可以采用功能强大的struts ii。 2.2 可能的技术应用与替代 数据库访问局部,采用了orm框架有更多的选择:如应用的nhibernate、simple.data等,j2ee应用的ibatis等;中小型企业软件的开发,应用也可以使用传统的,j2ee应也可以使用传统的jdbc(java data base connectivity)。 网络访问局部,应用,除了采用较多的标准wcf技术,还可以根据系统的规模采用web service等其它替代方案;j2ee应用也可以使用传统的url(uniform resoure locator)定位、socket套接。 可重用模块局部,如日志、异常及验证等,应用,除了采用“微软企业库〞提供的一致功能,也可以为每一模块采用一些技术框架,如log4net日志模块等,甚至自己开发。 ioc/aop局部也有较多替代方案,应用,除了微软企业库unity和policyinjection,也可以使用castle windsor、、autofac等技术。j2ee应用的选项就更多了。 新软件体系架构,还有很强的预留和伸缩空间,可以轻易更换或参加将来出现的众多的简便自开工具软件,实现自身的丰富完善和功能扩展。 3 新软件体系优势分析 新软件体系架构,降低了系统开发的复杂度,在设计、开发、测试、部署及维护等各个环节为应用系统带来了高可用性、高延展性等正面效应,其巨大优势概括如下: 1〕提高了系统的可测试性:多层架构,层与层之间是低耦合的,增加了各层的独立性,也提高了可测试性,这样开发出来的系统更加健壮。 2〕简单化了解决方案的维护和管理:层内高内聚、层间低耦合的结构,使得系统实现与分层组织方式变得非常灵活方便,维护和管理的直接、高效,显而易见。 3〕增加了系统的可移植性:企业软件开发中,许多模块都是可通用的,如日志、异常、缓存、验证模块等。通过分层,很容易别离出通用模块,便于迅速应用到其它的项目,展现了模板化的组织架构。 4〕数据库由编码自动生成:软件框架采用最新的数据库自动操作技术,并融入orm机制,实现了从代码生成数据库的强大功能,即使开发测试阶段的数据库也可以很容易地应对业务的变化,大大提高了开发效率。 5〕能够

此文档下载收益归作者所有

下载文档
你可能关注的文档
收起
展开