ITPub博客

首页 > Linux操作系统 > Linux操作系统 > FileNet 业务流程和商业智能结合的解决方案

FileNet 业务流程和商业智能结合的解决方案

原创 Linux操作系统 作者:ArtCode 时间:2009-04-23 16:57:20 0 删除 编辑

序言

业务流程 (Business Process) 将企业的活动描述为一个有开始和结果,中间有一系列步骤的过程。 BPM(Business Process Management,业务流程管理 ) 的目的是为企业业务流程提供一个可创建、修改和管理的平台,从而提高企业运作的效率。 BPM 使得流程的建立独立于应用程序,为业务流程的监视、控制、建模和分析都提供了便利的甚至可视化的工具,加速了流程的优化,非常有利于创建和提高能体现企业利益和目标的业务流程。

我们所熟悉的另一个领域——商业智能 , BI(Business Intelligence),它经过十多年的发展,也已成为软件业发展的一大趋势。在全球化视野下,商业智能市场成长迅速,已经成为企业增强市场洞察力和竞争力的重要手段。但是在传统的以数据驱动决策的使用方式里,现有的商业智能工具过于关注数据层面而缺乏商业业务流程的考虑。

随着对 BI 和 BPM 的兴趣日渐增加,人们开始考虑将两种技术相结合以便获得更多的商业价值。利用 BI 在数据分析上的优势,BI 和 BPM 结合能帮助公司更精确地调整和优化流程,对各种事件更迅速地做出反应,从而避免问题的扩大,能更快地发现市场机会,提高客户的满意度。

FileNet BAM

Filenet BAM (Business Activity Monitor) 就是通过建立商业智能模型来实现对业务活动的监控,实质上是结合了业务流程和商业智能的产品。对于多数的商业智能项目,数据来源为普通的商业数据,而 BAM 监控的是业务流程,其数据主要来源于 PE(Process Engine) 。 Filenet 使用 PA(Process Analyzer) 作为 PE 和 BAM 的数据桥梁。

如图 1 所示,在 FileNet 架构中,BAM 不仅从 PA 的数据库中收集流程数据,BAM 还能通过一些标准的接口如:JMS、JDBC、Web Services 和 EAI 与外部企业应用连接获得数据,实现企业级的数据分析。


图 1. IBM FileNet BAM 架构图
图 1. IBM FileNet BAM架构图

Raw Data 和 Context Data 分别对应动态和静态两种数据,这也是由监控对象的特点所决定的。对于业务流程的监控,强调实时性和动态性。业务流程的实时监控由动态数据驱动静态数据补充。这两种数据在 Views & Cubes 融合,并依照用户定义的规则(Rules)产生相应的告警。同时也能在 Dashboard 中以图表方式监控业务流程。

BAM 的核心概念

以上简要的介绍了 Filenet BAM 的架构和基本原理,本部分将进一步阐述 BAM 的关键概念和技术 . 这将加深对 BAM 的内部机制的理解,方便将来对 BAM 的配置和使用。

代理

代理(Agent)是为 BAM 获取事件数据和上下文数据的进程。如前文所述,BAM 可以从外部各种数据源获取数据,为了和各种不同的数据源适配,代理的类型也有多种,例如 JMS 代理可以和消息队列通信获取数据,JDBC 代理可以和关系数据库通信获取数据等,如图 2 所示:


图 2. 代理
图 2. 代理

每一种 Agent 都知道如何与他们对应的外部数据源交互获得相关的信息,从而将这些数据传递给 Events table 和 Context table, 这两种 table 用来生成视图。

事件

BAM 的内部流程是受事件(Event)驱动的, 事件是外部的业务应用产生的数据,这些数据记录业务处理的事务,识别业务状态的改变并描述业务活动的细节。 BAM 通过代理获取事件数据并记录在事件表(Event Table)中。


图 3. 事件,上下文和视图
图 3. 事件,上下文和视图

通常我们使用代理来获取 Event,但也可以手动地从文本文件加载事件。事件到达 BAM 后经过处理,其数据和与其相关的上下文数据合并后将写入业务视图(Business View),如图 3 所示。

上下文

上下文(Context)为事件的处理提供相关的一些信息,上下文是存储在数据库中或由 Web 服务提供的业务信息,上下文和事件数据合并后构成视图,如图 3 所示。和事件一样,上下文表(Context Table)的数据也由代理提供。

视图

视图(View)为是业务活动实时状态的数据模型,这种实时性是通过事件来保证的。每个新的事件都可以驱动视图的更新,这样视图就提供了业务模型的实时状态。此外,视图被更新后,系统会根据用户定义的规则(Rules)在更新过的视图中检查是否满足规则中定义的需要引起注意的异常条件。

事实上,视图是一个虚拟的表,是通过 SQL SELECT 查询语句生成的,内容来自其他的一个甚至多个表。在 FileNet BAM Workbench 中定义视图,系统可以为你构建 SELECT 语句然后交给 BAM 执行和维护。

规则和报警

规则(Rule)通过分析业务视图来对业务活动进行监控。规则制定一系列针对商业数据的异常条件(通常是些布尔表达式),系统在业务视图里查询到这些条件满足时,则执行相应动作,如:发出警报。

警报(Alert)是发送到用户和外部系统的报警信息,警报既可以是简单的报警信息,也可以包含引起警报的原因和可以采取的措施。


图 4. 规则和报警
图 4. 规则和报警 

案例

我们将以保险行业典型的车险理赔业务流程为例,介绍如何配置 BAM,从而对 PE 中运行的业务流程进行实时的商业智能监控。

IBM Filenet BAM 的配置由两个 J2EE Application 完成,分别是 BAM Workbench 和 BAM Dashboard 。其中,Workbench 是建立和部署商业智能模型的平台,用于定义上下文数据源,建立业务视图并管理用户权限和角色; Dashboard 是监控平台,提供了一系列的工具用于对警报、信息和视图的统一监控。

下面的案例中我们将介绍如何在 Workbench 和 Dashboard 的配置该案例。

业务场景介绍:

如图 5,该业务流程中每个步骤的工作项由不同的业务人员处理。被保险人提出车险理赔后,将触发该业务流程,业务人员首先计算理赔金额(CalcClaimCount),系统判断理赔金额大小,如果不大于 2000 将理赔单发送给负责小额理赔(ReviewSmallClaim)的人员处理,否则发给负责大额理赔(ReviewLargeClaim)的人员处理。然后系统识别理赔申请是否通过,如果通过则发送给负责赔付(PayClaim)的业务人员,最后将发送邮件(Send Letter)给被保险人告知是否赔付。


图 5. 车险理赔业务流程
图 5. 车险理赔业务流程

实际上,当众多理赔业务同时运行时,一方面,企业管理人员将关心业务流程的实时状态和性能(譬如每天有多少笔车险理赔业务被处理);另一方面,管理人员希望预先定义好的业务阀值被超过(譬如单笔业务的理赔金额超过一百万)时,系统可以实时监测并报警。这些需求都可以通过 BAM 来达到。例如在 BAM 中配置每个步骤工作项的数目,设置流程中某个步骤的工作项数目大于 10 的时候,向管理员发送警报。该步骤如果成为了业务系统的瓶颈,就可以安排更多的业务人员去完成该步骤从而优化流程。以下介绍其配置。

配置代理

首先,需要从 PA 数据库获取流程运行数据,所以要在 BAM Workbench 中配置 PA 数据库的 JDBC 代理。


图 6. 车险理赔业务流程
图 6. 车险理赔业务流程

配置事件

然后配置驱动流程监控的事件,定义具体的 SQL 语句,该 SQL 语句将根据用户的配置每隔一段时间自动执行一次从而更新一次数据。从前文配置的 JDBC 代理中取得我们所需要的流程中每个步骤的统计数据即步骤名称、工作项的数目、平均空闲时间,平均处理时间。

该事件所使用的 SQL 语句如下:

select m.Step as Step, Count(*) as WorkItemCount, 
avg(WaitCurrentMinutes+MinutesSinceLastEvent*IsInWaitStatus) as avgIdleTime , 
avg(ProcCurrentMinutes+MinutesSinceLastEvent*IsInProcStatus) as avgProcTime 
from F_DMWIP as f, D_DMModel as m, D_DMWorkflow d, D_DMWorkClass c 
where f.DMStep_key=m.DMStep_key and d.Workflow_key = f.Workflow_key and 
d.DMWorkClass_key = c.DMWorkClass_key and c.WorkflowName='AutoClaim' group by m.Step

事件配置如图所示,在 JDBC Query 输入框中输入以上 SQL 语句。


图 7. 配置事件
图 7. 配置事件

配置视图

基于前文配置的事件,配置视图。选择事件中的所有 Field 到视图中,如图所示。


图 8. 配置视图
图 8. 配置视图

配置警报

为了实现实时报警功能,需要配置警报,当流程中某个步骤的工作项个数过多时,则发送该警报给管理人员。警报的配置如图所示。


图 9. 配置警报
图 9. 配置警报

配置规则

规则是一系列的条件,实质是一个布尔表达式,用于判断某个条件是否满足。在我们的例子中,使用下面的表达式。

WorkItemCount >= 10

该表达式监控到某一个步骤工作项的个数大于等于 10 个时,将把前文中配置的警报发送给管理人员。


图 10. 配置规则
图 10. 配置规则

查看警报

通过前文在 Workbench 中对警报的配置,当某个步骤的工作项大于等于 10 个时,管理人员会在 Dashboard 收到警报,查看警报的界面如图所示。


图 11. 查看警报

配置仪表盘对象

BAM 不仅提供 Alert 的方式监控流程,Dashboard 中的仪表板对象(Dashboard Object)可以很直观地监视视图中的流程数据。配置仪表盘对象时,需要指定显示哪个视图 , 及其表现形式,如图所示:

  1. 选择前文建立的视图作为数据源。
  2. 选择柱状图作为图表类型。
  3. 设置 X 轴为业务流程步骤的名字,Y 轴为工作项的个数。


图 12. 配置仪表盘对象
图 12. 配置仪表盘对象

这样一个仪表盘对象就配置好了。

配置仪表盘

仪表盘(Dashboard)用来容纳定义好的仪表盘对象,一个仪表盘可以添加多个的仪表盘对象

。我们新建一个仪表盘,把刚才建立的仪表盘对象加到仪表盘中,如图所示。


图 13. 配置仪表盘
图 13. 配置仪表盘

如图示,前文配置的柱状图仪表盘对象显示在仪表盘中了。

其他的仪表盘对象

仪表盘具有实时性和动态性,除了上述表示工作项数目的柱状图。还可以通过别的表现方式来实时动态地监控流程。如:

第二个图表显示了每天所申请的车险理赔业务的数量;

第三个图表显示了所有活动业务流程的最大处理时间;

第四个图表则显示了所有活动业务流程的最大理赔金额。


图 14. 监控仪表盘
图 14.监控仪表盘 

结束语

本文概括性地介绍了 FileNet BAM 的基本架构和工作原理,并以一个实际的案例,讲解了如何使用 Filenet BAM 对业务流程进行实时的商业智能监控和报警。

在接下来的文章中,我们还将介绍如何利用商业智能影响业务流程的运行。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15082138/viewspace-591596/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-08-05

  • 博文量
    269
  • 访问量
    559896