BizTalk 2013 *Beta* Released

BizTalk has existed in one form or another since the early Site Server Days, then BizTalk 2000-2002 and then BizTalk 2004, and now all the way to 2013…. Welcome BizTalk Server 2013 (previously called BizTalk Server 2010 R2)

I have been using it as part of the TAP, it still rocks like BizTalk always does, but now it’s great in the cloud…. finally. 

It is available for download at Microsoft Download Center.

BizTalk Server 2013 Beta offers significant enhancements to the
already rich integration capabilities by including the following feature
additions:

  • Integration with Cloud Services: BizTalk Server 2013 Beta
    includes new out-of-the box adapters to send and receive messages from
    Windows Azure Service Bus. It also provides capabilities to transfer
    messages using different relay endpoints hosted on Azure.
    • SB-Messaging adapter: This version introduces the
      SB-Messaging adapter to send and receive messages from Service Bus
      entities like Queues, Topics, and Relays. You can use the SB-Messaging
      adapters to bridge the connectivity between Windows Azure and
      on-premises BizTalk Server, thereby enabling users to create a typical
      hybrid application (read more here).
    • WCF-BasicHttpRelay Adapter: Microsoft BizTalk Server uses the
      WCF-BasicHttpRelay adapter when receiving and sending WCF service
      requests through the BasicHttpRelayBinding. The WCF-BasicHttpRelay
      adapter enables you to send and receive messages from the Service Bus
      relay endpoints using the BasicHttpRelayBinding (read more here).
    • WCF-NetTcpRelay Adapter: Microsoft BizTalk Server uses the
      WCF-NetTcpRelay adapter when receiving and sending WCF service requests
      through the NetTcpRelayBinding (read more here).
  • RESTful services: BizTalk Server 2013 Beta provides adapters
    to invoke REST endpoints as well as expose BizTalk Server artifacts as a
    RESTful service.
    • WCF-WebHttp Adapter: Microsoft BizTalk Server uses the
      WCF-WebHttp adapter to send messages to RESTful services. The
      WCF-WebHttp send adapter sends HTTP messages to a service from a BizTalk
      message. The receive location receives messages from a RESTful service.
      For GET and DELETE request, the adapter does not use any payload. For
      POST and PUT request, the adapter uses the BizTalk message body part to
      the HTTP content/payload (read more here).
  • Enhanced SharePoint adapter: Integrating with SharePoint
    using BizTalk Server 2013 Beta is now as simple as integrating with a
    file share. We have removed the need for dependency on SharePoint farms,
    while still providing backward compatibility (read more here).
  • SFTP adapter: After Microsoft, in 2009, improved the FTP
    adapter by extended to support FTPS, BizTalk Server 2013 Beta enables
    sending and receiving messages from a secure FTP server using the SSH
    file transfer protocol (read more here).
  • ESB Toolkit integration: With BizTalk Server 2013 Beta, ESB
    Toolkit is now fully integrated with BizTalk Server. Also, the ESB
    Toolkit configuration experience is vastly simplified to enable a quick
    setup (read more here).
  • Dependency tracking: A typical BizTalk Server application
    involves various artifacts such as orchestrations, send ports, receive
    locations, pipelines, schemas, maps, and the likes. All these artifacts
    have dependencies on each other. The dependencies between artifacts can
    now be viewed and navigated in Admin console (read more here).
  • Improvements in dynamic send ports: BizTalk Server 2013 Beta
    provides the ability to set host handler per adapter, instead of always
    using the default send handler of the adapters (read more here).
  • Updates to the supported EDI schemas: BizTalk Server 2013 introduces support for the following EDI schemas:
    • X12: 5040, 5050, 6020, 6030
    • EDIFACT: D06A, D06B, D07A, D07B, D08A, D08B, D09A, D09B, D10A, D10B
  • XslCompiledTransform: BizTalk Server mapping engine makes use
    of XslTransform API for mapping needs. With BizTalk Server 2013 Beta
    release, the mapping engine makes use of the enhanced
    XslCompiledTransform API. This will provide improvements in mapping
    engine performance.
  • Ordered Send Port improvements: With BizTalk Server 2013
    release, we have made changes to the BizTalk runtime engine which
    increases the performance of ordered send port scenarios.
  • BAM Alerts update: In previous releases of BizTalk Server,
    BAM Alerts feature had a dependency on SSNS (SQL Server Notification
    Services). With the current release of SQL Server (SQL Server 2012),
    SSNS is no longer available. However, we have made sure your existing
    BAM Alerts scenario work just the same even if your backend is targeting
    SQL Server 2012. If your backend is SQL Server 2008 R2, you will
    continue to require the dependency on SSNS.
System Requirements
  • Supported Operating Systems: Windows Server 2008 R2 SP1, Windows Server 2012

The software is for evaluation and deployment planning purposes only.
If you plan to install the software on your primary computer, we
recommend that you back up your existing data prior to installation.

To run BizTalk Server 2013 Beta you need:

  • 32-bit (x86) platforms: Computer with an Intel
    Pentium-compatible CPU that is 1 GHz or faster for single processors;
    900 MHz or faster for double processors; or 700 MHz or faster for quad
    processors
  • 64-bit (x64) platforms: Computer with a CPU that is
    compatible with the AMD64 and Extended Memory 64-bit Technology
    (EMT64T), 1.7 GHz or faster processor recommended for BizTalk Server
    2013 Beta
  • 2 GB of RAM minimum (more recommended)
  • 10 GB of available hard-disk space
  • VGA monitor (1024 x 768) or higher-resolution monitor
  • Microsoft Mouse or compatible pointing device

To use BizTalk Server 2013 Beta you need the following software:

  • SQL Server 2012 or SQL Server 2008 R2 SP1
  • Microsoft .NET Framework 4.5
  • Microsoft Visual Studio 2012 [Required for selected features only]
  • Microsoft Office Excel 2010 [Required for selected features only]
  • SQL Server 2005 Notification Service [Required for selected features only]
  • SQLXML 4.0 with Service Pack 1 [Required for selected features only]
  • Internet Information Services (IIS) Version 7.5 and 7.0 [Required for selected features only]

All these capabilities will be available in Windows Azure Virtual Machine platform gallery soon.

BizTalk Community Series: Introducing Tomasso Groenendijk

BizTalk forums are an important platform for people to ask and/or answer questions, to start discussion and find solutions to their problems. The BizTalk forums are a part of the BizTalk Server Category in the MSDN forums. This category has a BizTalk Server General, BizTalk Server Adapters and Adapter Pack, BizTalk Server EDI and AS2, BizTalk Server RFID, and BizTalk ESB Toolkit.

I myself have been quite active in the BizTalk Server General and BizTalk Server Adapters and Adapter Pack. However, I am not the only one that is active. There are many others answering questions, which other people ask on these forums. My colleague from motion10 Tomasso Groenendijk is quite active in the ESB Toolkit forum. So today’s story is on him.

Tomasso Groenendijk is a BizTalk consultant at motion10. He is 40 years old and lives in Rotterdam in the Netherlands. Tomasso specialized in the realization of applications based on the Microsoft technologies like BizTalk, C# and Web Services.

Tomasso has around 8 years’ experience in the field of BizTalk development. He really likes to design a solution and to develop it. He feels his administrative skills are a bit less.

“I like the ESB Toolkit a lot although it’s not quite finished. I’m very curious how it will soon be integrated into BizTalk 2010 R2!”

Tomasso likes movies. Almost every genre from Science fiction to Westerns and also a little drama. In addition, he likes to cycle. Recently he started his own blog about BizTalk with the emphasis on the ESB toolkit and also on Windows Azure. Tomasso tries to stay up to date in BizTalk and Azure by reading other blogs and experiment with the new features.

A word on my blog and his own contributions:

“I really enjoy reading Steef-Jan’s blog, because he is always trying out the new functionality in BizTalk and Windows Azure. When I have time I like to develop small tools around BizTalk like the sample tool to Test ESB Toolkit Business Rules which is available on Code Gallery.”

In the summer Tomasso tries to cycle in weekends when it is not raining. Just recently he has joined the gym because the fall has begun and he wants to stay in shape. In the winter whenever there is an opportunity he tries to ski (Indoors or somewhere in Europe like Switzerland or France).  

Thanks Tomasso for your time and contributions.

Cheers, Steef-Jan

How to handle Zombie

How to handle Zombie

I’m glad to present the first release of BizTalk Zombie Management. You can find it athttp://btszombiemanagement.codeplex.com/ What is BizTalk Zombie Management ? This is a codeplex project. It proposes a solution to process zombie message after their zombified state.It’s a windows service that need to be install on each BizTalk machine. When a zombie is […]
Blog Post by: Jeremy Ronk

Build 2012 Recap

The Adventure of Build 2012
This has been and exciting year for technology especially around Windows8. Shortly after Build 2011, last year, I began my work with Windows8 and completed my first book ever Getting Started with Windows 8 Apps. A large part of this year has been spent really understanding all the pieces […]
Blog Post by: Ben Dewey

Creating a Custom Itinerary Messaging Service for ETW Tracing

ETW Tracing from the BizTalk Customer Advisory Team (CAT) is now increasingly used by developers for tracing in BizTalk applications. In the ESB toolkit it’s not implement so I wanted to see if it’s difficult to create a custom Messaging Service that uses ETW Tracing.

Steps

On MSDN on the Creating a Custom Itinerary Messaging Service page is explained how to create a custom Messaging Service. The following methods and properties are required:

  • The Name property is the name of the service as it will appear in an itinerary. It must match the configured name in the itinerary services configuration in the Esb.config file.
  • The SupportsDisassemble property indicates whether the custom messaging service you are creating supports disassemble and the execution of multiple resolvers.
  • The ShouldAdvanceStep method takes in the current itinerary step, and the current message, and returns a Boolean value that indicates whether the dispatcher should advance the itinerary after the service executes. In almost all cases, this method should return true.
  • The Execute method is of greatest importance for a messaging service and contains the logic that will be executed at run time. It takes in the pipeline context, the message, the resolver string, and the current itinerary step; and it returns the updated message.
In the code example on MSDN is only the ExecuteRoute method shown that is called by the Execute method. This method is not needed when you create your own Messaging Service. Therefore I used Reflector to disassemble the Routingservice to get also the other methods and properties.
 
On the Best Practices for Instrumenting High Performance BizTalk Solutions blog post from the CAT team you can get the source code for the ETW tracing.
 
In the example below is the “ExecuteTracing” method shown that is specific for the Tracing Service:
 
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
public IBaseMessage ExecuteTracing(IPipelineContext context, IBaseMessage msg, 
string resolverString) { // A call to the TraceIn method at the very beginning of an instrumented code. Guid g = TraceManager.PipelineComponent.TraceIn(); IBaseMessage message; if (context == null) { throw new ArgumentNullException("context"); } if (msg == null) { throw new ArgumentNullException("msg"); } try { // Get context properties from message string interchangeID = msg.Context.Read(BtsProperties.InterchangeID.Name,
BtsProperties.InterchangeID.Namespace) as string; string messageType = msg.Context.Read(BtsProperties.MessageType.Name,
BtsProperties.MessageType.Namespace) as string; string receivePortName = msg.Context.Read(BtsProperties.ReceivePortName.Name,
BtsProperties.ReceivePortName.Namespace) as string; string inboundTransportLocation = msg.Context.Read(BtsProperties.InboundTransportLocation
.Name, BtsProperties.InboundTransportLocation.Namespace) as string; // Writes an information message to the trace. TraceManager.PipelineComponent.TraceInfo("[InterchangeID: {0}]", interchangeID); TraceManager.PipelineComponent.TraceInfo("[MessageType: {0}]", messageType); TraceManager.PipelineComponent.TraceInfo("[ReceivePortName: {0}]", receivePortName); TraceManager.PipelineComponent.TraceInfo("[InboundTransportLocation: {0}]", inboundTransportLocation); message = msg; } catch (Exception exception) { EventLogger.Write(MethodBase.GetCurrentMethod(), exception); // Writes the exception details to the trace. TraceManager.PipelineComponent.TraceError(exception, true, g); throw; } // Writes an informational event into the trace log that a method is about to complete. TraceManager.PipelineComponent.TraceOut(g, "[Completed trace]"); return message; }

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

 
In the esb.config in “C:\Program Files\Microsoft BizTalk ESB Toolkit 2.1” you have to add your
custom Itinerary Service.
 
Now you can create an Itineray with the custom TracingService:
 
The created itinerary can be tested with the Itinerary Test Client that is located in the ESB Toolkit
sample applications
 
Trace output:
 

Conclusion

In principle, it’s not very difficult to create a custom Messaging Service. Still it took a lot of time to create the service and to got the itinerary running because it’s not so well-documented,.

You can download the sample Messaging Service with the source code here:

http://code.msdn.microsoft.com/Creating-a-Custom-44338c2e

Sweden Windows Azure Group Meeting in November & Fast with Windows Azure Competition

SWAG November Meeting

There will be a Sweden Windows Azure Group (SWAG) meeting in Stockholm on Monday 19th November. Chris Klug will be presenting a session on Windows Azure Mobile Services, and I will be presenting a session on Web Site Authentication with Social Identity Providers. Active Solution have been kid enough to host the event, and will be providing food and refreshments.

The registration link is here: http://swag14.eventbrite.com

If you would like to join SWAG the link is here: http://swagmembership.eventbrite.com

Fast with Windows Azure Competition

I’ve entered a 3 minute video of rendering a 3D animation using 256 Windows Azure worker roles in the “Fast with Windows Azure” competition. It’s the last week of voting this week, it would be great if you can check out the video and vote for it if you like it. I have not driven a car for about 15 years, so if I win you can expect a hilarious summery of the track day in Vegas. My preparation for the day would be to play Project Gotham Racing for a weekend, and watch a lot of Top Gear.

My video is “Rapid Massive On-Demand Scalability Makes Me Fast!”.

The link is here: http://www.meetwindowsazure.com/fast/

SSO Database as a config store / SSO config application drops non-default permissions on any changes

SSO Database as a config store / SSO config application drops non-default permissions on any changes

About a year ago I used to religiously use the SSO database as a config store for my BizTalk applications, regardless whether there was a requirement around security or not. Back then the site I was working on had the all the BizTalk host accounts in the SSO affiliate application users group so by default […]
Blog Post by: Johann

Processing Binary Documents as XLANGMessages Through BizTalk Via Web Services

Processing Binary Documents as XLANGMessages Through BizTalk Via Web Services

Seroter has previously written about this in Processing Binary Documents Through BizTalk Via Web Services. I had to send a binary document to a SharePoint web service but in my case my document payload was not an element inside an XML document. The orchestration payload that contained my document was a un-typed MIME encoded XLANGMessage […]
Blog Post by: mbrimble