一种基于j2ee框架的企业级可视化应用开发平台的制作方法
【专利摘要】本发明公开了一种基于J2EE框架的企业级可视化应用开发平台,该平台包括:基于用户选取的开发框架和用户界面模板,对系统业务进行可视化建模的模型设计单元和基于所述可视化建模,生成与用户选取的开发框架和用户界面模板相匹配的基础业务代码的代码生成单元。本方案可以快速的发布及布置用户定制或下载更新的模块化应用,极大的缩短了用户用于开发和引入外部数据的时间。本方案可以应用户自主选取的开发框架和数据库,自由的进行数据库之间的数据迁移,方便用户跨框架和数据库的应用开发。通过本方案可以提高开发平台的标准化、组件化、自动化、平台化,降低项目的整体风险与成本,能够满足市面上大部分开发者的知识范围,最大限度降低学习成本。
【专利说明】
一种基于J2EE框架的企业级可视化应用开发平台
技术领域
[0001]本发明涉及一种计算机软件信息技术,特别是涉及一种基于J2EE和组件技术的新型可视化开发平台。
【背景技术】
[0002]随着互联网技术与通信技术的发展和完善,企业在追求一站式的信息化应用解决方案的同时,还对IT(信息技术)业务与通信业务融合提出了新的需求。这种需求不仅仅停留在业务形式上的简单融合,而是通过ICT(信息通信技术)融合服务来改造自己的业务特征和整个工作流程,以达到降低成本、提高效率的目的。
[0003]目前,国内外很多电信企业和IT企业都致力于企业融合通讯领域,并提出了各自不同的解决方案。由于通信业务和IT业务在产品形态、工作流程、部署方式以及技术框架上差别很大,使得大多数企业融合通讯系统庞大、业务管理和配置复杂,业务定制化程度不高以及网络部署困难。为了更好地解决这些问题,需要一个企业级的ICT融合业务开发平台,将运营商提供的各种新业务和新服务快速地发布到企业中;同时,企业又可以在保持原有的IT系统不变的基础上,在此平台上更加简单、灵活地进行业务的二次开发,从而体现出企业个性化的融合服务特点。
[0004]基于J2EE的软件开发过程,一般是选择一种或者多种开发者熟悉的开源框架,并从头组织这些框架的依赖关系,然后以这些框架为基础进行代码的编写工作,大部分的工作都是重复劳动,而且基础代码的编写很繁琐,占据了大部分的开发时间,很容易产生BUG。业务系统间的组合也很繁琐,并没有真正从组件化思想考虑问题。目前行业内都是基于构件化来做平台,运行效率低下,学习成本高昂,并没有一个平台真正从开发者熟悉的技术场景出发来做平台。
【发明内容】
[0005]本发明的目的是提供一种新型的基于J2EE框架的企业级可视化应用开发平台,以解决现有技术中由于软件开发需要专门的技术人员学习大量相关知识而导致浪费学习时间和成本、对于软件前端框架开发成高、框架数据部署时间长、多数据库间无法完成数据迀移导致无法跨数据库开发等问题。
[0006]为解决上述技术问题,本发明采用下述技术方案:
[0007]—种新型的基于J2EE框架的企业级可视化应用开发平台,该平台包括:
[0008]模型设计单元,基于用户选取的开发框架和用户界面模板,对系统业务进行可视化建模;
[0009]代码生成单元,基于所述可视化建模,生成与用户选取的开发框架和用户界面模板相匹配的基础业务代码。
[0010]优选地,所述模型设计单元包括:
[0011]系统业务切分模块,对系统的业务进行分割,形成多个业务功能模块;
[0012]建模模块,对每个业务功能模块建立一个服务,对该服务进行可视化的模型设计,生成该服务的可视化模型。
[0013]优选地,所述代码生成单元包括:
[OOM]调用模块,调用ant框架执行build, xml脚本;
[0015]配置文件加载模块,基于调用模块调用的文件,为可视化建模加载配置文件;
[0016]代码生成模块,根据加载的配置文件,生成所述基础业务代码。
[0017]优选地,所述配置文件包括服务配置文件、环境配置文件和制定目录下的服务配置文件。
[0018]优选地,该平台进一步包括:
[0019]用于为用户提供多种开发框架的框架模板单元。
[0020]用于为用户提供多种用户界面模板的UI模板单元。
[0021]优选地,该平台进一步包括:功能模块管理单元,为用户提供平台上功能模块的注册、修改、删除和部署管理。
[0022]优选地,该平台进一步包括:基础服务单元,为用户提供业务功能的基础管理和运营。
[0023]优选地,所述基础服务单元包括:
[0024]组织结构管理模块,基于树型结构,对业务功能进行动态展示;
[0025]用户信息管理模块,对用户的基础身份信息进行管理,并对用户进行限期、加锁和提醒;
[0026]菜单管理模块,基于树型结构,对该平台的功能菜单进行动态展示,并建立功能菜单与URL的链接;
[0027]权限管理模块,对该平台的用维度、功能维度和组织结构维度进行权限分配和管理;
[0028]应用配置模块,根据用户或开发标准,对该平台的参数进行配置调整。
[0029]优选地,所述基础服务单元进一步包括:
[0030]枚举管理模块,对平台中可穷举信息进行管理;
[0031]报表管理模块,基于Excel模板工具,对该平台的数据进行收集、统计和存储;
[0032]定时服务模块,根据用户需求,制定定时的功能服务;
[0033]消息管理模块,根据用户需求,对该平台待发送的信息进行控制和管理;
[0034]日志管理模块,对该平台的用户操作或功能单元的运行状态进行存储;
[0035]标准管理模块,用于存储和更新用户开发软件时需要遵循的国际化标准;
[0036]附件管理模块,对平台之间所需附件文件进行管理和分配。
[0037]优选地,该平台进一步包括:用于为平台提供信息部署、发布和数据迀移的运维管理单元,所述运维管理单元包括:
[0038]发布模块,用于打包应需求方请求开发的基础软件,并根据需求方需求发布基础软件包;
[0039]部署模块,用于对当前使用的系统功能更新下载的功能包或数据进行部署;
[0040]数据迀移模块,根据用户使用的数据库,进行多数据之间的数据信息迀移。
[0041]本发明的有益效果如下:
[0042]本发明所述技术方案能够根据客户需求快速构建系统可视化模型,并根据用户选取的开发框架自主搭配UI模板,在降低前端开发成本的同时更加清晰的将系统及业务层次展现给用户。通过本方案的运维管理,可以快速的发布及布置用户定制或下载更新的模块化应用,极大的缩短了用户用于开发和引入外部数据的时间。本方案可以应用户自主选取的开发框架和数据库,自由的进行数据库之间的数据迀移,方便用户跨框架和数据库的应用开发。通过本方案可以提高开发平台的标准化、组件化、自动化、平台化,降低项目的整体风险与成本,能够满足市面上大部分开发者的知识范围,最大限度降低学习成本。
【附图说明】
[0043]下面结合附图对本发明的【具体实施方式】作进一步详细的说明;
[0044]图1示出本发明所述企业级应用开发平台的示意图;
[0045]图2示出本发明所述开发平台工作原理图;
[0046]图3示出本发明所述技术组件的组成示意图。
【具体实施方式】
[0047]为了更清楚地说明本发明,下面结合优选实施例和附图对本发明做进一步的说明。附图中相似的部件以相同的附图标记进行表示。本领域技术人员应当理解,下面所具体描述的内容是说明性的而非限制性的,不应以此限制本发明的保护范围。
[0048]如图1所示,一种新型的基于J2EE框架的企业级可视化应用开发平台,该平台包括:基于用户选取的开发框架和用户界面模板,对系统业务进行可视化建模的模型设计单元和基于所述可视化建模,生成与用户选取的开发框架和用户界面模板相匹配的基础业务代码的代码生成单元。
[0049]所述模型设计单元包括:对系统的业务进行分割,形成多个业务功能模块的系统业务切分模块和对每个业务功能模块建立一个服务,对该服务进行可视化的模型设计,生成该服务的可视化模型的建模模块。该模型设计单元主要完成业务模型的设计,包括业务模型之间的从属关系。本方案中,可以对网络服务、通用接口、通用组件、标签和富客户端应用等进行建模。本发明所述模型设计单元中的建模模块主要包括业务对象设计器和业务流程设计器。其中,业务对象设计器是通过数据建模可以自动生成所有相关代码与配置文件。开发人员根据业务的具体要求通过业务对象设计器可视化的描述出业务对象模形,在建模时:一个服务可以认为是一个功能模块(如库存管理、资产管理…)。推荐在服务内代码间是高聚集的,因为一个服务就是一套完整的业务,在设计服务时应尽最大限度的降低服务与服务之间的藕合度;一个实体可以理解成与数据库对应的一张表,实体之间可以继承、一个实体可以有多个子实体。但实体不只是数据库表,它包括从页面到数据库表之间的全部代码实现。对于实体中的属性,平台提供9种数据类型分别为:字符型(String)、整数型(Int)、浮点型(Float)、日期型(Date)、日期时间型(Datetime)、查找带回型(Lookup)、枚举型(Enumerat1n) JiiHiKAttachment)、大数据(Bigdata)。通过eel ipse插件使用户可以通过可视化的方式设置符合业务需求的服务与实体,并且会自动生成从页面一直到持久层所有文件(包括配置文件)、java代码及sql脚本。通过生成器的生成,可以实现从页面直到数据库表所有基本功能,呈现出用户需求的可运行,可操作的所有功能。业务流程设计器是以规格化的流程描述作为输入的软件组件,它维护流程的运行状态,并在人和应用之间分派活动。为了后面的描述,本方案定义一些基本的术语:流程定义(process definit1n)和流程实例(process instance).一个流程定义是一个业务流程或过程的规格化描述。一个流程实例是流程定义的一个运行实体。业务流程设计器的另一个重要的职责是维护每一个流程运行的上下文信息。流程上下文变量(process context variable),或简称变量,是与流程实例相关的变量。通常在流程定义中声明这些变量,然后在流程实例生成时,这些流程变量被实例化。本方案可以适用与任何其它工作流引擎相集成,并且其自身自带有一个工作流引擎的内核以方便采用非开源框架项目使用。
[0050]所述代码生成单元包括:用于调用ant框架执行build, xml脚本的调用模块;基于调用模块调用的文件,为可视化建模加载配置文件的配置文件加载模块;根据加载的配置文件,生成所述基础业务代码的代码生成模块。其中,所述配置文件包括服务配置文件、环境配置文件和制定目录下的服务配置文件。该代码生成单元会根据开发人员所选用的前端UI模板及开源框架组合,生成对应的基础业务代码。这些业务代码包括数据库表DLL、对应业务及实体的初始化数据、JAVA代码、页面文件、Spr ing配置文件、DAO配置文件、MVC配置文件、权限控制文件和单元测试用例。业务代码可以选择性生成,根据开发需求的不同进行选择。
[0051]该平台进一步包括:用于为用户提供多种开发框架的框架模板单元和用于为用户提供多种用户界面模板的UI模板单元。其中,所述框架模板单元主要用于存放各类开源框架模板,由于平台支持各种框架的组合,因此这些框架代码模板都是基于WebWork、
见开源框架的代码编写规则。这些模板由平台底层提供,只针对特定的平台开发人员开放,对于业务层面的开发人员未开放模板编辑权限。所述UI模板单元主要用于存放各类前端页面展示风格模板,主要包括JSP代码模板、CSS文件及对应的JS文件。系统默认提供多种可选模板。这些模板由平台底层提供,只针对特定的平台开发人员开放,对于业务层面的开发人员未开放模板编辑权限。用户可以通过可视化功能模块,个性化选择持久层和表现层的搭配方式,完成框架的匹配。也可以根据该平台默认的框架进行开发。所述功能模块管理单元,为用户提供平台上功能模块的注册、修改、删除和部署管理。该功能模块管理单元是集中管理所有模块的场所,在模块管理器中进行注册、修改、删除、部署等一系列的操作,为了简化模块部署,我们将模块信息压缩到了三个选项,在系统中注册一个模块要求包含以下三个元素,其中:应用名称:应用名称其实就是模块名称;版本号:对应的模块版本编号;简介:该模块的描述信息。
[0052]该平台进一步包括:用于为用户提供业务功能的基础管理和运营的基础服务单元。系统基础服务是一个业务系统所能运行具备的基础功能,新建一个工程的时候会自动生成其基础服务。该基础服务单元具体包括:
[0053]组织结构管理模块:组织结构采用树型设计结构其深度不受限制,同时在展示形式上可以分级延时加载与一次性加载动态选择。
[0054]用户信息管理模块:用户管理除记录用户的基本信息外,在登录上还做了很多控制如有限期、加锁等,在国际化上用户可以随时切换语种与时区,在提醒方式上用户可以选择多种提醒方式。
[0055]菜单管理模块:分为菜单项与菜单链接,对于菜单项来说可以无限深度扩展形成树状展示形式,菜单链接是指与之对应的URL并且与权限绑定。如果某用户没有菜单项下所用菜单链接的权限,平台对该用户不会该菜单项,如果该菜单项的所有邻居下的菜单链接均无权限,则上一级的菜单项也不会显示,如些类推。
[0056]枚举管理模块:所谓枚举也称数据字典,是管理可穷举信息的管理。比如男/女或业务表单的一些状态值等。对于枚举管理平台还提供了缓存机制,从而提供系统的运行效率。
[0057]权限管理模块:平台的权限管理在功能实现上比较强大,从整体上可以分为三个维度:角色用户维,即可以将某些角色分派给指定的用户;功能维,即某个功能(在此的功能是个抽象的概念,具体来说它可以是一个按钮、一个页面甚至可以是一个表单元素)对用户是否可见;组织结构维,即用户看到的信息内容也是有范畴的概念的。在人员类型上,又分为一般用户、管理员与超级管理。在权限组成上,又分为权限、角色与用户组。
[0058]报表管理模块:虽然目前仅提供对Excel的报表展示,但平台的中心思想还是对多框架技术的整合,以后在报表管理中还会加入平台自带的报表引擎及对flex图形的支持。对于Excel的导出平台是通过收集数据的类及Excel模板的形式提供的,即如您想导出一个指定的Excel报表就一定要有一个可展示的格式布局(这就是模板的作用),而数据展示的内容是通过继承平台抽象类来进行收集的。
[0059]应用配置模块:这个功能在技术上来说很简单可在系统开发过程中意义重大,主要的意义是使您所开发出来的系统更灵性,更加快速的适应客户需求的变化。可以说应用配置就是在应用系统中一些开关或参数值,比如调用webservice的URL,或是全局税率的值等等,总之该功能就是一个有可能客户易发生变化的信息篮子您可以就象调用java的静态属性一样随时调用它们,并且对客户来说这些信息还是可维护的。
[0060]定时服务模块:所谓定时服务就是一个触发器加一个Job,即在指定的时间触发一件事情,而这一过程由计算机自动完成,例如每天凌晨备份一次数据或每月最后一天计算员工的出勤记录。触发器定义与维护平台已经提供了编辑页面,对于您来说只要继承平台一个Job抽象父类,您即使实现一个定时服务的功能。
[0061]消息管理模块:所谓消息管理实际上就是一个待发送的信息缓存区,在这个缓存区按发送类型(如邮件、短信、网内短信息等等)、发送时间及发送人的消息集合,一旦满足发送时间的条件,系统会自动将相应消息通过指定的方式发送到指定的接收人处。
[0062]日志管理模块:平台的日志管理是一个随时可插拔的组件,包括日志的缓冲机制、日志的存储形式(如数据库、文本文件或是xml等等),日志的记录范围(如对更新、查询、新建这些动作是可选的),日志的记录内容(在日志中除了操作人、操作时间外还要展示客户可以读懂的日志正文,而这些您是可以自由扩展的)。由此可见,平台的日志管理不只是为开发人员用于调试或维护的而且也是为终端客户的系统管理员提供维护、跟踪系统的依据。
[0063]国际化标准管理模块:对于国际化平台有自己的理解与实践。大家都知道i18η已经成为标准规范,并且大多数国际化系统都是依据该规范实施的。而在这个过程中一直存在一个问题,即内容的国际化也就是说用户所录入的内容的国际化。合理的解决该问题也正是平台的独创性之一。
[0064]附件管理模块:在平台中附件已变为生成器实体中的一个类型属性,在实现附件上传时您无需写任何代码,平台会自动生成附件的所有信息,它的跨框架、跨数据库平台底层已经全部支持。对于附件的保存平台提供两种形式,I)保存在指定文件夹中;2)将文件直截上传到FTP服务器上。
[0065]该平台进一步包括:用于为平台提供信息部署、发布和数据迀移的运维管理单元,所述运维管理单元包括:用于打包应需求方请求开发的基础软件,并根据需求方需求发布基础软件包的发布模块;用于对当前使用的系统功能更新下载的功能包或数据进行部署的部署模块;以及,根据用户使用的数据库,进行多数据之间的数据信息迀移的数据迀移模块。该运维管理单元主要承担系统组件/包的发布或者对已有的系统组件/包进行部署。对于发布是将已开发好的工程打包发布成一个可以被需求方识别的模块。系统发布软件包或套件操作流程如下:选择工程向导,录入所要发布的模块名称,版本号及备注信息。随后,编辑该模版的代码片段,这里代码片段指的是与需求方工程集成时所要合并的文件信息。选择好需要的系统组件或软件包后,开始发布。对于部署是将标准的工程组件部署到所需应用下,系统部署套件工作流程:选择部署向导,选择待部署的系统组件/包,将其部署至指定项目,若部署有误,可以通过部署向导中的取消部署,选择待取消的部署,即可完成已部署的删除。对于多数据库之间的数据迀移是用于服务不同版本或者不同品牌数据库之间的数据转换工作,其工作流程:选择数据源,选择当前数据库中待导出的数据,生成SQL脚本,将其移至另一数据库,完成迀移。
[0066]如图2所示,开发步骤是:开发人员根据业务系统需求分析结果,确定页面默认展示风格及数据库系统,并根据团队所掌握的框架知识,选择其所熟悉的开源框架组合,这些基础工作完成之后,利用平台可视化建模工具进行业务模型设计,模型设计完成之后,再利用代码生成器将模型及模型间的业务关系生成相应的业务代码,然后利用这些生成的业务代码所提供的扩展接口,进行核心业务代码编写;软件发布时,运维人员通过平台提供的可视化发布套件,对业务系统进行模块化打包并发布,并通过系统部署套件对打包后的模块化系统进行部署,部署环境会利用模块管理工具对该模块进行热加载,从而完成系统的部署工作。
[0067]下面通过实例对本发明作进一步说明书:
[0068]如图1所示,一种新型的基于J2EE框架的企业级可视化应用开发平台。该开发平台采用JavaEE接合Spring实现从数据库端直到业务端的全线贯通。从总的技术路线来看平台充分发恢Spring 1C与AOP的强大功能,实现业务层两端(即表现层与持久层)的完全解藕与无缝集成。在此要强调这种集成并非传统意义上的提供一套简单的配置文件,而是利用本方案中的模型设计单元结合业务对每个框架的集成均提供一套更符合业务、调用更友好的抽象层,抽象层除封装、集成外还提供一套客户可配置,扩展性良好的通用API。而对于颗粒较大的功能项。本方案采用通用组件的形式发布于平台之中,如树的展示、对象化的树型结构等等。在页面表现上平台除提供可客户化扩展的标签库外,还为您提供一整套以ajax技术为核心的富客户端,从而使用户感受更好,更象是web2.0技术实现。除此之外,本方案更加靠进业务提供了一些通用的应用服务,包括权限管理、组织结构、任务管理等等,对于通用的应用服务我们以后的版本中不断加入,可以看出平台是一个开放的不断扩充的集成开发工具。最后,生成器贯穿于所有层面,可以生成任何层面的文件与代码。
[0069]本方案的特点之一是可以快速的按需动态搭建。本方案可以支持的框架包括:webwork、s trut s2、spr ing、h ibernat e、ibatis2、ibat is3、SpringMVC、Spr ing JDBC 等,用户可以通过可视化(J-HI Stud1 ,eclipse插件)的方式随意组合,通过工程创建向导,自动化的按照你所选择的框架快速的动态搭建起开发工程。本方案采用多框架动态搭建,主要是考虑到不同企业的开发团队对技术的倾向性会有很大差别,从而提供了更多的可选择性。在此要注意对于平台多框架的集成并不像一般意思上的集成(即几个框架拼接在一起就可以运行),因为平台的集成还要包括很多通用业务并且与数据库表是有关系的,即一般搭建多框架是没有与其相对应的业务,所有功能或业务都要开发人员重新开发,而使用的平台本身会有很多的业务已经预留在平台中。因此,本方案除了可以供用户进行多框架和UI界面的选择外,还进行了平台底层的自适应设计,可以根据用户的自由搭配结果进行底层功能的融合和解耦,使平台运行更加稳定,部署更加合理。为了配合多框架和UI搭配,本方案进一步的提供了与多个框架相匹配的数据库,根据不同数据库的脚本文件可以形成相应的模板,并可根据用户选用的框架进行数据迀移,从而支持跨数据的开发。
[0070]本方案是一套含盖从数据库底层一直到页面端全部的解决方案,本方案包括数据库表;权限、菜单、多语言等相关基础数据;java类文件;JSP、JS文件;以及,相关配置文件等等,因此保证了生成即可运行,从功能单元上来看生成文件是完整的,是可独立运行的。从系统性来看,生成的文件是随着用户选择的框架不同而不同的,生成的基础是随着框架与数据库的差异而随需变化,本方案解决了传统生成器的僵硬性,从而灵活的适应开发环境。因此,本方案能够适应不同框架与数据库的生成方案。
[0071]组件是软件系统中具有相对独立功能、接口由契约指定和语境有明显依赖关系、可独立部署、可组装的软件实体。由此,本方案根据组件的这些特点,根据不同的条件与环境下组件的作用与功能,对组件颗粒进行划分,并在定义组件时保证功能的相对独立和可组装可部署要求。如图3所示,本方案根据用途与范围的不同划分为如下四类组件类型:技术组件、实体组件、业务组件、系统组件,它们之间的关系是逐级递进,互为基础的。
[0072]本方案所述实体组件是一个集合单元,它不仅仅包括数据库表还包括对该数据库表的基础操作(增、删、查、改);包括前端的展示面页;包括该实体的权限、菜单、配置信息;还包括它与其它实体的交互操作。当然一个实体组件颗粒度还是太小,还不能完整的描述一个业务功能。但实体组件相对来说有一定的独立性,可以集成一个集合单元,本方案是以实体组件为基础实现更大粒度的集成,从而实现对一个完整业务的描述。其中,实体组件包括室体通讯接口、室体菜单、室体权限、相关配置文件、JSP及JS文件、Java类件和数据库表等。
[0073]本方案中每个业务组件都对应一个服务,服务可以认为是一个业务功能模块,用以描述完整的业务模式,具体相对的业务独立性。在服务内代码间是高聚集的,因为一个服务就是一套完整的业务,在设计服务时应尽最大限度的降低服务与服务之间的藕合度。因为在这个样一个理论基础上去设计,就可以实现业务组件无缝的在各系统之间的可移植性。因为组件的定义还要可以独立的组装与部署,由此进一步衍生出本方案的产品集成工具,该工具主要是由发布器与部署器组成,其可更方便的实现业务组件的迀移。开发发布器与部署器的目的就是通过可视化的方式,实现跨数据库数据与跨应用系统的业务组件迀移。可以将业务组件看作一个独立的业务单元,可以无缝的集成于任何以本方案所述平台开发的项目中去。从而真正达到随需组合,动态搭建实际的业务系统,真正的实现业务组件的复用,降低不必要的重复开发。
[0074]本方案所述系统组件从业务功能上来看系统组件不过是多个业务组件的拼接,更大一级的业务封装。理论上系统组件与系统组件之间应满足绝对的隔离性,即使是有通信,应该也是通过第三方来进行数据交互,现有技术中可以采用中间数据库或webservice方法进行系统组件和系统组件之间的隔离。应用本方案所述平台可以大大降低用于系统组件之间隔离的工足量,甚至可以不需要第三方的交互技术。只要保证两个系统间的通信接口的相对隔离即可实现系统组件间的隔离。系统组件的迀移也可以通过发布器与部署器来实现。
[0075]本方案所述技术组件是基于平台再开发一些技术组件,比如对SpringMVC、SpringJDBC、DB2数据库等的支持,页面端也会再集成象DWZ或simpleframework,本方案进一步提供了多种页面端的生成模版,可供平台的技术组件在技术的不同层面进行扩展。本方案所述技术组件不同现有技术之处在于,可实现类似于插件一样的可插拔,随需植入。
[0076]本实例中,业务对象设计器是通过数据建模可以自动生成所有相关代码与配置文件。开发人员根据业务的具体要求通过业务对象设计器可视化的描述出业务对象模形,在建模时:一个服务可以认为是一个功能模块(如库存管理、资产管理…)。推荐在服务内代码间是高聚集的,因为一个服务就是一套完整的业务,在设计服务时应尽最大限度的降低服务与服务之间的藕合度;一个实体可以理解成与数据库对应的一张表,实体之间可以继承、一个实体可以有多个子实体。但实体不只是数据库表,它包括从页面到数据库表之间的全部代码实现。对于实体中的属性,平台提供9种数据类型分别为:字符型(String)、整数型(Int)、浮点型(Float)、日期型(Date)、日期时间型(Datetime)、查找带回型(Lookup)、枚举型(Enumerat1n)、附件(Attachment)、大数据(Bigdata)。通过eclipse插件使用户可以通过可视化的方式设置符合业务需求的服务与实体,并且会自动生成从页面一直到持久层所有文件(包括配置文件)、java代码及sql脚本。通过生成器的生成,可以实现从页面直到数据库表所有基本功能,呈现出用户需求的可运行,可操作的所有功能。业务流程设计器是以规格化的流程描述作为输入的软件组件,它维护流程的运行状态,并在人和应用之间分派活动。为了后面的描述,本方案定义一些基本的术语:流程定义(process definit1n)和流程实例(process instance).一个流程定义是一个业务流程或过程的规格化描述。一个流程实例是流程定义的一个运行实体。业务流程设计器的另一个重要的职责是维护每一个流程运行的上下文信息。流程上下文变量(process context variable),或简称变量,是与流程实例相关的变量。通常在流程定义中声明这些变量,然后在流程实例生成时,这些流程变量被实例化。本方案可以适用与任何其它工作流引擎相集成,并且其自身自带有一个工作流引擎的内核以方便采用非开源框架项目使用。
[0077]本方案中,提出一种新型loo,工作流的思想,该工作流是将各种优秀的工作流引擎集成到本方案平台中,可以使用户在不同的底层流程引擎中做自己偏爱的选择。现有技术中很大一部分工作流产品面向的用户群,而本产品更偏向于业务,更符合非计算机人员的思维方式。在创新点上有如下几个方面:
[0078]1、可以无缝的与第三方应用系统集成,自身无需用户、权限、角色,完全依赖于第三方系统。在设计上WooW提供了大量接口规范与方法回调,使其与第三方应用系统实现真正的无缝集成成为可能。提供的流程设计器与流程查看器,并不像其它工作流产品提供。
[0079]2、对于开放源代码eclipse或相类似的集成开放环境IDE插件的形式,而是直截可以在Web浏览器编辑并实时发布。
[0080]3、一旦将部署实施后工作完成后,对于软件工程师来说几乎是零代码开发。使用户的精力完全放在流程的业务上,而无需考虑还要了解流程本身,从而大大提高开发效率与降低学习曲线。
[0081]4、可以集成其它任何的工作流引擎,这就为您针对多变的业务需求和运行效率提供更大的选择空间。
[0082]本方案基于java代码与js提供了一套完整的面向对象的支撑系统,用户可以认为这是一个抽象层,无论是在页面表现上,还是在数据库技术CURD的任意一层,平台均提供了最大限度的抽象。用以保证平台本身的可扩展性、稳定性及灵活性。同时在本方案中提供了大量的APK java与js),为用户在开发过程中随需调用,从而进一步加快开发速度,保证代码质量。支撑系统是对主流开源框架的两次抽象与封装,通过紧密的与Spring相结合,以实现通过支撑系统可以不依赖于任何数据访问层与表现层的开源框架,亦可实现在不同框架之前相互切换。其核心思想为由支撑系统提供对不同数据访问层与表现层框架两次抽象实现,由生成器生成与支撑系统相匹配的java代码、配置文件、JSP等程序文件。
[0083]本方案进一步还提供了支撑系统,该系统的作用是平台运行时的内核,无论是大家所熟的DAO(数据访问层)、Manager(业务逻辑层)、Act1n(表现层)还是模型数据(POJO)甚至是JSP页面中所用到的标签最终都会回调到支撑系统中来,它在应用系统运行时几乎消耗了80%以上的运行时间。支撑系统通过不断的抽象与封装从而大大降低客户端的代码量,使程序开发人员在应用本平台时,只需观注应用系统的业务逻辑(这也是程序员最有价值的地方),而其它部分均可以交给本方案所述平台来完成。
[0084]综上所述,采用本发明上述的系统和方法,更好的满足了市面大部分企业开发人员的上手速度,降低了平台学习成本,提高了开发效率。通过模板化的后端及前端代码,可以让开发者根据自己需求灵活定义。通过组件化技术的创新,可以满足真正的模块化开发及部署。
[0085]显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定,对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动,这里无法对所有的实施方式予以穷举,凡是属于本发明的技术方案所引伸出的显而易见的变化或变动仍处于本发明的保护范围之列。
【主权项】
1.一种基于J2EE框架的企业级可视化应用开发平台,其特征在于,该平台包括: 模型设计单元,基于用户选取的开发框架和用户界面模板,对系统业务进行可视化建模; 代码生成单元,基于所述可视化建模,生成与用户选取的开发框架和用户界面模板相匹配的基础业务代码。2.根据权利要求1所述的企业级可视化应用开发平台,其特征在于,所述模型设计单元包括: 系统业务切分模块,对系统的业务进行分割,形成多个业务功能模块; 建模模块,对每个业务功能模块建立一个服务,对该服务进行可视化的模型设计,生成该服务的可视化模型。3.根据权利要求1所述的企业级可视化应用开发平台,其特征在于,所述代码生成单元包括: 调用模块,调用ant框架执行build.xml脚本; 配置文件加载模块,基于调用模块调用的文件,为可视化建模加载配置文件; 代码生成模块,根据加载的配置文件,生成所述基础业务代码。4.根据权利要求3所述的企业级可视化应用开发平台,其特征在于,所述配置文件包括服务配置文件、环境配置文件和制定目录下的服务配置文件。5.根据权利要求1所述的企业级可视化应用开发平台,其特征在于,该平台进一步包括: 用于为用户提供多种开发框架的框架模板单元。 用于为用户提供多种用户界面模板的UI模板单元。6.根据权利要求1所述的企业级可视化应用开发平台,其特征在于,该平台进一步包括:功能模块管理单元,为用户提供平台上功能模块的注册、修改、删除和部署管理。7.根据权利要求1所述的企业级可视化应用开发平台,其特征在于,该平台进一步包括:基础服务单元,为用户提供业务功能的基础管理和运营。8.根据权利要求7所述的企业级可视化应用开发平台,其特征在于,所述基础服务单元包括: 组织结构管理模块,基于树型结构,对业务功能进行动态展示; 用户信息管理模块,对用户的基础身份信息进行管理,并对用户进行限期、加锁和提醒; 菜单管理模块,基于树型结构,对该平台的功能菜单进行动态展示,并建立功能菜单与URL的链接; 权限管理模块,对该平台的用维度、功能维度和组织结构维度进行权限分配和管理; 应用配置模块,根据用户或开发标准,对该平台的参数进行配置调整。9.根据权利要求8所述的企业级可视化应用开发平台,其特征在于,所述基础服务单元进一步包括: 枚举管理模块,对平台中可穷举信息进行管理; 报表管理模块,基于Excel模板工具,对该平台的数据进行收集、统计和存储; 定时服务模块,根据用户需求,制定定时的功能服务; 消息管理模块,根据用户需求,对该平台待发送的信息进行控制和管理; 日志管理模块,对该平台的用户操作或功能单元的运行状态进行存储; 标准管理模块,用于存储和更新用户开发软件时需要遵循的国际化标准; 附件管理模块,对平台之间所需附件文件进行管理和分配。10.根据权利要求1所述的企业级可视化应用开发平台,其特征在于,该平台进一步包括:用于为平台提供信息部署、发布和数据迀移的运维管理单元,所述运维管理单元包括:发布模块,用于打包应需求方请求开发的基础软件,并根据需求方需求发布基础软件包; 部署模块,用于对当前使用的系统功能更新下载的功能包或数据进行部署; 数据迀移模块,根据用户使用的数据库,进行多数据之间的数据信息迀移。
【文档编号】G06Q10/10GK105956830SQ201610307742
【公开日】2016年9月21日
【申请日】2016年5月11日
【发明人】张昊, 王亚智, 杨会龙, 田敬秋
【申请人】中煤电气有限公司