Wednesday, May 13, 2009

TechEd 2009 - Day 2

On Day 2 I spent some more time looking into BizTalk 2009 and System Center(SCOM).

The ESB Guidance 2.0 presentation from Brian Loesgen provided some excellent insight into the latest version of the ESB Guidance 2.0 CTP. I am going highlight some of the interesting bits of info that I picked up. For more details regarding ESB Guidance check out the codeplex site. You may not want to bookmark that site because it won't be living there very long. You will have to read the rest of the blog to get the punchline.

What is ESB Guidance 2.0?
It is an initiative of the Microsoft Patterns and Practices team that provides architectural guidance, patterns and practices. The building blocks that are in the package are reusable blocks of code that compliment BizTalk Server. They do not replace BizTalk servers but they allow you to use BizTalk in a "BUS" mode instead of the more traditional Hub and Spoke Model.

Why 2.0?
There was a previous version called 1.0 that left some people wanting more. The initial stab of the kit was known for a tedious installation, pushed some of the itinerary decisions onto the client and lacked some of the tooling that developers were asking for. I am happy to say that these issues have been resolved. Brian indicated that his install only took around 15 minutes instead of hours or even days with the old version. They have done a great job on this version.

Features
The itinerary designer was pretty slick. When you install ESB Guidance, an additional toolbox will be included in Visual Studio which allows you to drag these ESB related shapes onto your orchestration designer. You then are able to configure these shapes within Visual studio. I tend to look at this as if you are configuring a workflow for a message. You have a particular series of events and you want to configure it to encounter. The sum of all of these events are essentially your itinerary. So for example you may receive a message and as part of this message's interaction, you need it to be transformed to a new message format, have it passed to an orchestration for additional processing only to be transformed to an additional format on its way out the door. Instead of tightly coupling this solution within a series of maps and orchestration(s) you essentially are configuring the itinerary which will instruct BizTalk what to do with the file. BizTalk will use .Net components, that are included in the Guidance kit, to perform all of the map and orchestration resolutions at run time.


Additional info:

  • Only available for BizTalk Server 2009
  • Provides extensibility points so you can customize to meet your needs
  • More prescriptive guidance is available in this version
  • Samples of popular scenarios in SDK
  • Itineraries can now be published to an XML file or SQL Server repository. This worked very well. From within Visual Studio you can push the itinerary to SQL Server with a click of a mouse. You can use deploy multiple versions of the itinerary to the repository and by default the newest version will get executed.

Big News
It was announced at TechEd 2009 that the ESB Guidance will be making its way into the product offering. Starting in June, it will be known as the BizTalk Server ESB Toolkit. It will be signed code from Microsoft and available via MSDN Download centre. Private fixes will be available via MS Connect site and support will be available via Microsoft Premiere Services. There will be no additional charges for the toolkit when you have a BizTalk license.

SCOM (System Center Operations Manager)
I decided to attend a session that was a little outside my comfort zone. I have had exposure to both MOM (Microsoft Operations Manager) and its successor SCOM through my involvement with BizTalk. We have used both of these technologies to inform our team of any issues that are occurring on the BizTalk Servers. I can't imagine running BizTalk without them.

The session itself was dedicated to Cross Platform Management packs. More specifically, using SCOM to monitor your Unix/Linux operating systems and the applications that run on these platforms.

I was impressed with the experience inside of SCOM. The experience of managing and monitoring these platforms is the same as it is for Windows platform. Under the hood SCOM is issuing commands through SSH that is able to retrieve information from the platform or is able to execute a command on those systems.

In the Windows world an agent is pushed to the server that SCOM is going to be monitoring. The process is very similar for Unix/Linux however the terminology is a little different. In Unix the equivalent of a Windows service is a daemon. So you will find that daemon bits are deployed to these servers much like windows.

Out of the box you will find that SCOM has the addressed the core set of functionality that you would expect. This includes:

  • File Systems (both physical and logical)
  • Memory usage
  • Processor Usage
  • Network interfaces
  • Daemon availability

I wasn't able to catch the entire list of supported flavours of Unix/Linux so the following list is not comprehensive:

  • IBM AIX 5.3, 6.1
  • HP - 11.2, 11.3
  • Red Hat ?,?
  • Solaris 8, 9, 10
  • SUSE

If you need more visibility than this you can look to some 3rd party packages like Novell's SUSE Linux management pack. For more application specific management packs that run on Unix/Linux you can look to Bridgeways' Management Pack. With the Bridgeways' management pack you can find support for:

  • Apache Web Servers
  • PostGres Database
  • Oracle Database
  • DB2 Database
  • MySQL
  • Apache Application Server
  • JBOSS Application Server
  • WebSphere Application Server
  • Oracle Application Server
  • BlackBerry Enterprise Server
  • VM Ware ESX
  • and more

It was an interesting session. What I found was that Microsoft is very serious in this area. Customers have demanded a composite monitoring solution that allows them to watch their entire enterprise, not just their Windows Servers. Microsoft has stepped up by providing the functionality themselves or by leveraging a 3rd party management pack. Microsoft has also stepped up their game in the support area. They have increased their support capabilities so that when you do have an issue with their Unix/Linux management packs that they will have someone that can speak intelligently about the issue from a Unix/Linux perspective.

Expect SCOM 2007 R2 and these third party management packs to ship June 2009.

Tuesday, May 12, 2009

TechEd 2009 - Day 1

Key Note:
Besides re-iterating the theme of "Do more with less" several times throughout the presentation, the big news was that Windows 7 and Windows 2008 R2 will be available for Christmas, at least that is what the current intentions are.

We saw some very interesting demos that displayed some of the synergies between these two products:
  • MEDV (aka Microsoft Enterprise Desktop Virtualization) provides you the ability to run applications on a new platform that otherwise would not be able to run. For example lets take an application that was built for Windows XP that cannot run on Windows 7 (or Windows Vista for that matter). This type of scenario may kill, or delay, your desktop refresh project until you can either figure out how to run it on Win 7 or rebuild the application. Enter MEDV. Using MEDV allows you to run two Operating systems on one device simultaneously. In the demonstration, they had an application that would not natively run on Win7 but it would run on Windows XP. With a double click of the mouse the application launches before your eyes. I was expecting some significant lag in this application loading due to the fact that it is really running on Windows XP. However it was extremely snappy. Within a second the application was launched and there was no real indication that XP was even running. The differentiator was that the application had a Red outline around it. Pretty cool stuff...I was blown away. For more info on MEDV check out the following link.
  • APPV (aka Microsoft Application Virtualization ) provides you the ability to stream portions of applications on demand to the end client. In demo they simulated a user logging on to a brand new machine that they had never logged into and opening an Excel spreadsheet. So what's the big deal? Excel was not installed. Once the presenter double clicked on the Excel spreadsheet, Excel bits were brought down to the laptop and the spread sheet opened. This all occurred within a couple minutes. Last time I checked, the installation of Excel took quite a bit longer than that and no reboot was required. For more info on APPV check out the following link.
  • Branch Cache - Do you have any local branches that may be in remote areas where the bandwidth just isn't there? If so then this may a feature of Windows 7 + Windows 2008 R2 that is for you. When a user downloads a file, or Web page, from say your corporate intranet, this artifact will be cached locally within the branch. So when the next person comes looking for that same resource, it can be downloaded from the branch cache instead of the Intranet. This seems like a good way to increase productivity, reduce user frustrations and save on data communication costs. Check out the following video for more details.

Introduction to BizTalk Server 2009
I only caught the tail end of this presentation but wished that I had seen it all. There were two demos that included connecting BizTalk to the cloud. In Ofer Ashkenazi and Danny Garber's session they demonstrated two cloud scenarios: the first one connected to the Microsoft Live Mesh service and the second connected to the .Net Service Bus by participating in a relay . These adapters are currently not publicly available but I have been told that at some point they should surface.

So why is this important? I can envision several scenarios where BizTalk can be used in conjunction with the cloud. Today if you want to expose BizTalk hosted services outside your organization, you need to get your hands dirty in the DMZ. For many organizations the the risks are significant and can slow down or even stop a project. For some organizations, they will rely upon ISA servers to forward the traffic onto the BizTalk servers, others may install BizTalk App Servers in the DMZ and then poke a hole in the firewall so that BizTalk can speak with SQL Server. Others may implement their own custom proxy( like a Web Service) that will just act as a router. As you can see none of these solutions are that great. By using the .Net Service bus, BizTalk can establish an outbound connection to the bus and subscribe to messages moving through the bus. This way you do not need to open firewalls or introduce new infrastructure components into your DMZ. The other benefit is that you can continue to use the all of the tooling that BizTalk provides out of the box. Yes I could create a WCF endpoint to listen to the .Net Service bus, but then I lose out on many of the benefits that BizTalk already provides.

Programming Microsoft .Net Services
The first part of this session was primarily a review, but the second half more than made up for it. I have read Aaron Skonnard's blog several times but never had the opportunity to hear him speak. He is an excellent presenter and I highly recommend seeing any of his sessions or taking training from him.

The 2 new features in the .Net Service bus are Routers and Queues. Routers provide you the ability to multi cast messages onto multiple subscribers or it provides you the ability to send a message to 1, of many, subscribers. The Queues have been added to provide some durability around messages moving through the bus. If you have a consumer who is not always connected, pushing a message to a queue until they can make a connection provides the sender some additional assurances that their message is safe until a connection can be made. Here is a link to the recently published white papers. I know what I will be doing on the plane ride home.

Saturday, May 9, 2009

Ignite Your Career: IT Architecture Career Webcast Series

UPDATE:
You can now download this discussion from here.


I will be participating in a panel discussion for the IT Architecture Career Webcast Series - Honing Your Experience And Skills For Uncertain Times (SESSION #2 OF 4) on Tuesday, May 12th.

IGNITE YOUR CAREER: IT Architecture Career Webcast Series Overview
With the economy experiencing challenges it is more important than ever for IT architects to manage their career growth and skills – and one excellent way of doing this is to learn and discuss with our peers as well as mentors. The purpose of the Architect Webcast series is to share with architects and other technical decision makers experiences and insights from a panel of leading architects in the IT industry across Canada.

If you are interested in listening on the discussion, you can register here:
https://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032403865&EventCategory=4&culture=en-CA&CountryCode=CA

Saturday, May 2, 2009

WebSphere Best on Windows

I don't think that Steve Martin is bored these days. In March he was caught up in the "Cloud Manifesto" fiasco and now he is right in the middle of a new battle with IBM. No I am not referring to Steve Martin the actor, but rather the senior director of developer platform marketing at Microsoft.

His latest battle involves WebSphere running better on Windows Server 2008 than a high priced IBM AIX system. Martin's claim is that you can get more transactions per second (11000 vs 8000) at about a third of the price. ($87161 vs $260128).

I have no idea whether the claims are true or false, but I do know that Microsoft generally puts a lot of effort into backing their claims. Obviously Steve is pretty comfortable with the claims that have been made, otherwise I am sure he wouldn't be willing to fund a third party bake off as he has mentioned in his blog.

Check out http://www.websphereloveswindows.com/ for more details on how you can effectively run WebSphere on Windows!

Should be interesting to see where this ends up.

Tuesday, April 21, 2009

New BizTalk HotRod: Issue 6 Q2 2009

The latest edition of the BizTalk HotRod can be downloaded here. In this edition you can find some good info on BRE, AS2, XSLT Mapping, Static code analysis using BizTalkCop and a preview into what looks to be an interesting Admin tool called "Terminator".

Sunday, April 19, 2009

BizTalk Server 2009 Hyper-V Guide

Microsoft has recently posted the BizTalk Server 2009 Hyper-V Guide. You can find it here.

Here is a short description of Guide:

"The purpose of this guide is to provide practical guidance for using Microsoft BizTalk Server 2009 with Microsoft Windows Server 2008 Hyper-V. The emphasis is on BizTalk Server, but the performance evaluation methods and performance testing scenarios are useful for analyzing the performance of virtualized server applications in general. This guidance will be of interest to both the IT Pro and Developer communities."

Saturday, April 18, 2009

Clustering BizTalk Hosts

I went through this configuration a few years ago before I started blogging. Since I had to build a parallel environment recently, I have decided to post this information.


So why would I want to Cluster a BizTalk Host?
If your BizTalk group needs to be Highly Available, but you want to limit a Host to only have 1 Host instance. The reason that you may want to do this is to prevent message duplication. Message duplication may occur when you have *some* adapters running in multiple Host Instances. Adapters such as POP3, FTP, MSMQ/MSMQT and database adapters in polling scenarios.

For example, if you have two BizTalk servers and they both have a Host Instance on them called "FTP", both Host Instances will trigger a connection to this FTP server. If a file exists on the FTP server that matches your Receive Location's file mask, both of these host instances will attempt to retrieve a copy of this file. The reason for this is that the FTP protocol does not support file locking.


The solution to this problem is to cluster the "FTP" Host so that only one Host instance is capable of running at one time. Since the Host is clustered, it is capable of running on the servers that are configured in your cluster administration configuration. In this "Active/Passive" scenario, the Host instance does exist on the "Passive" node, it is just stopped. The core Windows 2003 Cluster functionality takes care of determining whether the Host Instance is online and if it is not, it will try to start it on another node.

So there is a little background on why you need to do this, I will now go through the process of setting this up inside of BizTalk.

The first thing that you need to do is create a BizTalk Host. You do this the same way you would create a Non-Clustered Host.
You then need to create a Host Instance on every node in your cluster. Otherwise you will get presented with the following error:
Once you have created all of the host instances, go into the "Hosts" menu, find the Host that you want to cluster, right mouse click and select "Cluster".

You will then be prompted to provide the Clustered Resource Group that you want this Host to belong to. A resource group basically allows you to group services, or resources. You can then spread these Resource groups across multiple servers.

Once this is complete, you will see a new "Generic Service" added to the Clustered Resource group that was previously selected.



So what does this look like inside of the BizTalk Admin console? I have included a non-clustered host instance "ServiceProcess" just to illustrate that the icons are different. The next clue is that one "EnterpriseClusteredSQLReceive" Host instance has the caption of (Active) beside it. What this means is that this Host Instance is actively running on node "01A". It is not possible to try and start this host instance on multiple servers at the same time.

So in this post I have over simplified the Windows 2003/2008 clustering process. I have attacked it from the perspective that the OS level clustering has already been put into place. Don't under estimate the effort required to do this. To learn more about this process, check out the following link: Improving Fault Tolerance in BizTalk Server 2006 by Using a Windows Server Cluster.

Also note that BizTalk Host Instance clustering is only available in BizTalk 2006 onward.