﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-工作流原理与GIS-随笔分类-工作流原理</title><link>http://www.blogjava.net/workflow/category/20702.html</link><description>工作流、GIS在信息系统的应用</description><language>zh-cn</language><lastBuildDate>Tue, 18 Jun 2013 18:50:35 GMT</lastBuildDate><pubDate>Tue, 18 Jun 2013 18:50:35 GMT</pubDate><ttl>60</ttl><item><title>SOA的三个基础部件的SOAP，WSDL，UDDI  </title><link>http://www.blogjava.net/workflow/archive/2013/06/19/400717.html</link><dc:creator>黎民</dc:creator><author>黎民</author><pubDate>Tue, 18 Jun 2013 16:01:00 GMT</pubDate><guid>http://www.blogjava.net/workflow/archive/2013/06/19/400717.html</guid><wfw:comment>http://www.blogjava.net/workflow/comments/400717.html</wfw:comment><comments>http://www.blogjava.net/workflow/archive/2013/06/19/400717.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/workflow/comments/commentRss/400717.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/workflow/services/trackbacks/400717.html</trackback:ping><description><![CDATA[WSDL，UDDI和SOAP是SOA基础的基础部件。WSDL用来描述服务；UDDI用来注册和查找服务；而SOAP，作为传输层，用来在消费者和服务提供者之间传送消息。SOAP是Web服务的默认机制，其他的技术为可以服务实现其他类型的绑定。一个消费者可以在UDDI注册表（registry）查找服务，取得服务的WSDL描述，然后通过SOAP来调用服务。<img src ="http://www.blogjava.net/workflow/aggbug/400717.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/workflow/" target="_blank">黎民</a> 2013-06-19 00:01 <a href="http://www.blogjava.net/workflow/archive/2013/06/19/400717.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>工作流之收回</title><link>http://www.blogjava.net/workflow/archive/2008/08/28/225195.html</link><dc:creator>黎民</dc:creator><author>黎民</author><pubDate>Thu, 28 Aug 2008 02:21:00 GMT</pubDate><guid>http://www.blogjava.net/workflow/archive/2008/08/28/225195.html</guid><wfw:comment>http://www.blogjava.net/workflow/comments/225195.html</wfw:comment><comments>http://www.blogjava.net/workflow/archive/2008/08/28/225195.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/workflow/comments/commentRss/225195.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/workflow/services/trackbacks/225195.html</trackback:ping><description><![CDATA[<div class="t_msgfont" id="postmessage_646">收回：收回是<span class="t_tag" onclick="tagshow(event)" href="tag.php?name=%B9%A4%D7%F7%C1%F7">工作流</span>参与者对自己&#8220;已办任务&#8221;（对已完成的工作项）的一种操作，即参与者主动对已办理过的工作项进行重新办理。<br />
<br />
为什么要收回？<br />
<br />
参与者完成任务后，发现自己办理有错误等情况后，需要将此任务收回重新办理。<br />
<br />
工作项的参与方式<br />
<br />
目前有四种方式：共同参与、竞争参与、顺序参与、基于角色的共同参与。<br />
<br />
下面会针对这四种方式进行讨论。<br />
<br />
工作项收回模式<br />
<br />
1、未触发下一节点的工作项的收回<br />
即当前任务节点并未完成，依旧处于执行状态<br />
<br />
1.1共同参与<br />
 <img onmouseover="attachimginfo(this, 'attach_211', 1);attachimg(this, 'mouseover')" onmouseout="attachimginfo(this, 'attach_211', 0, event)" alt="" src="http://mm.a.5d6d.com/userdirs/1/8/gisinfo/attachments/month_0808/20080828_bc37e88afdf8035f6b47xtwJKPNZkzYo.gif" onload="attachimg(this, 'load')" border="0" /> <br />
如图：在节点A未结束之前，workitem1、workitem2和workitem3正常完成后可以任意收回。在只产生一个workitem的情况下，不存在未触发下一节点的收回情况。<br />
<br />
1.2顺序参与<br />
 <img onmouseover="attachimginfo(this, 'attach_212', 1);attachimg(this, 'mouseover')" onmouseout="attachimginfo(this, 'attach_212', 0, event)" alt="" src="http://mm.a.5d6d.com/userdirs/1/8/gisinfo/attachments/month_0808/20080828_74f514a0bce483c8b4b3107OTVzvQJ9g.gif" onload="attachimg(this, 'load')" border="0" /> <br />
如图：workitem1、workitem2和workitem3顺序完成，workitem1在workitem2签收（包括挂起和手工终止）前可以收回，同样，workitem2在workitem3签收（包括挂起和手工终止）前也可以收回。在只产生一个workitem的情况下，不存在未触发下一节点的收回情况。<br />
<br />
1.3竞争参与<br />
<br />
因为只会产生一个workitem，该workitem完成后会立刻触发下一节点，所以不存在未触发下一节点的收回情况。<br />
<br />
<br />
1.4基于角色的共同参与<br />
<br />
与1.1相同。<br />
<br />
2、已触发下一节点的工作项的收回<br />
<br />
2.1共同参与<br />
 <img onmouseover="attachimginfo(this, 'attach_213', 1);attachimg(this, 'mouseover')" onmouseout="attachimginfo(this, 'attach_213', 0, event)" alt="" src="http://mm.a.5d6d.com/userdirs/1/8/gisinfo/attachments/month_0808/20080828_946207d66653c1979cddazjlLf900C0K.gif" onload="attachimg(this, 'load')" border="0" /> <br />
问题1：多个工作项时谁可以执行收回操作？<br />
workitem1、workitem2和workitem3都可以执行收回操作。第一个工作项的收回将会导致节点B实例的删除，同时节点A重新恢复执行状态。<br />
<br />
<br />
问题2：节点B处于什么状态节点A的工作项可以执行收回操作？<br />
由A触发的节点B处于正在执行的状态，节点B所产生的工作项：<br />
a共同参与&nbsp; &nbsp;工作项均未签收、挂起或手工终止<br />
b顺序参与&nbsp; &nbsp; 第一个工作项未签收、挂起或手工终止<br />
c 竞争参与&nbsp; &nbsp;工作项均未签收、挂起或手工终止<br />
d角色<br />
同共同参与<br />
<br />
<br />
问题3：工作项收回产生的影响？<br />
节点A重新执行，收回的工作项重新执行。节点B重新恢复未触发状态，B所产生的工作项全部删除。<br />
<br />
<br />
2.2顺序参与<br />
<br />
 <img onmouseover="attachimginfo(this, 'attach_214', 1);attachimg(this, 'mouseover')" onmouseout="attachimginfo(this, 'attach_214', 0, event)" alt="" src="http://mm.a.5d6d.com/userdirs/1/8/gisinfo/attachments/month_0808/20080828_1f5bf887e739f317caf6j987ZusLVg5y.gif" onload="attachimg(this, 'load')" border="0" /> <br />
问题1：多个工作项时谁可以执行收回操作？<br />
workitem1、workitem2和workitem3根据顺序可以依次执行收回操作。<br />
<br />
2.3竞争参与<br />
情况简单，只有一个工作项，所以可以直接收回。<br />
<br />
<br />
2.4基于角色的共同参与<br />
同2.1<br />
<br />
<br />
工作流收回模式<br />
后续触发节点只能是人工节点（可以是多个，至少一个），否则不支持收回。目前不支持父子流程之间的收回。<br />
一个典型的同步汇聚情况：<br />
<br />
 <img onmouseover="attachimginfo(this, 'attach_215', 1);attachimg(this, 'mouseover')" onmouseout="attachimginfo(this, 'attach_215', 0, event)" alt="" src="http://mm.a.5d6d.com/userdirs/1/8/gisinfo/attachments/month_0808/20080828_084391db0f8455fcad5fcLZIvD1c8hCk.gif" onload="attachimg(this, 'load')" border="0" /> <br />
节点1首先执行完毕，但是因为是同步汇聚，所以它不会触发实际的流转；而节点2的完成则会触发节点3的执行。在这种情况下，节点2的工作项可以执行收回操作，而节点1的工作项因为后续没有触发节点而不能收回。</div>
<img src ="http://www.blogjava.net/workflow/aggbug/225195.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/workflow/" target="_blank">黎民</a> 2008-08-28 10:21 <a href="http://www.blogjava.net/workflow/archive/2008/08/28/225195.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>成功导入工作流系统七大关键要素</title><link>http://www.blogjava.net/workflow/archive/2008/08/19/222999.html</link><dc:creator>黎民</dc:creator><author>黎民</author><pubDate>Tue, 19 Aug 2008 06:37:00 GMT</pubDate><guid>http://www.blogjava.net/workflow/archive/2008/08/19/222999.html</guid><wfw:comment>http://www.blogjava.net/workflow/comments/222999.html</wfw:comment><comments>http://www.blogjava.net/workflow/archive/2008/08/19/222999.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/workflow/comments/commentRss/222999.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/workflow/services/trackbacks/222999.html</trackback:ping><description><![CDATA[<div class="t_msgfont" id="postmessage_159"><span class="t_tag" onclick="tagshow(event)" href="tag.php?name=%B9%A4%D7%F7%C1%F7">工作流</span>自动化对于改善企业业务流程、提高企业核心竞争力的作用是显而易见的。正是因为如此，实施工作流系统成了众多企业"信息化"所追求的目标。但企业在真正实&shy;施工作流过程中，并不是一帆风顺的或者很快就能达到理想目标的，有些企业在工作流自动化方面投入了不少的人力物力，却并不能给企业带来预期的管理效率。那么成功&shy;实施工作流系统到底需要什么呢？这里给出七大关键要素供参考。 <br />
<br />
一、工作流平台的选择1：满足现在需要，同事能满足未来扩展的需要求 <br />
<br />
&nbsp; &nbsp; 企业70%的活动属于流程，流程有简有繁，在选择平台的时候就应考虑到未来业务发展的需要，选者一个好的平台就为以后的扩展留下了空间。 <br />
<br />
二、工作流平台的选择2：能做到而且要容易做到 <br />
<br />
工作流自动化涉及到流程、表单、报表，要从这三方面去考察工作流软件的性能，包括可能性和易用性，可能性是指平台是否能做到以及能做到什么程度，易用性要求软件&shy;操作尽量简单、易于理解。 <br />
<br />
&nbsp; &nbsp; 有些工作流软件一碰到复杂的流程就需编写脚本程序，这样在流程导入时几乎时时要依赖供应商，这势必会影响项目的进展。 <br />
<br />
&nbsp; &nbsp; 也有的工作流虽然也实现了流程、表单、报表功能，但操作过于复杂，致使培训了管理员，但一遇到复杂的情况还是需要供应商来解决。 <br />
<br />
三、供应商的选择：有能力，而且能够提供良好的服务 <br />
<br />
工作流系统有其通用性，但还远没做到游刃有余的程度，有的时候还是必须依赖与供应商来提供服务，甚至要对工作流平台本身做出相应调整。很多工作流代理商代理国外&shy;工作流软件的时间都还不久，工作流实施中的有些问题连供应商自己都不知道如何解决，至于要对软件做出调整那更是不可能了。供应商不能提供及时到位的服务是流程导&shy;入失败的最重要原因之一。 <br />
<br />
四、获得领导的重视 <br />
<br />
流程几乎涉及到公司的每一个人，在操作习惯上需要完成从手工处理到网上处理的转变，这种管理上的变革，需要有员工有一个适应过程。如果企业高层不能认识到业务流&shy;程自动化的重要性，就不会注入足够的资源（尤其是业务部门的人员）参与到项目中，不会在企业中为项目营造足够的声势使全体员工在意识上做好迎接管理变革的准备。 <br />
<br />
五、指定管理部门（业务部门）流程自动化专员 <br />
<br />
很多工作流项目早期只有IT部门人员参与，而没有业务部门的参与，这样由于IT人员缺乏业务背景和决策能力，IT部门的工作结果常常不能被业务部门接受，项目周&shy;期就会拖长。业务部门的参与使项目组有足够的授权，不但可以使项目中问题的解决周期大大缩短，而且更重要的是使企业整体更好地做好迎接管理变革的准备。 <br />
<br />
六、从必须用的、常用的、跟钱有关的流程开始导入 <br />
<br />
应为这些流程都是使用者常用的，切会影响当月个人工资，就算使用者百般不愿意，也须配合填写电子表单。一旦使用者接受了这种管理上的变革，再推广别的流程就变得&shy;顺利。 <br />
<br />
七、分阶段导入 <br />
<br />
工作流自动化的导入方式主要有两种：一是一次导入方式；二是分阶段导入方式一次导入方式是指在整个企业组织构架和业务流程中同时导入工作流系统。其结果是时间短&shy;、速度快，在很短时间内完成新旧系统的转换，产生革命性的效果，工作流自动化对企业所带来的协调性、整合性的成效马上显露出来。但同时，由于企业旧的系统已经全&shy;部被摧毁了，员工又还没完全接受新的管理方式，一旦企业业务流程出现了什么问题，将很难找到相应的补救措施，会给企业带来巨大的损失。分阶段导入方式的好处在于&shy;：在工作流的运行测试过程中出现什么问题，能够得到及时的处理，而不会给企业带来大的损失，又由于工作流自动化是逐步推广的，企业的工作流自动化一般也做得比较&shy;好，工作流自动化与企业磨合性较好。</div>
<img src ="http://www.blogjava.net/workflow/aggbug/222999.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/workflow/" target="_blank">黎民</a> 2008-08-19 14:37 <a href="http://www.blogjava.net/workflow/archive/2008/08/19/222999.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>BPM≠Workflow＋EAI</title><link>http://www.blogjava.net/workflow/archive/2008/08/06/220328.html</link><dc:creator>黎民</dc:creator><author>黎民</author><pubDate>Wed, 06 Aug 2008 00:55:00 GMT</pubDate><guid>http://www.blogjava.net/workflow/archive/2008/08/06/220328.html</guid><wfw:comment>http://www.blogjava.net/workflow/comments/220328.html</wfw:comment><comments>http://www.blogjava.net/workflow/archive/2008/08/06/220328.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/workflow/comments/commentRss/220328.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/workflow/services/trackbacks/220328.html</trackback:ping><description><![CDATA[<div class="t_msgfont" id="postmessage_98">作者:梁宾先<br />
转载自:<a href="http://taiwan.cnet.com/" target="_blank">http://taiwan.cnet.com</a><br />
在谈完 BPM 相关标准之后，这次我想跟读者谈 BPMS 的架构、组成模块及其各自功能，让读者有全盘性的了解，希望能破除一般人对 BPMS 的迷思。 <br />
关于 BPM ，业界有些迷思。例如，常听到有人说 BPM = EAI + Workflow ； PBMS 只不过 Workflow 厂商的旧瓶新酒，换汤不换药，只要原来 WfMS 加上系统整合的 Adaptors 就变成 BPMS ；或是 EAI 厂商加上 Activity Modeling 的工具或者是 Routing Engine 重新包装一下，也可以称作 BPMS 。<br />
我认为 BPMS 不只是如此，而是一个生命周期。顺着 BPM 生命周期了解用户的操作场景 (Scenario) ，是理解 BPMS 的组成全貌最好且最直觉的方式。在本文中，我首先介绍完整 BPM 生命周期，并从其中的每一步骤接着介绍工作内容、使用到的工具及其功能、与用户的角色。最后，我会以一张完整的 BPMS 架构图，详细介绍其中组成的模块功能。 <br />
<strong>BPM ：也要谈生命周期 (Life Cycle) </strong><br />
BPMS 强调让企业可以灵敏反应外部环境的变动并快速变动企业内部的流程作业，所以生命周期所强调的是持续性改善与周而复始的循环。 BPM 生命周期另一个含意就是，它是 BPMS 工具导入的方法论 (Methodology) 。 BPMS 解决方案最重要的核心就是方法论，它至少要包含思考哲理 (Philosophy) 、方法 / 步骤 (Methods / Steps ) 、与伴随的工具 (Tools/Utilities) 。因为没有任何两家的流程，组织，策略目标是全然一样的，因此怎样才能从策略目标规划到最后系统导入执行连贯一体，成功而有效地完成建置所依赖的才是合适的方法论。 <br />
目前各家 BPM 厂商所提出的生命周期不尽相同，乃是因为解决方案所面对的产业或应用领域不同，所以有了各自强调与专注的重点。例如， IBM HoloSofx 提出的是：建构 (Create) 、管理 (Manage) 、自动 (Automate) 、协同 (Collaborate) ； Howard Smith &amp; Peter Fingar 在 『 BPM - The Third Wave 』一书所提出的是；建模 (Model) 、布署 (Deploy) 、与管理 (Manage) ； Italio 提出的是发掘 (Discovery) 、建模 (Modeling) 、支援 (Supporting) 、 Monitoring ( 监控 ) 、及 Improvement ( 改善 ) 。在此我会提出较为完整的流程步骤，但不见得每家 BPM 厂商的都符合，读者可参考下图－ BPM 生命周期。 <br />
&nbsp;<img height="257" alt="" src="http://www.blogjava.net/images/blogjava_net/workflow/1.jpg" width="538" border="0" /> <br />
图一、 BPM 生命周期 <br />
<strong>&#183;阶段一、 流程发掘 (Discovery) : </strong><br />
要导入 BPM 第一步骤当然要先清楚知道现行流程的作业方式与状况，尤其是流程内的信息流 (Message flow) 、事件流 (Event flow) 、或控制流 (Control flow) 。哪些流程可以自动化？哪些是人工流程？有哪些人参与？流程是在组织内部或外部被执行？ BPMS 在此步骤的主要特征是如何 自动找出系统的商业逻辑 。通常企业会聘请外部顾问师或领域专家来协助辅导，这个动作有人称为 流程评估 (BPA, Business Process Assessment) ，评估范围可能涵盖策略与管理目标与流程的连结。同时企业也会配合导入一些管理的主题而作 流程再造 (BPR, Business Process Reengineering) ，例如评分计分卡 (BSC, Balance Score Card) 、六个标准差 (Six Sigma) 、或 ISO 9000 品质管理系统。 <br />
<strong>&#183; 阶段二、 流程设计 (Design) ：</strong> <br />
此阶段是一个包含四几个步骤的反复式的小循环 (Iterative mini-cycle) ：建模 (Modeling) 、 ( 分析 Analyzing) 、模拟 (Simulation) 、重构 (Redesigning) 流程。如前所述，面对外部的竞争压力与商机，为了让企业可以快速重构流程， 因此一些细致的流程变革 (Fine-grained process change) 只需利用此阶段的步骤就能作出实时的反应。<br />
流程 建模 所运用的工具称作 Process Designer 通常包含三个模块：组织 (Organization Chart) 、流程图 (Activity Diagram) 、与窗体 (e-Form) 设计工具。它们分别对应流程中三个最重要的元素：人、活动与文件 ( 有兴趣的读者可参阅 Process Modeling Conceptual Framework 有关的资料，后续容我在适当机会再做介绍 ) 。建模之后可以作执行动作前的 分析与仿真 来验证设计的流程是否正确合适或最佳化；此外它能还提供现行流程可能遇到的瓶颈信息，以避免执行后才发现问题进而导致很大的营运损失。如果分析模拟出来的结果并不满意，可以反复 重构 流程直到产出满意的结果。分析指的是从流程定义的语意与理论上的推论分析，仿真则可设定机率变量与行为假设让系统自动跑出期望值或变异差数据，有些则仅提供自动执行 (Animation) 或手动逐步执行以观测流程行为。 <br />
此阶段 BPMS 的主要特征是 图形化的接口 ，让非 IT 背景的用户可藉由拖曳方式也能轻松组装或分解流程；此外运用流程资产 (Process assets) 的观念，让流程定义隐含业界的最佳实务 (Best practices) 或流程样版 (Process Pattern) ，并且储存于流程仓储 (Process Repository) 以供随时再利用 (reuse) 。 <br />
<strong>&#183; 阶段三、流程执行 (Execution) ： </strong><br />
意指新上线的流程能被参与者顺利执行完成。负责控制执行的模块可称为工作流程引擎 (Workflow Engine) 或流程服务器 (Process Server) 。在此阶段 BPMS 主要的诉求是分布式交易 (Distributed transaction) 的管理，因为这些交易可能是复杂度高的跨巢状流程 (Nested process) 而且交织着新旧系统，甚至将既有的应用系统当成流程组件来执行。至于流程的执行者通常多是应用系统，可以不用人的参与 (human intervention) 而自动执行，也就是一般所称 流程自动化 (BPA, Business Process Automation) 。 <br />
此外，排程工具 (Scheduler) 可以应用来设定自动启动流程的时间与周期频率。有些 BPMS 的产品会提供规则引擎 (Rule Engine) 来负责商业规则判别与推理。此阶段另一个重要的特点就是在不用技术人员的参与下，依然可以让流程用户自行编辑与修改商业逻辑。例如，代理人的指派规则通常相当复杂，背后就需要有 Rule-based 的机制来支持。 <br />
<strong>流程布署 (Deployment) ：</strong>意指将设计好的流程推出上线让所有参与者 (Participant ，可能是人，应用系统，或其它流程 ) 来执行。这个步骤的主要特征就是能以最小的力气﹙ effort ﹚达成运算资源 (Computing Resource) 与组织人员的结合 (binding) ，如事先整合应用系统组件 (Application components) 。 <br />
<strong>与人互动 (Interaction) ：</strong>在流程的执行中很重要的就是与人的互动。并非所有流程都可以自动化，所以 BPMS 让人能管理自动流程与人工流程之间的接口。负责与人互动的接口称为工作项目的处理程序 (Workitem Handler) 。有时候流程接口本身也是一个流程，例如动态加会签或在窗体输入下一步流程的分派。过去 Workitem Handler 相当简单，然而现在有倾向丰富化与细致化的趋势。必要的时候还能让用户客制化或整合在不同系统的接口中。由于这个需求有快速提升的趋势，所以各家厂商纷纷提出丰富且个人化的流程入口网站 (Personalized process Portal) 。 <br />
<br />
<strong>第四阶段、管理维护 (Administration) ：</strong> <br />
当流程上线后伴随产生了管理维护的问题，如例外状况的介入处理、组织人员的变更、流程重新分派、或流程版本升级的影响。在此，有个重要的模块称作流程活动监控 (BAM, Business Activity Monitoring) ，它可以随时回报流程的执行状态与过程，而且用户也可以设定流程要追踪的关卡并主动回报，具有预警功能并能随时掌握问题处理的时效。另外服务器的流量与执行监控及流程仓储的数据维护的效能也相当重要。 <br />
<strong>第五阶段、流程最佳化 (Optimization) ：</strong> <br />
流程改善 (Improvement) 是个持续性的活动，不断反复朝向最佳化迈进。流程测量 (Measurement) 能提供流程的执行绩效 (Performance) ； BPMS 的报表工具 (Reporting Tools) 能让企业对自己的组织行为充分了解作为持续改善的依据，如此方能策划出改善与最佳化的策略。流程分析 / 仿真着重在执行前的分析，例如自动侦测瓶颈 (bottleneck) 、死结 (deadlock) 与流程定义的不一致 (Consistence) ；而流程测量则是执行后实际资料的分析，可以清楚知道流程消耗时间与资源。这个阶段跟商业智慧 (BI, Business Intelligence) 的技术与主题相似性很高的，差异在 BPMS 可以自动纪录与收集流程相关的数据。尤其 BPMS 所附含的流程绩效仪表版 (Dashboard) ，它提供一个全面式的概观让主管简单掌握且一目了然哪些流程是在标准差内，哪些是在失控状态。当然这些报表，都是用户可以自行定义或查询的，不用 IT 人员的参与。 <br />
<strong>BPM ＞ Workflow +EAI </strong><br />
相信从上述的介绍，读者可以清楚认识到 BPM 绝对大于 Workflow 加 EAI 。 BPM 的主要精神在于企业流程的管理，且主要的焦点在于业务性用户 (business users) 而非技术性用户 (technical users) ；在于流程弹性实时调整而非数据与应用系统的整合。所以仅是工作流程自动化加上 EAI 企业应用软件的转换机制是不足以的涵盖企业管理流程中所有必要的环节。例如尚有让管理主管能实时掌握流程成本效率 (cost/effective) 评量与流程绩效 (Performance) 管理，业务性用户可以轻易调整组装流程以提供客户最佳业务服务，等等。 <br />
我将上述中的工具整合起来，架构如图二所述： <br />
BPMS 系统架构 (System Architecture) <br />
&nbsp; <img height="384" alt="" src="http://www.blogjava.net/images/blogjava_net/workflow/2.jpg" width="512" border="0" /><br />
图二、 BPMS 系统架构图 <br />
一个完整的 BPMS 系统需由流程设计环境 (Process Design Environment) 、流程仓储或储存库 (Process Repository) 、流程服务器 (Process Server) 、用户执行环境 (User Execution Environment) 等主要元素所架构而成。 <br />
<strong>&#183; 流程设计环境 (Process Design Environment) </strong><br />
流程设计环境扮演着流程设计阶段中最重要的流程建模工作，通常包含了「组织图」 (Organization chart) 、「电子化窗体」 (e-form) 、活动图 (Activity Diagram) 、与商业规则 (Business Rule) 等相关元素，并可透过直觉图形化的接口，协助流程设计者进行企业流程的建构。 <br />
组织图部份大多与组织目录服务系统 (Directory system) 相结合，以协助企业进行组织的调整与管理，如支持 LDAP 、 AD 等相关目录服务。而电子窗体指的是信息呈现的接口，一般而言可将应用系统的数据与流程相关的数据，透过所谓的电子窗体来展现，便于处理与人互动的部分，而呈现的方式可透过特定的工具快速的订制。在了解流程整体运作与规划中，透过活动图可清楚地规划与了解流程中的各个活动彼此的先后顺序与关联，并订定流程的运作条件与事件触发的相关动作，再透过结合商业逻辑（ Business Rule ）的方式，让企业更清楚流程的运作方式且易于修改，在采购流程中，若采购金额大于 100,000 台币者需签核至协理，其余仅需签至经理，就是个明显的例子。 <br />
流程仿真（ Simulator ）与流程设计分析（ Analyzer ），则是透过流程数据的仿真得以事先验证流程执行时的结果与流程设计关联的分析（如在复杂的流程中，重要的流程元素或关联未建立），达到流程执行前事先的预防，并确认设计的流程是否正确合适或最佳化。 <br />
<strong>&#183; 流程数据储存库 (Process Repository) </strong><br />
流程仓储包含了流程定义 (Process Definition) 、流程执行纪录 (Execution Log) 、与应用数据 (Application Data) 。流程定义包括了流程运作所有相关的数据，最明显的就是流程三要素：人、活动与文件，都纪录在流程定义中，藉由流程的规则引擎 (Rule Engine) 的参数即数据的变异数或是各个节点所制定的活动时间限制等定出合适的流程定义，最后透过流程服务器执行定义好的流程；流程执行纪录指的是流程执行过程中所有的纪录，有的 BPMS 将此部份内建于系统中，有的则是需另行将所需纪录抄写到数据库中；应用数据则是指在流程执行的过程中，所使用到其它系统的相关数据并随着流程纪录下来或有所关联，如请采购流程执行中，需依照既有 ERP 系统的相关数据进行逻辑判断，甚至需将其抄写至流程窗体中。而在此所指的应用性数据并没有只局限在内部数据库，也包含了根据流程的定义向组织外可能以 web service 的方式呼叫外部数据来应用。 <br />
<strong>&#183; 流程引擎 / 服务器 (Process Engine/Server) </strong><br />
流程引擎是整个 BPMS 中最重要的一环，它负责正确无误地将流程在正确的时间传送给正确的人或系统，而由于流程的运作为企业营运的核心，因此能处理复杂且大量的流程工作是流程引擎所必备的条件。分布式交易 (Distributed transaction) 的管理与负载平衡（ Load Balancing ）将是考量的重点。 <br />
<strong>&#183; 用户执行环境 (User Execution Environment ) </strong><br />
这边所说的用户环境指的就是用户与流程沟通的接口。一般简易的用户接口多藉由待办事项（ Work lists ）让用户使用流程工作。而由于企业入口网站的风行，一个面面俱到的 BPM 产品通常透过 Web-based 接口，并加入口网站（ Portal ）的概念，提供所谓的流程入口网站接口（ Process Portal ）作为用户使用流程的沟通接口。如此除了可清楚地看到透过流程引擎指派而产生的的各项任务或工作事项 (work items) 外，并可结合其它入口网站与应用系统整合的机制，如使用协同工作功能促进员工彼此沟通与交流，像是公布栏、行事历或讨论区等。另外也可透过待办事项的启动 (trigger) 能够呼叫 (invoke) 与之相关的应用程序 (applications) 甚至根据各清楚定义的个别关卡 (activity) 自动以 web service 的方式来跨组织地呼叫 (invoke) 外部数据作交易 (transaction) 达到名副其实的 SOA 技术架构概念。 <br />
此外藉由流程网站接口用户 ( 通常指中阶以上主管或部门主管 ) 可利用行政管理工具 (Administrator Tools) 与报表工具 (Reporting Tool) 。就行政管理工具来说，进入流程数据储存库捞取流程定义的信息所作出的制式化报表可以清楚的知道员工的工作负荷量的轻重程度；而各种的统计量表包含热门排行、单位时间工作量统计、单位工作量统计、部门工作量统计、流程工作量统计、项目工作量统计提供管理者使用，使管理人员随时了解企业流程运作的各种情况。用户也能以 web service 的方式捞取应用数据作出动态分析。而流程的监控与管理 (Activity Monitor) ，亦可让用户或管理者透过 Web 的方式，实时地追踪目前流程的进度或进行例外的处理以能做到修正或变动的因应。也就是说活动的监控对流程范例的执行提供了一个绩效量测的准则。最后透过上述工具使流程作到实时的修正达到最佳化让工作更有效率。<br />
</div>
<img src ="http://www.blogjava.net/workflow/aggbug/220328.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/workflow/" target="_blank">黎民</a> 2008-08-06 08:55 <a href="http://www.blogjava.net/workflow/archive/2008/08/06/220328.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>嵌入工作流引擎和独立工作流引擎 —— 你该选择谁？</title><link>http://www.blogjava.net/workflow/archive/2008/08/06/220327.html</link><dc:creator>黎民</dc:creator><author>黎民</author><pubDate>Wed, 06 Aug 2008 00:53:00 GMT</pubDate><guid>http://www.blogjava.net/workflow/archive/2008/08/06/220327.html</guid><wfw:comment>http://www.blogjava.net/workflow/comments/220327.html</wfw:comment><comments>http://www.blogjava.net/workflow/archive/2008/08/06/220327.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/workflow/comments/commentRss/220327.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/workflow/services/trackbacks/220327.html</trackback:ping><description><![CDATA[<div class="t_msgfont" id="postmessage_96">根据工作流产品在运行时刻与业务应用系统的关系，可以将国内市场上的工作流软件产品分为嵌入式和独立运行两大类。本文希望通过分析这两类工作流产品的各自特点，为选择工作流产品的用户提供一些参考。<br />
因为工作流软件一般应用在电子政务、企业办公和管理软件上，同时在这些领域使用J2EE架构已是一种趋势，所以本文只着重于介绍基于J2EE技术实现的<span class="t_tag" onclick="tagshow(event)" href="tag.php?name=%B9%A4%D7%F7%C1%F7%D2%FD%C7%E6">工作流引擎</span>。<br />
<strong>嵌入式工作流引擎</strong><br />
<span id="attach_83" onmouseover="showMenu(this.id, 0, 1)" style="display: none; left: 215px; position: absolute; top: 391px"><img alt="" src="http://gisinfo.xinbaa.org/images/default/attachimg.gif" border="0" /></span>&nbsp;<img height="330" alt="" src="http://www.blogjava.net/images/blogjava_net/workflow/11.jpg" width="549" border="0" /> <br />
在部署上，嵌入式工作流引擎是不能单独运行的，它是以一个软件组件（或者说构件）的形式运行在使用它的业务应用中。因为工作流技术主要是解决复杂业务流程灵活定制和方便更改的问题，因此在应用逻辑层次上，我们可以把嵌入式工作流引擎看作是业务逻辑层的一部分。<br />
在与业务应用的交互方式上，嵌入式工作流引擎通过提供WAPI（Workflow API）为展现层或业务逻辑层的其他部分提供服务（如启动指定工作流程、查询工作任务、设置流程运行业务数据）。另一方面，工作流引擎经常需要业务相关的数据或逻辑来决定流程流转，或者需要在不同任务之间传递业务数据，这时候，流程引擎会调用业务应用中业务逻辑或数据访问模块提供的API接口来完成相应操作。<br />
<strong>独立运行工作流引擎</strong><br />
&nbsp;<img height="241" alt="" src="http://www.blogjava.net/images/blogjava_net/workflow/12.jpg" width="498" border="0" /> <br />
独立运行工作流引擎本身就是一个单独的应用。作为服务应用如果又没有基于某个中间件技术的话，独立运行工作流引擎必须自己实现多线程同步、网路通讯处理、资源池等服务端技术，因此实现的成本高、技术复杂。<br />
在与业务应用的交互方式上，独立运行工作流引擎会以远过程调用的方式提供WAPI（Workflow API）。对于使用Java技术的独立运行工作流引擎，远过程调用方式可以是RMI、JMS，或者能够跨越异构系统的Web Service。<br />
另外，独立运行工作流引擎也必须为反过来如何调用业务应用提供解决办法。一般情况下，独立运行工作流引擎应该能够直接调用外部业务应用提供的远程接口（如基于RMI、JMS或者Web Service的业务接口），另一方面，业务应用也必须为独立运行工作流引擎提供远过程调用业务方法。<br />
当然也有省事而走捷径的方法，比如国内市场占有率比较高的一款Java独立运行工作流产品，虽然提供了基于RMI/JMS的WAPI，却没有提供工作流引擎直接调用外部业务远程接口的方法。如果要让工作流引擎调用外部业务逻辑，你必须编写一个实现厂商特有接口的Java类，然后将它上传并注册到工作流引擎中。<br />
&nbsp;<img height="236" alt="" src="http://www.blogjava.net/images/blogjava_net/workflow/13.jpg" width="489" border="0" /> <br />
像上图这种方式是可以解决实际业务问题（你自己编写的java类可以做任何事情，比如远程调用或者访问数据库）。但很明显，本来很多不该二次开发做的工作现在必须在二次开发时做了。同时，业务应用逻辑分散在多个应用（你的应用和工作流引擎）中并且某些业务应用逻辑（上传到引擎的Java类）反过来要依赖厂家的接口，这些都是良好的架构设计要避免的情况。一旦系统后期要做一些变动就会带来很大麻烦。<br />
<strong>对比</strong><br />
下面我们就部署、二次开发的难易程度、性能、是否支持分布和EAI，对这两类工作流引擎做一个对比。<br />
1、部署: 对于一个基于Java技术的嵌入式工作流引擎，在部署时非常简单，你只要将对应的jar文件加到classpath中就可以了。独立运行工作流引擎因为是独立的应用，并且必须通过RMI/JMS/Web service等远程调用技术与业务应用交互，所以部署起来要麻烦得多；<br />
2、二次开发: 由于大部分独立运行工作流引擎也会在客户端，提供方便远程调用的本地调用API，所以在二次开发时，程序员大部分时间都可以不大关注引擎是本地的还是远程的。但在传递某些业务参数和例外处理中，远程调用还是有些特殊的要求和限制的。因此总的来说，在二次开发上独立运行工作流引擎对程序员要求高一些；<br />
3、性能：毫无疑问，因为没有远过程调用，嵌入式工作流引擎要占明显优势；<br />
4、分布和EAI：独立运行工作流引擎能够和多个业务系统打交道，嵌入式工作流不能直接和宿主系统以外的系统交互。因此只有独立运行工作流引擎支持分布式应用，和支持通过业务流程做企业应用集成（EAI）。<br />
<strong>如何选择</strong><br />
通过上面的对比已经很清楚了。如果你需要工作流程在多个系统中流转，那么选择独立运行工作流引擎。在其他情况下，选择嵌入式工作流引擎。<br />
同时，即使你因为分布或EAI而准备选择独立运行工作流引擎，你也应当选择在业务与引擎两个调用方向上，都直接支持远过程调用的工作流产品。如果独立运行工作流引擎在某个调用方向上（比如回调业务应用）没有提供方法，需要用户在二次开发时自己解决，这种情况下请选择嵌入式工作流引擎。<br />
<strong>发展方向</strong><br />
一般国内独立运行工作流产品历史会比较长，大部分是在7-8年前开始立项开发的，那时候正是分布式应用理论最火热的时候。可随着人们在实践中的经验教训和积累，发现很多情况下我们不需要复杂的分布式应用。这也是近几年来在Java世界里，许多人提倡&#8220;轻量级&#8221;、&#8220;no-EJB&#8221;的原因。<br />
事实上，嵌入式工作流引擎经过一定的扩展也能够处理跨系统的流程交互：<br />
&nbsp;<img height="327" alt="" src="http://www.blogjava.net/images/blogjava_net/workflow/14.jpg" width="561" border="0" /> <br />
在上图中，新的嵌入式工作流引擎通过附加工具能够为外部业务接口（不管是RIM/JMS/Web Service）自动生成适配器（Adapter）供引擎使用，另外引擎会对外提供远程WAPI（包括客户端适配器）。具备了远程交互能力的嵌入式引擎仍然可以作为组件在主要的业务应用中使用，从而使得大部分业务逻辑和引擎之间的交互为本地调用，不会造成性能的损失。<br />
国际著名工作流专家Michael zur Muehlen 在其 &#8220;Workflow-based Process Controlling&#8221;一书中谈到：&#8220;在上个世纪80-90年代，大部分工作流应用采用第一种应用方式（独立）。现在，对于包含复杂流程的应用系统，许多软件提供商重新定位和设计它们的工作流产品，使其成为应用系统的构件模块（即嵌入式）&#8221;。你的看法呢？</div>
<img src ="http://www.blogjava.net/workflow/aggbug/220327.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/workflow/" target="_blank">黎民</a> 2008-08-06 08:53 <a href="http://www.blogjava.net/workflow/archive/2008/08/06/220327.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>业务流程管理综述</title><link>http://www.blogjava.net/workflow/archive/2007/04/17/111412.html</link><dc:creator>黎民</dc:creator><author>黎民</author><pubDate>Tue, 17 Apr 2007 14:07:00 GMT</pubDate><guid>http://www.blogjava.net/workflow/archive/2007/04/17/111412.html</guid><wfw:comment>http://www.blogjava.net/workflow/comments/111412.html</wfw:comment><comments>http://www.blogjava.net/workflow/archive/2007/04/17/111412.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/workflow/comments/commentRss/111412.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/workflow/services/trackbacks/111412.html</trackback:ping><description><![CDATA[<strong>引言<br></strong>&nbsp;&nbsp;&nbsp; 首先了解一下信息技术演化的过程是有助于我们地更好的了解业务流程管理系统的相关知识。从图1中，我们可以看到当今信息系统发展的趋势[3]。该图表明当今的信息系统包含了几个层。中心层是直接和硬件打交道德操作系统；第二层是通用的应用程序，这些应用程序在企业中有广泛使用，比如Microsoft Office；第三层是为某些特定领域所开发的软件，这些软件局限于专业的企业或者部门内部使用，比如人力资源管理系统，Call Center系统等；第四层是专业定制软件，这些软件仅仅为特定的公司组织开发，通用性较小，专业化程度很高。 <br>
<p align=center><img height=425 src="http://www.e-works.net.cn/images/127928370655000000.JPG" width=352><br>图1 信息系统技术演化趋势 </p>
<p>&nbsp;&nbsp;&nbsp; 在二十世纪六十年代，信息系统中不包含第二层和第三层。信息系统建立在一个小型的操作系统上，仅仅有特别局限的功能。因为那时没有通用软件也没有行业专用软件，当时的信息系统仅仅包含专业定制软件。从那时开始，第二层和第三层软件逐渐发展起来，此外第四层软件的种类逐渐增多，同时增加了更多的功能。当今，操作系统更加强大，存在于第二层的数据库管理系统为第四层软件的发展提供了更多的功能上的支持。这种趋势导致，软件的发展的重点由单纯的编程转向以组件的形式组成更加复杂的系统。当前对软件供应商的挑战不再是某一模块的代码编程，而是把第四层软件的功能协调整合在一起。 <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 另外一个趋势是软件发展的重点从数据处理转向流程管理。二十世纪70年代、80年代，软件主要以数据驱动的应用程序为主。信息技术的重点存储和提取信息数据，因此数据建模是当时建立一个信息系统首先要做的工作。业务流程建模经常被忽视，并且流程经常要适应当时的信息技术。管理趋势，如业务流程重组，则越来越重视流程管理。因此，系统工程师们开始转向基于流程的系统得开发方法的研究。 <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 最后一个趋势是事前详细设计转向过程重设计及组件重组。由于Internet的发展，信息系统发生了巨大的变化，越来越少的信息系统是从零开始建造。在很多案例中，我们可以看到很多应用程序中的某些组件和功能被移植到新的系统中。尽管基于组件的软件开发方式仍然存在一些问题，但是我们可以看到软件的开发方式变得越来越多样化、更加动态化。 <br><br>业务流程管理系统或是存在于第二层独立的软件，或是集成在第三层软件中的组件。存在与第二层体系中的业务流程管理系统的例子是工作流管理[11，12，13，14，15]，比如StaffWare，MQSeries，和COSA。在主导的ERP系统（第三层）中，工作流管理经常作为一个组件出现。SAP、Baan、PeopleSoft、Oracle的工作流引擎可以看作是集成的业务流程管理系统。将业务流程管理分离出来作为一个独立的组件的想法和第三种软件发展趋势相吻合。业务流程管理系统避免将工作流程硬编入专业软件的繁杂工作，同时提供了对从硬编程到重组组件的支持。比如，现今的工作流管理系统可以用来集成到已经存在的软件中去，支持当业务流程改变的时候，只需要更改工作流程图，而不必重新编程。将业务流程管理作为一个独立的组件的想法也和Web Service的创意一致：Web Service语言，比如，BPEL4WS，BPML，WSCI，XLANG和WSFL可以被用于从使用WSDL定义的系统中提取出服务。 <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 从科学的观点来看，上述观点早在早期的办公信息系统中即有体现。在二十世纪70年代，Skip Ellis[16], Anatol Holt[23], Michael Zisman[18]已经开始了研究所谓的办公信息系统的工作，这种系统以流程模型为驱动。这三位先驱都是利用Petri网为工具对办公流程建模的。20世纪70年代到80年代之间，是发展办公信息系统的大好时机，不幸的是，很少真正的软件成功开发出来。因此，该技术和软件的研究几乎停滞了十年之久，结果是，在80年代几乎毫无进展。在20世纪90年代，研究界重新对该领域产生了浓厚的兴趣，一些工作流管理系统在90年代的后五年中开发出来，并且学者们发表了大量关于工作流技术的论文。现今，工作流管理系统基本有了雏形[13]。然而，这些软件仅仅局限于特定的领域，比如银行业和保险业。就像Skip Ellis指出的，从上述的盛衰沉浮的发展进程中学习到宝贵的经验是非常重要的[24]。在80年代的失败可以归咎于技术和理论的不成熟。当时，网络不发达或者某些地区根本不存在，没有合适的图形界面，并且没有合适的开发工具。然而，最根本的问题在于，没有统一的流程建模模型，并且那些系统太过于刚性，以至于不能人们不能真正将之应用到实践中。上述大多数技术问题现今已经解决，然而概念上的问题依旧存在：没有统一的业务流程建模标准，以及当今的工作流管理系统在过程逻辑上增加了许多不必要的限制，比如流程大多被订制成顺序执行。 <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; <strong>1．业务流程管理的需求与产生的背景</strong><br>&nbsp;&nbsp;&nbsp; 业务流程(也叫做经营流程)是为了实现一定的经营目的而执行的一系列逻辑相关的活动的集合，业务流程的输出是满足市场需要的产品或服务。根据功能、管理范围等的不同，企业的流程管理一般分为生产流程层、运作层、计划层和战略层四个层次[3]。表1对各个层次做了比较。 <br></p>
<p>&#160;</p>
<p align=center><img height=284 src="http://www.e-works.net.cn/images/127928370829531250.JPG" width=485><br>表1 流程管理的四个层次</p>
<p>&nbsp;&nbsp;&nbsp; 流程管理的各层次均有相对独立的、特定的方法，但层次之间也有着密切的联系。首先，高层的管理目标最终要通过低层的业务活动来实现；其次，当低层的管理解决不了实际问题时，就需要引入高层的管理，例如当运作层的调度无法解决资源的配置问题时，就说明分配给该流程的资源数目需要修改，此时需要引入计划层的管理，重新进行资源能力计划的计算；最后，低层的数据为高层的管理决策提供依据，企业的策略管理和战略管理中的模型和参数来自对企业实际经营活动统计数据的积累。因此，从整个企业流程管理的角度来看，有必要将这四个层面上的流程管理统一到一个框架下，并和企业的信息系统联系起来。 <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 从企业信息系统的角度来看，办公自动化系统、事务处理系统和决策支持系统等都是常见的企业信息系统，但这些系统并没有加入流程的因素，只是用来帮助员工更好地完成某些特定的任务。工作流系统的出现使得整个流程的自动流转或自动执行成为可能，但是工作流一般只解决生产流程层的问题，与企业的计划和战略决策还存在一定的脱节。另外，随着企业业务流程向企业外部(供应商和客户)延伸，传统的工作流系统无力解决跨企业的流程集成问题。基于以上原因，面向企业的业务流程管理解决方案由此应运而生。 <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 业务流程是把一个或多个输入转化为对顾客有价值的输出的活动。简而言之，业务流程是以涉及为顾客提供产品或服务为最终目标的组织活动的集合。一个典型的业务流程应该包括下面六大要素：流程目的（它存在的理由）；输入资源；按一定秩序执行的活动；这些活动之间的结构（相互关系和作用）；输出结果；该流程创造的价值。 <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 一家企业成功的基础，就是通过业务流程协调各种资源来达成企业目标。无论是向顾客交付产品，与合作伙伴协同，还是引导员工的努力，业务流程能够将企业的产品、品牌和价值有机地编织到一起，例如下面这些业务活动都是业务流程：根据生产所需，安排原材料的检验、入库和供应；回答客户的咨询；从供应商那里采购；向市场投放新产品。事实上，业务流程集成了企业内各种业务的特征，业务流程也因此成为企业运作特性的核心。 </p>
<br><strong>2．BPM和BPMS的基本概念<br></strong>&nbsp;&nbsp;&nbsp; 2.1 BPM的基本概念<br>&nbsp;&nbsp;&nbsp; 业务流程管理（Business Process Management, BPM）不是一个新概念，甚至不是一个新名词。它是从相关的业务流程变革领域，如业务流程改进（BPI）、业务流程重组（BPR）、业务流程革新中发展起来的。流程管理技术也是从早期的工作流管理、EAI、流程自动化、流程集成、流程建模、流程优化等技术中发展起来的。 <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 很多人认为业务流程管理（Business Process Management BPM）是90年代工作流管理系统的扩展。因此，我们使用工作流的术语来定义BPM。工作流管理联盟（WfMC）定义工作流为：&#8220;工作流是一类能够完全或者部分自动执行的经营过程，它根据一系列过程规则、文档、信息或任务能够在不同的执行者之间进行传递与执行。&#8221;[13]。工作流管理系统（WFMS）的定义是：&#8220;工作流管理系统是一个软件系统，它完成工作流的定义和管理，并按照在计算机中预先定义好的工作流逻辑推进工作流实例的执行。&#8221;[13]。上述两个定义的重点都在于工作流的执行，也就是使用软件支持操作流程的执行。在过去的几十年里，很多研究学者开始意识到仅仅把重点放在工作流执行上过于局限，于是新的术语BPM诞生了。现今存在很多BPM的定义，但是从中我们可以看到大多数定义都包含了工作流管理的内容。 <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 从管理理论或战略的层面看，业务流程管理（BPM）就是在一个存在内部事件和外部事件的环境中，由一组相互依赖的业务流程出发，对业务进行描述、理解、表示、组织和维护。从具体实施的层面看，BPM 还可分为流程分析、流程定义与重定义、资源分配、时间安排、流程管理、流程质量与效率测评、流程优化等。 <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; Gartner Inc．给出的BPM 的定义[17]是：BPM是一个描述一组服务和工具的一般名词，这些服务和工具为显式的流程管理(如流程的分析、定义、执行、监视和管理)提供支持。 <br>
<p>&#160;</p>
<p align=center><img height=191 src="http://www.e-works.net.cn/images/127928370980312500.JPG" width=524><br>图2 BPM和WFM的生命周期</p>
<p>&nbsp;&nbsp;&nbsp; 图2表明WFM和BPM生命周期上的联系。在设计阶段，业务流程被定义或者是重新定义；在配置阶段，定义的流程在基于流程的信息系统中实施；在实施阶段，业务流程开始利用在配置阶段的内容开始实施；在诊断阶段，系统开始分析业务流程以发现其中的问题和需要改进的地方，在流程设计阶段重新定义，往返循环不断地优化业务流程。相对比而言，传统的WFM的重点仅仅存在于BPM的下半部分。所以WFM在诊断阶段基本上没有什么支持。此外，WFM对于设计阶段的支持很少，仅仅提供了一个编辑器，而对实时的设计分析没有支持。因此，几乎没有WFM支持流程设计的仿真，验证，确认以及对实时数据的收集、解释。从理论上说，可以从工作流日志中可以挖掘业务流程，然而现今没有软件能够真正做到这一点。 <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 从图2中我们也可以很清晰地看到BPM的研究范围以及BPM和工作管理（WFM）的在其他方面的区别和联系[1]。 <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 1）从产生的背景来看，工作流的概念起源于生产组织和文档自动化领域，它十分强调任务和文档的概念。而BPM 是在EAI、工作流和BPR等一系列技术或理念的基础上发展起来的，BPM 中流程的概念已经超出了任务的集合这一范畴。 <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 2）从对业务流程的管理来看，工作流侧重于业务流程的自动化。从WFMC给出的工作流的概念中可以看出，工作流强调业务流程的自动或部分自动的执行。自动化是业务流程管理很重要的部分，但不是全部。从这个意义上说，工作流对流程的管理应该处于表1所示的运作管理和部分计划管理层面。而BPM 是业务流程管理的整体解决方案，它涵盖了业务流程的建模、运行、监控、分析等多个方面，以及从生产管理到战略管理的各个层次。 <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 3）从对业务流程类型的理解来看，工作流侧重于管理结构化的流程，这些流程从一个参与者流转到另一个参与者。工作流在银行、保险、税务等领域应用比较广泛，其原因就是这些领域的流程往往十分结构化。而BPM 对流程的并行、协同和分布的支持能力更强。 <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 现今，很多工作流供应商开始把他们的系统定位BPMS（BPM systems）上。BPA（Business Process Analysis）是其中很重要的一个方面[25]。BPA主要覆盖了传统的工作流产品所忽略的方面（例如，诊断，仿真，等）。BAM（Business Activity Monitoring）是BPA中的一个方面，BAM工具的目的在于使用信息系统日志中的数据来诊断业务流程。例如，ARIS流程性能管理（ARIS PPM）软件[26]从日志细节中提取出信息，并把这些信息以图形的方式表示出来。BAM也能进行流程挖掘，比如从日志中挖掘出流程模型[27]。 <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 在流程重设计阶段，现今有两种趋势：STP（Straight Through Process）和CH(Case Handing).STP是指业务流程执行的完全自动化，即不需要人工参与。STP仅仅适用于一部分案例，因为不可能所有的过程都是符合STP的要求，有时要人工参与才能完成工作。而CH将案例分为两种：（1）可以被自动执行的案例（2）需要人工参与的案例。STP目的在于将更多的流程自动化，而CH则认为很多流程过于动态和复杂而不能完全自动化[11]。 <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 2.2 BPMS的基本概念<br>&nbsp;&nbsp;&nbsp; 关系数据库分离了应用程序使用的数据和具体的应用逻辑。数据库作为数据持久的存储集合，使用实体关系模型和诸如两阶段提交这样的协议来保证数据的完整性和正确性。数据库的理论基础和实现机制十分复杂，但是对数据的各种操作却可以通过相对简单的接口(SQL)加以实现。 <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 业务流程管理系统(Business Process Management System，BPMS)的提出也是基于这一思想。BPMS使企业能够对核心流程进行建模，部署和管理。企业信息系统所处理的业务流程越来越复杂，需要不断调整才能适应市场，这对企业信息系统的灵活性提出了更高的要求。工作流系统完成了业务逻辑与应用程序的分离，提高了流程的灵活性，但工作流通常侧重于结构化流程的自动化执行，还不足以支持整个企业的业务运转，在此背景下提出了BPMS的概念。与DBMS的思想类似，BPMS的思想以一种统一、中性的表示方法描述业务流程模型，使业务流程模型从实现逻辑中抽取出来，被各个企业应用程序所使用，从而灵活地构建基于流程的信息系统。业务流程逻辑、业务流程的完整性和正确性可以由BPMS保证，企业信息系统的开发可以基于BPMS进行[4]。 </p>
<br><strong>一般而言，BPMS应具有以下功能模块：</strong> <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 1)流程仓库 为流程以及与流程有关的知识提供集中的存储场所，提供目录服务以便于流程的查询和发布。 <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 2)流程设计 设计流程的模块、逻辑、规则和执行角色，提供流程模板和重用机制。 <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 3)流程配置 为流程实例的运行绑定参与者，分配资源，以及设置其他特定的参数。 <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 4)流程引擎 驱动流程的运行并负责流程数据的维护；管理流程的状态，实现流程的事务管理。对于分布式流程，要与其他流程引擎进行交互和协调。 <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 5)流程维护 流程的监控和异常处理。 <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 6)流程入口 为流程的用户提供统一的流程访问机制，包括工作任务列表、报告等；提供企业联盟的流程访问规则。 <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 7)流程优化对资源利用进行优化，保证流程的一致性，防止死锁。 <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 8)流程分析 对关键性能指标进行分析和流程仿真；对流程的时间和资源性能进行分析。 <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;<strong> 3．BPM的框架研究</strong><br>&nbsp;&nbsp;&nbsp; 有关BPM 的学术研究散见于工作流、软件工程和管理科学等领域，对BPM 整体框架的研究较少，目前较有影响的是EDL-BP提出的BPM建模软件技术框架，业务流程管理联盟(Business Process Management Initiative，BPMI)提出的一系列标准和框架。另外，IBM 基于其企业应用软件，提出了持续业务流程管理(Continuous Business Process Management，CBPM)框架。 <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; EDL-BP(Eindhoven Digital Laboratory for Business Processes)根据BPM的生命周期提出了BPM建模所需技术的框架，如图3所示。 <br>
<p>&#160;</p>
<p align=center><img height=602 src="http://www.e-works.net.cn/images/127928371256562500.JPG" width=514><br>图3 BPM建模所需的技术框架 </p>
<p>&nbsp;&nbsp;&nbsp; 从图2中我们可以看到不同的建模阶段需要不同的技术（包括软件），以及这些技术之间的联系。业务流程通过业务流程建模分析技术建立模型然后以信息系统的形式表示出来。MOD模块使用BBDP技术把现有的实际的BP抽象成为图形化和形式化的业务流程，在通过ANA模块中VAL和VER来校验业务流程是否合理和正确，随后用PERF工具对业务流程进行性能分析，用OPT技术对业务流程进行优化。在得出了正确合理优化后的业务流程后，使用CG技术将业务流程模型集成到现有的产品中去，用IS的形式反映出来。 <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; BPMI的主要发起者Intalio公司基于BPMI的系列标准提出了BPM 框架[18]在这个框架中，BPMI系统介于企业已有的信息系统和B2B电子商务系统之间，包含流程部署和流程执行两个模块。流程部署模块可以利用目录协议与企业IT系统的目录服务进行联系，另外，还可通过UDDI协议将流程发布为Web服务。在流程执行模块中，流程可以被其他的高级语言包装成不同的形式，或者直接提供给工作流系统执行。对于跨企业流程，流程的公共部分还可以被封装为Web服务，或者遵照电子商务协议与其他企业的流程进行交互。 <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; CBPM 是IBM提出的BPM 框架[22],其思想和CPI十分类似。该框架的特点是很好地整合了Holosofx BPM Suite和IBM MQ Series工作流软件，具有很强的实用性。CBPM 分为创建、协作、自动化和管理四个步骤，每个步骤又可细分为若干个阶段。这些步骤和阶段都严格对应于Holosofx BPM Suite或IBM MQ Series中的软件模块，四个流程首尾相联，构成一个闭环流程。 <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; BPMI框架目前局限于流程建模和操作的语言规范，没有涉及从低层到高层的流程管理的集成问题。CBPM从已有的软件系统中来，其流程建模、运行和应用集成方式不具有普遍性，而且没有解决跨企业流程集成问题。文献中的其他框架往往也仅从BPM 的理念出发，其功能模块往往只是概念性的，缺乏与具体应用系统的对应。 </p>
<br><strong>4．BPM的形式化方法<br></strong>&nbsp;&nbsp;&nbsp; 业务流程管理模型应该有一个形式化描述基础，因为：1）形式化的方法能够清晰的描述描述问题，不存在含糊不清的表述[6]；2）形式化模型为分析流程提供了数学化基础[28]。 <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 经典Petri网是德国科学家Carl Adam Petri在六十年代提出来的，在此后的几十年中。Petri网理论得到了极大的丰富．并被广泛地应用于许多研究领域，如协议工程、柔性制造系统、业务处理等等．使用Petri 网描述业务流程主要有以下原因： <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 1）直观的图形表示 Petri网是一种形式化语言．经典的Petri周有两种元素：变迁元素(用方框表示)、库所元素(用圆圈表示)，而有向边表示选两种元素之同的关系． <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 2）形式化的语义 Petri 网(包括各种高级网系统)都有形式化的语义定义，一个Petri网模型加上相应的语义就能描述一个业务流程． <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 3)状志和事件的正式表示 有些流程建模方甚侧重于描述系统状态的变化，如状态自动机I有些建模方法是基于系统中事件的发生，如流程代说、数据流程。 <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; Petri同能够同时显式地描述系统状态和事件，选样便于对系统的理解和分析。 <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 4）丰富的分析技术 Petri网模型一个很重要的特点在于它提供了丰富的系统分析技术，如对系统不变量(invariance)、活性(liveness)、有界性(boundness)、安全性(safety)等分析计算，也可以计算系统的性能，如响应时间、等待时间、资源利用率． <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 在文献[6]中说明了使用Petri网作为分析工作流分析工具的三个理由。Petri网是基于状态而不是基于事件的一种分析技术，它成为分析业务流程模型的一种形式化的正式方法。通过使用库所符号，Petri网能够很自然地描述流程之间的阶段状态，基于状态的模式比如延期选择，交叉平行路由等状态可以很容易的表示出来了。这些模式的描述可以在文献[7]中找到。然而，当涉及描述某些控制流依赖关系的时候，Petri网也有其不足，见文献[8]。因此，这就导致YAML（Yet Another Workflow Language）的发展[9]，它正确的描述了变迁系统的语义。 <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 通过观察我们可以发现，用Petri网可以很容易的描述延期选择的概念，而这正是在传统的经典工作流管理系统中很难支持的，见文献[10]。在web service组件领域，两种新提出的标准BPEL4WS和BPML提供了对上述概念有力的支持。在web service中，捕获各种服务和例如象&#960;-calculus这些公式之间的交互是十分重要的。然而现今没有足够的证据证明BPEL4WS是基于一种形式化语义的，所以能够把如上关系完全形式化是当前应该做的工作。 <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 形式化定义业务流程管理模型语言根据其表现力进行比较。对于某些工作流建模语言，其比较可以在文献[29，30]中找到。通过这些对比结果，我们可以知道哪些方法能表达什么样的表现力，同时也看到该领域需要更多的研究以提供更多更好的形式化描述语言。 <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;<strong> 5．BPM的建模语言<br></strong>&nbsp;&nbsp;&nbsp; BPMI[19]最近推出了业务流程建模语言(Business Process Modeling Language，BPML)[20] 和业务流程查询语言(Business Process Query Language，BPQL)[19]两个标准，分别作为流程建模和流程模型访问的标准接口，并在此基础上提出了BPM 框架。 <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; BPML是基于XML语言的模型描述语言，它将业务流程描述成控制流、数据流和事件流的结合，在此基础上还可以在业务流程中添加业务规则、安全规则和事务管理等特性。与传统的流程建模语言相比，它具有描述&#8220;端到端&#8221;流程(end-to- <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; end)的能力，这样，可以从多个参与者的角度来审视流程模型。另外，BPML以Pi-Calculus[21]作为其数学基础，这种形式化描述赋予了BPML在一致性检查、防止死锁、瓶颈检测和流程优化方面的较强能力。虽然BPML现在还不成熟，但是其官方组织描绘了BPML的美好前景，它具有如下特征[5]： <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 1）&nbsp; BPML是业务流程建模的原语言，就像XML是业务数据的原语言一样。 <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 2）&nbsp; BPML进程跨越多种应用程序和企业，不受任何防火墙限制。 <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 3）&nbsp; BPML提供了中间件的特性：它可以独立开发，实现远程处理监控，发布和订阅和消息队列等功能。 <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 4）&nbsp; BPML能够处理不同的应用程序，比如数据库管理系统，软件组件等等。 <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 5）&nbsp; BPML能够用进程定义业务事务和系统事务，业务事务经常包括两个以上的参与者，而系统事务能够包括多个应用程序。 <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 6）&nbsp; 统一业务流程和技术 进程是BPML的关键目标。 <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; BPQL是BPMS的访问接口，用于对流程实例运行状态的查询、控制和流程模型的部署。类似于不同的编程语言用SQL或其他关联工具可以访问到数据管理系统那样，流程管理系统同样如此。DBMS（数据库管理服务器）是一种通用的&#8220;数据服务器&#8221;，而BPMS 则是一种通用的&#8220;流程服务器&#8221;。软件开发者准备采用流程查询语言（Business Process Query Language, BPQL）和流程服务器的原因是两者简化了流程环境中应用系统的开发。在传统的开发中，流程的环节四处散落，一个环节是这个应用系统的，一个环节是其他系统的。此外，流程式应用系统要能看到所有流程和所有流程数据。有了BPQL，写软件程序去监控、中断、交互和协调端到端流程变得轻而易举。如果以流程为中心，&#8220;电子化&#8221;事实上就已经内建在每个流程中，不需要专门为每个流程编写&#8220;电子化&#8221;，就像积木本来就是设计好，随时可以搭起来一样。 <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; <strong>结论</strong><br>&nbsp;&nbsp;&nbsp; 本文给出了业务过程管理的概念和功能，描述了业务过程管理框架，讨论了业务流程形式化表述方法和建模语言，对比了业务过程管理和工作流的区别和联系。比较的结果表明，业务过程管理是新一代企业信息系统体系结构的重要发展方向。该文献综述将对我进一步展开对基于Petri网的业务流程管理模型研究有着重要的指导作用。 <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; <strong>参考文献<br></strong>&nbsp;&nbsp;&nbsp; [1]W.M.P.van der Aalst et al. Business Process Management: A Survey .(Eds.):BPM 2003, LNCS 2678, pp. 1&#8211;12, 2003. Springer-Verlag Berlin Heidelberg 2003 <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; [2]J. Desel, W. Reisig, and G. Rosenberg. Business Process Management Demystified: A Tutorial on Models, Systems and Standards for Workflow Management. (Eds.): ACPN 2003, LNCS 3098, pp.1-65,2004. Springer-Verlag Berlin Heidelberg 2004 <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; [3]W.M.P. van der Aalst. Making Work Flow: On the Application of Petri nets to Business Process Management. In J. Esparza and C. Lakos, editors, Application and Theory of Petri Nets 2002, volume 2360 of Lecture Notes in Computer Science, pages 1-22. Springer-Verlag, Berlin, 2002. <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; [4]谭伟,范玉顺.业务流程管理框架与关键技术研究. 计算机集成制造系统,第10卷第7期，2004年，2-6. <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; [5] Howard Smith. Business process management-the third wave: business process modelling language (bpml) and its pi-calculus foundations. Information and Software Technology 45 (2003) 1065&#8211;1069. <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; [6]W.M.P. van der Aalst. Three Good Reasons for Using a Petri-net-based Workflow <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; Management System. In S. Navathe and T. Wakayama, editors, Proceedings of the International Working Conference on Information and Process Integration in Enterprises (IPIC&#8217;96), pages 179&#8211;201, Cambridge, Massachusetts, Nov 1996. <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; [7] W.M.P. van der Aalst, A.H.M. ter Hofstede, B. Kiepuszewski, and A.P. Barros. <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; Workflow Patterns. QUT Technical report, FIT-TR-2002-02, Queensland University <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; of Technology, Brisbane, 2002. <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; [8]W.M.P. van der Aalst and A.H.M. ter Hofstede. Workflow Patterns: On the Expressive <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; Power of (Petri-net-based) Workflow Languages. In K. Jensen, editor,Proceedings of the Fourth Workshop on the Practical Use of Coloured Petri Nets and CPN Tools (CPN 2002), volume 560 of DAIMI, pages 1&#8211;20, Aarhus, Denmark,August 2002. University of Aarhus. <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; [9]W.M.P. van der Aalst and A.H.M. ter Hofstede. YAWL: Yet Another Workflow Language. QUT Technical report, FIT-TR-2002-06, Queensland University of Technology, Brisbane, 2002. <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; [10] W.M.P. van der Aalst, B.F. van Dongen, J. Herbst, L. Maruster, G. Schimm, and <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; A.J.M.M. Weijters. Workflow Mining: A Survey of Issues and Approaches. Data and Knowledge Engineering, 2003 (to appear). <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; [11] W.M.P. van der Aalst and P.J.S. Berens. Beyond Workflow Management: Product-Driven Case Handling. In S. Ellis, T. Rodden, and I. Zigurs, editors, International ACM SIGGROUP Conference on Supporting Group Work (GROUP 2001), pages 42&#8211;51. ACM Press, New York, 2001. <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; [12]S. Jablonski and C. Bussler. Workflow Management: Modeling Concepts, Architecture,and Implementation. International Thomson Computer Press, London, UK,1996. <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; [13] P. Lawrence, editor. Workflow Handbook 1997, Workflow Management Coalition. John Wiley and Sons, New York, 1997. <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; [14]F. Leymann and D. Roller. Production Workflow: Concepts and Techniques. Prentice-Hall PTR, Upper Saddle River, New Jersey, USA, 1999. <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; [15]D.C. Marinescu. Internet-Based Workflow Management: Towards a Semantic Web, volume 40 of Wiley Series on Parallel and Distributed Computing. Wiley- Interscience, New York, 2002. <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; [16] C.A. Ellis. Information Control Nets: A Mathematical Model of Office Information Flow. In Proceedings of the Conference on Simulation, Measurement and Modeling of Computer Systems, pages 225&#8211;240, Boulder, Colorado, 1979. ACM Press. <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; [17]BISCOTTI F，FULTON R．Infrastructure and applications worldwide software market definitions(Gartner Dataquest Guide)[EB/OL]．<a href="http://www.gartner.com/">http://www.gartner.com/</a> DisplayDocument?doc-ed-106528，2002-06-10． <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; [18] M.D. Zisman. Representation, Specification and Automation of Office Procedures. PhD thesis, University of Pennsylvania, Warton School of Business, 1977. <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; [19]BPMI．org．BPMI initiative[EB／OL]．<a href="http://www.bpmi.org.2001-03-12/">http://www.bpmi.org.2001-03-12</a>． <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; [20]BPMI.Org. Business process modeling language[EB／OL]．<a href="http://www.bpmi.org/">http://www.bpmi.org</a>／ bpml-spec.esp,2002—11—20． <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; [21]SANGIORGI D，W ALKER D．The pi-calculus：a theory of mobile processes[M]．Cambridge U.K.:Cambridge University Press，2001． <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; [22]IBM Redbook．Continuous business process management with HOLOSOFX BPM suite and IBM MQSeries workflow[EB/OL].http://www.redbook.ibm.com/pubs/pdfs/red—books/sg24659O.pdf,2002—05． <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; [23]A. W. Holt. Coordination Technology and Petri Nets. In G. Rozenberg, editor, Advances in Petri Nets 1985, volume 222 of Lecture Notes in Computer Science,pages 278&#8211;296. Springer-Verlag, Berlin, 1985. <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; [24]C.A. Ellis and G. Nutt. Workflow: The Process Spectrum. In A. Sheth, editor, Proceedings of the NSF Workshop on Workflow and Process Automation in&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Information Systems, pages 140&#8211;145, Athens, Georgia, May 1996. <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; [25]Gartner. Gartner&#8217;s Application Development and Maintenance Research Note M-16-8153, The BPA Market Cathes another Major Updraft. <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; <a href="http://www.gartner.com/">http://www.gartner.com</a>, 2002. <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; [26]IDS Scheer. ARIS Process Performance Manager (ARIS PPM). <a href="http://www.idsscheer.com/">http://www.idsscheer.com</a>, 2002. <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; [27]W.M.P. van der Aalst, B.F. van Dongen, J. Herbst, L. Maruster, G. Schimm, and A.J.M.M. Weijters. Workflow Mining: A Survey of Issues and Approaches. Data and Knowledge Engineering, 2003 . <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; [28]Dirk Wodtke and Gerhard Weikum. A formal foundation for distributed workflow execution based on state charts. In Foto N. Afrati and Phokion G. Kolaitis, editors, Proceedings of the 6th International Conference on Database Theory &#8211; ICDT &#8217;97,Delphi, Greece, January 8&#8211;10, 1997, volume 1186 of Lecture Notes in Computer Science, pages 230&#8211;246. Springer, 1997. <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; [29] B. Kiepuszewski, A.H.M. ter Hofstede, and W.M.P. van der Aalst. Fundamentals of Control Flow in Workflows (Revised version). QUT Technical report, FIT-TR-2002-03, Queensland University of Technology, Brisbane, 2002. (Also see <a href="http://www.tm.tue.nl/it/research/patterns">http://www.tm.tue.nl/it/research/patterns</a>.) To appear in Acta Informatica. <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; [30] B. Kiepuszewski. Expressiveness and Suitability of Languages for Control Flow Modelling in Workflows. PhD thesis, Queensland University of Technology, Brisbane, Australia, 2003. <br>
<img src ="http://www.blogjava.net/workflow/aggbug/111412.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/workflow/" target="_blank">黎民</a> 2007-04-17 22:07 <a href="http://www.blogjava.net/workflow/archive/2007/04/17/111412.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>工作流管理系统体系结构设计</title><link>http://www.blogjava.net/workflow/archive/2007/04/17/111407.html</link><dc:creator>黎民</dc:creator><author>黎民</author><pubDate>Tue, 17 Apr 2007 14:02:00 GMT</pubDate><guid>http://www.blogjava.net/workflow/archive/2007/04/17/111407.html</guid><wfw:comment>http://www.blogjava.net/workflow/comments/111407.html</wfw:comment><comments>http://www.blogjava.net/workflow/archive/2007/04/17/111407.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/workflow/comments/commentRss/111407.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/workflow/services/trackbacks/111407.html</trackback:ping><description><![CDATA[<strong>摘&nbsp;要：</strong>本文主要对工作流技术的起源，工作流的概念，研究的技术的内容及工作流管理系统作了深入的介绍；并对工作流技术在国内外的应用现状及不足作了深入的分析。
<p>　　<strong>关键词：</strong>工作流、表单</p>
<p>&nbsp;</p>
<p><strong>1、工作流技术应用背景</strong></p>
<p>　　传统的计算机<a href="http://www.csai.cn/incsearch/search.asp?key=%B9%DC%C0%ED%D0%C5%CF%A2%CF%B5%CD%B3" target=_blank><u><font color=#0000ff>管理信息系统</font></u></a>的主要功能有三个：即信息处理、事务处理与决策支持。信息传递和信息处理构成了企业和行政管理部门的业务工作内容之一，也是计算机信息系统的主要功能之一，它是企业和行政管理部门进行事务处理和决策支持的基础。</p>
<p>　　当PC机没有作为信息处理工具而出现的时候，纸张是进行日常业务活动不可取代的载体。这种传统的纸张为载体的信息传递与处理方式的效率很低，需要花费相当的人力、物力来完成信息的处理、组织、存储以及查询检索，同时这种方式降低了对客户需求的响应速度，给企业和行政管理部门的生产经营都带来了及不利的影响。在计算机得到了广泛普及、计算机应用水平日益提高的情况下，企业与行政管理单位的工作人员希望能够以一种无纸化的、计算机使能的工作环境来开展日常业务工作。一些企业和行政管理部门因此建立了相应的文件、表单传递系统（Forms-routing applications）用来实现日常表单处理的电子化与自动化。这种简单的文件、电子表单系统可以看作是工作流应用的雏形。</p>
<p>　　企业的经营过程是由一系列相关的任务组成的；这些任务按照企业的管理规章与业务流程串行或并行的执行，最终完成企业的经营目标。自从进入工业化时代以来，有关过程的组织管理与流程的优化工作就一直在进行，它是<a href="http://www.csai.cn/incsearch/search.asp?key=%C6%F3%D2%B5%B9%DC%C0%ED" target=_blank><u><font color=#0000ff>企业管理</font></u></a>的主要研究内容之一。只不过在没有引入计算机信息系统的支持以前，这些工作是由人工来完成的。随着市场经济的发展，市场竞争的日益激烈，企业要求其业务过程能够进行快速重组；业务过程的不断变化也相应要求信息系统能够快速重组。这样，单靠人工对企业过程进行重组和传统的面向功能的<a href="http://www.csai.cn/incsearch/search.asp?key=%D0%C5%CF%A2%BB%AF" target=_blank><u><font color=#0000ff>信息化</font></u></a>计算机系统已经不能适应现代企业的发展。因此，企业希望有一种能够实现企业快速业务流程重组和业务过程自动化的软件系统。在计算机<a href="http://www.csai.cn/incsearch/search.asp?key=%CD%F8%C2%E7%BC%BC%CA%F5" target=_blank><u><font color=#0000ff>网络技术</font></u></a>和<a href="http://www.csai.cn/incsearch/search.asp?key=%B7%D6%B2%BC%CA%BD" target=_blank><u><font color=#0000ff>分布式</font></u></a>数据库技术迅速发展、多机协同工作技术日臻成熟的基础上于20世纪80年代中期开始提出了工作流的概念。工作流技术的提出与发展为企业更好的实现这些经营目标提供了先进的手段。</p>
<p>　　随着经营业务的展开企业的物理位置逐渐分散、部门间的协作日益频繁；决策过程的分散性也日益明显，对日常业务活动详细信息的需求也日益提高。因此，企业又要求信息系统必须具有分布性、异构性、自治性。在这种大规模的<a href="http://www.csai.cn/incsearch/search.asp?key=%B7%D6%B2%BC%CA%BD" target=_blank><u><font color=#0000ff>分布式</font></u></a>应用环境下高效地运转相关的任务，并且对执行的任务进行密切监控已成为一种发展趋势。在这种技术背景下，工作流管理系统也有最初的创建无纸化办公环境，转而成为同化企业复杂信息环境、实现业务流程自动化的必要工具。这样的一个转变，把工作流技术带入了一个崭新的发展阶段，使得人们从更深的层次、更广的领域上对工作流展开了研究。</p>
<p>　　1993年工作流技术的<a href="http://www.csai.cn/incsearch/search.asp?key=%B1%EA%D7%BC" target=_blank><u><font color=#0000ff>标准</font></u></a>化组织工作流管理<a href="http://www.csai.cn/incsearch/search.asp?key=%C1%AA%C3%CB" target=_blank><u><font color=#0000ff>联盟</font></u></a>（Workflow Manangement Coalition 简称：WfMC）.的成立标志着工作流技术在计算机应用领域之中被明确的划分出了自己的一席之地，相应的概念与术语也得到了人们的承认。在全球范围内，对工作流的技术研究以及相关的产品开发了进入了更为繁荣的阶段。</p>
<p><strong>2、工作流定义</strong></p>
<p>　　工作流是从英文单词Workflow翻译而来的。Work表示工作或任务；Flow则表示流动、流程或者流量。Flow反映了一种变化及变化的过程，本身意义比较抽象，但是当它与某一个具体过程相联系时就有了具体的含义，如电流、水流、气流。在经营管理与生产组织中Flow也有重要的意义，如表示物料传输过程的物料流、表示资金流动的资金流、反映信息处理和传递过程的信息流，同样还有价值流、决策流、控制流等概念。依此，用活动及活动之间变化的过程表示的业务流程就是工作流。</p>
<p>　　十几年来，不同的研究者和产品供应商从不同的角度给出了工作流的定义，但到目前为止，对于工作流仍没有统一的定义。下面列举了一些有代表性的定义，可以使我们对工作流的一些基本特征有一定的理解。</p>
<p>　　WfMC的定义：工作流是一类能够完全或者部分自动执行的经营过程，根据一系列过程规则，文档、信息或任务能够在不同的执行者之间传递、执行。</p>
<p>　　Forrester Report的定义：日常的业务处理或协同工作能按预先定义好的规则和过程进行流动，并且这一流动过程能被跟踪和监控。</p>
<p>　　Giga Group的定义：工作流是经营过程中可运转的部分，包括任务的顺序以及由谁来执行它，支持任务的信息流、评价与控制任务的跟踪、报告机制。</p>
<p>　　<a href="http://www.csai.cn/incsearch/search.asp?key=IBM" target=_blank><u><font color=#0000ff>IBM</font></u></a> Almaden Research Center的定义：工作流是经营过程中的一种计算机化的表示模型，定义了完成整个过程所需用的各种参数。这些参数包括对过程中每一个单独步骤的定义、步骤间的执行顺序、条件以及数据流的建立、每一步骤由谁负责以及每个活动所需要的应用程序。</p>
<p>　　Amit Sheth 的定义：工作流是涉及到多任务协调执行的活动，这些任务分别由不同的处理实体完成。一项任务定义了需要做的某些工作，它可以以各种形式来进行定义，包括在文件或电子邮件中的文本描述、一张表格、一条信息以及一个计算机程序。用来执行任务的处理实体可以是人，也可以是计算机系统（如：邮递员、一个应用程序、一个数据库管理系统）。</p>
<p>　　以上这些定义，虽然表述方式略有不同，但是基本上都说明了这样一个问题，即工作流是业务过程的一个计算机实现，而工作流管理系统则是这一实现的软件环境。使用工作流作为业务过程的实现技术首先要求工作流系统能够反映业务过程的如下几个问题：即业务过程是什么（有哪些活动、任务组成，也就是结构上的定义）、怎么做（活动间的执行条件、规则以及所交互的信息，也就是控制流与信息流的定义）、有谁来做（人或计算机程序，也就是组织角色的定义）、做的怎样（通过工作流管理系统对执行过程进行监控）。因此，可以说工作流是一种反映业务流程的计算机化的模型，它是为了在先进计算机环境支持下实现经营过程集成与经营过程自动化而建立的可由工作流管理系统执行的业务系统。</p>
<p><strong>3、工作流技术研究的主要内容</strong></p>
<p>　　工作流技术，在初期主要由工作流产品供应商推动其发展。随着工作流产品在实际应用中不断取得良好的效果而得到了人们日益的重视，并且到了迅速发展。相对于工作流产品的繁荣，工作流相关理论研究则显得滞后。在过去很长一段时间里，有关工作流技术方面的研究主要有商品化的工作流产品供应商所领导。本着把工作流产品推向市场的目的，这些供应商大多把研究的注意力放在工作流管理产品的开发实施方面。目前在工作流设计方法学，工作流概念模型等方面还没有形成一套比较成熟的理论和方法。在工作流理论与实施技术方面，研究的主要内容包括：</p>
<p>　　工作流管理系统体系结构；<br>　　工作流模型与工作流定义语言；<br>　　工作流的事务特性；<br>　　研究如何实现高级事务处理技术与工作流管理技术的结合，用定义良好的模型语义与恢复机制来提高工作流系统的正确性与可靠性，从而能够更好的支持复杂的业务过程；<br>　　工作流实现技术：包括<a href="http://www.csai.cn/incsearch/search.asp?key=%C3%E6%CF%F2%B6%D4%CF%F3%BC%BC%CA%F5" target=_blank><u><font color=#0000ff>面向对象技术</font></u></a>、异构<a href="http://www.csai.cn/incsearch/search.asp?key=%B7%D6%B2%BC%CA%BD" target=_blank><u><font color=#0000ff>分布式</font></u></a>计算技术、图形化用户界面、消息通信、数据库、WEB等在内的与工作流系统的设计实现有关的各项技术及方法；<br>　　工作流的仿真与分析方法；<br>　　基于工作流的应用集成与互操作技术；<br>　　研究异构<a href="http://www.csai.cn/incsearch/search.asp?key=%D3%A6%D3%C3%CF%B5%CD%B3" target=_blank><u><font color=#0000ff>应用系统</font></u></a>的集成以及不同工作流系统之间的互操作问题；<br>　　工作流与经营过程的重组：研究如何通过工作流系统的实施支持快速的实现经营过程重组；<br>　　工作流技术的其他应用：研究如何将工作流技术在不同的领域进行运用，包括在CIMS中的应用。</p>
<p>　　上述主要研究课题可以归纳为三个方面（如图1）：第一方面是工作流的理论基础，包括工作流管理系统的体系、模型与定义语言（工作流的建模方法、工作流模型的形式化表示、工作流定义语言）等的研究。这一部分是工作目前相对来说比较薄弱，还有许多问题需要进一步研究。第二方面是工作流的实现技术，包括工作流的事务特性、各种先进软件技术的应用、工作流仿真。这方面研究工作的目标是提高工作流管理系统的性能，尤其是提高工作流管理系统可靠性及其在处理大规模复杂的且具有并行业务的流程方面的能力。第三方面是工作流技术的应用，包括工作流实施技术在不同应用领域的应用（如在企业经营过程重组、并行过程、敏捷制造）方法、应用软件集成等。这几方面研究的目标是发挥工作流管理系统的优势，为解决具体应用领域内的问题提供有向实现手段。</p>
<p align=center><img src="http://cio.csai.cn/ep/images/20068302780.gif"><br>图1：工作流技术研究内容</p>
<p><strong>4、研究工作流的意义</strong></p>
<p>　　工作流技术的应用将给组织单位带来巨大的效益。首先，采用工作流管理将使组织单位改变传统的按照功能来配置人员的组织结构，变成按照要实现的主要业务流程来配置组织结构，这样可以大大缩短主要业务过程的处理时间，提高对市场的响应能力。其次，组织结构的改变将大大减少在组织内部不必要的的物料、信息的传递时间。当然，整个组织结构的调整首先需要调整传统的以部门为单位的做法，变成以项目来组织生产和人员的工作方法，如：一个人可能同时从属于多个项目。应用工作流管理系统主要可以取得如下好处：</p>
<p>　　1）提高管理的规范化程度；<br>　　2）更好地与上下游单位形成快速响应市场的供应链网络；<br>　　3）降低业务过程的整个处理时间，如在办公自动化环境中，通过更好的规划工作流程，并行执行相互独立的活动，减少文档的传递时间；<br>　　4）降低管理成本，如避免不必要的重复的工作，提高工作人员的工作效率；<br>　　5）改进工作质量，如自动完成某个任务所需要的相关信息。在客户服务中，能够快速方便的访问所有相关数据和工作流程，从而大大提高客户服务质量；<br>　　6）在工作人员之间更好的均衡负荷，如在工作人员缺勤的情况下，自动柔性分配替代人员；<br>　　7）通过在工作流模型中加入可预计的故障的处理策略来提高系统的柔性；<br>　　8）通过对已经完成的工作流实例的分析，找出存在的不足，进而不断改进工作流程；<br>　　9）使工作内容更加丰富，并且提高工作人员的业务能力，减少工作人员进行单调乏味并且十分耗时的文档查找工作。</p>
<p>　　采用工作流管理系统可以在最大程度上集成组织的现有信息<a href="http://www.csai.cn/incsearch/search.asp?key=%D7%CA%D4%B4" target=_blank><u><font color=#0000ff>资源</font></u></a>，实现<a href="http://www.csai.cn/incsearch/search.asp?key=%D7%CA%D4%B4" target=_blank><u><font color=#0000ff>资源</font></u></a>的充分利用。由于工作流管理系统具有较好的柔性和开发性，因此，可以保证信息系统能够顺利的扩展以满足不断变化的市场环境。另外，工作流管理系统在工作流模型的基础上进行业务过程进行，这就意味着信息系统已经从过去没有一个具体的可量化指标的<a href="http://www.csai.cn/incsearch/search.asp?key=%B9%DC%C0%ED%D0%C5%CF%A2%CF%B5%CD%B3" target=_blank><u><font color=#0000ff>管理信息系统</font></u></a>，发展到了一个建立在工作流模型上（并且是可以利用BPR或者其他仿真工具进行优化后的模型），按照预先定义好的规则进行执行，并且对于执行的结果随时进行监控和评价的规范化阶段。这种由过程建模—〉模型分析—〉过程优化—〉执行结果—〉统计分析—〉改进业务过程—〉优化运作的实施方法为成功地实施信息系统奠定了坚实的基础。</p>
<p><strong>5、工作流管理系统</strong></p>
<p>　　工作流技术是当今一项飞速发展的技术，它最基本的特性就是它能够结合人工和机器的行为，特别是能够与应用程序和工具进行交互，从而完成业务过程的自动化处理。</p>
<p>　　工作流是业务的自动化处理过程，在这个过程中，根据预定义的规则将文档、信息在过程参与者中传递，最终完成业务的处理。工作流管理系统（WFMS）是通过管理一序列工作行为以及与活动步骤、相关人员、<a href="http://www.csai.cn/incsearch/search.asp?key=%D7%CA%D4%B4" target=_blank><u><font color=#0000ff>资源</font></u></a>设备来提供业务处理程序上的自动控制，它是通过计算机软件来定义、管理和执行工作流，计算机的执行顺序是由工作流逻辑的计算机描述来驱动的。</p>
<p>　　工作流管理系统主要具备以下三个功能特征，如图2：</p>
<p>　　工作流定义功能，主要是对业务处理过程的计算机定义，提供了一种或多种分析、建模、系统定义技术，将一个现实世界的业务处理过程转换成计算机可处理的定义；最终的定义叫作过程模型、过程模版或过程定义，可以表现为文本、图形或自然语言符号。</p>
<p>　　运行控制功能，对过程的定义进行解释，创建并控制过程的运行实例，调度过程的各种行为步骤，调用适当的人工和IT应用程序<a href="http://www.csai.cn/incsearch/search.asp?key=%D7%CA%D4%B4" target=_blank><u><font color=#0000ff>资源</font></u></a>；工作流管理系统的核心部件就是工作流管理控制软件（工作流引擎）。</p>
<p>　　运行交互接口，提供与人员或IT应用程序工具进行交互接口来处理各种活动步骤，交互接口对于活动间的控制传递是必须的，如确定过程的状态，调用应用程序工具，传递应用程序数据等。 </p>
<p align=center><img src="http://cio.csai.cn/ep/images/20068302349.gif"><br>图2WFMS的三个特征</p>
<p><strong>6、工作流管理系统的分类</strong></p>
<p>　　根据所实现的业务过程，工作流管理系统可分为四类：</p>
<p>　　1) 管理型工作流（administrative workflow）：在这类工作流中活动可以预定义并且有一套简单的任务协调规则，例如，大学里的课程选修，完成论文后的学位申请等。<br>　　2) 设定型工作流（ad hoc workflow）：与管理型工作流相似，但一般用来处理异常或发生机会比较小的情况，有时甚至是只出现一次的情况，这与参与的用户有关。<br>　　3) 协作型工作流（collaborative workflow）：参与者和协作的次数较多。在一个步骤上可能反复发生几次直到得到某种结果，甚至可能返回到前一阶段。<br>　　4) 生产型工作流（production workflow）：实现重要的业务过程的工作流，特别是与业务组织的功能直接相关的工作流。与管理型工作流相比，生产型工作流一般应用在大规模、复杂的和异构的环境下，整个过程会涉及许多人员和不同的组织。</p>
<p>　　根据底层实现技术， 可将工作流产品分为三类：</p>
<p>　　1）以通讯为中心：以电子邮件为底层的通讯机制。这种类型的工作流管理系统适合于协作型工作流和不确定型工作流，而不适于生产型工作流。<br>　　2）以文档为中心：基于文档路由，它同外界应用的交互能力有限。许多基于表的管理型工作流可以用以文档为中心的工作流实现。<br>　　3）以过程为中心：这种工作流系统对应生产型工作流。它们一般建立在数据库之上，有自己专用的通信机制并且提供了同外部进行交互的接口。</p>
<p>　　根据不同工作流系统所采用的任务项传递机制的不同，市场上的工作流产品又可以划分为四类：</p>
<p>　　1）基于文件的工作流系统：以共享文件的方式来完成任务项传递。这种类型产品开发得最早、发展最成熟、其产品品种较多。代表产品有FileNet的Visual WorkFlo、<a href="http://www.csai.cn/incsearch/search.asp?key=IBM" target=_blank><u><font color=#0000ff>IBM</font></u></a>的FlowMark、InConcert的InConcert。<br>　　2）基于消息的工作流系统：通过用户的电子邮件系统来传递文档信息。这种类型的产品一般都提供与一种或多种电子邮件系统的集成接口。代表产品有Novell与FileNet合作开发的Ensemble、JetForm公司的InTempo、Keyfile公司的Keyflow。<br>　　3）基于Web的工作流系统：通过WWW来实现任务的协作。这一类产品起步较晚（在95年以后），但是发展迅速，其市场前景十分看好。许多供应商纷纷改进原有产品或开发新产品以增加对Web的支持。代表产品有Action Technologies公司的ActionWorks Metro、Ultimus公司的Ultimus。<br>　　4）群件与套件系统：虽然这一类产品与上面介绍的三种产品在任务传递方式上有很大程度的重叠，但是在这里却有必要把它们单独划分成一类，因为这一类产品都需要依赖于自己系统的应用基础结构，包括消息传递、目录服务、<a href="http://www.csai.cn/incsearch/search.asp?key=%B0%B2%C8%AB%B9%DC%C0%ED" target=_blank><u><font color=#0000ff>安全管理</font></u></a>、数据库与文档管理服务等，它们本身就构成了一个完整的应用开发环境。代表产品有<a href="http://www.csai.cn/incsearch/search.asp?key=IBM" target=_blank><u><font color=#0000ff>IBM</font></u></a>/Lotus公司的Lotus Notes、<a href="http://www.csai.cn/incsearch/search.asp?key=Microsoft" target=_blank><u><font color=#0000ff>Microsoft</font></u></a>公司的<a href="http://www.csai.cn/incsearch/search.asp?key=Office" target=_blank><u><font color=#0000ff>Office</font></u></a>与Exchange、Novell公司的GroupWise。</p>
<p><strong>7、工作流管理系统的实施</strong></p>
<p>　　工作流管理系统不同于<a href="http://www.csai.cn/incsearch/search.asp?key=ERP" target=_blank><u><font color=#0000ff>ERP</font></u></a>和普通的企业<a href="http://www.csai.cn/incsearch/search.asp?key=%B9%DC%C0%ED%D0%C5%CF%A2%CF%B5%CD%B3" target=_blank><u><font color=#0000ff>管理信息系统</font></u></a>，<a href="http://www.csai.cn/incsearch/search.asp?key=ERP" target=_blank><u><font color=#0000ff>ERP</font></u></a>与普通的企业<a href="http://www.csai.cn/incsearch/search.asp?key=%B9%DC%C0%ED%D0%C5%CF%A2%CF%B5%CD%B3" target=_blank><u><font color=#0000ff>管理信息系统</font></u></a>是事务处理系统，其主要目的是满足企业业务操作功能，提高企业事务处理的效率和水平。从企业整体的业务流程和企业经营目标上看，事务处理系统一般局限于解决某个或者某些领域的问题；事务处理系统的另外一个局限性是它一般局限于解决组织内部的具体操作问题，面向组织内部功能，而不是面向市场和面向客户的系统。工作流管理系统的着眼点是面向市场、面向客户，其目标是在整个企业的业务层提高企业的业务处理水平、强化企业的市场意识、提高对市场的应变能力。</p>
<p>　　由于工作流管理系统与普通事务处理系统存在显著的差别，工作流管理系统在实施方法上也不同于普通的事务处理系统。要实施工作流管理系统首先要在战略层次上对经营目标进行分析，确定战略目标和组织要求。工作流管理系统实施的层次结构，如图3。</p>
<p align=center><img src="http://cio.csai.cn/ep/images/20068303522.gif"><br>图3 WFMS实施的层次结构</p>
<p>　　在完成了战略目标分析和工作流实施战略后，工作流管理系统才能够进入真正的实施阶段。工作流管理系统在实际系统中的应用一般分为3个阶段，如图4，即模型建立阶段、模型实例化阶段和模型行阶段。模型建立阶段通过利用工作流建模工具完成经营过程模型的建立，将实际经营过程转化为计算机可处理的工作流模型。模型的实例化阶段完成为每个过程设定运行所需的参数，并分配每个活动执行所需要的<a href="http://www.csai.cn/incsearch/search.asp?key=%D7%CA%D4%B4" target=_blank><u><font color=#0000ff>资源</font></u></a>（包括<a href="http://www.csai.cn/incsearch/search.asp?key=%D7%CA%D4%B4" target=_blank><u><font color=#0000ff>资源</font></u></a>、人员、应用）。模型执行阶段完成经营过程的执行，在这个过程中重要的任务是完成人机交互和应用的执行，并对过程与活动的执行情况进行监控与跟踪。</p>
<p align=center><img src="http://cio.csai.cn/ep/images/20068302631.gif"><br>图4 WFMS&nbsp;实施的三个步骤</p>
<p><strong>8、国内外应用现状与不足</strong></p>
<p>　　<strong>8.1 应用现状</strong></p>
<p>　　目前工作流技术的研究正日益受到人们的重视，许多大学和研究机构都开展了很多研究项目，取得了重多的研究成果，对工作流技术的发展做出了贡献。</p>
<p>　　由于工作流应用环境大多是在复杂的分布异构环境中，如企业内部网或因特网，因此应用最新的分布对象处理技术和Web技术，实现工作流管理成为当前研究的重点。有影响的工作流原型系统有：</p>
<p>　　1）美国佐治亚大学研制的Meteor系统：该系统是一个支持多范型的工作流管理系统，主要用于处理医疗保健应用。多范型是指该系统能够支持分布异构环境下的企业内和企业间的各种工作流。这些工作流可以是数据库管理系统和<a href="http://www.csai.cn/incsearch/search.asp?key=%B7%D6%B2%BC%CA%BD" target=_blank><u><font color=#0000ff>分布式</font></u></a>事务处理系统中的事务，也可以是EDI等特殊应用。Meteor系统可以在Web或CORBA环境下运行。<br>　　2) 美国普度大学开发的CORBAflow系统：该系统提出了基于CORBA的体系结构，支持跨<a href="http://www.csai.cn/incsearch/search.asp?key=%C6%BD%CC%A8" target=_blank><u><font color=#0000ff>平台</font></u></a>的异构分布系统集成，支持弹性ACID性质；扩展了IDL语言以定义事务性工作流中的补偿事务。<br>　　3) 土耳其中东大学开发的METUFlow系统：该系统提出了一种基于CORBA环境的工作流服务，包括基于ACTA扩展事务模型的工作流模型、块结构化定义语言、工作流调度管理和并发控制机制等。</p>
<p>　　工作流的许多概念来自于办公自动化、文档管理、计算机支持协同工作(CSCW)等领域。至今约有300个称为工作流工具的商品化软件，但只有数十个是真正的WFMS软件。一些著名的WFMS产品有：</p>
<p>　　1）<a href="http://www.csai.cn/incsearch/search.asp?key=IBM" target=_blank><u><font color=#0000ff>IBM</font></u></a>公司的FlowMark系统［9］该系统由对象数据库管理系统ObjectStore支持。主要组件包括服务器、建立客户器、运行客户器和程序执行客户器。服务器负责与数据库交互及协调工作流执行；建立客户器提供用于设计工作流的图形接口；运行客户器提供工作表方式的用户接口；程序执行客户器提供API调用方式的应用接口。<br>　　2）Action公司的ActionWorkflow系统该系统由<a href="http://www.csai.cn/incsearch/search.asp?key=%CE%A2%C8%ED" target=_blank><u><font color=#0000ff>微软</font></u></a>的SQL服务器或Lotus Notes支持，包含三个基本组件：①管理系统内核用于集成和管理工作流事务；②分析器提供设计工作流的专门工具；③应用建立器用于将工作流定义转化成可执行的过程。此外，还提供辅助工具，如报表器用于查询工作流的进展状态。<br>　　3）Sigma图象系统公司的OmniDesk系统它使用提供ODBC接口的数据库。其中，路径管理器用于工作流管理和负载平衡；路径建立器用于定义路径逻辑；表格建立器用于创建工作流接口。虽然OmniDesk系统主要是为图象文档管理设计的，但是也可以管理其他类型的工作流。<br>　　4）Wang公司的OPEN/workflow系统该系统建立在自含的数据库引擎之上。系统分为数据库服务、图形过程建立器、集成工具箱、报表工具。数据库服务提供基本的完整性、安全性、并发控制、恢复和管理功能；图形过程建立器用于定义过程；集成工具箱提供应用之间交互需要的API调用和通信服务；报表工具如查询建立器和报表建立器用于访问有关过程执行的信息。</p>
<p>　　<strong>8.2 工作流<a href="http://www.csai.cn/incsearch/search.asp?key=%D3%A6%D3%C3%BC%BC%CA%F5" target=_blank><u><font color=#0000ff>应用技术</font></u></a>的不足</strong></p>
<p>　　实际上，大多数产品的开发由于没有清楚地理解用户的需求，而不能满足用户的迫切需要。许多工作流系统主要是解决共享和协作(某些问题仍未很好解决，如异构<a href="http://www.csai.cn/incsearch/search.asp?key=%C6%BD%CC%A8" target=_blank><u><font color=#0000ff>平台</font></u></a>环境、多媒体数据)，而像性能、可伸缩性、可靠性对于复杂<a href="http://www.csai.cn/incsearch/search.asp?key=%D3%A6%D3%C3%CF%B5%CD%B3" target=_blank><u><font color=#0000ff>应用系统</font></u></a>来说至关重要的问题，现有工作流软件并没有考虑。主要原因是，这些系统的建立不是基于在线事务处理(OLTP)技术和数据库技术，只是使用数据库做底层存储，因而在这些领域缺乏技术成熟性和系统健壮性。</p>
<p>　　另外，由于已有的绝大多数WFMS产品和原型系统的设计是面向普通的办公室应用，因此存在以下不足：</p>
<p>　　1）工作流模型只能描述如办公自动化中电子邮件或文档等简单的工作流，而不能描述工程设计等复杂过程处理。<br>　　2）经营业务流程往往是复杂的异构环境，现有产品不能提供很好的互操作性。例如，在异构环境中，<a href="http://www.csai.cn/incsearch/search.asp?key=IBM" target=_blank><u><font color=#0000ff>IBM</font></u></a>的FlowMark不提供API接口以支持一个工作流的输出，作为下一个工作流的输入。<br>　　3）一个工作流可能涉及到多个单位和车间，或多个工厂和企业，例如，在虚拟制造应用中，可能包含成百上千个用户，覆盖广域网络中的数十个场地，上百台计算机系统。大多数现有工作流软件只是设计为一种协作工具，适用于小群体之间业务的工作流，在体系结构上存在缺陷，缺乏可伸缩性。<br>　　4）现代组织应用要求系统具备非常高的可用性和健壮性。现有工作流软件只适合于小团体和轻负载，缺乏有效的后备机制，不具备强的故障恢复能力。 </p>
<p>　　为了进一步研究开发支持应用集成的CIMS工作流管理技术，我们认为，需要解决以下关键技术：</p>
<p>　　1）面向CIMS的工作流建模技术包括工作流模型和定义语言。如何采用弹性事务模型、分层事务模型和工程数据模型相结合的方法，设计出一种适合于CIMS工程应用的工作流模型。<br>　　2）基于CIMS信息集成<a href="http://www.csai.cn/incsearch/search.asp?key=%C6%BD%CC%A8" target=_blank><u><font color=#0000ff>平台</font></u></a>的工作流管理系统体系结构CORBA软件总线提供了良好的<a href="http://www.csai.cn/incsearch/search.asp?key=%C6%BD%CC%A8" target=_blank><u><font color=#0000ff>平台</font></u></a>透明性和分布透明性，以及分布对象操作能力，如何充分利用CORBA软件总线和信息集成<a href="http://www.csai.cn/incsearch/search.asp?key=%C6%BD%CC%A8" target=_blank><u><font color=#0000ff>平台</font></u></a>，实现一个高效的工作流管理系统。<br>　　3）面向分布对象的工作流管理和执行技术CORBA软件总线系统提供了对象引用、启动和联编机制。工作流管理与执行机制需在此基础上完成作为对象任务的创建、调度、执行、提交或取消，保证工作流的正确性和可靠性。还需要考虑在CORBA软件总线上增加新的公共服务，如持久性对象仓储服务、故障恢复服务等。<br>　　4）面向CIMS目标产品的集成技术工作流管理系统是一种中间件技术，适合于任何计算机分布处理系统，在CIMS应用集成涉及的有关系统中，如PDM、MRPII等，都需要这方面的集成技术。</p>
<p><strong>参考文献</strong></p>
<p>[1]&nbsp; 林惠萍、范玉顺、吴澄 ，&#8220;支持企业经营过程重组的工作流仿真技术研究&#8221;，<a href="http://www.simflow.net/"><u><font color=#800080>http://www.simflow.net</font></u></a><br>[2]&nbsp; 范玉顺 ，《工作流管理技术基础》 ，清华大学出版社 ，2001.4<br>[3]&nbsp; 陶冶、范玉顺、罗海滨 ，&#8220;<a href="http://www.csai.cn/incsearch/search.asp?key=%B7%D6%B2%BC%CA%BD" target=_blank><u><font color=#0000ff>分布式</font></u></a>工作流系统的可靠性研究&#8221;，<a href="http://www.simflow.net/"><u><font color=#800080>http://www.simflow.net</font></u></a><br>[4]&nbsp; 罗海滨 、范玉顺、吴澄 ，&#8220;工作流技术综述&#8221; ，<a href="http://www.simflow.net/"><u><font color=#800080>http://www.simflow.net</font></u></a><br>[5] 范玉顺、吴澄，&#8220;基于工作流的CIMS应用集成支持系统研究&#8221; ，<a href="http://www.simflow.net/"><u><font color=#800080>http://www.simflow.net</font></u></a><br>[6] 刘佚名、范玉顺 ，&#8220;基于工作流的企业过程的建模和仿真技术研究&#8221; ，<a href="http://www.simflow.net/"><u><font color=#800080>http://www.simflow.net</font></u></a> <br>[7]&nbsp; 范玉顺、吴澄，&#8220;基于协调理论的工作流建模方法&#8221; ，<a href="http://www.simflow.net/"><u><font color=#800080>http://www.simflow.net</font></u></a><br>[8]&nbsp; 陶冶、范玉顺、罗海滨 ，&#8220;提高<a href="http://www.csai.cn/incsearch/search.asp?key=%B7%D6%B2%BC%CA%BD" target=_blank><u><font color=#0000ff>分布式</font></u></a>工作流管理系统的可扩展性&#8221;，<a href="http://www.simflow.net/"><u><font color=#800080>http://www.simflow.net</font></u></a><br>[9]&nbsp; 鲍震宁、范玉顺 ，&#8220;企业组织模型结构和建模方法研究&#8221; ，<a href="http://www.simflow.net/"><u><font color=#800080>http://www.simflow.net</font></u></a><br>[10] 罗海滨 、范玉顺、吴澄 ，&#8220;一种面向企业用户的工作流模型&#8221; ，<a href="http://www.simflow.net/"><u><font color=#800080>http://www.simflow.net</font></u></a></p>
<img src ="http://www.blogjava.net/workflow/aggbug/111407.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/workflow/" target="_blank">黎民</a> 2007-04-17 22:02 <a href="http://www.blogjava.net/workflow/archive/2007/04/17/111407.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>工作流在企业建立模型的应用</title><link>http://www.blogjava.net/workflow/archive/2007/04/08/109285.html</link><dc:creator>黎民</dc:creator><author>黎民</author><pubDate>Sun, 08 Apr 2007 15:53:00 GMT</pubDate><guid>http://www.blogjava.net/workflow/archive/2007/04/08/109285.html</guid><wfw:comment>http://www.blogjava.net/workflow/comments/109285.html</wfw:comment><comments>http://www.blogjava.net/workflow/archive/2007/04/08/109285.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/workflow/comments/commentRss/109285.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/workflow/services/trackbacks/109285.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Commercial application development projects frequently take longer and cost more than their sponsors would wish. One problem area is an uncomfortable &#8220;join&#8221; between the work of business an...&nbsp;&nbsp;<a href='http://www.blogjava.net/workflow/archive/2007/04/08/109285.html'>阅读全文</a><img src ="http://www.blogjava.net/workflow/aggbug/109285.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/workflow/" target="_blank">黎民</a> 2007-04-08 23:53 <a href="http://www.blogjava.net/workflow/archive/2007/04/08/109285.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>浅析基于工作流程B/S结构的OA系统</title><link>http://www.blogjava.net/workflow/archive/2007/04/02/107894.html</link><dc:creator>黎民</dc:creator><author>黎民</author><pubDate>Mon, 02 Apr 2007 03:30:00 GMT</pubDate><guid>http://www.blogjava.net/workflow/archive/2007/04/02/107894.html</guid><wfw:comment>http://www.blogjava.net/workflow/comments/107894.html</wfw:comment><comments>http://www.blogjava.net/workflow/archive/2007/04/02/107894.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/workflow/comments/commentRss/107894.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/workflow/services/trackbacks/107894.html</trackback:ping><description><![CDATA[<p align=center><span>龚<span>&nbsp;</span>婷<span><span>&nbsp;&nbsp; </span></span>王<span>&nbsp;</span>祥</span></p>
<p>&nbsp;</p>
<p><span>摘<span>&nbsp;</span>要：</span><span>针对<span>Web</span>环境下办公自动化系统要求，提出了基于工作流管理的<span>OA</span>系统模型，论述了基于<span>B/S</span>结构体系的优势，通过将工作流的开发方法与<span>B/S</span>技术相结合设计<span>OA</span>系统的分析，论述了<span>OA</span>系统的开发和应用的实现。</span></p>
<p><span>关键词：</span><span>工作流<span><span>&nbsp;&nbsp; </span>B/S</span>结构<span><span>&nbsp;&nbsp; </span>OA</span>系统</span></p>
<p><span>中图分类号：<span>TP316</span></span><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>文献标识码：<span>A<span>&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;&nbsp;</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span>文章编号：</span><span>1006-7973</span><span>（<span>2006</span>）<span>05-0113-02</span></span></p>
<p>&nbsp;</p>
<span><br clear=all></span>
<div>
<p><span>一、<span>OA</span>系统工作流基本模型</span></p>
<p><span>工作流建模是工作流技术中的重要组成部分，它通过一系列的过程定义，利用操作、事件、触发条件等因素实现对现实流程的关系抽象。而且在只有保证工作模型和系统目标同构的条件下，在工作流建模过程中才能发挥工作流模型的过程开展工作的指导作用。工作流系统中主要部件和数据的作用如下：</span></p>
<p><span>（<span>1</span>）过程定义工具被用来创建计算机可处理的业务过程描述。它可是形式过程定义语言或对象关系模型，也可以是简单地规定用户间信息传输的一组路由命令。</span></p>
<p><span>（<span>2</span>）过程定义为实现某工作目标而要完成的一系列步骤的描述。它包含了所有使业务过程能被工作流执行服务的必要信息。这些信息包含起始和终止条件、各个组成活动、活动调度规则、各业务的参与和需要做的工作、相关应用次序和数据的调用信息等。过程由活动和相关数据组成。</span></p>
<p><span>（<span>3</span>）活动是过程中的每一个步骤。活动可以是程序活动或过程活动，活动通过分配给能够执行活动的用户执行。</span></p>
<p><span>（<span>4</span>）数据流是活动中间交换信息和映射。工作流管理系统（<span>WFMS</span>）使用这些数据确定工作流实例的状态转移，例如过程调度决策数据、活动间的传输数据等。工作流相关既可以被工作流引擎使用，也可以被应用程序调用。</span></p>
<p><span>（<span>5</span>）控制流是活动间的执行顺序，包含被工作流执行服务（<span>WES</span>）和引擎管理的系统数据，例如工作流实例的状态信息，每一活动的状态信息等。</span></p>
<p><span>（<span>6</span>）工作流引擎负责解释过程定义，并进行过程实例化和过程执行控制、任务调动、日志维护、通过应用程序接口（<span>API</span>）调用应用程序、提供监督和管理功能等，还提供与工作流参与者之间的接口。</span></p>
<p><span>二、<span>B/S</span>网络模式的结构和特点</span></p>
<p><span>B/S</span><span>网络模式是基于<span>Intranet</span>需求而出现并发展的。一方面<span>Intranet</span>是应用<span>TCP/IP</span>协议中建立的企事业单位内部网络，它采用诸如<span>TCP/IP</span>，<span>HTTP</span>，<span>SMIP</span>和<span>HTML</span>等<span>Internet</span>技术和标准，能为企事业单位内部交换信息提供服务。同时，它是有连接<span>Internet</span>的防止外界入侵的安全措施。另一方面，由于数据库具有强大的数据存储和管理能力，并且能够动态地进行数据输入和输出，如果把数据库应用于<span>Internet</span>上，不仅可以实现大量信息的网上发布，而且能够为广大用户提供动态的信息查询和数据处理服务，进而加强信息交流，降低企事业单位的日常工作成本，提高企事业单位的经济效益。</span></p>
<p align=center><span>B/S</span><span>模式，即浏览器服务器模式，是一种从传统的二层<span>C/S</span>模式发展起来的新的网络结构模式。其本质是三层结构<span>C/S</span>模式。<span>B/S</span>模式主要由客户机，<span>Web</span>服务器，应用服务器和数据服务器（<span>server</span>）组成。在客户端安装的是标准、易用的通用浏览器（<span>Browser</span>），将<span>Web</span>技术与数据库技术相结合。<span>Web</span>服务器主要是实现对客户端应用程序的集中管理，应用服务器主要负责事务处理，数据服务器主要用于数据的管理，</span><span> </span></p>
<p><span>B/S</span><span>模式基本上克服了<span>C/S</span>模式的不足，其主要表现在：</span></p>
<p><span>1</span><span>．系统开发、维护和升级的经济性。</span></p>
<p><span>2</span><span>．<span>B/S</span>模式提供了一致的用户界面，应用软件都是基于<span>Web</span>浏览器，</span><strong><span>从而</span></strong><span>提供了一致的用户界面。</span></p>
<p><span>3</span><span>．<span>B/S</span>模式具有很强的开放性。</span></p>
<p><span>4</span><span>．<span>B/S</span>模式的结构易于扩展，具有可伸缩性。</span></p>
<p><span>5</span><span>．<span>B/S</span>模式具有最强的信息系统集成性。</span></p>
<p><span>6</span><span>．<span>B/S</span>模式提供灵活的交流和信息发布服务。</span></p>
<p><span>三、<span>OA</span>系统的<span>B/S</span>结构</span></p>
<p><span>软件体系结构的设计是整个软件开发过程中的关键点。不同类型的系统需要不同的结构体系，对于应用软件来说，特别是一些较为复杂的软件系统，要求必须具备一个合适的体系结构，系统的设计与实现很大程度上取决于结构体系的择取，基于<span>B/S</span>网络结构体系开发的<span>OA</span>系统（如图<span>3</span>），将<span>OA</span>系统中的三要素（数据、功能、行为）分离，形成前端客户层，负责可移植的逻辑表达；中间应用层，允许用户通过将其与设计应用隔离而共享和控制业务逻辑；后端的设计隔离和服务层，提供对专门数据服务的访问，处理客户端与数据库间的数据流。<span>B/S</span>结构体系与<span>C/S</span>结构体系相比，其优点如下：</span></p>
<p><span>1</span><span>．不必开发专门的客户端软件，在用户终端不需要增加任何代码，用户只需要使用现行的浏览器，基操作十分方便，简单易学，界面统一，降低了用户学习新知识的难度，既节省了开发时间，也减少了系统出错的可能性，降低了维护费用。</span></p>
<p><span>2</span><span>．网络应用系统跨平台，兼容性好，保护原有的软硬件设施，原来的网络操作系统，数据库都可以很容易地加以利用，可以使系统在最短的时间发挥效益。</span></p>
<p><span>3</span><span>．技术上相对成熟，投入费用少，系统维护简便，简单易用，见效快，回报率高，应用<span>Web</span>技术，<span>OA</span>系统只需在服务器上集中实现和配置的维护管理，大大降低了用户用于软件系统维护和升级的难度和费用，用户投资风险小。</span></p>
<p><span>4</span><span>．系统运行稳定、安全、可靠、并可进行扩展。</span></p>
<p><span>5</span><span>．软件移植容易，并可以进行严密的安全管理。</span></p>
<p><span>此外，<span>B/S</span>层次分离的优势体现在界面统一为浏览器，并具有统一的语言格式，统一的传输协议，系统管理简单，能够优化资源，可支持数据库和方便信息发布等。</span></p>
<p><span>四、<span>OA</span>的系统设计分析</span></p>
<p><span>1OA</span><span>系统的体系结构</span></p>
<p><span>Internet</span><span>为工作流的应用提供了良好的网络平台，在实践中，可以建立一个如图<span>1</span>所示的基于<span>B/S</span>应用工作流技术的办公信息系统。</span></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<br clear=all>
<p align=center><span>图<span>1&nbsp;</span>系统结构图</span></p>
<p><span>从上图可以看出基于<span>B/S</span>应用工作流技术的办公信息系统。一般包括（<span>1</span>）客户端浏览器（<span>2</span>）<span>Web</span>服务器（<span>3</span>）数据库服务器（<span>4</span>）工作流服务器等。由于采用<span>Web</span>浏览器的形式，在客户端只要求安装<span>Web</span>浏览器，用户在客户端进行信息浏览、业务操作、工作流的处理等等。而处理过程在服务器端完成。</span></p>
<p><span>3</span><span>．应用工作流<span>Petri</span>网和<span>B/S</span>结构实现系统工作流的开发</span></p>
<p><span>Petri</span><span>网是由德国数学家<span>C</span>&#183;<span>A</span>&#183;<span>Petri</span>定义的一种通用模型，用以描述存在于条件与事件间的关系，它是一种可用图形表达的组合模型，具有直观、易懂和易用的特点，很适合工作流的表达，工作流是由一组相关活动构成，活动是完成一项任务所要进行的多种操作的统称，各个相应部门所完成的活动就称之为任务。每项任务包括任务的内容、任务的状态、任务的执行结果。</span></p>
<p><span>Petri</span><span>网中控制流极为重要，它控制流程的走向，控制流的结构分为顺序结构、并行结构、或条件结构，循环结构等，</span></p>
<p><span>各企事业单位在具体设计<span>OA</span>系统的功能模块时，可针对自身情况进行具体分析，通过一种或几种结构的有机组合，同时要考虑到方方面面的协调性尽量做到流程的设计规范、实用、方便、安全。</span></p>
<p><span>工作流流程控制的大部分功能部件都是利用<span>Active X</span>组件来实现的，系统用<span>VBScript</span>，<span>Java Script</span>来集成这些组件，利用新增组件，客户可以灵活地扩展服务器端和用户端的功能，随着用户需求的动态变化，系统可以方便地通过重组组件实现功能的扩展，对分配给每个工作流参加者的任务列表和任务管理器，用户根据自己的角色通过浏览器从服务器上下载到客户端运行。</span></p>
<p><span>在系统中，对公用信息应用共享模型进行流程管理，应用<span>Web</span>技术处理客户端的请示，将公用的信息保存在服务器端，办公室人员根据自己的角色和相应的权限，周期性地从服务器端提取信息，工作流服务器也周期性地从服务器端提取处理结果，根据结果控制流程。</span></p>
<p><span>4</span><span>．开发工具和运行平台的选择</span></p>
<p><span>为了实现<span>OA</span>系统的各项功能和维护数据流，一般需进行基于网络的数据库开发，首先必须建立基于网络数据库的开发环境，在此基础上才能进一步开展工作，一般情况下，<span>OA</span>系统平台配置要求如下：</span></p>
<p><span>服务器端：网络操作系统<span>Windows 2000 Server </span>中文版，网络协议<span>TCP/IP</span>；</span></p>
<p><span>Web</span><span>服务器：<span>MicrosoftIIs5.0 </span>，数据库系统<span>Microsoft SQL Server2000 </span>等；</span></p>
<p><span>客户端：<span>Microsoft Windows2000</span>中文版或其他操作系统，<span>IE5.0</span>中文版等；</span></p>
<p><span>开发工具：<span>ASP</span>，<span>Microsoft SQL2000 </span>，<span>J Builder 9.0</span>等。</span></p>
<p><span>五、结束语</span></p>
<p><span>本文分析了基于工作流管理技术和采用<span>B/S</span>结构相结合的<span>OA</span>系统，能够将办公等诸多工作集成于一起，通过<span>Internet/Intranet</span>进行办公业务处理，提供数字化办公环境。采用<span>SQL Server2000 </span>数据库作为后台支撑，而设计开发的<span>OA</span>系统。此种系统能够提供规范、灵活的办公流程管理，具有功能齐全，使用方便、安全性好、可靠性高的特点。科学化的管理需要依靠现代化的办公工具、智能化决策、无纸化办公已经成为企事业单位现代化管理的趋势，而办公自动化系统将在现代化管理中发挥越来越重要的作用。</span></p>
<p><span>参考文献</span></p>
<p><span>[1] KimY</span><span>.</span><span>Kang</span><span>.</span><span>S</span><span>.</span><span>KimD</span><span>.</span><span>etal</span><span>.</span><span>WW</span><span>—<span>based workflow management with runtime encapsulation</span></span><span>.</span><span>[J]</span><span>.</span><span>IEEEInternet Comput-er</span><span>.</span><span>2002</span><span>.</span><span>4</span><span>.</span><span>3</span><span>：<span>55~64</span></span><span>.</span></p>
<p><span>[2] LIUK</span><span>，<span>ONGT</span></span><span>.</span><span>Amodeling approach for handling business rules and exception</span><span>.</span><span>[J]</span><span>.</span><span>The Computer Journal</span><span>.</span><span>1999</span><span>.</span><span>42</span><span>.</span><span>3</span><span>：<span>206~223</span></span><span>.</span></p>
<p><span>[3] </span><span>张友生，陈松乔</span><span>.</span><span>C/S</span><span>与<span> B/S</span>混合软件体系结构模型</span><span>.</span><span>[J]</span><span>.</span><span>计算机工程与应用</span><span>.</span><span>2002</span><span>.</span><span>23</span><span>：<span>138~140</span></span><span>.</span></p>
<p><span>[4] </span><span>胡生，党延忠</span><span>.</span><span>基于<span>Web</span>的工作流技术在办公信息系统中的应用</span><span>.</span><span>计算机应用研究，<span>2002</span></span><span>.</span><span>9</span><span>：<span>117~119</span></span><span>.</span></p>
</div>
<img src ="http://www.blogjava.net/workflow/aggbug/107894.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/workflow/" target="_blank">黎民</a> 2007-04-02 11:30 <a href="http://www.blogjava.net/workflow/archive/2007/04/02/107894.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>