A port binding is the configuration information that determines where and how a message will be sent or received. Depending on its type, a port binding might refer to physical locations, pipelines, or other orchestrations.
There are three types of port binding for ports that receive messages:
There are four types of port binding for ports that send messages:
Binding at Deployment Time
You can bind your port to a receive location or to a send port. If you do not have all of the information you need to specify a physical location, you can select the Specify later port binding option in Orchestration Designer, and you only need to specify the port type that describes the port. After the application has been deployed, you can specify information about the location by using the BizTalk Server Administration console, or you can configure the location information programmatically.
Binding at Design Time
You can select the Specify now port binding option in Orchestration Designer to specify the transport and pipeline at design time. When specifying the port for receiving messages, only HTTP, SOAP, and FILE transports are available from the drop-down list. When specifying the port for sending messages, only HTTP, FILE, and SMTP transports are available from the drop-down list. This option is useful if you know in advance the source or destination of transmitted messages.
Direct bound ports are logical one-way or two-way ports in your orchestrations that are not explicitly bound to any physical ports. Direct bound ports allow you to have different communication patterns among your services. To implement direct binding, select the Direct port binding option in Orchestration Designer at design time.
There are three types of direct bound ports:
MessageBox direct bound port
Self-correlating direct bound port
Partner orchestration direct bound port
For more information about how to work with direct bound ports, see Working with Direct Bound Ports in Orchestrations.
When you use direct binding, you cannot exchange messages between one request-response port and two one-way ports.
Direct binding is not compliant with the standards of the Business Process Engineering Language for Web Services (BPEL4WS). If you require BPEL4WS compliance, use another kind of binding.
If you will not know the destination of a communication until run time, you can use dynamic binding for a send port. The location might, for example, be determined from a property on an incoming message, and then specified in the Expression shape, as shown in the following code:
For information about how to dynamically assign values to ports, see How to Assign Values to Dynamic Ports.
If your project contains a reference to a Web service, Orchestration Designer will detect it and will make available a corresponding Web port type. To create a Web port, you simply add a port to your orchestration and assign it an existing Web port type. For more information, see Creating Web Ports.