Welcome to MSDN Blogs Sign in | Join | Help

About WCF LOB Adapter SDK (ASDK)

Many large enterprises have disparate systems including legacy mainframe, packaged and homegrown applications that need to be integrated with each other to provide end user solutions.   The technology integration becomes more complex after companies go through Mergers and Acquisitions, which are prevalent in Financial and Telecom Industry verticals.   Back-end systems such as SAP, PeopleSoft, Siebel, Oracle, IBM CICS, IMS, VSAM and Relational Databases are collectively known as Line-of-Business (LOB) applications.  Adapters provides legacy modernization by bridging existing back-end applications with the modern interfaces. Windows Communication Foundation (WCF) provides a unified framework for building distributed applications, including creating adapters to existing applications.

The WCF Line-of-Business (LOB) Adapter SDK is a collection of runtime engine and tools to help Adapter Developers in creating service-oriented interfaces to existing LOB applications using WCF.   The goal of the WCF LOB Adapter SDK is to facilitate uniform development of reusable metadata-oriented WCF-based adapters that enable enterprise applications, databases and messaging platforms to integrate with each other.  The Adapter SDK is based on WCF Channel Model and it surfaces an adapter to a LOB application as a WCF Binding

The Adapter Consumer can access an adapter like a typical WCF Service and doesn't have to learn a new programming model.  The same adapter developed using the Adapter SDK can be reused in multiple .NET applications including Custom WCF Client Applications, BizTalk Server, SharePoint Server and SQL Server Integration Services (via adapter developer provided ADO.NET shim).  In addition, this SDK provides a common facility for Adapter Developers to expose rich LOB metadata to the Adapter Consumers, who can selectively browse, search and retrieve WCF contracts from this available metadata in the adapter.

Architecture 

WCF LOB Adapter SDK is based on WCF Channel Model and the adapter built using ASDK is technically a Transport Binding Element, representing a transport channel at the bottom of a WCF Channel Stack.  A pre-defined binding is created for an adapter to complement the standard system-provided bindings including BasicHttpBinding, NetTcpBinding and NetNamedPipeBinding.  This pre-defined binding can be customized to include other aspects of communication such as Protocols, Security, Reliability, Transanction Propagation and Interoperability.  A WCF Custom Binding can also be written using the scratch to add custom Quality of Service (QoS) behaviors on top of the adapter.

The following diagram(s) shows how a WCF LOB Adapter fits within a WCF channel stack.

Outbound

Inbound

 

 

 

 

 

Goals

Here are three main goals of the WCF LOB Adapter SDK

1.       Uniformity

o   Includes API for adapter developers to build adapters in a consistent and repeatable manner

o   Every “integration technology” implements its own adapter framework - with WCF LOB Adapter SDK there is just one

o   Provides an abstraction layer between service oriented world and proprietary application interfaces

 

2.       Reusability

o  Provide building block application components

o   Enable uniform interfaces across various integration technologies

o   Surfaces adapter as a WCF binding, widening reach

 

3.       Consumer-Driven Contract Generation

o   Generate operations and business objects by introspecting target system

o   Browse/Search and generate WCF contracts

o  Service Contract reflects changes using live function and type model of the target system

WCF LOB Adapter SDK Features

Audience

Tools

Runtime

Adapter Developer

Adapter Development Wizard

·         Adapter Development Code Generation Wizard

 

·         Connection Pool Management

·         Metadata Cache Management

 

Adapter Consumer

Metadata Explorer

·         Add Adapter Service Reference Visual Studio Plug-In

·         Consume Adapter Service BizTalk Project Add-In

 

 Relationship with BizTalk Server

Microsoft BizTalk Server ships with BizTalk Adapter Framework which promotes creating custom adapters for use within BizTalk Server.  BizTalk adapters use the BizTalk Server Administration Console for adapter management, BizTalk Explorer for adapter configuration, and the Adapter Framework for design-time APIs.  WCF LOB Adapter SDK is the evolution of BizTalk Adapter Framework.  Since WCF LOB Adapter SDK is based on new architecture, the adapters built to Adapter SDK will continue to co-exist side-by-side with the adapter written using BizTalk Adapter Framework.    Microsoft and Microsoft’s Technology Partners have built adapters using BizTalk Adapter Framework.  The future direction recommended by Microsoft is to start using WCF LOB Adapter SDK for building new adapters.  The following diagrams show how the new adapters built using the Adapter SDK can co-exist with the adapters built using BizTalk adapter framework. 

 

BizTalk Adapter Framework

 

WCF LOB Adapter SDK

 

 

 

Relationship with WCF

The base adapter class in WCF LOB Adapter SDK derives from WCF System.ServiceModel.Channels.TransportBindingElement and includes browse, search and resolve metadata interfaces for Adapter Consumer to selectively generate the ServiceDescription.  The adapter created using this SDK is surfaced as a WCF binding and is technically a line-of-business system channel. 

The following characteristics make adapter channels different from regular WCF transport channels:

          Adapters are metadata-centric

o   Require metadata at run-time

o   Require metadata cache management

o   To provide design-time experience, they need to implement search/browse/resolve API

          Adapters are always connection-oriented

o   Connection is very central concept for the adapter

o   Require connection pooling and connection life-cycle management

          Adapters are effectively “in-proc WCF Services”

Even though an adapter is NOT a WCF Service, consuming an adapter is similar to using a WCF Service, due to metadata generation capabilities provided by the adapter. The adapter consumer is not required to learn a new programming model.  The client can use either the WCF Service Model or WCF Channel Model to communicate with an adapter.

A typical WCF service programming lifecycle begins by a Service Provider defining a static service contract, implementing this contract and hosting the service.  Each service is defined entirely by a fixed monolithic contract.   This contract needs to be updated by the service provider in order to reflect any changes in the existing application. The Adapter built using WCF LOB Adapter SDK, on the other hand, surfaces the contracts on-demand by consumer.   The consumer browses through the available metadata in the adapter using the standard interfaces and then selects the operations and types for inclusion in a dynamic contract.   This metadata reflects live changes from the back-end application.  Let's take an example of creating service-oriented interfaces for stored procedures in a database.  If you were to use WCF service programming model, you can use the very intuitive declartive attributes (ServiceContractAttribute, OperationContractAttribute, etc.) to map each stored procedure as an operation in a WCF contract.  But whenever there is a change in the stored procedure or a new stored procedure is added, the service developer has to make changes in the contract and re-host the service.  With WCF LOB Adapter SDK on the other hand, the metadata resolver API in the adapter can be implemented to generate the WCF contract dynamically at design-time by querying the stored procedure input/output parameters.  So, if there are 50 stored procedures, the adapter consumer can browse/search through these 50 service operations.  He/she can then select the desired operations, pass these selected identifiers back to the adapter, so adapter can resolve the operation input and output for these operations and return back a WCF contract.  This WCF contract can be then used as raw XML Schemas (in BizTalk Server 2006 R2) or as Common Language Runtime (CLR) proxy (in custom .NET applications). 

Adapters are more appropriate in scenarios where a non-WCF based system is required for integration, and this system is dynamic with large amount of metadata.

WCF

Static Contracts

WCF LOB Adapter SDK

Contract Composition

 

 

Basic WCF Programming Lifecycle

 

Service Provider

1.       Define the service contract

2.       Implement the service contract

3.       Configure service by specifiying endpoint information

4.       Host the service

Basic Adapter Programming Lifecycle

 

Adapter Developer

1.       Build an adapter and implement Metadata Browse, Search and Resolve interfaces

2.       Register the adapter as a WCF Binding with the WCF configuration system

 

Service Consumer

1.       Obtain a service contract, binding and address information for a service endpoint

2.       Use Svcutil.Exe or "Add Service Reference Plug-In" to create a WCF client proxy using that information

3.       Use the WCF client proxy in the client application

 

Adapter Consumer

1.       Use Add Adapter Service Reference Visual Studio Plug-In/Consume Adapter Service BizTalk Project Add-In to search and browse the operations available in the adapter

2.   Select one or more operations and generate a WCF contract

3.     Use the generated contract implementation (proxy / XML Schemas / WSDL) in the client application

 

Related Posts

Using Adapter Development Code Generation Wizard

Published Monday, March 26, 2007 12:15 AM by sonua

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

# WCF LOB Adapter!!! « Its my Place at my Pace….

Wednesday, April 04, 2007 8:52 AM by WCF LOB Adapter!!! « Its my Place at my Pace….

# WCF "Line of Business" Adapter SDK

While looking for information on how to expose a proprietary WCF binding as a standard binding in the

Tuesday, April 10, 2007 5:47 AM by Pedro Felix

# WCF-LOB-Adapters & Microsoft Dynamics products!!!

I was digging into this new WCF-SDK several weeks ago, and now, I am very interested in it because it

Monday, May 14, 2007 5:30 PM by Cesar de la Torre - BLOG

# Integración de Aplicaciones Empresariales, WCF LOB Adapters

Una de las cosas que más se repite en la implantación de una herramienta CRM, es la necesidad de integrarla

Thursday, July 05, 2007 4:11 AM by El del CRM

# re: About WCF LOB Adapter SDK (ASDK)

The technology is great. But the language of the article is not very precise and confusing.

Tuesday, July 24, 2007 2:57 PM by Gustavo

# WCF LOB Adapter SDK is now generally available for download . . .

We are pleased to announce the release of WCF LOB Adapter SDK. Here are some of the related links: WCF

Wednesday, August 08, 2007 4:23 PM by Developing adapters using WCF

# WCF LOB Adapter SDK Download

WCF LOB Adapter SDK is now generally available for download . . . We are pleased to announce the release

Wednesday, August 29, 2007 7:17 AM by BizTalk Adapter Development

# WCF LOB Adapter SDK is now generally available for download . . .

Microsoft announce the release of WCF LOB Adapter SDK. Here are some of the related...

Friday, August 31, 2007 4:10 AM by Connecting Systems the Microsoft Way

# WCF LOB Adapter SDK is now generally available for download . . .

WCF LOB Adapter SDK is now generally available for download . . .

Friday, August 31, 2007 4:10 AM by Connected Systems Chilled Out Blog

# re: About WCF LOB Adapter SDK (ASDK)

Hi, Very nice article, Bravo.

I just want know one thing. Can we use LOB Adapter without biztalk server participating in any aspect Or biztalk has to be on one side, while its interface is exposed as Service Contract on other side any application to consume?

Thanks,

Wajhi

Friday, February 01, 2008 12:43 PM by wajhi

# re: About WCF LOB Adapter SDK (ASDK)

Wajhi, You do not need to install BizTalk Server to use the WCF LOB Adapter. The same adapter can however be used within the BizTalk Server port definition through BizTalk WCF-Custom adapter bridge.

Sunday, February 03, 2008 8:36 PM by sonua

# re: About WCF LOB Adapter SDK (ASDK)

Hi,

Do you have any WFC adapter for Dynamics Axapta?

Thanks and Regards,

Dilip

Please email me on: dilipn123@gmaildotcom

Monday, February 04, 2008 5:20 AM by Dilip

# WCF LOB Adapter SDK - Falando com as aplicações de negócio.

Olá pessoal, tudo certo? Depois de uma grande discussão sobre o mundo SaaS com o último post, vamos olhar

Saturday, March 15, 2008 1:12 PM by Arquitetura de Soluções

# Getting OnAdapterChangedEvent event to fire

I'm trying to use the events for the browser control.  I can get the "OnMetadataOperationsChangedEvent" to work, however, the event below NEVER fires.  Does anyone know if this works?   Thanks:

private void OnAdapterChangedEvent(object sender, Microsoft.ServiceModel.Channels.Tools.MetadataSearchBrowse.AdapterChangedEventArgs e)

       {

               myAadapterName = e.Adapter.Name;

       }

Tuesday, March 25, 2008 12:57 PM by Marty W

# re: About WCF LOB Adapter SDK (ASDK)

Can This Adapter be used to interface a PeopleSoft front end Application with OCS at the back end?

Wednesday, February 11, 2009 5:09 AM by Shridhar

Leave a Comment

(required) 
required 
(required) 

  
Enter Code Here: Required
 
Page view tracker