BizTalk Server

Biztalk 2010 : Configuration Guide


Biztalk is Microsoft’s Integration and Process server (sometimes referred to as an Enterprise Service Bus), is now in its 2010 edition and seems to be going from strength to strength 10 years after it hit the market.  I’ve worked with versions 2004 and 2006 R2 of Biztalk in the past for EDI projects and it’s a great product with a lot to offer.  It has custom adapters for connecting LOB systems and is heavily integrated with the .NET Framework, especially WCF.  The great thing about this new version of Biztalk is that the installation is easier than ever. Installation has become simpler with each release since Biztalk 2006 – I remember Biztalk 2004 being a nightmare to install when it came to its prerequisites installations (SQL Server SP’s etc).

For Biztalk 2010, al the prerequisite components required are downloaded for you by the installer (if you don’t already have the .cab files available on the disk) and the once the installation has finished (it takes about 15 minutes), the basic server configuration option ensures you are up and designing Biztalk applications in a very short time by auto configuring single sign on and setting up all the databases and service accounts for you using the single account specified on the first page of the configuration screen.

In terms of the audience for this post, if you are a newbie to Biztalk and wish to follow along with the configuration steps, hopefully this is simple enough for you. I do reference certain Biztalk features without explaining them in any detail so the more experienced developers may feel more at home having setup previous installs of the server.  In terms of environment for this install, I am using a Windows 7 machine and will be setting up a single server as no pre-existing Biztalk server environment exists to join with on my network.  I already have .NET 4, Visual Studio 2010 and SQL Server 2008 R2 installed.  In terms of the software component pre-requisites for the install, here is the list:

Prerequisites:

– Microsoft SQL XML 4.0 with Service Pack 1

– Microsoft Office Web Components

– Microsoft ADO MD.Net 9.0

– Microsoft ADO MD.Net 10.0

– Setup runtime files

– Enterprise Single Sign-On Server

– Enterprise Single Sign-On Administration

– Microsoft Primary Interoperability Assemblies 2005

Features Being Installed:

– BizTalk EDI/AS2 Runtime

– Windows Communication Foundation Adapter

-Portal Components

– Business Activity Monitoring

– Windows Communication Foundation Administration Tools

– Developer Tools and SDK- Documentation

– Server Runtime

– Administration Tools And Monitoring

– Additional Software

– Business Rules Components

– BAM Alert Provider for SQL Notification Services

– BAM Client- BAM-Eventing

Installing Biztalk 2010

Now I’m assuming you are either installing a paid for version of Biztalk or are trying out the trial offered on the Microsoft Biztalk site and so have the legit zipped installer package.  Once you have the installer package extracted to your disk, select the setup.exe file from the BT Server folder.  The install should be pretty self explanatory. Select the features you wish to try out and select install. Grab a coffee whilst this screen does its thing:

Don’t worry about the installers lack of interaction with you. Biztalk installs the required server components first and allows you to configure the server databases and register the server components later, which is what we’ll walk through now using the Biztalk Server Configuration tool.  This can be found in your program folder in the start menu:

The initial configuration screen will ask what mode of configuration you wish to proceed with.  In this case, we are choosing ‘custom’ as the basic mode performs all of the configuration for you and that’s not much use when we’re trying to understand the configuration process.  Supply the screen with your SQL Server instance name and also provide a windows account for use by the Biztalk service.  If you use an account that is part of the local or domain administrators group, you will be warned of the security risk related to doing so, but you can continue.  It isn’t advised to be using an administration account for a production Biztalk installation.  Select the ‘Configure’ button to view the following screen (note – this image was taken post configuration so shows items already configured. Your screen will contain red circles illustrating non configured features):


Enterprise Single Sign-On

The first of the server features to configure is single sign-on as most of the other features require this for their configuration.  Select Enterprise SSO from the tree, enable single sign using the check box provided and create a new SSO system.  Doing this will create a new single sign on database (SSODB) onto the SQL Server specified. A SQL Server login for the SSO Administrators group is also created.  As well as the database, the single sign-on service will be set. I am using the same service account specified earlier.

Before leaving SSO, ensure you set a SSO backup password and a location for the backup.

Biztalk Server Group

Next we join or create a Biztalk Group.  Your Biztalk server needs to be part of a group enabling you to manage your Biztalk server infrastructure at the group level.  In this instance I’m installing to my development machine only so will be creating a new Biztalk Group which I will manage from this machine.  Enable the Biztalk Server Group and then create a new group. If you’re familiar with Biztalk you’ll see the configuration for the Management and Tracking databases and of course, the all important MessageBox database.  Again, specify the database names (I always stick to the defaults) and select your Biztalk role to windows group mappings for Biztalk Admins, Operators and B2B Operators.

Biztalk Runtime

Next up, we have the critical Biztalk runtime. This is the engine of Biztalk and deals with processing and routing of messages into the messagebox and out of the system. You may also be paying for your Biztalk server on a runtime basis (license per runtime).  Ensure the ‘Register the Biztalk Server runtime components’ checkbox is ticked.  Biztalk applications are hosted within a process host so whilst registering the server runtime, leave the ‘BiztalkServerApplication’ and ‘BizTalkServerIsolatedHost’ checkboxes ticked.  Both of these are in-process hosts, so will need a windows account to run on. I’m using the same account used for SSO.

Biztalk Rules Engine

If you’re going to creating rule policies / vocabularies etc, you need to activate the Biztalk Rules Engine.  The rules engine allows you to abstract the business rules from your orchestrations (processes) to enable easy management of rules away from the process itself.  Rules are such things as ‘if PO cost is greater than £500.00 and cost centre = ‘101ADM’ then do this’.  Ensure ‘Enable Business Rules Engine on this computer’ is checked and specify the business rules database store (again I would recommend leaving the default  ‘BizTalkRuleEngineDb’).

Business Activity Monitoring [Portal]

BAM is the business activity monitoring side of Biztalk. It allows you to monitor certain business KPI’s against your process instances so that business stakeholders have real time updates on how their business is doing.  Monitoring of course is one of the key elements in process management and is one of the core drivers for process improvement.  If you plan on using BAM, enable it and confirm the database names.  As this is my development server, I won’t be adding BAM Alerts at this time, even though I do have SQL Server
Notification Services installed.  Last up on BAM and the configuration in general, we will be enabling the BAM portal.   This is the window into the activity data produced by BAM Services and is hosted on the local IIS server.  This section deals with some of your web server settings and for now I will be adding the site to my Default Web Site on IIS (version 7). You can of course setup your own site / application pool for this.

EDI/AS2

In this instance I have chosen NOT to install the BizTalk EDI/AS2 runtime as I’m not planning on creating any X12 or EDIFACT documents anytime soon and unless you are familiar with these areas or are actively using Biztalk to deal with EDI files it’s best not to install this feature.  The AS2 part of this relates to HTTP security (AS1 – SMTP, AS3 – FTP).

Applying The Configuration

So… I’m all done with my servers configuration. I have configured my Biztalk installation and am ready to Apply my configuration preferences.  Select ‘Apply Configuration’ from the top left of the server configuration window.  Biztalk will present you with a summary of your configuration choices as shown below:

Once you proceed, the configuration will take a minute or two and once completed, you will be presented with a list of green ticks (hopefully) against your server features. Any problems will show up with the familiar red circle with cross.  Typical issues can involve database rights and authentication using the windows account credentials provided.

Once the server has been configured, we can check all is well by opening up the Biztalk Server Administration application.  This is the application for managing your deployed Biztalk Applications and all of their artifacts.  Expand the Biztalk group and if all is well, you should see the default Biztalk applications and artifacts list as shown (notice we connect to the Biztalk Management Database for this info):

Another useful check is to boot up Visual Studio 2010 and check that Biztalk project template is available to you:

Congratulations, you are ready to begin creating XML Schemas, WSDL, Orchestrations, Custom Pipelines and more.

Advertisements

SOA : The very basics


SOA is one of those subject areas I’ve read a lot about of late.  I’ve delved deep into this topic to really grasp an understanding of what the topic entails and fundamentally what it means.  There tends to be a lot of guff (my word for ill-informed talk of a popular subject) in and around this topic and so in this article I’m hoping to sort out this guff and give newbies to the subject a bare bones definitive explanation.

A second reason why I wanted to write a bit about SOA is that I’ve heard twice this week the term ‘SOA Server’. Now whilst I understand what is trying to be conveyed (most likely a reference to an Enterprise Service Bus), it’s not like there is a single server product that just ‘does’ SOA in the same way your DNS server resolves IP to host names or your DHCP server ensures your network hosts have an IP address handed to them.

SOA what is it then?

SOA for the absolute beginner stands for Service Orientated Architecture. The name itself provides a clue to its fundamental meaning in that it’s an architecture for your Information Technology systems. Essentially it is the design and construction of service based IT.

Services are everywhere in our daily lives as our list below demonstrates:

1) The ATM provides you with a cash dispensing service

2) The sandwich shop offers you a sandwich making service

3) The courier offers you with a delivery service.

We just forget that we are being offered services every single day.

Using our example above of the ATM, Sandwich Shop and Courier services, it’s important to remember that not only are these serving us as customers but they are offering services to each other to enable their businesses to thrive. The sandwich shop clearly requires cash from an ATM to ensure that sandwich provisions can be bought and in certain cases the courier company services the sandwich shop by delivering the sandwiches to hungry customers. The ATM maintenance chaps also need to keep their energy up and so the sandwich service is a regular means of satisfying those lunch time hunger pangs. Whichever way you look at a scenario, services are provided and consumed by each other. In short, services consume other services to provide services and ultimately this is the goal of a Service Orientated Architecture.

Condensing what Service Orientated Architecture is into a single sentence I would say that it is An approach to building component service based IT systems.

SOA as a strategy

The more commonly used term used (instead of ‘approach’) is ‘business strategy’. SOA is one of several Business Strategies that ultimately result in a more effective running business because business change leads the way instead of the business being controlled by ‘what the IT can do’.

Having large complicated systems that don’t really talk to each other and invoke large costly ‘change’ projects that take months to complete is not an ideal scenario for a business that needs be dynamic. When I say dynamic, I mean having the ability to change with the market as well as change internal business processes without the need for long drawn out IT projects. Large costly systems are the shackles of business change and so taking a component service approach to designing IT systems is the key to freeing businesses from these shackles.

Employing a Service Orientated Strategy will allow the business to drive change and not the other way around. IT and the Business are more in line with each other.

Taking a SOA approach.

Now it’s clear why SOA is an important strategy to invest in, we need to know in what way SOA can help obtain this goal of a Business Driven IT Infrastructure.

The main goals of SOA is to allow IT to create component services using the latest frameworks (J2EE, .NET, Oracle Fusion, SAP Netweaver) and key technologies (XML!), leverage current IT assets that a business has already heavily invested in and to re-use services in a Lego brick type way. Re-use of already written services means that you write less code, there is less code to maintain when a service needs to change when being consumed by a bigger application, support for that application becomes simpler because change to a service component needs to happen in one place only.

Component services doesn’t mean just ‘Web Services’. Web Services are a type of component service but the main point of component services to wrap more bulky logic (normally old legacy systems) into simple service endpoints that do as little as possible (lots of tiny services doing lots of useful jobs means that other services can build on these and offer a greater level useful services).

Web Services

It would be criminal to leave the scene of a SOA discussion without covering the topic of web services and how they are changing the way companies interact internally (between systems) and globally with customers and partners. Web Services are a type of component service that should really be called ‘Business Services’ as they expose business logic over an inter-enterprise or global network. This has opened the door for disparate system interaction by connecting completely different systems through a common communications method using open standards. Essentially the introduction of web services has completely changed the landscape in terms of business to business interactions and internal systems interaction.

Since web services use HTTP and open standards such as SOAP to communicate, the consuming and providing systems do not need to understand anything about each other. You may have a SAP ERP system talking to an external .NET based ordering system and either doesn’t need to understand what the other is doing behind the scenes. All the consuming service needs to know is what information it needs from the service provider and in what format (the message) it needs to request it in.

Amazon has several exposed web services that allow you to query their catalogue. One particular web service allows a web service client to provide a product code and have a price returned instantly for that product. Many sites on the web today use web services transparently so you will never really know how much web services use you really do use.

Web services are the future and a major part of a SOA strategy.

SOA and Business Process Management

BPM, SOA and EAI are 3 of the most commonly used acronyms in my field. They are big areas of focus on many of today’s IT roadmaps as they are areas that are very closely aligned, but understanding the differences is important. Business Process Management is part of a good SOA strategy and can depend on the Enterprise Application Integration domain for improving system to system or user to system interaction for business processes. They interoperate as area’s of focus but understand that BPM and EAI are sub activities of SOA. Making improvements to business processes and connecting your systems are goals that should be detailed in a SOA strategy. SOA should be the umbrella strategy for BPM and EAI projects.

Summary

SOA is changing the face of business and IT interactions by improving relations, lowering the cost of supporting the IT engine and reducing the need for major cost investments in large packages by developing in-house systems on a component services foundation. My intention in this article was to literally touch the service of SOA, it is a large area and the tools used as part of the strategy are a plenty so please dig deeper into SOA and understand it from a day-to-day systems perspective and how it is helping in making the goals detailed above a reality.

Biztalk Server 2006 : The Biztalk Message


Biztalk Message

First off, I’m going to talk about the Biztalk message from a developer perspective so an understanding of .NET or in fact any OOP fundamentals are a bonus.

The Biztalk message is the container that holds an instantiated object(s) from the Biztalk Message Class. The message object has public properties called context properties (message metadata that can be used by the Biztalk engine to filter messages).  Context properties are added by the receiving adaptor and new properties can be added.  Message fields can be promoted and become properties of the message also. These ‘promoted’ properties are stored in a separate property schema (property bag) that can be loaded into memory when loading the entire message by the message box to speed up message routing. These distinguished or context properties are accessed as properties of an object would be accessed :

Message.MessagePart.Property (e.g. Invoice.Footer.TotalAmount = 90)

Here Invoice is the message object and TotalAmount reflects a promoted field that corresponds to a field in the message schema. This of course makes the field value public so that orchestration components and the message box can ‘see’ the properties.  The other important member of the Biztalk message class (BTXMessage) is the loadfrom() method, which loads the message data into the message class.

Its important to remember that a Biztalk message is immutable and so is incapable of  ‘mutating’ / be changed.  The message is created by the receiving adaptor and can only be changed when ‘copied’ into a new message container using the ‘Construct Message’ shape within the orchestration designer. Construction of a message involves creating a new entry in the message box Database.  Modifications can only occur when you make a new instance of the message and copy the old to the new (OldMessage = NewMessage) via the expression editor. All message properties are copied.

Message Inheritence

Each message created to the message box has a GUID (globally unique identifier) which identifies the message in the message box.  Within an orchestration, biztalk uses .NET classes to represent individual messages (the orchestration itself essentially compiles down into a .NET assembly).  These classes act as a generic wrapper around the underlying message data.

Each message biztalk is derived from the :
Microsoft.BizTalk.XLANGs.BTXEngine.BTXMessage class which ultimatley inherits as follows:

System.Object (The base class for all .NET classes)
  Microsoft.XLANGs.BaseTypes.XLANGMessage
    Microsoft.XLANGs.Core.XMessage
      Microsoft.BizTalk.XLANGs.BTXEngine.BTXMessage

When you construct a message in Biztalk you are essentially instantiating a new BTX Message class (and copying the data from the old class to the new one if modifications are required).

Message Types

Biztalk messages types come in 4 flavors and how you assign values and construct messages differs slightly depending on which message type you have chosen to create.  These messages can be single or multipart and can hold Binary, XML or a serialized .NET Class data and the type of message is set in the message properties window within visual studio’s orchestration designer.

a) .NET Classes (single part message on which serialization can be set).

b) Multi-Part messages (each part of a multi part message is exposed via intelli sense  like so: MyMessage.PartA.LoadFrom(“Hello World”))

c) Schema Messages (a single part message so assigning value is done at the message level, not the property (or part) level as there is only one part).

d) Web Message (multi part message used in conjunction with SOAP based web services)

Biztalk Server 2006 : Free Audio Book Training


BizTalk Logo

Back in late 2005 when Biztalk 2006 first came to the market I began testing it at what is now Virgin Media in the UK. Over a period of time as I implemented a collection of Biztalk applications I started to collate information from various sources and compiled these notes into a logical flow that describes what Biztalk server does and what components are involved in creating a Biztalk application.  The information used is a mix of my own findings and extracts from various articles on Biztalk over the last few years, all combined into an organized audio book.  I almost called this article ‘Biztalk 2006 as told by an android’ however since the reader is nothing more than the Mac OS X text to voice technology. That said, he is very understandable and the information is still communicated in a clear way, not only that but it is very hard to find free ‘complete basics’ Biztalk training, especially in audio book format ANYWHERE on the web.  The only amusing pronunciation however is its version of the Biztalk mapper functoids (mapping functions) that he verbalizes as ‘Functo-oids’…

The file is downloadable as a rar archive and is around 79MB. Download the files here. Content :

01a – Intro – Introducing BizTalk Server 2006 R2 2:12
01b – Intro – What BizTalk Server Provides 2:37
01c – Intro – How BizTalk Server 2006 is used 4:08
02a – BizTalk Architecture – Engine 4:43
03a – Connecting Systems – Intro 0:59
03b – Connecting Systems – Adapters 4:43
03c – Connecting Systems – Pipelines 6:30
03d – Connecting Systems – Subscriptions 2:12
04a – Defining Business Process – Intro 0:44
04b – Defining Business Process – Using Orchestrations 2:47
04c – Defining Business Process – Schemas 1:11
04d – Defining Business Process – Mapping 4:22
04e – Defining Business Process – Orchestration Designer Part 1 3:22
04f – Defining Business Process –  Orchestration Designer Part 2 6:14
04g – Defining Business Process – Business Rules Engine Part 1 2:50
04h – Defining Business Process – Business Rules Engine Part 2 3:36
05a – Mgmt and Monitoring – Intro 0:27
05b – Mgmt and Monitoring – Installing BizTalk Server 2:32
05c – Mgmt and Monitoring – Scalable Configurations 4:07
05d – Mgmt and Monitoring – Application Management 3:11
05e – Mgmt and Monitoring – HAT 1:44
06a – SSO – Part 1 Single Sign On 2:13
06b – SSO – Part 2 Single Sign On 4:03
07a – Information Workers – Intro 0:54
07b – Information Workers – Part 1 BAM 2:57
07c – Information Workers – Part 2 BAM 3:50
07d – Information Workers – BAS Intro 1:42
07e – Information Workers – BAS Trading Partner Management 2:41
07f – Information Workers – BAS Business Process Configuration 1:48
08a – Other Technologies – Intro 0:40
08b – Other Technologies – Part 1 WWF 3:13
08c – Other Technologies – Part 2 WWF 3:40
08d – Other Technologies – WCF 2:14
09a – Wrap Up – Conclusion 1:51