深入biztalk中各种端口绑定方式(七)-- 直接绑定之Partner Orchestration

原创 2007年09月28日 14:31:00

1、 Partner Orchestration

合作伙伴业务流程直接绑定端口提供业务流程之间通过端口就行通讯的能力。跟自相关不同,合作伙伴业务流程直接绑定是一个流程的端口把消息发送到另一个流程的端口,消息并不需要返回到发送流程。

可以建立两种模式的合作伙伴业务流程直接绑定:

前向合作伙伴业务流程直接绑定

这是合作伙伴业务流程直接绑定的典型模式,这种情况有一个预设的接收orchestration ,前向合作伙伴业务流程直接绑定允许有多个发送流程把消息发向同一个预设的接收流程。

逆向合作伙伴业务流程直接绑定

这是合作伙伴业务流程直接绑定的非典型模式,这种情况有一个预设的发送orchestration ,逆向合作伙伴业务流程直接绑定允许有多个接收流程接收同一个预设的发送流程发送的同一消息。

     本测试源代码:/Files/chnking/PartnerOrchestrationSamples.rar

1.1.        测试场景

有这样一个xml文档:

<ns0:Root xmlns:ns0="http://PartnerOrchestration.InputSch">

  <OrcheA></OrcheA>

  <OrcheB></OrcheB>>

  <OrcheC></OrcheC>

  <OrcheD></OrcheD>

</ns0:Root>

经过下面过程的处理:


Figure 26.  
Panter Orchestration测试项目示意图

 

消息被OrchestrationA从输入文件夹接收,在OrchestrationA中把消息的OrcheA元素置为“A”。

OrchestrationA把消息通过前向合作伙伴业务流程直接绑定端口把消息发送到OrchestrationB

这里OrchestrationB的接收端口是预设的前向合作伙伴业务流程直接绑定接收端口,它可以接收多个通过合作伙伴业务流程直接绑定发送端口发来的消息,不过本例中没有使用多个发送流程发送消息到同一个接收端口。

OrchestrationB中把消息的OrcheB元素置为“B”。

OrchestrationB把消息通过逆向合作伙伴业务流程直接绑定端口把消息发送到两个流程。

OrchestrationCOrchestrationD接收到来自OrchestrationB的同一个消息,各自分别处理,分别把OrcheC元素置为“C”和把OrcheD元素置为“D”。

OrchestrationCOrchestrationD把消息都发送到输出文件夹中。

1.2.        项目设计

四个流程实现的功能都很简单,都是把接收到的消息中的一个可分辨字段赋一个相应的值,然后发送初五。流程设计这里就不一一说明了,要仔细描述的是OrchestrationB中的两个合作伙伴业务流程直接绑定端口和跟这两个端口相关的几个端口的设置。

1.2.1   前向合作伙伴业务流程直接绑定端口设置

前向绑定模式是先预设一个接收端口,以这个接收端口为中心,可以有多个发送端口发送消息到这个预设接收端口。

接收端设置:

新建预设接收端口,在向导中新建一个端口类型。

端口绑定:选择Direct

三种直接绑定模式中:选To receive messages from other orchestrations, select this port here and in those orchestrations

合作伙伴业务流程上的端口:选这个端口自身。选择自身表示这是个预设端口,也决定了这个绑定是前向的或者是逆向的。这里把接收端口设置为预设端口,表示跟这个端口绑定就是前向合作伙伴业务流程直接绑定。

发送端设置:

端口类型:选择上面步骤预设的接收端口类型

端口绑定:选择Direct

三种直接绑定模式中:选send messages to other orchestrations, select this port here and in those orchestrations

合作伙伴业务流程上的端口:选上面步骤预设的接收端口。发送端可以有多个。

1.2.2   逆向合作伙伴业务流程直接绑定端口设置

逆向绑定模式是先预设一个发送端口,以这个发送端口为中心,可以有多个接收端口接收从这个预设发送端口发布的消息。

发送端设置:

新建预设发送端口,在向导中新建一个端口类型。

端口绑定:选择Direct

三种直接绑定模式中:选send messages to other orchestrations, select this port here and in those orchestrations

合作伙伴业务流程上的端口:选这个端口自身。

接收端设置:

端口类型:选择上面步骤预设的发送端口类型

端口绑定:选择Direct

三种直接绑定模式中:选To receive messages from other orchestrations, select this port here and in those orchestrations

合作伙伴业务流程上的端口:选上面步骤预设的发送端口。接收端可以有多个。

1.3.        查看订阅

1.3.1   前向合作伙伴业务流程直接绑定的订阅

OrchestrationB接收端口订阅OrchestrationA发送端口的订阅是前向绑定,查看它的订阅关系,主要看订阅条件:


Figure 27.   Panter Orchestration
前向订阅条件

 

Subscription

{

    ORGroup0

    {

BTS.Operation == Operation_1 

And

BTS.PartnerPort == Port_ReceivePartner 

And

BTS.PartnerService == PanterOrchestration.OrchestrationB, PanterOrchestration, Version=1.0.0.0, Culture=neutral, PublicKeyToken=380d269ec565a18c 

And

BTS.MessageType == http://PartnerOrchestration.InputSch#Root 

}

}

BTS.Operation:接收端口接收消息的那个Operation

BTS.PartnerPort:接收端口名。

BTS.PartnerService:接收端口所在的Orchestration的完全名称。

BTS.MessageType:订阅的消息类型。

 

发送端口跟预设的接收端口绑定后,会在发出的消息中加入指向这个接收端口的三个属性:BTS.PartnerServiceBTS.PartnerServiceBTS.Operation,加上消息类型,这些消息的属性正好能和预设接收端口产生的订阅条件配合,发送端口发布的消息就能被预设接收端口接收到了。

1.3.2   逆向合作伙伴业务流程直接绑定的订阅

OrchestrationCOrchestrationD的接收端口订阅OrchestrationB发送端口的订阅是逆向绑定,查看它们的订阅关系,看订阅条件:


Figure 28.   Panter Orchestration
逆向订阅条件

 

Subscription

{

    ORGroup0

    {

BTS.Operation == Operation_1 

And

BTS.PartnerPort == Port_SentPartner

And

BTS.PartnerService == PanterOrchestration.OrchestrationB, PanterOrchestration, Version=1.0.0.0, Culture=neutral, PublicKeyToken=380d269ec565a18c 

And

BTS.MessageType == http://PartnerOrchestration.InputSch#Root 

}

}

BTS.Operation:发动端口发送消息的那个Operation

BTS.PartnerPort:发送端口名。

BTS.PartnerService:发送端口所在的Orchestration的完全名称。

BTS.MessageType:订阅的消息类型。

 

其它的接收端口跟预设发送端口绑定后,会产生上面这样的订阅。预设发送端口在发出的消息中消息中加入表示这个发送端口的三个属性:BTS.PartnerServiceBTS.PartnerServiceBTS.Operation,加上消息类型,预设发送端口发出消息的属性正好能和跟这个端口绑定的所有接收端口产生的订阅条件配合。

 

参考资料:BizTalk Server 2004: Direct Binding models in BizTalk

Starting BizTalk Server 2004 orchestrations using the MessageAgent

 

相关文章推荐

802.1x配置+端口绑定

  • 2013年10月12日 09:14
  • 34KB
  • 下载

07-CCNPMAC+IP+端口绑定操作.pdf

  • 2013年07月16日 23:44
  • 120KB
  • 下载

lvs持久连接及防火墙标记实现多端口绑定服务

lvs持久连接及防火墙标记实现多端口绑定服务 LVS持久连接: PCC:将来自于同一个客户端发往VIP的所有请求统统定向至同一个RS; PPC:将来自于一个客户端发往某VIP的某端口的所...

基于curl实现微信公众平台的模拟登录、开发者信息获取和端口绑定

使用curl实现模拟登录由来已久,

haproxy 单端口绑定ssh openvpn服务

协议: socks5 地址:ss.ops.ac.cn 端口:9950

关于单片机TCP/IP协议栈的实现目前的进度和问题——TCP或UDP发送数据,端口绑定问题

这段时间研究TCP/IP协议,用于单片机通信。昨天为止,基本实现了基础通信(ARP,UDP,ICMP_Ping,TCP)。 1,ARP主动,被动可以实现,但是要知道一般基于路由器下的主机,无论ARP...

树莓派学习笔记三:设备端口绑定

吃水不忘挖井人:参考链接http://blog.csdn.net/kangear/article/details/46302741       我们在树莓派上玩ROS的时候通常会插入不同的USB设备...

spring Mina 整合,多端口绑定spring.xml配置

-->                                                                              1000              ...

关于主机多IP和服务端口绑定IP的研究

在网络编程中,经常需要在服务器里开一个端口,这里有一个问题,这个端口是开到哪个IP上面了,因为对于服务器来说经常是不止一个IP的,一个是127.0.0.1,一个是内网IP,比如192.168.1.3,...

Cisco交换机端口绑定聚合

  • 2017年02月12日 21:03
  • 144KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深入biztalk中各种端口绑定方式(七)-- 直接绑定之Partner Orchestration
举报原因:
原因补充:

(最多只允许输入30个字)