基于SOA的商业智能平台的研究与设计
2010-09-01 20:27 乱世文章 阅读(221) 评论(0) 编辑 收藏 举报1 概述
自商业智能这一术语1989年由GartnerG roup的HowardDresner首次提出,经过十多年的发展,已成为软件业发展的一大趋势。在全球化视野下,商业智能市场成长迅速,商业环境和竞争节奏发生急剧变化,客观上提升了企业对商业智能的要求。
作为以数据驱动的决策支持传统的一种,现有的商业智能工具过于关注数据层面,而缺乏商业业务流程的考虑。现今,企业比以前更多地依赖于业务驱动同时,业务问题的解决方案是包含商业智能的一个业务流程,所以一个不理解业务流程的商业智能工具难以成为业务流程的一部分,也难以集成到企业的解决方案中。据预测,商业智能工具与企业解决方案紧密集成将成为商业智能发展的趋势。
1.1 以商业流程为中心的商业智能平合设计原则
针对传统商业智能工具难以集成的缺点,本文提出商业智能与企业商业流程紧密集成的观点,并提出以商业流程为中心的商业智能平台设计原则:
(1) 定制 性 :支持商业工作流的定制和构建;
(2) 灵活 性 :商业工作流可以随业务流程的变更而灵活地变更;
(3)易 建 模 性:提供易于进行复杂或简单的商业流程建模的可视化工具
(4) 扩展 性 :附加的商业智能工具和外部系统可以组件的形式很容易地无缝插入到平台中,而不需要修改原有平台;
(5) 即 时 性:存在一个零延迟环境(zero latencyenvironment),任何业务事件的发生均可即时触发业务流程。
1.2相关工作
近年,商业智能的研究集中在商业智能的实时性和安全性,与知识发现、语义和专家系统、互联网信息提取的结合等领域。比较有代表性的商业产品是IBM公司的商业智能解决方案。IBM提供了全面的商业智能解决方案,包括前端工具、在线分析处理工具、数据挖掘工具、企业数据仓库、数据仓库管理器和数据预处理工具等。2006年,开源厂商Pentah。推出名叫Pentaho的面向解决方案的商业智能平台,其将开放源码组件/公开标准和流程驱动引擎集成在一起,通过合并改进商业智能和工作流/流程管理,以开放源码的方式来解决商业智能问题[31,并为集成第三方的商业智能组件提供开放的编程接口。新 的商 业 智能系统不再是一个孤立的应用,它与企业中的其他应用系统将紧密集成,一种底成本的、有效的解决方案便是将企业现有系统或遗留系统集成到商业智能解决方案中。Pentaho平台基本符合1.1节提及的原则,在一定程度上解决了传统商业智能工具难以集成到企业业务流程的问题,但由于其开放接口局限于特定的编程语言,依然存在不能有效集成现有系统和遗留系统等外部系统的缺点,由于没有提供全面完善的集成机制,导致了相对高昂的集成成本。本文 提 出 一种开放式的混合分析/事务处理的商业智能应用平台一一一种基于SOA架构的开放式商业智能平台(SOA-BasedB usinessIn telligenceP latform,SB BIP),SB BIP预集成商业智能组件,为平台外的商业智能组件提供了基于SOA架构的集成机制。集成机制定义了开放标准接口,可集成平台外的商业智能组件,并为集成现有系统或遗留系统等外部系统提供Web Service:接口。集成机制为组件、外部系统和引擎之间提供了统一的数据传输管道,在数据交换层面进一步减低了平台架构中各部件的融合性。
2 平台架构
SB BIP 的 基本思路是以工作流引擎为中心,预先以WebService形式定义工作流引擎与各组件的接口,SBBIP自带的商业智能工具以组件的形式松祸合地预先集成到核心层中,包括附加的商业智能组件,与外部系统一起由核心层的工作流引擎统一调度运行。SBBIP的平台架构如图1所示。
2.1 效据访间层
数据访问层向核心层提供多种通用的数据访问接口,支持的数据源包括关系数据库、OLAP. XML和文本数据源。核心层对OLAP的访问接口采用Microsoft公司与HyperionSolutions公司倡导的标准组织制定的数据通用访问规范:XMLf orA nalysis(XMLA)"1o X MLA接口完全基于WebService协议,使SBBIP与OLAP的实现方式得以完全分离。
2.2 核心层
核心层中处于核心地位的是工作流引擎。工作流技术能实现基于业务流程的集成,它已经成为企业应用集成的一个重要部分。工作流提供了业务过程逻辑与它的信息支持系统的分离,并实现了应用逻辑和过程逻辑的分离。
2.3 展现层
展现层提供门户式的浏览器界面和外部WebS ervice服务接口,支持脱机浏览功能。
2.4 解决方案开发构建工具
解决方案开发构建工具提供一个集成的统一的开发构建环境,用于定制报表、商业规则、数据挖掘策略和工作流等商业智能组件,并将其存放在解决方案库中。按照业务流程的需求分析,将已定制的商业智能组件组合定制为工作流,最终集成为统一的解决方案。SBBIP将每个商业智能组件按照业务粒度设计成多个可执行的业务过程,解决方案构建工具可灵活地改变业务过程的工作流模型,故不用改变SBBIP平台架构和已定制的商业智能组件,企业就能对业务过程的变化做出迅速响应。解决方案开发构建工具使SSBIP符合定制性、灵活性和易建模性的原则。
3 SBBIP核心引擎的运行机创
图2 是 S BBIP核心引擎的架构。平台运行前,需要对定制的解决方案部署在平台上。当平台启动,解决方案库中定制的业务流程首先经过解析器解析,然后由审核模块和安全控制模块进行审核和安全控制,并根据解决方案的解析结果进行运行上下文的设置,同时进行组件的初始化和加载运行。运行上下文负载了工作流引擎环境的配置信息和运行信息,工作流引擎根据运行上下文的交互,调用标准定义的接口驱动插件。在必要的时候,工作流引擎可调用规则引擎进行规则运算,根据运算结果重新设置运行上下文,使得规则的结果生效。
4 SBBIP的集成机制
4.1 核心引,的组件标准化接口
为了实现可扩展插件式的体系结构,核心引擎提供了标准化的回调接口。对于一个组件,可根据功能划分为多个模块,每个模块均需分别实现控制接口,单个模块对于工作流引擎来说相当于一个任务,是工作流引擎控制的最小粒度。如图3所示,接口类型调用顺序依次是initialize,ex ecute,view,stop.
接口的具体方法的定义和功能见表1。当工作流引擎需要启动并运行某模块前,调用initialize类型的方法,进行设置运行上下文、设置组件定制信息和其他必需的初始化。初始化完成后,工作流引擎调用receiveData方法接收来自数据传输管道的组件运行必需的数据和参数,并调用isValidate方法检查组件是否获得运行必需的输入、输出、资源等条件。检查通过后,调用execute方法运行组件。运行过程中可能发生向数据传输管道读写数据,或者被弧行停止运行。每次运行后都通过setViewInfo方法通知核心引擎如何进行可视化反馈。最后,由close方法清理资源并将组件关闭。如图 2 所 示,对于外部系统、现有系统和附加的商业智能组件,SBBIP提供与表1的本地接口完全相同的WebServices的标准控制接口。接口模块的封装为工作流引擎屏蔽了Web Services接口和本地接口的差异。对于外部系统和现有系统,采用工作流引擎调度的最小粒度单位为原则进行模块的划分。Web Services的平台无关性和语言无关性在最大程度上增强了SBBIP的扩展性。
4.2数据传物管道
为了保证 数据传输的效率和有效管理,SBBIP的工作流引擎、外部系统和组件之间采用数据传输管道的机制进行数据传输。数据传输管道对socket的封装满足了异构平台之间传输的需要。数据传输管道提供简单的同步机制,确保数据符合“先进先出”的原则。数据传输管道中采用XML作为数据传输格式,使得集成外部系统成为可能。
5 基于SBBIP的商业智能开发模式
如图 4 所 示以瀑布模式为例介绍基于SBBIP的商业智能开发模式。在需求分析阶段,要求明确业务目标,并综合商业流程的理解与分析,提出对实现业务目标有建设性的关键指标和绩效指标,最终明确报表、数据挖掘等组件需求,为开发过程提供基础性依据。在不同阶段分别引入测试阶段,目的是尽量避免由于模块内部的错误而影响整个系统。在SBBIP的开发中,不必承担商业智能组件无法集成的风险,从而可以使开发者集中精力进行业务逻辑分析和定制数据挖掘等复杂的商业智能组件。
6 应用场景
考虑一家在多个城镇设有分店的ABC百货公司,决定采用一套完整的商业智能解决方案,目标是提高客户的满意度和公司决策水平。解决方案包括专业的产品咨询系统,客户服务系统和用于市场/产品研究决策的决策支持系统。一种基于SBBIP的解决方案架构如图5所示,遗留的决策支持系统根据业务粒度进行服务的拆分,与商业智能组件一并集成到SBBIP的核心层中,组成全新的市场/产品的研究决策系统。
7 结束语
本文结合SOA架构提出了SBBIP平台并给出基于SBBIP的开发模型,目的是解决商业智能组件与企业商业流程的集成问题。基于SBBIP,企业可在有效利用企业原有信息资产的前提下,构建并开发面向商业流程的统一的商业智能解决方案,并对企业业务变化作出灵敏响应。在SBBIP基础上,以后的工作是进一步扩充SBBIP的功能,主要包括:
(I) 商业流程模型的重用与整合。电子商务和企业整合刺激了当今企业将其商业流程部署在网路上,如何有效重用现有的商业流程引起了研究者的兴趣,如何在SBBIP上有效地整合和利用现有的商业流程模型需要进一步研究。
(2) 分布式环境中的SBBIP。集中式的数据处理分析已经越来越难以负荷日益增加的数据量,如何将SBBIP迁移到分布式计算环境也是一个重要的研究方向。
(3) 实时性的考虑。传统的商业智能平台需要进行耗时的数据整合过程而难以提供实时的服务。针对数据整合问题。