您现在的位置是:首页 > IT基础架构 > 软件与服务 >
.Net框架下的商务智能分析和报表发布体系
2009-08-27 17:46:00作者:洪沙 刘涓池 燕小刚来源:
摘要商务智能是一个企业级应用概念,它将数据库技术、数据仓库技术和数据挖掘技术集于一身。在商务智能的体系中可视的数据分析和分析结果报表发布软件组是其支持企业决策的最直接部分。...
1 商务智能及其前端分析系统的概念
商务智能将数据库、数据仓库和数据挖掘的一系列技术应用集于一身,为企业决策服务。他通过提高企业从历史数据中获取有用信息的速度,来加快商业决策的效率,从而使企业获得更强的竞争力和更高的利润。
商务智能的前端分析工具,是一个实现了数据的浏览和分析等操作的,可视化、交互式的应用系统。该工具的后台可以是关系型数据库,也可以是多维数据仓库。用户无需接触到后台的数据,只要通过前端分析系统就能方便地获取已经组织好的数据,能对任何感兴趣的部分进行察看和分析,并获得报表。用户的报表可以通过多种模式输出、发布或保存。用户也可建立报表模板,系统会自动更新数据和产生报表,同时大量的面向企业内部或外部的报表可以通过报表的发布系统在网络上发布。
现在国内外流行的商务智能系统众多,功能或全或偏,后台有数据库、数据仓库。应用的开发技术、实现的分析算法、对分析结果的表现等方面也是各不相同。在国际市场上微软公司的商务智能系列产品在2002年就占到了领先地位。
微软的.Net平台是其最新推出的概念,它集底层操作系统、企业服务器、Microsoft XML Web服务和开发平台.Net框架于一身。作为国际商务智能领域综合实力最强的软件提供商,微软即将推出的SQL Server2005企业服务器,完全基于.Net框架,是其新一代商务智能战略体系的核心。SQL Server2005不仅整合了SQL Server2000和Analysis Services,而且提供了更加丰富和方便的数据仓库和数据挖掘工具,其整体架构还融入了MS作为商务智能业界领袖对未来商务智能平台的理解。这个时候,开发完全基于.Net框架的前端分析系统,预期与未来的商务智能平台兼容,非常具有战略价值。
然而由于.Net还是种较新的开发技术,世界上还没有一套完全基于微软的体系,以.Net工具开发的前端系统。优势显而易见,基于这样的分析我们开发了这套基于微软.Net框架的商务智能前端分析和报表发布系统。
2微软.Net框架下的前端分析工具的架构
从开发的角度看,.Net框架是一个抽象了XML Web的服务开发平台,基于托管的代码运行体系,他具有比以前任何的微软开发平台更多的先进技术,如代码从用、代码专业化、资源管理、多语言开发、安全、部署、管理等。同时.Net的集成开发环境提供了Windows窗体、XML Web服务、Web窗体等应用程序模型,非常方便和实用。
系统的后端依托的是Analysis Services提供的数据仓库及其分析服务,而系统的结构将尽量使用和适应.Net框架提供的基类和应用模型,用C#作为开发语言。
2.1 主体结构
本系统采用了多层的结构。整体包括:后台数据仓库查询引擎、表示数据封装层、自定义数据展现控件、桌面分析平台和Web浏览平台。桌面分析平台用于普通或高级的分析数据和报表设计;Web浏览平台是报表的发布、管理和浏览平台。系统的主体结构如图1所示。
从图1可以看到前端表现和后端数据仓库之间有一个数据中层间,这一层的性能对系统的速度和功能起决定性的作用,是系统的核心。数据中间层又分为数据提供层和数据中间件两层。数据提供层使用的是.Net框架提供的ADOMD.Net组件。数件中间件包含了封装后的多维数据对象集,查询结果解析器和MDX查询语句生成器。根据数据解析和用户分析的接口需求,在ADOMD.Net提供的数据对象集的基础上进行了重新组合,形成了我们独特的封装后的多维数据对象集。
这样的结构是由.Net框架提供的多维数据源连接组件ADOMD.Net决定的。ADOMD.Net有四个基本的顶层数据对象:ADOMDConnection,ADOMDCommand,ADOMDDataReader和CellSet。ADOMDConnection提供了多维数据本身的结构和连接多维数据源的对象集合;ADOMDCommand储存MDX语句并实现MDX对多维数据的查询;查询的结构由ADOMDDataReader和CellSet返回。
ADOMD.Net使用的MDX(Multidimensional Expressions)查询语言,是通用的OLAP标准查询语言。MDX专为查询多维的数据机构而设计的。虽然本质不同,从语法和函数看,MDX语句与SQL语句非常相似。MDX语句可以指定多个维度,每个维度上允许多个参数,参数是一到多个成员(Member,多维数据集中的概念)。Analysis Services以及微软即将推出的SQL Server2005都支持MDX。在Analysis Services提供的MDX查询支持中没有提供类似数据库的SQL存储过程的机制,所以我们在应用程序中必须在数据中间层提供完整的元数据,采用正则表达式等技术生成MDX。对于需要使用的MDX函数,必须设计一定的类来封装应用。这些功能就封装到图中的MDX查询语句生成器内。
通过上面的分析,再来详细考察封装后的多维数据对象集,这个数据中间件的核心。他的结构设计不仅要考虑正确完整的表现数据仓库中所有数据对象和元数据,而且要有支持前端控件分析展现数据和生成查询语句等功能的所有信息,同时又要适应ADOMD.Net的结构。所以我们以ADOMD.Net提供的多维数据对象集为基础,添加了一定的表现属性,又以组合方式生成一些前端展现必须的特殊对象。在每个对象之上还包装了一层接口,这个接口提供了多维数据对象的元数据获取方法,为查询语句的生成提供了方便。
查询结果解析器和MDX查询生成器都与封装后的多维数据对象集密切相关。前者负责将ADOMD.Net查询返回的结果集CellSet解析成我们封装后的多维数据对象集。在解析时,我们要保证获得和生成必须的属性和对象,换句话说,封装后的多维数据对象集是查询结果解析器的输出。而后者要在用户指定的查询信息中获得元数据生成MDX。用户指定的查询信息是从前端展现部分传入的,以封装后的多维数据对象集为其表现形式,即封装后的多维数据对象集提供的元素据是MDX查询生成器的输入。
2.2 桌面应用程序的架构
桌面应用程序架构也是多层的。如图2所示,主要的表现控件有分析树控件、图表控件和表格控件。每个控件对数据的反应和分析都有一定的着重点,在表现上又有其特殊性,所以其数据模型也必须相适应。而且不同的现实控件都要一定的交互能力,主要是鼠标事件响应。响应鼠标事件的逻辑是一个特殊的层,与每个显示控件相挂接,对其数据模型也有一定的影响。
数据中间层提供的数据是同一的格式,为满足不同表现控件的需求面应用程序添加了一个数据层,即表现和分析数据对象层,该层负责把封装后的多维数据对象集,进一步整理和解析形成可供显示控件使用的三种数模型,即树状模型、表格模型和图表模型。不同的现实控件及其特殊业务逻辑服务。
桌面版本还提供了数据立方体元数据展现控件、各种辅助分析控件和MDX查询编辑器控件等。它们很多是可以直接和数据中间层提供的封装后的多维数据对象集交互的,有的也需要与表现和分析数据对象层交互。这些部分提供了浏览多维数据集的结构、手工编辑MDX查询语句、自定义成员和对查询结果排序和过滤等功能。
2.3 Web部分的架构
系统的Web部分用于发布桌面版本生成的报表。报表按文件夹形式组织和保存。Web客户端页面上显示的报表是一个已经生成好的图像,真正的报表生成程序运行在Web服务器端的报表引擎(见图3)。Web应用程序中也提供和Windows上相同的三个数据表现控件。报表的数据和配置信息都来源于Windows应用程序发布报表时生成的XML文件。客户端请求浏览某个报表时,Web服务器生成报表。
如图3示,最上层是客户端浏览器看到的内容,中间是Web服务器端的程序,我们称之为报表引擎。报表提供者是一个嵌入了报表对象的ASPX页面,如果该报表已经被请求过一次,他只需到已生成的报表存储器中取得该报表。如果报表是第一次被访问,报表提供者模块将通过报表连接器来连接新报表。报表连接器是完成整合数据和表现控件的,数据由数据库连接器访问数据库取得,而报表呈现则用于储存规则以设置报表的外观。
安全体系是相对独立的,用于管理用户权限,可采用Windows的集成验证,也可采用基于Form的用户验证方式。
3 性能测试
软件系统完成后,首先对系统进行了大量的功能测试,找出并修改了上千个bug。系统应用过程已经十分稳定,之后根据桌面工作台和Web报表系统的特点,我们为桌面版本设计了与其它类似产品的比较测试,为报表系统设计了压力测试,以掌握系统的性能情况。
3.1 桌面工作台的比较测试
我们的比较对象是ProClarity5、Cognos两个现在比较流行的BI桌面工作台产品。数据库服务器和运行应用程序的硬件环境都是PC机,PIV1G CPU、512M DDR内存。数据仓库服务由MS Analysis Services提供,数据仓库使用的是MSAS提供的示例数据仓库。测试结果见表1。
3.2 Web报表系统的压力测试
经过考察,国内大型企业在使用报表系统时发生并发访问的数量在200左右,为保证200的并发访问成功率,我们设计了400个并发访问的压力测试。完成的操作是访问同一份报表,并另存该报表在新建的文件夹目录下。硬件环境和桌面版本的测试环境相同。而且服务器也是用同样的PC机代替的。Web报表系统的基本测试信息见表2。
4 总 结
本文分析了一个在微软.Net平台下的商务职能前端分析软件的系统架构。该架构完全适应了.Net平台的整体体系,在这个架构下建立的软件可以实现绝大多数商务智能前端分析工具的典型功能。在系统实现时,我们还非常注重借鉴.Net架构中的经典程序结构,使系统与.Net框架结合得更加和谐。
由于篇幅有限,OLAP查询的许多细节问题还没有讨论到,深感遗憾。该体系与企业业务应用的结合也是一个很值得探讨的问题,需要笔者进一步的工作。
(本文不涉密)
责任编辑: