﻿<?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-clant-文章分类-BPEL</title><link>http://www.blogjava.net/clant/category/17958.html</link><description /><language>zh-cn</language><lastBuildDate>Wed, 28 Feb 2007 07:54:19 GMT</lastBuildDate><pubDate>Wed, 28 Feb 2007 07:54:19 GMT</pubDate><ttl>60</ttl><item><title>  Oracle  产品白皮书</title><link>http://www.blogjava.net/clant/articles/85168.html</link><dc:creator>BPM </dc:creator><author>BPM </author><pubDate>Sun, 03 Dec 2006 03:13:00 GMT</pubDate><guid>http://www.blogjava.net/clant/articles/85168.html</guid><wfw:comment>http://www.blogjava.net/clant/comments/85168.html</wfw:comment><comments>http://www.blogjava.net/clant/articles/85168.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/clant/comments/commentRss/85168.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/clant/services/trackbacks/85168.html</trackback:ping><description><![CDATA[
		<a href="http://www.oracle.com/global/cn/documentation/index.html">http://www.oracle.com/global/cn/documentation/index.html</a>
<img src ="http://www.blogjava.net/clant/aggbug/85168.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/clant/" target="_blank">BPM </a> 2006-12-03 11:13 <a href="http://www.blogjava.net/clant/articles/85168.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>各种企业级框架</title><link>http://www.blogjava.net/clant/articles/85166.html</link><dc:creator>BPM </dc:creator><author>BPM </author><pubDate>Sun, 03 Dec 2006 03:08:00 GMT</pubDate><guid>http://www.blogjava.net/clant/articles/85166.html</guid><wfw:comment>http://www.blogjava.net/clant/comments/85166.html</wfw:comment><comments>http://www.blogjava.net/clant/articles/85166.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/clant/comments/commentRss/85166.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/clant/services/trackbacks/85166.html</trackback:ping><description><![CDATA[
		<a href="http://www.open-open.com/16.htm">http://www.open-open.com/16.htm</a>
<img src ="http://www.blogjava.net/clant/aggbug/85166.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/clant/" target="_blank">BPM </a> 2006-12-03 11:08 <a href="http://www.blogjava.net/clant/articles/85166.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>面向服务的体系结构技术(SOA)中心</title><link>http://www.blogjava.net/clant/articles/85160.html</link><dc:creator>BPM </dc:creator><author>BPM </author><pubDate>Sun, 03 Dec 2006 02:42:00 GMT</pubDate><guid>http://www.blogjava.net/clant/articles/85160.html</guid><wfw:comment>http://www.blogjava.net/clant/comments/85160.html</wfw:comment><comments>http://www.blogjava.net/clant/articles/85160.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/clant/comments/commentRss/85160.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/clant/services/trackbacks/85160.html</trackback:ping><description><![CDATA[
		<a href="http://www.oracle.com/technology/global/cn/tech/soa/index.html">http://www.oracle.com/technology/global/cn/tech/soa/index.html</a>
<img src ="http://www.blogjava.net/clant/aggbug/85160.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/clant/" target="_blank">BPM </a> 2006-12-03 10:42 <a href="http://www.blogjava.net/clant/articles/85160.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Web services 规范</title><link>http://www.blogjava.net/clant/articles/85154.html</link><dc:creator>BPM </dc:creator><author>BPM </author><pubDate>Sun, 03 Dec 2006 02:32:00 GMT</pubDate><guid>http://www.blogjava.net/clant/articles/85154.html</guid><wfw:comment>http://www.blogjava.net/clant/comments/85154.html</wfw:comment><comments>http://www.blogjava.net/clant/articles/85154.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/clant/comments/commentRss/85154.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/clant/services/trackbacks/85154.html</trackback:ping><description><![CDATA[
		<a href="http://www-128.ibm.com/developerworks/cn/webservices/ws-spec/index.html">http://www-128.ibm.com/developerworks/cn/webservices/ws-spec/index.html</a>
<img src ="http://www.blogjava.net/clant/aggbug/85154.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/clant/" target="_blank">BPM </a> 2006-12-03 10:32 <a href="http://www.blogjava.net/clant/articles/85154.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java版 工作流 实现技术大比拼</title><link>http://www.blogjava.net/clant/articles/85150.html</link><dc:creator>BPM </dc:creator><author>BPM </author><pubDate>Sun, 03 Dec 2006 02:07:00 GMT</pubDate><guid>http://www.blogjava.net/clant/articles/85150.html</guid><wfw:comment>http://www.blogjava.net/clant/comments/85150.html</wfw:comment><comments>http://www.blogjava.net/clant/articles/85150.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/clant/comments/commentRss/85150.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/clant/services/trackbacks/85150.html</trackback:ping><description><![CDATA[ Java版 工作流
<p>　　Shark</p><p>　　Shark是体系和功能最为复杂的代表。它是另一款遵循WfMC的XPDL标准开源工作流引擎，并且同时遵循OMG组织的Workflow Management Facility规范。在所有开源工作流引擎中，Shark的体系最为完备和复杂。其一直秉承着“模块化”的思想，所以比较容易扩展。但是自从被Together公司收购后，Shark的商业化色彩已经越来越浓，改称为Together Workflow Server，并仅以Community Edition的形式提供了部分开源代码供参考。</p><p>　　OSWorkflow</p><p>　　OSWorkflow是最轻量型的代表，也是一款非常灵活和低级别定位的工作流引擎的实现框架。低级别定位的意思是说，它不是定位在解决流程模型对象和运转场景，而是提供一套可维护调度的机制，供开发人员自主扩展。这个维护流程调度机制OSWorkflow选择的是基于行为(Action)的FSM理论，所以OSWorkflow更像是一个复杂而灵活的有限状态调度机。</p><p>　　OSWorkflow在国内项目应用得较多，很多国内的简易审批流程项目都是基于其引擎二次开发而来。这主要是由于OSWorkflow是基于Action驱动的，而国内的客户也很容易接受这样的操作习惯。但OSWorkflow所依赖的FSM模型对于分支、聚合、子流程的支持度很低，这一点在实施过程中需要注意。</p><p>　　jBpm</p><p>　　jBpm是最适合扩展的代表，是在所有开源引擎中最适宜被商业化应用的一款。首先其流程建模模型是基于Activity Diagram(活动图)的，并在引擎构建上融入了FSM和PetriNet思想，所以其内核和根基比较牢固扎实。其次，自从被JBoss收购后，其3. x系列的结构更加趋于微内核，Plug-in思想也更加深入。其同时还提供了对BPEL扩展，存储支持JBoss Hibernate实现，集成了JBoss seam，规则引擎准备采用JBoss rules，并准备集成JBoss Messaging。这样，不论从内核和外围应用，jBpm都具有了强劲的动力。</p><p>　　另外，jBpm对Token的应用也很有特色，巧妙地利用Parent-Child Token的机制处理分支、父子流程等复杂应用场景。这个设计思想很值得大家学习参考。</p><p>　　YAWL</p><p>　　YAWL是算法和模式最值得研究的代表，它是Alast力主倡导的一款基于PetriNet建模的工作流引擎，其将PetriNet的Token与And、XOR、OR算法进行了融合，并对Workflow Patterns(工作流模式)中所有模式提供支持。但YAWL本身仅是一个研究性项目，所以其结构和实现缺少了商业化应用的特点。但有必要研究一下YAWL，一方面可以加深对工作流模式的理解，另一方面，YAWL的一些建模思想、处理算法很值得推敲和吸纳。</p><p>　　ActiveBPEL</p><p>　　ActiveBPEL 是BPEL引擎的代表，也是一款可执行BPEL4WS规范的开源流程引擎，其结构和实现方式具有很高的参考价值。目前国内很多正在开发基于BPEL产品的中小型软件厂商，其实现的很多基础性内容和思想都参考自ActiveBPEL。受目前国内中小型客户对流程需求的限制，基于BPEL的开源引擎或小型产品被市场接受度还很低。但BPEL所围绕的业务流程及流程整合应用是一个发展趋势。</p><img src ="http://www.blogjava.net/clant/aggbug/85150.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/clant/" target="_blank">BPM </a> 2006-12-03 10:07 <a href="http://www.blogjava.net/clant/articles/85150.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>把业务流程从操作中剥离出来</title><link>http://www.blogjava.net/clant/articles/85149.html</link><dc:creator>BPM </dc:creator><author>BPM </author><pubDate>Sun, 03 Dec 2006 02:01:00 GMT</pubDate><guid>http://www.blogjava.net/clant/articles/85149.html</guid><wfw:comment>http://www.blogjava.net/clant/comments/85149.html</wfw:comment><comments>http://www.blogjava.net/clant/articles/85149.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/clant/comments/commentRss/85149.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/clant/services/trackbacks/85149.html</trackback:ping><description><![CDATA[
		<div class="center">
				<h4>摘要:</h4>迄今为止，web应用程序开发的焦点在于将业务逻辑封装成服务。在这篇文章中,Masayuki Otoshi建议将业务流程也剥离出来,就像那些业务过程管理/工作流产品一样，应用基于XML的文档来描述业务。但是这里他深入到了更低的粒度-操作。这篇文章同时展示了可继承的XML如何容许开发人员应用面向对象的概念去有效的表示流程 </div>
		<div class="right">
				<div class="help">
						<h4>工具箱</h4>
						<a href="http://www.matrix.org.cn/favorite.shtml?type=article&amp;title=%25E6%258A%258A%25E4%25B8%259A%25E5%258A%25A1%25E6%25B5%2581%25E7%25A8%258B%25E4%25BB%258E%25E6%2593%258D%25E4%25BD%259C%25E4%25B8%25AD%25E5%2589%25A5%25E7%25A6%25BB%25E5%2587%25BA%25E6%259D%25A5&amp;url=resource%2Farticle%2F44%2F44500_Business%2BServices.html">本站收藏</a>
						<br />
						<a onclick="javascript:location.href='http://del.icio.us/post?&amp;url='+encodeURIComponent(location.href)+'&amp;title='+encodeURIComponent(document.title)" href="http://www.matrix.org.cn/resource/article/44/44500_Business+Services.html#">美味书签</a>
						<br />
						<a href="http://www.matrix.org.cn/resource/article/44/44500_Business+Services.html#avote">投票评分</a>
						<br />
						<a href="http://www.matrix.org.cn/resource/article/44/44500_Business+Services.html#areview">发表评论</a>
						<br />
						<a title="点击后直接粘贴即可" onclick="copyLink();" href="http://www.matrix.org.cn/resource/article/44/44500_Business+Services.html#">复制链接</a>
						<br />
				</div>
		</div>
		<!-- end of summary line -->
		<div class="overflow" id="text">
				<b>
						<span style="FONT-SIZE: 16px">在操作层协调java服务简介</span>
				</b>
				<br />
				<br />
				<br />
				<b>
						<span style="FONT-SIZE: 16px">摘要</span>
				</b>
				<br />
				<br />迄今为止，web应用程序开发的焦点在于将业务逻辑封装成服务。在这篇文章中,Masayuki Otoshi建议将业务流程也剥离出来,就像那些业务过程管理/工作流产品一样，应用基于XML的文档来描述业务。但是这里他深入到了更低的粒度-操作。这篇文章同时展示了可继承的XML如何容许开发人员应用面向对象的概念去有效的表示流程。<br /><br />在开发web应用程序的过程中，我们经常看到业务流程和逻辑在action中一起被实现，比如JSF中的后台bean和Struts中的action类。在现有框架的帮助下，比如EJB和Spring,我们能把业务逻辑剥离出来，但是业务流程始终还是嵌入在具体操作中。<br /><br />BPM(业务流程管理)标准，比如BPMN(业务流程建模符号)和BPEL（业务流程执行语言），提供了一种分离业务流程的途径，那就是应用基于XML文档来描述这种分离。这种方法的另外一个好处可以在SOA(面向服务架构)基础上设计应用程序。但是，这种方法使得在web应用程序不能很好地应用action.actoin的粒度对于BPM/工作流产品来讲太低了。他们通常专注于更高的业务范围，如B2B应用程序和企业级的应用整合，而且他们假定业务分析人员会按照图1所示的方法来描述流程。但是在更低的粒度上，比如action，流程再用的可能性更大。<br /><br /><img style="DISPLAY: inline" onclick="javascript:imgClick(this);" alt="image" src="http://www.matrix.org.cn/resource/upload/forum/2006_06_26_012249_gQvBSqSRUc.gif" onload="javascript:imgLoad(this);" border="0" resized="0" /><br />图1. 粒度比较<br /><br />在这篇文章中，对于比较小的业务需求范畴，我建议java开发人员使用J-SOFA（Java Services Orchestration for Actions, Action级JAVA服务协调）。J-SOFA是一种协调服务的框架，这里的服务对应于类中的一个方法，无论是POJO(简单洁净Java对象)或者web服务。<br /><br />由于粒度不同，J-SOFA并不支持消息，状态管理，监控等等的同步。但是不用担心，目前的BPM/工作流产品都支持这些功能，我们可以直接应用这些产品。这篇文章所讲到的服务协调框架主要关注于提供业务流程的可用性，就像服务那样。<br />图2说明了剥离的业务流程可以被其他应用程序重复利用。<br /><br /><img style="DISPLAY: inline" onclick="javascript:imgClick(this);" alt="image" src="http://www.matrix.org.cn/resource/upload/forum/2006_06_26_012301_zyqLSlxnyX.gif" onload="javascript:imgLoad(this);" border="0" resized="0" /><br />图 2. 可重用的业务流程及服务<br /><br /><span style="COLOR: red">版权声明：任何获得Matrix授权的网站，转载时请务必保留以下作者信息和链接</span><br />作者:Masayuki Otoshi ;<a href="http://www.matrix.org.cn/user.shtml?username=rainh95" target="_new">rainh95</a>(作者的blog:<a href="http://blog.matrix.org.cn/page/rainh95" target="_new">http://blog.matrix.org.cn/page/rainh95</a>)<br />原文:<a href="http://www.javaworld.com/javaworld/jw-04-2006/jw-0417-sofa.html?lsrc=jwrss" target="_new">http://www.javaworld.com/javaworld/jw-04-2006/jw-0417-sofa.html?lsrc=jwrss</a><br />Matrix:<a href="http://www.matrix.org.cn/resource/article/44/44500_Business+Services.html" target="_new">http://www.matrix.org.cn/resource/article/44/44500_Business+Services.html</a><br />关键字:Business;Services<br /><br /><b><span style="FONT-SIZE: 16px">JSF中的简单action</span></b><br /><br />让我们来看看用JSF开发的web应用程序中的一些简单action的代码。我们的例子是一个简单的模型搜索程序：根据用户输入的模型ID返回模型具体信息。<br /><br />你可以从这个资源下载这个示例的源代码。<br /><br />在搜索jsp页面上，有一个文本框和一个submit按钮，用户可以输入model id然后提交。这个jsp页面通过一个叫ModelBean的后台bean调用showModel()方法。如列表1所示:<br /><br /><b>列表 1. search.jsp中的inputText及Submit按钮</b><br /><pre class="overflow">&lt;h:inputText id="modelId" value="#{ModelBean.modelId}" /&gt;<br />&lt;h:commandButton type="submit" value="Submit" action="#{ModelBean.showModel}" /&gt;</pre><br /><br />为了产生模型具体信息页面(搜索结果页面)，showModel()方法创建Model对象和特征表，再赋值到属性当中<br /><br /><b>列表 2. 在backing bean中的showModel()方法</b><br /><pre class="overflow">public String showModel() {<br />   if (modelId &gt; 0) {<br />      ModelService modelService = new ModelService();<br />      BeanUtils.copyProperties(this, modelService.create(modelId));<br />      setFeatures(modelService.getFeatures(modelId));<br />   }<br />   ...<br />}</pre><br /><br />高级开发人员可以像上面展示的代码一样将业务逻辑从具体操作中分离出来，通过一个model的service实现创建model和features，再通过interface来调用它。不管怎样，如果其他人来维护后台bean，我们还能保持这个方法这样简单吗？这样做可能被证明非常困难，因为不是所有的开发人员都明白隔离展现层和业务层的好处。如果一个持有不同观点的开发人员开发维护后台bean,她/他可能会将业务逻辑加入到showModel()中去。在项目中，这种状况是很平常的，因为程序设计语言，比如这个例子中用到的java,容许我们用它强大的表现能力去实现任何业务逻辑。因此，我们应该用另外一种语言去实现业务流程，而不是java。<br /><br />从一个框架的角度来看，预防开发人员沉溺于将流程和逻辑放在一起是非常重要的。描述业务流程的语言可能难于实现逻辑，但与此同时，却能像编程语言一样富有表现力。目前，需要应用BPM/工作流的概念去增加框架的解决方案。对于这个问题，我建议用XML-based文档（程序定义XML）去描述流程，它可以指定需要按照什么顺序调用哪些service。从而，应用了J-SOFA之后, showModel()方法中的流程可以像下面这样表示:<br /><br /><b>列表 3. process.xml </b><br /><pre class="overflow">&lt;process&gt;<br />   &lt;if test="${modelId &gt; 0}"&gt;<br />      &lt;service name="modelService" operation="create"&gt;<br />         <br />         &lt;return name="model" /&gt;<br />      &lt;/service&gt;<br /><br />      &lt;service name="modelService" operation="getFeatures"&gt;<br />         <br />         &lt;return name="features" /&gt;<br />      &lt;/service&gt;<br />   &lt;/if&gt;<br />&lt;/process&gt;</pre><br /><br />在上面的XML中,modelService的两个操作通过service标签被调用，service标签对应于service组件中所实现的方法。他们也可以被应用于条件或循环语句中，如if,choose,forEach等。然而，他们还是不如编程语言富于表现力。另外，J-SOFA并不能执行从service标签中获得的模型和特性对象的方法，除非是通过getter方法。这些限制条件要求开发人员用XML描述业务逻辑时具备更加复杂的知识才干，不管怎样，它们还是能帮助开发人员决定哪些业务逻辑应该用service类实现。有这些service方式实现的业务逻辑，我们可以开发基于SOA的应用程序，更能快速适应各种各样业务模型的变化。<br /><br />典型的web应用程序框架不支持服务协调，如JSF和Struts。所以，我们必须在showModel()方法中编写下面的代码去执行处理：<br /><br /><b>列表 4. 调用流程的showModel()方法</b><br /><pre class="overflow">public String showModel() {<br />   ProcessInstance process = new ProcessInstance("process.xml");<br /><br />   ProcessContext context = new ProcessContext();<br />   context.put("modelId", modelId);<br />   process.execute(context);<br /><br />   BeanUtils.copyProperties(this, context.get("model"));<br />   setFeatures((List) context.get("features"));<br />   ...<br />}</pre><br /><br />无论如何，如果框架拥有支持调用处理的功能，我们不需要创建action。相反，我们需要： <br />--创建流程定义XML <br />--创建用于在处理中被调用的service组件 <br />--在JSP页面编写显示处理返回值的代码<br /><br />在这部分，我解释了流程定义XML如何为action定义流程；无论如何，其中的有些定义可以在真实世界中被重用。在下一节中，我将用另外一个例子去说明如何再利用流程。<br /><br /><b><span style="FONT-SIZE: 16px">可继承的XML</span></b><br /><br />创建流程的时候，我们发现有些流可以被其他的流程共享。举个例子，我创建了4个页面，如下图3所示：模型总览，模型特性，和其他两种分类索引页面。所有的页面包含相同的标题和页脚。前两个模型页面用同一个Model对象来显示模型信息，如模型名称。后两个分类页面同样那个也是用一个Category对象。最后，每个页面有自己单独的页面处理进程。<br /><br /><img style="DISPLAY: inline" onclick="javascript:imgClick(this);" alt="image" src="http://www.matrix.org.cn/resource/upload/forum/2006_06_26_012451_LRWMWyGUQG.gif" onload="javascript:imgLoad(this);" border="0" resized="0" /><br />图3. 流程中的共享流<br /><br />在这个案例中，每个流，如模型特性，能用subProcess标签标识，它能执行另外一个叫做“sub-process”的流程。<br /><br /><b>列表 5. modelFeatures.xml调用sub-processes</b><br />(注意：在这个和后面的清单中，为了简化代码，service标签中的子标签将被省略)<br /><pre class="overflow">&lt;process&gt;<br />   &lt;subProcess path="page.xml" /&gt;  ---------- (1)<br />   &lt;subProcess path="model.xml" /&gt; ---------- (2)<br />   &lt;service name="modelService" operation="getFeatures" /&gt; ----- (3)<br />&lt;/process&gt;</pre><br /><br />页面和模型流程隐藏在每个sub-process中，但是我们仍然能找到从(1) 到 (3)的连续流。所以，如果我们要修改流，比如改变流的顺序为(2), (3), (1),那么在另外的流程中，也不得不做这种改变。<br /><br />为了解决这个问题，J-SOFA支持一种基于继承的解决方法。基本的思路是提供这样一种机制：容许导出一个基础过程中的标签，然后再重写它。<br /><br />我们可以在process标签中用extends属性创建一个导出过程。在这个例子中，过程的层次结构能用如图4表示：<br /><br /><img style="DISPLAY: inline" onclick="javascript:imgClick(this);" alt="image" src="http://www.matrix.org.cn/resource/upload/forum/2006_06_26_012517_vRRWNkrVYa.gif" onload="javascript:imgLoad(this);" border="0" resized="0" /><br />图 4. 流程等级图<br /><br />Header和footer在基础过程中定义，model和Category在导出过程中定义，导出过程从基础过程中继承了header和footer标签。每一个代表一个特定的页面的过程，可以看成是model或category过程的扩展。<br />在page.xml中，我们产生一个header和footer,可是，我们并不知道到底在这个页面中会显示什么内容(模型或者分类？)在此刻，abstract标签会被导出流程中的其他标签重写，可以按如下方式应用:<br /><br /><b>列表 6. page.xml (基础流程) </b><br /><pre class="overflow">&lt;process&gt;<br />   &lt;service id="header" name="commonService" operation="getHeader" /&gt;<br />   &lt;service id="footer" name="commonService" operation="getFooter" /&gt;<br />   &lt;abstract id="contents" /&gt;<br />&lt;/process&gt;</pre><br /><br />在列表7中，model.xml可以看成是从page.xml得到的，所以，page.xml被列入process标签的extends属性中。在这个XML块中，我们只需要描述需要重写的标签。在这个案例中，model.xml中的group标签重写了abstract标签，它在page.xml中有着相同的id ”contents”.<br /><br />在这个时候，我们知道必须创建Model对象，可是我们不知道究竟哪个页面会调用这个过程。因此，我们不创建一个具体的过程，而是用abstract标签表示特定页面的内容：<br /><br /><b>列表 7. model.xml (继承流程) </b><br /><pre class="overflow">&lt;process extends="page.xml"&gt;<br />   &lt;group id="contents"&gt;<br />      &lt;service name="modelService" operation="create" /&gt;<br />      &lt;abstract id="pageContents" /&gt;<br />   &lt;/group&gt;<br />&lt;/process&gt;</pre><br /><br />如列表8所示,具体页面内容在从model.xml继承的modelFeatures.xml中描述。除了特性表之外所有我们需要创建的服务，都已经在基础过程中定义，所以我们只需要重写abstract标签，用service标签调用getFeature()操作。这样，开发人员可以将焦点放在跟特定页面相关的处理上。<br /><br /><b>列表 8. modelFeatures.xml (具体流程) </b><br /><pre class="overflow">&lt;process extends="model.xml"&gt;<br />   &lt;service id="pageContents" name="modelService" operation="getFeatures" /&gt;<br />&lt;/process&gt;</pre><br /><br />当过程实例被实例化时，page.xml,model.xml和modelFeatures.xml这三个XML文档在执行之前被创建,如下面列表9所标示的那样:<br /><br /><b>列表 9. Model Features的复合流程 </b><br /><pre class="overflow">&lt;process&gt;<br />   &lt;service id="header" name="commonService" operation="getHeader" /&gt;<br />   &lt;service id="footer" name="commonService" operation="getFooter" /&gt;<br />   &lt;group id="contents"&gt;<br />      &lt;service name="modelService" operation="create" /&gt;<br />      &lt;service id="pageContents" name="modelService" operation="getFeatures" /&gt;<br />   &lt;/group&gt;<br />&lt;/process&gt;</pre><br />应用XML继承方法,开发人员能够重用在基础过程中表述的工作流。开发人员同样可以提供定义通用流的抽象过程,给其他开发人员描述特定页面的过程。<br /><br /><b><span style="FONT-SIZE: 16px">结论</span></b><br />用XML-based文档描述工作流这个概念已经在BPM和工作流产品中实施。不管怎样,到目前为止,它主要用于高层次业务描述中。在本文中,我们看到,这个概念同样适用于web应用程序中的action。<br />服务协调框架将直接帮助开发人员决定哪些流应该用过程XML描述,哪些逻辑应用用service实现。结果是,应用程序会基于SOA设计和开发,重用性会变得越来越好。<br /><br /><b>关于作者</b><br />Masayuki Otoshi 是一个家公司的开发Web应用的高级程序员。他还负责这家公司的应用框架的设计与开发。 <br /><br /><b>资源</b><br />---下载本文源码：<br /><a href="http://www5f.biglobe.ne.jp/~webtest/jsofa/misc/jw-0417-sofa.zip" target="_new">http://www5f.biglobe.ne.jp/~webtest/jsofa/misc/jw-0417-sofa.zip</a><br />---J-SOFA主页：<br />http://www5f.biglobe.ne.jp/~webtest/jsofa/ <br />---Matrix:<a href="http://www.matrix.org.cn/" target="_new">Java,开源和中间件社区</a><br />---Javaworld:<a href="http://www.javaworld.com/" target="_new">http://www.Javaworld.com</a></div>
<img src ="http://www.blogjava.net/clant/aggbug/85149.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/clant/" target="_blank">BPM </a> 2006-12-03 10:01 <a href="http://www.blogjava.net/clant/articles/85149.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JBoss 发布JBoss Transactions 4.2 和JBoss Rules 3.0 (Drools-规则引擎)新版本</title><link>http://www.blogjava.net/clant/articles/85138.html</link><dc:creator>BPM </dc:creator><author>BPM </author><pubDate>Sun, 03 Dec 2006 01:46:00 GMT</pubDate><guid>http://www.blogjava.net/clant/articles/85138.html</guid><wfw:comment>http://www.blogjava.net/clant/comments/85138.html</wfw:comment><comments>http://www.blogjava.net/clant/articles/85138.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/clant/comments/commentRss/85138.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/clant/services/trackbacks/85138.html</trackback:ping><description><![CDATA[
		<span class="top11"> 
<p></p><p>      JBoss 宣布发布JBoss Transactions 4.2 和JBoss Rules 3.0 新版本。</p><p>      JBoss Transactions 是一款开源的分布式事务管理平台，原来是属于Arjuna 的产品。Arjuna Technologies 公司的事务引擎已有20年的历史，并且已经被升级到可以使用Web服务事务。2005，JBoss 年通过收购Arjuna 而获得此项技术。</p><p>      JBoss Rules 是JBoss的企业规则引擎产品，前身是大家都熟悉的Drools。2005年12月，JBoss的创始人兼总裁Marc Fleury在巴塞罗纳举行的“JBoss 世界”的会议上发表的主题演讲中宣布收购Drools。 从此，Drools 项目以及该项目的主要负责人Mark Proctor 都加入了JBOSS。</p><p>下载地址：<a href="http://jboss.org/jbossBlog/blog/mlittle/?permalink=JBoss_Transactions_4_2_Released.txt"><font color="#000066">http://jboss.org/jbossBlog/blog/mlittle/?permalink=JBoss_Transactions_4_2_Released.txt</font></a></p></span>
<img src ="http://www.blogjava.net/clant/aggbug/85138.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/clant/" target="_blank">BPM </a> 2006-12-03 09:46 <a href="http://www.blogjava.net/clant/articles/85138.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>通向SOA－美国和中国不同的道路</title><link>http://www.blogjava.net/clant/articles/85123.html</link><dc:creator>BPM </dc:creator><author>BPM </author><pubDate>Sun, 03 Dec 2006 00:32:00 GMT</pubDate><guid>http://www.blogjava.net/clant/articles/85123.html</guid><wfw:comment>http://www.blogjava.net/clant/comments/85123.html</wfw:comment><comments>http://www.blogjava.net/clant/articles/85123.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/clant/comments/commentRss/85123.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/clant/services/trackbacks/85123.html</trackback:ping><description><![CDATA[
		<p class="MsoNormal" style="TEXT-ALIGN: left; 0cm: ; mso-pagination: widow-orphan" align="left">
				<span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">   (转址:七哥<a href="http://gocom.primeton.com/blog/index.php?op=ViewArticle&amp;articleId=891&amp;blogId=62">http://gocom.primeton.com/blog/index.php?op=ViewArticle&amp;articleId=891&amp;blogId=62</a>)<br /><br />   想起宽带刚刚普及的时候，我在硅谷的家中也就开始安装了，不过麻烦的事情是家中有<span lang="EN-US">5</span>个电脑分布在<span lang="EN-US">5</span>个不同的房间。房子是建于<span lang="EN-US">1963</span>年的老房，所以用网络线的连接就成为问题。最快速且便宜的解决方案是布裸线，否则就要开腔凿洞。因此，家中的墙角和房门口的过道均成为网线的的落脚之处，难看之极，但这是当时最简单的解决方案。直到无线局域网的出现，这个问题才得以解决。<span lang="EN-US"></span></span>
		</p>
		<p>
		</p>
		<p class="MsoNormal" style="TEXT-ALIGN: left; 0cm: ; mso-pagination: widow-orphan" align="left">
				<span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
				</span>
		</p>
		<p>
		</p>
		<p class="MsoNormal" style="TEXT-ALIGN: left; 0cm: ; mso-pagination: widow-orphan" align="left">
				<span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">在中国的小区建设中，宽带的连接成为基本配置，所以老的社区曾经也有同样的问题，而大量的新社区这个问题就不存在了。即便有无线局域网的技术，有线宽带的接口还是都提供的。新社区的好处就是可以在一开始就部署新技术，而不需要走老路。<span lang="EN-US"></span></span>
		</p>
		<p>
		</p>
		<p class="MsoNormal" style="TEXT-ALIGN: left; 0cm: ; mso-pagination: widow-orphan" align="left">
				<span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
				</span>
		</p>
		<p>
		</p>
		<p class="MsoNormal" style="TEXT-ALIGN: left; 0cm: ; mso-pagination: widow-orphan" align="left">
				<span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">如今，全世界都在嚷嚷<span lang="EN-US"><a href="http://gocom.primeton.com/modules/gSpace/about_onetag.php?tagid=102&amp;tagname=SOA&amp;plogsession=28c5556a84ece7f166c44678d8d600c3" target="_blank"><b><i><u>SOA</u></i></b></a></span>，那我们也需要考察美国人怎么部署<span lang="EN-US"><a href="http://gocom.primeton.com/modules/gSpace/about_onetag.php?tagid=102&amp;tagname=SOA&amp;plogsession=28c5556a84ece7f166c44678d8d600c3" target="_blank"><b><i><u>SOA</u></i></b></a></span>，中国人怎么部署。研究这个问题，对我们软件公司还是对我们的客户都是有极大帮助的，以免再一次被我们的<span lang="EN-US">“</span>主流<span lang="EN-US">”</span>厂商误导。因为，美国人如何部署<span lang="EN-US"><a href="http://gocom.primeton.com/modules/gSpace/about_onetag.php?tagid=102&amp;tagname=SOA&amp;plogsession=28c5556a84ece7f166c44678d8d600c3" target="_blank"><b><i><u>SOA</u></i></b></a></span>决定美国<span lang="EN-US"><a href="http://gocom.primeton.com/modules/gSpace/about_onetag.php?tagid=102&amp;tagname=SOA&amp;plogsession=28c5556a84ece7f166c44678d8d600c3" target="_blank"><b><i><u>SOA</u></i></b></a></span>产品的特征，中国人怎么部署决定中国<span lang="EN-US"><a href="http://gocom.primeton.com/modules/gSpace/about_onetag.php?tagid=102&amp;tagname=SOA&amp;plogsession=28c5556a84ece7f166c44678d8d600c3" target="_blank"><b><i><u>SOA</u></i></b></a></span>产品的特性。<span lang="EN-US"></span></span>
		</p>
		<p>
		</p>
		<p class="MsoNormal" style="TEXT-ALIGN: left; 0cm: ; mso-pagination: widow-orphan" align="left">
				<span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
				</span>
		</p>
		<p>
		</p>
		<p class="MsoNormal" style="TEXT-ALIGN: left; 0cm: ; mso-pagination: widow-orphan" align="left">
				<span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
						<a href="http://gocom.primeton.com/modules/gSpace/about_onetag.php?tagid=102&amp;tagname=SOA&amp;plogsession=28c5556a84ece7f166c44678d8d600c3" target="_blank">
								<b>
										<i>
												<u>SOA</u>
										</i>
								</b>
						</a>
				</span>
				<span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">的核心是把业务流程功能模块构件化，并对外提供标准的服务，基于这些服务，企业内部的不同业务部门或是不同企业之间的业务整合就更加容易一些。<span lang="EN-US"><a href="http://gocom.primeton.com/modules/gSpace/about_onetag.php?tagid=102&amp;tagname=SOA&amp;plogsession=28c5556a84ece7f166c44678d8d600c3" target="_blank"><b><i><u>SOA</u></i></b></a></span>的出现是由于互联网技术的出现，将原来各自为阵的<span lang="EN-US">EAI</span>市场标准化。<span lang="EN-US"></span></span>
		</p>
		<p>
		</p>
		<p class="MsoNormal" style="TEXT-ALIGN: left; 0cm: ; mso-pagination: widow-orphan" align="left">
				<span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
				</span>
		</p>
		<p>
		</p>
		<p class="MsoNormal" style="TEXT-ALIGN: left; 0cm: ; mso-pagination: widow-orphan" align="left">
				<span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">在美国由于多年的应用系统建设，企业的业务流程大多数以非标准的形式被掩藏在各种各样的应用系统之中，比如<span lang="EN-US">CRM</span>系统，<span lang="EN-US">ERP</span>系统，<span lang="EN-US">HR</span>系统，信用评估系统等等。所以实现<span lang="EN-US"><a href="http://gocom.primeton.com/modules/gSpace/about_onetag.php?tagid=102&amp;tagname=SOA&amp;plogsession=28c5556a84ece7f166c44678d8d600c3" target="_blank"><b><i><u>SOA</u></i></b></a></span>架构的第一步是将那些掩藏在个应用系统之中的业务功能模块切割开来，加以包装之后成为标准的服务构件，然后还要将分散在不同系统中的数据整合包装成为数据服务，最后根据业务的需要同过<span lang="EN-US"><a href="http://gocom.primeton.com/modules/gSpace/about_onetag.php?tagid=142&amp;tagname=BPEL&amp;plogsession=28c5556a84ece7f166c44678d8d600c3" target="_blank"><b><i><u>BPEL</u></i></b></a></span>将分散的服务连接成为新的服务。所以美国实现<span lang="EN-US"><a href="http://gocom.primeton.com/modules/gSpace/about_onetag.php?tagid=102&amp;tagname=SOA&amp;plogsession=28c5556a84ece7f166c44678d8d600c3" target="_blank"><b><i><u>SOA</u></i></b></a></span>的方法为：<span lang="EN-US"></span></span>
		</p>
		<p>
		</p>
		<p class="MsoNormal" style="TEXT-ALIGN: left; 0cm: ; mso-pagination: widow-orphan" align="left">
				<span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
				</span>
		</p>
		<p>
		</p>
		<p class="MsoNormal" style="TEXT-ALIGN: left; 0cm: ; mso-pagination: widow-orphan" align="left">
				<span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">1</span>
				<span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">。对原有业务流程的提取和包装成为服务构件（<span lang="EN-US"><a href="http://gocom.primeton.com/modules/gSpace/about_onetag.php?tagid=134&amp;tagname=SCA&amp;plogsession=28c5556a84ece7f166c44678d8d600c3" target="_blank"><b><i><u>SCA</u></i></b></a></span>）；<span lang="EN-US"></span></span>
		</p>
		<p>
		</p>
		<p class="MsoNormal" style="TEXT-ALIGN: left; 0cm: ; mso-pagination: widow-orphan" align="left">
				<span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">2</span>
				<span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">。对原有数据的整合包装成为数据服务（<span lang="EN-US"><a href="http://gocom.primeton.com/modules/gSpace/about_onetag.php?tagid=77&amp;tagname=SDO&amp;plogsession=28c5556a84ece7f166c44678d8d600c3" target="_blank"><b><i><u>SDO</u></i></b></a></span>）；<span lang="EN-US"></span></span>
		</p>
		<p>
		</p>
		<p class="MsoNormal" style="TEXT-ALIGN: left; 0cm: ; mso-pagination: widow-orphan" align="left">
				<span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">3</span>
				<span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">。用<span lang="EN-US"><a href="http://gocom.primeton.com/modules/gSpace/about_onetag.php?tagid=142&amp;tagname=BPEL&amp;plogsession=28c5556a84ece7f166c44678d8d600c3" target="_blank"><b><i><u>BPEL</u></i></b></a></span>实现新的流程。<span lang="EN-US"></span></span>
		</p>
		<p>
		</p>
		<p class="MsoNormal" style="TEXT-ALIGN: left; 0cm: ; mso-pagination: widow-orphan" align="left">
				<span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
				</span>
		</p>
		<p>
		</p>
		<p class="MsoNormal" style="TEXT-ALIGN: left; 0cm: ; mso-pagination: widow-orphan" align="left">
				<span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">这个做法的可行性基于一个重要前提：原有的业务流程可以被切割包装（代价问题），原有的数据可以在一定程度上被标准化包装成为服务，如果所有的系统都需要通过人工切割和包装则代价太大，必须存在一次切割多次复用的情况，否则切割的环节无法产品化。由于美国企业的应用系统大量采用了有限厂商的产品比如<span lang="EN-US">SAP</span>，<span lang="EN-US">ORACLE</span>，<span lang="EN-US">SIEBLE</span>等，一定程度的标准切割是存在的，尤其是多年的<span lang="EN-US">EAI</span>实践，为切割的标准化打下了基础。尽管如此，大量的基于人工服务的切割还是必须的，所以，印度人有饭吃。而这些切割的工作与中国软件外包企业多半无关。<span lang="EN-US"></span></span>
		</p>
		<p>
		</p>
		<p class="MsoNormal" style="TEXT-ALIGN: left; 0cm: ; mso-pagination: widow-orphan" align="left">
				<span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
				</span>
		</p>
		<p>
		</p>
		<p class="MsoNormal" style="TEXT-ALIGN: left; 0cm: ; mso-pagination: widow-orphan" align="left">
				<span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">因此，我们可以预见美国制造的<span lang="EN-US"><a href="http://gocom.primeton.com/modules/gSpace/about_onetag.php?tagid=102&amp;tagname=SOA&amp;plogsession=28c5556a84ece7f166c44678d8d600c3" target="_blank"><b><i><u>SOA</u></i></b></a></span>产品将把具有标准切割及打包功能作为重要的卖点，也是产品的价值所在。市场决定产品的特征，就这么简单的逻辑。<span lang="EN-US"></span></span>
		</p>
		<p>
		</p>
		<p class="MsoNormal" style="TEXT-ALIGN: left; 0cm: ; mso-pagination: widow-orphan" align="left">
				<span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
				</span>
		</p>
		<p>
		</p>
		<p class="MsoNormal">
				<span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中国的</span>
				<span lang="EN-US" style="FONT-SIZE: 12pt">
						<a href="http://gocom.primeton.com/modules/gSpace/about_onetag.php?tagid=102&amp;tagname=SOA&amp;plogsession=28c5556a84ece7f166c44678d8d600c3" target="_blank">
								<b>
										<i>
												<u>SOA</u>
										</i>
								</b>
						</a>
				</span>
				<span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">如何实现呢？我们的预见是多半是把系统按照<a href="http://gocom.primeton.com/modules/gSpace/about_onetag.php?tagid=102&amp;tagname=SOA&amp;plogsession=28c5556a84ece7f166c44678d8d600c3" target="_blank"><b><i><u>SOA</u></i></b></a>提供的标准来建设，主流是把系统建设成为</span>
				<span lang="EN-US" style="FONT-SIZE: 12pt">
						<a href="http://gocom.primeton.com/modules/gSpace/about_onetag.php?tagid=102&amp;tagname=SOA&amp;plogsession=28c5556a84ece7f166c44678d8d600c3" target="_blank">
								<b>
										<i>
												<u>SOA</u>
										</i>
								</b>
						</a>
				</span>
				<span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">标准的系统，而不是切割和包装，那些需要切割和包装的系统绝大多数依赖于服务而不是产品。作出这个判断基础两个前提：</span>
				<span lang="EN-US" style="FONT-SIZE: 12pt">
				</span>
		</p>
		<p>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US" style="FONT-SIZE: 12pt">
				</span>
		</p>
		<p>
		</p>
		<p class="MsoNormal" style="TEXT-INDENT: -18pt; 0cm: ; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt">
				<span lang="EN-US" style="FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'">
						<span style="mso-list: Ignore">1．1。</span>
				</span>
				<span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">原有的系统很少；</span>
				<span lang="EN-US" style="FONT-SIZE: 12pt">
				</span>
		</p>
		<p>
		</p>
		<p class="MsoNormal" style="TEXT-INDENT: -18pt; 0cm: ; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt">
				<span lang="EN-US" style="FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'">
						<span style="mso-list: Ignore">2．2。</span>
				</span>
				<span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">那些已经存在的系统很少是能够被标准化切割的；</span>
				<span lang="EN-US" style="FONT-SIZE: 12pt">
				</span>
		</p>
		<p>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US" style="FONT-SIZE: 12pt">
				</span>
		</p>
		<p>
		</p>
		<p class="MsoNormal">
				<span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">因此，在中国开发</span>
				<span lang="EN-US" style="FONT-SIZE: 12pt">
						<a href="http://gocom.primeton.com/modules/gSpace/about_onetag.php?tagid=102&amp;tagname=SOA&amp;plogsession=28c5556a84ece7f166c44678d8d600c3" target="_blank">
								<b>
										<i>
												<u>SOA</u>
										</i>
								</b>
						</a>
				</span>
				<span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">产品最重要的特征是如何在一个标准的平台上（框架内）构造企业所需要的所有标准服务，并且容易管理和发展（变化）。中国市场</span>
				<span lang="EN-US" style="FONT-SIZE: 12pt">(</span>
				<span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">客户</span>
				<span lang="EN-US" style="FONT-SIZE: 12pt">)</span>
				<span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">面临的主要问题有如下几条：</span>
				<span lang="EN-US" style="FONT-SIZE: 12pt">
				</span>
		</p>
		<p>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US" style="FONT-SIZE: 12pt">
				</span>
		</p>
		<p>
		</p>
		<ol>
				<li>
						<div class="MsoNormal" style="TEXT-INDENT: -18pt; 0cm: ; mso-list: l1 level1 lfo2; tab-stops: list 18.0pt">
								<span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">还没有采用<a href="http://gocom.primeton.com/modules/gSpace/about_onetag.php?tagid=102&amp;tagname=SOA&amp;plogsession=28c5556a84ece7f166c44678d8d600c3" target="_blank"><b><i><u>SOA</u></i></b></a>架构标准；</span>
						</div>
				</li>
				<li>
						<div class="MsoNormal" style="TEXT-INDENT: -18pt; 0cm: ; mso-list: l1 level1 lfo2; tab-stops: list 18.0pt">
								<span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">
								</span>
								<span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">原有的系统难以切割，业务流程难以提取；</span>
						</div>
				</li>
				<li>
						<div class="MsoNormal" style="TEXT-INDENT: -18pt; 0cm: ; mso-list: l1 level1 lfo2; tab-stops: list 18.0pt">
								<span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">
								</span>
								<span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">复杂的数据难以整合；</span>
						</div>
				</li>
				<li>
						<div class="MsoNormal" style="TEXT-INDENT: -18pt; 0cm: ; mso-list: l1 level1 lfo2; tab-stops: list 18.0pt">
								<span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">
								</span>
								<span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">新建的系统没有统一的技术架构，产生更多的标准化问题。</span>
								<span lang="EN-US" style="FONT-SIZE: 12pt">
								</span>
						</div>
				</li>
		</ol>
		<p>
		</p>
		<p>
				<span lang="EN-US" style="FONT-SIZE: 12pt">
				</span>
		</p>
		<p>
		</p>
		<p>
				<span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">考察中国的市场我们可以作出如下的预言：</span>
				<span lang="EN-US" style="FONT-SIZE: 12pt">
				</span>
		</p>
		<p>
		</p>
		<p>
				<span lang="EN-US" style="FONT-SIZE: 12pt">
				</span>
		</p>
		<p>
		</p>
		<p>
				<span lang="EN-US" style="FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'">
						<span style="mso-list: Ignore">1．1。</span>
				</span>
				<span lang="EN-US" style="FONT-SIZE: 12pt">
						<a href="http://gocom.primeton.com/modules/gSpace/about_onetag.php?tagid=102&amp;tagname=SOA&amp;plogsession=28c5556a84ece7f166c44678d8d600c3" target="_blank">
								<b>
										<i>
												<u>SOA</u>
										</i>
								</b>
						</a>
				</span>
				<span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">将被主流市场接受成为标准的体系结构；</span>
				<span lang="EN-US" style="FONT-SIZE: 12pt">
				</span>
		</p>
		<p>
		</p>
		<p>
				<span lang="EN-US" style="FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'">
						<span style="mso-list: Ignore">2．2。</span>
				</span>
				<span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">美国主流的<a href="http://gocom.primeton.com/modules/gSpace/about_onetag.php?tagid=102&amp;tagname=SOA&amp;plogsession=28c5556a84ece7f166c44678d8d600c3" target="_blank"><b><i><u>SOA</u></i></b></a>产品在中国会水土不服；</span>
				<span lang="EN-US" style="FONT-SIZE: 12pt">
				</span>
		</p>
		<p>
		</p>
		<p>
				<span lang="EN-US" style="FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'">
						<span style="mso-list: Ignore">3．3。</span>
				</span>
				<span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">原有系统将主要依靠服务来切割，或者推倒重来；</span>
				<span lang="EN-US" style="FONT-SIZE: 12pt">
				</span>
		</p>
		<p>
		</p>
		<p>
				<span lang="EN-US" style="FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'">
						<span style="mso-list: Ignore">4．4。</span>
				</span>
				<span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">大量的新建系统将采用标准的小颗粒构件构造流程级别的标准服务构件；</span>
		</p>
		<p>
				<span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">5。5。普元面向构件的中间件将成为</span>
				<span lang="EN-US" style="FONT-SIZE: 12pt">
						<a href="http://gocom.primeton.com/modules/gSpace/about_onetag.php?tagid=102&amp;tagname=SOA&amp;plogsession=28c5556a84ece7f166c44678d8d600c3" target="_blank">
								<b>
										<i>
												<u>SOA</u>
										</i>
								</b>
						</a>
				</span>
				<span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">主流中的中国主流。</span>
				<span lang="EN-US" style="FONT-SIZE: 12pt">
				</span>
		</p>
<img src ="http://www.blogjava.net/clant/aggbug/85123.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/clant/" target="_blank">BPM </a> 2006-12-03 08:32 <a href="http://www.blogjava.net/clant/articles/85123.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>支持BPEL的开源工作流    </title><link>http://www.blogjava.net/clant/articles/85122.html</link><dc:creator>BPM </dc:creator><author>BPM </author><pubDate>Sun, 03 Dec 2006 00:22:00 GMT</pubDate><guid>http://www.blogjava.net/clant/articles/85122.html</guid><wfw:comment>http://www.blogjava.net/clant/comments/85122.html</wfw:comment><comments>http://www.blogjava.net/clant/articles/85122.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/clant/comments/commentRss/85122.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/clant/services/trackbacks/85122.html</trackback:ping><description><![CDATA[项目：<strong>bexee<br /></strong>简介：bexee是一个<a href="http://gocom.primeton.com/modules/gSpace/about_onetag.php?tagid=142&amp;tagname=BPEL" target="_blank"><b><i><u>BPEL</u></i></b></a>执行引擎并且是<a href="http://gocom.primeton.com/modules/gSpace/about_onetag.php?tagid=142&amp;tagname=BPEL" target="_blank"><b><i><u>BPEL</u></i></b></a>标准的一个开源实现.<br />网址：<a href="http://bexee.sourceforge.net/" target="_blank">http://bexee.sourceforge.net/</a><br /><br />项目：<strong>MOBE(MidOffice </strong><a href="http://gocom.primeton.com/modules/gSpace/about_onetag.php?tagid=142&amp;tagname=BPEL" target="_blank"><i><u><strong>BPEL</strong></u></i></a><strong> Editor)</strong><br />简介：是一个开源平台能够让执行,监控,调整,结束每个定义的过程和谐地结合起来.这个平台的实现使用到J2EE技术与公共的标准如:<a href="http://gocom.primeton.com/modules/gSpace/about_onetag.php?tagid=142&amp;tagname=BPEL" target="_blank"><b><i><u>BPEL</u></i></b></a>,XML与<a href="http://gocom.primeton.com/modules/gSpace/about_onetag.php?tagid=102&amp;tagname=SOA" target="_blank"><b><i><u>SOA</u></i></b></a>P.<br />网址：<a href="http://mobe.objectweb.org/" target="_blank">http://mobe.objectweb.org/</a><br /><br />项目：<strong>Twiste</strong><br />简介：Twister的目标是提供新一代、易集成、应用Java领域中最新成果、面向B2B的工作流解决方案。流程引擎基于<a href="http://gocom.primeton.com/modules/gSpace/about_onetag.php?tagid=142&amp;tagname=BPEL" target="_blank"><b><i><u>BPEL</u></i></b></a>业务流程规范和Web Service标准。<br />网址：<a href="http://www.smartcomps.org/twister/" target="_blank">http://www.smartcomps.org/twister/</a><br /><br />项目：<strong>Active</strong><a href="http://gocom.primeton.com/modules/gSpace/about_onetag.php?tagid=142&amp;tagname=BPEL" target="_blank"><i><u><strong>BPEL</strong></u></i></a><br />简介：Active<a href="http://gocom.primeton.com/modules/gSpace/about_onetag.php?tagid=142&amp;tagname=BPEL" target="_blank"><b><i><u>BPEL</u></i></b></a>引擎是一个健壮的运行时环境,它能执行用户按BPWL4WS或just <a href="http://gocom.primeton.com/modules/gSpace/about_onetag.php?tagid=142&amp;tagname=BPEL" target="_blank"><b><i><u>BPEL</u></i></b></a>规范编写的业务流程.<br />网址：<a href="http://www.activebpel.org/" target="_blank">http://www.activebpel.org/</a><br /><br />项目：<strong>PXE </strong><br />简介：PXE-Process eXecution Engine是一个模块化的商业流程执行引擎.支持用WS-<a href="http://gocom.primeton.com/modules/gSpace/about_onetag.php?tagid=142&amp;tagname=BPEL" target="_blank"><b><i><u>BPEL</u></i></b></a>2.0或<a href="http://gocom.primeton.com/modules/gSpace/about_onetag.php?tagid=142&amp;tagname=BPEL" target="_blank"><b><i><u>BPEL</u></i></b></a>4WS1.1规范描述的商业流程.<br />网址：<a href="http://www.fivesight.com/pxe.shtml" target="_blank">http://www.fivesight.com/pxe.shtml</a><img src ="http://www.blogjava.net/clant/aggbug/85122.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/clant/" target="_blank">BPM </a> 2006-12-03 08:22 <a href="http://www.blogjava.net/clant/articles/85122.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>WS-BPEL语言基础</title><link>http://www.blogjava.net/clant/articles/85121.html</link><dc:creator>BPM </dc:creator><author>BPM </author><pubDate>Sat, 02 Dec 2006 23:53:00 GMT</pubDate><guid>http://www.blogjava.net/clant/articles/85121.html</guid><wfw:comment>http://www.blogjava.net/clant/comments/85121.html</wfw:comment><comments>http://www.blogjava.net/clant/articles/85121.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/clant/comments/commentRss/85121.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/clant/services/trackbacks/85121.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 16.1.																				WS-BPEL																																				语言基础 GoGo翻译																																																在我们能够设计编排层之前，我们需要很好地理解如何正式地表达流程的操...&nbsp;&nbsp;<a href='http://www.blogjava.net/clant/articles/85121.html'>阅读全文</a><img src ="http://www.blogjava.net/clant/aggbug/85121.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/clant/" target="_blank">BPM </a> 2006-12-03 07:53 <a href="http://www.blogjava.net/clant/articles/85121.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>bpel和工作流的三个主要区别</title><link>http://www.blogjava.net/clant/articles/85120.html</link><dc:creator>BPM </dc:creator><author>BPM </author><pubDate>Sat, 02 Dec 2006 23:38:00 GMT</pubDate><guid>http://www.blogjava.net/clant/articles/85120.html</guid><wfw:comment>http://www.blogjava.net/clant/comments/85120.html</wfw:comment><comments>http://www.blogjava.net/clant/articles/85120.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/clant/comments/commentRss/85120.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/clant/services/trackbacks/85120.html</trackback:ping><description><![CDATA[
		<font size="2">
				<strong>基于状态的工作流管理系统</strong>(WFMS)和<strong>可执行的业务流程语言</strong>（</font>
		<a href="http://gocom.primeton.com/modules/gSpace/about_onetag.php?tagid=142&amp;tagname=BPEL" target="_blank">
				<b>
						<i>
								<u>
										<font size="2">BPEL</font>
								</u>
						</i>
				</b>
		</a>
		<font size="2">）之间主要的差别有如下三点：<br /><br /><strong>1、面向消息(message oriented) VS 基于状态(stated based)：<br /><br /></strong>WMFS : 基于状态的WMFS系统主要对图元(Activity)状态的变迁管理，工作流引擎维护和计算活动之间的转移条件。<br /><br />BPEL : 而</font>
		<a href="http://gocom.primeton.com/modules/gSpace/about_onetag.php?tagid=142&amp;tagname=BPEL" target="_blank">
				<b>
						<i>
								<u>
										<font size="2">BPEL</font>
								</u>
						</i>
				</b>
		</a>
		<font size="2">则是由一个消息激发流程的创建和运行，</font>
		<a href="http://gocom.primeton.com/modules/gSpace/about_onetag.php?tagid=142&amp;tagname=BPEL" target="_blank">
				<b>
						<i>
								<u>
										<font size="2">BPEL</font>
								</u>
						</i>
				</b>
		</a>
		<font size="2">流程内部每个Service都会被一个onMessage消息上配置的event handler触发，等到执行了event handler事件后会产生下一个活动执行的onMessage消息源，同时触发下一个活动执行。<br /><br /><strong>2、流程实例ID VS 消息相关性</strong>：<br /><br />WMFS : 基于状态的WFMS系统会在创建流程实例时为每个实例产生一个唯一ID标示。客户端可以通过引擎提供的相关API调用这个流程实例执行、停止、挂起。<br /><br />BPEL : BPEl则是用一组唯一标示的消息来确定要创建的流程实例是哪个，这个唯一标示的消息用correlation(相关性)包装起来，其中定义了消息的名称，消息个数，消息的类型。</font>
		<a href="http://gocom.primeton.com/modules/gSpace/about_onetag.php?tagid=142&amp;tagname=BPEL" target="_blank">
				<b>
						<i>
								<u>
										<font size="2">BPEL</font>
								</u>
						</i>
				</b>
		</a>
		<font size="2">引擎会自定的匹配这组消息到一个流程定义的receive活动上，最后创建一个新的流程实例。<br /><br /><strong>3、工作流引擎API VS 抽象服务端口：<br /><br /></strong>WMFS : 要执行一个XPDL的工作流文件必须要用工作流引擎提供的一组API去调用，以便管理控制、执行和访问流程实例。例如：启动一个流程实例必须要告诉流程定义的名称。<br /><br />BPEL : 而</font>
		<a href="http://gocom.primeton.com/modules/gSpace/about_onetag.php?tagid=142&amp;tagname=BPEL" target="_blank">
				<b>
						<i>
								<u>
										<font size="2">BPEL</font>
								</u>
						</i>
				</b>
		</a>
		<font size="2">则是做为一个服务暴露给外部调用，用的是面向服务(service oriented)的概念，例如调用一个bpel需要告诉激发bpel的消息相关性和业务伙伴是谁。相关性和业务伙伴分别是用WSDL描述的消息和服务，bpel内部调用的最终是一个Web Service。 </font>
		<br />
<img src ="http://www.blogjava.net/clant/aggbug/85120.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/clant/" target="_blank">BPM </a> 2006-12-03 07:38 <a href="http://www.blogjava.net/clant/articles/85120.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>