专利名称:一种网络系统软件体系框架及其实现方法
一种网络系统软件体系框架及其实现方法
技术领域:
本发明展现了一种网络系统软件体系框架及其实现方法,主要用于信息技术IT(InformationTechnology)行业各种类型的企业应用网络系统软件的快速高效开发设计,应用领域包括各类物联网系统、车联网系统、医疗/交通/安防监控系统、智能家居系统、电子商务/政务系统、购物消费/查询支付系统、金融证券交易系统、企业/部门管理系统、网络教育系统、工农业过程检测控制系统、航天测控系统、军事指挥/设备监控系统等方面。
背景技术:
一般的Web浏览器企业应用网络软件系统,常常采用业务数据库与浏览器B/服务器S (Brower/Server)三层软件架构的形式,虽然易于进行软件设计和编程实现,但是维护和升级起来十分麻烦,很多时候不得不重新做起来,更别提系统扩展了。这种体系,概念混淆,术语混乱,框架与模式僵化,设计与代码编制很难理解,数据库构造工作量大,结构化查·询语言SQL (Structured Query Language)运用繁琐,编程工作繁重,软件制作效率低下,对于小中型企业系统还勉强凑合,对于中大型企业系统就根本行不通了。现代Web浏览器企业网络软件系统设计,迫切需要高效、实用、架构简单、易于实现、编程高度自动化、无关数据库设计的多层次通用性系统软件体系。本发明灵活运用“领域驱动设计DDD (Domain Drive Design) ”的编程思想,合理组合新出现的现代软件设计工具,通过系统软件体系架构工具的设计及其快速交互应用,实现了上述现代Web浏览器企业网络系统软件设计的迫切需求,能够迅速使项目软件设计集中到具体的“业务行为逻辑实现”和“前端页面丰富”方面,以软件自动架构的方式,保证了系统软件设计的极大简化高效和运行的最大稳定可靠,同时最低化维护成本并最强化系统的可扩展性。
发明内容I系统软件体系框架设计根据领域驱动设计DDD的思想,综合运用新出现的现代软件设计工具插件,采用分层架构的做法,围绕具体的业务逻辑,面向对象进行分析与设计,可以建立如图I所示的以具体应用逻辑业务领域为中心的四层基本典型Web浏览器企业应用网络软件系统框架懸。四层基本系统软件层次从上到下依次是表现层、服务层、领域模型层和基础框架层。表现层(Presentation Layer)主要通过友好的用户界面UI (User Interface)向用户展示系统软件体系必要的数据信息,同时接收用户的输入干预反馈。服务层(Service Layer)提供对“领域模型层”业务的封装,通过网络或接口向“表现层”暴露粗粒度的逻辑业务服务。
领域模型层(Domain Model Layer)主要是展现业务领域的行为逻辑、业务处理状态以及实现业务的规则,同时也包含了领域对象的状态信息。领域模型层是整个应用程序的核心部分,它可以包含的概念和内容有实体(Entities)、“值”对象(Value Objects)、领域服务(Domain Services)、仓储契约 / 接口(Repository Contracts/Interfaces)等。基础框架层(Infrastructure Layer)为“服务层”和“表现层”内的应用程序的数据存取提供服务,它可以是应用程序本身的“持久化访问”机制,也可以是外部系统提供数据访问的Web浏览服务(Web Service),等。它提供了能被其它各层访问的通用技术框架,比如异常的捕获与处理、日志、认证、授权、验证、跟踪、监视、缓存之一或组合。这些操作通常会横向散布在应用程序的各个层面,面向方面编程AOP (Aspect Oriented Programming)关注的就是如何在不影响对象本身处理逻辑的基础上来实现这些横向的却又必不可少的功能点。应用实践中通过具体使用一些流行的拦截(Interception)框架(如MicrosoftUnity> Castle DynamicProxy等)可以方便地实现AOP思想。按照领域驱动设计的思想,领域模型通常建立在服务层中,这样能够更好地应对复杂与不断扩展的大型企业软件应用需求,然而实际应用中更多的是繁琐并不特别复杂的 业务领域行为逻辑,把“领域模型”独立一层,既保持了领域驱动设计的“复杂应对与业务扩展”的优势,又可以加速软件体系的运行效率。一般说来,对于中小企业的软件开发应用,这四个层次就足够了 ;对于业务领域的拓展和中大企业的软件开发应用,还可以对“应用领域内业务逻辑行为的类型”细化,进一步把“领域模型层”展开为若干个层次,将基本的四层框架扩展N层框架。如此,整个软件框架模型,能大能小,适应性更强大。此外,还可以在基础框架层采用“依赖注入IoC(Inversion of Control) ”(通常称为“控制反转”)、工作单元(Unit of Work)、缓冲操作(Cache Manager/Process)等软件技术,使“领域模型层”上连服务接口 /下接仓储进而通过实体框架(EntityFramework)、Hibernate等通信数据库,在“服务层”选用窗口通信基础WCF(WindowsCommunication Foundation)、“服务分层架构”Spring等技术,在“表现层”采用“窗口展现基础 WPF”(Windows Presentation Foundation)、“快速 Web 应用”Struts II 等技术,更进一步规范编程,实现软件框架代码编制的大部分自动架构,提高软件的执行效率,做到既用数据库又与数据库无关,减少人工编程带来的多数负面影响。选用这种Web浏览器企业应用网络系统软件模型,系统软件项目设计就可以集中到具体的“业务行为逻辑实现”和“前端页面丰富”上面了。在此基础上更进一步,结合ActiveX或者Applet技术,进行“瘦客户端应用”,“本地化” “服务层”的服务,还可以最大限度地简化设计、测试、部署及维护等各个环节。2新软件体系科技说明2. I框架模型的技术应用架构的新软件体系,采用的主要新技术如下I)数据库动杰牛成技术和ORM框架对于C#_ASP. NET应用,在“基础框架层”内采用新版的实体框架EntityFramework4. I持久化访问技术,进行code-first/model-first编程,实现数据库从代码生成,大大提升开发阶段数据库应对业务的变化能力;对于Java_J2EE应用,在“基础框架层”内采用类似的Hiberate-Ant-xDoclet持久化访问技术。同时在“基础框架层”内采用“目标对象映射ORM”(Object Relational Mapping)框架,隐藏数据访问的细节,使数据库交互变得简单易行,并且完全不用考虑具体的SQL语句应用,从而实现快速开发,避免因SQL操作而引发的各种人为问题。数据库动态生成技术的采用和ORM框架的特点,达到了 实际数据库因业务逻辑从代码自动生成。2)常用程序代码的自动发生与实现常用程序代码段或文件,如简单静态“増/查/改/删CRUD”用户界面,可以由具体实际的“领域模型层”通过“表现层”的人机交互界面,及其相应“服务层”的服务,结合一些自动代码产生工具,快速得到。自动产生简单静态“増/查/改/删CRUD”用户界面,对于Java-J2EE 的 Eclipse-SSH/I 开发应用,可以米用 JunJava、JFrameClass 或 RapidGenerate 等软件工具;对于C#-ASP. NET的VS-EF/nH开发应用,则可以采用MVC (Module/View/Control)脚手架软件工具。常用程序代码的自动产生与实现,减少了人为错误和劳动强度,提高了编程设计的自动化程度。3) 一致的网络通信服务应用对于C#_ASP. NET应用,服务层采用WCF技术,实现业务功能的网络传输,为多客户端应用场合提供统一的服务接口,避免了重复开发,使移动或固定简易终端、个人计算机终端等能够连网的客户端都可以访问统一的服务地址,实现系统服务的一致性;对于Java-J2EE应用,服务层采用功能强大的“服务分层架构” Spring技术,实现同样的目的。一致的网络通信服务应用,达到了 接口统一,服务一致,无重复开发。4)面向方面编稈AOP应用对于C#_ASP. NET应用,在“基础框架层”内采用微软企业库的PolicyInjection模块来实现A0P。对于Java-J2EE应用,在“基础框架层”内采用集成有AOP功能的Spring技术。AOP和IoC是进行逻辑分离和降低耦合度最主要的方式。AOP技术,剖解封装的对象内部,将影响多个类的公共行为封装为一个可重用的模块,并将其名为“方面(Aspect)”。它把软件系统分为两个部分核心关注点和横向关注点。业务处理的主要流程是核心关注点,与之关系不大的部分是横向关注点。横向关注点,经常发生在核心关注点的多处,而各处都基本相似。通过AOP技术,实现了诸如日志、事务管理、权限控制等横向关注点的通用逻辑,可以专注于核心关注点,将精力投入到解决企业的商业逻辑上来。同时这些封装好了的横向关注点提供的功能可以最大限度地复用于业务逻辑的各个部分,既不需开发人员做特殊的编码,也不会因修改横向关注点的功能而影响具体的业务功能。面向方面编程AOP应用,达到了 方面重用,核心明确,使软件开发更容易集中到业务逻辑实现。5)依赖沣入及其实现分层架构的设计,层与层之间是松散耦合的,上层不会具体地依赖于下层,只是依赖于它的一个接口。这样,上层不能直接实例化下层中的类,而只持有接口 ;接口所指变量最终究竟是哪个类,则由依赖注入机制决定。对于C#-ASP.NET应用,在“基础框架层”内可以采用微软的Unity2. 0实现依赖注入,它包括控制反转IoC、依赖注入DI (DependenceInjection)和拦截技术。对于Java_J2EE应用,在“基础框架层”内可以采用含有IoC等功能的Spring技术。依赖注入及其实现,达到了 层间松散耦合,只是通过接口联系上下层。6)前端页面的丰富绚丽为使前端网页界面丰富绚丽,可以在“表现层”采用通用的JSCJava Script)、JQuery、Ajax、DIV(Division)+CSS(Cascading Style Sheet)、AS(Action Script)-Flash等技术实现导航、布局、感觉、视觉、动画、立体及其人机操作的简便和快捷。对于C#-ASP.
NET应用,还可以在“表现层”采用功能强大的RIA(Rich Internet Applications)---WPF
或Silverlight技术;对于Java_J2EE应用,还可以在“表现层”采用功能强大的Struts II技术。
前端页面的丰富绚丽,达到了 导航、布局、感觉、视觉、动画、立体。2. 2可能的技术应用与替代数据库访问部分,采用了“基础框架层”的ORM框架可以有更多的选择如C#-ASP.NET应用的nHibernate、Simple. Data等,Java_J2EE应用的iBatis等;中小型企业软件的开发,ASP. NET应用也可以使用传统的ADO. NET,J2EE应也可以使用传统的JDBC (Java DataBase Connectivity)。网络访问部分,C#_ASP. NET应用,“服务层”除了采用较多的规范WCF技术,还可以根据系统的规模采用Web Service等其它替代方案;Java_J2EE应用,“服务层”也可使用传统的 URL (Uniform Resoure Locator)定位、Socket 套接。可重用模块部分,如日志、异常及验证等,ASP. NET应用,“基础框架层”除了采用“微软企业库”提供的一致功能,也可以为每一模块采用一些技术框架,如Log4net日志模块等,甚至自己开发。IoC/AOP部分也有较多替代方案,C#-ASP. NET应用,“基础框架层”除了微软企业库 Unity 和 PolicyInjection,也可以使用 Castle ffindsor>Spring. net、Autofac 等技术。Java-J2EE应用的“基础框架层”相应选项就更多了。新软件体系架构,还有很强的预留和伸缩空间,可以轻易更换或加入将来出现的众多的简便自动工具软件,实现自身的丰富完善和功能扩展。3新软件体系优势说明新软件体系架构,降低了系统开发的复杂度,在设计、开发、测试、部署及维护等各个环节为应用系统带来了高可用性、高延展性等正面效应,其巨大优势概括如下I)提高了系统的可测试性多层架构,层与层之间是低耦合的,增加了各层的独立性,也提高了可测试性,这样开发出来的系统更加健壮。2)简单化了解决方案的维护和管理层内高内聚、层间低耦合的结构,使得系统实现与分层组织方式变得非常灵活方便,维护和管理的直接、高效,显而易见。3)增加了系统的可移植性企业软件开发中,许多模块都是可通用的,如日志、异常、缓存、验证模块等。通过分层,很容易分离出通用模块,便于迅速应用到其它的项目,展现了模板化的组织架构。4)数据库由编码自动生成软件框架采用最新的数据库自动操作技术,并融入ORM机制,实现了从代码生成数据库的强大功能,既使开发测试阶段的数据库也可以很容易地应对业务的变化,大大提高了开发效率。
5)能够对多种类型客户端提供一致功能服务具体业务应用领域中有多种终端,如手持移动操控仪、立/挂式操控台以及个人计算机。软件架构设计中通过网络边界分离服务层和表现层,就可以轻易的使这些不同类型终端,获取统一的系统功能服务。6)增强系统的可伸缩性借助于分层的优势以及架构中各部分设计的高内聚性,各层自成模块体系,互相独立;增删各个独立的模块,不会影响到其它模块或层的功能,系统的可伸缩性强大。7)实现了编码自动化,避免了人为因素影响软件框架采用了众多的网络编程新技术,实现了数据库访问的封装,日志、异常捕获以及AOP拦截等常用功能,减少了重复模块编码量,同时也避免了因人为因素导致的性能问题。4趋向于“瘦客户端”的应用新系统软件体系架构,以最大限度地简化设计、测试、部署及维护等各个环节为目 的,针对具有本地硬件的操作,趋向采用“瘦客户端”的架构,将“服务层”的服务“本地化”,即在Web浏览器中操作本地硬件。在Web浏览器中操作本地硬件,新软件体系架构,对于C#_ASP. NET的应用可以通过“ActiveX-C/C++驱动”技术实现,对于Java_J2EE/J2ME的应用可以通过“Applet-JNI-C/C++驱动”技术实现。传统的系统软件,混合应用B/S和C/S (Client/Server)体系结构,通过C/S体系在现场的客户机终端上安装应用软件来操作本地硬件;开发设计上需要B/S和C/S两班人马,而且需要逐一客户端进行部署,维护起来也比较麻烦。采用了“瘦客户端”架构的新系统软件体系,在Web浏览器中操作本地硬件,开发人员仅需要掌握并应用B/S机制即可,技术上易于精益求精,除了首次客户端运行时间长些外,没有部署环节,维护只需在服务端进行,无需每个客户端逐一进行,设计、测试、部署及维护等各个开发环节大大简化了。
图I为新建的网络系统软件体系框架示意框图。图2为典型新系统软件层和层间典型接口构造示意图。图3为新系统软件体系的典型基础项目树结构示意图。图4为简易商品交易系统的业务行为逻辑软件模块构造示意图。图5为采用VS-EF/MVC工具的系统应用软件自动构造的示意图。
具体实施方式新系统软件体系,结构清晰,层次分明,模块化规范,层间接口明了,很容易编程实现,而且易于实现自动软件体系架构。系统软件开发应用,目前主要采用两种通用的集成开发环境# Java-J2EE Eclipse+StrutsII+Spring+Hiberate/iBatis,简称 Eclipse-SSH/I ;# C#-ASP. NET :VisualStudio+EntityFramework/nHiberate,简称 VS-EF/nH。其中前一种是可以跨操作系统平台的应用,后一种只能应用在微软的Windows操作系统环境。
以SQLServer数据库为例,建立系统软件集成开发环境的最少主要支撑软件如下# Java-J2EE :JDK、MyEcl ipse (Eel ipse/SSH)、Tomcat、Ant、Xdoclet、SQLServer2008 C#-ASP. NET .NET4.0、VisualStudio2010SPl、AD0. NET Entity Framework4. I、Unity2. 0/MicrosoftEnterpriseLibrary5. 0、SQLServer2008> ASP. NET MVC3在通用集成开发环境下,编程构造新系统软件体系并实现针对具体的业务领域应用,其主要环节如下I新软件框架体系的实例化构造的新系统软件体系框架的具体实现方法,即新软件框架体系的实例化,主要是典型软件层和层间典型接口的构造,如图2所示。 典型软件层构造的主要工作如下:首先建立抽象类型,主要是涉及领域模型概念的抽象类型或接口,如实体、值对象、仓储、工作单元、规约、等;接着建立领域模型根据领域驱动设计的规范,建立实际的领域模型,包括寻找对应的聚合、聚合根、值对象、等,还有定义相应的聚合根仓储接口 ;以上两步建立“领域模型层”后,进而建立“基础框架层”,主要是实现“持久化访问”领域模型,大部分情况是数据库的访问,通常由“工作单元接口(Unit Of Work)”实现事务式的持久化,同时具体实现上述领域聚合根对应的仓储接口 ;最后,实现“服务层”,针对业务行为的用例逻辑,向“表现层”的用户界面UI (UserInterface)提供粗粒度的功能接口,通常通过调度领域模型来隐藏更细粒度的业务处理逻辑。软件层间典型接口构造的主要工作如下: 领域模型层接口,针对对象有实体、值对象、仓储、工作单元、规约等; 服务层接口,针对对象有増 / 查 / 改 / 删 CRUD (Create/Retrieve/Update/Delete)基本操作及其相关的业务功能; 基础设施层接口,针对对象有工作单元、领域聚合根仓储实现。新系统软件体系框架实例化,涉及的各个软件层和层间接口,无论是Java_J2EE的Eclipse-SSH/I开发,或是C#-ASP. NET的VS-EF/nH开发,都有规律可循,其简便快速实现有以下捷径 由设计的模板代码库中的典型程序段,进行拷贝并做简单对应更改,即设计成模板代码供给软件设计人员拷贝并略加变通使用; 通过设计的含有简单友好人机交互的软件体系代码架构工具快速自动生成,这种方法设计效率高,脑力劳动强度低,人为错误少。分别以Java_J2EE 的 Eclipse-SSH/I 和 C#_ASP. NET 的 VS-EF/nH 构造的新系统软件体系的基础典型项目树结构如图3所示。2业务行为逻辑的简易实现业务行为逻辑的简单实现过程如下首先在领域模型层添加表达具体业务行为逻辑的需求,在服务层添加相应的粗粒度逻辑业务服务,进而通过IoC技术,面向接口编程,实现具体的接口类,连接层与层,将信息返回给“表现层”的用户界面UI,实现松耦合关联,做到代码重构。具体实际的业务领域的行为逻辑及其服务,无论是Java_J2EE的Eclipse-SSH/I开发,或是C#-ASP. NET的VS-EF/nH开发,都有规律可循,其的简便快速实现有以下捷径 由设计的模板代码库中的典型程序段,进行拷贝并做简单对应更改,即设计成模板代码供给软件设计人员拷贝并略加变通使用; 通过设计的含有简单友好人机交互的软件体系代码架构工具快速自动生成,这种方法设计效率高,脑力劳动强度低,人为错误少。下面给出一个简易商品交易系统,对其进行业务逻辑行为分析和具体应用领域层 设计。该系统经过简化后的业务逻辑行为是商户交易流通节点注册;交易商品在流通节点做入场操作,形成“电子台账”;交易完成生成交易单,显示记录码,通过查询记录码,实现过程跟踪。其“领域模型层”的业务行为逻辑可以概括为交易单实体、流通节点实体、台账实体和商户实体,进行C#-ASP. NET的VS-EF/nH系统软件开发,相应的简要软件模块构造如图4所示。3应用软件系统的自动构造主要是基本系统软件体系的构造,包括具体应用数据库的自动生成和简单静态“増/查/改/删CRUD”用户界面的自动产生。对于Java_J2EE的Eclipse-SSH/I开发应用,自动构造过程如下 使用Hibernate+Ant+Xdoclet,实现hbm配置文件和数据库从代码自动生成; 采用JunJava、JFrameClass或RapidGenerate等软件工具,由代码生成基本的“增/删/改/查CRUD”简易静态用户界面。对于C#-ASP. NET 的 VS-EF/nH 开发应用,通过基于 Entity Framework 及其 MVC3自动生成 基于EF(Entity Framework)Code First由代码自动生成数据库,包括必需的各个数据表及其关联; 通过MVC (Module/View/Control)脚手架工具由代码生成基本的“增/删/改/查CRUD”简易静态用户界面。针对上述简易商品交易系统,图5显示了 VS-EF/nH下通过Entity Framework与MVC3脚手架工具由简易人机交互窗口操作自动构造系统应用软件的过程示意,其中左图是简易人机交互操作窗口,右图是产生的对应代码框架。4增加网页界面的丰富渲染主要针对主页面和上述产生的“增/删/改/查CRUD”简易静态用户界面,采用通用的 JS、JQuery、Ajax、DIV+CSS、AS-Flash 等技术,修改模板文件(如 C#-ASP. NET 的VS-EF/nH的_Layout. cshtml),更换界面效果,增加用户体验,达到导航、布局、感觉、视觉、动画、立体及其人机操作的简便和快捷,达到前端网页界面丰富绚丽,实现尽可能友好而益人的人机交互。 前端网页界面的丰富绚丽,对于C#-ASP. NET的VS-EF/nH开发应用,还可以采用功
能强大的RIA---WPF或Silverlight技术;对于Java_J2EE的Eclipse-SSH/I开发应用,还
可以采用功能强大的“快速Web应用” Struts II技术。
5添加本地硬件操作功能新系统软件体系,对本地硬件的操作,采用“瘦客户端”的架构,在Web浏览器中实现。在Web浏览器中操作本地硬件,对于C#_ASP. NET的应用通过“ActiveX-C/C++驱动”技术实现,对于Java-J2EE/J2ME的应用通过“Applet-JNI-C/C++驱动”技术实现。无论哪种开发应用,首先是针对相应的操作系统,如Windows、Linux等,用C/C++编写特定硬件设备的驱动程序并进行调试,然后是ActiveX或JNI (Java NativeInterface)封装及其调试,接下来是ActiveX控件或Applet应用程序的设计和调试,最后是在Web浏览器中对此ActiveX控件或Applet应用程序的调用。需要特别注意的是对ActiveX控件或Applet应用程序的权限的开放,开放权限后才可以被顺利引用。·
权利要求
1.一种网络系统软件体系框架,其特征在于,构造了一个四层基本软件框架结构表现层、服务层、领域模型层和基础框架层,其中“领域模型层”是核心层,独立于服务层外 领域模型层展现业务领域的行为逻辑、业务处理状态以及实现业务的规则,同时含有领域对象的状态信息; 表现层通过用户界面向用户显示系统软件体系的数据信息,同时接收用户输入的干预反馈; 服务层提供对“领域模型层”的业务封装,并通过网络或接口向“表现层”暴露粗粒度的逻辑业务服务; 基础框架层为“服务层”和“表现层”内应用程序的数据存取提供服务,它是应用程序的“持久化访问”机制,或者为外部系统提供数据访问的网络浏览服务。
2.如权利要求I所述的网络系统软件体系框架,其特征在于,“领域模型层”因具体业务领域逻辑行为的需要由一层而扩展为若干层。
3.如权利要求I所述的网络系统软件体系框架,其特征在于,“领域模型层”内包括有以下概念和内容实体、值对象、领域服务、仓储契约或接口。
4.如权利要求I所述的网络系统软件体系框架,其特征在于,“基础框架层”为其它各层的“访问”提供通用技术框架,所述“访问”包括异常的捕获与处理、日志、认证、授权、验证、跟踪、监视、缓存之一或组合。
5.如权利要求I所述网络系统软件体系框架,其特征在于,“基础框架层”融入有新软件技术“控制反转”、“工作单元”、“缓冲操作”,使“领域模型层”连接“服务接口 ”和“仓储接口”进而通过“实体框架”(Entity Framework)、Hibernate与“数据库”通信。
6.如权利要求I所述的网络系统软件体系框架,其特征在于,“服务层”选用新软件技术“窗口通信基础WCF”、服务分层架构Spring。
7.如权利要求I所述的网络系统软件体系框架,其特征在于,“表现层”选用新软件技术“窗口展现基础WPF”、快速网页浏览应用Struts II。
8.如权利要求I所述的网络系统软件体系框架,其特征在于,“基础框架层”内含有“Enttity Framework”或“Hibernate”持久化访问技术和“目标对象映射0RM”框架,结合具体的“领域模型层”业务逻辑行为实现,自动产生实际应用所需的具体数据库内容。
9.如权利要求I所述的网络系统软件体系框架,其特征在于,“领域模型层”通过“表现层”的人机交互界面,及其相应“服务层”的服务,结合“MVC脚手架工具”、“RapidGenerate”软件代码生成工具,自动产生基本的“增/删/改/查CRUD”用户界面代码。
10.如权利要求I所述的网络系统软件体系框架,其特征在于,“服务层”具有“一致的网络通信服务”,对于C#-ASP. NET具体应用,通过采用“窗口通信基础WCF技术”,实现业务功能的网络传输,为多客户端应用场合提供统一的服务接口 ;对于Java_J2EE具体应用,采用“服务分层架构Spring技术”。
11.如权利要求I所述的网络系统软件体系框架,其特征在于,“基础框架层”含有“面向方面编程AOP”,对于C#-ASP. NET具体应用,采用微软企业库的Policy Injection模块实现;对于Java-J2EE具体应用,采用集成有面向方面编程AOP功能的Spring技术实现。
12.如权利要求I所述的网络系统软件体系框架,其特征在于,“基础框架层”含有“依赖注入”技术,对于C#-ASP. NET具体应用,采用微软的Unity2. 0实现,它包括控制反转IoC、依赖注入和拦截技术;对于Java_J2EE具体应用,采用含有“控制反转IoC”功能的Spring技术来实现。
13.如权利要求I所述的网络系统软件体系框架,其特征在于,还包括位于“表现层”的前端页面应用,采用通用的JS、JQuery, Ajax、DIV+CSS、AS-Flash技术,实现导航、布局、感觉、视觉、动画、立体,进一步“友好”人机界面;对于C#-ASP. NET应用,还采用RIAWPF或Silverlight技术;对于Java_J2EE应用,还采用Struts II技术。
14.如权利要求I所述的网络系统软件体系框架,其特征在于,“服务层”的“服务”还包括进行“本地化”处理,通过“瘦客户端的实现”在网络浏览器中操作本地硬件,具体实现对于C#-ASP. NET应用,采用“ActiveX-C/C++驱动”技术;对于Java_J2EE/J2ME应用,采用“Applet-JNI-C/C++ 驱动”技术。
15.一种如权利要求I至14的任一项网络系统软件体系框架的实现方法,其特征在于,具有如下主要典型软件层的构造 首先,建立涉及领域模型概念的抽象类型或接口,如实体、值对象、仓储、工作单元、规约; 籲接着,根据领域驱动设计的规范,建立实际的领域模型,包括寻找对应的聚合、聚合根、值对象,定义相应的聚合根仓储接口 ; 以上两步建立“领域模型层”后,进而建立“基础框架层”,实现“持久化访问”领域模型,包括数据库的访问,通常由“工作单元接口 ”实现事务式的持久化,同时具体实现上述领域聚合根对应的仓储接口; 最后,实现“服务层”,针对业务行为的用例逻辑,向“表现层”的用户界面提供粗粒度的功能接口,通常通过调度领域模型来隐藏更细粒度的业务处理逻辑。
16.一种如权利要求15的网络系统软件体系框架的实现方法,其特征在于,具有如下主要典型软件层间接口的构造“领域模型层”接口的针对对象实体、值对象、仓储、工作单元、规约;“服务层”接口的针对对象増/查/改/删CRUD基本操作及其相关的业务功能;“基础设施层”的针对对象工作单元、领域聚合根仓储实现。
17.—种如权利要求15的网络系统软件体系框架的实现方法,其特征在于,“系统软件体系框架的各个软件层及其层间接口 ”与“具体实际的业务领域的行为逻辑及其服务”的实现有以下方法 提供由设计的模板代码库中的典型程序段,进行拷贝并做简单对应更改; 通过设计的含有简单友好人机交互的软件体系代码架构工具自动生成。
18.—种如权利要求15的网络系统软件体系框架的实现方法,其特征在于,自动构造如下的基本系统软件体系 籲对于 Java_J2EE 的 Eclipse-SSH/I 开发应用,使用 Hibernate+Ant+Xdoclet 实现hbm配置文件和数据库从代码自动生成,采用JunJava、JFrameClass或RapidGenerate软件工具,由代码生成基本的“增/删/改/查CRUD”静态用户界面;对于C#-ASP. NET的VS-EF/nH应用,基于EF Code First由代码自动生成数据库,包括各个数据表及其关联;通过MVC脚手架工具由代码生成基本的“增/删/改/查CRUD”静态用户界面。
全文摘要
本发明提供一种网络系统软件体系框架,包括领域模型层展现业务领域的行为逻辑、业务处理状态以及实现业务的规则;表现层向用户显示数据信息,接收干预反馈;服务层封装“领域模型层”业务,通过网络或接口向“表现层”暴露粗粒度的逻辑业务服务;基础框架层为“服务层”和“表现层”应用程序的数据存取提供服务。本发明还提供所述框架的实现方法。通过“领域驱动设计”思想的运用和新软件设计技术的组合,本发明把系统软件设计直接集中到“业务行为逻辑实现”和“前端页面丰富”方面,加之“软件体系及其代码自动发生”手段,为企业应用系统软件的开发设计提供简便快速高效化。
文档编号G06F9/44GK102750145SQ201210182668
公开日2012年10月24日 申请日期2012年6月5日 优先权日2012年6月5日
发明者怯肇乾 申请人:怯肇乾