您现在的位置是:首页 > IT基础架构 > 软件与服务 >
基于Web Services的商业智能系统研究与设计
摘要针对传统商业智能存在移植性、集成性和可扩展性差等弱点,研究基于Web Services的商业智能平台。在分析商业智能当前应用状况和商业智能体系结构的基础上,给出了整个系统比较完善的解决方案,构建了基于Web服务的新型的数据ETL和前端展现方式,引入语义层作为数据仓库到商业...
0 引 言
随着信息技术的高速发展,企业所处环境和组织结构越来越复杂,市场竞争日益激烈,商业智能作为保障企业高效运营、正确决策和快速响应的有效手段,有利于人们收集、整理、分析和评估大量数据。商业智能相关技术的研究至关重要。目前,商业智能系统往往存在移植性差和集成性差等问题,缺乏可扩展性和灵活性,随着各种技术的发展,软件规模的不断扩大及其复杂性的不断增加,对商业智能相关问题的研究变得越来越迫切。同时,Web Services技术广泛地应用到了企业的IT系统和商业流程中,并给企业带来了直接的经济效益,Web Services具有封装性、松散耦合性、行业标准性、可扩展性、高度集成性等特点。如何灵活地整合商业智能和Web Services技术,使之有效的对数据进行集成、处理和分析,提供全面、完善的解决方案,从而更好解决面临的问题,具有重要意义。
1 基于Web Services的商业智能平台设计
1.1 Web Services集成
Web Services使用标准的XML协议和开放的Internet标准,在平台、语言和发布者之间能够互相独立,且消除了现存解决方案总的互用性问题,给企业应用带来了新的集成体系结构。在集成中,开发人员将需要复用的方法和业务功能构建为Web Services,然后使用相应的工具将这些Web Services发布到服务注册库,这砦服务可以得到统一的管理维护,并使用SOAP协议通过HTTP来调用。从应用的外部来看,应用是由一系列标准的服务接口组成。其它任何语言、平台上的客户应用都可以从服务注册库查找Web Services,阅读Web Services的WSDL文档,生成SOAP请求消息,嵌入在一个HTTP请求中,调用Web Services。因此,客户应用是以标准的方式透明地调用、以及重新组装这些提供的服务来达到集成目的。
1.2 Web Services在商业智能中的作用
在商业智能系统中,Web Services可以用于访问保留系统,使用内部或者外部网络来进行计算机间的交互,允许应用软件在不同的平台上用不同的语言进行通信等。
通过Web Services在公司之问共享商业智能信息涉及以下步骤:①公司A通过将该公司的Web Services的URL发送给使用者或者将信息发布到通用描述发现和集成(UDDI)目录提供Web Services;②公司B(使用者)预定公司A发布的Web Services;③公司A为公司B建立安全配置文件,并根据公司B的要求使用SOAP提供商业智能;④公司B可以预定公司C,公司D等多个合作伙伴提供的商业智能Web Services,并可以将此外部商业智能的所有内容与它的内部信息相结合。
通过上述方法,公司B可以访问公司A的产品信息、公司C的库存信息以及公司D的销售信息。同时,公司B又可以向其客户提供此信息的某些内容或全部内容。图1显示了一种商业智能的Web Services部署。
1.3 平台结构
本文提出并设计了一种基于Web Services的商业智能平台,该平台采用B/S(Browser/Server)结构模式。用户界面设计为浏览器中呈现的Web页面,用户根据Web页面信息,从浏览器向服务器提交服务请求,这些请求包括对OLAP数据的查询、数据挖掘和数据ETL等,服务器端负责对请求进行处理,并将处理结果通过网络返回浏览器端。通过一个浏览器可以访问多个应用服务器,形成点到多点、多点到多点的结构模式。图2给出了本文设计的基于Web Services的商业智能平台结构。
各组成部分说明如下:
(1)数据源层:包括关系数据库(Sybase ASE、Sql Server、Oracle、DB2等)、文档(文本、XML)等中的业务数据,主要来自于企业中的各种业务系统。
(2)数据ETL层:由数据ETL服务器和发布的Web Services组成,目的是将数据源中的业务数据经过抽取、清洗、转换、装载到数据仓库和数据集市中,在本平台中首先在数据ETL服务器中按要求定义特定的ETL作业,确定数据源和目标数据库,然后将特定的E]几作业发布为Web Services。数据ETL服务也具有连接数据ETL服务器、查询、执行和管理作业的功能。
(3)物理层:物理层采用数据仓库/数据集市,保存处理过的稳定的业务数据,在本平台中支持各种保存数据仓库/数据集市数据的关系型数据库和OLAP服务器。
(4)语义层:作为数据仓库到商业智能服务器的连接中间层,用来给用户提供一种便于理解的数据模型,便于用户自己建立需要的服务和生成数据分析。语义层通过数据ETL工具生成和修改,由商业智能服务器管理。
(5)逻辑应用层:由商业智能服务器和前端展现服务组成。商业智能服务器具有分析引擎、管理元数据和安全功能,是用于串联后台提供资料整合的数据仓库/数据集市,为前端提供报表、查询和分析,以及绩效管理与数据整合等的服务器。前端展现服务具有连接(分析服务器等)、查询(服务、报表、分析结果等)管理(权限、报表和语义层等)、发布、保存和目录(文件、语义层等)的功能,发布后提供给用户、企业内部系统和外部企业系统调用。
(6)表示层:负责数据的呈现,作为人机交互界面,采用了B/S结构,能实现不同方位的数据透视,配合数据的挖掘钻取技术,使用户关心的和会引起关注的数据尽览无余。查询、报表、分析和图表生成等工作简便易行,创造了一个轻松、自由的数据分析环境,使数据的价值得到提升。用户类型包括个人用户,企业内部系统和外部企业系统。
2 基于Web Services的商业智能平台关键部分设计
根据商业智能设计理论,商业智能设计主要包括数据仓库设计、联机分析处理设计、数据挖掘模型设计、数据集成设计以及数据分析设计。
Web Services在商业智能系统中的应用主要体现在数据ETL过程和前端展现过程中,也就是说中,在基于Web Services的商业智能平台中,基于Web Services的数据ETL和前端展现是整个平台的关键部分,为此本文着重研究基于Web Services的数据ETL和前端展现的设计。
2.1 基于Web Services的数据ETL设计
2.1.1 Web Services和用户权限
管理员发布Web Services,使得用户可以通过Web Services向数据转换服务器发送执行作业的请求。
用户调用发布的Web Services,输入相关的参数,服务器调用适当的作业服务器和作业来处理请求,最后将需要的结果返回。
2.1.2 基于Web Services的数据ETL
基于Web Services的数据ETL由数据ETL服务器和发布的Web Services组成,目的是将数据源中的业务数据经过抽取、清洗、转换、装载到数据仓库和数据集市中。数据ETL的web Senrices具有连接数据ETL服务器、查询、执行和管理作业的功能。图3给出了基于Web Services的数据ETL结构。
上述结构中关系数据库用于存储ETL服务器中产生的元数据。ETL服务器将配置好的作业元数据存入关系数据库中。将所提供的COM组件封装成各种服务并注册到服务注册库中,服务请求者通过在服务注册库中查找合适的服务进而调用服务完成作业。
基于Web Services的数据ETL针对数据ETL要解决的问题,提供不同的功能服务,主要有以下几种:
(1)身份验证服务:身份验证用于安全控制。在服务器端进行身份验证可以获得调用者的身份并判断其是否具有执行相关服务的权限,从而防止非法调用者获取或者破坏重要数据。
(2)作业执行服务:作业执行服务按作业性质分为两类,批处理作业服务和实时作业服务。通过数据ETL服务器定义特定的作业,将其发布为Web Services,然后调用同作业对应的Web Services来执行作业,并且返回作业执行状态。
(3)作业管理服务:管理已发布的作业执行服务,具有修改作业执行服务的权限,删除作业执行服务等功能。
(4)执行信息记录服务:查看执行服务的结果和过程信息,按时间顺序存放,自动删除过期数据。
2.1.3 数据ETL的Web Services的WSDL结构
本平台的数据ETL的Web Services中定义端口如下:
(1)Connection_Operations//连接操作
(2)Real-time_Jobs//实时作业
(3)Batch_Jobs//批处理作业
图4给出了上述数据ETL的Web Services结构。
图4中包含一个名为Data ETL的服务,端口名为Balch_Jobs和Real-time_Jobs,一个批处理作业操作名为Update_Prices,一个实时服务操作名为Get-Quote,每一个操作都有一个input和一个output的消息。
2.1.4 批处理作业的消息和操作
服务器发布WSDL定义怎样启动批处理作业。WSDL将每一个批处理作业的名字定义为一个操作。WSDL为每一个批处理作业操作定义了下面的消息:
(1)头消息:如果消息的安全性被确认,就在消息的头中定义一个安全Session标识。
(2)Input消息:Input消息将信息传递给批处理作业,给出批处理作业启动需要的信息。Input消息的名字来自于服务器定义的操作,后面加入后缀Input。
(3)Output消息:Output消息用于确认批处理作业的启动或者提示错误信息并阻止作业的启动。Output消息的名字来自于服务器定义的操作,后面加入后缀Output。Output消息包含job identification。同时它也包含启动作业的进程ID和启动作业的服务器计数器ID。
(4)Fault消息:批处理作业启动失败时,服务器返回一个错误消息。含一个描述错误的文本并阻止作业的启动。
图5给出了WSDL为批处理作业定义的操作和相关的消息的语法。
2.2 语义层的结构设计
本文提出的语义模型的基础上结合数据仓库模型并参照business objects公司的Universe设计了语义层作为数据仓库到商业智能服务器的连接中间层,能够支持用户自行建立需要的服务和生成数据分析。语义层为用户提供一个易于使用和理解的接口,易于依据数据库运行查询、创建服务和执行数据分析,增加了系统的可扩展性。
用户连接到语义层,并依据语义层中的对象创建服务,而无需了解有关数据库中的基本数据结构的任何信息。
语义层是一个包含以下内容的文件:
(1)一个或多个数据库中间件的连接参数。映射到数据库中的实际SQL结构,如列、表和数据库函数。
(2)在数据库中使用的表和联接的模式。
语义层的功能如下:
(1)语义层中包括数据库连接参数和相关数据模型,用户和管理员都可以添加语义层,用户可以建立允许访问的数据源的语义层,并且拥有自己创建的语义层的使用、修改和删除权限,管理员可以使用、删除和修改任何用户的语义层,也可以添加和改变用户对语义层的使用权限。
(2)服务器对语义层进行管理,用户可以建立语义层,并导入服务器,也可选择拥有权限的语义层导出进行修改和查看。
(3)用户可以根据语义层内的数据库连接参数和相关数据模型,设定维度和事实数据,建立相应的语义层,调用语义层生成所需要的内容。
语义层包含以下结构:
(1)类:类是语义层中的对象的逻辑分组,它表示对象的类别。类的名称应指明类包含的对象的类别,可以按层次将类划分为子类。
(2)对象:对象是映射到数据库中的数据或数据派生的命名元素,应根据目标用户组的业务词汇指定对象的名称。例如,由产品经理使用的语义层中所用的对象可以是“Product(产品)、“Life Cycle(生命周期)”或“Release Date(发布日期)”。财务分析员使用的语义层町以包含诸如“Profit Margin(利润)”和“Return Investment(投资回报)”等对象。对象类型有维、明细或度量。
①维:用于分析的参数。维通常与诸如地理、产品或时间的层次相关。例如,“Last Name(姓氏)”和“City_Id(城市ID)”。
②明细:提供维的说明,但并不是分析的焦点。例如“Phone Number(电话号码)”。
③度量:传递用于确定维对象数量的数值信息。例如“SalesRevenue(销售收入)”。
用户在语义层中看到的对象推导出已插入到数据库模式中的SQL结构。根据返回数据所需的表和联接创建此模式(用户需要这些数据进行分析和创建报表)。
2.3 基于Web Services的前端展现设计
2.3.1 前端展现Web Services需求
商业智能系统是一个庞大的工程,系统开发需要用到OLAP、数据挖掘、报表等商业智能开发工具,这些工具可能是由不同厂家开发的,而且采用不同的技术标准。如何将这些不同商业智能工具提供的功能集成剑统一平台上,是目前商业智能实施的一个关键问题。
Web Services技术恰好为解决这些问题提供了一种途径。在各种平台上,基于Web或非Web的应用程序,都能方便而有效地调用Web Services,输入相关参数——只要该应用程序使用标准的Web协议通信即可返回用户需要的报表、即时分析结果或者OLAP分析等分析结果。图6展示了Web Services在前端展现中的作用。
2.3.2 基于Web Services的前端展现
前端展现服务由语义层驱动,只有获得语义层的使用权限,才能通过语义层获得数据模型信息、建立参数驱动的Web服务,进一步获得需要的报表、分析结果或者数据元数据。
商业智能服务器通过语义层建立各种报表、分析模型和数据挖掘算法。将商业智能服务器提供的COM组件封装成各种服务并注册到服务注册库中,服务请求者通过在服务注册库中查找合适的服务进而调用服务获得需要的报表等结果。
服务器端提供下列服务由用户调用。用户创建一个连接到服务器的有效连接后,使用下列服务:
Session-管理所有在服务器上的Session信息,包括登入、登出、用户权限和资源。
BIPlatform-用户管理服务器平台,包括服务器管理,调度和发布,对象管理和安全管理。
BICatalog-目录管理,提供在服务器上查看和查找资源的功能。
ReportEngine-管理文档操作,包括处理打开、浏览、钻取服务器上的文档的提示操作。
QueryService-提供创建查询、获取一系列语义层、发现所有的语义层对象、访问并修改或者删除一个已存在的查询。
Publish-提供在服务器上增加删除,拷贝和更新一个资源的功能。
SaveService-提供保存文档的能力,在建立一个新文档后选择保存或者另存为。
3 结束语
本文工作针对商业智能应用中存在的问题,结合商业智能和Web Services,建立基于Web Services的商业智能系统的体系结构,设计数据ETL、语义层和前端展现,实现跨平台操作和数据传输。由此提高商业智能系统的实用性、移植性、集成性和可扩展性,使之可以有效集成其它报表工具、数据挖掘工具和联机分析工具等,有利于提高数据分析的准确性和业务分析的智能化程度。
随着各行各业对商业智能系统需求的日益迫切,必然会对商业智能系统的成功实施提出更高的要求,也必然会有越来越多的专家和技术人员参与到商业智能实施策略的研究中。
(本文不涉密)
责任编辑: