Pentaho之解决方案
在这里我只是阅读了关于Pentaho之解决方案,由于是英文版的说明,所以在这里边翻译边加入了一些自己的看法和心得,与君共享之。
Pentaho的目标是集成企业的各类系统、开源程序及组件,使之能够更加容易地建立企业的解决方案。
基于解决方案的方法
很多年来我们公司一直致力于为客户建立各类分析及报告系统,用户的需求都是千差万别的,但是最基本的要求总是一样!这样看来可以把BI的实施当作一个大型的
过程来处理。
核心过程
Pentaho平台是建立在过程和过程定义上的。
SOA
服务是建立自动运行商业过程的模块。
过程的集成
系统中的每个行为都懂得如何成为其他过程的一部分。
规则
灵活的业务规则是自动运行商业过程的关键部分。
商务智能和商业过程的区分
Pentaho把他们结合到一起了。
案例分析
案情:如果医院中有个医生的行医执照过期了,将会造成以下两种后果:
1、如果使用新的医生替代他,直到他的执照更新,则会增加雇佣费。
2、如果继续使用他,则会损害病人的安全并且有责任风险。
目标:保证病人安全就医、降低责任风险、减低费用开支。
当前的工作流程:每个管理人员都有一份他们科室的医生执照信息表。
可行的解决方案:定期从中心数据库统计出一个报告,其中包含每一个科室医生的执照信息,及当前执照的期满时间。
解决方案一:他们要什么我们就给什么
即每个月给用户提供一份50多页的报告。
解决方案二:给他们他们需要的
1、建立商业规则,由它们来决定所需时间,使每类执照的申请留有足够的准备时间,并增加了解决问题案例的方法。
2、每天或每周运行一个审核报表,列出即将到期的医生名单,并为他们列出详细的更新执照所需步骤。
使用Pentaho建立解决方案
解决方案引擎简介
Solution:由许多文档组成,这些文档共同定义了解决一个商业问题的过程和行为。包含:Action Sequence Definitions、工作流过程定义、报表定义、图片、规则、疑问等。
Solution Repository:组成Solution 的文档及元数据存放的位置。
Solution Engine:用于定位action的定义并控制它的执行。
Component:提供 Solution Engine与执行业务逻辑的程序的接口,用于实现一个任务。
Action Definition:是一个包含参数、资源和设置的XML文件,详细说明了一个Component所要执行任务的配置。Action Definition还定义了调用那一个Component,传入什么数据和从Component获取什么数据,以及Component需要什么特殊信息。Action Definition是Action Sequence Definition中的一部分。
Action Sequence Definition:定义了Action Definition之间的交互,它定义了Solution Engine所能执行的最小任务单元。Solution Engine通过获得Action Sequence 文档来执行,可以单独或自动执行。Action Sequence Definition保存在Solution Repository中。
Runtime Context:用于维护Solution Engine 和Action Sequence之间的通信,以及components和Action Sequence之间的通信。
Design Studio
Design Studio是一个基于Eclipse的插件程序,可以从下面的地址下载。
http://www.pentaho.org/downloads/clientsSolution Repository
解压Design Studio后可以直接运行exe文件打开。
每个Solution都包含许多文件,如Action Sequence文件(*.xaction)等,其中*.xaction文件可以使用Action Sequence editor进行编辑。
Action Sequence Editor
Action Sequence是一个XML文件,它定义了solution engine可以执行的最小任务,并且定义了BI平台各个components的执行顺序。
Action Sequence Editor包含4个标签页,具体功能如下:
1、General
包含一些通用信息,如Title、Author、Icon等将显示在网页页面上。
注意到有些时候这些项填写了诸如“%title”等信息,这表示title信息保存在一个与xaction文件同名的property文件中。
在这里还可以设置日志记录级别,日志存放在jboss/server/default/log/server.log文件中。
2、Define Process
定义了Action Sequence的inputs、outputs及resources,并允许组织Action Sequence及Components间的交互。
inputs为Action Sequence需要从外界导入的信息,有四个信息源:Runtime,为保存在Runtime Context中的参数;Request,为URL中设置的name-value信息对;Session,为保存的用户Session,且每个用户都对应唯一值;Global,类似Session,但保存的信息所有用户都相同;Default,用于每个input和Action Sequence文档。
resources为Action Sequence为了完成自己的任务所需的文件。例如:如果一个Action Sequence想要运行一个报表,则resources就应当包含报表的定义文件。
outputs为Action Sequence执行完成后向外界输出的信息,有三类信息:Runtime;Session;Content,为http响应header或内容。
Flow Control
这里有两种方法来控制Action Sequence的执行:循环和条件。
Actions (Components)
Actions (Components)为Action Sequence执行的单元。
下面我们来介绍一下Actions (Components)是如何协同工作来完成一个任务。
a、可以订制一个Actions (Components)来从数据库中抽取用户的信息(包含Email)。这个Actions (Components)将输出查询结果供其他Actions (Components)使用。
b、下面订制一个循环,把上一个Actions的查询结果集作为循环参数,这样,对应查询的每一条数据,都将执行一遍循环。
执行Action Sequence
可以通过许多方式运行Action Sequence,如Design Studio, URL, Java Code 或 Web Service。
在这里我就不向大家一一介绍了,具体可以参照Pentaho_Creating_Solutions-XXX.pdf,可以从Pentaho官方网站下载得到(英文版)。