??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲国产精品热久久,亚洲男人天堂2022,青青青亚洲精品国产http://www.tkk7.com/clant/category/10015.htmlzh-cnTue, 27 Feb 2007 18:29:49 GMTTue, 27 Feb 2007 18:29:49 GMT60Java?工作?实现技术大比拼http://www.tkk7.com/clant/articles/85150.htmlBPM BPM Sun, 03 Dec 2006 02:07:00 GMThttp://www.tkk7.com/clant/articles/85150.htmlhttp://www.tkk7.com/clant/comments/85150.htmlhttp://www.tkk7.com/clant/articles/85150.html#Feedback0http://www.tkk7.com/clant/comments/commentRss/85150.htmlhttp://www.tkk7.com/clant/services/trackbacks/85150.html  Shark

  Shark是体pd功能最为复杂的代表。它是另一N循WfMC的XPDL标准开源工作流引擎Qƈ且同旉循OMGl织的Workflow Management Facility规范。在所有开源工作流引擎中,Shark的体pL为完备和复杂。其一直秉承着“模块化”的思想Q所以比较容易扩展。但是自从被Together公司收购后,Shark的商业化色彩已经来浓Q改UCؓTogether Workflow ServerQƈ仅以Community Edition的Ş式提供了部分开源代码供参考?/p>

  OSWorkflow

  OSWorkflow是最轻量型的代表Q也是一N常灵zd低别定位的工作引擎的实现框架。低U别定位的意思是_它不是定位在解决程模型对象和运转场景,而是提供一套可l护调度的机Ӟ供开发h员自L展。这个维护流E调度机制OSWorkflow选择的是Z行ؓ(Action)的FSM理论Q所以OSWorkflow更像是一个复杂而灵zȝ有限状态调度机?/p>

  OSWorkflow在国内项目应用得较多Q很多国内的易审ҎE项目都是基于其引擎二次开发而来。这主要是由于OSWorkflow是基于Action驱动的,而国内的客户也很Ҏ接受q样的操作习惯。但OSWorkflow所依赖的FSM模型对于分支、聚合、子程的支持度很低Q这一点在实施q程中需要注意?/p>

  jBpm

  jBpm是最适合扩展的代表,是在所有开源引擎中最适宜被商业化应用的一ƾ。首先其程建模模型是基于Activity Diagram(zd?的,q在引擎构徏上融入了FSM和PetriNet思想Q所以其内核和根基比较牢固扎实。其ơ,自从被JBoss收购后,?. xpd的结构更加趋于微内核QPlug-in思想也更加深入。其同时q提供了对BPEL扩展Q存储支持JBoss Hibernate实现Q集成了JBoss seamQ规则引擎准备采用JBoss rulesQƈ准备集成JBoss Messaging。这P不论从内核和外围应用QjBpm都具有了强劲的动力?/p>

  另外QjBpm对Token的应用也很有特色Qy妙地利用Parent-Child Token的机制处理分支、父子流E等复杂应用场景。这个设计思想很值得大家学习参考?/p>

  YAWL

  YAWL是算法和模式最值得研究的代表,它是Alast力主倡导的一Ƒ֟于PetriNet建模的工作流引擎Q其PetriNet的Token与And、XOR、OR法q行了融合,q对Workflow Patterns(工作模?中所有模式提供支持。但YAWL本n仅是一个研I性项目,所以其l构和实现缺了商业化应用的特点。但有必要研I一下YAWLQ一斚w可以加深对工作流模式的理解,另一斚wQYAWL的一些徏模思想、处理算法很值得推敲和吸U?/p>

  ActiveBPEL

  ActiveBPEL 是BPEL引擎的代表,也是一Ƒ֏执行BPEL4WS规范的开源流E引擎,其结构和实现方式h很高的参考h倹{目前国内很多正在开发基于BPEL产品的中型软g厂商Q其实现的很多基性内容和思想都参考自ActiveBPEL。受目前国内中小型客户对程需求的限制Q基于BPEL的开源引擎或型产品被市场接受度q很低。但BPEL所围绕的业务流E及程整合应用是一个发展趋ѝ?/p>

BPM 2006-12-03 10:07 发表评论
]]>
三大工作引擎对?/title><link>http://www.tkk7.com/clant/articles/41058.html</link><dc:creator>BPM </dc:creator><author>BPM </author><pubDate>Fri, 14 Apr 2006 04:10:00 GMT</pubDate><guid>http://www.tkk7.com/clant/articles/41058.html</guid><wfw:comment>http://www.tkk7.com/clant/comments/41058.html</wfw:comment><comments>http://www.tkk7.com/clant/articles/41058.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.tkk7.com/clant/comments/commentRss/41058.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/clant/services/trackbacks/41058.html</trackback:ping><description><![CDATA[ <p>1Q从《功夫》说?</p> <p>时下的新Chcȝ到我Q一定会认ؓ在下是个十的老古董,q不Q《功夫》这L片子我到今年2月底才看。不q看q《功夫》,我想的一定比一般的人多Q周星星迹江湖Q和他胖子大哥出LҎӞZ么要他大哥胸前画两把斧头Q找个假靠山呗!装是斧头帮的人才不会被h啊?</p> <p>q让我想到年前的一则新闻:jbpm joins jboss and becomes jboss-jbpm。也是说了Qjbpm找了个靠山jbossQ以后不用自己在外流了?</p> <p>好,我们转入正题Q谈q里说的三大L开源工作流引擎QShark,osworkflow,jbpm?</p> <p>Shark的靠山是Enhydra。Enhydra做过什么呢Q多了!从j2ee应用服务器,到o/r mapping工具Q到q个工作引擎等{。ؓ什么Shark的持久层采用DODS来实玎ͼ是因ؓ他们是一家h?</p> <p>Jbpm的靠山是jboss。Jbpm3的持久层采用hibernate3来实玎ͼ也是因ؓq个原因吧。Jbpm3的图形化程定义已经军_嵌入到jboss eclipse IDE中,大家看看jboss eclipse IDE preview 1.5版,我们已经可以用插件方式编辑一个jbpm3程定义文g了?</p> <p>Osworkflow的靠山是opensymphony。我是非常喜Ƣ这个组l的Q它做出了很多的好东ѝ在开发工作流理pȝӞ我就推荐用它的另外一个东西:webwork2。笔者主持的开源工作流引擎AgileFlow是Zww2+spring+hibernate架构实现的?</p> <p>完成本段时说句题外话Q现在基本上所有的J2EE应用E序服务器都有自q工作引擎,如上面提到的Enhydra,jboss和没有提到的websphere和weblogic{,可见Q学习工作流引擎技术的是非常重要的?</p> <p>2Q如来神?</p> <p>光有靠山是不行的Q周星星加入了斧头帮q不是被邪神打扁了头Q要救自己,q是要靠如来掌?</p> <p>Shark的流E定义语a是XPDLQ我们知道,XPDL的两个最重要的概忉|Process和Activity。XPDL中的Activity是基于UML1.x中的zd囄概念。活动图天生的适于工作程建模Q它相对于状态图的一个最大的优点是容易做q发U程的分叉控Ӟq些q发U程可以同时执行也可以顺序执行;它还有一个优Ҏ有泳道的概念Q可以控制工作流引擎中的d的生。Shark的如来神掌是zd图?</p> <p>Osworkflow的如来神掌又是什么呢Q我们知道,它有个重要概忉|State……呵呵,我们知道了,它的如来掌是FSM。不知道FSM是什么东西?Q那你读大学时肯定不是好学生Q当然了Q不知道也不打紧Q你把他cM理解为状态图可以了。Osworkflow中的State是由step和status联合表达的,一个State是一个step中的某个statusQ而state的{换由action来驱动,cM状态图中的event,因ؓ一个event对应一个action嘛?</p> <p>Jbpm的如来神掌就没有上面的简单了Q它l合应用了状态图+zd?PetriNet的知识,而且Q这里的zd图还是UML2.0版的。UML2.0的活动图中,节点不叫zdQActivityQ而叫动作(action)Q活动成了一个高层次的概念,它包含一个动作序列。一个活动图展现一pd的动作,q些动作l成了活动。Jbpm把action也改名了Q称为state。Jbpm使用的状态图的概忉|transition/event{,q个自己ȝ吧。Jbpm来内部实Cq采用了PetriNet的概念,如token,signal{。什么?又不知道PetriNet什么东东?那你大学是学计算机的吗?不是Q那你可能是学文U的Q学机械/甉|/土木工程/交通运输等专业都有接触PetriNet的课E,如果没有学过Q还是看看jbpm吧,反正我们也不搞理论,知道大致概念p?</p> <p>3Q市场预?</p> <p>做预是件吃力不讨好的事情,好多国外的大师做的预也是被人骂得……幸亏我dq中在《工作流之大局ѝ中做的预测q是基本正确。那时我的预是QShark……将M头号宝。应该说Q在那篇文章发表前,国内的工作流引擎使用率最高的是osworkflow;到去q年底,Shark占有了明显的优势地位,我分析有如下原因Q?</p> <p>1.          国内的企业都看中XPDLQ因意味着在品说明书中又可以吹牛说“我们遵循WFMC……?</p> <p>2.          因ؓ我自诩“Shark工作引擎在国内的主要推q者”,大部分给我反馈工作流理pȝ开发选用技术的朋友都是用的Shark </p> <p>3.          Shark的确是一套不错的工作引擎,q你只是想学习XPDLQ你也可以从学习Shark开?</p> <p>现在已经C《工作流之大局ѝ中说的从封建社会向资本M转型的时代,而驱动这一转型的,不是别hQ正是上面说的jbpm。Jbpm3在3月发布阿发版,jbpm3的最l版支持bpel4ws的核心部分。所以,我估计,Shark在引领风骚数百天后Q被jbpm3赶下W一宝。笔者的开源敏捷工作流开发框架AgileFlow整合jbpm3Q同时对agile引擎和jbpm3引擎提供支持?</p> <p>但bpel4ws真的和我们q么快的亲密接触了吗Q没有。我估计在今q它是不会真正走q我们的生活的,那会是什么时候呢Q这是我下文章要预测的内容,我现在可不敢pQ我现在考虑的是Q是不是要自诩“jbpm3工作引擎在国内的主要推q者”,呵呵?br /><br /><a >http://www.360doc.com/showWeb.aspx?ArticleID=4713</a></p> <img src ="http://www.tkk7.com/clant/aggbug/41058.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/clant/" target="_blank">BPM </a> 2006-04-14 12:10 <a href="http://www.tkk7.com/clant/articles/41058.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]Shark 问题解答http://www.tkk7.com/clant/articles/41051.htmlBPM BPM Thu, 03 Nov 2005 08:41:00 GMThttp://www.tkk7.com/clant/articles/41051.htmlhttp://www.tkk7.com/clant/comments/41051.htmlhttp://www.tkk7.com/clant/articles/41051.html#Feedback0http://www.tkk7.com/clant/comments/commentRss/41051.htmlhttp://www.tkk7.com/clant/services/trackbacks/41051.html本h长期在国内的shark工作QQ中解答各种问题Q以下是曄解答q的问题汇?/strong>Q?br />Z让shark适用于中国国情的工作应用,目前已完成或攚w技术点如下Q?br />技术点名称
1.交接班当班值长_UMd
2. 取下一zdID
3.查阅程历史zd记录
4.q期zd提示Q有CQ务弹出提C用?br />5.Ҏ当前zd取下一zd的参与者映h?br />6. 强大参与者映,可映外?企业自己数据?l织机构Qh员, 角色Q资格等
7. d兌业务数据
8. d只发l指定h
9. 各步骤流E图
10. 更简单化的流E配|文?br />11 快速读取Q务列?比shark默认的方法快)
12. Ҏ不同zd跌{不同的URL
13. Ҏ当前zd军_面可以~辑什么元素?br />14. Ҏ面~辑了什么元素,军_下一步活动的自动扭{?
15.当前zd有h处理Q其他此zd参与者只能浏?br />16.避免数据库死锁,出现d?br />17. 程图汉?br />18. lshark提?br />19. 用简单方法实C{֊?br />20. 带不同业务数据的首页d(工作?列表

shark DEMO 下蝲Q?http://www.01g.net/download/shark.rar

(1) 我的shark serverZ么在启动后会一直显C?NameServer is (re)started!
{:因ؓ你内存中有一个实? 在Q务管理器中关?namesrv 或者重启一ơ计机可以了?br />
(2)我想修改admin的默认密码enhydra为别的?在哪里可以改
{:默认W一ơ启动时随便输入什么密码,以后都是q个密码。以后可以在Shark理器里更改?br />
(3)Shark的参与者映是用好Shark的关键之一Q你是怎么做到的?
{:目前有三U模式,一是用它的表Q二是用自ql织机构人员?Ҏ?Q三使用自己的组l机构h员表(攚w|?

(4)如何在Shark中徏立一个外部事?
{:SharkTransaction st = Shark.getInstance().createTransaction();

(5)Shark的工作流数据集与属性各有何作用?
{:工作数据集用于程zd之间交换数据用,是可变的Q而属性只存在于每个活动,下个zd是不能访问得到的?br />
(6)怎么实现程的回退?
{:如果回到上一步,可这个活动的参与者映的人全部拒收这个Q务,如果回到指定的活动,要在XPDL里定义,q根本条件流转?br />
(7)在shark中,d可以UMl一h?
{:不可?一ơ只能移交一人?br />
(8)Shark一定要用DODS来实现吗?
{:q可以用Hibernate.

(9)Shark可以实现完全自由的流E吗?
{:不可以,因ؓ一般工作流pȝ是U束业务按流E走Q如果太自由无规则的Q就不需要工作流了?br />
(10)在Shark中如何显C流E图信息?
{:Shark提供了JAWEcd以用Q但必须要将XPDL文g攑ֈreposite/external目录中,JAWEcd以读取XPDL文gҎ传来的包IDQ流EIDQ和zdID来绘制流E图?br />
(11)Shark支持会签程?怎样实现?
{:支持Q这只与程设计有关Q在设计XPDL时多x需求多动脑子来解决?br />
(12)Shark的性能问题Q如何提?
{:如果没必要用CorbaQ就不要打开Corba服务Q可省内存,如果不想查看日志Q就xDatabaseManger ?SharkExcuction日志写入文gQ另外内存等参数可在shark目录shark.conf中配|,q可以关掉审计流E,q些都可以提速不?br />
(13)在业务中如何调用Shark,或Shark如何执行业务Ҏ?
{:目前Q有两种方式Q一是在业务Ҏ中调用shark函数推动程Q二是在shark中定义ToolAgent映射业务ҎQ到q个zd时自动调用业务方法。这两种Ҏ各有利弊Q应Ҏ实际情况来做选择?br />
(14)如何让业务事务与shark事务保持一?
{:可先执业务方法,再执行shark, 如果业务出错Q回滚业务,而shark未执行。如果业务通过Qshark推动程出错,回滚shark和业务事务。将业务与shark攑֜一个try { }catch 中?br />
(15)Shark支持EJB?
{:支持Q需要下载ƈ安装 enhydra-enterprise-6.5-1.exe.

(16)怎样让流E图昄中文?
{:shark提供的JAWEcd可以生成程图,但默认是UTF-8~码Q必要转成GBK才可以显CZ文?br />
(17)d可以UMl角色吗?
{:?.1.2为止, shark没有提供q个业务ҎQ需要自己实现?br />


文章来源:http://www.01g.net/blog/default.asp?id=8

BPM 2005-11-03 16:41 发表评论
]]>
[导入]BPM≠WorkflowQEAIhttp://www.tkk7.com/clant/articles/41052.htmlBPM BPM Tue, 01 Nov 2005 23:52:00 GMThttp://www.tkk7.com/clant/articles/41052.htmlhttp://www.tkk7.com/clant/comments/41052.htmlhttp://www.tkk7.com/clant/articles/41052.html#Feedback0http://www.tkk7.com/clant/comments/commentRss/41052.htmlhttp://www.tkk7.com/clant/services/trackbacks/41052.html
关于 BPM Q业界有些迷思。例如,常听到有 BPM = EAI + Workflow Q?PBMS 只不q?Workflow 厂商的旧瓶新酒,换汤不换药,只要原来 WfMS 加上pȝ整合?Adaptors 变?BPMS Q或?EAI 厂商加上 Activity Modeling 的工h者是 Routing Engine 重新包装一下,也可以称?BPMS ?br />
我认?BPMS 不只是如此,而是一个生命周期。顺着 BPM 生命周期了解用户的操作场?(Scenario) Q是理解 BPMS 的组成全貌最好且最直觉的方式。在本文中,我首先介l完?BPM 生命周期Qƈ从其中的每一步骤接着介绍工作内容、用到的工具及其功能、与用户的角艌Ӏ最后,我会以一张完整的 BPMS 架构图,详细介绍其中l成的模块功能?

BPM Q也要谈生命周期 (Life Cycle)

BPMS 让企业可以灵敏反应外部环境的变动q快速变动企业内部的程作业Q所以生命周期所的是持箋性改善与周而复始的循环?BPM 生命周期另一个含意就是,它是 BPMS 工具导入的方法论 (Methodology) ?BPMS 解决Ҏ最重要的核心就是方法论Q它臛_要包含思考哲?(Philosophy) 、方?/ 步骤 (Methods / Steps ) 、与伴随的工?(Tools/Utilities) 。因为没有Q何两家的程Q组l,{略目标是全然一LQ因此怎样才能从策略目标规划到最后系l导入执行连贯一体,成功而有效地完成建置所依赖的才是合适的Ҏ论?

目前各家 BPM 厂商所提出的生命周期不相同,乃是因ؓ解决Ҏ所面对的业或应用领域不同Q所以有了各自强调与专注的重炏V例如, IBM HoloSofx 提出的是Q徏?(Create) 、管?(Manage) 、自?(Automate) 、协?(Collaborate) Q?Howard Smith & Peter Fingar ??BPM - The Third Wave 』一书所提出的是Q徏?(Model) 、布|?(Deploy) 、与理 (Manage) Q?Italio 提出的是发掘 (Discovery) 、徏?(Modeling) 、支?(Supporting) ?Monitoring ( 监控 ) 、及 Improvement ( 改善 ) 。在此我会提为完整的程步骤Q但不见得每?BPM 厂商的都W合Q读者可参考下图- BPM 生命周期?


图一?BPM 生命周期

·阶段一?程发掘 (Discovery) :

要导?BPM W一步骤当然要先清楚知道现行程的作业方式与状况Q尤其是程内的信息?(Message flow) 、事件流 (Event flow) 、或控制?(Control flow) 。哪些流E可以自动化Q哪些是人工程Q有哪些人参与?程是在l织内部或外部被执行Q?BPMS 在此步骤的主要特征是如何 自动扑ևpȝ的商业逻辑 。通常企业会聘请外部顾问师或领域专家来协助辅导Q这个动作有人称?程评估 (BPA, Business Process Assessment) Q评估范围可能涵盖策略与理目标与流E的q结。同时企业也会配合导入一些管理的主题而作 程再?(BPR, Business Process Reengineering) Q例如评分计分卡 (BSC, Balance Score Card) 、六个标准差 (Six Sigma) 、或 ISO 9000 品质理pȝ?

· 阶段二?程设计 (Design) Q?

此阶D|一个包含四几个步骤的反复式的小循环 (Iterative mini-cycle) Q徏?(Modeling) ?( 分析 Analyzing) 、模?(Simulation) 、重?(Redesigning) 程。如前所qͼ面对外部的竞争压力与商机Qؓ了让企业可以快速重构流E, 因此一些细致的程变革 (Fine-grained process change) 只需利用此阶D늚步骤p作出实时的反应?br />
程 建模 所q用的工L?Process Designer 通常包含三个模块Q组l?(Organization Chart) 、流E图 (Activity Diagram) 、与H体 (e-Form) 设计工具。它们分别对应流E中三个最重要的元素:人、活动与文g ( 有兴的读者可参阅 Process Modeling Conceptual Framework 有关的资料,后箋Ҏ在适当Z再做介绍 ) 。徏模之后可以作执行动作前的 分析与仿?来验证设计的程是否正确合适或最佛_Q此外它能还提供现行程可能遇到的瓶颈信息,以避免执行后才发现问题进而导致很大的营运损失。如果分析模拟出来的l果q不满意Q可以反?重构 程直到产出满意的结果。分析指的是从流E定义的语意与理Z的推论分析,仿真则可讑֮机率变量与行为假设让pȝ自动跑出期望值或变异差数据,有些则仅提供自动执行 (Animation) 或手动逐步执行以观流E行为?

此阶D?BPMS 的主要特征是 囑Ş化的接口 Q让?IT 背景的用户可藉由拖曳方式也能Ll装或分解流E;此外q用程资 (Process assets) 的观念,让流E定义隐含业界的最佛_?(Best practices) 或流E样?(Process Pattern) Qƈ且储存于程仓储 (Process Repository) 以供随时再利?(reuse) ?

· 阶段三、流E执?(Execution) Q?

意指CU的程能被参与者顺利执行完成。负责控制执行的模块可称为工作流E引?(Workflow Engine) 或流E服务器 (Process Server) 。在此阶D?BPMS 主要的诉求是分布式交?(Distributed transaction) 的管理,因ؓq些交易可能是复杂度高的跨l状流E?(Nested process) 而且交织着新旧pȝQ甚臛_既有的应用系l当成流E组件来执行。至于流E的执行者通常多是应用pȝQ可以不用h的参?(human intervention) 而自动执行,也就是一般所U?程自动?(BPA, Business Process Automation) ?

此外Q排E工?(Scheduler) 可以应用来设定自动启动流E的旉与周期频率。有?BPMS 的品会提供规则引擎 (Rule Engine) 来负责商业规则判别与推理。此阶段另一个重要的特点是在不用技术h员的参与下,依然可以让流E用戯行编辑与修改商业逻辑。例如,代理人的指派规则通常相当复杂Q背后就需要有 Rule-based 的机制来支持?

程布v (Deployment) Q意指将设计好的程推出上线让所有参与?(Participant Q可能是人,应用pȝQ或其它程 ) 来执行。这个步骤的主要特征是能以最的力气H?effort H达成运资?(Computing Resource) 与组lh员的l合 (binding) Q如事先整合应用pȝlg (Application components) ?

与h互动 (Interaction) Q在程的执行中很重要的是与h的互动。ƈ非所有流E都可以自动化,所?BPMS 让h能管理自动流E与人工程之间的接口。负责与Z动的接口UCؓ工作目的处理程?(Workitem Handler) 。有时候流E接口本w也是一个流E,例如动态加会签或在H体输入下一步流E的分派。过?Workitem Handler 相当单,然而现在有們֐丰富化与l致化的势。必要的时候还能让用户客制化或整合在不同系l的接口中。由于这个需求有快速提升的势Q所以各家厂商纷UhZ富且个h化的程入口|站 (Personalized process Portal) ?

于幅Q下集我会l将最后两个阶D介l完Qƈ?BPMS 的系l架构与各功能模块作个整理,让读者轻易了解,下回待箋.

在这文章中我会l箋最后两个阶D介l完Qƈ?BPMS 的系l架构与各功能模块作个整理,让读者有全盘性的了解?

W四阶段、管理维?(Administration) Q?

当流E上U后伴随产生了管理维护的问题Q如例外状况的介入处理、组lh员的变更、流E重新分z、或程版本升的媄响。在此,有个重要的模块称作流E活动监?(BAM, Business Activity Monitoring) Q它可以随时回报程的执行状态与q程Q而且用户也可以设定流E要q踪的关卡ƈd回报Q具有预警功能ƈ能随时掌握问题处理的时效。另外服务器的流量与执行监控及流E仓储的数据l护的效能也相当重要?

W五阶段、流E最佛_ (Optimization) Q?

程改善 (Improvement) 是个持箋性的zdQ不断反复朝向最佛_q进。流E测?(Measurement) 能提供流E的执行l效 (Performance) Q?BPMS 的报表工?(Reporting Tools) 能让企业对自ql织行ؓ充分了解作ؓ持箋改善的依据,如此方能{划出改善与最佛_的策略。流E分?/ 仿真着重在执行前的分析Q例如自动侦瓶?(bottleneck) 、死l?(deadlock) 与流E定义的不一?(Consistence) Q而流E测量则是执行后实际资料的分析,可以清楚知道程消耗时间与资源。这个阶D跟商业智慧 (BI, Business Intelligence) 的技术与主题怼性很高的Q差异在 BPMS 可以自动U录与收集流E相关的数据。尤?BPMS 所附含的流EW效A表版 (Dashboard) Q它提供一个全面式的概观让ȝ单掌握且一目了然哪些流E是在标准差内,哪些是在失控状态。当然这些报表,都是用户可以自行定义或查询的Q不?IT 人员的参与?

BPM Q?Workflow +EAI

怿从上q的介绍Q读者可以清楚认识到 BPM l对大于 Workflow ?EAI ?BPM 的主要精在于企业流E的理Q且主要的焦点在于业务性用?(business users) 而非技术性用?(technical users) Q在于流E弹性实时调整而非数据与应用系l的整合。所以仅是工作流E自动化加上 EAI 企业应用软g的{换机制是不以的늛企业理程中所有必要的环节。例如尚有让理ȝ能实时掌握流E成本效?(cost/effective) 评量与流EW?(Performance) 理Q业务性用户可以轻易调整组装流E以提供客户最佳业务服务,{等?

我将上述中的工具整合hQ架构如图二所qͼ

BPMS pȝ架构 (System Architecture)


图二?BPMS pȝ架构?

一个完整的 BPMS pȝ需由流E设计环?(Process Design Environment) 、流E仓储或储存?(Process Repository) 、流E服务器 (Process Server) 、用h行环?(User Execution Environment) {主要元素所架构而成?

· 程设计环境 (Process Design Environment)

程设计环境扮演着程设计阶段中最重要的流E徏模工作,通常包含了「组l图?(Organization chart) 、「电子化H体?(e-form) 、活动图 (Activity Diagram) 、与商业规则 (Business Rule) {相兛_素,q可透过直觉囑Ş化的接口Q协助流E设计者进行企业流E的建构?

l织N份大多与l织目录服务pȝ (Directory system) 相结合,以协助企业进行组l的调整与管理,如支?LDAP ?AD {相关目录服务。而电子窗体指的是信息呈现的接口,一般而言可将应用pȝ的数据与程相关的数据,透过所谓的电子H体来展玎ͼ便于处理与h互动的部分,而呈现的方式可透过特定的工具快速的订制。在了解程整体q作与规划中Q透过zd囑֏清楚地规划与了解程中的各个zd彼此的先后顺序与兌Qƈ订定程的运作条件与事g触发的相兛_作,再透过l合商业逻辑Q?Business Rule Q的方式Q让企业更清楚流E的q作方式且易于修改,在采购流E中Q若采购金额大于 100,000 台币者需{核臛_理,其余仅需{至l理Q就是个明显的例子?

程仿真Q?Simulator Q与程设计分析Q?Analyzer Q,则是透过程数据的仿真得以事先验证流E执行时的结果与程设计兌的分析(如在复杂的流E中Q重要的程元素或关联未建立Q,辑ֈ程执行前事先的预防Qƈ认设计的流E是否正合适或最佛_?

· 程数据储存?(Process Repository)

程仓储包含了流E定?(Process Definition) 、流E执行纪?(Execution Log) 、与应用数据 (Application Data) 。流E定义包括了程q作所有相关的数据Q最明显的就是流E三要素Qh、活动与文gQ都U录在流E定义中Q藉由流E的规则引擎 (Rule Engine) 的参数即数据的变异数或是各个节点所制定的活动时间限制等定出合适的程定义Q最后透过程服务器执行定义好的流E;程执行U录指的是流E执行过E中所有的U录Q有?BPMS 此部䆾内徏于系l中Q有的则是需另行所需U录抄写到数据库中;应用数据则是指在程执行的过E中Q所使用到其它系l的相关数据q着程U录下来或有所兌Q如请采购流E执行中Q需依照既有 ERP pȝ的相x据进行逻辑判断Q甚至需其抄写xE窗体中。而在此所指的应用性数据ƈ没有只局限在内部数据库,也包含了Ҏ程的定义向l织外可能以 web service 的方式呼叫外部数据来应用?

· 程引擎 / 服务?(Process Engine/Server)

程引擎是整?BPMS 中最重要的一环,它负责正无误地流E在正确的时间传送给正确的h或系l,而由于流E的q作Z业营q的核心Q因此能处理复杂且大量的程工作是流E引擎所必备的条件。分布式交易 (Distributed transaction) 的管理与负蝲qQ?Load Balancing Q将是考量的重炏V?

· 用户执行环境 (User Execution Environment )

q边所说的用户环境指的是用户与流E沟通的接口。一般简易的用户接口多藉由待办事( Work lists Q让用户使用程工作。而由于企业入口网站的风行Q一个面面俱到的 BPM 产品通常透过 Web-based 接口Qƈ加入口网站( Portal Q的概念Q提供所谓的程入口|站接口Q?Process Portal Q作为用户用流E的沟通接口。如此除了可清楚地看到透过程引擎指派而生的的各Q务或工作事项 (work items) 外,q可l合其它入口|站与应用系l整合的机制Q如使用协同工作功能促进员工彼此沟通与交流Q像是公布栏、行事历或讨论区{。另外也可透过待办事项的启?(trigger) 能够呼叫 (invoke) 与之相关的应用程?(applications) 甚至Ҏ各清楚定义的个别兛_ (activity) 自动?web service 的方式来跨组l地呼叫 (invoke) 外部数据作交?(transaction) 辑ֈ名副其实?SOA 技术架构概c?

此外藉由程|站接口用户 ( 通常指中阶以上主或部门ȝ ) 可利用行政管理工?(Administrator Tools) 与报表工?(Reporting Tool) 。就行政理工具来说Q进入流E数据储存库捞取程定义的信息所作出的制式化报表可以清楚的知道员工的工作负荷量的轻重E度Q而各U的l计量表包含热门排行、单位时间工作量l计、单位工作量l计、部门工作量l计、流E工作量l计、项目工作量l计提供理者用,使管理h员随时了解企业流E运作的各种情况。用户也能以 web service 的方式捞取应用数据作出动态分析。而流E的监控与管?(Activity Monitor) Q亦可让用户或管理者透过 Web 的方式,实时地追t目前流E的q度或进行例外的处理以能做到修正或变动的因应。也是说活动的监控ҎE范例的执行提供了一个W效量的准则。最后透过上述工具使流E作到实时的修正辑ֈ最佛_让工作更有效率?


文章来源:http://www.01g.net/blog/default.asp?id=6

BPM 2005-11-02 07:52 发表评论
]]>
[导入]企业如何定是否需要工作流Q?/title><link>http://www.tkk7.com/clant/articles/41053.html</link><dc:creator>BPM </dc:creator><author>BPM </author><pubDate>Tue, 01 Nov 2005 23:47:00 GMT</pubDate><guid>http://www.tkk7.com/clant/articles/41053.html</guid><wfw:comment>http://www.tkk7.com/clant/comments/41053.html</wfw:comment><comments>http://www.tkk7.com/clant/articles/41053.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/clant/comments/commentRss/41053.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/clant/services/trackbacks/41053.html</trackback:ping><description><![CDATA[如果׃务流E管理(Business Process ManagementQBPMQ请教不同的人,可能有得C同的回答。有的认为BPM是用来帮助监控h的活动和自动化的业务程Q有的认为是用来以?的h工处理{化ؓ自动化的程Q而有的h认ؓ是用来管理一些以前是人工处理的事情或者处理一些现在仍然由人工处理的事情?br /><br />Z么认识上的差距会如此不同呢?q不奇怪。Gartne认ؓQ尽当今世界上的BPM软g提供商不下百U,但几乎没有两家认Z们提供的产品一栗那么,到底哪种定义是正的Q“都对,”AMR研究室主任Eric Austvold认ؓQ“只是对的程度不同。”在各种各样的有兛_用Y件的q告宣传中,BPM可能是最q以来厂商提到最多的一个词。但是,要让BPM软g真正对你有用Q而不是浪费你的时间和金钱Q选择合适的软g和项目非帔R要?br /><br />下面的这些工作是BPM软g能做的:你可以用BPM应用来监控你的业务流E,或者用来实现工作流的自动化Q或者简单地把它当作集成QEAIQ的工具。BPM软g可以帮助你鉴别你的哪些业务需要自动化、哪些需要改善,或者帮助你集成现有的IT基础设施。那些成功地部v了BPM应用的CIO们认为BPM可以显著提高效率。对于大部分用户而言BPM软g不算贵,l常不到10万美元,q就意味着如果实需要的话,大多C业用得v它们惌的Y件版本。有些用戯QBPMl他们带来很高的回报Q常帔R?00%-300%?br /><br />具体能得到多高的回报Q主要取决于应用成功的程度。对于大多数BPM应用目而言Q要取得像前面所说的q么高的回报Q前期需要做大量的准备工作。也许安装BPM软g可能只要一个月Q但此前军_哪些程准备应用BPM软g可能会需要花?个月QManeesh Gupta用BPM软g来改善h力资源部的工作效率,用来跟踪雇员的工作效率和状态)。在不少目中,BPM目的初期投资非常小Q所以,即便目的回报率能达?00%Q最后对公司的利润A献也很有限。在让CEO感受到效果前Q你也许要做100多个q样的项目?br /><br />因此Q完全有必要从Y件提供商们o人目眩的q告宣传中仔l分辨那些品能l你帮助Q如何能l你带来帮助。现在大多数企业的业务流E都是很复杂的,不是U型的,因此QBPM完全可以发挥它的作用?br /><br />BPM是什?br /><br />十年前,Michael Hammer提出Q流E重l将是下一个商业变革,他说Q如果企业能对它们的业务程重新设计Q这些企业的效率一定会提高。大多数怿q个观点的企业解雇了很多雇员Q但是效率没有像预计的得到提高。部分原因在于,要让每一个被“遗弃者”同意改变他们的工作程是非常困隄。但今天QMichael Hammer的观点在BPM中得C玎ͼBPM提供了一U监控和改善商务实践的效率的Ҏ。BPM从公司的各种业务应用中提出数据,然后完成如下两g事情Q?br /><br />1.跟踪信息是如何被用来完成业务的,据此来准定位和了解现有的业务流E;<br />2.q踪信息在各U业务的动Q确保某一业务流E被执行?br /><br />从本质上_现有的BPM软g可以分ؓ三类Q监控工兗工作流软g、EAI工具Q下面将分别予以讨论?br /><br />效率监控<br /><br />BPM监控软g是上个世纪50q代Q站在装配线边盯着U表的效率顾问的计算机版本。BPM监控软g使用cM插g的编E技术,用统一的界面与公司的每个具体业务流E对应的应用pȝq接hQ例如,跟踪订单Q从它被发出直到货物被送走Q,看看哪个处理效率比较低。比如,一个公司可能会发现从货物列入装船计划到最l被送走QL存在12个小时的间隔。接下来公司p着手解册个问题,可能是雇佣更多的码头装货工hQ也可能是投资安装装船计划编制Y件。监控Y件也可以始终锁定一个业务流E,一旦这个业务流E出现异帔R上发报?br /><br />加拿大证券投资公司AIC从Sajus公司购买了BPM软gQ用来加快客戯̎L更新速度Q保证一旦发生交易,马上更新客户账户。AIC是加拿大最大的Uh拥有的证券投资公司,?20亿美元的资要管理。他们以前的Ҏ是,客户交易数据先在大型Z排队{待Q等到晚上由AIC的股东管理系l统一q行数据的更新。这意味着AIC的理财顾问通过Web方式dAIC的客戯券管理系l时Q看不到最新发生的交易信息?br /><br />CIO Joe Sferrazza认ؓ理胦N应该看到q些信息Q因此他建立了一个Web服务Q用来实时更新客戯券管理系l上的客戯̎户信息。大型机上仍然是晚上一ơ性进行批处理Q而客戯券管理系l再Ҏ大型Z的主数据库进行调整?br /><br />Sferrazza采用Sajus软g保上述处理的顺利进行。BPM软g会对整个处理q程q行监控Q如果出现问题,pȝ׃向合适的人发送警报要求解冻I而不至于{到理胦N要查看客戯据交易时才发现故障。如果不采用BPM监控软gQAIC没有办法保证自动化的流E处理一定会被正地执行?br /><br />工作Y?br /><br />BPM软g的另外一个变体是Z工作的产品QPegasystems、Metastorm、FileNet{Y件公叔R推出了这L产品。这些品实C一些业务流E的自动化,同时指导Z完成部分业务程的工作,保证其中某些程被执行。例如,有一U工作流的BPM软g用来限制软g销售h员,只有客户没有账户才能l他建立一个新账户。要通过BPM软g的自动化技术来保证业务程必须得到遵守的前提在于,使用q些pȝ的h必须对系l的业务程有一个比较清楚的认识Q能提出一个恰当的业务程Q因为系l本w只能做到流E的自动化,仅此而已?br /><br />国国家保险公司QANICOQ从Pegasystems购买了BPM工作YӞ用来改善它的呼叫中心的服务。在上个世纪90q代中后期,ANICO呼叫中心保险代理们的工作效率和客h意度的下降,部分原因在于Q保险代理们所需的客戯料很隑֏时获得。例如,在健康保险部门,客户个h信息、卫生维护组l的信息QHMOQ,以及相关的政{和规定{分别保存在不同的历史系l中。“在和客戯行电话沟通时Q我们的保险代理们不得不在多个系l之间来回切换。?ANICO副总裁D划和支持部门l理Gray Kirkham解释说?br /><br />1998q_Kirkham和Pegasystems公司合作安装了工作流pȝQ后来Pegasystems此产品命名为BPMQ,用来l呼叫中心的雇员们提供一个合理的程提示。这个系l从每一个历史遗留系l提出数据,再通过一个统一的用L面提供给代理们?br /><br />不过Q在Kirkham实现M自动化之前,呼叫中心的工作h员必LZ个完整的业务处理程。接下来QKirkham需要和呼叫中心的工作h员进行广泛的交流Q对q些目q行解释Q比如,q个目如何改变呼叫中心的工作人员服务客户的方式,Z么采用这些最佛_践非帔R要。最后,是提出q些业务程q对其文档化?br />现在Q当一个客h来电话就他(或她Q的ȝ保险问题咨询ӞBPM软g提示客户服务人员Q在讉K打来电话者的保险信息前先认其社会保险号。由于这个BPM软g可以增强工作的规范性,提示保险代理下一步的工作程Q所以呼叫中心的工作人员们现在可以马上根据打电话者的不同Q知道自己可以提供哪些服务了?br /><br />׃呼叫中心的工作h员现在能够很快地解决客户的问题,q样他们也能为更多的客户服务。至从这个Y件系l安装后QANICO呼叫中心电话挂机率降低了71%Q^均接电话解决问题的时间减了60%。而且Q这个项目具有相当大的可重复性。最开始Kirkham只是把这个Y件用在卫生保健呼叫中心,现在q个软g也被用来支持ANICO其他保险产品?br /><br />企业应用集成工具<br /><br />大的企业应用软g提供商和pȝ集成商充分利用了BPM软gh应用~程接口QAPIsQ这个特点,把BPM软g当成企业应用集成QEAIQ的工具Q用来从企业现存的各U系l中提取信息。换a之:如果你正在集成各U系l,完全可以利用BPM软g提供的用L面来集成各种中间Ӟ而不用管q些中间件到底谁提供的。IBM、Tibco和不集成商都已l购CBPM软g公司Q对q些公司的Y件进行适当的调整后q入他们的品中?br /><br />从本质上_EAI中用的BPM技术和监控及工作流软g没有什么不同。例如,Tibco购买了工作流软g提供商Staffware。企业用BPM来进行集成的方式也ƈ非与其他的集成方式完全不同,不过q时通常要支持较大的目。Forrester首席分析师Ken Vollmer_“集成了EAI、BPM了Y件包能支持更大的目Q因此通常也比单独只用EAI或者BPM软g要昂c在只用BPM软gp满需要的场合Q如果用集成了EAI、BPM功能的Y件包Q可能会佉K目成本增?0万美元以上?br /><br />包括全球15条主要航U的星空联盟QStar AllianceQ就采用了BPM来集成其各个成员的历史遗留系l。虽然这些成员同意采用统一的流E,但是如果Ҏ些成员的业务程q行攚w以W合其他成员昄是不合适的Q应该公q_采用一U能保护以前的投资的方式来进行?br /><br />q里的挑战非常大Q星I盟的执行CIO Brian Cook_有数十个历史遗留pȝ需要集成。例如,要提Z个针对“空中飞人”的新服务项目,可能需要IT部门整合9条航Uѝ?7个系l近90个独立的业务程?br /><br />q种整合很容易就会失LӞ但是使用BPM软g可以帮助Z提供一个如何共享分布在不同pȝ之中的数据的视图。星I盟的IT和航UK目组使用BPM软g来记录各条航U如何来为旅客登记和处理他们的出行信息。然后,航线理者可以根据这些信息,开发新的业务流E,扑ևq些程与BPM应用的对应关pR在整合历史遗留pȝ是,q种对应关系可以帮助区分哪些是需要整合的炏V?br /><br />如何鉴别BPM软g是否适合?br /><br />商h们肯定会告诉你每个h都可以从BPM中受益,和很多广告一P他们说的q不都可信。虽然每个企业都有一些业务要改善Q但q里有一些具体问题你需要考虑。比如,你想要解决什么问题?你可能有多大投资Q你的业务部门是否真正想提高工作效率Q或者说Q这U程度有多高Q?br /><br />Forrester的Vollmer_EAI/BPM软g属于一U在你现存的pȝ中挖潜的应用软gQ因U解x案不需你额外进行其他的技术投资就可以集成现有的应用。因此,q也l企业在选择做什么项目和选择哪个厂商的BPM软g提供了相当大地灵zL。但Vollmer也提醒说Q在做最后的军_Ӟ常识常常L重要的作用。他举例_如果你正在考虑一个企业应用集成项目,同时考虑一下是否可以上BPM是一U比较聪明的做法。因为大多数EAI提供商同时也提供BPM软gQCIO们在军_单独选择EAI或者BPM解决Ҏ之前Q应该仔l评C下选择EAI和BPM的综合解x案?br />另外Q大多数BPM用户喜欢从小目开始做赗ANICO的Kirkham认ؓQ一个原因在于流E的改变Q特别是关键业务程的改变,比如改变ANICO呼叫中心工作人员的工作习惯,是很隄。一ơ改变得太多可能会媄响整个组l的生效率Qh们需要时间来学习新的程以及如何使用BPM软g。正如“业务流E重l革命”失败一P如果没有制度上的支持QBPM也会p|。Kirkham_虽然ANICO的雇员们事先得到了培训,但是目实施后整个部门的效率q没有马上见到真正提高。直到后来招了一批对旧流E一无所知的Ch后,才看C真正的效果?br /><br />AIC的Sferrazza承认Q虽然他的确计划在其他一些业务流E上使用Sajus的监控工P但他的企业还没有真正大规模的开展BPM目。“我们能够有效监控我们的pȝQ”他_“但到目前ؓ止,AICx的焦点还集中在不用监控措施就可以提高我们效率的地斏V”他的另外一个担心是Q他的公怼q多C赖监控YӞ从而增加IT成本。“我担心出现q么一天:我们如此依赖于这些YӞ以至于我们必L几个专门的h员来保q些业务程被监控。换句话_如果监控成ؓ自动化的关键Q那么必L人来监控q些监控软g。?br /><br />在购买前你应了解什么?<br /><br />AMR的Austvold_军_购买哪种cd的BPM软g最l取决于你的目标是什么。每个h都同意,现在的市场是买方市场QCIO们很Ҏ可以在BPM软g市场扑ֈ你想要的东西。但是不CIO和分析h士都提醒_我们不应该因为BPM目较小p易做买决定。虽然和大型集成目不同QBPM目上的投资不大Q却比较Ҏ得到较高的ROI?br /><br />目前QBPM的市场是非常E_的,但是大多数推出BPM软g的公司比较小Q它们的产品一般只解决某一c问题。因此有可能它们Ҏ׃解你的业务,你只能靠自己来让q个软gq行h。Austvold_但通常公司提供的产品性h比更好?br />“你有多U选择Q”对象管理集团(OMGQ标准化l织的CEO Richard Soley_“你可以选择比较大的软g提供商,q样不用担心他们倒闭Q或者你选择那些一些但W合标准的提供商Q然后准备自我服务。不q,无论如何Q我们必d点什么,否则你就只能祷你的竞争Ҏ也不用。?br /><br />关于BPMQ有几个标准Q比如刚出现的业务流E执行语aQBPELQ,和更成熟一些的Web标准Q如Web服务描述语言、Java消息服务。Soley_每一个提供商都可能会采用几种标准Q你需要选择最适合你应用的那些标准。在购买前,要确信你厂商W合的标准是否适合你的程?br /><br />如何成功使用BPM<br /><br />要成功地应用BPM涉及C下几斚wQ第一Q在你的头脑对于需要用BPM软g来改善哪一个业务流E,应该有一比较清楚的认识。第二,监控业务程理解业务程是如何执行的。(q方面可以用BPM监控软g做到Q。第三,你和业务程的负责h一h讨如何来改善q个业务程Q重新设计流E。如果适当Q你可以使用BPM工作应用来理新的程?br /><br />一个成功的BPM目会l企业留下一l业务规则,对于企业来说q些规则是非常重要的知识权,同时也ؓ来的IT目提供了一个\U图。项目以信息的顺畅流动而结束,它将l以后的IT目带来很好的媄响,会让以后的项目更Ҏ?br /><br /><br />文章来源:<a >http://www.01g.net/blog/default.asp?id=5</a><img src ="http://www.tkk7.com/clant/aggbug/41053.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/clant/" target="_blank">BPM </a> 2005-11-02 07:47 <a href="http://www.tkk7.com/clant/articles/41053.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]工作现?/title><link>http://www.tkk7.com/clant/articles/41054.html</link><dc:creator>BPM </dc:creator><author>BPM </author><pubDate>Tue, 01 Nov 2005 23:35:00 GMT</pubDate><guid>http://www.tkk7.com/clant/articles/41054.html</guid><wfw:comment>http://www.tkk7.com/clant/comments/41054.html</wfw:comment><comments>http://www.tkk7.com/clant/articles/41054.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/clant/comments/commentRss/41054.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/clant/services/trackbacks/41054.html</trackback:ping><description><![CDATA[ <table width="720" border="0"> <tbody> <tr> <td width="100%"> <hr /> <p align="center"> <font size="6"> <span id="pnjvbtv" class="style1"> <span id="tnvtprj" class="style2">工作?/span> </span> <span id="fzvpvvt" class="style3">现状</span> </font> Q?a target="_blank">原文</a>Q?</p> <hr /> <p align="right"> <span style="WIDTH: 100%; TEXT-ALIGN: right"> <b>作?a >Tom Baeyens </a>译<a >dinghong</a></b> </span> <a > <!-- =================================================================================== --> </a> </p> <h1> <font size="5">前言</font> </h1> <p> <span id="bdhlpfd" class="text2">&nbsp;&nbsp;&nbsp;&nbsp;如果数据库系l( database systemsQ像受h敬的智者讲q的条理清晰的故事,那么<strong>工作?/strong>Q?strong>workflow</strong>Q就像一^臭未q的子在大谈各自的&ldquo;哲理&rdquo;。之所以这栯Q我是想指出Q?strong>工作?/strong>pȝ Q?strong>workflow</strong> management systemsQ还处于技术发展曲U( <a >technology hype curve</a>Q上的初U阶Dc在q个领域我们面临一个激动h心的阶段?Z描述q一点,可以?strong>工作?/strong>和关pL据库pȝQRDBMSQ做一个对比。当在Y件开发团队中谈论RDBMSӞ大部分h会有一个清晰的概念Q在你和他们交流的时候,Z会通过d的点头表C可或理解你所说的。可当用工作流术语讨论<strong>工作?/strong>Ӟ他们会摇头表CZ同意Q因为每个h?strong>工作?/strong>术语都有不同的理解?/span> </p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;D形成q种状况的原因之一Q是?strong>工作?/strong>中用了q多的概c在q个领域中的大量规范和工h有一个是怼的。当Ӟ它们怺之间有重叠ƈ且会怺参考引证?br />&nbsp;&nbsp;&nbsp;&nbsp;在介l?strong>工作?/strong>时有一个话题必d括,那就?strong>工作?/strong>?strong>业务程理</strong>QBPMQ的关系。术?amp;ldquo;<strong>工作?/strong>&rdquo;通常描述Z计算机系l的一pd相关交互。在开发h员中Q?strong>工作?/strong>l常被提及。有Ӟ<strong>工作?/strong>的意思是指一些不同的UI界面。业务流E管理的范围比较q,相比之下<strong>工作?/strong>多半局限于技术领域。业务流E管理还从管理h员的角度涉及了非技术问题,比如分析、组l的效率?/p> <p class="text2">&nbsp;&nbsp;&nbsp;&nbsp;在本文中Q我首先解释什么是<strong>工作?/strong>理pȝQ然后介l业务流E管理的优点。接下来描述一下ؓ什?strong>工作?/strong>市场乍看h如此混ؕ。本文给出的主要l论是:选择<strong>工作?/strong>pȝ是想?strong>工作?/strong>pȝ的公司,要面对的最困难的事情。ؓ此,本文的核心部分描qC一个流E定义(process definitionQ的四个层次Qؓ你选择<strong>工作?/strong>提供一个基。本文还用中立的语言描述?strong>工作?/strong>和BPM的通用概念。最后,l出了一些规范和工具的指导性描q?/p> <span id="dvhlxdt" class="text2"> <!-- =================================================================================== --> </span> <h1> <font size="5">什么是<strong>工作?/strong>理pȝQWFMSQ?/font> </h1> <h2> <font size="4">定义</font> </h2> <p class="text2">&nbsp;&nbsp;&nbsp;&nbsp;<strong>工作?/strong>pȝ是以规格化的程描述作ؓ输入的Y件组?它维护流E的q行状?q在人和应用之间分派zd?/p> <p class="text2">&nbsp;&nbsp;&nbsp;&nbsp;Z后面的描qͼ我们先定义一些基本的术语Q流E定义(process definitionQ和程实例Qprocess instanceQ? <u>一个流E定?/u>是一个业务流E或q程的规格化描述。一?u>程实例</u>是流E定义的一个运行实体?都目前ؓ止,概念q比较清晰是不是Q但当再深入一步时Q我们就要小心用文字了。如何阐q流E中的步骤,现在q没有一个统一的方式。这是各U?strong>工作?/strong>规范和工具之间主要的分歧?/p> <table cellspacing="25" cellpadding="8" border="0"> <tbody> <tr> <td style="BORDER-RIGHT: black 1px dashed; BORDER-TOP: black 1px dashed; BORDER-LEFT: black 1px dashed; BORDER-BOTTOM: black 1px dashed" valign="top" width="100%"> <p id="activityshouldbebanned"> <b>Z么应当禁止用术?amp;ldquo;zdQactivityQ?amp;rdquo;...</b> <br /> <span id="tdplndd" class="note"> <span id="tdxjtbj" class="text2">&nbsp;&nbsp;&nbsp;&nbsp;</span>程定义通常用一些活动表q。我认ؓq是D工作领域所有؜q主要原因。我告诉你ؓ什么:因ؓ术语&ldquo;zd&rdquo;h了状态(stateQ和动作QactionQ之间的差异。在程中,<u>状?/u> (或者说{待状?代表了一U对外部参与者(actorQ的依赖。在程q行Ӟq意味着程引擎必须{待Q直到外部参与者通知工作管理系l指定的状态完成了。比如,{待可进一步运行的认可?u>动作</u>是在程q行q程中,工作系lؓ响应指定事gQeventQ运行的一D늨序逻辑Qprogramming logicQ。当程q行q程中指定的事g发生Ӟ工作系l启动ƈ执行q些动作。比如,当状态分配给一个参与者时Q发一Email。你也能看出Q状态和动作是如此不同,因此使用同样的术语去描述q些概念是一个坏习惯。我的徏议是避免使用术语&ldquo;zd&rdquo;Q?amp;ldquo;状?amp;rdquo;或?amp;ldquo;动作&rdquo;代替它?/span> </p> <!-- END OF BORDER --> </td> </tr> </tbody> </table> <p class="text2">&nbsp;&nbsp;&nbsp;&nbsp;<strong>工作系l?/strong>另一个重要的职责是维护每一个流E运行的上下文信息?<u>程上下文变量(process context variableQ?/u> Q或U变量,是与程实例相关的变量。如Q休假申L开始日期、数据库中一条记录的键倹{文档管理系l中一文档的索引{。通常在流E定义中声明q些变量Q然后在程实例生成Ӟq些程变量被实例化。所有成熟的<strong>工作管理系l?/strong>都支持定制的变量cd?/p> <h2>目标领域QTarget usageQ?/h2> <p class="text2">&nbsp;&nbsp;&nbsp;&nbsp;使用<strong>工作管理系l?/strong>的目的之一是作Z业应用系l集成(EAIQ的q_。在当前大部分企业IT架构中,各种各样的异构(heterogeneousQ应用和数据库运行在企业内网中。在q些pȝ被应用到l织Ӟ都有一个清晰的目标。例如,客户理、文档管理、供应链、订单、支付、资源计划等{。让我们U这些系lؓ专门应用Q?dedicated applicationsQ。每一个专门应用都包含它们所支持业务程的领域知识。这些专门应用中的自动化程Q被DC业中更大的非自动化流E中。每当一个这L专门应用安装q投入用,都会带来涉及其他多个应用的新功能需求。企业应用系l集成(EAIQ就是通过使用多个专门应用满软g新需求的Ҏ。有Ӟq只需要在两个应用之间提供数据通讯的通道。专门应用将很多业务程编码在软g中。可以这么说Q在你购C门应用时Q你是购C一l固定的自动化业务流E。?strong>工作管理系l?/strong>是不必事先知道问题域的相关信息的?strong>工作系l?/strong>业务流E描qC入ƈ理程实例的执行,q得它比专门应用更灉|Q当然你也要q力编写业务流E的规格化描qͼ。这是Z么说<strong>工作系l?/strong>和专门系l是怺补充的?strong>工作系l?/strong>可以用来理全局的业务流E。如果专门应用支持你所需要的业务程Q那么用专门应用。在此讨论的<strong>工作系l?/strong>的第一U用方式就是:l合所有的专门应用Q?strong>工作系l?/strong>构徏一个EAIq_?/p> <p class="text2"> <span id="rjfzltr" class="text2">&nbsp;&nbsp;&nbsp;&nbsp;</span> <strong>工作系l?/strong>能够发挥很大价值的W二个用方式是Q协助涉及多人相关Q?strong>工作?/strong>软g的开发。ؓ了达到这个目的,大部?strong>工作系l?/strong>都有一个方便的机制Q来生成执行d的表单。对于专注于<a >ISO</a> 或?a >CMM</a>认证的组l,采用q种方式使用<strong>工作系l?/strong>能够显著提高生率?不用过E用文字的Ş式写在纸上,<strong>工作系l?/strong>使你通过程定义建模实现q程的自动化Q如使用ZWeb的应用)?/p> <p class="text2">&nbsp;&nbsp;&nbsp;&nbsp;<strong>工作系l?/strong>的第三种使用方式是:?strong>工作引?/strong>嵌入到其他应用中。在前面我们谈到Q专门应用将指定问题域相关的业务程固化在Y件中。开发专门应用的公司也可以将<strong>工作引?/strong>嵌入C们的软g中。在q里Q?strong>工作引?/strong>只是作ؓ一个Y件组Ӟ对于应用的最l用h不可见的。将<strong>工作引?/strong>嵌入到应用中的主要原因是Z重用Q不重复发明轮子Q和应用软g的可l护性?/p> <!-- =================================================================================== --> <h1> <font size="5">The case for workflow</font> </h1> <p class="text2">&nbsp;&nbsp;&nbsp;&nbsp;对于引入<strong>工作?/strong>的组l,能够在Y件开发和业务两个层次受益?/p> <h2> <font size="4">方便开?/font> </h2> <p class="text2">&nbsp;&nbsp;&nbsp;&nbsp;<strong>工作管理系l?/strong>能够化企业软g开发甚至维护?</p> <ul> <li> <span id="vnrjnfl" class="text2"> <b>降低开发风?/b> - 通过使用状态和动作q样的术语,业务分析师和开发h员用同一U语a交谈。这样开发h员就不必用户需求{化成软g设计了?</span> </li> <li> <span id="jdhbdbb" class="text2"> <b>实现的集中统一</b> -业务程l常变化Q?strong>工作?/strong>pȝ的最大好处是Q业务流E的实现代码Q不再是散落在各U各Lpȝ??</span> </li> <li id="prnpljz" class="text2"> <b>加快应用开?/b> - 你的软g不用再关注流E的参与者,开发v来更快,代码更容易维护?</li> </ul> <h2> <font size="4">业务程理 (BPM)</font> </h2> <p class="text2"> <span id="tdxdfnv" class="text2">&nbsp;&nbsp;&nbsp;&nbsp;</span>在自动化业务程之前Q分析ƈ它们规格化是一件艰苦但会有很好回报的工作?a >e-workflow.org</a>对于分析程能够带了的益处有不错的阐qͼ</p> <ul> <li> <span id="vdzdpvl" class="text2"> <b>提高效率</b> - 许多程在自动化q程中会去除一些不必要的步?</span> </li> <li id="pplfvxx" class="text2"> <b>较好的流E控?/b> - 通过标准的工作方法和跟踪审计Q提高了业务程的管? </li> <li> <span id="nnbxzhh" class="text2"> <b>改进客户服务</b> - 因ؓ程的一致性,提高了对客户响应的可预见?</span> </li> <li> <span id="zlxzvjr" class="text2"> <b>灉|</b> - 跨越程的Y件控Ӟ使流E可以按照业务的需要重新设计?</span> </li> <li id="zzthtjz" class="text2"> <b>业务程改进</b> - ҎE的xQ它们向于流畅和?</li> </ul> <p class="text2"> <span id="rdftldr" class="text2">&nbsp;&nbsp;&nbsp;&nbsp;</span>我认Z们还遗漏了一个?strong>工作?/strong>pȝ最重要的因敎ͼ提高对P代开发的支持。如果Y件中业务程部分不容易更改,l织׃花很大的_֊在开发前的业务流E分析中Q希望一ơ成功。但可悲的是Q在M软g目开发中Q这都很能实现?strong>工作?/strong>pȝ使得C务流E很Ҏ部vQ业务流E相关的软g可以一UP代的方式开发,因此使用<strong>工作?/strong>pȝ使开发更有效、风险更低?/p> <h2>~失的一环(Missing linkQ?/h2> <h2> <span id="lvxtnvd" class="text2">&nbsp;&nbsp;&nbsp;&nbsp;<font size="3">我确实认为工作流pȝ是企业应用开发中~失的一环。将企业业务程逻辑在企业软g中实现的~省方式是分散的。这意味着业务程逻辑散布在各U系l中Q如EJB、数据库触发器、消息代理等{。这样得到的软g难于l护Q结果,企业只能改变业务流EY件作为最后的选择。他们经常能够做的是Q改变流E以适应软g。上q问题也适用于采用大型外部ERP软g包的企业。进一步,假设我们认识到这个问题,q打将一个流E相关的代码都集中v来。对于一个流E来说这很不错,但当你要实现多个程Ӟ你会看到理状态和程变量的代码被到处复制。最后,我们会整理这些代码放C个集中的库中。好Q?..q就是一个工作流理pȝ了,不用费心自己来实玎ͼ你可以从本文后面的列表中选择一?/font></span> <font size="3"> <span id="pjlphrx" class="text2">?/span> </font> </h2> <h1> <font size="5">A closer look</font> </h1> <h2>WFMS interfaces</h2> <p class="text2"> <span id="tdxntbr" class="text2">&nbsp;&nbsp;&nbsp;&nbsp;</span>一?strong>工作管理系l?/strong>以流E定义作入。在q里Q可以将程定义看作UMLzd图、UML状态图或者有限状态机。在提交一张费用单据、申请休假、要求一个报仗?..之后Q?strong>工作?/strong>pȝ负责l护q些程定义的执行状态和上下文。ؓ此,需要通知<strong>工作?/strong>pȝ状态的变化。运行流E的状态变化可以记录下来,以备监控理?/p> <p>&nbsp;</p> <center> <img alt="" src="http://www.joinwork.net/document/The%20State%20of%20Workflow.files/interfaces.gif" border="1" /> <br /> <i>Figure 2: Interfaces of a WFMS</i> </center> <p>&nbsp;</p> <p>&nbsp;</p> <ul> <li> <span id="tvrvxvv" class="text2"> <b>定义</b>&nbsp;&nbsp;&nbsp;<strong>工作?/strong>pȝ的定义接口ɋ程开发h员能够部|流E定义。注意,q里?amp;ldquo;程开发h?amp;rdquo;可以是业务分析师和Y件开发h员的l合?/span> <!-- START OF BORDER --> <table cellspacing="25" cellpadding="8" border="0"> <tbody> <tr> <td style="BORDER-RIGHT: black 1px dashed; BORDER-TOP: black 1px dashed; BORDER-LEFT: black 1px dashed; BORDER-BOTTOM: black 1px dashed" valign="top" width="100%"> <p width="100%"> <b>圈套QPitfallQ?/b> <br /> <span id="lnrvpnt" class="note">许多<strong>工作管理系l?/strong>的开发商想你相信,通过使用他们的图形化程开发工P只要业务分析师就可以生成程定义。这Ux?amp;ldquo;~程很难&rdquo;q样的事实。开发商的销售h员喜Ƣ说&ldquo;看,你不用写一行代?amp;rdquo;。不用写代码是好事,可大部分开发商在这点上走的太远Q忽略了在某些场合提供一U将代码集成到流E定义中的机制是很适合的。在?strong>工作?/strong>pȝ作ؓEAIq_Ӟ必须在流E中集成代码。开发流E定义需要业务分析师和Y件开发h员的合作。一个好的图形流E设计工具应该能够支持这U合作?/span> </p> <!-- END OF BORDER --> </td> </tr> </tbody> </table> </li> <li> <span id="xbnhlbp" class="text2"> <b>执行</b>&nbsp;&nbsp;&nbsp;执行接口使用户和pȝ可以操作程实例。流E实例是程定义的执行。流E定义的控制通过状态机描述。执行接口的两个主要Ҏ是启动一个流E实例和通知<strong>工作?/strong>pȝ一个状态结束了?</span> </li> <li> <span id="jdnrdtz" class="text2"> <b>应用</b>&nbsp;&nbsp;&nbsp;应用接口代表了由<strong>工作?/strong>pȝ发v?strong>工作?/strong>pȝ和外部系l之间的交互。当一个用hpȝ操作一个流E实例的q行Ӟ会生成一些事Ӟ如一个迁Uȝ执行Q。流E定义中可以指定一D响应一个事件的可执行代码逻辑Q这D代码和l织内外部的其他pȝ打交道?</span> </li> <li id="dnbdffn" class="text2"> <b>监控</b>&nbsp;&nbsp;&nbsp;理人员通过监控接口获得程q行的确切数据。有Ӟq行日志也可用于审计?</li> </ul> <span id="jjnzlzz" class="text2">&nbsp;&nbsp;&nbsp;&nbsp;q些是WfMC参考模型(<a >reference model of the WfMC</a>Q中定义的五个接口中的四个?</span> <h2>程定义的四个层?/h2> <h2> <span id="fhlfbvl" class="text2">&nbsp;<font size="3">&nbsp;&nbsp;&nbsp;在下面这部分Q我试回答q样的问?amp;ldquo;什么是程定义包括的内容?&rdquo;。这是从各种规范和工h使用模型的原则和概念中ȝ得来的,反映了大部分模型中通用的基本思想。流E定义的内容可以分ؓ四个不同的层ơ:状态(stateQ、上下文QcontextQ、程序逻辑Qprogramming logicQ和用户界面QUIQ?/font></span> </h2> <h2>状态层</h2> <p class="text2"> <span id="rtfrltt" class="text2">&nbsp;&nbsp;&nbsp;&nbsp;</span>所有状态和控制的表述Q都属于业务程的状态层。标准编E语a中的控制来源于Von Neuman体系。控制流定义了必被执行的指令的序Q控制流由我们书写的命o、if语句、@环语句等定。在业务程中的控制基本与此一致。但在业务流E中不是使用命o而是使用状态作为基本元素?/p> <p class="text2">&nbsp;&nbsp;&nbsp;&nbsp;在流E中Q?u>状?/u> (或者说{待状?代表了一U对外部参与者(actorQ的依赖。状态的意思就?amp;ldquo;现在Xpȝ或某某h必须作某些事Q在此等待直到参与者通知q些d已完?amp;rdquo;。状态定义了一U对外部提供l果的依赖。状态典型的例子是批准步骤(stepQ?/p> <p class="text2">&nbsp;&nbsp;&nbsp;&nbsp;程定义中的状态也指定了执行依赖于哪个参与者。在zd图中Q泳道(swimlanesQ的标注代表q些参与者的名字?strong>工作?/strong>pȝ使用q些信息构徏d列表Q这是一?strong>工作?/strong>pȝ都有的功能。如前所qͼ参与者可以是Z可以是系l。对于需要h参与的状态,<strong>工作?/strong>pȝ必须在运行时计算出具体的个h。这L计算?strong>工作?/strong>pȝ必须依赖于组l结构信息。关于这斚w的一非常有的文章是在<a >further reading section</a>提到?amp;ldquo;<strong>工作?/strong>应用中的l织理&rdquo;Q?'Organizational Management in Workflow Applications'Q?/p> <p> <span id="pztptbz" class="text2">&nbsp;&nbsp;&nbsp;&nbsp;程定义的控制流包含一l状态和它们之间的关pR状态之间的逻辑关系描述了哪些执行\径可以同时执行,那些不可以。同步执行\径用分叉QforksQ和联合QjoinsQ徏模,异步执行路径用判断(decisionsQ和合ƈQ?mergesQ徏模。注意在大多数模型中Q在每个状态之前都有一个隐式合q?/span>?/p> <p> <span id="tdrvrfn" class="text2">&nbsp;&nbsp;&nbsp;&nbsp;UMLzd囄常被用来做业务流E徏模。作ZU直观和通用的表达,zd囑֜囑Ş表述上有一个主要问题,是没有区分状态和动作Q它们都用活动来表示。缺这U区分(D状态概늚~失Q是学术z֯UMLzd囄主要批评。UMLzd囄W二个问题是在UML2.0版中引入的。当多个q移QtransitionsQ到达一个活动时Q以前的版本规定q是一个缺省合qӞmergeQ,?.0版中规定q是一个需要同步的~省联合QjoinQ。在我看来,UMLzd囄囑Ş部分仍旧可以用来对业务流E状态层ơ徏模,只要使用时对两条构徏语义作如下的变化Q?/span> </p> <ol> <li> <span id="lvblxvn" class="text2">在用囑Ş表述业务程Ӟ只徏模状态层Q状态和控制)Q不要包括动作。这意味着囑Ş中的矩Ş都是状态而不是活?</span> </li> <li id="tvhdxvl" class="text2">如果多个q移到达一个状态,~省定义Z需要同步的合ƈQmergesQ?</li> </ol> <p class="text2">&nbsp;&nbsp;&nbsp;&nbsp;在流E运行过E中Q?strong>工作?/strong>pȝ用一个o牌(tokenQ作为指针跟t流E的状态。这相当于Von Neuman体系中的E序计数器。当令牌到达一个状态时Q它被分配给<strong>工作?/strong>pȝ{待的外部参与者。外部参与者可以是个h、组l或者计机pȝ。我们定义流E运行的执行人或pȝ?amp;ldquo;参与?amp;rdquo;QactorQ。只有在<strong>工作?/strong>pȝo牌分配给一个参与者时Q才需要访问组l结构信息?strong>工作?/strong>pȝ通过分配令牌构徏d列表?/p> <h2>上下文层</h2> <p class="text2">&nbsp;&nbsp;&nbsp;&nbsp;<u>程上下文变量(process context variableQ?/u> Q或U变量,是与程实例相关的变量。流E开发h员可以用流E变量存储跨流E实例整个生命周期的数据。一?strong>工作管理系l?/strong>有固定数目的数据cdQ另一些你可以定义自己的数据类型?/p> <p class="text2">&nbsp;&nbsp;&nbsp;&nbsp;注意变量也可以用来存攑ּ用( referencesQ。一个变量可以引用如数据库中的记录、网l上的文件。什么时候用引用,取决于用引用数据的其他应用?/p> <p class="text2">&nbsp;&nbsp;&nbsp;&nbsp;和流E变量相关的另一个o人感兴趣的方面是Q?strong>工作?/strong>pȝ如何数据{化ؓ信息?strong>工作?/strong>是用于组l内部跨各U异构系l实CQ务和数据协同的。对于业务流E中人工执行的Q务,<strong>工作?/strong>pȝ负责从其他相关系l,如SAP、数据库、CRMpȝ、文档管理系l收集数据。在业务程的每一个h工步骤,只有相关联的数据被从异构系l中攉和计。通过q种方式Q从不同pȝ来的数据被{换ƈ展现Z息?/p> <h2 id="programminglogic">E序逻辑?/h2> <p class="text2">&nbsp;&nbsp;&nbsp;&nbsp;如前所qͼ<u>动作</u>是在程q行q程中,<strong>工作?/strong>pȝ响应指定的事ӞeventQ执行的一D늨序逻辑Qprogramming logicQ。程序逻辑可以是二q制或源代码形式的、用M语言或脚本编写的软g。程序逻辑层是所有这些Y件片断和关于在什么事件发生时调用它们的信息的l合。程序逻辑的例子包括发Email、通过消息代理发消息、从ERPpȝ中拿数据和更新数据库?/p> <h2>用户界面?/h2> <span id="hrvxbjz" class="text2">&nbsp;&nbsp;&nbsp;&nbsp;一个参与者通过向流E变量中填充数据的事Ӟ来触发结束一个状态。比如,在请假的例子中,老板提供&ldquo;同意&rdquo;?amp;ldquo;不同?amp;rdquo;数据到流E中。某?strong>工作?/strong>pȝ允许指定哪些数据可以填充到流E中Q以及它们如何在程变量中存储。通过q些信息Q可以生成从用户攉信息的UI表单。基于流E定义生成用h交表单的Web应用例子Q可以访?a >the jBpm online demo</a>?/span> <!-- =================================================================================== --> <h1> <font size="5"> <strong>工作?/strong>全景</font> </h1> <h2> <font size="4">可执行流E与<strong>工作管理系l?/strong>的比较(Executional processes versus a WFMSQ?/font> </h2> <p class="text2">&nbsp;&nbsp;&nbsp;&nbsp;当前在BPM领域中,关于可执行业务流E的规范有趋向于l一集中的趋ѝ?XLANG, WSFL 和BPML合ƈ为基于交互(消息交换Q的BPEL。BPEL在面向服务体pȝ?SOA)的大背景下定义。它的前提条件之一是涉及的服务必须用WSDL声明。BPEL规定了一套XML语法Q这套语法可以看作一U编E语aQ用来描q包括对WSDL定义的服务调用的控制?/p> <p> <span id="zzvthpx" class="text2">&nbsp;&nbsp;&nbsp;&nbsp;在可执行业务程和基于状态的<strong>工作管理系l?/strong>所使用的方法中Q我注意C三点主要的区别:</span> </p> <ul> <li id="fxjvxvd" class="text2"> <u>Z状态与面向消息</u>Q基于状态的<strong>工作?/strong>pȝ以状态(或者活动)概念Z心?strong>工作引?/strong>l护状态ƈ计算从一个状态到另一个状态的q移。另一斚wQ像BPELq样的可执行程以对输入消息响应的定义ؓ中心。一l这些响应外加其他信息(other bells and whistlesQ可以看作一个业务流E。这也解释了Z么BPEL可以看作是对Z状态的<strong>工作?/strong>pȝ的某些方面的补充。一个响应输入消息的BPEL onMessage事g处理器,可以?strong>工作?/strong>状态之间的q移中执行? </li> <li> <span id="tnplnvd" class="text2"> <u>程实例ID与消息相兛_?/u>Q可执行业务程的复杂性之一来自消息相关性的处理。流E描q的一部分必须说明BPEL引擎如何从输入消息中定具体程的标识。这必须Z输入消息的一个数据项。?strong>工作?/strong>pȝ在每个流E实例生成同时生成了实例IDQ客L在后l调用引擎API时用这个ID?</span> </li> <li id="nfhdndl" class="text2"> <u> <strong>工作引?/strong>API与抽象服务端点(endpointQ?/u>Q?strong>工作?/strong>pȝ提供一l集中的APIQ客L通过调用API完成与所有流E实例的交互。在可执行业务流E中Q每个流E表Cؓ一个服务。这意味着对于每个程定义都有一个不同的讉K炏V?</li> </ul> <h2>学术?/h2> <span id="bbxthxv" class="text2">&nbsp;&nbsp;&nbsp;&nbsp;学术界对<strong>工作?/strong>的研I可以回溯到上个世纪七十q代。在当前Q研I域趋向于认ؓ<a >petr |?/a>?a >所有流E定义语a之母</a>。关于petri|已有大量先q的分析技术,d?<a >2003 conference on Business Process Management</a>上我有幸会晤了Petri教授。对于大部分够访问和理解的有关Petyri|最好的研究之一?strong>工作?/strong>模式<a >(workflow patterns)</a>?strong>工作?/strong>模式比较了大量的<strong>工作管理系l?/strong>q以petri|的术语表述了通用程建模概念?/span> <h2 id="opensourceprojects">开放源代码目</h2> <p class="text2">&nbsp;&nbsp;&nbsp;&nbsp;最后我们看看真实世界中?strong>工作管理系l?/strong>。选择一?strong>工作管理系l?/strong>是一件困隄事情Q但有选择L没有选择好?-) 本文阐述<strong>工作?/strong>基本概念的目的之一Q就是你能够作更好的选择。但我也意识刎ͼ对于现在的Y件架构师来说Q选择<strong>工作?/strong>pȝ是一件最h战性的工作?/p> <p> <span id="txjvpxd" class="text2">&nbsp;&nbsp;&nbsp;&nbsp;下面的列表来源于三个地方Q?a >my previous article</a>, <a >the list of Carlos E Perez</a>, ?<a >list by Topicus</a>. </span> </p> <ul> <li> <span id="xjvxrhf" class="text2"> <b> <a >jBpm</a> </b> - jBpm是本文作者编写的一个灵zd扩展?strong>工作管理系l?/strong>。作为jBpmq行时server输入的业务流E用简单强大的语言表达q打包在程档案中。jBmp?strong>工作?/strong>应用开发的便利性和杰出的企业应用集成(EAIQ能力结合了h。jBmp包括一个Web应用E序和一个日E安排程序。jBmp是一lJ2SElgQ可以作为J2EE应用集群部v?</span> </li> <li> <span id="zbxrllh" class="text2"> <b> <a >OpenEbXML</a> </b> - OpenebXML目致力于提供一个ebXML框架Q主要支持不久将?UN/CEFACT和OASIS发布的ebXML规范2.0版?</span> </li> <li> <span id="rlnpljp" class="text2"> <b> <a >Werkflow</a> </b> - Werkflow是一个灵zd扩展的基于流E和状态的<strong>工作引?/strong>。它的目标是满可以惌的所有工作流E,从企业的业务流E到范围的用户交互程。通过使用可插拔和分层l构Q可以方便地容纳各种<strong>工作?/strong>语义?</span> </li> <li> <span id="zrnpjrr" class="text2"> <b> <a >OSWorkflow</a> </b> - OSWorkflow最独到之处是绝对的灉|?</span> </li> <li> <span id="zrnhtth" class="text2"> <b> <a >wfmOpen</a> </b> - WfMOpen是WfMC和OMG中所?strong>工作?/strong>设施Qworkflow facilityQ?(<strong>工作引?/strong>)的J2EE实现?strong>工作?/strong>通过扩展的XPDL描述?</span> </li> <li> <span id="rjxnpff" class="text2"> <b> <a >OFBiz</a> </b> - OFBiz<strong>工作引?/strong>ZWfMC和OMG的规范,使用XPDL作ؓ程定义语言?</span> </li> <li> <span id="tdrthnd" class="text2"> <b> <a >ObjectWeb Bonita</a> </b> - Bonita是一个符合WfMC规范、灵zȝ协同<strong>工作?/strong>pȝ?对于各种动作如流E概念徏模、定义、实例化、流E控制和用户交互{提供了全面的集成图形工兗?100% Z览器、用SOAP和XML数据l定技术的Web Services装了已有的<strong>工作?/strong>业务Ҏq将它们以基于J2EE的Web Service形式发布。基于活动预模型的W三?strong>工作引?/strong>?</span> </li> <li> <span id="fpjfhpn" class="text2"> <b> <a >Bigbross Bossa</a> </b> -速度非常快、轻量的引擎,使用富有表达能力的Petri|定?strong>工作?/strong>Q不要求关系数据库,使用单,能和Java应用集成。事实上Q它是按嵌入式设计的?</span> </li> <li> <span id="jdfjndb" class="text2"> <b> <a >XFlow</a> </b> - XFlowq行于EJB和servlet容器中?</span> </li> <li> <span id="rhdzbzh" class="text2"> <b> <a >Taverna</a> </b> - Taverna目的目标是提供一U语a和Y件工P方便在eScience中?strong>工作?/strong>和分布计技术?</span> </li> <li> <span id="nnbvpvl" class="text2"> <b> <a >Enhydra Shark</a> </b> - Shark完全ZWfMC和OMG标准Q?XPDL作ؓ<strong>工作?/strong>定义语言。流E和zd的存储用Enhydra DODS?</span> </li> <li> <span id="vptxjpx" class="text2"> <b> <a >PowerFolder</a> </b> - PowerFolder包括开发h员用的studioQ管理环境和一个运行时引擎?</span> </li> <li> <span id="lnpbxvd" class="text2"> <b> <a >Breeze</a> </b> - Breeze一个轻量、跨q_、基于组件的<strong>工作引?/strong>原型?</span> </li> <li> <span id="fpdxrrr" class="text2"> <b> <a >Open Business Engine</a> </b> - Open Business Engine是一个开放源码的Java<strong>工作引?/strong>Q支持WfMC规范Q包括接?QXPDLQ、接?/3QWAPIQ和接口5。OBE为活动的q行提供了一个可控的集中环境。OBE主要ZJ2EE实现?</span> </li> <li> <span id="zzdxvfn" class="text2"> <b> <a >OpenWFE</a> </b> - OpenWFE是一个开放源码的Java<strong>工作引?/strong>?它包括可升的三个组Ӟ引擎、工作列表和Web界面。它的流E定义语a虽然使用XML格式Q其灉|来源?SchemeQ一ULisp方言?</span> </li> <li> <span id="ppbnjrx" class="text2"> <b> <a >Freefluo</a> </b> - Freefluo是一个用Web Service?strong>工作?/strong>协同工具Q可以处理WSDL的Web Service调用。支持两UXML格式?strong>工作?/strong>语言QIBM的WSFL和XScufl。Freefluo非常灉|Q它的核心是不与M<strong>工作?/strong>语言或执行架构关联的可重用协同框架?Freefluo包括可执行用WSFL一个子集描q的<strong>工作?/strong>的运行库?</span> </li> <li> <span id="bdpjdlt" class="text2"> <b> <a >ZBuilder</a> </b> - ZBuilder3是第二代<strong>工作?/strong>开发管理系l,也是一个开放源码品。它Z同的<strong>工作引?/strong>?strong>工作?/strong>定义了一l标准的JMX理接口?</span> </li> <li> <span id="fnzvrfv" class="text2"> <b> <a >Twister</a> </b> - Twister的目标是提供C代、易集成、应用Java领域中最新成果、面向B2B?strong>工作?/strong>解决Ҏ。流E引擎基于BPEL业务程规范和Web Service标准?</span> </li> <li id="jtfrvbb" class="text2"> <b> <a >Con:cern</a> </b> - con:cern<strong>工作引?/strong>Z扩展的案例(caseQ处理方法,程׃l具有前后条件的zdl成?</li> </ul> <h2 id="commercialvendors">商业软g提供?/h2> <ul> <li style="PADDING-BOTTOM: 0px"> <span id="xpjxhhn" class="text2"> <a s WLI</a> </span> </li> <li style="PADDING-BOTTOM: 0px"> <span id="fplhthh" class="text2"> <a >Carnot</a> </span> </li> <li style="PADDING-BOTTOM: 0px"> <span id="xhvhjrh" class="text2"> <a >Dralasoft</a> </span> </li> <li style="PADDING-BOTTOM: 0px"> <span id="jbzxzhn" class="text2"> <a >Filenet</a> </span> </li> <li style="PADDING-BOTTOM: 0px"> <span id="bvppndj" class="text2"> <a s i-Flow</a> </span> </li> <li style="PADDING-BOTTOM: 0px"> <span id="rtnzvdj" class="text2"> <a s holosofx tool</a> </span> </li> <li style="PADDING-BOTTOM: 0px"> <span id="fplhjrf" class="text2"> <a >Intalio</a> </span> </li> <li id="nxbnzzn" class="text2"> <a >intelliFlow&nbsp;</a> </li> <li style="PADDING-BOTTOM: 0px"> <span id="ptnzbjx" class="text2"> <a >Lombardi</a> </span> </li> <li style="PADDING-BOTTOM: 0px"> <span id="btfznnd" class="text2"> <a s reactor</a> </span> </li> <li style="PADDING-BOTTOM: 0px"> <span id="nnlxhxf" class="text2"> <a s integration platform</a> </span> </li> <li style="PADDING-BOTTOM: 0px"> <span id="dnzfppv" class="text2"> <a >Q-Link</a> </span> </li> <li style="PADDING-BOTTOM: 0px"> <span id="pzdhrhp" class="text2"> <a s NetWeaver</a> </span> </li> <li style="PADDING-BOTTOM: 0px"> <span id="xprdrtr" class="text2"> <a >Savvion</a> </span> </li> <li style="PADDING-BOTTOM: 0px"> <span id="rlnzbbp" class="text2"> <a >Seebeyond</a> </span> </li> <li style="PADDING-BOTTOM: 0px"> <span id="vvhbvtj" class="text2"> <a s orchestration server</a> </span> </li> <li style="PADDING-BOTTOM: 0px"> <span id="rbfjfnt" class="text2"> <a >Staffware</a> </span> </li> <li style="PADDING-BOTTOM: 0px"> <span id="hjxtnbr" class="text2"> <a >Ultimus</a> </span> </li> <li style="PADDING-BOTTOM: 0px"> <span id="fplxrzp" class="text2"> <a >Versata</a> </span> </li> <li id="nxbnppx" class="text2" style="PADDING-BOTTOM: 0px"> <a s process modeling</a> </li> </ul> <h2>工具目录</h2> <ul> <li> <span id="xhdpxzf" class="text2"> <a >http://dmoz.org/Computers/Software/Workflow/Products/</a> </span> </li> <li id="nxtfhnv" class="text2"> <a >A collection of links to tools for modelling business processes and workflows maintained by Bart-Jan Hommes at TU Delft, the Netherlands.</a> </li> </ul> <h2>规范</h2> <p class="text2">&nbsp;&nbsp;&nbsp;&nbsp;Michael zur Muehlen作了一个所?strong>工作?/strong>相关规范的介l性的<a target="_blank">qȝ?/a>Q很不错?/p> <p class="text2">&nbsp;&nbsp;&nbsp;&nbsp;我同?a >John Pyke</a> ?<a >Wil van der Aalst</a> 的观点:<strong>工作?/strong>标准q处于制定阶Dc现在存在大量相互丛叠的规范?/p> <p class="text2">&nbsp;&nbsp;&nbsp;&nbsp;在我看来Q导致规范如此之多而同时每个规范的应用又很有限的原因是Q在<strong>工作?/strong>最基础概念上大家达成的p很少?strong>工作?/strong>是最Ҏ让你感到心烦的话题,因ؓ<strong>工作?/strong>本n的概念会和其他相x念和技术؜淆在一赗可以D一个具体的例子Q比如说<strong>工作?/strong>完全是对Web Service的补充。你可以通过暴露接口以Web Service的方式访问一?strong>工作?/strong>理pȝQ但是不能假定L必须通过Web Service接口讉K<strong>工作?/strong>pȝ接口。一些规范造成了这L假设。除了Web ServiceQ其他容易؜淆的概念和技术包括:Email、流E之间的通讯、Web应用和组l结构?/p> <p class="text2">&nbsp;&nbsp;&nbsp;&nbsp;?strong>工作?/strong>领域W一个致力于标准化工作的?a >Workflow Management Coalition</a> (WfMC)Q开始于 1993?WfMC发布?a >参考模?/a>很不错,它定义了<strong>工作管理系l?/strong>和其他相关部分之间的接口。WfMC的另一Ҏ果是<a >XPDL</a>规范?XPDL定义了描q?strong>工作?/strong>声明部分Qdeclarative partQ的XMLl构。我个h认ؓQ参考模型和XPDL是目前最好的规范?/p> <ul> <li> <span id="fntvhxf" class="text2"> <a > <b>JSR 207: Java的流E定?/b> </a> -是由<a >Java Community Process (JCP)</a> 发vQ如何在J2EE应用服务器中实现业务程自动化的标准。其基本模型是定义一个特D类型的ejb session beanQ作Z个业务流E的接口。JSR207标准化一lXML元标讎ͼmeta tagsQ作为JSR175元数据的一部分。JSR207 session bean和元数据作ؓejb容器的输入,然后生成l定Ҏ的代码,q些Ҏ在元数据中描q。此规范q处于初U阶D,没有发布M内容。专家小l成立于 March 2003. </span> </li> <li> <span id="dnhbxnl" class="text2"> <b> <a s</a> <a >XPDL</a> </b> - WfMC是由U?00家成员参加的l织Q基于参考模型定义了一pd的标准。参考模型用用例Quse caseQ的形式描述?strong>工作?/strong>pȝ和其他相关部分之间的关系。XPDL是WfMC制定的描qC务流E控制流Qcontrol flow Q的XML格式规范?</span> </li> <li> <span id="xhdftrf" class="text2"> <b> <a s</a> <a >BPSS</a> </b> - ebXML是协同流E的相关标准集,主要x不同公司程之间的通讯。可以看作EDI的承者?ebXML是由OASIS和UN/CEFACT联合发v?BPSS 是ebXML的规范,其中的概念和本文阐述的很接近?</span> </li> <li> <span id="vnrbflj" class="text2"> <b> <a s</a> BPML &amp; WSCI</b> - (Intalio, Sun, SAP, ...)BPMI 也定义了一个规?(BPMN) Q描q如何将&ldquo;可执?amp;rdquo;业务程可视化的表现?</span> </li> <li> <span id="ltpbvdj" class="text2"> <b> <a >BPEL</a> </b> - (Microsoft, BEA, IBM, SAP &amp; Siebel) BPEL׃pdZ消息交换的规范( XLANG, WSFL, BPMLQ生。还有一个将此规范引入到Java的提? <a >BPELJ</a>?此规范描q如何处理输入的消息Q而不是对程状态进行徏模。就像本文提到的Q它不是一个关于业务流E规格化定义的规范。简单的_可以它看作XML形式的编E语aQ提供将WSDL-Servicesl合成控制流的能力。顾名思义Q此规范重点在(也不只限于)Web Service?/span> </li> <li id="fhtnjhn" class="text2"> <b> <a s Workflow management facility</a> </b> - ZWfMC规范Q定义如何向CORBA转换? </li> <li> <span id="fztprzz" class="text2"> <b> <a >UML</a> </b> - UML定义了徏模和设计软gpȝ?cd。每cd包括可视化的表示和语义。其中活动图的目的就是要可视化的表现业务程?注意到在一个流E定义包含四个层ơ的内容Q我x出的是:一个流E定义包含的内容q远多于它的可视化部分。UML只涉及了可视化部分?</span> </li> <li> <span id="vpdpzzx" class="text2"> <b> <a >RosettaNet</a> </b> - RosettaNet主要定义了一l?Partner Interface Processes (PIP). 一?PIP 描述了一个有两个交易参与者、包括消息格式的程?</span> </li> <li id="tdrnbfl" class="text2"> <b> <a >UBL</a> </b> - The Universal Business Language (UBL)定义了用于不同组l间通讯的XML文档标准库。可以看作是对ebXML的补充,因ؓebXML只定义了建立l织间流E的基础。此规范的竞争对手是 RosettaNet标准中的一个子集?</li> </ul> <!-- =================================================================================== --> <h1> <font size="5">l论</font> </h1> <p> <span id="zzbxrhp" class="text2">&nbsp;&nbsp;&nbsp;&nbsp;我在本文中指?strong>工作?/strong>市场q属于年轻而又混ؕQyoung and wildQ的阶段Q但已经有可靠的工具存在? </span> </p> <ol> <li> <span id="jvptfvt" class="text2">到目前,像J2EE?NETq样成熟的集成^台才可用。在q样一个^Cq行</span> <span id="jjnjvbj" class="style5"> <strong> <font size="2">工作?/font> </strong> </span> <span id="bzdfrpp" class="text2"> <strong>理pȝ</strong>才能真正发挥<strong>工作?/strong>pȝ的附加h倹{这也是Z么只有在今天Q?strong>工作?/strong>pȝ才被重新发现?</span> </li> <li id="lfptxdd" class="text2">?'The case for workflow'一节,我们介绍了引?strong>工作管理系l?/strong>Q是如何同时在技术和业务上带来投资回报的? </li> <li> <span id="hjdxbrh" class="text2"> <strong>工作?/strong>在技术发展曲U的位置表明QBPM?strong>工作?/strong>中用的概念q需要明?</span> </li> <li id="dfznhxv" class="text2">&ldquo;开放源代码目&rdquo;?amp;ldquo;商业软g提供?amp;rdquo;列表中的工具Q可以让你获?strong>工作?/strong>?strong>业务程理</strong>的益处?</li> </ol> <p> <span id="blrxfpf" class="text2">&nbsp;&nbsp;&nbsp;&nbsp;从以上所有这些中能得到的l论是:</span> </p> <ol> <li> <span id="zlxjtjr" class="text2">规范q没有成熟,没有标准被大范围采用 </span> </li> <li> <span id="zbnzfld" class="text2">对于现在惛_用BPM的公司来Ԍ比较<strong>工作?/strong>pȝ是一个极其困隄挑战 </span> </li> <li id="bdfrvvd" class="text2">管标准化工作慢了一拍,可好?strong>工作管理系l?/strong>q是有的。这对于已经在挑?strong>工作?/strong>pȝ的组l来说是一个好消息?</li> </ol> <p class="text2">&nbsp;&nbsp;&nbsp;&nbsp;我希望本文能够激发你?strong>工作?/strong>的兴ƈ且能够ؓ你进行有效的Ҏ提供正确的背景知识?/p> <!-- =================================================================================== --> <h1 id="furtherreading"> <font size="5">Further reading</font> </h1> <ul> <li> <span id="xhvzbrx" class="text2"> <b> <a >Workflow Patterns</a> </b> -Wil van der Aalst教授?strong>工作?/strong>模式学术研究|站 </span> </li> <li> <span id="nhbnjhn" class="text2"> <b> <a >ebpml.org</a> </b> - 有关业务程理?strong>工作?/strong>的网站,信息量大、全?</span> </li> <li> <span id="rbnxrjx" class="text2"> <b> <a >Business process management group</a> </b> - The Business Process Management Group (founded in 1992) is a global business club exchanging ideas and best practice in business process and change management. </span> </li> <li> <span id="dnzdxpd" class="text2"> <b> <a >Enix</a> </b> - 英国程理N公司Q在|站上有不错的内?</span> </li> <li> <span id="tlfbltb" class="text2"> <b> <a >ebizq.net</a> </b> - Commercial community that has booths, webinars and other interesting stuff put together in a nice website. </span> </li> <li> <span id="ldrdpvd" class="text2"> <b> <a >An introduction to petri nets</a> </b> - The title says it all. </span> </li> <li> <span id="rtpjllr" class="text2"> <b> <a >Organizational Management in Workflow Applications</a>- An interesting article that discusses the relation between business processes and the organisational data involved. <li><span id="hrlpjzr" class="text2"><b><a >Web services orchestration</a></b> - an HP-paper that reviews the emerging technologies tools and standards. (Januari 2003) </span></li><li id="rvxtbhx" class="text2"><b><a >Business process standards for web services</a></b> - An article that discusses the various aspects involved in workflow and BPM. <h1><font size="5">Thanks</font></h1><span id="xrdhrhh" class="text2">&nbsp;&nbsp;&nbsp;&nbsp;</span>A special thanks for Gustavo Maciel Dias Vieira and Jef Vanbockryck for their valuable feedback on the draft versions of this article. <!-- START OF BORDER --><table cellspacing="25" cellpadding="8" width="100%" border="0"><tbody><tr><td style="BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-BOTTOM: black 1px solid" valign="top" width="100%"><p id="tombaeyens" width="100%"><b>about the author<br /><br />Tom Baeyens</b> leads the jBpm support organisation, specialized in Java, workflow and business process management. His expertises are both at a technical, analysis and at a business level. Tom is the founder of <a >jbpm.org</a>, an open source workflow engine. Tom is also a member of the expertgroup of the JSR 207: <a >Process Definition for Java</a>. Tom Baeyens can be contacted at <b><font family="courier new">tom at jbpm.org</font></b></p><!-- END OF BORDER --></td></tr></tbody></table></li></b> </span> </li> </ul>A special thanks for Gustavo Maciel Dias Vieira and Jef Vanbockryck for their valuable feedback on the draft versions of this article. <!-- START OF BORDER --></td> </tr> </tbody> </table> <br />文章来源:<a >http://www.01g.net/blog/default.asp?id=4</a><img src ="http://www.tkk7.com/clant/aggbug/41054.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/clant/" target="_blank">BPM </a> 2005-11-02 07:35 <a href="http://www.tkk7.com/clant/articles/41054.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]ZUML的工作流理pȝ分析http://www.tkk7.com/clant/articles/41055.htmlBPM BPM Tue, 01 Nov 2005 23:29:00 GMThttp://www.tkk7.com/clant/articles/41055.htmlhttp://www.tkk7.com/clant/comments/41055.htmlhttp://www.tkk7.com/clant/articles/41055.html#Feedback0http://www.tkk7.com/clant/comments/commentRss/41055.htmlhttp://www.tkk7.com/clant/services/trackbacks/41055.html随着C会生的流E化Q工作流L来重要的作用。根?WFMC 的定义,工作(WorkflowQ就是自动运作的业务q程部分或整体,表现为参与者对文g、信息或d按照规程采取行动Qƈ令其在参与者之间传递。简单地_工作就是一pd怺衔接、自动进行的业务zd或Q务。本文将详细介绍ZUML的工作流理pȝ分析与徏模?br />
1 工作概q?br />对工作流的研Iv源于二十世纪七十q代Q受|络的局限性,最初的工作系l主要以企业内部的文档处理ؓ丅R到了二十世U九十年代,随着Internet 技术的发展及应用,促进了电子商务应用的极大发展Q得公怸公司之间、公司内部部门之间以及子公司之间的业务相互处理成为可能,qؓ工作的发展带来了很大的机遇和挑战?br />
Ҏ国际有关l织的预,随着电子商务的发展,以数据处理ؓ中心的数据库产品已经q入E_发展期,以业务过E处理ؓ中心的工作流产品进入高速发展期。在国内Q随着企业理的规范化和规模的不断扩大Q企业的计算机管理将不仅仅停留在信息资源理上,而将向更复杂的业务过E管理迈q?br />
Z实现l织目标Q有关业务活动依时序或逻辑关系怺q接构成业务程。在业务开展过E中Q文档、信息或dQ依据组l规范在参与者之间传递、处理或执行。M业务程中,实现了基于计机辅助处理而达到自动化的全部或部分UCؓ工作。也是_工作是在计机辅助下全部或部分自动执行的工作过E,该过E可q行于异质、分布的q行环境中,供多人协同工作。工作流服务器是供业务流E可视化设计、管理和控制业务程的运行、ƈ在实际执行过E中可动态修改业务流E的一U计机软gq_。它使得快速开发、部|和q行企业业务理pȝ、电子商务系l等成ؓ可能。它也得企业在复杂多变的市场环境中Qؓ了快速适应市场的变化,在保存现有投资,现有pȝ不变的情况下Q迅速调整业务或商务程成ؓ可能。如它可应用在:采购处理、各U申诗订单与报h处理、员工W效考核、h事变动、贷Ƒ֮扏V烦赔处理、B2B、电子商务等?br />
2 工作管理系l概q?br />工作管理系l是定义、创建和执行工作的pȝQ它是一U特D的计算机支持的协同处理QCSCWQComputer Supported CooperativeWorkQY件系l?br />
工作管理系l的产生

工作管理系l(WfMSQWorkflowManagementSystemQ是以计机支持的分布式、协同工作业务流E的自动或半自动化ؓ研究目标的Y件系l。随着计算机网l,特别是Internet/Intranet 的迅猛发展和应用Q计机支持的分布式、协同工作的工作系l在企、事业单位中的地位显得越来越重要Q也有着qK的前景?br />
工作管理系l是定义、创建、执行工作流的系l。开发这cY件系l就是要协调分布式、协同处理的各个节点上的zdQ按照预定义的控制流E进行执行,以达到对它们的自动执行和有效的管理。开发这cY件有很大的重复性,工作管理系l就是将q类软g的公q程控制部分Q工作流q行服务、引擎)、管理部分和其他公共部分抽象出来QŞ成一UY件开发^収ͼ用户只需要将它们的控制流E描q出来,该^台Y件就可对它们的控制流E进行自动执行和有效地管理,而不需要对每次不同的应用重复地开发?br />
不同工作管理系l可以有不同的实现方法,不同的底层通讯机制Q应用的范围也可能有很大的差距,但所有的工作管理系l从用户的应用层上来看,通用工作管理系l应该能够提供以下三个方面的功能支持Q?br />
首先是徏造功能,卛_工作的业务程及组成这些业务流E的zdq行定义和徏模?br />
其次是运行控制功能,卛_一定的q行环境下,负责创徏、执行和控制工作实例,Ȁzȝ应的资源和应用,q完成过E中从一个活动到另一个活动的控制转移。它是整个工作流理pȝ的核心部分?br />
最后是q行交互功能Q即在工作流实例的运行中Q工作流理pȝ与工作流参与者(业务工作的参与者或控制者)及外部应用程序进行交互的功能?br />
׃信息技术的发展和日激烈的商业竞争Qh们不再满于独立、零散的办公自动化和计算机应用,而是需要综合的、集成化的解x案。作ZU对常规性事务进行管理、集成的技术,WfMS 的出现是必然的。它可以改进和优化业务流E,提高业务工作效率Q实现更好的业务q程控制Q提高顾客服务质量;提高业务程的柔性等?br />
3 工作管理系l的l成
一个完整的工作管理系l中主要包括如下七个部分的部件和数据?br />
a.q程定义工具

q程定义工具被用来创机可处理的业务q程描述。它可以是Ş式化的过E定义语a或对象关pL型,也可以是单地规定用户间信息传输的一l\由命令?br />
b.q程定义

q程定义Q数据)包含了所有业务q程能被工作执行子pȝ执行的必要信息。这些信息包括v始和l止条g、各个组成活动、活动调度规则、各业务的参与者需要做的工作、相兛_用程序和数据的调用信息等?br />
c.工作执行子pȝ和工作流引擎

工作执行子pȝ也称为(业务Q过E执行环境,包括一个或多个工作引擎。工作流引擎是WfMS 的核心Y件组元。它的功能包括:解释q程定义Q创E实例ƈ控制其执行,调度各项zdQؓ用户工作表添加工作项Q通过应用E序接口QAPIQApplication Program InterfaceQ调用应用程序,提供监督和管理功能等。工作流执行子系l可以包括多个工作流引擎Q不同工作流引擎通过协作共同执行工作?br />
d.工作控制数?br />
指被工作执行子pȝ和工作流引擎理的系l数据,例如工作实例的状态信息、每一zd的状态信息等?br />
e.工作相x?br />
指与业务q程相关的数据。WfMS 使用q些数据定工作实例的状态{U,例如q程调度决策数据、活动间的传输数据等。工作流相关数据既可以被工作引擎用,也可以被应用E序调用?br />
f.工作表和工作表处理程?br />
工作表列Z与业务过E的参与者相关的一pd工作,工作表处理程序则对用户和工作表之间的交互q行理。工作表处理E序完成的功能有Q支持用户在工作表中选取一个工作项Q重新分配工作项Q通报工作的完成Q在工作被处理的过E中调用相应的应用程序等?br />
g.应用E序和应用数?br />
应用E序可以直接被WfMS 调用或通过应用E序代理被间接调用。通过应用E序调用QWfMS 部分或完全自动地完成一个活动,或者对业务参与者的工作提供支持。与工作控制数据和相关数据不同Q应用数据对应用E序来讲是局部数据,对WfMS 的其他部件来说是不可见的?br />


术语解释

? 工作管理系l术语解?br />
术语Q羃?br />??br />
q程定义
pE定义工h定义的一个工作流q程

q程实例
q程定义q行之后转化E实例,一个过E定义可以生多个过E实?br />
zd
一个相对独立的工作的描qͼ它是q程定义的一个重要组成部?br />
zd实例
zdq行之后的一个实?br />
工作?br />在一个活动实例中Q工作流参与者所需执行的工?br />
工作列?br />一个参与者所负责的所有工作项的详l描q?br />
信牌?br />zd之间传递信息的驿站

转移
从活动到信牌或从信牌箱到活动,描述信牌׃zd之间关系的连?br />
工作控制数?br />表示q程实例、活动实例的状态信?br />
工作相x?br />与业务过E相关的数据Q工作流引擎Ҏ它们来确定过E实例的状态{U?br />
日志数据
pȝ中所有发生的事g及相应数据的记录

q行服务?br />负责整个q程的运行、调度、查询及日志的记录等

q程定义状?br />表示q程定义目前所处的状态,如:是否已发布等

q程实例状?br />表示q程实例目前所处的状态,如:q行、挂L

zd实例状?br />表示zd实例目前所处的状态,如:q行、挂L

工作状?br />表示工作目前所处的状态,如:q行、挂L

引擎
q行服务器的核心Q负责过E实例的执行、调?br />
引擎容器
包含了多个引擎,q提供多引擎理功能





4 工作管理系l功能分?br />前面已经介绍q,一个完整的通用工作管理系l应当包括七个部Ӟq里限于幅的原因,只对工作管理系l的核心部分Q工作流执行子系l和工作引擎进行分析?br />
工作管理系l核心功?br />
工作管理系l的核心l成部分UCؓ工作执行子pȝQ它为创建、初始化和执行过E实例提供了一个运行环境?br />
在一个工作流执行子系l中可以包括一个或多个工作引擎,前者是一U集中式的实现方式,而后者是一U分布式的实现方式。分布式的实现方式又可以分ؓ同构和异构两U不同的情况。所谓同构是指在一个运行服务系l中包含了多个兼容的工作引擎;所谓异构是指在工作管理系l中包含了两个以上异构的工作执行子pȝ?br />
工作引擎是工作管理系l的核心软g部g。它的主要功能有Q解释过E定义,控制q程实例Q创建、激zR挂赗终止等Q,按照q程定义已确定的业务逻辑调用各项zdQؓ用户工作表添加工作项Q维护工作流控制数据和工作流相关数据Q调用应用程序,提供监督Q管理和审计功能?br />
工作执行子pȝ涉及四种数据Q工作流控制数据、工作流相关数据、组l?角色模型数据和工作表?br />
W一U,工作控制数据。指只由工作执行子pȝl护的内部控制数据,主要用于表示q程实例与活动实例的状态信息?br />
W二U,工作相x据。指与业务过E相关的数据Q他们由应用E序或由用户通过工作处理来产生和更斎ͼ工作引擎根据相x据来定q程实例的状态{U,例如q程调度决策数据、活动间的传输数据等?br />
W三U,l织/角色模型数据。是描述l织l构的数据,主要用于定工作的执行者?br />
W四U,工作表。列Z与工作流参与者相关的一pd工作V?br />
文章来源:http://www.01g.net/blog/default.asp?id=3

BPM 2005-11-02 07:29 发表评论
]]>
[导入]工作管理系l的分类http://www.tkk7.com/clant/articles/41056.htmlBPM BPM Tue, 01 Nov 2005 23:25:00 GMThttp://www.tkk7.com/clant/articles/41056.htmlhttp://www.tkk7.com/clant/comments/41056.htmlhttp://www.tkk7.com/clant/articles/41056.html#Feedback0http://www.tkk7.com/clant/comments/commentRss/41056.htmlhttp://www.tkk7.com/clant/services/trackbacks/41056.html
  1、结构化的与卛_?
  l构化工作流指的是在实际工作q程中会反复重复、严格按照某个固定的步骤q行的业务过E。定义此U工作流所需要的各种cd的信息可以通过对业务过E进行详l的分析而得刎ͼ从而得到完整的q程定义q在以后的应用过E中反复使用。大量的办公E序Q如公文处理、审批等都属此类。即席工作流则是针对那些重复性不是很强或没有重复性的工作程的,关于q类程执行所需的有兛_?如参加者等)事先无法定Q而必Lq到q程实例q行时才能确定,同时在执行过E中间还可能会发生一些意外的情况。这U动态多变的特点在提供更高灵zL的同时Q也E的建模与执行带来更多的复杂性?

  2、面向文档的与面向过E的

  前者的侧着点在于将电子形式的文档、图像等在有关的人员之间q行分发Q以便能够得C同h的处理与审阅。现有的文档理与映像管理系l均属此cR在面向q程的WfMS中,工作被描述成一序列执行环节。与各环节相应都有待处理的数据对象。各环节的数据对象可以按不同的方式分发到其他环节中去Q如可以数据对象的g为控制条件、或者依此数据对象组装成其他的数据对象等。高端的WfMS一般都属此cȝl?

  3、基于邮件和Z数据?

  前者用电子邮件来完成q程实例执行q程中消息的传递、数据的分发与事件的通知。低端的pȝ所使用的经常就是此U方法,它可以充分发挥电子邮件系l在q域环境下的数据分发功能Q但整个pȝ运行于一U松散耦合的模式下。在Z数据库的WfMS中,所有的数据都保存在某种cd的DBMS中,q程的执行实际上是对这些数据的查询与处理。高端的大规模系l所使用的一般都是此U方法?

  4、Q务推动的与目标拉动的

  前者指的是从过E的开始逐步C个环节一个环节的执行Q当某个zd实例被处理完之后Q后l的有关zd被创徏q被Ȁz,由此直至整个工作程的完成。这是目前大多数面向q程的WfMS所使用的执行方式。而在目标拉动的WfMS中,一个业务流E被看成是一个目标。过E实例执行时Q该目标被分解得到多个怺之间按一定约束条件的兌h的可执行的多个环节,其中各环节还可以当成是子目标而进一步进行分解。在各环节均执行完毕之后Q整个过E也完成了。目标拉动是一U全新的执行方式Q下一代的WfMS具有此U特征。应该说明的是:上述分类只是从不同的角度入手的。一般来_后面那些特点给WfMS带来更好的灵zL,同时也将成ؓ那些能够支持跨机构的大规模复杂工作流理、面向关键Q务的WfMS不可~少的特征?

文章来源:http://www.01g.net/blog/default.asp?id=2

BPM 2005-11-02 07:25 发表评论
]]>
[导入]工作之大局?/title><link>http://www.tkk7.com/clant/articles/41057.html</link><dc:creator>BPM </dc:creator><author>BPM </author><pubDate>Tue, 01 Nov 2005 23:22:00 GMT</pubDate><guid>http://www.tkk7.com/clant/articles/41057.html</guid><wfw:comment>http://www.tkk7.com/clant/comments/41057.html</wfw:comment><comments>http://www.tkk7.com/clant/articles/41057.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/clant/comments/commentRss/41057.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/clant/services/trackbacks/41057.html</trackback:ping><description><![CDATA[工作之大局?br />1. 从奴隶社会到徏后期<br />工作?WorkFlow)的概忉|在现代信息系l的中逐步形成的,它有一个从局部到整体、从初到高U、从单到复杂、从奴隶C会到封建盛世的发展q程Q按其发展历E,我们一般把它分Z个阶D?<br /><br />H?EDF(电子数据?阶段<br /><br />EDF(电子数据?阶段是工作流的奴隶社会阶Dc此时的工作在信息技术中的应?仅着g利用信息技术减Mh们在程中的计算强度,如设计一个流E用来协调多个会计统计帐目。所?EDF最主要的特Ҏ仅对企业单项业务q行处理,基本不涉及管理的内容?br /><br />H?TPF(事务处理?阶段<br /><br />TPF(事务处理?阶段是工作流的封建初期。TPFq没有Ş成对企业的全局业务的管?而着g对企业局部业务的理,比如,设计一套工作流E?来管理物资的采购和供应?br /><br />H?IMF(信息理?阶段<br /><br />当今的工作流已经发展到封建后?------IMF(信息理?阶段, IMF对企业业务的全局的整体性的理。在q个阶段,工作就是ؓ了完成同一目标而相互衔接、自动进行的一pd业务zd或Q务。目?工作技术与信息技术以及企业管理紧密结?已经悄悄渗入MISpȝ、ERPpȝ和CRMpȝ{企业关键pȝ?q迅速成些系l的核心。在q个阶段,保皇zַ作流l历了大发展,革新zַ作流也风涌而现?br /><br />2. 保皇z与革新z?br />与其它信息技术相?工作技术属于较新的一?它现在仍处于标准的制定阶D?目前已有的标准按采用的技术分Z大派?W一z是保皇z?ZUXML技?W二z是革新z?ZWeb服务技术。保皇派与革新派打得隑ֈ难解,所?现在仍有一些工作流引擎没有采用M标准而独立实?也就是说,它们不依靠保皇派,也不依靠革新z?br /><br />2.1 保皇zֈ?br />H?XPDLQXml Process Definition LanguageQ?br /><br />XPDL是保皇派最得h心的一z?因ؓ它是太子。在工作领域第一个致力于标准化工作的是Workflow Management Coalition (WfMC)Q它成立?993q?994q?1月,wfmc发布了工作流理pȝ的参考模型。参考模型提Z五类接口Q有兌E模型的定义则构成了接口一的核心内宏V接口一早期的标准ؓWPDLQWorkflow Process Definition LanguageQ,后来,q一接口的规范变更ؓXPDL。XPDL是至今工作流领域最为重要的一个标?目前大多数工作流引擎是依据该标准设计开发的?br /><br />H?BPML(Business Process Model Language)<br /><br />因ؓ对太子派的工作方式不满意QBPMI发布BPML规范,成立新的八爷党。由于八爷党发展的非怹快,WfMC和BPMI?002q??6日宣布将合作制定业务程和工作流标准Q即采用BPML来描q工作流q程Q同旉用XPDL所定义的工作流模型?br /><br />H?OMG的Workflow Management Facility<br /><br />四爷OMG是支持太子的,不过四爷q个人很有报?在其他领域也做的有声有色。四爷OMG的Workflow Management Facility联合太子的WfMC规范Q定义如何将工作向CORBA转换---要知? CORBA可是四爷的强V现在很多老百姓支持四爷OMG的Workflow Management Facility。四爯?发展了自q势力,又不惹太子生?真是妙啊!<br /><br />保皇zօ它分支势力很?q里׃多说了?br /><br />2.2 革新zֈ?br />H?WSCI<br /><br />2002q??6日,BEA,Intalio,SAP,Sun四家公司提出了基于xml的WSCI规范Q推动Web服务q入了一个全新的阶段。这个规范主要描qC一个参与和其它服务q行协作交互的Web服务所交换的消息流。WSCI是第一个革新派,后来又发展了几个新的革新z?<br /><br />如WSFL(属IBM),Xlang(属MS),因有天生~陷,均没有很大v艌Ӏ?br /><br />H?ebXML<br /><br />ebXML是一l支持模块化电子商务框架的规范。ebXML支持一个全球化的电子市场,它得Q意规模的企业通过交换ZXML的信息,不受地域限制地接z和处理生意。ebXML是联合国QUN/CEFACTQN易促q和电子商务中心Q和OASISQ结构化信息标准发展l织Q共同倡导、全球参与开发和使用的规范。由于现在老百姓都不喜Ƣ抬着去换米,而喜Ƣ在|上来个B2C,所以革新派ebXML最q发展很快?br /><br />H?BPEL<br /><br />2002q??日,Microsoft, BEA, IBM, SAP & Siebel联合提交发布了BPEL规范?BPEL联合了一pd革新z?保皇z֊量( XLANG, WSFL, BPMLQ。此规范描述如何处理输入的消息,它不是一个关于业务流E规格化定义的规范。简单的_可以它看作XML形式的编E语aQ提供将WSDL-Servicesl合成控制流的能力。顾名思义Q此规范重点在(也不只限于)Web Service?br /><br />q有其它的革新派如RosettaNet{,因ؓ势力很小,q里也不多说了?br /><br />3. 大户人家<br />q里所谈的大户人家指工作流领域的商业Y件供应商Q他们都背靠靠山,或穷或富。我们这里按地区来划分他们?br /><br />3.1中国之外的大?br />H?BEA 的WLI<br /><br />H?Fujitsu?i-Flow<br /><br />H?IBM?Holosofx<br /><br />H?SAP 的NetWeaver<br /><br />H?Sonic 的Orchestration Server<br /><br />H?Ultimus<br /><br />H?Versata<br /><br />q些人家大都非常富有;如果需?误己搜索他们的信息?br /><br />3.2国内的大户h?br />H?信雅辄SunFlow q个公司留给我的印象很好,包括他们的ȝ理石怅R?br /><br />H?西安协同的协同工作流<br /><br />H?上v东兰的DLFlo<br /><br />H?东南融通intelliFlowQ{载者加Q?br /><br />q里对公司就不多介绍?否则有做q告的嫌疑J。本人有国内工作品的比较报告,大家需要可以给我发邮g索取?br /><br />4. 寒门傲骨<br />q里的寒门傲骨指的是开源工作流引擎的实玎ͼ寒门子弟也是有政d向的,我们q是按保皇派和革新派来区分他们,而自由派指没有按固定的标准来实现的工作流门派?br /><br />4.1保皇z֯?br />H?OFBiz<br /><br />OFBiz最主要的特ҎOFBiz提供了一整套的开发基于Java的web应用E序的组件和工具。其中包括实体引? 服务引擎, 消息引擎, 工作引? 规则引擎{。OFBiz先前的工作流引擎ZWfMC和OMG的规范,使用XPDL作ؓ程定义语言,也就是说,它是支持太子XPDL?而且和十三爷OMG的关p非怹好。OFBiz新版的工作流引擎采用Shark工作引?我们不徏议再d习OFBiz自n的工作流引擎?br /><br />H?OBE<br /><br />OBE 是由Adrian PriceL开发的一个开放源码的Java工作引擎,支持WfMC规范Q包括接?QXPDLQ、接?/3QWAPIQ和接口5。OBE主要ZJ2EE实现。OBE的接?实现得非常好,可惜,OBE的蝲体公司Zaplet已经于前不久被合qӞ合ƈ后的公司没有l箋发展OBE的打。Adrian Priced了原来的公司,投奔我们前面说过的大户Versata。Versata也不打算l箋OBE。OBE至今没有release版,很是可惜?br /><br />H?Shark<br /><br />Shark是完全根据WFMC规范实施的,可扩展功能的工作引擎,它利用xpdl来定义流E,同时q包括服务器端的用于zd节点执行的WFMC工具代理API。Shark中的每个lg例如持久层,事物理器,脚本引擎Q流E库Q都是可以按照标准实施运用的Q而且q可以被具体目的模块扩展和替换。Shark和XPDL定义工具的事实标准JAWE同出名门,市场前景被很多h看好。OFBiz新版的工作流引擎采用Shark工作引擎,OBE的蝲体公司Zaplet被合qӞ对Shark的发展将很有利?004q??日,shark发布1.0版本,对它的发展无疑是一剂强心针。笔者从Shark发展的早期就在国内力推它,有幸成ؓShark工作引擎在国内的主要推q者之一(<a target="_blank">http://blog.csdn.net/hongbo781202/</a>),感到十分荣幸。Shark的讨?a target="_blank">http://211.95.124.238:22/cgi-bin/forums.cgi?forum=24</a>?br /><br />4.2 革新z֯?br />H?OpenebXML<br /><br />OpenebXML目致力于提供一个ebXML框架Q主要支?UN/CEFACT和OASIS发布的ebXML规范2.0版?br /><br />H?Bonita<br /><br />Bonita是一个符合WfMC规范、灵zȝ协同工作系l。BonitaZ览器、用SOAP和XML数据l定技术的Web Services装了已有的工作业务方法ƈ它们以ZJ2EE的Web Service形式发布?br /><br />H?Twister<br /><br />Twister的目标是提供C代、易集成、应用Java领域中最新成果、面向B2B的工作流解决Ҏ。流E引擎基于BPEL业务程规范和Web Service标准?br /><br />H?ActiveBpel<br /><br />ActiveBPEL引擎是一个于今年7月发布的健壮的运行时环境,它能执行用户按BPWL4WS规范~写的业务流E。ActiveBPEL引擎由Active Endpoints公司开发和l护,该公司同时在它的多个商业产品中用了该技术。本人将密切观注ActiveBPEL引擎的技术发展和产品状态?br /><br />4.3 自由z֯?br />H?OSWorkflow<br /><br />OSWorkflow的最大特Ҏ灉|<br /><br />H?OpenWFE<br /><br />OpenWFE是一个开放源码的Java工作引擎?它的思想来源?SchemeQ包括可升的三个组Ӟ引擎、工作列表和Web界面?br /><br />HjBpm<br /><br />jBpm是tom baeyens~写的一个灵zd扩展的工作流理pȝ。jBmp工作流应用开发的便利性和杰出的企业应用集成(EAIQ能力结合了h。jBmp包括一个Web应用E序和一个日E安排程序。jBmp是一lJ2SElgQ可以作为J2EE应用集群部v。国内目前有部分人研IjBpm?br /><br />5 大局?br />目前是封建社会后期,以太子党XPDL为首的保皇派q将辉煌一D|间。我个h认ؓQ在Ofbiz投靠SharkQ强势派OBE倒台Q自由派不得人心的情况下QShark工作引擎依靠与XPDL定义工具JAWE的兄弟关p,坐上保皇派头把交椅?br /><br />目前Q革新派和保皇派的争夺ƈ不激烈。因为在现在的情况下, 革新z根基Web服务q不劳靠Q在老百姓中的媄响不太大Q所以革新派只求从保皇派嘴边分口食就行了。但随着C会的发? Web服务越来越行Q现在,MS/IBM/BEA{跨国巨头越来越LBPEL4WS标准Qƈ且已l发布基于BPEL4WS标准的系列品,而且Q他们还LIntegration/Portal的概念,q些概念把工作带入资本主义阶Dc?br /><br /><br />文章来源:<a >http://www.01g.net/blog/default.asp?id=1</a><img src ="http://www.tkk7.com/clant/aggbug/41057.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/clant/" target="_blank">BPM </a> 2005-11-02 07:22 <a href="http://www.tkk7.com/clant/articles/41057.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>лǵվܻԴȤ</p> <a href="http://www.tkk7.com/" title="亚洲av成人片在线观看">亚洲av成人片在线观看</a> <div class="friend-links"> </div> </div> </footer> վ֩ģ壺 <a href="http://91haikala.com" target="_blank">ҳվѹۿ</a>| <a href="http://51porn3.com" target="_blank">ĻȫѰƵ</a>| <a href="http://woaisouluo.com" target="_blank">޾ƷƵѹۿ</a>| <a href="http://tvnxl.com" target="_blank">߳˾Ʒ</a>| <a href="http://58f8.com" target="_blank">լa</a>| <a href="http://miya77772.com" target="_blank">ձվ</a>| <a href="http://www-34595.com" target="_blank">AƵվ</a>| <a href="http://laxdz.com" target="_blank">רëƬ߳ˮ</a>| <a href="http://5shitou.com" target="_blank">AVۺɫһ</a>| <a href="http://5g5t.com" target="_blank">þwww˳_Ƭ</a>| <a href="http://qqcnm.com" target="_blank">˳ɴƬ߹ۿŵӰ</a>| <a href="http://srvz83.com" target="_blank">ƷۺϾþĻ</a>| <a href="http://8833655.com" target="_blank">ŷ޾ƷƵ߹ۿ</a>| <a href="http://48eh.com" target="_blank">caopormѹƵ</a>| <a href="http://rp71.com" target="_blank">Ů߲ͬ</a>| <a href="http://qu41.com" target="_blank">þþþŮۺ</a>| <a href="http://tianwu520.com" target="_blank">91Ʒѹ</a>| <a href="http://mm1131.com" target="_blank">ҹAV</a>| <a href="http://591se591se.com" target="_blank">һƵ</a>| <a href="http://aabbcc567.com" target="_blank">Ļղapp</a>| <a href="http://eigakyuka.com" target="_blank">þþƷȫۿ</a>| <a href="http://kutuwo.com" target="_blank">˳߲VA</a>| <a href="http://cnpc1002.com" target="_blank">AVպۺһ</a>| <a href="http://27simnjingmiguan.com" target="_blank">ۺAVһ</a>| <a href="http://8v4y.com" target="_blank">ȫaëƬ**Ƶ</a>| <a href="http://58f8.com" target="_blank">99þþùƷţţ</a>| <a href="http://ldcatv.com" target="_blank">avavƷר</a>| <a href="http://mironpress.com" target="_blank">avվѹۿ</a>| <a href="http://www-006688.com" target="_blank">պƷרѲ</a>| <a href="http://wkk3.com" target="_blank">ĻƵ</a>| <a href="http://haiwaizhuyun.com" target="_blank">Ļ</a>| <a href="http://scycho.com" target="_blank">޵Ӱһ</a>| <a href="http://ymiwang.com" target="_blank">þԭav</a>| <a href="http://jcss99.com" target="_blank">ˬˬƵѿԿ</a>| <a href="http://4p5e.com" target="_blank">ѵӰվ</a>| <a href="http://txtmp3.com" target="_blank">߲˳ëƬ</a>| <a href="http://huakangweicai.com" target="_blank">aëƬ</a>| <a href="http://www431234.com" target="_blank">A벥ëƬһ</a>| <a href="http://www55xx.com" target="_blank">Ƶ߹ۿƵ</a>| <a href="http://newbuybay.com" target="_blank">޵һAAAAAƬ</a>| <a href="http://anhuish.com" target="_blank">AVҹ丣㽶149</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>