BizTalk AppFabric Connect: An Introduction

[Update 21/10/2010: Made changes to the article to reflect the changes in branding and features post RTM]

In the recently released BizTalk Server 2010, we introduced a new feature of BizTalk called “AppFabric Connect”, which allows users to easily develop simple integration applications. With this feature, users can:

  • Develop Windows Workflow applications that require connectivity to backend Line of Business (LOB) systems like SAP, Oracle DB, Oracle E-Business Suite, Seibel, and SQL Server without writing custom code for LOB connectivity.
  • Develop XML-based data transformation using the easy-to-use and rich user interface of BizTalk Mapper that can be launched and used right within a .NET/WF project

In this blog, I will provide an overview of this feature. A more elaborate whitepaper with a tutorial can be found here.

With this feature, Windows Workflow Foundation (WF) activities are provided to the end user to programmatically access BizTalk’s LOB connectivity and data transformation capabilities. This enables users to easily create new composite applications using the WF model, which can be deployed, hosted, managed in Windows Server AppFabric. This also enables web-based applications to access LOB data. This can help a class of scenarios (such as Web-based queries) that are best effort, short running and don’t require the durability/persistence provided by traditional BizTalk Server. A typical application architecture may look like below:

Figure 1 A workflow service hosted in AppFabric/IIS connecting to a Line-of-Business system

Connecting to a Line of Business System

BizTalk provides a set of WCF based adapters that provide easy connectivity to Line of Business (LoB) systems. To use this, you need to install the WCF LoB Adapter SDK and the BizTalk Adapter Pack, which are available as part of BizTalk Server 2010 release.

To use this feature from a WF project in Visual Studio, click the “Add Adapter Service Reference…” menu item.

This brings up a dialog box (like the one below) which you can use to connect to the LoB system. The dialog box allows you to browse through the artifacts supported by the LoB system and choose the operations you want to use. For example, in the screenshot below, we use the “Select” operation on the SQL Database table “CustomerInfo”.

When you click OK, the plugin will generate WF activities for the operations you have selected. You must build your project to see the activities on the Visual Studio Toolbox (See below). Once that is done, you can simple drag-and-drop the activities to use them in your workflow.

 

 

Transforming Data using the BizTalk Mapper

BizTalk provides a rich GUI-based tool for performing data transformations for XML data. We can now use this capability to map .NET types from a WF application through the Mapper activity. You will see this activity on the Toolbox under the “BizTalk” category after you install BizTalk Server (Developer Tools) and the WCF LOB Adapter SDK.

To use this mapper activity, you need to specify the InputDataContractType and the OutputDataContractType. As the name suggests, these are .NET types for the input data and the output data for the activity. You can then create a new map or select an existing map based on these types. If you are creating a new map, the activity will generate the XML schemas for the selected input and output DataContract types and a new BizTalk map (.btm) file.

You can then open and edit the BizTalk map file in the BizTalk Mapper GUI from within the WF project itself. When the map file is saved, it will automatically be compiled and built along with the project.

The mapper activity has an input argument that takes the data to be transformed and an output argument where the transformed data is stored. You can create workflow variables to pass the input and store the output from the activity. At runtime, the input data will first be serialized into XML. It will then be transformed using XSLT generated from the map file and finally de-serialized back into an object of the output type.

Summary

With these features, developing web applications which require access to LoB data will be a lot easier. The ability to use the BizTalk Mapper for data transformation means that different data in different LoB systems can be transformed using an interactive and intuitive GUI-based tool. Windows Server AppFabric provides a hosting service to deploy and manage these applications.

We would be happy to see you try out these features in your workflow applications, and receive your feedback. You can either write to me directly (sameerch @ microsoft . com) or leave a feedback here on this blog.

Sameer Chabungbam
Program Manager, BizTalk Server Team

Tracking WCF Data Services with Windows Server AppFabric

WCF Data Services provides a very simple model driven way to expose data using REST and the OData format.  As I was preparing my talk for Tech-Ed on Implementing REST in .NET I was asking myself if there would be any value in using Windows Server AppFabric with WCF Data Services.  After all, AppFabric has monitoring which can capture tracking information across the server farm storing it in a monitoring database.  Typically we show Workflow Services using this capability because they provide such a rich stream of tracking events. However, it is quite possible to use AppFabric to monitor data services.  In this post I’ll take you through step by step how you can do it.

Note: To make this post more readable – click on the images to see them full size.

Step 1 – Host your site in IIS

To benefit from Windows Server AppFabric your web application must be hosted in IIS.  To use Visual Studio with IIS you must run it as administrator.  Then go into the project properties of your web application and set it to run in the local IIS server.

Step 2 – Browse to your service and see the monitoring in action

In my RESTWeb demo application I’ve added some links to the Default.htm page that will exercise the service.  If you run the app and hit a few pages you will see that AppFabric captures information about your service being invoked. 

To see it

  1. Open IIS Manager
  2. Select the RESTWeb website by expanding the Default Web site
  3. Double click on AppFabric Dashboard
  4. Check the WCF Call History section

Here you can see that there were 4 calls to the WCF Data Service named Conference.svc.  If you click on the hyperlink for Conference.svc you will get the detail on those 4 calls.

This is good, but because we have a WCF Data Service all the requests look the same in the tracking data.  We can see that somebody invoked the service but we don’t know what things they were querying in the model or if they were doing a GET, POST, PUT etc. 

Step 3 – Instrument your service to emit custom tracking records

In my RESTWeb web application, I’ve added some sample code I got from the AppFabric guys (with some minor modifications from me) that shows how you can emit a custom tracking record that will be displayed in AppFabric.  By overriding the DataService.OnStartProcessingRequest method, I can now emit a tracking record with details of the request.

    public class Conference : DataService<ConferenceDataEntities>
    {
        // Sample class allows you to emit custom tracking records
        static WCFUserEventProvider eventProvider = new WCFUserEventProvider();

        protected override void OnStartProcessingRequest(ProcessRequestArgs args)
        {
            string text = string.Format("Processing HTTP {0} request for URI {1}", 
                args.OperationContext.RequestMethod, args.RequestUri);

            // Push the event through ETW to AppFabric
            eventProvider.WriteInformationEvent("Conference Request", text);
        }

Step 4 – Enable End-To-End Tracking

To make this work you have to turn on end-to-end tracking in AppFabric.  To do this

  1. Right click on your web app and select Manage WF and WCF Services
  2. Select the Monitoring Tab
  3. Set the monitoring level to End-To-End

 

Step 5 – Verify Behavior

  1. Run a few more queries through your data service. In my RESTweb example just click through a few links on the home page.
  2. Open (or refresh) AppFabric Dashboard as you did before.
  3. Click the link for calls to Conference.svc
  4. Right click on the top event and select View Related Events
  5. Now you will see a number of related events (related because of end-to-end tracking) – the tracking record payload will contain the message we created in the code.

Summary

The attached sample code is what I showed at my Tech-Ed Session.  Hope you find it helpful.

TechEd 2010 – Day 2

 

I opened up day two with a session involving Connecting to Line Of Business (LOB) systems in 15 minutes

We saw:

  • A demonstration of the BizTalk mapper activity in WF
  • Many questions from the audience regarding the licensing model.  Some people questioned that if you had to buy a BizTalk Standard license to use the Mapper and LOB adapters then why wouldn’t you just use BizTalk.  The response was that there may be some scenarios where you still want to avoid the BizTalk message box but want to connect to LOB systems like SAP without having to write a lot of code to transform data between the two systems.  The BizTalk Mapper will easily pay for itself over time as it allows you to convert data through a GUI tool instead of writing a lot of code.
  • You will not have to install all of BizTalk in order to use these two new activities in WF.  Microsoft plans on providing a “AppFabric Connect” feature that allows you to just install the BizTalk bits that you need
  • Licensing for these components will be based on the same model that BizTalk standard edition uses so you will be paying per proc(and not by the core)
  • Oracle adapter exposed as WCF service that SharePoint BCS (Business Connectivity Services) consumed…no code is required.
  • Connecting to IBM lob systems in a similar manner.  Use the BizTalk HIS components outside of BizTalk and connect to legacy IBM systems without BizTalk.
  • I got the sense that a lot of .Net developers were excited to see these capabilities but not so excited that they needed to pay for BizTalk licenses in order to use these bits.

Another interesting session I saw involved extracting SAP data so that it can be used by Microsoft BI tools.  The tool is called Simplement Data Liberator.  We heard from one of their customers who uses a blend of SAP and Microsoft tools.  They explained some of their Roadblocks to “True BI”;

  • SAP tables difficult to understand
  • SAP tables difficult to extract
  • Need too many experts
  • Explicit skill set required to use a SAP BI tool
  • Needed real time access to SAP data
  • Needed SharePoint integration
  • Better value with Microsoft Consultants
  • Wanted wider talent pool

SAP has over 50 000 tables so trying to extract data manually or through Custom code is a daunting experience.  The Simplement Data Liberator tool has solved this challenge. The Tool replicates SAP data into SQL Server. You can get both German and English Meta data  and SAP Security  info is also replicated.  This tool eliminates the need to write ABAP for reporting in SAP.  Surface SAP data into Microsoft BI products by using SQL queries.

Other features:

  • Work with only tables you need
  • Load into SQL server via replication
  • Manipulate/Transform data such as dates (ETL)
  • Attached meta data so that you can use English Table names
  • Use SharePoint, Excel services or SQL Server Reporting Services (SSRS) to query data

We saw a demo where a customer was updated in the SAP GUI system and within seconds (3-5) the data was in the SQL BI system.  I must say that I was impressed by the demo, it seems like this vendor understands SAP very well and has figured out a way to lower customer costs when consuming SAP data.

View from the BizTalk Booth 

More great questions and conversations about BizTalk:

  • An excellent conversation about End to End Message Security.  You always want to trust your developers to do the right thing, but how do you prevent a developer from adding their own receive location, or subscription in BizTalk for malicious purposes; to prevent a rogue developer from depositing money into  their Bank Account via BizTalk.  If anyone one has thoughts on this type of scenario and have figured out a way to solve it I would be interested in hearing about it – use comments below.
  • Whether BizTalk is truly pub/sub due to the polling nature of the Host instance connecting to BizTalk MessageBox looking for more work.  This attendee was looking for more Event Driven processes inside BizTalk.
  • A DBA was interested to know how BizTalk will connect to their Database and some of the “gotchas” to look out for
  • A few people that closed the door on BizTalk after BizTalk 2004 that are now back taking another look at BizTalk 2010.  I can’t say this enough, the product has matured significantly over the past and it is worth taking another look at
  • Connecting BizTalk to the AppFabric Service bus in order to connect with other external parties

Our new book SOA with .NET and Windows Azure is now available!

After a long effort, working with Thomas Erl and a very talented team of individuals, I finally got to hold a copy of the latest book I co-authored (and carry it around like a proud new father might) at TechEd in New Orleans.

It’s real, and it’s here now! It is in-stock at Amazon.

If you’re here at TechEd, John deVadoss, Christoph Shittko and myself (we are all part of the author team) will be doing our session tomorrow (Wednesday) at 8:00am. The session is “ASI202 – Real-World SOA with Microsoft .NET and Windows Azure”, so you can see the parallels with the book title. It is an architectural-level presentation that will focus on pain points, patterns and solutions. We will be in room 287.

We will also be doing a book signing tomorrow at the Addison-Wesley/Sams Publishing booth in the expo hall (booth #1942 and 1944) at 2:45 on Wednesday. The way things are set up this year, if you want to get a book signed, you need to go buy it beforehand at the bookstore (on the second floor) and then come and and see us. We’ll be there for 45 minutes or so.

http://www.soabooks.com/net

TechEd 2010 – Day 1

Below are some of my ad hoc notes from TechEd 2010 in New Orleans. 

The Atmosphere

Much more encouraging than last year, in my opinion.  The numbers seem to be up and the convention centre is very busy even though the facility is huge.  Microsoft has rented over 1 mile worth of space to host the event.  At a meeting that I attended on Sunday, a Microsoft rep indicated that registrations had exceeded their expectations this year.  They attributed this to improvements in the North American economy.

Keynote

A great deal of the keynote was dedicated to cloud computing.  The phrase that has been floating around Microsoft circles for the last little while is “we’re all in” meaning Microsoft is betting big time on the emergence of cloud computing.

Some items that were discussed include new tools available for Developers and IT Pros to monitor cloud applications including:

  • Intelitrace for Azure
  • SCOM Management packs for monitoring Web Roles and other artifacts in the cloud
  • SQL Management Studio integration for managing SQL Azure databases

Microsoft discussed a client, Chicago Tribune, and their shift from moving On-Premise assets to the Cloud.  Some of the key drivers for this move includes:

  • Reduction in the amount of Data centers required to run their operations
  • Pay as you go Scalability.  As you can imagine there would be some very newsworthy days that would stress a media outlet’s IT infrastructure
  • Reliability and Uptime.  If your site is down, people will just go to your competitor’s site.

Other announcements

  • Windows 7 SP1 and Windows 2008 R2 SP1 will enter Beta in July (2010)
  • Windows 2008 R2 SP1 will include enhancements such as Dynamic Memory
  • Office Communication Server 14 is schedule for Q4 – 2010 Key Features include
    • Tighter SharePoint and Exchange integration
    • Picture displays in the OCS Client as pulled from SharePoint
    • Pictures include a presence border (Green/Yellow/Red)
  • Microsoft has over 74 000 Enterprise voice users internally and saves $1 million per month by using OCS and Live Meeting for long distance and conference calls
  • Use OCS to search for Skills within your organization
  • 720p video supported with OCS 14
  • Exchange pushes polices down onto Windows Mobile 7 phones
  • Windows Mobile 7 supports multiple exchange accounts including on-premise and in the cloud
  • Windows Mobile 7 easily separates your work and you life within one phone
  • Edit documents from SharePoint using your Windows Mobile phone

Other Sessions

BizTalk 2010 and VNext

  • Customer wants include better alignment with Platform releases (SQL/Windows/VS)
  • Session was full – BizTalk interest is alive and well
  • Enhanced Mapper exists in 2010 that allows for
    • Functoid “Move to page”
    • Reduction of noise by focusing on specific areas
    • Node Search
    • Undo
    • New Ribbon at the top of Mapper – Ribbons are in-style
  • Mapper and LOB Activities are available within WF Workflows
    • A license will be required – potentially a BizTalk Standard license
    • Potentially, BizTalk Dev edition may become a free version
  • Enhanced BizTalk Management Pack for SCOM will be included
    • Better terminology and modeling used
    • Better support for multi-node BizTalk deployments
    • Adoption of SCOM still low for BizTalk deployments (around 10-20% of the room uses SCOM – non-scientific survey)
  • Settings Dashboard available in 2010
    • Allows for more granular control over performance settings
    • Some Settings remain Global, some Host specific and some Host Instance/Machine specific
    • Settings are scriptable via WMI
  • Upgrade
    • Full support from BizTalk 2006 R2 and BizTalk 2009
  • New FTP Adapter
    • FTPS protocol is supported
    • Support for read only scenarios
    • Improved performance when connecting to AIX systems
  • VNext
    • Plans still vague but looking at more Cloud integration – perhaps we will see BizTalk in the cloud or Transformations as a service in the cloud

Building Communication enabled Business Processes with Microsoft Communications Server 14

This session contained some really cool demos and makes me wish I had more spare time.  I saw some demos where a CRM application was extended to include OCS integration.  You may be saying what is the big deal you can do this today?  What was really neat was that they were able to push the CRM context into OCS so that when you called/IM’d the recipient their OCS window would be expanded to include context about what you were contacting them about.  Imagine you needed to speak to “Bob” about customer “XYZ’s” payment.  Wouldn’t it be nice to include the data that you are looking at as part of the conversation so that Bob does not have to log into the CRM? This is now possible by using the Microsoft Communications Server 14 API.  The API seemed very intuitive and includes XAML components that allow you to drag and drop these components onto your WPF/Silverlight canvas.  I see plenty of opportunities of this type of functionality in Contact Centre or CRM type applications.

View from the BizTalk Booth

This year I am spending some time helping out at the BizTalk Booth.  I thought it would be interesting to post some of the questions or trends that I am seeing while visiting with other attendees. 

  • Many people still don’t know what BizTalk is/does.  Once you explain it to them, they usually provide a response similar to “I have a broken down process that is hard to manage and is unreliable, can I use BizTalk in that scenario”?  The answer in many cases is Yes.
  • A great question came up regarding BizTalk and SAP Enterprise Services with respect to performance
  • Some people expressed frustrations over previous versions specifically some of the management tools in BizTalk 2004.  For those that have been there before and have moved on, I encourage you to come back and take a look at what BizTalk 2010 has to offer.  The tooling, tracking and management of applications has greatly improved.
  • Great questions around how do you manage your BizTalk environments?  The answer is SCOM, but you need to invest some time so that you do not create a SPAM engine.  I wouldn’t want to manage a BizTalk environment without a tool like SCOM as it provides great visibility into the Health of your BizTalk application. Tune, tune and then tune again to find the right balance.

Updated IP addresses for AppFabric Data Centers

Today (6/7/2010) the Windows Azure platform AppFabric has updated the IP Ranges on which the AppFabric nodes are hosted.  If your firewall restricts outbound traffic, you will need to perform the additional step of opening your outbound TCP Ports and IP Addresses for these nodes. Please see the 1/28/2010 “Additional Data Centers for Windows Azure platform AppFabric” posted which was updated today to include the new set of IP Addresses.

Windows Azure platform AppFabric Team

Windows Server AppFabric now Generally Available

We are thrilled to announce the final availability of Windows Server AppFabric!

As announced today at TechEd North America, Windows Server AppFabric is available for download to Windows Server 2008 (and Windows Server 2008 R2) Standard Edition and Enterprise Edition customers. 

Additional information on Windows Serer AppFabric can be found at the following locations:

Thank you to everyone who participated in the beta program and provided invaluable feedback – we couldn’t have shipped it without your input.

Happy downloading!
– Cliff

iPad becomes toughPad

So on Thursday afternoon, I picked up a beautiful new iPad 16gb WiFi.  As an avid iPhone user, I find the device to be everything I expected, and used it all day Friday happily.

On Saturday night, technically Sunday morning, I was leaving the home of my brother after a night of playing poker, and drove out of his driveway with the iPad on the roof of my Suburban.  My drive was 5 minutes of city streets, and somewhere along the way, on a road I was going about 30 miles per hour on, my phone took the plunge.  Now, of course, I didn’t notice this at the time.  So it fell into the roadway and I drove on.  When I finally realized it was missing when I got home, I called my brother who went out from his place, we met in the middle and he found it in the road for me.  The iPad had been in a black Belkin neoprene case I had purchased for my Kindle DX while I waited for Amazon to deliver my Speck CandyShell case, and the zipper was now ruined, so my brother left the tearing open of the case to me.  What did I find inside, after a 5 foot fall going 30 mph and then (as I would soon discover) having been run over by another car?  Here are the photos

 

As you can see, clearly the device was run over, likely while laying glass-down in the case on the road, by a vehicle.  The device though continues to work PERFECTLY.  The screen has two areas showing some extra brightness where I suspect it is being pressed on from the rear, but despite this incredible event that I would have expected most devices to have been destroyed by, the iPad came through a little worse for wear but otherwise unscathed.  The sides of the aluminum case are puckering away from the screen slightly, and the corners are roughed up a bit, but overall it came through amazingly well.

Thank you Apple for a quality product, and saving me from being killed by my wife when she heard about this event.

Pluralsight makes virtual training available On-Demand!

Pluralsight makes virtual training available On-Demand!

Pluralsight is excited to announce a new addition to the product line-up: virtual classroom training!

We’ve actually been doing virtual classroom deliveries since the beginning of the company over 6 years ago, but it was only upon request. Now, the virtual classroom is a first-class citizen in our training delivery strategy.

You can learn all about our new addition on the new virtual training landing page:

NewVirtualPage

Our public virtual courses are 5 days long, 3 hours each day. You’ll be assigned homework lab exercises to complete on your own before the next day of class. The first 40 min of each day will be spent reviewing the lab exercises from the previous day. You will cover 10 learning modules during the 5 day course, about 2 modules/day.

This usually equates to 80% of what we cover in our in-person classroom courses.

To attend a virtual course, all you need is a browser and you’ll be up and running within minutes. Any software you need will be installed on-demand. Software setup for labs is described in detail for each course, and varies by course, so the instructor will guide you through the setup on the first day of instruction.

During the course, you’ll develop a relationship with your instructor as you ask your questions and apply what you’re learning to your job. Our instructors are the best in the business, especially in this delivery format.

The most compelling thing about virtual is the price. You can register for any course for $499.

The virtual training experience becomes even more effective when combined with our Pluralsight On-Demand! training subscriptions. With an On-Demand! subscription, you can review course materials and demos between virtual sessions, and get answers to your questions even when the live instructor isn’t there. You can also explore related topics along the way to enhance and deepen your understand, as you prepare for the next day.

Given the synergy between the virtual and On-Demand! training options, we’ve packaged virtual training benefits into some of our On-Demand! subscription plans.

NewPlans

Premium subscriptions will now include 1 virtual training voucher, which will allow them to register for any of our 5-day virtual courses scheduled within their yearly subscription. We are also adding a new Ultimate subscription that comes with a full premium On-Demand! subscription plus 3 virtual training vouchers. This provides an unparalleled value when deciding how to spend your training dollar for the year.

We are very excited about these new additions and the additional value they’ll provide our customers. If you’re at TechEd this week, come by the booth to learn more.

You can begin registering for virtual events today, but the new Ultimate subscription and On-Demand! integration won’t be complete for another month. We’ll make another announcement once it goes live, so stay tuned.

Listen to a short private Webcast where we announced these changes to our customers.

Watch a short promotional video playing at our TechEd booth this week.

Pluralsight + InnerWorkings .NET Training Special

Pluralsight + InnerWorkings .NET Training Special

Having a hard time choosing between Pluralsight and InnerWorkings? This week at TechEd you don’t have to!

Pluralsight has joined forces with InnerWorkings to provide an amazing .NET training special to attendees this week. Both companies offer best-of-breed .NET training solutions that are very complementary to one another. Pluralsight offers the highest quality On-Demand! training videos on the market while InnerWorkings offers an innovative hands-on learning solution fully integrated with Visual Studio. Combining these two best-of-breed solutions offers you an unparalleled self-paced learning environment for ramping-up on .NET technologies.

All Teched 2010 attendees have the opportunity to purchase a full subscription to both training libraries for the price of one. Simply visit the Pluralsight or InnerWorkings booth this week to register for the offer.

poster_almost_final