Videos from the BizTalk Conference in Stockholm available on Channel9
15 October 10 10:52 AM | wmmihaa | 3 comment(s)

All the videos from European BizTalk Conference in Stockholm has been published on Channel9. Thanks to everyone attending, and of course also Richard, Ewan and Stephen for coming over to Sweden.

All sessions relates to the Applied Architecture Patterns on the Microsoft Platform book that came out just after the conference. It’s a great book, and I hope you feel compelled to buy it after you’ve seen these presentations :)

Enjoy…

colordrop1_thumb_5A99DF74[1]

Day 1 (Sessions from 8th of September)

Title Description Speaker
Welcome and Introduction   Richard Seroter
Choosing The Right Tool in the Application Platform Discuss the challenge of choosing the right technology for a given situation and present a decision framework for guiding evaluation. Richard Seroter, Ewan Fairweather & Stephen W. Thomas
Tech Overview: SQL Server Look at the core components of SQL Server that are used to build applications (e.g. SSIS) and when to use them. Ewan Fairweather
Tech Overview: BizTalk Server Discuss what BizTalk is and when to use it. Richard Seroter
Tech Overview: WCF/WF, Server AppFabric Highlight key capabilities in WCF and WF and benefits offered by Windows Server AppFabric. Stephen W. Thomas
Tech Overview: Windows Azure Platform Discuss Microsoft’s cloud offering and best usage scenarios. Richard Seroter
Pattern #1 – Simple Workflow Evaluate scenario that involves aggregating data from multiple sources and presenting a unified response Ewan Fairweather

Day 2 (Sessions from 9th of September)

Title Description Speaker
Pattern #2 – Content Based Routing Consider options for effectively transmitting data to multiple systems that perform similar functions Richard Seroter
Pattern #3 – Human Workflow with Rapair and Resubmit This video shows using SharePoint 2010 to store customer details.  Then using workflow 3.5 send these details to an AppFabric hosted workflow 4.0 Workflow Service.  This workflow service controls the payment collection process and allows for updating information on a use into the same workflow from SharePoint. Stephen W. Thomas
Pattern #4 – Cross Organization Supply Chain Evaluate how to build a supply chain to integrate systems in a PO scenario Ewan Fairweather
Pattern #5 – Remote Message Broadcast Demonstrates a scenario where traditional polling solution is augmented to support real-time updates Stephen W. Thomas
Pattern #6 – Complex Event Processing Addresses click stream analysis and creating actionable events from user and system behavior. Richard Seroter
Applied Architecture Patterns on the Microsoft Platform -- The Story Behind the Book
10 October 10 10:11 PM | wmmihaa | 1 comment(s)

All sessions from the European BizTalk Conference will be available on MSDN shortly.

For more information: http://appliedarchitecturepatterns.com/

How to use the new “FTPS adapter” with BizTalk 2010
26 September 10 11:30 PM | wmmihaa | 1 comment(s)

First of all – there is no new FTPS adapter. The already existing FTP adapter has been extended to support FTPS, which is really all you need anyway. However, several publications from Microsoft states there is a new FTPS adapter, which might be somewhat confusing.

So what is FTPS?

The support for FTPS was added with IIS 7.5, and is FTP over SSL, similar to HTTPS. Although it lacks some of the underlying infrastructure. When you visit an HTTPS site, you might be given various warnings if the certificate is not among your trusted ones. If you chose to ignore these warnings (and recommendations), you’re provided with the option of installing the public key in your certificate store. This logic is provided by your browser, and is a helpful way to manage your trusted sites.

The FTPS client (BizTalk in this case), however,  require the public key to be installed manually before it can use it. When you’ve installed it, it works like a charm.        

 

Create a Certificate

First you’ll need a certificate, a private key. There are several ways to create a certificate, but for the purpose of this sample, I’ll create one using IIS 7.5 manager.

Select the site root in the Connections pane on your left side. In the Action pane on your right, click the “Create Self-Signed Certificate”.

1

This will open a new dialog, where you can set a friendly name of your certificate:

2

When you’ve clicked Ok, you should be able to see the certificate in the list of Server Certificates. Select your newly created certificate and click “Export” in the Action pane. Set the path and password, and click Ok. this step will export the public key, which we’ll use later on.

 

Enable FTPS on your FTP site

As we now have a certificate created and registered on our server, we can proceed to enable our FTP site to use it. Select your FTP site, and double-click the “FTP SSL Settings” icon on your FTP Home page.

3

In the SSL Certificate dropdown list, select your certificate. You can choose either to Allow or to Require SSL connections. In this case I’ve chosen to “Require SSL Connections”. Click “Apply” in the Action pane, before you continue.

4

While in the FTP Home page, you might want to overlook the “FTP Authentication”, and “FTP Authorization Rules”.

Install the Public Key

Your FTP server is now ready to accept incoming SSL connections, and we can pursue with setting up the client (BizTalk). But first we need to install the public key, which you exported earlier. In my case, I’m logged in as Administrator, which happens to be the same account I use for my host instance. Hopefully, this is not the case for you, why you’ll to import the public key as the same account as you’re running the host instance with. However if you are logged in with the service account, double-click the certificate, and proceed with default values.

If you’re not logged on as the service account, open a command prompt and write the following:

runas /user:[Domain]\[User] "cmd.exe"

This will open a new command prompt, in which you type the path to where you saved the public key. Hit enter and proceed the wizard.

Extract the Thumbprint

image

Open the Certificate Manager (Start->Run->certmgr.exe), browse to the Trusted Root Certificate Authorities\Certificates folder, and double-click the certificate. Select the “Details” tab on top. Scroll down to the Thumbprint field, select it, and copy the value.

6

Configure Your BizTalk Port

7

I assume you are familiar to the normal FTP transport settings, so when you’re done configuring the server, port, username and password, paste the thumbprint in the “Client Certificate Hash” property. Set the “Use SSL” property to “true”. Start the port…You are done!

I’m a superstar and that’s how I do it!

HTH

BizTalk Sftp Adapter - New release 1.4 available on CodePlex
21 September 10 02:10 PM | wmmihaa | 1 comment(s)

I’ve got quite a few request for Proxy support through the years, and eventually someone (no names) got tired of waiting, hired me as a consultant, and forced me to implement it. So I’m happy to say the BizTalk adapter now comes with support for HTTP Proxy.

Support has also been added to:

  1. Enable "%UniversalDateTime%" macro on Receive Location (rename)
  2. "Leave File" on the Receive Location.
  3. Not throwing 10.000 exception to the eventlog (yes this is a feature)

Thanks to everyone giving feed-back through the codeplex site.

If you like it, please rate the project (If you don’t like it, you should not feel obligated to do so)

Get it at CodePlex...

image

You will still need to set the appropriate SSH parameters such as SSH Host, User name and Remote path. These parameters will be sent to the proxy server, which in turn will act as “man-in-the-middle” and connect to the SSH server using the parameters provided by the adapter.

Use AppFabric Cache to cache your WCF Service response
12 September 10 08:33 PM | wmmihaa | 19 comment(s)

[This post has been updated to support InvokeBegin and InvokeEnd to support BizTalk Receive Locations]

We’ve just finished the “BizTalk Release Party” in Stockholm, where Stephen W. Thomas, Richard Seroter and Ewan Fairweather held some fantastic sessions. One of the talks was about the AppFabric Cache formally known as “Velocity”.

Whenever I come across a new technology I try to put it in some useful context, where I can try it out. This is usually a quite painful process, as I tend to do this long before the technology has reached any sort of mature state. AppFabric Cache is a v1 product and therefore considerable more stable then other products or technologies I’ve been experimenting with.

While Ewan was presenting the Windows Server AppFabric Cache I though it could be interesting to use it for caching outgoing WCF service responses, so that the back-end logic would not be executed if it was cached. I’m not sure how useful this scenario really is, but I guess there could be many scenarios where it would be ok not to get the latest version of the information. Some of those situations might be:

  • Where the information is accessed during office hours, and only updated through nightly batches.
  • Where a composite service get bursts of calls that would often be the same.
  • When services expose static data which will seldom change over time.

In my sample I’ll use a fictitious Weather Forecast Service, which I think would qualify as good candidate because:

  • Nobody trust the weather forecasts in the first place, so it doesn’t matter if the result not 100% up to date.
  • The service is frequently called with the same input parameters (Zip code).
  • The service will support a very popular IPhone Windows 7 Mobile application, which in turn will cause an immense load on our back-end systems.

 image

 

How it works:

WCF: The incoming call from the client is received through the Transport channel, after which it will proceed through an encoder and possible some other channels before it reaches the Dispatcher.

The Dispatcher is the last step before the request is handed over to the actual service. The Dispatcher is responsible for associating the incoming call with the appropriate operation and then invoking it. 

By creating a custom OperationInvoker you may customize the behavior of how the back-end logic is invoked. 

 
image

Windows Server AppFabric Cache provides distributed caching over many servers. It can utilize a cluster of servers that communicate with each other to form a single, unified application cache system. It comes with a decent API, and can be managed using PowerShell.

Solution:

The Visual Studio solution has  three projects:

Project Description
bLogical.CachingExtension This is the main project, responsible for the custom behavior.
bLogical.WcfWeatherService A WCF service application, applying the CacheOperationBehavior attribute to indicate the response of the method should be cached if possible. The service makes a call to a database to pickup the forecast.
bLogical.Client Client tool calling the two services.

 

The cache implementation:

Using the Windows Server AppFabric Cache is pretty straight forward. I recommend you read Scott Hanselman’s post on the subject. The post also covers the installation process.

Basically you use the DataCashe.Put method to add the data to the cache, and the DataCache.Get method to retrieve the cached value. Working with the Windows Server AppFabric Cache is similar to using a HashTable, where you add values along with a key (string) which you can later use to get the value back. 

 

public object Invoke(object instance, object[] inputs, out object[] outputs)
{
// Serialize all input parameters. The string will be used as the Key to the Cache.
string input = GetSerializedKey(inputs);

// Return value from the Method
object value= this._cacheHelper.Cache.Get(input);

if (value != null)
{
outputs = new object[0];
return value;
}
else
{
//Invoke the method
value = this._innerOperationInvoker.Invoke(instance, inputs, out outputs);

// Add the return value to the Cache.
this._cacheHelper.Cache.Put(input, value, new TimeSpan(0,0,0,0,this._timeOut));

return value;
}
}

 

I use the input parameters as Key. But as the parameters can be any number of objects, I need to serialize them into an XML string first. I can then use the string as key together with the result from the invoked method. As I don’t want the value to be cached forever, I also pass in a TimeSpan to indicate the lifetime of the cached object.

Using the caching behavior:

You can use the cache behavior either declaratively in your code:

[ServiceContract]
public interface IWeatherForecastService
{
[CacheOperationBehavior(TimeOut=2000)]
[OperationContract]
Forecast GetForecast(string zipCode);
}

…or through configuration:

<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="true"/>
<cachingBehavior timeout="00:10:00" cacheName="bLogical"/>
</behavior>
</serviceBehaviors>
</behaviors>

<extensions>
<behaviorExtensions>
<add name="cachingBehavior"
type="bLogical.CachingExtension.CacheElement, bLogical.CachingExtension,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=49c05550fea0c875"
/>
</behaviorExtensions>
</extensions>
</system.serviceModel>

 

Performance:

I’ve run two tests; One with and one without caching enabled. I haven’t got time to run this in any real test environment. But even though I’ve run the test on my local laptop, the tests came out pretty clear.

Without Caching (~3 calls/sec):

image

(Using Visual Studio profiler, I found the database call to take ~200ms)

With Caching (~23 calls/sec):

image

 

Download and install:

1. Download the Windows Server AppFabric.

2. Read Scott Hanselman’s post as to how to set it up.

3. Open PowerShell and run the following commands:

get-command -module DistributedCacheConfiguration

First you need to grant access to your service account:
Grant-CacheAllowedClientAccount [Your Account]
Continue to create the Cache:

New-Cache bLogical

Start the cluster:

Start-CacheCluster 

4. Download the sample

 

Using it with BizTalk:

Follow these steps to use the bLogical.CachingExtensions with BizTalk:

  1. Add a key to the bLogical.CachingExtensions project.
  2. Build the project and add it to the GAC.
  3. Open machine.config and add the extension to the behaviorExtensions section.
  4. Open BizTalk Administration Console
  5. Add a Request/Response ReceivePort > Add a Location
  6. Set the transport to WCF-Custom, and click configure
  7. Set the URI and Binding.
  8. On the Behavior tab, add a ServiceBehavior and select the CacheElement:

image

 

HTH

BizTalk Performance session at Tech·Ed Europe 2010
28 August 10 11:24 PM | wmmihaa | 4 comment(s)

I just got the news my BizTalk Performance Optimization session was approved for Tech·Ed:

Topic Information

Primary Track
Application Server & Infrastructure

Session Type
Lunchtime Session

Session Title
BizTalk Server Performance: Configuring BizTalk Server for performance

Description
Optimizing and verifying your BizTalk Server installation is not an easy thing to do. The documentation is good but very extensive. This presentation aims to guide you through the most important operations you need to do in order to boost the performance of BizTalk. The session includes a live demo where these settings are applied and how it significantly improves the performance.

Major Products or Technologies Covered
Microsoft BizTalk Server 2010, Microsoft SQL Server 2008 R2

 

teched

Hope to see you there. Let me know you’re coming.

Filed under: , , ,
BizTalk Sftp Adapter - New release 1.3.6 available on CodePlex
11 August 10 08:12 PM | wmmihaa

I got great feedback from many users, and have made some updates to the bLogical BizTalk adapter:.

Disabling the connection pool (only used for send ports)

Some SSH servers can not handle the connection pool very well. This can also be a problem if there is a limit set to number of connections a certain user can have. So I’ve been asked for the possibility to disable the connection pool for send ports, and this can now be done by setting the SSH Connection Limit to "0" in the admin console or BTSNTSvc.exe.config.

Logging and tracing

A much more verbose tracing as been added. If you care to save the trace info to file, you can use the TraceListener (System.Diagnostics):

  1. Enable Tracing in the port configuration.
  2. Open the BTSNTSvc.exe.config (or BTSNTSvc64.exe.config) file and add the following in the Config section:
    <system.diagnostics>
    <trace autoflush="false" indentsize="4">
    <listeners>
    <add name="BTSListener"
    type="System.Diagnostics.TextWriterTraceListener"
    initializeData="bLogical.Shared.Adapters.Sftp.log" />
    <remove name="Default" />
    </listeners>
    </trace>
    </system.diagnostics>

Public key authentication

There was a problem using identity file authentication as the password was sent as an empty string. This works for some but not all servers. The new version always set the password to null, which should work for all servers.

Macros

%UniversalDateTime% added to the list of supported macros

Misc

  • temp folder and remote permissions no longer required properties.
  • Empty files are no longer picked up or processed.

 

Special thanks to John Vestal at CSC and Antti.

Download the adapter from CodePlex

BizTalk User Group Sweden – Bonus Session (for your manager)
23 July 10 06:34 PM | wmmihaa

As you should by now, we are hosting a BizTalk Release Party in Stockholm on the 8th-9th of September, featuring Richard Seroter, Stephen W. Thomas and Ewan Fairweather.  All the sessions will be technical (level ~300) and targets Developer/Architects. The event is almost full (150 attendees), however Richard will do a one hour “bonus event” about the hype around Cloud Computing which targets CTO, CIO, Senior Manager or similar.

This will be a great event for your Manager, and we urge you to recommend it. The session starts at 13:15 on the 9th of September.

Sign up here: http://bugs20100909.eventbrite.com/

Välkommen!

Welcome to our two days release party of BizTalk 2010
21 June 10 11:48 PM | wmmihaa | 8 comment(s)

As you my already know, we are hosting a fantastic event in Stockholm, as we celebrate 10 year anniversary of BizTalk as a product along with the release of the new 2010 version.

At the same time, Richard Seroter, Stephen W. Thomas, Ewan Fairweather, Michael Sexton and Rama Ramani are releasing a book titled Applied Architecture Patterns on the Microsoft Platform. The book tackles 13 real-world scenarios and applies a decision framework for deciding the best Microsoft application platform technology for the problem at hand. In each chapter, a use case is outlined, a pattern is identified, multiple candidate architectures are evaluated, and a solution is built based on the best platform technology.

Even though this is not a BizTalk book, it addresses many patterns, techniques and products related to BizTalk. And we thought it’d be a great idea to invite the authors over to the The Swedish BizTalk User Group, and do a TWO day event with 10 sessions! Each session will relate to a chapter in the book, addressing a specific real-world scenario.

Needless to say, the scope for this event targets much brother audience then we normally do, covering the full suite of applicable Microsoft technologies, such as Windows Workflow, Windows Communication Foundation, Windows Server AppFabric, SQL Server Service Broker, SQL Server Integration Services, BizTalk Server, StreamInsight, Windows Azure and more. The goal is to sufficiently explain these applications and their optimal use cases in a way that helps you make better choices in your solution design.

If you have the opportunity to visit Sweden at the 8th and 9th of September, you are more than welcome to sign up for the event. The event is free and if you book your flight now, it's still pretty cheap (~€100).

For more information and sign-up: http://bugs20100908-widget.eventbrite.com/

Let us know you're coming.

 


Recordings from the BizTalk Performance meeting at the Swedish BizTalk User Group
06 June 10 10:38 PM | wmmihaa

The videos from the BizTalk performance talk by me and Ewan Fairweather  has finally got published on msdn.

Instrument your BizTalk Server

Optimizing and verifying your BizTalk Server installation is not an easy thing to do. The documentation is good but very extensive. This presentation aims to guide you through the most important operations you need to do in order to boost the performance of BizTalk.

Performance Optimization Patterns

This session will present architectural, design, and development patterns to improve BizTalk processing performance. "Performance" can be expressed by latency and/or throughput, and this session will cover aspects of both. This will include pipeline and orchestration patterns to increase throughput, reduce latency, and reduce memory usage during BizTalk processing. We will also cover the results from BizTalk CAT recent Perf engagements.

color-drop[1]

Downloads from the BizTalk Performance meeting at the Swedish BizTalk User Group
25 May 10 10:29 AM | wmmihaa

Thanks to everyone attending the BizTalk Performance talk at the Swedish User Group, last week. The webcasts are ready and will be posted on DevCenter shortly.

The downloads includes presentations and scripts used in the first talk. It also includes the Streaming and Large Message Transmission demo from the second talk. I did not include the Transformation demo, as you download that from Paolos blog:

(Part 1) How To Boost Message Transformations Using the XslCompiledTransform class

(Part 2) How To Boost Message Transformations Using the XslCompiledTransform class Extended

 

Thank you

Download presentation, demos and scripts

Ewan Fairweather is comming to BizTalk User Group Sweden
26 April 10 01:42 PM | wmmihaa | 2 comment(s)

Performance has been  one of the more popular topics at the Swedish BizTalk user group, where we’ve had both Darren Jefford and Paolo Salvatori as previous speakers. This event is of a more practical and detailed level, and covers performance considerations from both a setup/configuration perspective as well as from a developer perspective. Ewan and I have been planning this event since mid January, but for various reasons we haven’t been able to do it until now.

BizTalk Server Performance: Best practice

Session #1 – Instrument your BizTalk Server

Optimizing and verifying your BizTalk Server installation is not an easy thing to do. The documentation is good but very extensive. This presentation aims to guide you through the most important operations you need to do in order to boost the performance of BizTalk.

Session #2 - Performance Optimization Patterns

This session will present architectural, design, and development patterns to improve BizTalk processing performance. "Performance" can be expressed by latency and/or throughput, and this session will cover aspects of both. This will include pipeline and orchestration patterns to increase throughput, reduce latency, and reduce memory usage during BizTalk processing. We will also cover the results from BizTalk CAT recent Perf engagements.



Speaker:

Ewan Fairweather

Ewan Fairweather has worked for Microsoft for five years. He currently works as a program manager in the Business Platform Division on the Customer Advisory Team (CAT) working on large scale Integration and OLTP SQL applications.  Prior to this, Ewan spent three years working for Microsoft U.K. in the Premier Field Engineering team where he worked with enterprise customers, helping them to maintain and optimize their BizTalk applications. This included working in a dedicated capacity on some of the world's largest BizTalk deployments, predominantly within financial services.

Ewan coauthored the successful Professional BizTalk Server 2006 (Wrox, 2007) and has written many white papers for Microsoft including the "Microsoft BizTalk Server Performance Optimization Guide," which is available on the Microsoft Developers Network (MSDN) Web site. Prior to joining Microsoft, Ewan worked as a Cisco Certified Academy Instructor (CCAI) for a regional training organization, delivering advanced routing and networking courses. Ewan holds a bachelor's degree in computing with management from the University of Leeds. Outside of work, Ewan's hobbies include reading, taking part in as many sports as possible, and regularly going to the gym.

Ewan maintains his blog at http://blogs.msdn.com/ewanf


BizTalk Benchmark Wizard – New release
23 April 10 02:25 PM | wmmihaa | 2 comment(s)

The Benchmark Wizard was released earlier this year, and even though we got lots of good feedback we’ve also got requests for some changes.

If you haven’t yet heard about this tool, the purpose of it is to verify your BizTalk environment performs as expected. There are two different scenarios you can run, a Messaging and an Orchestration scenario. Each of the scenarios has been tested on various environments and configuration. The result of these tests has provided the tool with a set of KPI’s, which your test result will be benchmarked against. For more information about the Benchmark Wizard:

Benchmark your BizTalk Server (Part 1) - Overview

Benchmark your BizTalk Server (Part 2) – How to install

Benchmark your BizTalk Server (Part 3) – Drill down and analyse

The most common feedback is related to the fact that it was very difficult to meet the KPI’s. A reason for this is that the original tests where executed while global tracking was disabled. This was unfortunate as the DTA tracking has ~30% overhead. We have done a re-run of all the tests, and updated the KPI’s for the new version (shown at the bottom of this page).

Further more, there seams to be a question of how to interpret the result. What does “Succeeded” mean? Does it reflect the best possible result or good enough? To make this more clear, we’ve implemented the “stop light approach”, where if you’ve Succeeded you should be proud of yourself and make a blog post, while an Acceptable result is nothing to be ashamed of.     

 

image

 

There has also been some other fixes such as the resetting all the counters when you re-run the test, and fixing the CPU counters to show correct values.

Special thanks to Microsoft and Ewan Fairweather for letting me use their test lab!

Download BizTalk Benchmark Wizard from CodePlex

Scenario KPI’s: Messaging Single and Multi Message Box

image

Scenario KPI’s: Orchestration Single Message Box

image

 

Test environment:

image

* Storage: EMC Clarion CX-240 ( 5 solid state drives )

Configuration:

Be aware of your Azure bill!
23 April 10 11:15 AM | wmmihaa | 4 comment(s)

I have been playing around with Azure since it was first released at the PDC. I have since then done several demos for Microsoft and my employer Logica. The demos have been pretty much the same demo over and over, why I stopped the service rather than deleting it.

image

To be fair, it’s pretty clear stated that this will continues to accrue charges, but if you’re doing demos like I have, –Make sure to delete it!!!

I got billed ~$700 since Feburuary.

Filed under:
Blogical Sftp Adapter – New Release (Beta)
20 April 10 09:07 PM | wmmihaa | 1 comment(s)

Thanks to feed-back we got, we’ve done some minor, but important, changes to the adapter:

  • %UniversalDateTime% added to the list of supported macros
  • Temp folder and remote permissions no longer required properties.
  • Empty files are no longer picked up or processed.

The 1.3.5 version is currently in beta, and will remain so for a couple of weeks until it’s been properly tested. PLEASE provide us with feedback.

Special thanks to John Vestal at CSC, who made most of the changes.

Download the adapter from CodePlex

More Posts « Previous page - Next page »

This Blog

News

    MVP - Microsoft Most Valuable Professional BizTalk User Group Sweden BizTalk blogdoc

    Follow me on Twitter Meet me at TechEd

    Visitors

    Locations of visitors to this page

    Disclaimer

    The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

Syndication