by Richard | Jun 2, 2011 | BizTalk Community Blogs via Syndication
Gobbledygooks · Update to BAM Service Generator
Jun 03, 2011
I have previously written about how to generate a types set of WCF services to achieve end-to-end BAM based tracking – making BAM logging possible from outside potential firewalls and/or from non .NET based clients.
In that post I reference a open source tool to generate the services based on the BAM definition files to be able to make types BAM API calls. I called the tool BAM Service Generator and it’s published on CodePlex.
The first version of the tool only made it possible to make simple activity tracking calls, even missing the option to defining a custom activity id. All advanced scenarios like continuation, activity and data reference or even updating a activity wasn’t possible. That has now been fixed and the second version of the tool enables the following operations.
-
LogCompleteActivity
Creates a simple logging line and is the most efficient option if one only want’s to begin, update and and end an activity logging as soon as possible.
-
BeginActivity
Start a new activity with a custom activity id
-
UpdateActivity
Updates a already started activity and accepts a types object as a parameter. The typed object is of course based on what’s has been defined in the BAM definition file. Multiple updates can be made until EndActivity is called.
-
EnableContinuation
Enables continuation. This is used if you have multiple activity loggings that belong together but you can not use the same activity id. This enables you to tie those related activities together using some other set of id (could for example be the invoice id).
-
AddActivivityReference
Add a reference to an another activity and enables you to for example display a link or read that whole activity when reading the main one.
-
AddReference
Adds a custom reference to something that isn’t necessarily an activity. Could for example be a link to a document of some sort. Limited to 1024 characters.
-
AddLongReference
Similar to AddReference but enables to also store a blog of data using the LongRefernceData parameter – limited to 512 KB.
-
EndActivity
Ends a started activity.
Let me know if you think that something is missing, if something isn’t working as would expect etc.
by community-syndication | Jun 2, 2011 | BizTalk Community Blogs via Syndication
I stumbled with a situation where a Main orchestration calls a sub-orchestration, and this sub-orchestration sends back to Main a new message, using Direct Binding. The non-obvious behavior here is that the first Orchestration calls the second synchronously, so in theory the send in the second should fail, because the subscription is not there yet.
Since I knew that publishing with Direct Binding fails the sender orchestration if there is no subscription, I did a small test to check what was happening.
This is the main orchestration:
The first Send initializes a correlation set, and the second receive follows it. The Main Orchestration passes the initially received message as a parameter to the sub-orchestration, which simply maps it into a new one and returns the result:
I deployed this and did a Search for subscriptions in the Administration Console. The result is curious: the subscription for the Reply message (the result of the map) is not there yet when at “Wait 1”, but it’s created after the correlation set is created, so its there when “Wait 2” is reached. This is why the publish in the sub-orchestration doesn’t actually fail.
This behavior might be different in some cases, as reported here by Yossi: When is a subscription created for a correlation set passed as a parameter?.

Blog Post by: Jo%u00e3o Pedro Martins
by community-syndication | Jun 2, 2011 | BizTalk Community Blogs via Syndication
Hello and welcome to my 31st interview with a thought leader in the “connected technology” space. This month we have the pleasure of chatting with Sam Vanhoutte who is the chief technical architect for IT service company CODit, Microsoft Virtual Technology Specialist for BizTalk and interesting blogger. You can find Sam on Twitter at http://twitter.com/#!/SamVanhoutte. […]
Blog Post by: Richard Seroter
by community-syndication | Jun 2, 2011 | BizTalk Community Blogs via Syndication
I spent some time today summarising the new features in the Windows Azure AppFabric May CTP for SolidSoft consultants. Microsoft released the CTP a couple of weeks ago and has a second CTP coming out later this month. I might as well publish this here, although it has been widely blogged on already. There is nothing that you can’t glean from reading the release documents, but hopefully it will serve as a shorter summary.
The May CTP is all about the AppFabric Service Bus. The bus has been extended to support ’Messaging’ using ’Queues’ and ’Topics’
’Queues’ are really the Durable Message Buffers previewed in earlier CTPs. MS has renamed them in this CTP. They are not to be confused with Queues in Windows Azure storage! Think of these as ’service bus queues’. They support arbitrary content types, rich message properties, correlation and message grouping. They do not expire (unlike in-memory message buffers). They allow user-defined TTLs. Queues are backed by SQL Azure. Messages can be up to 256KB and each buffer has a maximum size of 100 MB (this will be increased to at least 1GB in the release version). To handle messages larger than 256KB, you ’chunk’ them within a session (rather like BTS large message handling for MSMQ). The CTP currently limits you to 10 queues per service namespace.
Service Bus queues are quite similar to Azure Queues. They support a RESTful API and a .NET API with a slightly different set of verbs – Send (rather than Put), Read and Delete (rather than Get), Peek-Lock (rather than ’Peek’) and two verbs to act on locked messages – Unlock and Delete. The locking feature is all about implementing reliable messaging patterns while avoiding the use of 2-phase-commit (no DTC!). Queue management is very similar, but configuration is done slightly differently. AppFabric provides dead letter queues and message deferral. The deferral feature is a built-in temporary message store that allows you to resolve out-of-order message sequences. Hey, this stuff is actually beginning to get my attention!
Today’s in-memory message buffers will be retained for the time being. MS is looking at how much advantage they provide as low-latency non-resilient queues before making a decision on their long-term future. This is beginning to sound like the BizTalk Server low-latency debate all over again! Currently, the documented recommendation is that we migrate to queues.
’Topics’ provide new pub/sub capabilities. A topic isdrum roll pleasea queue! The main difference is that it supports subscription. I assume it has the same limitations and capabilities as a normal queue, although I haven’t seen this stated. It is certainly built on the same foundation. You can have up to 2000 subscriptions to any one topic and use them to fan messages out. Subscriptions are defined as simple rules that are evaluated against user and system-define properties of each message. They have a separate identity to topics. A single subscription can feed messages to a single consumer or can be shared between multiple consumers. Unlike Send Port Groups in BizTalk, this multi-consumer model supports an ’anycast’ model for competing consumers where a single consumer gets a message on a first-come-first-served basis. MS invites us to think of a subscription as a ’virtual queue’ on top of the actual topic queue. Potential uses for anycasting include basic forms of load balancing and improved resilience.
The CTP supports AppFabric Access Control v2.0. It is fully backward-compatible with the current service bus capabilities in AppFabric.
CTP does not have load balancing and traffic optimization for relay. These were in earlier CTPs, but have been removed for the time being. They may reappear in the future.
June CTP
The June CTP will introduce CAS (Composite Application Services). CAS is a term used by other vendors (e.g., SAP) for similar features, and has been a long time coming in the Microsoft world. The basic idea is that you build a model of a composite application, the services it contains, its configuration, etc., and then drive a number of tasks from this model such as build and deployment, runtime management and monitoring. Some of us remember an ancient Channel 9 video on a BizTalk-specific CAS-like modelling facility that MS were working on years ago. It was entirely BizTalk-specific and never saw the light of day. However, one connection to make is that CAS will provide capabilities that are conceptually related to the notion of ’applications’ in BizTalk Server.
We will get a graphical Visual Studio modelling tool to design and manage CAS models. The CAS metamodel is implemented as a .NET library, allowing models to be constructed programmatically. Models are consumed by the AppFabric Application Manager in order to automate deployment, configuration, management and monitoring of composite applications.
So, things are rapidly evolving. However, we won’t see anything on Integration Services until, I suspect, next year. It’s important to remember that the May CTP is all about broadening the existing Service Bus with messaging capabilities, rather than about delivering an integration capability. So, even though we are seeing more BizTalk Server-like features, we are still a long way off having what Burley Kawasaki called a “true integration service” in the cloud. Obviously, Azure Integration Services will exploit and build on the Service Bus, but a lot more needs to be done before we have integration-as-a-service as part of the Azure story.
by community-syndication | Jun 2, 2011 | BizTalk Community Blogs via Syndication
The product team have been busy folks, pick up the update after the milk and eggs.
http://blogs.msdn.com/b/biztalkcrt/archive/2011/06/01/announcing-biztalk-2010-cu1.aspx
Blog Post by: Mick Badran
by community-syndication | Jun 1, 2011 | BizTalk Community Blogs via Syndication
I know, I know.It’s been almost 2 weeks since Teched and I still haven’t posted the slide decks of my sessions 🙁 I’ve been super busy with some exciting development on both Tellago and Tellago Studios but I finally got to it 🙂 WCF Best Practices My…(read more)
Blog Post by: gsusx
by community-syndication | Jun 1, 2011 | BizTalk Community Blogs via Syndication
Cumulative update package 1 for BizTalk Server 2010 is now available. This cumulative update for Microsoft BizTalk Adapter Pack 2010 contains hotfixes for Microsoft BizTalk Adapter Pack 2010 issues that were resolved after the release of BizTalk Adapter Pack 2010. BizTalk 2010 CU1 includes 31 hotfixes, most of which are related to BizTalk Adaptor Pack […]
Blog Post by: Sandro Pereira
by community-syndication | May 31, 2011 | BizTalk Community Blogs via Syndication
The number of open source releases from the Tellago team keeps growing! At Tellago , we like to dedicate part of our time to work of fun projects that we consider could be a relevant open source complements to existing Microsoft technologies. You can…(read more)
Blog Post by: gsusx
by community-syndication | May 30, 2011 | BizTalk Community Blogs via Syndication
After some research, I found some old Visio icons for BizTalk Server, posted by Thiago Almeida. However, they don’t work very well, especially when I tried to resize the shape (icon quality and text size). So I tried, based on existing ones, create new and improve the existing ones. The result is 11 shapes that […]
Blog Post by: Sandro Pereira