Welcome to MSDN Blogs Sign in | Join | Help
<script type="text/javascript" src="http://cdn.widgetserver.com/syndication/subscriber/InsertWidget.js"></script><script>if (WIDGETBOX) WIDGETBOX.renderWidget('0678b650-ef58-4f71-a6c7-21a54d2bee8b');</script><noscript>Get the <a href="http://www.widgetbox.com/widget/patriots-blog-reiss-pieces-bostoncom">Patriots blog - Reiss' Pieces - Boston.com</a> widget and many other <a href="http://www.widgetbox.com/">great free widgets</a> at <a href="http://www.widgetbox.com">Widgetbox</a>!</noscript>

When building applications today, it’s hard to consider building something that doesn’t involve connectivity of some sort. Applications require business data and logic that is distributed across several applications or servers. Unfortunately, not all systems provide the same interface to their data and business logic which ultimately forces developers to figure out how to talk to each of those systems. Connecting to a system doesn’t just involve opening up a port on a network address either; we have to work with different message formats, varying security mechanisms, and in many cases custom libraries that rely on proprietary mechanisms. In the end, it’s common for developers to struggle with learning a variety of different programming interfaces, communication protocols, and messaging semantics.

Windows Communication Foundation (WCF) promises to change all of that. WCF provides a unified programming model for building distributed applications using the .NET Framework. WCF was designed to provide a single unified programming model for writing either clients or services while also providing a flexible framework for different styles of communication on the wire. This approach allows developers to focus on writing code in their business domain rather than on learning new networking interfaces or object models. The code you write with WCF always looks the same but you can configure your apps to use different transport protocols like TCP, HTTP, and MSMQ; different message encodings like XML, MTOM, and binary; and varied security options including certificates, passwords, and security tokens.

The goals addressed by WCF are also very similar to the integration goals of Microsoft® BizTalk® Server. Ultimately BizTalk Server is primarily focused on providing an easy-to-manage model for connecting disparate, heterogeneous systems using a variety of different protocols, message formats and security mechanisms without requiring much, if any, code. The WCF LOB Adapter SDK and the BizTalk Adapter Pack whitepaper discusses how the worlds of WCF and BizTalk Server 2006 are fully converging through the WCF LOB Adapter SDK and the BizTalk Adapter Pack.

I just published this WCF adapter video examining, in detail, the flow of an incoming WCF message into a BizTalk receive location that is configured to use a WCF receive adapter. See how this message is converted by the WCF adapter into a BizTalk message and stored in the Messagebox database.

 I just published this extensive FAQ with the help of the BizTalk Server product team at http://go.microsoft.com/fwlink/?LinkID=144765.

 These FAQs about the Windows Communication Foundation (WCF) adapters consists of the following themes.   Pass it on and enjoy!

·         General Conceptual: FAQs surrounding general conceptual WCF adapter topics. 

·         Message Flow and Mapping: FAQs about how a message flows in and out of BizTalk Server using the WCF adapters. 

·         Development Libraries: FAQs to help you better understand which development libraries to use when developing BizTalk adapters. 

·         Using WCF Services: FAQs explaining how to access WCF services, and how to extend BizTalk Server using WCF custom bindings and custom behaviors.

·         WCF Endpoints: FAQs about WCF endpoints with information about service endpoints, metadata, and how to publish WCF endpoints.

·         Service Architecture: FAQs describing the service architecture and when to use a BizTalk pipeline or a WCF behavior, and the types of encoding to select when using the WCF adapters.

·         WCF Error Handling: FAQs examining how to handle SOAP faults and errors during processing of messages through the WCF adapters.

Microsoft® Visual Studio® 2008 provides robust support for solutions that use the Windows® Communication Foundation (WCF) and Microsoft BizTalk® Server 2009. While some of the functionality is clearly visible, some of it may not be evident to a BizTalk application developer how to take full advantage of these options.

The purpose of this whitepaper is to provide a clear and concise summary of the capabilities exposed by Visual Studio in support of BizTalk Server and WCF. That paper contains an explanation for the BizTalk application developer how each feature can help you in your complete BizTalk Server and WCF solution. You can view this as a high-level explanation of how Visual Studio 2008 can help support your BizTalk Server and WCF development and integration.

You can read or download it at http://msdn.microsoft.com/en-us/library/dd443655.aspx.

Microsoft® BizTalk® Server uses the SOAP adapter and orchestrations to receive and send Web service requests. The SOAP adapter enables orchestrations to be published as Web services and consume external Web services. Because configuring and/or using Web services can be complex, BizTalk Server handles many of these complexities on behalf of the user. Even so, there are still issues arising from time to time. This white paper is designed to highlight common issues and to provide guidance for how to resolve them.

http://www.microsoft.com/downloads/details.aspx?FamilyID=0297745b-7636-4f4d-ab44-62d1abe2330d&DisplayLang=en

Written by Aaron Skonnard, this was originally named "Integrating Microsoft BizTalk Server 2006 R2 with the Windows Communication Foundation". It has been renamed to "Using the Windows Communication Foundation (WCF) Adapters in Biztalk Server". It can be found  on MSDN at  http://msdn.microsoft.com/en-us/library/bb967002.aspx, or directly from the download center at http://www.microsoft.com/downloads/details.aspx?familyid=a976dc7d-2296-4f88-be4d-0d314fca9e59&displaylang=en&tm.

Here are the first few paragraphs from the paper giving a brief introduction of it's content.

Microsoft® BizTalk® Server has long supported Web services as a primary communication technique but the support has been fairly limited to date. For example, developers working with BizTalk Server 2006 can use the built-in SOAP adapter to achieve “basic profile” service integration or the downloadable Web Services Enhancements (WSE) 2.0 adapter when support for the various WS-Security specifications is required. But that’s as far as these existing adapters can take you in today’s maturing service-oriented landscape. Developers working in more modern service-oriented environments, which build on the various WS-* protocols, have been unable to fully utilize BizTalk Server 2006 in such environments since the product lacked support for Windows® Communication Foundation (WCF) within the messaging layer.

Fortunately, with the release of BizTalk Server 2006 R2, developers will find a set of new WCF adapters that offer full integration with the advanced WS-* specifications supported by the WCF runtime. These adapters target the most common WCF communication scenarios and make them easy to tackle. As with the earlier SOAP/WSE adapters, developers can use the tools provided with the WCF adapters to publish WCF services from orchestrations or schemas and to consume external services using a variety of different transport, encoding, and protocol options, offering unparalleled service-oriented flexibility. The remainder of this white paper provides in-depth coverage on using the new WCF adapters.

"Consuming and Hosting WCF Services with Custom Bindings in BizTalk Server is a new WCF whitepaper.  You can find the download page from MSDN at http://msdn.microsoft.com/en-us/library/dd203050.aspx, or download it directly from the download center at http://www.microsoft.com/downloads/details.aspx?FamilyID=70badd79-ce7e-4ccb-be5c-3ff74ca3a8c4&displaylang=en

Here are the first few paragraphs from the paper giving a brief introduction of it's content.

With the realization of the benefits of developing and orchestrating unified business solutions, today’s business organizations adopt the paradigm of Service Oriented Architecture (SOA)-based solution development for the execution of dynamically composed business processes. However, due to the disparate nature of the diverse business applications that exist in an enterprise, many organizations experience daunting challenges in integrating these business applications and services.

This paper discusses the use of Microsoft® BizTalk® Server 2006 R2 and its WCF adapters as a platform for service orientation that alleviates the aforementioned integration challenges. The paper emphasizes the configuration and integration of custom WCF bindings with BizTalk solutions, through the use of the above adapter platform. Furthermore, the paper provides concrete solutions for the identified integration concerns that apply to the orchestration of services through the use of custom WCF bindings.

 

The first of two whitepapers entitled “Using Custom Behaviors with the BizTalk WCF Adapters, Part 1"” is now available for download.  You can get the Word version of the whitepaper at http://go.microsoft.com/fwlink/?LinkId=129615.  Alternatively, it's location in the MSDN library can be located at http://msdn.microsoft.com/en-us/library/cc952299.aspx

Here is a summary of its content. Enjoy!

Customization of message processing in Microsoft® BizTalk® Server 2006 R2 can be extended through the use of Windows Communication Foundation (WCF) custom behaviors. This article is the first of two parts discussing how the use of WCF custom behaviors within BizTalk Server gives increased control over the message transmission process.

A new WCF adapter whitepaper entitled “Modifying Messages with the WCF Adapters” is now available for download.  You can get the Word version of the whitepaper at http://download.microsoft.com/download/c/f/b/cfbcd6ad-5454-4c23-85d2-0cc3d7627015/WCFModifyingMessages.doc.  Alternatively, it's location in the MSDN library can be located at http://msdn.microsoft.com/en-us/library/cc950532.aspx

Here is a summary of its content. Enjoy!

The Windows Communication Foundation (WCF) adapters enable you to modify both incoming BizTalk® messages and outgoing WCF messages. You can use an XPath expression to specify what part of an incoming WCF message to use as the source of the BizTalk message body, and you can use an XML template to modify the content of an outbound WCF message body.

 

Announcing the Biztalk Adapter Pack Poster

 

We are happy to announce the availability of the new BizTalk Adapter Pack Poster.

This poster covers interoperability with Line-of-Business Applications using the BizTalk Adapter Pack and the Windows Communication Foundation (WCF) LOB Adapter SDK.

This poster depicts the functionality, components, architecture, and usage/hosting scenarios of BizTalk Adapter Pack 2.0 and of the WCF LOB Adapter SDK. When printed in full scale, this poster size is 38”x 26”.

 

The poster in PDF format is available for download in the Microsoft Download Center.

 

BizTalk Adapter Pack Poster

 

We have designed this poster to promote the adoption of the Adapter pack and of the Adapter SDK. This would simplify service enablement and interoperability with Line of Business Applications or any metadata-rich systems.

I have recently posted three WCF Adapter samples off the BizTalk Server Developer Center at http://msdn2.microsoft.com/en-us/biztalk/bb608378.aspx, Two samples were released today. The first one is of a WCF message intemediary where an incoming WCF message to BizTalk is dynamically channeled to the correct version of the the WCF service. The second one is shows custom message interception during BizTalk Server's binding processing of an outgoing WCF message. The third sample was published in January and is an example of using pure WCF messaging with the WCF adapters.

Hi

Is there a specific WCF adapter sample or whitepaper you feel you would like to see written? If so, please email me directly and let's discuss to see if I can get what is needed any WCF adapter content.Please put on the subject line "WCF Adapter Documentation Recommendation" ,and send to mckeown@microsoft.com. Thank you.

Believe me, the adapter is telling the truth! It really doesn’t understand the action it got! To understand what’s going on, read on…

When you use the ‘Consume Adapter Service’ wizard to generate LOB schemas in a BizTalk project, you also get a binding file which you can import (using the BizTalk Administration Console) to create the corresponding physical WCF-Custom port (Send or Receive Port, based on whether the contract was Outbound or Inbound respectively) when deploying your BizTalk Application. While this does save you the pain of creating and configuring the port manually, there is a ‘not-so-obvious’ caveat which you need to be aware of. (This applies only to send ports i.e. Outbound Contracts)

The WCF-Custom Adapter allows the SOAP Action to be specified in the following two ways on the static send ports:-

  1. As a single line of text – the port is used for a single intended operation (say ‘ABC Action’).
  2. As an xml, mapping each of a set of ‘Operations’ to the corresponding SOAP Action. This xml looks something like this:- (namespaces omitted for clarity)

    <BtsActionMapping>
               
    <Operation Name =”ABC” Action = “ABC Action” \>
                <Operation Name = “XYZ” Action = “XYZ Action” \>
    </BtsActionMapping>

The binding file created by the ‘Consume Adapter Service’ wizard chooses the second method to specify the action, even if you generate schemas for a single operation.

Now the question is, when a message comes to a port using such a mapping, how does it know what the intended operation was? Or more specifically, how does it know which action to use for which incoming message?

To make this decision, the WCF-Custom adapter compares the message’s BTS.Operation context property with the list of operations in the map (attribute ‘Name’). If a match is found, the corresponding action is used.

However, if the WCF-Custom adapter fails to resolve the operation name from the map, it assumes that the entire thing specified is a single line action (as in 1 above) and sends the whole string to the target adapter binding.

The most common scenario this could happen is when you create an orchestration and forget to change the operation names on the logical ports to appropriate names. By default, when you create a logial port in an orchestration, it’d be created with a single operation called ‘Operation_1’. The next operation you add (either on the same port or while creating another port) would be called ‘Operation_2’ and so on. You need to modify these default names to the appropriate names as the BTS.Operation context property derives it’s value from the operation name on the logical orchestration port which published the message to the message box. (That also means if you are not using orchestration and still want to use the Action-Mapping feature, you’ll probably need to write a custom pipeline component to populate this context property).

So if you are seeing the error mentioned in the title, what is possibly happening is this:-

Your FOO Adapter supports two operations with the corresponding actions being ‘ABC Action’ and ‘XYZ Action’. You generate the schemas and the binding file, create an orchestration (but forget to change the default operation names), tie the message types, deploy the project and import the binding file.

At runtime when you send a message, because you did not change the operation name on the logical port, the BTS.Operation property is set to ‘Operation_1’. The WCF-Custom adapter tries to look up this name in the map you specified on the send port (by importing the binding file). Since it does not find any operation by the name ‘Operation_1’, the WCF-Custom adapter believes that whatever you specified on the port is a single line action and passes the same to the FOO adapter.

So, instead of getting “ABC Action” or “XYZ Action”, which it understands, the FOO adapter gets “<BtsActionMapping><Operation Name =”ABC” Action = “ABC Action” \><Operation Name = “XYZ” Action = “XYZ Action” \></BtsActionMapping>”.

Clearly, it doesn’t understand that action!

Ok, so what do I do to fix this?

 In the above example, you should change the operation names on the logical ports in the orchestration to ‘ABC’ and ‘XYZ’ instead of the default ‘Operation_1’, ‘Operation_2’ etc. (Of course, you can also do it the other way round – change the mapping on the port to use names in the orchestration or, if there is just one action to use, specify the action directly on the port instead of using the action map.)
Basically, you need to make sure that the WCF-Adapter is able to resolve the operation name on the message to use the correct action, as explained above.

There are two ways the adapters belonging to Adapter Pack can be used by SQL Service Integration Services:

1. Using ADO layer built on top of base adapters. This option is available with SAP and Siebel adapters.

2. Writing custom SSIS task which directly invokes adapter to communicate with LOB system.

Option 1 covers all scenarios where data need to be moved from LOB system into SQL server. The reason being that ADO layer exposes only Query and Execute interfaces. Using these ADO interfaces, we can only pull out data from LOB system.

If usage scenario is such that data has to be loaded into LOB system, then option 1 doesn't help. But that is the not end of story. We can write custom SSIS task. This custom task essentially wraps the adapter as destination component. Once adapter is exposed as SSIS component, it is available for use in any SSIS scenario.

More Posts Next page »
 
Page view tracker