kaiyun官方注册
您所在的位置: 首页> 嵌入式技术> 设计应用> 基于SOA的快速开发平台研究与实现
基于SOA的快速开发平台研究与实现
2014年微型机与应用第16期
石 辉,马 军,裴文斌,杨怀玺
西安雷迪维护系统设备有限公司(西安),陕西 西安 710061
摘要:介绍了基于SOA技术快速构建OA、MIS类项目的开发平台,该平台使用简单、高效,支持界面图形化操作,使得开发过程更简洁、代码编写更少、开发效率更高。使用该平台建设系统对开发人员要求很低,方便二次开发和快速响应用户的需求变更,可节省企业人力成本。
Abstract:
Key words :

 摘 要: 介绍了基于SOA技术快速构建OA、MIS类项目的开发平台,该平台使用简单、高效,支持界面图形化操作,使得开发过程更简洁、代码编写更少、开发效率更高。使用该平台建设系统对开发人员要求很低,方便二次开发和快速响应用户的需求变更,可节省企业人力成本。

关键词: SOA;HMVC快速开发平台;MIS

  随着信息化的发展,越来越多的日常人为手动处理的工作由电脑系统完成,因此OA、MIS系统得到了广泛的应用。随之而来的是各方面需求量的不断增加,快速开发平台就是为了高效地开发此类系统而产生的。快速开发平台几乎是以零代码量来开发系统,使系统建设者更加快捷、高效地实现MIS系统的同时,使用者可以更加灵活、多样地对系统进行调整,同时满足了不同层次的需求。

1 快速开发平台设计

  本快速开发平台基于SOA架构,采用分层结构设计,包括信息表示层(已配置的业务系统)、信息展示层(建立的业务系统)、业务对象层、持久层(声明式服务对象),采用微内核、元模型、插件体系、总线集成的体系结构。该平台实现了组织机构、工作流、报表、业务规则、组织机构权限和用户界面的完全可视化设计,提供丰富的组件库和业务模板,实现了可视化建模和代码开发的完美结合;支持顺序、并行、同步、异步、分支、合并、循环、终止、回退、转交、通知、子流程、批处理等所有业务工作流模式,提供完全可视化的流程建模环境,集流程图设计、业务规则定制和运行跟踪于一体;创新的元模型处理体系,完全可视化的界面设计工具,提供前所未有的Web交互页面设计体验。多样的布局模式、丰富的界面组件、强大的页面向导,使开发人员几乎不用写代码便可开发出复杂的业务应用界面[1]。开发平台系统结构如图1所示。

001.jpg

  (1)信息表示层

  应用程序运行配置完成的应用以及用来作为配置管理的核心应用,例如多租户配置等。信息表示层是本系统平台的UI(用户界面)部分,此UI部分采用层叠式MVC模式(如图2所示),将客户端应用程序分解为有层次的父子关系的MVC。反复应用这个模式,形成结构化的客户端架构。这样把界面分成了多个部分,降低了依赖性,同时提高了代码、组件或者模块的重用度,在日后的维护中,提高了可扩展性。

002.jpg

  (2)逻辑层

  逻辑层与UI层是松耦合的,逻辑层实现的核心是声明式业务对象[2],主要通过以下几种方式进行:①声明式业务对象的服务可以通过业务对象总线进行互操作;②声明式业务对象的粒度可大可小,可以是一个实体表,也可以是一个较大的业务模块;③服务可以调用多个规则,规则本身可以根据上下文环境判断是否可以执行,从而完成复杂的业务逻辑而无需编码;④服务可以调用脚本或JavaClass完成平台不能配置或不易配置的业务逻辑。逻辑层主要包含了各类插件及中间处理组件,系统为SOA架构(如图3所示),其主要目的是: ①使总线成为业务对象之间共享数据、交换数据的唯一媒介;②总线的生命周期是Session,即从用户会话开始到用户会话结束数据总线是一贯和连续的;③数据总线是线程独享的、线程安全的,一个线程对数据总线的改变不会影响到其他线程对数据总线的使用,每个线程使用的都是总线的副本。

  数据总线包括Form、User总线等[3]。Form的类型是BOInstance。使用Form实现对HTTP GET的QueryString的封装或对HTTP POST数据的封装,它同时可以充当界面上Form的值,也可以是通过AJAX方式传递的参数;User的类型是BOInstance,通过Form对登录用户封装,User在登录自定义动作里进行创建;通过MVCController操作总线,为了减少调用次数,总线和面板操作及服务操作放在一起进行。元模型层面提供对WebService的支持,即平台中每个服务都是可被调用的Restful WebService。

003.jpg

  (3)持久层

  持久层提供了各类服务组件和可扩展的组件,将各类服务以组件的方式进行封装,包括组织权限、数据库访问、国际化等,扩展组件包括WebService和Restfull等接口的实现,充分发挥了平台的灵活性。其中,数据库访问组件的建立包含了多种方式不同数据库的连接,支持多种不同的连接方式。

2 快速开发平台实现

  该平台由操作人员通过管理界面的配置来达到项目开发的目的,基本是零代码量来开发系统。配置界面的主要功能有控制器、工作流管理、组织定义管理、数据库管理、图标使用、数据字典等。由于篇幅关系,重点详解控制器类的实现。

  (1)控制器管理。平台中界面展示都是通过各种控制器控制输出的。传统的MVC模式,一个界面对应一个控制器,其界面与控制器是粗粒度的,这也是传统MVC模式在复用方面无法做到更细更深层次的一个根本原因。本系统采用多层次的HMVC模式,使得界面层能够实现从粗粒度到细粒度的灵活复用,即从比较大的界面区域到最细粒度的界面元素都能够得到良好的复用支持。控制器主要包括面板控制器、表格控制器、表格元素控制器、功能树控制器和菜单控制器5类。控制器的建立主要是指这5类元素的建立和搭配,元素的建立都是通过配置界面进行的,用户只需要了解业务流程即可,不需要进行任何代码的编写。控制器的实现如图4所示,主要由MVCControl类实现,DOFormBean类进行业务对象的组织,通过DoViewTemplat模板类进行展示,BIOIstence类是服务总线类,Session类进行服务总线生命周期的控制,CacheMem是加载的系统默认配置数据[2,4]。

004.jpg

  (2)工作流管理。本平台工作流的建立是在可视化操作界面通过拖拽的方式进行的。本平台同时提供了请假流程的用例,以方便用户熟悉工作流的建立。主要通过流程模板、模板变量、节点、业务数据这几个关键部分进行协调工作。

  (3)组织定义管理。本系统对组织结构进行高层抽象,每一个类型的组织结构(如部门、员工、集团公司、事业部等)都可以注册为Parter。组织结构可以增加、删除、替换,所以平台的组织结构是灵活、可扩展的。用户只需简单的设置,就可以拥有自己的组织权限管理功能。

  (4)数据源管理。在数据源中存储了所有建立数据库连接的信息。就像通过指定文件名可以在文件系统中找到文件一样,通过提供正确的数据源名称,可以找到相应的数据库连接。平台提供了3种连接数据库的方式:(1)JNDI方式。数据库的连接信息存储在SEVLET容器或应用程序服务器中(如Tomcat、Weblogic、Websphere等),由其提供数据库的连接池。推荐用这种方式。(2)直接JDBC连接。数据库连接信息存储在平台中,每次数据库访问都会请求一次数据库连接。(3)平台提供的数据库连接池。数据库连接信息存储在平台中,与JDBC唯一不同的是“服务器初始化”选择“是”。数据库访问会从平台提供的数据库连接池请求连接。

3 快速开发平台建立项目的步骤

  应用快速开发平台可以方便地建立各类应用项目,主要分为以下几步:(1)分析需要建立项目的需求,明确业务需求的业务对象;(2)建立工程;(3)选择数据源,可以选择不同地址及类型的数据库;(4)建立数据对象,数据对象的建立可以在页面上逐步录入,也可点击导入已有的建立库表的语句;(5)数据初始化,根据对象,初始化数据、组织权限及业务表数据;(6)系统配置、初始化完成后,工程名的子菜单会显示出所建立的对象名称,每一个对象下面对应的有面板和服务,面板就是对象展示的方式,服务就是对象的处理逻辑,用户可以根据业务需求进入不同的页面进行修改和配置;(7)发布工程,系统配置完成后,点击界面上的“发布工程”,系统自动完成新建工程的部署。

  通过以上几步配置,就能够轻松地实现稳定的MIS系统,几乎是零代码编写量,可以根据业务的变动随时方便地进行配置调整,极大地提高了开发效率,降低了开发成本。

  本文简要阐述了快速开发平台的架构、功能和实现方式,将主流的框架集成于本平台中,为用户呈现一个高效、稳定、可复用、低耦合、通用、功能齐全并且用户体验良好的套件产品。通过平台的集成能力,化繁为简,从而提高了开发效率,让软件工程师将主要精力放在最核心的业务逻辑上,而非写一堆POJO类或页面导航的配置文件这类工作中。基于服务,快速实现业务需求。IT的服务、流程直接反映了业务经营的状况,服务、流程的管理和监控为业务绩效的改进提供了巨大的可能性,它可以告诉工程技术人员在流程的哪些地方存在改进的空间,并为改进业务绩效提供直接的信息支持。

参考文献

  [1] 颜元,武岳山.多标签快速识别算法研究与改进[J].电子技术应用,2012,38(1):81-84.

  [2] 王紫瑶.SOA核心技术及应用[M].北京:电子工业出版社,2008.

  [3] NEWCOMER E, LOMOW G. Understanding SOA with Web Services[M]. 徐涵,译.北京:电子工业出版社,2006.

  [4] JENDROCK E, EVANS L, GOLLAPUDI D, et al. The Java EE 6 tutorial: basic concepts(Fourth Edition)[M]. 李鹏,韩智,译.北京:人民邮电出版社,2012.


此内容为AET网站原创,未经授权禁止转载。
Baidu
map