Using AS2 Bridges in MABS (post August 2014 Update)

In my previous post about using the new EDI bridges in Microsoft Azure BizTalk Services (MABS), I promised to follow up with an example of using the AS2 bridge type – so here it is.

Applicability Statement 2 (AS2) is all about establishing security and reliability when transmitting B2B messages over HTTP/S. It provides for digital signing and encryption as well as acknowledgements via Message Disposition Notifications (MDN), which also leads to support for Non-Repudiation (NRR).

Like BizTalk Server, MABS provides support for AS2 with EDI transactions; in fact, the latest update has enhanced this experience with additional symmetric key encryptions including AES, DES3 and RC2 as well as MD5, SHA1 and SHA2 for MIC calculation. The main difference in this latest update, though, is that the AS2 bridge and the associated agreement are configured separately, just like the EDI bridges themselves now are. Understanding the sequencing of these bridges and how they connect is key, however, and may not be readily apparent from the current documentation – hence the reason for this article.

Scenario for Using AS2 Bridges

For the purposes of this post, I am going to expand on the demo used in the previous post by introducing AS2 bridges. I am not bothering to configure certificates, because this process has not changed since MABS was released, and it is well-documented on MSDN. Besides that, the focus of this article is on how the bridges connect, not so much about the implementation of encoding, etc. (But if you want to see how the certificates are used and the relationship of the public & private keys, I suggest having a look at this page which lays out the whole process in a very clear diagram.)

Let’s assume that Partner B requires the AS2 protocol for all B2B exchanges. The pattern in BizTalk Services therefore makes use of both EDI bridges and AS2 bridges, with separate agreements established for both:

AS2-Exchange

Read more of this post

Creating EDI Bridges in MABS (post August 2014 Update)

In my last post, I talked about the new EDI features in the August 2014 release of Microsoft Azure BizTalk Services (MABS), particularly in regards to the separation of agreements and bridges. In this article, I’m going to discuss how you actually create & invoke these new bridges – especially since the experience wasn’t quite as intuitive as I would have expected and the documentation is still a bit light.

Prior to the August update, you used to create an agreement and this would automatically generate the send & receive bridges that hosted the agreement. Now that you create these artefacts independently, you can enjoy greater flexibility and reusability – but it also entails a few extra steps and requirements in order to establish it. Let’s walkthrough the process.

1. Create the Partner Profiles

You can’t really do anything without creating these. Nothing terribly significant has changed about this process in the latest update – except that you no longer have the option of creating an agreement template within a profile.

01-PartnerProfile

For this example, I’ve created two partner profiles with their respective “ZZ” identifiers:

Partner Name Partner ID
PartnerA 12345
PartnerB 23456

Read more of this post

New EDI Features in BizTalk Services August 2014 Update

On August 12th, 2014, the BizTalk Product Team announced the release of the latest update to Microsoft Azure BizTalk Services (MABS), which includes the following enhancements:

  • Ability to configure and manage agreements and bridges separately
  • Ability to configure EDI delimiters at a Transaction Set level
  • Enhanced digest and encryption algorithms for AS2
  • Drummond Certification for AS2
  • Support for advanced XML constructs in transforms

The enhancements to the mapper and the associated SDK certainly sound exciting, but this blog post will concentrate on the new EDI features. Support for B2B applications through Electronic Document Interchange (EDI) is one of the core capabilities and selling points of MABS, so Microsoft’s attention to this area is a well-placed investment.

Read more of this post

RECAP: BizTalk Summit 2014 – Australia

Last Friday I had the privilege of attending the final session of the inaugural BizTalk Summit in Australia, sponsored by BizTalk360 and Mexia Consulting. This was an experimental event, bringing together no fewer than six Microsoft Integration MVPs (three from Australia + three others from Europe) to deliver a whirlwind tour of consecutive one-day events across three cities (Melbourne, Sydney and Brisbane). What a great event!!

BizTalk Summit MVPs

Read more of this post

WEBCAST: Introduction to Hybrid Connections

Last week I uploaded our fifth webcast to the Brisbane BizTalk User Group YouTube channel, this one based on a presentation I recently gave to the Brisbane Azure User Group. It is an Introduction to Hybrid Connections, a new BizTalk Services technology that’s currently in Preview. In this 22 minute webcast you’ll learn how Hybrid Connections makes it easy to connect your Azure Web Sites and Mobile Services to your on-premises LOB systems – all with no changes to your corporate network.

mqdefault[1]Introduction to Hybrid Connections [https://www.youtube.com/watch?v=kEgNE_-KC90]

You can also download the slide deck from SlideShare. Most of these slides are borrowed from Santosh Chandwani, a Microsoft Azure Senior Program Manager who gave the initial presentation at Tech-Ed USA the day this went live.

Enjoy!!

Gotchas When Accessing an IaaS SQL Server in an Azure Cloud Service

It’s not that uncommon a scenario… You implement a spectacular BizTalk Server integration solution with well-designed Business Activity Monitoring, and you want to expose all that BAM goodness out through a custom-designed Web application built with HTML5, etc.

What might make this scenario slightly less common is when you’re hosting the BizTalk Server infrastructure in Azure. In this case, your custom Web application needs to be hosted within the same virtual network in order to access the BAM databases – unless of course you want to expose your SQL Server to the world by establishing a TCP endpoint on a port like 1433 (usually not a great idea).

Establishing that connectivity should be trivial – and it probably is if you get past a few potential stumbling blocks. I thought I might list some of them here in hopes that it may be helpful to others who try this.

Read more of this post

User Group Presentation on Hybrid Connections

Last week I had the privilege to present on Hybrid Connections at the Brisbane Azure User Group meeting. It was well attended and the community responded very enthusiastically to the ease at which this technology enables you to connect Azure Web Sites and Mobile Services to on-premises resources behind your corporate firewall. One attendee was so excited by the feature that he stayed back after the meeting with his laptop and proceeded to deploy his web site application to Azure right there on the spot, hooking it up in minutes to his on-premises database!

highres_399395482 I’d like to express my gratitude to Santosh Chandwani, a Microsoft Azure Sr. Program Manager who shared his slide deck with me and gave some very helpful tips in preparing my demo. The slides are available on SlideShare if you wish to view the presentation as I presented it, or you can download the original version that Santosh presented at Tech Ed USA.

Santosh also promptly answered some questions raised by the community which I posted on the Azure Advisors Yammer group:

Q: Seems expensive to get more than 5 HC connections?
A: “If there are specific Dev-Test scenarios where the 5 Free HC don’t suffice, please let us know.”

Q: What are the performance/load specifications? Any guidance on where potential bottlenecks may be, and/or best practice guidelines?
A: “In general, the throughput you can achieve with HC is constrained by the internet connectivity between the on-prem network and Azure. Since this is part of the user’s network infrastructure, it is hard for us to provide a specific throughput baseline.
We recommend users assess the throughput that each instance of the on-prem Hybrid Connection Manager provides on their network. Adding more instances may provide higher throughput (again depending on the network infrastructure). Also, for production scenarios, at least 2 instances are recommended for resiliency. ”

Stay tuned for an upcoming webcast about this on the BrizTalk YouTube Channel!

UPDATE: Webcast published!! View it here.

Mapping a Newline within a String

Today a colleague asked me how best to insert newlines into a concatenated set of address lines within a map. It struck me that despite spending eleven years as a BizTalk developer, creating hundreds if not thousands of maps,  and even authoring a Pluralsight course on the Mapper,  I’ve never actually attempted something as simple as inserting a newline into a string output!

Like most programmers with C# .NET experience, the first instinct was to try inserting “\n” or “\r\n” into the string. But of course that wouldn’t work – the output of a non-scripted mapper link is XSLT, not .NET code.

So that leads to the assumption that an XML entity character is required; surely that will work? Since the string “&#13&#10” is the XML entity representation of a carriage return followed by a line feed (CR LF), we should be able to just insert that as a constant parameter within the String Concatenate functoid:

01

But then it becomes evident that the mapper escapes all characters that might otherwise be unintentionally interpreted as markup:

02

Hmmm… not turning out to be as easy as we thought. Surely we don’t need to resort to inline XSLT just to insert a newline into text?

Read more of this post

Service Bus Queue/Topic Partitioning Not Supported in BizTalk Services

The other day my esteemed colleague Bill Chesnut & I were configuring EDI agreements for a client using Microsoft Azure BizTalk Services (MABS). Because we were testing in an isolated development environment, we redirected the actual vendor routing to some Service Bus queues that we created so that we could inspect the messages.

The solution was already routing some messages to pre-existing queues (e.g. for suspended messages) and they were all working just fine. However all messages bound for the new queues we set up were failing with this error message in the tracking database:

This client is not supported for a partitioned entity. The client version should be greater or equal than version ‘2013-10’..58ca562e-49ef-4c92-823d-1a219c3f52bd_G8

This is odd… the new queues were created the same way as the existing ones were, using the “Quick Create” method in the Azure Management Portal. So what was different?

Thankfully it was Bill who remembered a relatively new feature in Service Bus – the addition of partitioned entities for increasing throughput by employing multiple message brokers and stores, introduced late last year. You can find out more details about how this works here.

Read more of this post

BizTalk Services – EDI Agreement Deployment Errors

This week I’ve been frustrated by “unknown exception” errors whilst trying to deploy an X12 EDI agreement to Windows Azure BizTalk Services. The generic message was of course extremely helpful in isolating the problem:

WABS_AgreementDeploymentError

(“Error: An error occurred while deploying the agreement. Details: Service encountered an unknown exception..”)

It happened that a recent tweet by Microsoft MVP Sam Vanhoutte proved that I wasn’t alone in my angst, as did this entry on the MSDN Azure forum. Unlike SGSJWS however, switching browsers didn’t solve my issue. Sam’s helpful advice to check all configuration items, however, did eventually lead me to closer inspection where I discovered the cause.

Read more of this post

John Glisson - Geek of the Cloth

Thoughts on integration, technology and what-not...

prashantbiztalkblogs

My BizTalk Experiences

The CRUCIBLE

THINK: It's not illegal....yet.....

paulbouwer.com

life and technology

Abdul Rafay's BizTalk Blog

My experiences with BizTalk related to architecture, development and performance in my enterprise.

Mike Diiorio

Connected Systems and other thoughts

BizTalk musings

Issues, patterns and useful tips for BizTalk development

EAI Guy.net

Enterprise Applicaiton Integration and SOA 2.0

Connected Pawns

Mainly BizTalk & Little Chess

Adventures inside the Message Box

BizTalk, Azure, and other tools in the Microsoft stack - Johann Cooper

Biz(Talk)2

Talk, talk and more talk about BizTalk

Richard Seroter's Architecture Musings

Blog Featuring Code, Thoughts, and Experiences with Software and Services

Sandro Pereira BizTalk Blog

My notes about BizTalk Server 2004, 2006, 2006 R2, 2009, 2010, 2013 and now also Windows Azure BizTalk Services.

BizTalk Events

Calendar of BizTalk events all over the world!

Mind Over Messaging

Musings on BizTalk, Azure, and Enterprise Integration

The WordPress.com Blog

The latest news on WordPress.com and the WordPress community.