Well, it's pretty common knowledge by now that BizTalk Server (from version 2004 onwards) comes with a Business Rules Engine (BRE), but do you really know just how powerful it is? The BRE provides a mechanism to implement complex business logic in a highly versatile and optimised manner, allowing the business to update the logic without forcing redevelopment or a recompile of the solution.

So what does that mean? Let's start with a really simple case. Suppose your company takes orders from its customers and awards a 5% discount if the order total exceeds a certain amount, say $5000. You have a BizTalk solution that tracks the incoming order and manages the business processes surrounding fulfillment and billing. Now... as a developer, where would you put the discount logic? Well, you have several options; here are just a few:
  1. Put the discount logic in an expression shape within the orchestration
  2. Put the discount logic in a satellite helper (.NET) assembly called by the orchestration
  3. Put the discount logic in the Business Rules Engine and call it from the orchestration using a "Call Rules" shape.
Let's say that you're a "consultant" (by Mick's definition) and you've gone with one of the first two options. Now suppose that your CEO has decided to run a special next month to promote more business, and wants to expand the existing discount to 10%, as well as offer a further discount (%15) for orders over $10,000. You think this is good news for you on the job security front because you're skills are required to re-code, recompile and test the logic. But then you observe your boss's increasingly unimpressed demeanor as you explain the cost and effort to implement the change, not too mention scheduling a full release (with the associated system down-time... translation: loss of $$) to deploy the change. And of course you get to do the whole thing again when the temporary offer expires and you need to restore the original logic. Looking at his face now, you suddenly decide it's a good time to update your CV ...

OR... if you were smart enough to go with the third option, you can explain to your boss that he can have either you, his business analyst, or even an IT-saavy information worker update the rules using the Business Rules Composer that came with BizTalk. The rules can be tested independently inside the Composer, and then published to any environment. And here's the best thing: rules are effective immediately upon deployment, without any recompiling required! (in many cases, you won't even have to stop your BizTalk application for the rules to be deployed and take effect) In other words, flexibility to alter the discount logic in real-time with no interruption of service. Now your boss is smiling and you just might get that Christmas bonus after all.

While this example is a pretty simple one, think about the complex set of rules that support a decision about awarding credit, or for setting a premium on an insurance policy. The BRE is incredibly adept at representing elaborate decision making processes that are typically too complex or cumbersome to model in traditional code. Combine this with the versatility demonstrated above, and you begin to appreciate the immense value that the BRE adds to your enterprise solution.

So how does the BRE work?

Rules are constructed based on Facts and Vocabularies. A fact is a specific bit of information based on a data item, for example "Quantity" in the scenario above. Now if you were to reference this data item from an XML message using XPath, it might look something like this:
/*[local-name()='PurchaseOrder' and namespace uri()='http://schemas.ACME.com/2007/Purchasing']/*[local-name()='Item' and namespace uri()='']/*[local-name()='Quantity' and namespace-uri ()='']
Eyes starting to cross? Vision going blurry? Don't worry - you're not alone. Imagine confronting your business analyst or information worker with that kind of verbose syntax! However, the BRE allows you to define a custom vocabulary to provide friendly names for facts like these. Add a definition for the XPath expression above and call it "Quantity", then watch that glazed expression slowly disappear from your BA's face. :-) Moreover, you can express the rules using semantics that even your CEO can understand - which means he can verify your work if he wants to.

Now that you have your facts and vocabulary defined, you can begin writing your rules, which are simply based on conditions and associated actions. So for the example above, the rules might look something like this:
IF Quantity > 10000
    DiscountApplied = 0.15
    
IF Quantity > 5000
    DiscountApplied = 0.1
    
IF Quantity <= 5000
    DiscountApplied = 0.0
Unlike normal procedural logic like you'd write in C# code, there is no concept of an "ELSE" or "ELSE IF" branch in the BRE; a rule either fires or it doesn't. So how do you control which rule fires above if the Quantity were greater than 10,000 (since both of the first two conditions are met)? Well, actually both rules do evaluate, but you can set a priority for each rule to govern the order they are evaluated. As long as the first rule above is evaluated last, the result will be correct.    

Rules can be grouped together in Policies which are then saved, published and deployed. Once published, a policy can't be modified, but you can copy it into a new version, update it and deploy that. BizTalk always uses the latest deployed version of any rules policy. So when the special offer discount period ends, just undeploy the new version and you've instantly rolled back to the regular policy!

"Gee, the BRE is really something! But can I only use it from within BizTalk?"

The million-dollar answer is... NO! The BRE is written entirely in .NET, and presents APIs that allow you to call it from any .NET class. So you can expose your rules with a Web Service (or in WCF) and access them anywhere!

"Can I get the BRE separately from BizTalk?"

Mick says that the cheapest way to get the BRE is through purchasing BizTalk RFID Services, which bundles in the BRE for free.

Useful Links:

BRE Blog by Sreedhar Pelluru, Senior Programmer Writer (Microsoft)

Overview of BRE Integration with BizTalk RFID
Using the BRE Outside of BizTalk

So... get acquainted with the BRE and you too can start making the rules!






Finally the word on the street is out with Volta finally being announced (cool name).
 
What is it? What can it do for me? (lately :-)

Here's an example scenario:
- you write a classic .NET Winform/Client App.
- put your 'Volta' hat on and nominate sections, routines etc. of your app and which tier/layer you would like the components/classes/sections to run on.
- You then nominate Web Layers or classic CLR client layers etc.
- Volta crunches your design and boom!!! You've got your SENSATIONAL multitier app from your original single whole app.

In fact - check out this great Walkthrough for the 'Hello World app'

You don't need to worry about app splitting yourself the Volta 'directives' do the work.

When I was at Uni this sort of thing was in an area of my studies (simplified and more specific though - nominating code sections to run concurrently across many distributed CPUs....yeah I know - I'll get back to some English).

Where is this going?
Did I tell you about the next version of BizTalk codenamed 'Oslo'....

My take is that this is (and this is purely just me kicking some tyres with you guys) that BizTalk vNext is all about Modelling. Having a central repository that holds all forms of 'models' that describes not only the process, design, test....but Volta is a preview on the 'deploy' aspect of these Models.

The important point in BTS vNext is that *it is the Model that is executed* not some result of a process that you've run a week ago on that model, otherwise these models get out of date quite quickly.

Here's the 'official Volta blurb'-
------------------------

On Wednesday, December 5th, Live Labs will announce Volta, an experimental developer toolset that enables developers to build multi-tier web applications by applying the familiar techniques and patterns of developing .NET applications.  In effect, Volta extends the .NET platform to further enable the development of software+services applications, using existing and familiar tools and techniques.  Similar to other technology previews from Live Labs, the purpose of releasing Volta as an experiment, allows for testing of the model with customers and partners in order to gather early feedback and continually influence the direction of Live Labs technologies and concepts.  In addition, where and how Volta will fit into a product roadmap is not the end goal, but rather to experiment with new alternative models to enable Microsoft to continue to be innovative in this new generation of software+services.

Volta Key Messages:

  • Volta is an experimental developer toolset that enables developers to build multi-tier web applications by applying the familiar techniques and patterns from the development of .NET applications.
  • Developers can use C#, VB, or other .NET languages utilizing the familiar .NET libraries and tools.
  • Volta offers a best effort experience in multiple environments without requiring tailoring of the application.
  • Volta furthers Microsoft's software+services efforts by making it easier to write and build multi-tier applications.
  • Volta automates certain low-level aspects of distributing applications across multiple tiers, allowing programmers to devote their creative energy to the distinguishing features of their applications.
  • Via declarative tier splitting, Volta lets developers postpone irreversible design decisions until the last responsible moment, making it faster and cheaper to change the architecture to accommodate evolving needs.
  • Through MSIL rewriting, Volta follows developer's declarations to turn a single-tiered application into a multi-tiered application, generating boilerplate code for communication and serialization.
  • Volta, like other technology previews from Microsoft Live Labs, is an example of the rapid innovation of web-centric technologies happening at Microsoft.
  • The purpose of the technology previews, such as Volta, is to test new technologies and product concepts with customers and partners and to gather early feedback to influence the direction of Live Labs projects.
If you've seen me over the past few weeks, you'd have noticed some strange fungus growing under my nose... Don't worry, it isn't contagious, and it's gone now anyway. See, along with thousands of other males throughout the world, I grew a moustache to support the Movember Foundation and Beyond Blue, helping to raise money to fund research and awareness for prostate cancer and male depression. (more info here: http://www.movember.com/au/home/)

BizTalk at BarcampThanks to your generosity, my team raised over $2500, and was even mentioned on The Cage on Triple M radio, 104.5 FM. Did I think about keeping the mo' beyond the required month of Movember? Any such foolish ideas I might have entertained were quickly dispersed by my razor-wielding wife on the morning of the first of December... Wink [;)]

Missed your chance to donate? It's not too late - to sponsor me (or just make a general donation if you like), to to http://www.movember.com/au/donate, enter my registration number which is 151418, and then your credit card details.

Hi all and welcome to our last meeting of the year.

I know it's Christmas soon and we're all checking out the best gifts to get.......well I got thinking..... why don't we have a 'try before you buy' session with a xbox360/media extender etc??

We also need to make it Educational as well, so here's the line up for next Dec 5th.

Where:
Microsoft, North Ryde
1 Epping Road

When:
6pm - Beer + Pizza
6.30pm - Kick off
Dec 5th 2007

1. Introduction to BizTalk RFID Services - 101
Presenter: Scott Scovell
- Scott has extensive experience in EDI and BizTalk RFID Services.
He has recently been part of a team that has created the Microsoft BizTalk RFID Courseware, and is always eager to share his knowledge and lend an ear.

Session Outline:
BizTalk RFID Services is new to the BizTalk Product Suite, being able to enable production lines, track and trace and various other scenarios with RFID technology is key for companies to maintain a competitive edge.

This presentation will cover:

1. Setting up and configuring BizTalk RFID Services
2. Plugging in a real RFID Reader Device
3. Reading/Writing Tags within a BizTalk RFID Process.
4. Extending and customising RFID Services.


2. XBOX 360 'Christmas Evaluation' Session
Come along and road test some XBOX 360's with us for Christmas!

I'm looking forward to a great meeting and hope to see you all there.

Many thanks,

Mick.
p.s. Let me know if you're coming (so I know how many xbox controllers to put out)

The first ever Barcamp in Brisbane was held this past Saturday at the East Brisbane Bowls Club, thanks to the fantastic sponsorship and organisation efforts of Peter Ward and Steve Dalton. It was a huge success! We had ~35 attendees, at least a dozen of whom presented or led discussions (including myself). The ideas were free-flowing [along with the beer!], and we had a great game of lawn bowls to boot!

BizTalk at Barcamp
Photo by Steve Dalton

To see more pictures, go to www.flickr.com and search on keywords "brisbane" & "barcamp". You can also find some of the presentations by searching the same keywords at www.slideshare.net. Here's the direct link to my slides:

http://www.slideshare.net/gueste8b670/bar-camp-microsoft-biz-talk-server

We look forward to the next Barcamp in the new year!

I recently came across - Distributed Pub/Sub Project up on CodePlex (judging by its date/time stamp this project has been there for a little while)

What is interesting is to see where MS are looking to take these sort of systems and why - the whitepaper is a *must* read.

Coming from the land of BizTalk where we typically eat/sleep/breathe pub/sub - here is a 'new' prototype project designed at building a low latency distributed pub/sub eventing system (but I won't mention ESB .... I promise :) )

Check it out - I'd love to know your thoughts

Cheers,

Mick.

http://www.microsoft.com/downloads/details.aspx?FamilyId=333325FD-AE52-4E35-B531-508D977D32A6&displaylang=en

Live and very available.

One of the biggest benefits I see is the WorkflowHostService class - a class that provides the glue between the WF world and the WCF world....very nice!

Enjoy!

Peter Ward has organised the first Brisbane BarCamp for this weekend!

What is a BarCamp
BarCamp is an ad-hoc gathering born from the desire for people to share and learn in an open environment. It is an intense event with discussions, demos and interaction from participants. Here is a quote from the wikipedia description (http://en.wikipedia.org/wiki/BarCamp):
 
'BarCamp is an international network of unconferences — open, participatory workshop-events, whose content is provided by participants — focusing on early-stage web applications, and related open source technologies and social protocols.'
 
In other words an opportunity to interact and listen to presentations from members of the IT community at large no matter what platform/vendor or technology is being used.
 
Where:     East Brisbane Bowls Club (Mowbray Park, Lytton Road)
When:      10am-late on the 24th November 2007
Cost:         $20.00 which includes bare foot bowls and a BBQ lunch plus all proceedings.
 
If you are interested in participating in the event as a presenter, sponsor or organiser then please contact Steve Dalton (s@dalts.com) or Peter Ward (peter@wardyit.com) as they would be delighted with your participation.

(I'll be giving a presentation about BizTalk at this event)


I came across a previous comment on my blog from Thiago and noticed his sensational and very comprehensive article in setting up Load Gen on a BTS project (equipped with pictures!!!).

Grab LoadGen here

and check out his great Article here - ahhh if only all the manuals were this easy :)

Well done Thiago - keep it up!

Talk about exciting times - we were developing a great course started pre-R2 launch and were just working out some of the finer details on this, when the folks at MS came along and loved the course and asked to provide a version for them.

"Why not?", I said and away we went.

Here's the course outline with MS Training dates scheduled in Sydney, Singapore, Beijing + Redmond in the near future (I guess we'll have great frequent flyers :))

BizTalk RFID End-To-End Course Outline

We decided to call it 'BizTalk RFID End-to-End' which implies we take the student right from the hardware in your face layer, to watching 'enriched data' pop out in BizTalk Server and BAM, while consuming some WCF Services along the way.

Also in the RFID space I did a joint interview with Steve Sloan (MS BizTalk team - great down to earth guy) and a PodCast (first one :))

Interview - Australian Manufacturing

Podcast - Australian Manufacturing Podcast 
(this brought back some of my past comedy routines when I performed on stage.....)

Enjoy!

Nice post Dan and it's all true....wow what a roadmap from there until here, or then until now.
Hope you're all well and kicking goals like the Arsenal the Aussie rugby team smile_eyeroll.

I thought you should know.....recently announced at the big BizTalk conference known as the SOA and BPM conference at Redmond (put that in your wish list to attend - it would be great!) was the next version of BizTalk - vNext code named 'Oslo' (...checking the north wall.....kccck...clear!.....south....kccck...clear also).

Great to have a plan I reckon! So here's the low down of it.....

Oslo will be:

- timeframe 2009+

- services enabled and model driven

- Have the following components (at this stage):

  1. Built on .NET V4.0 framework
  2. Server - deeply integrated with WF and WCF to host 'stuff'
  3. Services - "BizTalk Services in the cloud stuff"
  4. Tools - vs.net "10", app lifecycle
  5. Repository - common across management, tools + runtime to manage the 'deployed' bits.

What to do from here - not too much at the moment. It's sort of a nice to know and for those keen at heart go and check out http://labs.BizTalk.net where the current offering is for BizTalk Services V1.0

Register and away you go! Brilliant.

Have fun!

Well, we're now up to BizTalk Server 2006 R2 - which is actually the fifth version of BizTalk to be released. For those of you who started with one of the first two versions, Mick knows a good therapist... I was lucky enough to escape those trials and come on the scene starting with BizTalk Server 2004, the first reasonably integrated version (I know a few folks who were forever turned off to BTS because of their experiences with one of the earlier releases!)   

Let's see where we've come from:

BizTalk Server 2000
  •     First version shipped
  •     XML B2B
  •     Enterprise Application Integration (EAI)
  •     XLANG Schedules
  •     Document Specifications
BizTalk Server 2002
  •     EAI (partner adapters)
  •     Vertical B2B
  •     XLANG Schedule Correlation
BizTalk Server 2004
  •     First version to run on .NET 1.0 (Visual Studio 2003)
  •     Business Process Management (BPM)
  •     Partner adapters (3rd party)
  •     Business Rules Engine / Rules Composer
  •     Business Activity Monitoring (BAM)
BizTalk Server 2006
  •     First version to run on .NET 2.0 (Visual Studio 2005)
  •     Service Oriented Architecture (SOA)
  •     Enterprise Service Bus (ESB)
  •     Adapters Out of the Box
  •     Host Integration
  •     Real-time BAM
  •     Consolidated Administration Tool
BizTalk Server 2006 R2
  •     Enhanced SOA / ESB
  •     Enhanced BPM
  •     Extend B2B (+EDI/AS2)
  •     Radio Frequency Identifier (RFID) tracking
  •     Windows Communication Foundation (WCF)
  •     Windows Workflow hosting
Yes, we've come a long way in just seven years! From designing Visio-based XLANG schedules, creating specifications, and mapping data with a loosely bound collection of tools (BTS 2000/2002), to an integrated Business Process Management solution with Visual Studio development & runtime support and a Business Rules Engine (BTS 2004), to a full Enterprise Integration solution out-of-the-box (industry adapters included!) with a one-stop admin console that doesn't take a 3-day course and 100+ pages of documentation for your IT administrators to manage (BTS 2006). R2 then delivers true SOA capability via a connected systems package supporting "edge-of-the-enterprise" supply-chain scenarios and RFID, as well as interoperability with WCF and LOB access through a comprehensive adapter package.  

The bottom line:

If your only experience with BizTalk has been version 2004 or earlier, then it's high time you have a good look at 2006 R2 to see the enormous improvements in connectivity, interoperability, ease of design and implementation, and management!

Check out this great presentation by the "Father of Information Engineering" Clive Finkelstein, covering SOA and BPM Concepts, including a discussion of MS BizTalk Server as one of the foremost BPM products. The session features a great discussion on Service Oriented Architecture (SOA) concepts, including a description of BPEL, BPML, BPSS, and BPMN (10 pts if you can identify all those acronyms without looking them up!) It also discusses a variety of SOA vendors and products.

Download a PDF file of the slide handouts here:

http://www.ies.aust.com/downloads/SOA/download-pdfs.htm

Hi guys, if you've ever embarked down the 'hey I want to monitor my bts system through Operations Center 2007', you'll realise that there is a fair conversion process to take the original BTS2006 MOM Pack from *.AKM format to the newer *.XML format.

Essentially you do:

1) Install a conversion tool on MOM 2005 SP1 machine

2) run the conversion process

3) take the exported file to your Operations Manager 2007

4) Import the *.XML to Ops Mgr 2007 to generate the classes.


Or........ you could download the ready made version - http://www.microsoft.com/downloads/details.aspx?FamilyId=389FCB89-F4CF-46D7-BC6E-57830D234F91&displaylang=en

Wow what a winner!!!!

Problem solved....... cross that one off the list smile_regular

http://blogs.msdn.com/biztalk_core_engine/archive/2007/03/31/hidden-gem-in-biztalk-2006-r2.aspx

The instances table in the msgbox has a newly added column (in R2 only) to that shows the shape on where the Orch is blocked on.

So if there's a stack of Dehydrated Orchs in your system, you know what they are waiting on rather than use Orch Debugger.

Thanks Lee, you'll be missed!

Mick.

More Posts Next page »