首页   全程报道   注册报名   在线答题   学习资料  首届回顾  团队博客   参赛答疑   技术辅导
 
 
组委会
主办单位:





主办高校:
北京大学

协办高校:
电子科技大学
东北大学
华中科技大学
南京大学
清华大学
山东大学
上海交通大学
天津大学
西安交通大学
浙江大学
中山大学
(以上排名按学校字母先后顺序)
 
刘昕鹏:技术报告:基于SOA的业务流程管理
作者: 来源:本站原创 文章点击数:

刘昕鹏:(slide 1)各位同学下午好,我非常荣幸能够在此时此刻回到母校北大来讲解关于SOA流程建模的背景。

    我在北大待了7年,对这里非常熟悉,我现在的心情也是非常激动。

    关于2008“IBM杯”中国大学生SOA业务流程建模竞赛,之前我们在上个月在杭州曾经给全国各地的老师们做了一次培训,讲解了我们整个竞赛主要会用到的两个产品,可能讲解起来衔接得会比较顺畅一些。

    (slide 2)之前,我们的活动建议大家都参加了一个游戏,相当于热身赛,这个游戏做得非常好。大家如果玩过这个游戏的话,对我们这次大赛所要做的动作是知道流程要干什么了。

    这个游戏大家都玩过,情节也历历在目,我会沿着游戏整个过关的情节来过一遍。到其中的一个点的时候,我会引入到技术的讲解,必要的部分,我会给大家讲一些什么是比较易于你容易表达你的企业流程的。

    这张图右边的女主人公大家非常熟悉了,是IBM在做某项目时派到企业里面帮助他们解决问题的工程师了。该企业的业务主要是为接听客户电话、为客户服务的。她做了很多的事情,我浏览了一下,(slide 3)大概是这么几步。第一步工程师是去拿As-is流程,这是企业现有的流程,正在上线的流程。这个流程的草案,根据企业的自动化程度,有可能是写在电子文档里面,也有可能是画在一张纸上。有的甚至可能是记在心里的,但是高端的一点是拿计算机画出来了。不管是怎么样,有了一个As-is模型的草案。

    这个游戏开始的时候,这个人去找公司的架构师,架构师说你帮我忙去拿公司的As-is的模型吧,然后我会告诉你我的企业有什么问题。我们的员工就去了,在办公桌前的电脑上拿到了As-is的草案了。拿了之后,我记得有一个柜台的地方,把这个给了资深的人员,这个人员像利用Modeler的工具一样,这一步所做的是为SOA来建模。

    (通过slide3的链接点到slide5)这个东西就映射到了我们第一步要为业务流程建模,我们要做比较规则的分析。画在纸上或者是写在PPT上是要与人交流的,但是有的时候企业有一些问题,除非你的眼光非常独到、睿智,有的时候是需要现实的对比和分析才能找出流程到底出了什么问题了。如果要对比分析的话,首先是要给出形式化的模型才行。IBM就是帮助大家做这样的事情的产品,能够为业务进行形式化建模,可能有的同学已经用过了。

    现在我会放一个Vido的片断(切换打开Part1_WBM_Model_Import.avi),这里面大家看到一些典型的场景,告诉大家在建模的时候怎么用BPM建模的产品。Modeler这个工具打开后一开始是空的,然后为新的工程起了一个名字,工程建完了之后,有一些项目,包括一些流程,包括一些别的项目,如资源、角色等。我们做BPM的建模主要是三步,第一个是流程里面用到的Resource,如果大家用过类似的关于数据库的建模表的话,很像一个表的模式,其实不是完全类似的,包含了一些属性。但是在BPM里面,这些实体被在企业的模型里面,代表了一定的业务语义,就像我们在做的一样。这里为Resource建了一个Order,这里要建立一个Manager。然后建立了我们一个人的工作时间,大家可以在BPM的工具里面发现很多很有意思的,非常好用的资源欧版。这样做BPM建模,可能有一些同学想我上来直接把流程画出来就完了。但是如果事先不想好的话,这样会很乱,根本不知道Resource缺什么的,设计的到底是什么。

    这个Video给出的是比较好的做法,但是不是必须的,只要你BPM允许做这样的事情。现在Video开始为流程建模,比如说有分支、判断,左边整个BPM典型的大家常用的图标。大家可以从上面拖拽相应的元素到流程中。这里面有一个Sub-Process,双击点开之后,又会打开这样的图,会对子流程进行建模。把很多的细节封装起来,看的话会清楚一点。

    然后对Order进行处理,这是企业原来就有的,现在是赋予了相关的Resource,因为之后你需要算一些Cost,所以会加Resource在上头,比如执行这个Activity的role等(至Video的4:40时关闭)。

   (切回slide3) 我想这张大家看了之后就明白了我们建模的时候是怎么做的,也就是说我们现在完成了什么动作。就像工程师做的一样,我拿到As-is模型草案之后,用BPM建出来。在这个游戏中,她又拿到相关的数据,如果要分析企业的数据的话,那些数据不是假的,都是Real的。因为你是在为企业找原因的,不是糊弄谁,这些数据是在企业里面拿到的。大家在这个游戏里面跑了四个地方,拿到了一些相关数据。这些麻烦,在游戏里面就是告诉大家一件事,如果大家真的自己去做实习、建模的时候,最后数据的分析最好是真实的。如果确实拿不到真实的,你最好能拿到有代表性的,能够把你的故事讲完的数据来分析。如果随便拿些数据是解决不了问题的。

    这步是搜集As-is的分析数据。下一步我们流程也有了,然后这件事情是用Modeler能够帮你做的,就是基于这些数据对As-is模型做模拟分析。下面来看这个Video(打开Part1_WBM_Simulation_Analysis.avi)。这张是在刚才做好了Model之后,这些新加的数据是为我们进行流程模拟做准备。我们在算整个流程里面所需要的代价和所需要的时间的时候,都需要这些数据,所以需要补上。这些界面给出了怎么样把数据加上,这方不详细介绍,大家可以看看。

    这个选中了流程中的一个Activity,算出时间,填在下面。然后选中了一个控制单元,这里的分支概率大概是70对30,这是根据你们已有的上线的分析结果多年的统计算出来的,在Modeler里面可以填出来。

    下一步我们选中Process,然后点右键,有这样的界面,然后从上下文菜单选中Simulate,会生成一个Simulation的Snapshot。最典型的是你希望在模拟的动态过程中看到信息流转的路径,有些Activity耗费时间,有时候结果是你想看的。这个数据怎么走的,大家可以勾上,最后怎么弄的,可以看一下。然后指定说做这个项目的人,企业做这件事情是要钱的,可以根据实际情况来把这个模拟情况调一下。真正都设好了以后,可以用鼠标来选它。大家可以看到这是一个Snapshot的结果,效率怎么样,都可以列出来,然后基于此可以做一些分析,找到它的瓶颈。(等Video结束)

    到这里大家知道BPM这个工具,可以帮大家做这件事,从而对Model里面的一些问题,找到症结所在。比如说刚才的Review Order原来是人工做的,所以来了订单之后得人去看。大家都明白,一个人去的话,效率高不了,都会很慢,就像你向老板请假或者是做报销的时候,会发现老板很忙,你的事情要等很久。这样的话,在一个企业里面往往一个人的效率很低,这样的话你会发现那个会停在那里很长时间,可能是一周的时间,这样的话会影响企业的绩效。

    (回slide3)模拟分析As-is的步骤之后,大家开始剖析业务瓶颈。大家可能很清楚,游戏中的圆桌会议,很多同学在做题时把这个问题摘出来了,搞成了阅读理解。我们为什么要花大量的热身赛考题讲圆桌会议,因为它是做真正的业务交流的地方。需要的是整个企业里面跟业务流程相关的各个部门的领导或者是相关的主要参与的决策人员坐下来大家一起来看,我们企业这个效率为什么这么低,来一起磋商这些问题。找到了症结之后,相对于是我们这个游戏里面对流程环节的修改,改完了流程之后,他会当时做一些分析,来说服其他部门的领导说我的改造对你们的企业或者是对企业的效率是很有好处的。所以这一步是很重要的。

    接下来我们通过圆桌会议的讨论,大家都得出来了一个To-be  Model了,To-be是针对与企业的症结找出来之后进行改良生成的,将来可能使用的Model,所以称为To-be  Model。我印象中这个企业的问题主要是两个,一个是说刚开始的时候没有用外包人员,来了问题,打进电话不管是难还是简单,都用他们公司的人去做。这就是浪费,该公司的人的cost是很高的,很多人浪费在解答问题上,这是第一个问题。针这个对问题他们加了一个流程的结点,看问题是简单还是难的。对于简单的问题交给外包人员来做,这样的话节约了人的成本。第二个问题,这个企业里面的人的Skill有好的也有差的,但是不管原来的难的还是简单的问题,都不加区分的扔给员工来处理。有时候对于难问题处理不好,客户非常不满,折腾了一天,说我以后都不用你们的产品了。第三个改动,原来的流程跑了半天,企业的老总想看工作效率怎么样,没有一个很好的可视化的东西看,这样的话,他们觉得我们的流程天天在跑。我们为什么不把每天跑的记录下来,这样的话做成可视化的界面给当初的CEO来看了。后来他们修改了流程的设计,把每次企业的运作的结果都存到一个DB里面了,可以建成一个数据仓库,对企业以后的分析有用处。

    (通过slide3的链接点到slide7)这些是说在游戏里面对我们说的To-be  Model的建模。我们在现实中怎么做,就是我们提到的要对业务流程进行模拟和优化。优化是我们在流程里面把一些节点根据我们的分析进行调整,比如说原来我们只需要加一些判断对Resource进行分析,然后分支节点分出去。加完了之后,要看一看它的效果是不是好,这是所谓的业务模拟和优化。当然需要选择有代表性的数据,像刚才游戏里面的企业。他对进来的难问题非常敏感,或者是简单的大量的问题非常敏感。如果模拟的时候,加了很多简单的问题是不是很好的,或者是很难的问题,会很有用。

    (切换打开Part0_WBM.exe)接下来我们会给大家看一个Video,这是银行的主要的流程,这跟原来的Order的流程差不多。这个节点最开始是人工节点,需要一个人花15分钟,人工服务花了很长的时间来做的,后面他们发现了工作流程有一个问题。大家在使用Modeler的时候,会对流程做多种展示。例如,这里可以具体参与到流程中的多个角色进行展示。对于之前提到的那个Activity,他们发现这个节点太慢了,后面打算用一个计算机的来替代掉。改完后,不是刚才的Human task了,而是一个计算机提供的Service,从这个节点进来之后可以自动做分析,来判断Account是不是需要在不同情况下进行处理。像这样的节点,我们改成了一个非人工服务,这样的话,计算机就变成了13秒钟,原来15分钟,现在效率提高了很多。

    我要做结算分析,要看用户帐号是不是已经有了。要去看帐号是不是已经存在,就得去试一下看改客户是不是已经在数据库中了,如果不是的话,还需要进一步使用客户的其他信息包括他的信用度等等来判断我们是不是可以给开户。这些步骤就是Modeler正在做的事情。我现在增加了节点要判断Customer是不是已经存在,我对它的流程进行了改变,改变之后的流程就是前面给大家看到的这个样子。

    现在它开始做Simulation,是对To-be  Model做的,这个Simulation是说随即有10个请求,设定之后开始运行改模拟。大家可以动态查看在模拟过程中所流经的流程路径,会非常清楚地看到当前活动的节点停在哪里。其中有个节点需要的时间非常长,会发现所有的请求都堆在那里,其实你已经发现了问题,没有等Report出来就发现了问题。结果我们可以进行分析,大家可以看到有10个请求,有10个Case。底下就分析出了10个结果,他发现里面有一个花了很多时间就是Requirement More Document,可能需要13天的时间。

  刚才黄河也给大家说过,大家做模拟、分析是要对企业的绩效做一些评定,但是你要用基于KPI来定义的。比如说流程来讲,特别关心整个流程的执行时间对吧。这做了一个分析,原来是在10个小时之内的,有时长有时短,但是平均时间是满意的。如果你的Model没有满足你的KPI的话,你还得调整,再循环走来完成这样的工作。(等待Video结束)

      (切回slide3)我们对To-be模型建模并进行了分析,在游戏里面到了最后一关了。大家可以看到类似左边的框的场景,真正的圆桌会议同意了新的流程的方案。他们就把这个系统上线看是不是可行的。这里面有一个操作界面,可以做两种更改。这就是两个老板最关心的KPI,左边的KPI是指的是整个客服的时间。右边的是员工的Cost,老板得为员工付钱,很关心整个企业的人员费用是不是在他承担之下。大家可以看到两个KPI的指针,如果指针处在红色区域,企业就要关门大吉了。如果对原来的要进行调整的话,比如说把80%的问题都扔给伙伴。比如说企业内部的员工需要多少人,这是需要掏钱的,但是可以模拟地减一些人,你要达到平衡,使得在最好的区域,这个时候你的To-be  Model就是最好的,这就是监控和反馈。

      (通过slide3点击链接到slide16)IBM有一个产品,WebSphere Business Monitor,对应在刚才黄河给大家说了整个BPM大的菱形的图上,在最后一步Management。大家可以在对你的KPI作一些分析,这个我们这次竞赛不涉及这一步,大家只需要对整个声明周期有所了解就好了。我们接着回到之前的游戏,我通过整个游戏的一圈给大家讲了一下BPM里面的东西是怎么去用的,这样比直接讲BPM讲好一点。至少说BPM提供了那些功能,我大概在什么阶段用在我目前的大赛当中去,最后是什么时候用,最后有一些结果是怎么得到的,这样的思路大家清楚一点。

   (切回slide3) 典型来讲,大家要做的跟这个游戏里面的工程师做的差不太多了。你要做的就是针对企业的流程,发现他的毛病,提出Enhancement。我们刚才走的一步是绕着SOA管理提倡给大家的案例,让大家分享。

    (slide9)当然我们在Modeler中可以把To-be  Model导出去,导入一个开发环境里面,也就是WID,它给出了在IT环境下如何实现定制好的流程。我们大赛不要求大家把整个WID中的组件的实现和部署给做出来,但是我们要求大家把你导到开发环境里面的图给我们看一下,我们看你们导出的图是不是能反映业务流程的IT的基本实现,这是需要大家来做的。

    这里面关于从BPM中创建的目标业务流程导入到WID到的时候,大家发现说好象有问题。有一些Activity变成了流程,有些不是,确实是不太一样的,这个东西是可以指定的,具体的做法我一会儿放一个Video。我想说的是,大家做导出之前,一定要做一些指定。比如说你希望这个节点将来就成为什么类型的component,比如说你要需要这个干什么,这都可以指定。指定完了之后,生成的As-is  Model的时候可以按你的指定来转换为WID的工程。只不过其中的有些组件都是空的,如果将来实现上线的话可能会填一些东西来完成它们的实现。

    (slide11)这个就是我们所说的如何把在BPM中做的整个流程导出到WID。这里需要强调的是BPEL,本身是一个规范而已。下面的不会转成这种BPEL,你指定是什么就导出是什么。你指定成别的话,会导出成别的东西。我们非常关心的一个是你怎么样把你的流程转出来的,还有一个我们关心是业务规则的转换,这是反映了企业的灵活性的核心的,在innov8这个游戏里面也有体现,我们非常关心这点。也希望大家有实际的想法在BPM怎么表达你的Business  Rules,它可能不仅仅局限于那些可以转换成为WID中的rule gruop组件的规则,可能范围还要更大一些,我们非常欢迎这样的想法,如果做得好的话,这次大赛是非常好看的闪光点。

    (slide13)这张slide给了WID里面已有的Business  Rules的实现,大家可以看到一个rule一般是一个判断,一个条件加满足条件后执行的动作。比如说什么时候算是一个金牌用户,或者是银行帐单的款项达到了高于多少钱该用户算金牌用户,随着企业的发展和业务的扩展,这个钱的数在变。这就是很典型的Business  Rules的点,大家可以看到所有打框的地方是可以灵活地改的。这些值都可以在运行时动态修改,而不需要在WID中修改后重新部署。这次大赛我们希望大家都能提出很典型的Business  Rules,而不是为做IT而IT提出的技术层面的rule。

    (打开Part2_From WBM to WID.avi)现在再看一下比较典型的导出的流程。首先需要把BPM切换到WebSphere Process Server Mode,如果你要指定导出的细节,需要切换到这个Mode。现在选比如说Check  Order  Activity,希望实现成人工服务,我们就在implementation type里面指定为“human task”,能够指定这个选项一定是在你设定WebSphere Process Server Mode之后,有的同学找不到是因为没有调为该模式。这个东西相当于是已经为转换做好了前期的准备了。为所有的Activity都指定完毕后,现在选择export,要导到哪里自己指定。导出去之后就是一个Project Interchange的文件。然后是他在BPM里面做的事情都完了。打开WID,打开之后的界面开始是空的,我们点右键选Import,选择刚才从BPM里面导出来的文件。一共是三个工程,大家会说,有时候导出来的工程是有错的,这是对的,因为这些工程还没有实现完毕,不可能把所有的逻辑都生成。大家可以看这就是导到WID里面之后的结果。我们再来看一下刚才指定的类型转得是不是对的,大家看到之前指定的类型现在都以相应类型的componnet生成了。这些实现大家可以看到都是空的,需要在WID里面通过进一步的编辑、开发才能用。在BPM中定义的Resource在WID中会转换为Business Object,而每个Activity都会生成一个相应的以WSDL描述的接口。大家看到这是所有的Business Object,可以看到Order。下面是我们生成了所有的接口,基本上每一个Activity都会有一个。

    (slide15)当我们导到WID之后,经过了进一步的开发,就可以放到WebSphere Process Server上跑。这次大赛给大家提供的工具是WID,这个在校园版里面是有一个内嵌的Server的,大家可以把WID中的工程部署在上面运行,看到你想要的流程正常运行的结果。

    (slide17)上面基本上是我给大家整个讲了一下基于这个游戏里面我们如何正确的,或者是像IBM建议的那样来使用我们两个主要的工具,一个是WebSphere business Modeler,一个是WID。需要大家集思广益,像游戏当中,怎么样从To-be到As-is,这样的过程需要大家集思广益来做事情。我们为什么要求每个组有一个来自MBA的同学,就是希望MBA的同学对企业的绩效有深刻的认识,会知道这个企业在哪里是关心的,需要跟你们计算机的同学来交流来说,通过改良之后知道是不是真正的从企业需要的方向来提升的,而不是好玩来做的。这样的话,希望大家最终做这样的事情达到我们想要的效果。

    我们非常希望在这次竞赛当中看到整个团队的能量而不是一两个人的能量。

    (slide18)这张图是我们在这次竞赛当中有那些Role,比如说有一些IT的Developer,或者是IT的leader。这些Role是一个逻辑上的概念,根据你们5个人的特长和兴趣,可以兼,但是不希望一个人兼所有的。5个人分开,每个人做自己想做的事情,最后你们提交的案子里面我希望看到哪部分是谁做的,我们可以看到组内的成员的管理是不是好。整个团队的分工协作是不是好,这是衡量你们的标准,不光是看看你们文字上的东西。

    (slide19)最后我强调在技术上有要求的话,都可以跑到我列的这两个网址上看,一个是IBM DeveloperWorks的地址,上面有我们很多资深工程师写的文章,有一些细节的介绍。还有一个是SOA大赛给的网址,大家可以在上面找一些文献的link。
    我讲的就到这里,大家有团队、技术方面的什么问题都可以提问。
   
    提问:我想问一下刚才您说的大赛特别care的两点,一个是业务规则,另外一个是什么?
   
    刘昕鹏:我说了技术方面,我们非常看重Business  Rules,对企业里面是很重要的,可以调解KPI。还有一个是软的,你们怎么样在项目里面实现团队工作。
   
    提问:你们关心团队之间的合作吗?
   
    刘昕鹏:对。我们提到的团队合作是分两个方面,一个是在技术层面如何做合作的。更主要的是我们希望在非技术层面是怎么做团队合作的,毕竟是5个人在做合作,大家以不同的方式在体现,这是我们最后的评分标准之一。
   
    提问:从Modeler里面直接导到WID的工程会不会跑起来?我在装备部署之后,那个流程是可以跑起来的?
   
    刘昕鹏:有一些是有缺少的实现,我知道的human task是有缺省实现的,但是有的是空的。比如说JAVA component进去就是空的接口,需要把方法实现了。比如说我们刚刚看到的导入生成的Business  Rules编译时有错,我只是在指定的Business  Rules组件的接口,如果想在WID里面跑起来,还需要做进一步的开发,当然不是这次我们大赛的重点之一。你们的精力不完全放在这里,如果真想了解的话,还里还是要话很多精力学很多东西。
   
    提问:人工服务组件中我想加一个自己定制的界面,怎么处理?
    刘昕鹏:WID为人工服务生成了一个缺省的界面。但是缺省实现会做得丑陋一点,列出了传入的参数以及返回时需要填写的参数,没有定制的东西,如果想做得漂亮的话,WID支持两种实现方式,一个是用XForm,一个是用Portal,但是需要花费一定的精力来学习。
   
    提问:WID网站的下载地址?
   
    刘昕鹏:可以联系你们的老师或者是负责人,是不是下发了,据我所知已经有校园版可以用了,这次大赛你们可以用了。


人支持
上一篇:没有了
下一篇:现场提问与回答
 
 

京ICP备05038555号
中国计算机报社版权所有,任何单位及个人未经许可,不得擅自转载使用
Copyright © 2001-2008 China Information World All Rights Reserved