montaque

小碗喝酒,小口吃肉

博客园 首页 新随笔 联系 订阅 管理
BPEL 用来描述您的业务流程。采用一个基于xml的标准。比如一下业务流程:


其 BPEL
<?xml version="1.0"?>
<bpel:process xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:q1="http://soa.newegg.com/moudleA" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" name="BizTalk_Server_Project4.UpdateCatagory" targetNamespace="http://soa.newegg.com/OA" xmlns:bpel="http://schemas.xmlsoap.org/ws/2003/03/business-process/">
  
<bpel:partnerLinks>
    
<bpel:partnerLink name="Port_1" partnerLinkType="q1:Port_1Type" myRole="portRole" />
  
</bpel:partnerLinks>
  
<bpel:variables>
    
<bpel:variable name="CategoryInstance" messageType="q1:__messagetype_BizTalk_Server_Project4_Category" />
    
<bpel:variable name="ResultInstance" messageType="q1:__messagetype_BizTalk_Server_Project4_Result" />
    
<bpel:variable name="TempBuffer" element="q1:_System_Xml_XmlDocument" />
  
</bpel:variables>
  
<bpel:sequence>
    
<bpel:receive partnerLink="Port_1" portType="q1:PortType_1" operation="Operation_1" variable="CategoryInstance" createInstance="yes" />
    
<bpel:assign>
      
<bpel:copy>
        
<bpel:from />
        
<bpel:to variable="TempBuffer" />
      
</bpel:copy>
    
</bpel:assign>
    
<bpel:switch>
      
<bpel:case condition=" bpel:getVariableData( 'CategoryInstance', 'part', &quot;/*[local-name()='Category' and namespace-uri()='http://BizTalk_Server_Project4.Category']/*[local-name()='Name' and namespace-uri()='']&quot;)  = &quot;CPU&quot;">
        
<bpel:assign>
          
<bpel:copy>
            
<bpel:from>
              
<ns0:Result xmlns:ns0="http://BizTalk_Server_Project4.Result">
                
<OkOrNot>true</OkOrNot>
                
<Description>Golden Category</Description>
              
</ns0:Result>
            
</bpel:from>
            
<bpel:to variable="TempBuffer" />
          
</bpel:copy>
          
<bpel:copy>
            
<bpel:from variable="TempBuffer" />
            
<bpel:to variable="ResultInstance" part="part" />
          
</bpel:copy>
        
</bpel:assign>
      
</bpel:case>
      
<bpel:otherwise>
        
<bpel:assign>
          
<bpel:copy>
            
<bpel:from>
              
<ns0:Result xmlns:ns0="http://BizTalk_Server_Project4.Result">
                
<OkOrNot>false</OkOrNot>
                
<Description>Common Category</Description>
              
</ns0:Result>
            
</bpel:from>
            
<bpel:to variable="TempBuffer" />
          
</bpel:copy>
          
<bpel:copy>
            
<bpel:from variable="TempBuffer" />
            
<bpel:to variable="ResultInstance" part="part" />
          
</bpel:copy>
        
</bpel:assign>
      
</bpel:otherwise>
    
</bpel:switch>
    
<bpel:reply partnerLink="Port_1" portType="q1:PortType_1" operation="Operation_1" variable="ResultInstance" />
  
</bpel:sequence>
</bpel:process>


Biztalk 实现的Ochastration 支持倒除为WSDL 和 BPEL
WSDL 的意义在于别人知道你的业务流程的输入和输出.
而 BPEL 则告诉别人我的业务流程是怎么样的, 怎么个输入输出,怎么个逻辑处理. 当然,这两个技术都是一个工业标准. 很多的集成产品都支持标准的BPEL
posted on 2006-08-10 12:59  montaque  阅读(2094)  评论(3)    收藏  举报