实用型系统软件架构的简易设计

上传人:wt****50 文档编号:33646292 上传时间:2018-02-16 格式:DOC 页数:22 大小:55KB
返回 下载 相关 举报
实用型系统软件架构的简易设计_第1页
第1页 / 共22页
实用型系统软件架构的简易设计_第2页
第2页 / 共22页
实用型系统软件架构的简易设计_第3页
第3页 / 共22页
实用型系统软件架构的简易设计_第4页
第4页 / 共22页
实用型系统软件架构的简易设计_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《实用型系统软件架构的简易设计》由会员分享,可在线阅读,更多相关《实用型系统软件架构的简易设计(22页珍藏版)》请在金锄头文库上搜索。

1、 实用型系统软件架构的简易设计与实现摘 要:文章阐述了简易实用型 web 浏览企业应用网络系统软件框架模型的创建和层次结构,分析了它的主要科技含量,指出了它的巨大优势和市场潜力,说明了编程实现的重要技术环节,并列举了具体的实践应用。这种软件框架建模与实现:高效,简便,实用,易行。关键词:领域驱动设计 ddd;对象关系映射 orm;控制反转ioc;依赖注入 di;面向方面编程 aop;工作单元 unitofwork;实体框架;窗口通信基础 wcf;窗口展现基础 wpf【abstract】the paper expoundsthe creation and layer-structure abou

2、t 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 pe

3、rformance, 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 foundation0 引 言一般的 web 浏览器企业应用网络软件

4、系统,常常采用业务数据库与 b/s(brower/server)三层软件架构的形式,虽然易于软件设计和编程实现,但是维护和升级起来十分麻烦,很多时候不得不重新做起,更别提系统扩展了。这种体系,概念混淆,术语混乱,框架与模式僵化,设计与代码很难理解,sql(structured query language)运用繁琐,编程工作量大,软件制作效率低下,对于小中型企业系统还勉强凑合,对于中大型企业系统就根本行不通了。现代 web 浏览器企业网络软件系统设计,迫切需要高效、实用、架构简单、易于实现、编程自动化程序高、无关数据库设计的多层次通用性系统软件体系。可以灵活运用“领域驱动设计ddd(domai

5、n drive design)”的编程思想,结合新出现的现代软件设计工具,达到这些目的,使项目软件设计集中到具体的“业务行为逻辑实现”和“前端页面丰富”方面,通过软件自动架构的方式,保证系统软件设计的极大简化高效和运行的最大稳定可靠,同时最低化维护成本并最强化系统的可扩展性。1 总体规划设计思想根据领域驱动设计的思想,结合新出现的现代软件设计工具插件,采用分层架构的做法,围绕具体的业务逻辑,面向对象进行 分析与设计,可以建立如图 1 所示的以业务领域为中心的四层基本典型 web 浏览器企业应用网络软件系统框架模型。四层基本系统软件层次从上到下依次是:表现层、服务层、领域模型层和基础框架层。表现

6、层主要通过用户界面向用户展示必要的数据信息,同时接收用户的反馈。服务层提供对“领域模型层”业务的封装,通过网络或接口向表现层暴露粗粒度的业务服务。领域模型层主要是展现业务领域的行为逻辑、业务处理状态以及实现业务的规则,同时也包含了领域对象的状态信息。该层是整个应用程序的核心部分,它可以包含的概念和内容有:实体(entities)、 “值”对象(value objects)、领域服务(domain services)、仓储契约/接口(repository contracts/interfaces)等。基础结构层为应用程序的数据存取提供服务,它可以是应用程序本身的持久化机制,也可以是外部系统提供数

7、据访问的 web service 等。它提供了能被其它各层访问的通用技术框架,比如异常捕获与处理、日志、认证、授权、验证、跟踪、监视、缓存等。这些操作通常会横向散布在应用程序的各个层面,面向方面编程aop(aspect oriented programming)关注的就是如何在不影响对象本身处理逻辑的基础上来实现这些横切的却又必不可少的功能 点。实践中通过使用一些流行的拦截(interception)框架(如microsoft unity、castle dynamicproxy 等)可以方便地实现aop。按照领域驱动设计的思想,领域模型建立在服务层中,能够更好地应对复杂与不断扩展的大型企业软件

8、应用需求,而实际应用中更多的是繁琐并不特别复杂的业务领域行为逻辑,把“领域模型”独立一层,即保持了领域驱动设计的复杂应对与业务扩展的优势,又可以加速软件体系的运行效率。对于中小企业应用,这四个层次就足够了,对于业务领域的拓展和中大企业的应用,还可以把“领域模型层”展开为若干个层次,将基本的四层框架扩展 n 层框架。整个软件框架模型,能大能小,适应性更强大了。还可以在基础结构层采用依赖注入 ioc(称“控制反转”)、工作单元、缓冲操作等技术,在“领域模型层”所在 orm 框架中使用实体框架(entity framework)、hibernate 等技术,在服务层选用窗口通信基础 wcf(wind

9、ows communication foundation)、spring等技术,在应用层窗口展现基础 wpf(windows presentation foundation)、struts ii 等技术,规范编程,实现软件的大部分自动架构,提高软件的执行效率,做到即用数据库又与数据库无关。选用这种 web 浏览器企业应用网络系统软件模型,项目软件设计就可以集中到具体的“业务行为逻辑实现”和“前端页面丰富” 上面了。2 新软件体系科技分析2.1 框架模型的技术应用架构的新软件体系,采用的主要新技术如下:2.1.1 数据库动态生成技术和 orm 框架对于 应用,采用新版的 entity fram

10、ework 4.1 实体框架,进行 code-first/model-first 编程,实现数据库从代码生成,大大提升开发阶段数据库应对业务的变化能力;对于 j2ee 应用,可以采用类似的 hiberate 技术。同时采用 orm 框架,隐藏数据访问的细节,使数据库交互变得简单易行,并且完全不用考虑具体的 sql 语句应用,从而实现快速开发,避免因 sql 操作而引发的各种人为问题。2.1.2 一致的网络通信服务应用对于 应用,服务层采用 wcf,实现业务功能在网络传输的能力,为多客户端应用场合提供统一的服务接口,避免了重复开发,使移动或固定简易终端、个人计算机终端等能够连网的客户端都可以访

11、问统一的服务地址,实现系统服务的一致性;对于j2ee 应用,可以采用功能强大的 spring。2.1.3 面向方面编程 aop 应用对于 应用,采用微软企业库的 policyinjection 模块来实现 aop。对于 j2ee 应用,采用集成有 aop 的 spring。aop 和 ioc 是进行逻辑分离和降低耦合度最主要的方式。aop 技术,剖解封装的对象内部,将影响多个类的公共行为封装为一个可重用模块,并将其名为“方面(aspect)” 。它把软件系统分为两个部分:核心关注点和横切关注点。业务处理的主要流程是核心关注点,与之关系不大的部分是横切关注点。横切关注点,经常发生在核心关注点的

12、多处,而各处都基本相似。通过 aop 技术,实现了诸如日志、事务管理、权限控制等横切关注点的通用逻辑,可以专注于核心关注点,将精力投入到解决企业的商业逻辑上来。同时这些封装好了的横切关注点提供的功能可以最大限度地复用于业务逻辑的各个部分,既不需开发人员作特殊的编码,也不因修改横切关注点的功能而影响具体的业务功能。2.1.4 依赖注入及其实现分层架构的设计,层与层之间是松散耦合的,上层不会具体依赖于下层,只依赖于它的一个接口。这样,上层不能直接实例化下层中的类,而只持有接口;接口所指变量最终究竟是哪个类,则由依赖注入机制决定。对于 应用,采用微软的unity2.0 实现依赖注入,它包括控制反转

13、 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或 silverligh

14、t;对于 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 和 policyinject

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号