您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > 基础软件平台EPGIS——基于泛MDA架构、灵活插件体系的BASK业务构件
第页共9页1电力GIS基础软件平台EPGIS——基于泛MDA架构、灵活插件体系的BASK业务构件平台李功新1刘升1刘金长2杨成月2陈雄华2(1福建省电力有限公司,中国福州350003)(2厦门亿力吉奥信息科技有限公司,中国厦门361009)摘要:业务基础软件平台是解决软件行业基本矛盾的有效方法,BASK业务构件平台规避了目前大多数同质产品在架构设计、模型建模等方面存在的不足,提出了基于泛MDA架构,灵活插件体系的平台建设思路,详细介绍了BASK业务构件平台的架构、体系、模型、功能等内容。关键词:EPGIS;BASK;MDA;可插拔插件;Spring1概述现阶段软件产业的主要矛盾是“不断增长、日益复杂的社会需求与落后的软件生产力之间的矛盾”,其表现出来的主要矛盾是“用户需求的个性化与软件产品的通用性之间的矛盾”。为解决软件产业的基本矛盾,人们一直在进行着持续不断的努力。概括起来,有两个方向,一是软件工程、软件项目管理的方向,一是软件技术革新的方向。对于软件技术革新的问题,《人月神话》的作者Brooks将其分为根本任务与次要任务,其中根本任务是指打造构成抽象软件实体的复杂概念结构;次要任务是指使用编程语言表达这些抽象实体,在时间和空间的限制内将他们映射成机器语言。对根本任务的研究是近几年才开始的,目前已经取得了一些成果,国内多家软件公司开发出了自己的业务基础软件平台,如Justep的BIT,普元的EOS,金蝶的BOS等,并且已经将平台成果应用到实际的项目中。目前针对电力行业的GIS基础软件平台并不多见,与电力GIS紧密结合的业务构件平台也未见报道。2当前基础软件平台面临的问题随着软件行业的发展,在操作系统平台、软件基础架构平台之上发展出来的第页共9页2业务基础软件平台,无疑是软件行业的大势所趋。但是这个过程不可能是一蹴而就,在理论研究、实现方法上还很长的路要走。目前模型化平台的实现存在两种倾向:过分拘泥于经典MDA理论:很多业务平台过分禁锢于MDA经典理论,盲目追求完全模型驱动、零代码实现的目标。缺乏对软件个性化需求有效的解决办法:很多平台产品采用平台语言,平台脚本等方式封装底层实现语言,以语言无关性的名义将开发者和底层实现语言隔绝开来。目前业务基础平台大多采用经典MDA架构对应用系统进行建模,但是MDA理论本身还不成熟,UML2很多工作还停留在纸面上,缺少实际应用的例子。然而现在很多平台却将经典MDA理论奉若圭臬,摒弃原生程序代码(如Java,C#等)在应用系统实现中的作用。由于大多数业务平台捆绑在经典MDA理论的战车上,它们试图实现平台的语言无关性,所以往往都采用平台自定义语言的方式进行处理。MartinFlower认为MDA强调语言平台无关是一个可笑的说法。平台语言的限制和不成熟阻碍了平台的实用性。从广义软件开发层面上看,配置是弱编码,编码是强配置,配置和编码都是软件的组成部分,两者作用不可偏废。所以过分强调配置,忽视代码的作用是不正确的。业务基础软件平台必须在两者之间找到平衡点,并需要探索出将两者作用有效整合的途径。3电力GIS基础软件平台——EPGIS概述电力GIS基础软件——EPGIS(GeographicalinformationSystemforElectricPower)主要包括图形管理平台、图形服务平台、业务构件平台,它采用先进3S+C(GPS、GIS、RS、Communication),COM/DCOM、J2EE等技术,以关系型数据库为基础,对空间数据、台帐以及业务数据进行一体化存储与访问,对通用GIS基础组件库进行组合封装和扩展,提供多种客户端方式的二次开发组件库,第页共9页3涵盖了数据库访问、地图服务、动态表单和工作流引擎等各个方面,基于该平台成功搭建了多个电力GIS应用,可为电网规划、生产管理、调度管理、通信资源管理、车辆管理、营销管理、防灾减灾与应急指挥等应用提供基础平台支撑。金字塔文件数据库大型商用空间数据库电力GIS基础软件平台业务构件平台图形服务平台图形管理平台自动成图组件图形渲染组件拓扑管理组件电力对象组件数据访问组件查询定位服务电网分析服务空间分析服务图形展现服务高级应用服务文件报表服务任务消息服务专业应用服务工作流平台基础业务服务B/S客户端表现层C/S客户端表现层企业级应用开发平台J2EE通用GIS基础平台GeoStar平台ArcGIS平台其它GIS平台图1EPGIS基础软件平台架构BASK业务构件平台是基于泛MDA架构,拥有灵活可插拔插件体系的业务基础软件平台。它强调平台服务于开发人员而非业务人员,着眼于将软件开发者从繁复的软件工作中解放出来,以关注那些需要个性化处理的开发工作,提高软件生产力。BASK平台对通用性业务提供模型建模功能,同时拥有灵活的可插拔的插件体系,插件采用Java语言编写,对Java语言的使用没有任何限制。BASK平台基于JavaEE语言平台,采用了Spring,Hibernate,Quartz、EXT、dhtmlx、Lucence等开源技术框架,拥有一个自行研发的Web组件库。由基础模块、业务模块、流程模块、报表模块、信息模块、任务调度、文件服务、全文搜索等8大模块组成。提供了基础模型、业务对象模型、流程模型、报表模型的建模工具,我们通过图进行描述:第页共9页4平台解析引擎建模工具平台功能插件体系JavaEEWeb应用服务器、Oracle数据库基础模块SpringHibernateEXTdhtmlQuartz业务模块流程模块报表模块信息模块任务调度文件服务全文搜索Lucene日历控件菜单控件工具栏控件Grid控件签名控件组织选择控件人员选择控件多选下拉框...业务对象控件Web控件库图2BASK基础业务平台架构BASK平台提供了一个基于WEB的可视化建模工具,可以通过属性配置和图形化配置的功能定义企业模型,企业模型包括基础模型、业务对象模型、流程模型和报表模型。BASK平台为企业模型进行了高速缓存,平台解析引擎直接对缓存的模型进行解析,以实例化最终的业务系统。4BASK平台的基础模块基础模块提供了组织机构建模、人员建模、角色定义、菜单建模、权限控制、字典表管理等子模块的功能。组织机构是企业模型的基础,安全控制,业务流转等功能依赖于组织机构模型。BASK平台提供了机构、部门、用户组等丰富的组织建模功能,此外,对于组织机构业务属性可以通过配置的方式进行定义,实现了组织机构拓扑模型、组织机构业务属性模型的全方位建模。BASK平台采用RBAC(RoleBaseAccessControl:基于角色访问权限)模型进行权限控制。系统事先对可控操作资源进行定义,然后为角色分配可用操作第页共9页5和可用菜单。通过系统授权模型将角色分配给用户,系统用户的操作权限是其所拥有角色权限的并集。BASK平台提供了一个字典表管理模块,开发者可以在字典表管理模块中对类似于学历、性别的字典表进行管理,实现了字典表全方位管理的功能。BASK平台也为字典表提供了高速缓存,以便在业务解析,模型展现,属性翻译时方便快速地访问到字典表数据信息。5BASK平台的企业业务模型BASK平台的企业业务模型由业务对象模型、流程模型、报表模型三者组成,它涵盖了业务模块、流程模块和报表模块的功能。企业业务模型是BASK平台的核心,它提供了对业务数据采集、存储、检索、加工、流转、展现、编辑、输出、安全等全方位的业务建模功能,涵盖了业务系统对业务数据处理各方面的通用需求。5.1业务对象模型业务对象模型是企业业务模型的基础,它由业务类、业务关联、属性含义、查询方案、编辑模板、业务状态、业务操作、安全控制等内容组成。首先,业务类从数据结构、数据存储、数据处理、数据展现等方面对业务数据进行建模,建模信息可以被数据层、业务层及展现层利用。具体地说,BASK平台可以通过业务类信息创建业务数据表、进行业务数据有效性校验、对业务数据进行增、删、改、查的操作、为业务数据生成对应的页面表单。因此业务类又是业务对象模型的基础,是BASK平台最重要的业务抽象概念。查询方案对业务数据的检索需求进行建模,一个查询方案和一个主业务类绑定。提供了检索条件、结果显示、结果导出、结果操作、数据可视域等多方面的建模内容。对于业务系统来说,在数据查询时,一个很现实的需求是:对于相同业务,不同单位用户需要看到不同数据范围的数据。BASK提出了单位分级策略的方案进行解决。BASK平台会根据用户身份及查询方案绑定的单位分级策略自动计算出对应的数据可视域,实现业务数据在单位维度上的灵活切割。第页共9页6业务对象加工处理操作可以划分为两种类型,一类是诸如增、删、查、改、显示等业务无关的通用性操作。而另一类是和业务相关的个性化的操作,如保存数据后,发送一条短信通知信息,调用某个远程服务等。这类操作是无法穷举,无法建模的,只有通过代码进行实现。BASK平台允许你通过业务操作定义业务相关的操作,按照平台协议通过插件定义操作对应的逻辑代码。业务安全是业务系统不可缺少的组成部分,BASK通过业务状态、用户角色、或业务状态+用户角色进行业务安全控制。由此产生出了业务状态安全域、用户角色安全域以及状态角色复合安全域三种安全域模型。5.2流程模型BASK的流程模型构建于业务对象模型的基础上,实现了流程流转规则,签收、回退、处理等执行规则以及执行者分配策略等全方位的建模功能。一个业务流程绑定一个业务类,一个流程任务节点对应业务类的一个状态。实现了流程流转、任务节点操作、执行者绑定等整体模型驱动的功能。BASK平台为流程模型提供了图形化的配置工具,流程图包括开始结束节点、分支逻辑节点、任务节点、等待节点、自动节点、子流程节点、迁移等建模元素。其中分支逻辑节点包括并行节点,异或节点、或节点三种类型,对于分支路径的选择,BASK不但支持SQL表示式、业务对象表示式、决策接口等方式定义路径自动选择策略,还允许通过人工选择的方式进行选择。对于具体流程实例来说,必须通过一定人员分配策略绑定一套具体的执行者。执行者过滤策略是流程模型的重要组成部分,BASK的流程模型通过组织机构上下文、流程上下文、业务对象上下文建立起了一套通用的执行者过滤模型。一旦某个用户启动一个流程实例后,通过执行者过滤模型,整个流程的候选任务执行者就确定下来了。5.3报表模块BASK平台认为报表服务包含报表数据准备和报表展现两大块。目前大多数业务平台、报表工具仅解决报表展现的问题,而将报表数据准备的工作留给开发第页共9页7者自行完成。由于报表数据是业务数据综合体现的结果,如何将业务数据转换并提取统计数据是报表模块的根本任务,而将统计数据展现成报表则是次要任务。一般情况下,一张统计报表对应一张统计数据表,统计数据表事先由报表数据准备引擎根据数据准备规则定时生成。通过执行规则制定出报表数据准备引擎的执行计划,以便数据准备引擎周期性定时执行。对于数据准备规则无法描述的统计数据,BASK平台允许开发者编写数据准备插件,以代码的方式实现个性化数据准备的需求。报表设计包括两方面:其一是报表格式的设计,其二是报表数据的设置。BASK平台提供了报表设计工具,通过图形化的方式设计报表格式,同时为报表指定数据来源:选择统计数据空间、指定数据维度、绑定统计数据。BASK报表模型解决了报表数据准备、报表格式定制以及报表展现和整体过程,和单纯的报表设计工具相比,拥有更高的开发效率。6BASK平台原生语言插件拥有灵活的基于原生语言(如Java,JavaScript等)的插件体系是BASK平台区别于其它业务基础平台的一大特色。通过这个插件体系,BASK平台可以方便地解决业务的个性化需求,使业务系统拥有很大的可塑性插件体系包含插件编写、插件注册、插件绑定、插件调用、插件处理等五大方面的问题,BASK平台很好地解决了插件体系的五大问题,如图所示:第页共9页8插件库插件1插件2插件3插件4......企业业务模型平台解析引擎34插件1使用Java,JavaScript编辑2使用Spring注解驱动自动注入5逻辑处理图3BASK插件体系插件编写:
本文标题:基础软件平台EPGIS——基于泛MDA架构、灵活插件体系的BASK业务构件
链接地址:https://www.777doc.com/doc-1639716 .html