Java-J2EE-Myeclipse-SSH网络软件系统自动架构与代码发生

 简易Web网络系统软件体系架构及其基础代码自动发生工具

Java-J2EE-Myeclipse-SSH版本用户手册

1 网络系统软件体系架构及基础代码发生

简易Web网络系统软件体系架构及其基础代码自动发生工具,是发明专利《一种网络系统软件体系框架及其实现方法》的具体应用,其主要内容如下:

1.1 技术领域

该发明展现了一种网络系统软件体系框架及其实现方法,主要用于信息技术IT(InformationTechnology)行业各种类型的企业应用网络系统软件的快速高效开发设计,应用领域包括各类物联网系统、车联网系统、医疗/交通/安防监控系统、智能家居系统、电子商务/政务系统、购物消费/查询支付系统、金融证券交易系统、企业/部门管理系统、网络教育系统、工农业过程检测控制系统、航天测控系统、军事指挥/设备监控系统等方面。

1.2 背景技术

一般的Web浏览器企业应用网络软件系统,常常采用业务数据库与浏览器B/服务器S(Brower/Server)三层软件架构的形式,虽然易于进行软件设计和编程实现,但是维护和升级起来十分麻烦,很多时候不得不重新做起来,更别提系统扩展了。这种体系,概念混淆,术语混乱,框架与模式僵化,设计与代码编制很难理解,数据库构造工作量大,结构化查询语言SQL(Structured Query Language)运用繁琐,编程工作繁重,软件制作效率低下,对于小中型企业系统还勉强凑合,对于中大型企业系统就根本行不通了。现代Web浏览器企业网络软件系统设计,迫切需要高效、实用、架构简单、易于实现、编程高度自动化、无关数据库设计的多层次通用性系统软件体系。

该发明灵活运用领域驱动设计DDD(DomainDrive Design)”的编程思想,合理组合新出现的现代软件设计工具,通过系统软件体系架构工具的设计及其快速交互应用,实现了上述现代Web浏览器企业网络系统软件设计的迫切需求,能够迅速使项目软件设计集中到具体的业务行为逻辑实现前端页面丰富方面,以软件自动架构的方式,保证了系统软件设计的极大简化高效和运行的最大稳定可靠,同时最低化维护成本并最强化系统的可扩展性。

1.3 核心技术

1.3.1 系统软件体系框架构造

根据领域驱动设计DDD的思想,综合运用新出现的现代软件设计工具插件,采用分层架构的做法,围绕具体的业务逻辑,面向对象进行分析与设计,可以建立如图1所示的以具体应用逻辑业务领域为中心的四层基本典型Web浏览器企业应用网络软件系统框架模型

1 简易实用型系统软件体系框架示意图

四层基本系统软件层次从上到下依次是:表现层、服务层、领域模型层和基础框架层。

表现层(Presentation Layer)主要通过友好的用户界面UI(User Interface)向用户展示系统软件体系必要的数据信息,同时接收用户的输入干预反馈。

服务层(Service Layer)提供对“领域模型层”业务的封装,通过网络或接口向“表现层”暴露粗粒度的逻辑业务服务。

领域模型层(Domain Model Layer)主要是展现业务领域的行为逻辑、业务处理状态以及实现业务的规则,同时也包含了领域对象的状态信息。领域模型层是整个应用程序的核心部分,它可以包含的概念和内容有:实体(Entities)、“值”对象(ValueObjects)、领域服务(DomainServices)、仓储契约/接口(Repository Contracts/Interfaces)等。

基础框架层(Infrastructure Layer)为“服务层”和“表现层”内的应用程序的数据存取提供服务,它可以是应用程序本身的“持久化访问”机制,也可以是外部系统提供数据访问的Web浏览服务(WebService),等。它提供了能被其它各层访问的通用技术框架,比如异常的捕获与处理、日志、认证、授权、验证、跟踪、监视、缓存之一或组合。这些操作通常会横向散布在应用程序的各个层面,面向方面编程AOP(Aspect Oriented Programming)关注的就是如何在不影响对象本身处理逻辑的基础上来实现这些横向的却又必不可少的功能点。应用实践中通过具体使用一些流行的拦截(Interception)框架(Microsoft UnityCastleDynamicProxy)可以方便地实现AOP思想。

按照领域驱动设计的思想,领域模型通常建立在服务层中,这样能够更好地应对复杂与不断扩展的大型企业软件应用需求,然而实际应用中更多的是繁琐并不特别复杂的业务领域行为逻辑,把“领域模型”独立一层,既保持了领域驱动设计的“复杂应对与业务扩展”的优势,又可以加速软件体系的运行效率。一般说来,对于中小企业的软件开发应用,这四个层次就足够了;对于业务领域的拓展和中大企业的软件开发应用,还可以对“应用领域内业务逻辑行为的类型”细化,进一步把“领域模型层”展开为若干个层次,将基本的四层框架扩展N层框架。如此,整个软件框架模型,能大能小,适应性更强大。

此外,还可以在基础框架层采用“依赖注入IoC(Inversion of Control)(通常称为“控制反转”)、工作单元(Unit of Work)、缓冲操作(CacheManager/Process)等软件技术,使“领域模型层”上连服务接口/下接仓储进而通过实体框架(EntityFramework)Hibernate等通信数据库,在“服务层”选用窗口通信基础WCF(Windows Communication Foundation)、“服务分层架构”Spring等技术,在“表现层”采用“窗口展现基础WPF”(Windows Presentation Foundation)、“快速Web应用”Struts II等技术,更进一步规范编程,实现软件框架代码编制的大部分自动架构,提高软件的执行效率,做到既用数据库又与数据库无关,减少人工编程带来的多数负面影响。

选用这种Web浏览器企业应用网络系统软件模型,系统软件项目设计就可以集中到具体的“业务行为逻辑实现”和“前端页面丰富”上面了。

在此基础上更进一步,结合ActiveX或者Applet技术,进行“瘦客户端应用”,“本地化”“服务层”的服务,还可以最大限度地简化设计、测试、部署及维护等各个环节。

1.3.2 新软件体系科技说明

1.3.2.1 框架模型的技术应用

架构的新软件体系,采用的主要新技术如下:

1)数据库动态生成技术和ORM框架

对于C#-ASP.NET应用,在“基础框架层”内采用新版的实体框架Entity Framework4.1持久化访问技术,进行code-first/model-first编程,实现数据库从代码生成,大大提升开发阶段数据库应对业务的变化能力;对于Java-J2EE应用,在“基础框架层”内采用类似的Hiberate-Ant-xDoclet持久化访问技术。同时在“基础框架层”内采用“目标对象映射ORM(Object Relational Mapping)框架,隐藏数据访问的细节,使数据库交互变得简单易行,并且完全不用考虑具体的SQL语句应用,从而实现快速开发,避免因SQL操作而引发的各种人为问题。

数据库动态生成技术的采用和ORM框架的特点,达到了:实际数据库因业务逻辑从代码自动生成。

2)常用程序代码的自动发生与实现

常用程序代码段或文件,如简单静态“増///CRUD”用户界面,可以由具体实际的“领域模型层”通过“表现层”的人机交互界面,及其相应“服务层”的服务,结合一些自动代码产生工具,快速得到。自动产生简单静态“増///CRUD”用户界面,对于Java-J2EEEclipse-SSH/I开发应用,可以采用JunJavaJFrameClassRapidGenerate等软件工具;对于C#-ASP.NETVS-EF/nH开发应用,则可以采用MVC(Module/View/Control)脚手架软件工具。

常用程序代码的自动产生与实现,减少了人为错误和劳动强度,提高了编程设计的自动化程度。

3)一致的网络通信服务应用

对于C#-ASP.NET应用,服务层采用WCF技术,实现业务功能的网络传输,为多客户端应用场合提供统一的服务接口,避免了重复开发,使移动或固定简易终端、个人计算机终端等能够连网的客户端都可以访问统一的服务地址,实现系统服务的一致性;对于Java-J2EE应用,服务层采用功能强大的“服务分层架构”Spring技术,实现同样的目的。

一致的网络通信服务应用,达到了:接口统一,服务一致,无重复开发。

4)面向方面编程AOP应用

对于C#-ASP.NET应用,在“基础框架层”内采用微软企业库的PolicyInjection模块来实现AOP。对于Java-J2EE应用,在“基础框架层”内采用集成有AOP功能的Spring技术。AOPIoC是进行逻辑分离和降低耦合度最主要的方式。AOP技术,剖解封装的对象内部,将影响多个类的公共行为封装为一个可重用的模块,并将其名为“方面(Aspect)”。它把软件系统分为两个部分:核心关注点和横向关注点。业务处理的主要流程是核心关注点,与之关系不大的部分是横向关注点。横向关注点,经常发生在核心关注点的多处,而各处都基本相似。通过AOP技术,实现了诸如日志、事务管理、权限控制等横向关注点的通用逻辑,可以专注于核心关注点,将精力投入到解决企业的商业逻辑上来。同时这些封装好了的横向关注点提供的功能可以最大限度地复用于业务逻辑的各个部分,既不需开发人员做特殊的编码,也不会因修改横向关注点的功能而影响具体的业务功能。

面向方面编程AOP应用,达到了:方面重用,核心明确,使软件开发更容易集中到业务逻辑实现。

5)依赖注入及其实现

分层架构的设计,层与层之间是松散耦合的,上层不会具体地依赖于下层,只是依赖于它的一个接口。这样,上层不能直接实例化下层中的类,而只持有接口;接口所指变量最终究竟是哪个类,则由依赖注入机制决定。对于C#-ASP.NET应用,在“基础框架层”内可以采用微软的Unity2.0实现依赖注入,它包括控制反转IoC、依赖注入DI(Dependence Injection)和拦截技术。对于Java-J2EE应用,在“基础框架层”内可以采用含有IoC等功能的Spring技术。

依赖注入及其实现,达到了:层间松散耦合,只是通过接口联系上下层。

6)前端页面的丰富绚丽

为使前端网页界面丰富绚丽,可以在“表现层”采用通用的JS(Java Script)JQueryAjaxDIV(Division) + CSS(Cascading StyleSheet)AS(Action Script)-Flash等技术实现导航、布局、感觉、视觉、动画、立体及其人机操作的简便和快捷。对于C#-ASP.NET应用,还可以在“表现层”采用功能强大的RIA(Rich Internet Applications)---WPFSilverlight技术;对于Java-J2EE应用,还可以在“表现层”采用功能强大的Struts II技术。

前端页面的丰富绚丽,达到了:导航、布局、感觉、视觉、动画、立体。

1.3.2.2 可能的技术应用与替代

数据库访问部分,采用了“基础框架层”的ORM框架可以有更多的选择:如C#-ASP.NET应用的nHibernateSimple.Data等,Java-J2EE应用的iBatis等;中小型企业软件的开发,ASP.NET应用也可以使用传统的ADO.NETJ2EE应也可以使用传统的JDBC(Java Data BaseConnectivity)

网络访问部分,C#-ASP.NET应用,“服务层”除了采用较多的规范WCF技术,还可以根据系统的规模采用Web Service等其它替代方案;Java-J2EE应用,“服务层”也可使用传统的URL(Uniform Resoure Locator)定位、Socket套接。

可重用模块部分,如日志、异常及验证等,ASP.NET应用,“基础框架层”除了采用“微软企业库”提供的一致功能,也可以为每一模块采用一些技术框架,如Log4net日志模块等,甚至自己开发。

IoC/AOP部分也有较多替代方案,C#-ASP.NET应用,“基础框架层”除了微软企业库UnityPolicyInjection,也可以使用Castle WindsorSpring.netAutofac等技术。Java-J2EE应用的“基础框架层”相应选项就更多了。

新软件体系架构,还有很强的预留和伸缩空间,可以轻易更换或加入将来出现的众多的简便自动工具软件,实现自身的丰富完善和功能扩展。

1.3.3 新软件体系优势说明

新软件体系架构,降低了系统开发的复杂度,在设计、开发、测试、部署及维护等各个环节为应用系统带来了高可用性、高延展性等正面效应,其巨大优势概括如下:

1)提高了系统的可测试性:多层架构,层与层之间是低耦合的,增加了各层的独立性,也提高了可测试性,这样开发出来的系统更加健壮。

2)简单化了解决方案的维护和管理:层内高内聚、层间低耦合的结构,使得系统实现与分层组织方式变得非常灵活方便,维护和管理的直接、高效,显而易见。

3) 增加了系统的可移植性:企业软件开发中,许多模块都是可通用的,如日志、异常、缓存、验证模块等。通过分层,很容易分离出通用模块,便于迅速应用到其它的项目,展现了模板化的组织架构。

4) 数据库由编码自动生成:软件框架采用最新的数据库自动操作技术,并融入ORM机制,实现了从代码生成数据库的强大功能,既使开发测试阶段的数据库也可以很容易地应对业务的变化,大大提高了开发效率。

5) 能够对多种类型客户端提供一致功能服务:具体业务应用领域中有多种终端,如手持移动操控仪、立/挂式操控台以及个人计算机。软件架构设计中通过网络边界分离服务层和表现层,就可以轻易的使这些不同类型终端,获取统一的系统功能服务。

6) 增强系统的可伸缩性:借助于分层的优势以及架构中各部分设计的高内聚性,各层自成模块体系,互相独立;增删各个独立的模块,不会影响到其它模块或层的功能,系统的可伸缩性强大。

7)实现了编码自动化,避免了人为因素影响:软件框架采用了众多的网络编程新技术,实现了数据库访问的封装,日志、异常捕获以及AOP拦截等常用功能,减少了重复模块编码量,同时也避免了因人为因素导致的性能问题。

1.3.4 趋向于“瘦客户端”的应用

新系统软件体系架构,以最大限度地简化设计、测试、部署及维护等各个环节为目的,针对具有本地硬件的操作,趋向采用瘦客户端的架构,将“服务层”的服务“本地化”,即在Web浏览器中操作本地硬件。

Web浏览器中操作本地硬件,新软件体系架构,对于C#-ASP.NET的应用可以通过“ActiveX-C/C++驱动”技术实现,对于Java-J2EE/J2ME的应用可以通过“Applet-JNI-C/C++驱动”技术实现。

传统的系统软件,混合应用B/SC/S(Client/Server)体系结构,通过C/S体系在现场的客户机终端上安装应用软件来操作本地硬件;开发设计上需要B/SC/S两班人马,而且需要逐一客户端进行部署,维护起来也比较麻烦。采用了“瘦客户端”架构的新系统软件体系,在Web浏览器中操作本地硬件,开发人员仅需要掌握并应用B/S机制即可,技术上易于精益求精,除了首次客户端运行时间长些外,没有部署环节,维护只需在服务端进行,无需每个客户端逐一进行,设计、测试、部署及维护等各个开发环节大大简化了。

2 Java-J2EE-Myeclipse-SSH版本应用说明

2.1 应用环境JRE的建立

安装JDK1.6以上版本,如jdk1.6.0_013jdk1.7.0_07,自动或手动建立java运行环境变量

注意:计算机是32位或64位,对应下载安装相应类型版本。

2.2 开发工具软件的使用

开发工具软件为WebFrameTool.jar,有32位或64位版本区别,注意依据所用计算机类型加以选择。

该软件工具,通过人机交互,可以快速自动生成web简易网络软件系统的软件体系框架及其表现层、服务层、领域模型层、基础框架层的各类程序基础代码与各种必需的系统配置文件,使软件工程师在此基础上迅速展开面向具体领域业务逻辑的应用设计,并进行用户页面的丰富,极大降低软件设计准入门槛,大幅度提升开发效率。

         该软件体系架构工具操作使用简便,概括说明如下:

         1.运行本软件,引导进入项目开发主窗口--[项目管理]

         2.通过主菜单或工具条的[新建]菜单或按钮,进入[整体规划]窗口;

 

2 项目管理及其新建或打开项目框图

 

3 项目整体规划窗口框图

         3.[整体规划]窗口中图示了全新的典型4-n层网络软件框架,鼠标移到相应层次及其接口区域,指示形状变成手形并伴随有浮动的文字操作指示,此时点击,即可展开并进入相应窗口进行具体设置;

         4.首先进行基础配置,在[整体规划]窗口中相应提示区域点击即可进入[基础构造]窗口,包括开发环境、软件框架、数据库表、日志文件等的选择与设置;

 

4 项目基础配置窗口框图

         5.相应数据表的实体类设置,在[整体规划]窗口中相应提示区域点击即可进入[实体类构造]窗口,在此可进行实体数据表列、主键及其数据表关联设定;

 

5 实体类数据表设置窗口框图

         6.常用值对象操作设置,在[整体规划]窗口中相应提示区域点击即可进入[常用值对象规划]窗口,进行分页查询等操作规划;

 

6 常用值对象设置窗口框图

         7.常用服务接口设置,在[整体规划]窗口中相应提示区域点击即可进入[常用服务接口设置]窗口,进行各类Dao、检查、校验等服务规划;

 

7 常用服务接口设置窗口框图

         8.常用web页面配置,在[整体规划]窗口中相应提示区域点击即可进入[常用web页面规划窗口,进行引导页面、注册/登陆页面、主体页面、编辑页面、分页浏览页面等网页用户界面设置;

 

8 常用web页面配置窗口框图

         9.业务逻辑行为规划,在[整体规划]窗口中相应提示区域点击即可进入[业务逻辑行为规划]窗口,进行Action规划及其SpringStruts依赖注入与全局参量等的设置;

 

9 业务逻辑行为规划窗口框图

10. 各个层次配置完成后,回到[项目管理]主窗口,从菜单中或工具条上点击[产生代码]菜单或按钮,即可产生整个工程软件体系框架及其各个层次的全部基础代码;

         11.[项目管理]主窗口,从菜单中或工具条上点击[代码浏览]菜单或按钮,可以展开[代码浏览]窗口,进行整个软件体系构造浏览和某个具体文件的浏览查看;

 

10 软件框架及其基础代码浏览窗口框图

         12.[项目管理]主窗口,从菜单中或工具条上点击[代码输出]菜单或按钮,可将整个软件工程体系输出至选定的目录下,如EclipseMyeclipseWorkspace

 

11 软件框架及其基础代码输出窗口框图

         13.在集成开发环境EclipseMyecllipse下,导入生成的工程项目,运行检查,没有任何错误和警告,运行build.xml,自动产生实体类对应的映射文件和数据表操作SQL文件,运行SQL文件,在数据库中自动产生关联的各个数据表;

 

12工程项目的导入及其映射数据表自动发生操作示意图

         14.编译运行工程项目,直接进入引导页面,进而可以在各个网页间穿梭徜徉;

 

13 JSP动态页面穿梭徜徉示意图

         15.在此基础上,根据具体应用领域的业务逻辑,针对src/dmMdShowCtrlWebRoot/prsttJSP下的相应文件,调用发生函数作代码添加、数据处理和显示表示,快速展开网络应用软件开发工作---领域驱动设计;

 

14 面向具体业务逻辑快速进行网络软件开发示意图

         16.再在此基础上,采用JS/AS等语言及其DIV+CSS等手段,针对WebRoot/prsttJSP下的相应网页文件进行界面丰富和动画渲染,即可得到更加完善的web网络系统应用软件。

 

15 界面丰富和动画渲染后的网页示意图

 

软件试用下载:http://kaizq.web-212.com/tools.html

发布了15 篇原创文章 · 获赞 0 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/u010941124/article/details/11873965
今日推荐