一、GAP平台整体层次模型
GAP平台全称是RayooTech Global Application Platform,是BD半岛·体育中国在线官方网站集多年应用开发实施经验所提炼的企业级应用开发平台。致力于解决在大规模企业应用和互联网应用开发过程中遇到的共性问题,提供了一套完整的技术环境和技术解决方案,主要功能包括基础框架、业务引擎、快速开发工具和组件库等,提高开发效率,增加软件的复用度,提升企业的项目交付能力。
应用软件开发领域随着各学科与计算机科学不断深入的交织发展,为我们展现出了越来越多的机遇,与此同时也为我们带来了许多新的挑战。一方面应用软件的规模不断膨胀、复杂度不断提高、个性化要求不断加强,另一方面用户对应用软件交付周期提出了越来越短的要求。正如汽车、家电等行业一样,大规模的定制开发能力已经逐步成为企业核心的竞争力。
GAP平台针对当前软件开发过程中的三个关键问题:人员分工问题,软件复用问题,快速开发问题提出了相应的解决方案。并通过对这些问题的解决来满足用户对软件质量、开发周期等方面的要求。
GAP平台采取了轻量级的构建方法,组件式设计可以提高复用率和灵活性。核心架构控制在灵活轻量的规模内,以CBD(Component-Based Development) 的方式集成平台中的众多组件,强调组件内部高内聚,组件间保持松耦合,各组件既能独立运行,也可以插件的方式集成到个平台体系中。企业应用软件的层次模型是整个GAP平台的核心基础,我们依据技术相关度和业务相关度的强弱,将应用软件划分成了六个层次:
技术环境
主要指异构的项目实施环境,由于bd半岛·体育官网提供的是个性化的IT服务而非标准化的产品,我们在项目开发、测试、实施的过程中必须面对各种各样软硬件环境,包括各种 服务器、操作系统、应用中间件、数据库等。基于GAP平台构建的项目能够保证项目可以运行在各种异构的技术环境中,目前GAP平台支持的操作系统有Windows Server、Aix、 Solaris、HP-Unix、Linux等,应用中间件有WebLogic、WebSphere、Sun APP Server、JBoss、Tomcat等,数据库有Oracle、SQLServer、DB2等。
服务框架
是GAP平台的核心和基础,它为构建上层应用系统提供各种基础服务和扩展机制,
包括日志服务、缓存服务、异常处理、事务处理、集群支持策略、分布式调用、配置服 务、数据持久化、数据源服务、监控服务等,除此之外,服务框架层还集成了多个web 框架,包括struts和jsf ,
基于领域驱动思想提供了对JavaEE四层架构的支持:
展现层:提供完善的界面展示框架和丰富的界面控件,解释来自UI层的命令
控制层:用来协调应用活动,转发请求,处理调用方式等,它不包含业务逻辑,它不持有业务对象的状态
领域层:本层包含关于领域的信息。这是业务软件的核心所在。在这里保留业务对 象的状态,对业务对象和它们状态的持久化被委托给了持久化层。
持久化层:本层作为其他层的支撑库存在,它提供了数据对象之间的通信,实现对 业务对象的持久化,屏蔽数据存储层的环境影响。
引擎、组件和工具
服务框架层之上是基本的业务支撑引擎、通用组件和快速开发工具,支撑引擎包括工作流引擎、规则引擎、全文检索引擎、报表引擎,通用组件包括组织权限、工作流平 台、消息平台、接口服务平台、业务日志、任务调度、站内短信、预警平台、内容管理 等,快速开发工具包括GAP-IDE、项目管理器、代码生成器、数据字典等,这一层的组 件把技术环境和具体业务逻辑进行了很好的隔离,在商业环境的运行规则发生改变的情况下,依然能保证整个系统的稳定性。
业务组件
业务组件与通用组件不同,业务组件层主要包含为解决企业特定业务职能而抽象的 业务模型及其实现。每个业务组件代表企业某个相对独立业务或者业务链条,每个业务 组件都具备相关的领域知识,基于每个领域的成熟解决方案构建而成,这样的业务组件不同于某个应用系统中简单划分的业务模块,它是高度抽象化,高度可扩展的。目前我们规划的领域主要包括金融领域业务组件、保险领域业务组件、物流领域业务组件。
业务套件
业务组件层之上是业务套件,业务套件的概念是由GAP平台项目创新性提出,它既 不是传统意义上的标准化成品,也不是细粒度的业务组件和技术组件,而是粗粒度的业务组件集合,每个领域的业务套件基于GAP平台底层框架构建,选取通用组件,引擎和 该领域的业务组件进行扩展开发,形成一系列该领域的业务套件。业务套件可以理解为传统意义上的准产品。
领域应用
领域应用层就是针对特定用户特定项目进行的个性化项目开发,解决特定领域的应 用问题,领域应用层通常会依赖一个或多个业务套件,同时根据客户的个性化需求还会使用到相关的业务组件、通用组件和支撑引擎。这是整个软件结构中的最上层,它调用下面各个层次的服务,形成最终呈现给客户优质的软件产品。
六个层级自定向下依赖,形成一个完整的企业应用开发解决方案。
二、 GAP平台的技术架构
GAP平台所采用的技术全部遵循国际行业标准,JavaEE规范,WFMC, XML,Web Service,IOC,AOP,ORM等,具有良好的扩展性和技术先进性。
GAP平台采用了轻量级的构建方法,在POJO的基础上,封装了Spring,Struts和Hibernate, 实现了主框架平台、基于Eclipse插件方式的IDE平台、遵循国际标准WFMC的工作流系统、遵循JSR94规范的规则引擎,可灵活扩展组织权限系统、辅助项目应用的独立组件库等。
以下是基于Business Service的技术架构图:
从技术角度,我们完全面向Business Service编程,所有的服务以IOC的方式注入到系统中,同时提供各种接口方式进行访问,包括直接引用Web Service 访问,Rmi远程调用,基于HttpInvoker的访问,基于轻量级(hessian,burlap) remote的访问等多种方式,可以支撑各种异构系统的集成。
以下是基于领域驱动的分层技术架构图:
View:展示层,由于GAP平台主要面向B/S架构,展示层主要由web资源文件组成,包括JSP,JS和大量的界面控件,采用了AJAX技术,负责向用户展现丰富的界面信息,并执行用户的命令
Control:控制层,负责展示层请求的转发、调度和验证,同时处理后台 返回的异常信息,同时控制层可以通过Action做远程的请求
Domain:领域层,是系统最为丰富的一层,主要负责处理整个系统的业 务逻辑。这一层主要包括上一章提到业务服务和领域模型,同时负责系 统的事务管理
Persistence:持久化层,主要负责数据持久化,支持O/R Mapping和 JDBC,对数据源的访问提供多种访问方式。
另外,我们引入了Spring的IOC容器,系统的控制层、领域层和持久化层元素都有IOC容器统一管理,实现完全的接口分离和解耦。
三、 GAP平台的功能架构
整个GAP平台由以下几部分组成:
基础框架,提供各种基础服务,包括主框架,通用列表控件和性能监等统一的集成开发环境GAP IDE,在提供标准IDE开发调试功能的基础上,又开发和集成了大量快速的开发和部署插件,以满足业务开发人员的使用应用系统,包括工作流平台,组织权限系统,接口服务平台,消息平台、数据字典和数据交换平台组件库,包括业务日志,规则引擎,WEB控件,全文检索引擎,任务调度,报表工具,站内短信,论坛,Flex组件等
下面分别做简要介绍:
1、基础框架:
基础框架是整个GAP平台的核心,为平台提供基础的服务和架构维护。
首先,GAP主框架提供了对J2EE架构体系的支持:
GAP Web View:为Web页面开发提供辅助。
GAP Web Framework:为Web开发提供一套辅助框架。
GAP Business:为业务层处理提供开发基础和事务支持。
GAP DAO:为数据持久化提供抽象化的处理。
其次,作为一个完善的应用开发平台,GAP主框架同时为开发提供了多样的服务和扩展支持,包括:日志服务、数据源服务、分布式缓存服务、分布式应用、集群部署、异常处理、事务处理、配置管理支持等等。
随着互联网技术的发展,我们发现企业应用不再局限在Intranet内部,企业应用系统的互联网化趋势越来越明显。为了应对互联网的需求和变化,我们对底层框架和前台的UI做了全面的改进,能够支持多语种开发(默认支持中英文),支持多浏览器(IE、Firefox、Chrome、 Safari)。为了更好的满足中小企业的数据存储需求,GAP平台的最新版本除了支持原来的Oracle、SqlServer和DB2之外,增加了对开源数据库 MySql的支持。
同时基础框架还提供了基于事务脚本模式实现的单表和主子表应用,和基于领域驱动设计的网上书店应用。基础框架中的性能监控模块还可以对系统的界面访问、方法访问、SQL执行等方面进行监控,获取性能信息,定义系统瓶颈。
2、统一的集成开发环境:
GAP IDE开发环境是基于Eclipse插件技术构建的,在提供标准IDE开发调试功能的基础上,又开发和集成了大量快速的开发和部署插件,以满足业务开发人员的使用 GAP项目生成器和代码生成器是作为插件集成到IDE工具中的,GAP项目生成器可以根据各项目需求灵活选择功能组件和定义系统架构,GAP代码生成器可以根据数据模型生成单表模式或多表模式完整框架代码,包括view,action,business service,dao各个层次,实现了增删改查翻页等功能。
3、应用系统
应用系统主要指GAP平台中具备独立的业务逻辑和完整功能的应用,能够完整的解决某一领域的问题,具体包括组织权限系统、工作流平台、数据字典、服务平台、消息平台和数据交换平台等。
组织权限系统:实现了企业级组织机构管理和权限管理的可复用应用系统。它实现了企业管理软件系统中常用的系统管理功能,包括组织机构和人员的管理、用户管理、角色管理、权限管理和菜单管理等,可以与 现有的应用软件系统进行快速无缝的集成,使得项目开发人员可以根据项目的业务需求,不用编码或者少量编码,就能快速地实现一整套的组织机构和权限管理的功能。
工作流平台:工作流平台是基于WFMC规范的业务流程管理系统,专注于各类企业级应用中业务流程的建模。提供可视化在线流程设计和表单设计功能够快速、灵活、可靠的支撑企业内部的业务流程管理和再造,使项目开发人员可以根据项目的业务需求,不用编码或者少量编码,通过可视化建模的方式,就能快速生成一个可运行的管理系统。
数据字典:数据字典组件包含三方面的内容:元数据管理、基础数据管理、控制数据管理。元数据管理,是对于数据库表、数据库列、表间关系的管理,可以实现动态修改数据结构而不需要改动程序;基础数据管理可以保证数据的一致性、准确性,并且有利于多个系统间的数据交换;控制数据管理包括界面定制、界面解析等内容,方便用户的界面自定义。
服务平台:服务平台基于SOA思想构建,其核心是业务服务(BusinessService)。主要提供业务服务的注册和消费功能,把基础框架,组件库和业务系统开发的各种业务功能注册为一个 Service (服务),服务方式可以是Web Service、HttpInvoke、Rmi或MQ,同时提供对服务的管理,可以方便的集成其他系统的标准服务。通过对服务层的管理,使得在GAP平台上构建业务应用时变得更加灵活,同时能够更快的响应不断变化的业务需求和业务整合。
消息平台:消息平台是基于JMS规范的消息中间件,实现了分布式的数据交换和消息传递。主要解决企业应用系统之间的信息共享,提供标准的产生、发送、接收消息的接口,简化企业应用的开发。
预警平台:预警平台的功能是对企业信息流转过程中出现的重大问题进行预警,例如对在某个条件下将要发生的事件(事前预告),或者正在发生(事中防范)和已经发生的重大事件(事后警告)给出预警信息,以便于企业管理者对重大事件或者例外事件进行及时的管控,帮助企业优化内部流程。
数据交换平台:在客户的信息化建设过程中,由于诸多因素的影响,各个项目通常是自治的、异构的,数据可能存放于数据库、文本文件、XML文件,甚至普通文件中,无法进行合理、有效的沟通,形成一座座的“信息孤岛”。数据交换平台通过在不同系统间提供数据交流、转换,从而达到数据资料共享,将这些“孤岛”有机地串连在一起,充分发挥其效能。
4、组件库
整个平台框架是基于组件设计的,所以组件库中的组件都可以通过构建工具 ANT加载到已有项目中,或者通过项目生成器自动加载和装配组合,各组件之间高度松耦合。组件列表如下:
业务日志:提供了企业管理业务系统中常用业务日志管理功能,通过配置可以实现同步或异步,编码和申明的方式记录业务日志等。
规则引擎:实现了数据同逻辑的完全解耦,把可抽去的易变更的业务逻辑通过配置文件统一管理,让它们能在运行时可以动态地管理和修改。
全文检索:按照全文检索理论构建的用于提供全文检索服务的系统组件。 全文检索具备建立索引和提供查询的基本功能,此外还提供方便的用户 接口面向web的开发接口、二次应用开发接口,目前已经完成针对各类型文件和数据库大字段的全文检索服务,后续会涉及网络数据抓取的全文检索功能。
任务调度:任务调度通常是为了应对管理维护人员需求,从而更好的实 现对用户任务的管理,基本的任务调度功能是实现周期性的有规律操作。 利用任务调度程序,管理维护人员可以快捷的设置要完成的工作、指定 什么时候完成该工作,并可以通过任务管理器监测该工作的完成情况, 以便能实时进行业务调整。管理维护人员甚至可以控制分配给其所调度的任务的数据库资源和优先级,以确保首先完成最重要的工作,而不会对其它系统的活动产生不可预料的影响。任务调度主要包括:任务调度 控制台,作业管理,作业组管理,触发器管理,日志管理等。
报表管理:报表设计器,报表引擎,报表模板管理(9种常用报表模型), 报表打印导出,在能够支撑通用报表开发之后,后续会涉及商业智能领域,包括数据挖掘,数据分析,数据交换等。
AJAX控件:是基于RIA (富互联网应用系统)技术构建的界面展示控件。 实现数据和表现层的真正分离,增加客户体验,缩短响应时间,减轻网络负荷,主要功能包括:后台数据验证、录入帮助-Google的下拉搜索菜单、级联菜单、动态树编辑-Windows资源管理器、局部刷新、拖拽、反向推-拍卖系统、多种类型的单表和主子表AJAX实现等。
Flex控件:是一套基于RIA技术的Web应用,主要用于前端界面的展现, 提供Flex示例和Flex Component两部分支持。Flex示例提供一些Flex应 用Demo,帮助开发人员了解Flex;Flex Component会提供给开发人员 经过功能封装的Flex的控件,可以通过Flash Builder IDE拖拽使用,或 都在编写ActionScript时调用这些已定义的控件。
站内短信:提供了企业内部网络的短消息发送和离线接收功能,主要功能包括收件箱、发件箱、新消息、发消息、消息管理和消息轮询配置、消息显示方式配置等,并提供了二次开发接口和MSN消息集成的示例,方便扩展。
论坛:提供了主流论坛的所有功能,同时还支持支持独立部署与集成部 署两种方式,支持多种用户登录验证方式。独立部署时采用独立验证方 式,论坛组件作为独立应用时自己进行用户验证;集成部署时采用GAP平台验证方式,论坛组件作为组件可以使用GAP平台本身的用户信息和用户验证功能;LDAP服务器验证方式,论坛组件可以支持LDAP服务器的用户信息验证。
JSF控件:JSF是一款MVC结构的WEB开发框架。对比其它WEB框架,它有 着自己独特的特点和开发方式,在某些应用领域里有着独特的优势和开发效率。伴随着IDE的支持也带来了有着CS架构的开发体验,页面组件化,事件驱动,EL表达式等这些特性使快速开发成为可能。GAP-JSF控件将提供这样的开发方式,以满足不同项目的开发需求,该组件基于MyFaces1.1 和Tomahawk1.1实现,提供了部分基类简化操作,同时提供了一个具有列表控件特征的示例。
四、总结
面向企业和互联网应用的开发平台是IT服务的基础,也是未来的发展趋势, bd半岛·体育官网自成立以来始终坚持科技创新,自主研发的路线,到目前为止形成了以软件平台技术为基础的核心竞争力。基于该平台,可有效促进外包服务企业承接个性化IT服务项目,降低软件外包服务企业的入门门槛的技术难度。未来GAP平台将延展到企业移动应用终端和私有云领域,为企业用户提供全方位服务:Anytime,Anywhere,Any Device!
如果你对IT服务产品感兴趣或想进一步了解相关资料,请与bd半岛·体育官网服务产品推广部联系,
电话:010-62431697 Email:pengliang@rayootech.com