Hi BizTalk Hotrods!

t‘s been awhile and I bet some of you were thinking we Todd Van Nurden couldn‘t pull this off again but here we are, issue 2, Corporation BIGGER, TOUGHER and more technical than the I Pirate Technology last! We heard your feedback and I think we addressed some of the topics requested. Specialist

It‘s been an exciting time in BizTalk land over the last quar- ter: R2 is almost ready; TechEd announced a new cool host- Figure 2 ing component for WF inside BizTalk and BizTalk.NET was announced by the BizTalk PG as an incubation technology to composite services on the web. Think of it as BizTalk in the sky! (Check out Andy‘s ‗Bling‘ section for more coverage).

Oh and let‘s not forget the ESB Guidance just released by Marty and his wild bunch in Cali.

Also over the last couple of months we gave away the 360! Sorry, we only had one this time around. Thanks to all of you who took the time to fill out the survey! Speaking of surveys, I don‘t know about you but I always hated filling those out and never hearing about the outcomes. So in the spirit of transparency let‘s look at some of the numbers! two technologies are some of the coolest in the product.

Figure 1 We also discovered reviewing the survey, that almost every- one that responded is also doing work with the Windows Workflow Foundation. This is great, we‘ll see if we can add content specifically around WCF.

I also wanted to let you know that we have 400 subscribers worldwide! This is GREAT but we know there are still BizTalk Hotrods toiling alone in the darkness. We need to continue to spread the word. Let‘s show the .NET guys that we‘re a force to be reckoned with! Lastly, I want to thank the folks that reached out to work on BizTalk Hotrod! But we still need more!

BizTalk Server Implementations Letters from the Front Line: In a word ―WOW‖ with just the people responding we had A customer that had contacted me over the past months and over 400 BizTalk instances in production. You can see the asked ―Todd what‘s the appropriate amount of business break out based on version. No surprise here as we all know logic to put into a map or transform?‖ Well using my favorite 2004 and 2006 started the revolution! Now we need to see if consulting response, it depends. BizTalk doesn‘t make it we can help those people dragging along those 2000 and easy to decide. The mapper will let you write full blown pro- 2002 instances to upgrade! grams inside a transform but I wouldn‘t recommend it!

What Parts of BizTalk are Being Used (see figure 2) Remember we‘re heroes because of our extreme good looks, This was surprising. I expected to see a lot of folks using the glowing personalities, fearsome technical prowess and our orchestration engine but to see almost 50% of the people use of BizTalk and its adaptability and flexibility. The more using the rules engine and BAM was very heartening. Those business logic we put into a transform the more chance

2 we‘re going to have to crack open our favorite development Our first functoid looks like a maintenance issue waiting to tool: Visual Studio and make some changes. While this isn‘t happen. When I see this many logical conditions in a single bad at face value we still need to go through the full soft- functoid I start getting concerned that we‘re using the ware life cycle to get the change implemented in produc- wrong tool in the BizTalk suite to address the problem. Sec- tion. Sort of like having to remanufacture your engine to ondly the developers look like they‘re generating inline SQL change the oil! statements that will be loaded into the XML output. Digging into this further this is exactly what the team is doing. They But rather than give you a bunch of high level ―if thens and use the inline SQL by passing it to a .NET component that wherefores‖ let‘s look at a couple real world samples. executes the query and returns the data. The return values are then written to another XML document. Here’s a classic example of a transformation: On the a pretty creative solution but this looks like it would be a good candidate for the Business Rules Engine. Using the BRE would allow us to test, track and debug the process using this transform more effectively. It also allows us to change and version the business logic contained proc- ess much more efficiently. Let‘s look at how this might look in the BRE

Functoid Logic implemented in BRE

SQL lookup replacing inline SQL and .NET assembly!

On the surface looks pretty normal but the first thing I no- Take the result set and tice is that the developers didn‘t take advantage of the assign it to the xml mappers tabbing capability. Using tabs could make this transform a tad less noisy!

The next thing I start to drill into are those scripting functiods.

What you‘re looking at is a rule implemented in the BizTalk rules engine that not only implements the business logic contained in the functoid but also im- plements the rules necessary to perform the appropri- ate database calls to perform the lookup. No more dynamically generated SQL or calls the custom devel- oped .NET assemblies! Groovy! Continued next page

The information contained in this document represents the current view of Microsoft Corporation on the issues dis- cussed as of the date of publication. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any infor- mation presented after the date of publication.

The BizTalk Hotrod is for informational purposes only. The BizTalk Hotrod contains the thoughts, theories and experi- ences to those who work with BizTalk professionally and voluntarily contribute to its publication. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS DOCUMENT.

3 Now that we fixed that lets look at some other functoids:

I remember back when I was 5 years old and I used to watch Well that didn‘t work as expected! As you can see below we Sesame Street. There was this song… ―One of these things did get our Address record with the in- looks like the other… one of these things is kind of the serted when BizTalk found the correct element in the source same…‖ document, but we also got two other bogus records. BizTalk didn‘t make these up, apparently our input document had Hmmmm seems fitting here. These inline functions are per- three instances of the EIEDL21 parent element. So every forming the exact same activity. Is this a job for the BRE? It time BizTalk ran into one it created a new Address record in could be, but doing string manipulations and formatting is the output document. not an optimum job for the BRE. No, I think this is fine in the transformation. However we can implement a common function, say, early in the transform that performs this date formatting then just call the existing function in following scripts. This way we are reducing the amount of code in our transform and eliminating redundancy.

So as a general rule of thumb, maps should be used to for- mat data, do calculations, even basic db lookups (But I‘d be very careful about using db lookups) but complex con- ditional logic or formatting rules would be better imple- Let‘s pull this apart and see what BizTalk was thinking. We mented as part of a rule. In the customer problem I was can do this by looking at the XSLT generated by BizTalk. To referencing changing their approach to transforms would get access to this code just select your transform in the Vis- result in the elimination on one transformation, calling .NET ual Studio Project explorer and right click. Then select vali- code from and orchestration and improving performance. date map. The Output window in Visual Studio will popup Not bad for just focusing on map! and you should see a reference to the ―XSL‖ generated for the map. Pop that open and you should see something like Another customer came to me with a filtering problem. this: Let‘s look at this as an iterative learning experience. We‘ll go through the common attempts at this then we‘ll do an autopsy to see what BizTalk was thinking and why they don‘t Here seems to be our problem!!! work. Then we show you how this gets done.

Our problem child is a fairly complex input schema with seg- ments that repeat. We need to evaluate elements of the repeating segment to determine if we should add a new ad- We are checking to see if the current dress element to our output document. element contains 03 but all we’re doing is setting that to a variable Approach 1 - Just use a value mapping functoid Seems logical, evaluate whether the LPRIO element has the appropriate value and write it into the It’s not until here that we actually perform (For simplification I just set a constant in the value mapping the evaluation to see if we had a match! functoid that say‘s ―WOW‖. Let‘s try this out… If we tear this apart you can see that we have NO ―IF‖ state- ments before BizTalk creates the

record (You don‘t have to be an XSLT master to review this stuff). There is however an ―IF‖ statement before the so that explains why we DID get our ―WOW‖ value written out. This also explains why we got three
records as the xsl: for each statement have no filters or logic to pre- vent new
records!

4 Approach 2 – Let’s add a value Approach 3 - Link the Logical Functoid doing the filtering mapping functoid to the parent! to the parent element in the target schema. After reading that XSL it looks like we need to add a condi- You‘ll be happy to know that this approach does work! In- tional mapping to the parent element as well as the data. cluding the additional link from the logical equal functoid to Let‘s just hookup our logical functoid to a new value mapper the parent element in the target tells the mapper that you hooked to the parent elements of both schemas. also want to compare before adding the parent element.

Let‘s take this one for a spin! Conditional Mapping without the empty elements

If we run this we‘ll get this result! Whooooaa that‘s not good:

We get a nice clean result. We wanted to filter the input document and only write one output if we found the appro- That was not what we were expecting. We got the same re- priate value in the input document. In this case we found sults, we must be at a dead end. We‘ll pull this one apart the value ―02‖ in the LPRIO element. When we found that and see what BizTalk was thinking: record we added a record to the

segment. Let‘s check out the XSL and see what changed: Hmmm seems like the same problem from the first try: No “IF” Statement before the
record

Excellent our IF statement has arrived!!

But there are now two LogicalEg expressions. We must be on the right track?

The mapper generated another logicalEq function in the XSL and is saving that value to another variable. Now all we need is to get the mapper to insert another ―IF‖ statement. You see here that the mapper has created a var that is looking to see if we’re on the appropriate element. It then uses V1 in the first IF statement

5 But now you‘re asking yourself: ―What if I wanted to filter Now we tie these together by adding a logical OR functoid. for more than ONE record type?‖ Not being ones to leave a We then connected our logical EQUAL functoids to it and technical fight, we have the answer for you. Checkout the then to the parent element. Basically tell the mapper that map below: in either case you can added a new

record.

If we run this we get this output:

Remember our input document had 3 source records but we only wanted to map values into the

record if we found ―02‖ or ―04‖. When we found those we wrote out the First we added another logical equal functoid which lets us correct values. Cool huh! look for the other record type; in this case ―03‖. We then added another value mapping functoid that will write If we look at the XSL for this map we find where the code ―COOL‖ into the if we find ―03‖. was extended by the mapper.

Here’s BizTalk looking for our first record type “04” and setting V1 to true or false

Here’s BizTalk looking for our second record type “02” and setting V3 to true or false

Here’s BizTalk performing the logical OR on V1 and V3 to get back a true or false then sets V4

Now BizTalk looks at V4 and only adds an

record if the value is TRUE

6 BizTalk vs. WF/WCF Smack Down

few months ago I had a great posed to trying to hide them like pre- opportunity to help create a vious distributed technologies at- A sample Windows Workflow tempted to do. Andy Morrison Foundation (WF) solution for a SOA Digineer Roundtable event at the North Central Services are autonomous Service Line Leader District . I had previ- ous experience with WF but this was Instead of imagining that your applica- still a challenging experience that gave tion is deployed as a single atomic me the opportunity to learn even more unit, we‘re acknowledging that our about the technology and when it applications are built on constantly should be utilized. The purpose of changing services and that different building the sample was to be able to services age at different rates. Service compatibility is determined compare it, at the SOA Roundtable based on policy event, to a BizTalk solution that had Services share schema and contract, already been created. Both solutions not class Each service should publish its capa- solved the same business problem. bilities and requirements to the world The business problem was centered on We only share structures and behav- in a machine readable way. If a mes- a service-oriented solution to request- iors with our services. Each service sage is sent to the service that doesn‘t ing and aggregating the responses from defines the structures and patterns of meet the policy assertions that the three airline ticket services. interaction that it accepts. With ser- service defines then the message does- vices, we don‘t share the actual n‘t get to interact with the service. From a problem perspective, a client classes that we used underneath the If you haven‘t come across the four sends a request to a SOAP endpoint services. tenants before, check out the A Guide that was actually an aggregation ser- to Developing and Running Connected vice. The aggregation service, origi- nally built in BizTalk Server 2006, com- municates with three different mock Figure 1 airlines‘ ticket systems, exposed as three services, over different trans- Flight Search Flight Search Internal Res Flights RUS Cheap Flights ports, all of which required different Web Site Service System message formats. After receiving re- Flight Search Request sponses from the three different air- GetFlights lines, the service then aggregated the responses and returned a single re- FindFlights sponse message to the client applica- tion. (See Figure 1) FindFlights ReturnResults Before we get to deep into the ―Smack Down‖ let‘s go back to 2004 and briefly review the four fundamental ScoreResults tenants of SOA:

Return Results Boundaries are explicit

This means is that we‘re acknowledg- ing boundaries (geographic, trust boundaries, processes, etc.) as op-

7 Systems with Indigo from MSDN maga- put and low-latency scenarios; how- even HTTP but we still want to zine. ever, you might need to spend use them as part of our services some time tuning your architecture. Now we have some context for our SOA applications and solution and get back to the problem please make sure Transforms are part at hand. The specific business prob- you have a decent One of the cardinal sins of the end point definitions in SOA is letting some- lem that we were trying to solve is a SQL Server back end. one’s external message In the BizTalk solution, we typical one for BizTalk to solve and we Performance can also format get past your also had to map between wanted to discover how you‘d imple- be improved using de- front door if you can different data structures ment a similar solution using WF. The sign approaches like avoid it. but you accomplish this results of that discovery will be cov- forward reading or cach- using the Mapper in Biz- ered in the remainder of this article. ing. And lets not forget Talk. The Mapper is a Visual In this article we‘ll loosely follow the your in the Microsoft uni- Studio Add-In for graphically creating development process: verse we could certainly leverage XSLT. In our case, we created the AJAX on the presentation layer to per- Maps and then configured them to run 1. Define and Publish External Server form progressive rendering of service within the orchestration. In most Service Contract results! cases with BizTalk, you can accomplish 2. Define Composite Service your transformation without resorting 3. Identify external Service contracts All protocol specifics are abstracted to writing XSLT manually or by writing and import definitions Adapters are the components of Biz- code. 4. Define and Build the Business Rules Talk that perform all communication 5. Build and Deploy Service with external actors (systems, applica- One of the cardinal sins in SOA is let- 6. Review real world impacts to the tions, users, etc.) In this solution the ting someone‘s external message for- new service two web services endpoints were com- mat get past your front door if you can municated with using the BizTalk SOAP avoid it. This is also critical in the area It should be noted that you‘re Adapter. There are roughly 30 adapt- of versioning. BizTalk‘s approach to reading a condensed version ers included with BizTalk. Some transformations makes this fairly sim- of this article. The full arti- adapters cover protocols like FTP, ple to implement. (See Figure 2) cle will be available on www.biztalkhotrod.com when Figure 2 this article is published.

In this version of the article, we‘re going to briefly summarize some pros and cons associated with building the solutions with BizTalk and with WF/ WCF and then we‘ll finish up with some observations. I have some fun with the comparing and contrasting but in all seriousness, both technolo- gies have their benefits and can be used in many different scenarios. LET THE SMACK DOWN BEGIN!!!

BizTalk Server Results HTTP, SMTP while others are more Most of the implementation The BizTalk Server solution implemen- application specific like SAP, Siebel is administrative tation for this project was originally and Oracle. BizTalk takes many of the things tradi- built on BizTalk Server 2004. It was tional developers do like building upgraded and improved when BizTalk Services exposed in BizTalk can web services, defining end points, Server 2006 shipped. The original core natively abstract protocol monitoring services, partitioning implementation was completed in 24 level interactions services and makes these admin- hours by a single resource that was with other ser- istrative activities. It‘s just like also in the process of learning BizTalk vices. If you read It’s just like your shop at your shop at home… I have a Server the trades you‘ll home… I have a set of set of nice sockets and I could nice sockets and I could swear that SOAP is tear this engine apart tear this engine apart using Pros going to save the using them OR I could them OR I could buy that Good Performance world but NOT every- buy that cool impact cool impact wrench from BizTalk performs well in high through- thing supports SOAP or wrench from Sears and Sears and have this done have this done in no time!

8 in no time! writing code. This is all true but let‘s BUT it has gotten WAY BETTER) not over play this card as we still need BizTalk also includes facilities for de- code in many situations but its less Does require design  ploying to other environments (QA, code (and cooler)! Don‘t be fooled by the fancy design- Production, etc.) that are related to ers. If you have a poor or non-existent the new Application (logical grouping It’s all built on top of .NET design the designers will only help you of BizTalk artifacts) concept in BizTalk That‘s right. BizTalk is a framework develop a poor solution. You don‘t Server 2006. In the simplest terms, you for integration and business process want to sit down and start your devel- can generate .msi packages for Appli- automation that sits on top of opment before you‘ve thought about cations and use them to install and the .NET Framework. When you need things very carefully. And then after configure your BizTalk solutions in to build custom components for Biz- you think you‘ve thought about them other BizTalk environments. Talk you use .NET. Think of .NET like long enough, think about them some a performance engine parts manufac- more. Then it‘s time to sit down and Deploying the BizTalk solution was ac- turer. BizTalk is the engine that was start developing. complished using Visual Studio 2005. built using all of those performance When the BizTalk developer tools are parts so you don‘t have to… All right, WF/WCF Results installed, several BizTalk Add-Ins are full disclosure, you could do some We combined WF and WCF here to installed for Visual Studio. The BizTalk things in COM by why would you? make a better comparison. WF by it- Add-Ins include facilities for deploying self wouldn‘t even have a chance to the local BizTalk environment. Fastest to complete against BizTalk ;-) We needed to pro- Within BizTalk, you must deploy your All of the BizTalk designers, wizards vide a messaging layer for WF and this solutions before you can test and run and engines make building SOA appli- is often the model custom developers them. (See Figure 3) cations a breeze (OK maybe breeze is take when asking ―Why do I need Biz- to marketing let‘s say gail Talk when I have WF/WCF‖? force wind. SOA systems are Figure 3 never easy but BizTalk can The WF/WCF implementation of our reduce some of the burn ;-). smack down was implemented by 3 Applications that might take resources over two days of develop- you weeks or months to ment time. They had the advantage of build with code might only the BizTalk implementation as a refer- take you a few days with ence. BizTalk. Additionally, if you design your BizTalk applica- Pros tions well, you can quickly We have ultimate control update them when new fea- WF includes a set of Activities that can tures are required in your be added to and built upon to build application. workflows, which are really specific Activities (Activities are like little Cons pieces for code or functionality). If Learning curve for you need a new Activity, you can build disconnected architecture it by sub-classing some WF defined BizTalk is extremely loosely Activity classes. In WF, you can also coupled. Receiving, sending call out to external .NET assemblies. and processing are com- In regards to tracking, which is all Tracking, monitoring and pletely separate actions. Additionally, about gathering technical data about management functionality is built in you usually use it to connect to exter- your process, you can extend the WF BizTalk includes an administration ap- nal applications and systems asynchro- tracking infrastructure to meet your plication and monitoring tools such as nously. There are new patterns to solution‘s specific needs. You can de- the Group Hub page, Health and Activ- learn and concepts to distill. This fine tracking profiles that state exactly ity Tracking, Business Activity Monitor- takes some time to get used to. what you want tracked (and with more ing (BAM) and a Microsoft Operations Hmmmm sounds like any new technol- granularity than you can with BizTalk.) Manager pack for BizTalk. ogy: remember moving from VB You can also build your own tracking to .NET? services to do things such as write to a Solution can be built file instead of SQL Server. Another, with literally no code Learning curve for BizTalk real world example of a custom track- Designers, designers, designers. You This is a big product, with lots of ing services is to track before and af- can draw your business process, trans- tools. It‘s going to take you a while to ter snapshots of objects that are form between schemas, create your figure them all out even with the passed into the WF Rule Engine which business rules and deploy… all without great documentation (That‘s a joke is discussed in this blog post: http://

9 blogs.msdn.com/skaufman/ ual Studio or Svcutil.exe that ships have the same class structure that we archive/2006/08/22/Windows - with the .NET Framework 3.0 and is needed to send to the three ticket ser- W o r k f l o w - T r a c k i n g - a n d - t h e - used as part of the WCF). vices. We had to transform the request TrackingExtract-functionality.aspx into each service‘s specific class for- So what do these utilities do? They mat prior to sending the request to the Excellent Performance generate a set of nice .NET classes respective service. In two of the You just read about having ultimate decorated with persistent attributers cases, we accomplished this using code control, which means you can make that describe your contract in .NET. maps from one class structure to an- things perform to your existing specifi- This is no longer your pure XML con- other, in a WF CodeActivity. In the cations. And if you aren‘t getting the tract. The upside is you can tweak and other case, we used some pit crew performance you need, you can tweak change how things work. But you being ingenuity and called a BizTalk Map us- things at a very low level and even re- a good architect and understanding ing code, in a WF CodeActivity (So we code your application if you need to. that things change say no way. But we cheated, hey we hate iterating You;re also not forced to use a back- still need to add this code to a web through class hierarchies to perform end message store which eliminates service we have defined in Visual Stu- transformations!) We were able to ac- round trips to and from that message dio. We‘ll use this as an interface ve- complish this because the source and store. neer for our service. This service will target types were generated using simply expose the .NET/XML contract WSDLs; the same WSDLs that were cre- Many protocol specifics and call another service or .NET as- ated and used in the BizTalk solution. are abstracted; Web Services, sembly that actually does the work! (See Figure 4) WS-I, MSMQ, etc. and we have Now whenever things change in the a common programming model contract we can run the utilities, gen- When new services are WCF is a .NET Framework component erate the new interface and add the added, how do we route requests? that provides us with a mechanism for lines of code to our common service What if we add a new partner or want communicating across physical proc- (So much for expose contract not to replace a current partner based on esses. It allows us to do this using dif- classes ;-) some business rules. To make this eas- ferent communication protocols and ier, we‘ll assume that all of our part- transports as well as extends the pro- Mapping between the ners are using web services. But how tocols and transports that it supports. services and our schema do we route based on business logic? It unifies web services, MSMQ, distrib- In the WF solution, we were dealing Hmmmmm looks like we‘ll have to uted transactions, and WS-* support in with the generated class structure crack open our WF component and do a single programming model. You use (from either ―Add Web Reference‖ or some extending. WCF to provide services to your organi- WSDL.exe) as well as an object that zation in an elegant and flexible man- was ―passed into‖ the Workflow which In BizTalk we can address this by add- ner. You can use WCF to implement in this case was the ―Request‖ object ing a new send port to our external point to point interfaces between sys- that our WCF host accepted from the partner and applying message filters. tems. client. The ―Request‖ object did not BizTalk‘s messaging layer will take

In R2 BizTalk begins to use the WCF adapter framework. Most the native Figure 4 transports supported by BizTalk will also be supported by WCF. This will be extremely cool since we‘ll have only one model to support!

Cons How do we expose web service as a schema? Now that you‘ve gone through your design process and you have this beau- tiful XML contract you‘d like to pub- lish, that as say an .asmx 1.1 web ser- vice or a WS-I* service, so you break open Visual Studio. Easy you say…. So try… I‘ll wait…. Hummmmummm hmuuummm. Give up yet? (OK I know there are a few of you out there that have tried this and know the trick is to use either XSD.EXE that ships with Vis-

10 care of the rest! (OK some of you are proxies. We generated a proxy and more control over its functionality going that‘s not completely true… well then deleted the client-side code that compared to BizTalk‘s host infrastruc- you‘re right we‘d probably need to it generated. For convenience, the ture. It also takes a lot of code and create a new transformation so we can WCF service itself was hosted within a effort to deliver a quality host solution talk to that external service and an Console application although we could using WF. (See Figure 5) assembly with the new WSDL. But hey have hosted it within IIS 6.0 with only requirements are needed on both sides a little more effort – we simply ran out Implementing asynchronous but addressing them is way easier in of gas and time. The console host we messaging patterns over BizTalk ;-) created was very simple and we did queue based service not attempt to implement features One of the airline ticket services was What happens when such as load distribution, high - exposed through MSMQ. Our intent the service schema changes? availability or scale out. Since you with the WF solution was to utilize the In the ―Mapping between the services have to build your own host you have WCF netMSMQBinding; however, due to and our schema‖ item, above, we Figure 5 briefly covered how we per- formed mapping. When a service schema changes, you are forced to recode your map. Then after you‘ve tested it, you must deploy it (Or we could just steal an- other BizTalk map ;-).

Implementing a service host In WF and WCF, there aren‘t any fancy knobs or dials for the host concept. For that solution we created a WCF service, starting with Svcutil.exe used against the .wsdl from the BizTalk solu- tion, to act as the host for a WF workflow that performed the bulk of the proc- essing for our solution. Svcu- til.exe is in- cluded with .NET 3.0 and it gener- ates proxies for WCF. Interest- ingly, it doesn‘t have a switch for creating server

11 time constraints, we were unable to Tracking, monitoring and manage- BizTalk is big, it has tons of functional- complete this. Instead, we imple- ment functionality is not built in ity and it takes a while to come up to mented a code solution, called from a WF includes tracking infrastructure speed on. It is a platform for integra- CodeActivity within the Workflow that but there is some work you need to do tion and business process automation wrote a message to a MSMQ queue and to be able to use out-of-the-box track- that sits on top of the .NET Frame- waited for a response using the Sys- ing infrastructure. The first thing you work. It excels in situations where you tem.Messaging namespace API. We lev- need to do is create the WF tracking need to connect and integrate various eraged an xsd.exe generated class, database within SQL Server (2000 or systems, using various communication type to create an object which we sent 2005.) The .NET 3.0 SDK includes a methods and protocols. You want to to a queue using a MessageQueue class script that creates the WF tracking use it when its Send method. We then attempted database. The second thing you need  You can‘t lose messages and when to receive a message from a response to do is to configure your WF host to you have business processes that queue using another instance of the use the SqlTrackingService. You can might take minutes or months to MessageQueue class and its Receive do this using a .config file (web or app complete method. We did provide some level of as appropriate) or through code. The  You‘re compositing response from abstraction for the two queues that we option to do things via configuration a determinate or indeterminate used by leveraging Sys- exists throughout WF and is one of its number of external services tem.Configuration.ConfigurationManag best features; unfortunately, there  The transaction is of high business er to abstract the queue paths from aren‘t any tools for viewing or analyz- value being hard coded into our solution. ing the tracking data you collect. Fi-  You need a complete audit trail for Correlation was also implemented in nally, you may want to create a Track- regulatory compliance the code so that we made sure we re- ing Profile, which is basically a filter  Your production support engineers ceived the correct response message in so that you only track details that you need a standard mechanism for the response queue. However, correla- want to be tracked. We did not lever- deploying, maintaining and opera- tion wasn‘t implemented in a robust age the WF tracking infrastructure in tionalizing your solutions manner in this solution; the receipt our demo WF solution.  You need to surface information code simply looped and received mes- about those business processes to sages until the correct message was There aren‘t any specific Administra- operational analysts and business received from the response queue. If tion tools for WF. If the WF solution sponsors. the response message wasn‘t the cor- was a real solution we would have rect message, based on the correlation utilized the standard Windows tools You don‘t want to use BizTalk if you id, we threw the message away and such as the Event Log, Perfmon, WMI, need to connect one simple system to continued looping. etc. to administer and monitor the another simple system. You want to solution. We also likely would have use it when you need to implement Updating business rules built or own administration and moni- workflow between applications and The WF rules are compiled within the toring ―hooks‖ into the solution. systems. You don‘t want to use BizTalk workflow‘s assembly so that if you if you just need a mapping tool. need to update them you will have to Learning curve for redeploy your workflow assembly. Oh a new API and model BizTalk has tons of features and you and then there‘s that pesky issue with OK, you say you‘re a senior developer? should be using most of them on the the WF rules engine that it doesn‘t The WF designer helps you visualize solutions you build with it. understand XML. We need to wrap eve- and develop things but you‘re still go- rything in .NET assemblies! ing to need to write a lot of code. WF is also big but not on the same The svsutil.exe tool generates a bunch scale as BizTalk. It is part of the .NET The requirement to treat most things of code for you. You still have a few Framework. It doesn‘t have all of the as .NET class is one of the primary months of work to do before you‘re bells and whistles of BizTalk and its limitations to the pure coding ap- over the learning curve and are going feature set is rudimentary compared proach. SOA is a message based archi- to be really productive with WF/WCF. to BizTalk. It is used as a foundation tecture not a class based architecture. for current and future products, both We understand why .NET exposes Observations from Microsoft and third party ven- things that are really messages as .NET I‘ve had the pleasure of working with dors. You want to use WF when you classes its more approachable by most BizTalk almost exclusively for the last want absolute control over what developers. But when you really are few years. My largest time away from you‘re building so that you can control loosely coupled and message based it was when I was building a client- the lower level aspects of your Hotrod. why not use the right tools for the side rules engine solution using WF for right job: XML part of last year. I‘ve had ups and You want to use it when you need to downs with both technologies and dynamically generate custom work- have learned a few things along the flows on the fly at runtime. You want way. to use it when you are building a solu-

12 tion where you want users to be able to create their own custom workflows within the solution. You want to use it if BizTalk vs. WCF Sidebar: you‘re building a commercial product for the Microsoft plat- I‘m often asked why organizations should consider using form that uses workflow capabilities. (I don‘t mean a WF BizTalk now that WCF has been released. The truth of the workflow but human or system workflow in general). You matter is that these are not competing technologies but want to use it if you‘re building software factories built on rather complementary technologies that serve different your domain model. You want to use it when you need an purposes but that can and should be leveraged together incredible amount of control and flexibility within your solu- with BizTalk Server 2006 R2‘s release later this year. I tion. If you need workflow capabilities within your applica- also think it is worth noting that the two technologies tion, WF is what you should use. If you want an ―F5‖ debug- both reside within Microsoft‘s Connected Services Divi- ging experience, across your entire solution, you should use sion; you can expect more collaboration between these WF. technologies in the coming years.

You don‘t want to use WF if you don‘t want to write code. WCF is a .NET Framework component that provides us Right now, WF solutions will require a large amount of cus- with a mechanism for communicating across physical tom coding. You don‘t want to use WF if you are looking for processes. It allows us to do this using different communi- robust functionality around tracking and persistence data cation protocols and transports as well as extend the pro- maintenance, rules engine functionality such as versioning tocols and transports that it supports. It unifies web ser- and information worker rules creation, or need to connect vices, MSMQ, distributed transactions, and WS-* support in to various systems, over various protocols. a single programming model. You use WCF to provide ser- vices to your organization in an elegant and flexible man- Remember, WF is a part of the .NET Framework. It‘s there ner. You can use WCF to implement point to point inter- for you, for free, but you‘ll have to build on top of it to faces between systems. You could use WCF as a basis for build your solutions just like you would when using the rest building something like BizTalk but you probably don‘t of the .NET Framework. have the thousands of person years available to do this.

Conclusion BizTalk is a platform for integration and business process WF is like a custom built Hotrod. You might build out your automation that sits on top of the .NET Framework - and car from scratch or you might procure most of the pieces it will sit on top of WCF later this year. BizTalk is used to individually or in sets of pieces. In either case, you build build composite, loosely coupled applications on top of out the car, one step at a time, and in some cases you might the services that WCF exposes. It provides things such as even build some of the parts you use from scratch. You state management, compensation, access to various leg- might even trick it out a bit with some custom art or a slick acy protocols and applications and an administration set of hubs and wheels. After months of hard work, you‘re model for operationalizing the applications. BizTalk is a finally ready to take it for its first spin. During that first few broker that sits between various systems in order to ab- test runs you figure out that you need to tweak some of the stract them from one another; it decouples them and carburetor settings as well as some of the frame. It starts eliminates point to point interfaces. performing better and as you learn more about it, you tweak it some more… and finally its ready for the Smack Down. However, WCF is much better suited as a client level communications host for things like Smart Application, CE BizTalk is like an off the shelf, super slick, high performance Devices and Smart Phones. Imagine requiring even the racing machine. It has the best available engine, hidden BizTalk runtime engine on a workstation before you appli- computer chips everywhere, a navigation system, superb cation and use WS-I? sound system, tinted windows (if you‘re in to that sort of thing) and a bumper to bumper warranty. It will perform Both have value and will be used going forward. well enough and is flexible enough for most racing situa- (See Figure 6) tions. The first time you get behind the wheel you probably don‘t know what all of the buttons and knobs do. After a BizTalk WCF Figure 6 while you figure it out and get a feel for it. But it needs to State Management be tuned a bit for your specific racing scenario. You tweak it Rules Engine a bit and then you‘re ready for the Smack Down. Administration Model A special thanks to Lee Monson, Jim Gaudette and Todd Van Legacy application access Nurden for their work on the SOA Roundtable event as well Enterprise Single Sign-On WS-* Support as their help on this article. Without their hard work and support, this article wouldn‘t have been possible! Service Publishing Service Publishing Implement using Visual Implement by code Studio designers and coding

See Appendix on Next Page

13 Appendix: SOA Roundtable Technology Comparison

Task .Net 2.0 .Net 3.0 BizTalk

Create web service to  New ASPX Project  Generate data contract objects with  Create request and response schemas accept requests  Create Request and Response Schema SvcUtil  Use web service publishing wizard to  generate serializeable class represen-  Add endpoint configuration XML publish schemas as a web tation of schemas  Create WCF host service  Attribute class to ensure document centric (Non RPC) WSDL

Add artifacts for  Add web reference to project, main-  Add WCF endpoint binding to Config  Add schemas from web reference external web taining URL in App.config  Generate client proxy data  Create send port in Admin console. services  Call generated proxy in code  contract  Call endpoint in code

Add artifacts for  Use messaging namespace to send  Add netMsmqBinding endpoint binding  Add MSMQ send port and receive loca- Async communication request  Use LocalService Interface to send tion with MSMQ  Create separate queue listener MsMq message through WF  Promote common data in request and  Correlate responses to request threads  Raise an ExternalData event response schemas to correlate the via obtaining the WorkFlowInstanceID of response to the request  Events the corresponding request based on  custom DB  Custom DB  Enterprise caching library  Enterprise caching library

Create process to call  Write some code  Create work flow  Create an orchestration all services  Create Host for WF Runtime  bind the initial receive port to the  Initialize work flow runtime webservice receive location  create WF instance and start it

Create External ser-  Code request object creation  Code request object creation or  Create the transforms graphically vice requests based  Use XMLSerialization and XSLT  Use XMLSerialization and XSLT on canonical request

Determine the best  Custom component with all logic  Custom object to hold responses  Call a business rules policy using the flight from all  Use Policy activity in the work flow messages already defined in the or- responses chestration

Scale for large  Define and implement a persistence  Either use IIS or create a custom  Use the BizTalk host structure for H/A throughput architecture to correlate the Msmq threading host for the WCF endpoint and scale out responses  Use WF SQL Workflow Persistence  Let IIS scale it for you Service

Track all requests  Add tracing code  Use WF tracking API  Add a BAM activity and their results  Custom store  Custom store  Create graphical tracking profile  reporting  Reporting  use the built in BAM portal

14 Using Parties with EDI in BizTalk Server 2006 R2

i there, my name is Trace and and BizTalk Server 2004/2006 provided I'm a Technical writer for Mi- EDI document processing functionality H crosoft. As a Technical writer, through the use of the Base EDI Trace Young I usually write the thrilling "page Adapter which was developed by a Microsoft Corporation turner" docs for the IT Professional au- BizTalk partner. The Base EDI adapter Senior Technical Writer dience A.K.A. "the manual", or "the provided limited functionality but the bleeping manual". BizTalk partner that developed the Base EDI Adapter made available for I was recently given the chance to ex- purchase a "full" version of their pand my horizons beyond the IT Pro adapter for those customers that re- audience and write an SDK sample for quired additional functionality. the BizTalk Server 2006 R2 "Developer With BizTalk Server 2006 R2, Microsoft audience". My assignment was to de- has come full circle and elected to When an EDI trading partner sends a scribe how to promote certain message develop EDI processing functionality document to BizTalk, the associated context properties for use with EDI in in-house again so this functionality is "Party as Interchange Sender" rules are R2. As my coding skills are a bit rusty I native to BizTalk Server 2006 R2 and applied to the document. In this sce- first had to dig up an old C# reference does not require the use of an nario, since BizTalk is receiving the book. Then I fired up Visual Studio adapter. EDI document processing in document, the BizTalk Server 2005, and after poring over the FixMsg BizTalk Server 2006 R2 is provided EDI receive pipeline scans pipeline sample for a bit, I started through the use of EDI the interchange headers of writing code (woo hoo!). To my sur- send and receive pipe- the inbound document and prise, I discovered that the IT Pro as- lines. Note that the attempts to match the Note that the Base EDI sender and receiver pect of the sample was more challeng- Base EDI adapter is still adapter is still available qualifier and identifier ing than the Developer aspect of the available in BizTalk in BizTalk Server 2006 R2 sample! To effectively write the sam- Server 2006 R2 but is dep- but is deprecated and to the Party as Inter- ple, I first had to understand the con- recated and provided only provided only for back- change Sender proper- cept of Party resolution as it is used for backwards compatibil- wards compatibility. ties of a Party. When with EDI and the notions of "Party as ity. a document is Interchange Sender" and "Party as In- matched to a party, the terchange Receiver". While I've no document is processed according to doubt that the concept is simple to a What is EDI Party Resolution? the rules defined in the Party as Inter- seasoned EDI veteran, the logic eluded EDI Party Resolution is the application change Sender properties for that me at first. I have written this article of a set of rules that govern how to party. These rules govern document with the hope of simplifying the idea validate and process incoming authorization, document validation, for those that aren't already fa- and outgoing EDI messages. transaction set processing, acknowl- miliar with it. These rules are defined by edgement generation, and batch proc- setting EDI properties for a essing.

A Brief History of While I've no doubt that logical entity known as a BizTalk Server and EDI the concept is simple to Party that is created in When an EDI trading partner receives a Early versions of BizTalk a seasoned EDI veteran, the BizTalk Administra- document from BizTalk, the associated Server (2000 and 2002) the logic eluded me at tion console. In the "Party as Interchange Receiver" rules provided native support for first. context of EDI, a Party are applied to the document. In this EDI document processing represents a trading scenario, since BizTalk is sending the and did not require the use partner which can document, the BizTalk Server EDI send of an EDI Adapter. When Biz- send documents to BizTalk pipeline checks for specific context Talk Server 2004 was developed, Server or which can receive docu- properties of the outbound document Microsoft went in a different direction ments from BizTalk Server. and attempts to match these context

15 properties to the Party as Interchange Figure 1 those in party properties. These Receiver properties of a Party. When a properties can be set in a custom document is matched to a party, the component; they are not set by Biz- document is processed according to Talk Server. For more information, the rules defined in the Party as Inter- see below. change Receiver properties for that 3. If step 2 does not succeed, and the party. These rules govern document DestinationPartyName property is validation, batch creation settings, promoted, or the sender qualifier how message headers are generated and identifier and receiver qualifier for EDIFACT and X12 messages, and and identifier properties are pro- Functional ACK reporting options. If no moted, then BizTalk Server sus- EDI-specific context properties are pro- pends the interchange. moted in the outbound document the 4. If step 2 does not succeed, and nei- EDI send pipeline checks if its send ther the DestinationPartyName port is associated with a Party. In this property nor the sender qualifier case, the EDI send pipeline processes and identifier and receiver qualifier the outgoing document according to and identifier properties are pro- the rules defined in the Party as Inter- moted, BizTalk Server resolves the change Receiver properties for the party by matching the send port Party associated with the send port. that subscribed to the message with the send port associated with a These context properties must party. be set in a custom component. See the section below, Using a Custom Pipeline Component If the same send port is to Set EDI Party Context associated with multiple Properties for more informa- parties, BizTalk Server will tion. generate an error.

For both inbound and outbound party resolution, if no match is found, the rules defined in the EDI global proper- 2. If step 1 does not succeed, resolve Figure 2 ties are used when processing the the party by matching just the document. sender qualifier and identifier in the interchange header with those When I first started working on this in the properties of a party. sample, a point of confusion for me 3. If step 2 does not succeed, use the was that Party as Interchange Sender global properties. properties apply in the EDI receive The following flowchart describes the pipeline and Party as Interchange Re- process of party resolution for inbound ceiver properties apply in the EDI send EDI documents: (See Figure 1) pipeline. Outbound (Party as Interchange If my description of EDI party resolu- Receiver) Party Resolution tion so far is as clear as mud then To perform outbound party resolution, hopefully the following sections may BizTalk Server 2006 R2 follows these provide a more in depth explanation. steps (Steps also lifted from the R2 documentation and copied/pasted Inbound (Party as Interchange here for your convenience): Sender) Party Resolution 1. Resolves the party by matching the To perform inbound party resolution, context property DestinationParty- BizTalk Server 2006 R2 follows these Name with the name of a party. steps (Steps lifted from the R2 docu- This property can be set in a cus- mentation and copied/pasted here for tom component; it is not set by your convenience): BizTalk Server. 1. Resolve the party by matching the 2. If step 1 does not succeed, resolves sender qualifier and identifier, and the party by matching the sender the receiver qualifier and identifier, qualifier and identifier, and re- in the interchange header with ceiver qualifier and identifier, in those in the properties of a party. the context of a message with Continued on page 24

16 BizTalk R2 EDI

ho Cares? Where did Covast go? It seems as though most peo- Now that R2 has EDI functionality, W ple suffer from acute ADD what happened to the old stuff? Lee Monson when the letters E, D and I are put RBA Consulting next to each other. Many people are The Base EDI adapter still exists Senior Consultant deep into SOA, fueling their BizTalk in R2 for backward compatibil- engine with some high octane ity; however, it is only avail- WSE3 data feeds from able when upgrading an ex- WCF. Isn‘t EDI dead? isting installation. The op- Didn‘t XML do away tion is not available on a Most people suffer from with all other data ex- acute ADD when the clean install. change formats? OK, die- letters E, D and I are put In general, the EDI functionality con- sel fuel still has to be next to each other. The current version of sists of 4 pipeline components, 3 or- used in the form of flat the Covast Accelerator chestrations, new party settings and a file formats every once in a is 2006, QFE 6. The bunch of schemas. The general proc- while. What in the world is general architecture is essing flow is as follows EDI like today? similar to R2 and many of the Inbound old 2004 issues are gone. I will point  A message received through any EDI is a bit like moonshine. (OK, I‘m out some differences between the adapter stretching it trying to come up with products, but I will leave an in depth  Optionally, the AS/2 decoder com- some HotRod lead in to EDI, but stay comparison to someone who hasn‘t ponent with me). signed an NDA   decrypts the message stream  There is a base recipe, but every  checks the signature against the company‘s implementation is just Accelerators? party certificate a bit different. Now that R2 has EDI built in, where  generates an MDN response  After it‘s cleaned up, it can still have all of the accelerators gone. All message produce some very potent horse- but the HIPAA accelerator, which is  The EDI disassembler component power. included with the R2 base functional-  Converts the EDI flat file to XML  It is the fuel of choice for a huge ity, are still around. It has not been using the party settings looked number of existing systems. decided if they will be included in the up by the qualifier and value of  It isn‘t going away any time soon. R2 licensing cost or if they will con- the sender in the interchange tinue to be a separate purchase. header. BizTalk history  If specified, debatches each Prior to R2, EDI functionality has been General overview transaction in an interchange provided by the Base EDI Adapter, I will leave a discussion of all of the into an individual message which was developed by and licensed bells and whistles of the EDI subsystem from Covast. Covast also offered the to the R2 documentation and tutorials. Outbound Covast EDI Accelerator, purchased at I will cover just the key concepts,  Message received by any adapter additional cost. They worked, sort of, functionality and gaps.  Mapped to a supported EDI schema most of the time. They were imple-  If an orchestration or the Batch- mented as an adapter, which meant Some very good information is con- Marker pipeline component pro- they needed to provide their own im- tained in the R2 EDI product team motes the right properties, a plementation of various transports. blog. http://blogs.msdn.com/ batching orchestration picks up The design looked like some huge fuel biztalkb2b/default.aspx the message, combines it with converter bolted on the side of your As well as this MSDN forum http:// other messages and drops the nice dragster. R2 makes EDI just an- forums.microsoft.com/MSDN/ batch XML to the message box other part of the BizTalk fuel system. ShowForum.aspx?  A send port subscribes to the mes- ForumID=1472&SiteID=1 sage via normal BizTalk subscrip- 17 tions. If it is a batch, the subscription must contain EDI.DestinationPartyName and EDI.ToBeBatched = false.  The EDI Assembler uses various means to resolve the des- tination party and uses those settings to format the out- bound EDI text stream  Optionally, the AS/2 Encoder signs, encrypts and/or com- presses the EDI stream using the party‘s AS/2 settings.  The adapter for the port sends the result on its way.

Schemas Similar to regular flat files, the parsing information for EDI files is contained almost entirely in schemas. R2 ships with over 8000 schemas for Edifact, X12 (including HIPAA) and EANCom. The complete list can be found at http://blogs.msdn.com/biztalkb2b/archive/2006/10/14/edi- support-in-biztalk-server-2006-r2.aspx. To actually use any of Wait a minute; we started with flat files with separate docu- the supplied schemas, they need to be added to a BizTalk mentation, went to self describing XML and back to a format project, compiled into an assembly and deployed to the with separate documentation. It is always fun to go full circle. server. Extensibility Validation As all of the EDI parsing rules are defined in the schema, all The EDI schema extension does support all of the generate of the various little tweaks that some companies use can be instance and test instance functionality in both the mapper handled without much work. For example, a schema can be and schema editor. As the schemas only represent a transac- modified to have the code set enumerations taken out and tion, they can not validate an entire EDI file. that specific schema can be designated to be used for a par- ticular party.

To validate an entire file, you have to use the The schemas that define the envelope schemas, called ser- [X12/Edifact]_ BatchSchema.xsd as the schema for vice schemas, can be extended to allow for non-standard validation and have all schemas for every transaction values for the various enumerations. The details can be type in the interchange in the same project. f o u n d a t http://blogs.msdn.com/biztalkb2b/ archive/2007/03/02/customizing-envelope-fields.aspx The following screen shot shows some of the EDI specific schema extensions. All schemas that are going to be used need to be compiled into some assortment of DLLs and deployed to the server. It is a nicely flexible design.

Other EDI types The processing of envelope information (i.e. X12 ISA and GS segments) is hard coded. There is no way to change the ex- isting functionality to support any other EDI type like Tradacom or Odette. The engine has extensibility built in, but there was not enough time for the test coverage to make all of it public. It has to wait until the next version.

Covast 06 Accelerator comparison The Covast EDI accelerator retains its schema repository concept. Modifying a segment definition in the repository affects all schemas that use that segment. Modifying the repository does not affect processing until all affected sche- The schema designer gets an EDI tab that includes a nice de- mas are regenerated, compiled into assemblies and de- scription of each element. (See Figure in next column) ployed to the BizTalk server. Covast does give the option of using element names that are either very short or long and Unfortunately, that description is not available at map time, descriptive. which means developers get to either have a separate window to see the descriptions or just memorize the 3-5 letter code. All of the EDI syntax rules that were in the Engine Input file This was done to decrease the message size and, therefore, (EIF) in ‘04 are now included in the XSD files. Instead of the increase performance. The product team knows this is an is- human readable rules contained in the R2 schemas, the EIF sue for mapping and is considering how to resolve the prob- information is contained in a single Base64 encoded binary lem for the next release. element in the xsd.

18 Party Configuration from another BizTalk environment, getting the binding file Access to party configuration is right where it was in 2006. for a single party is fairly straight forward. To get to the new R2 settings, you have to have created a party, then right click on that party and select either EDI or The binding file for a single party appears as below. Notice AS/2 properties. I‘ll leave the details to the R2 help file. the PartyEDIProperties tag under the EDIData element. You can tell they are screens designed by developers for de- velopers.

All of the information under the EdiData element contains the new R2 EDI properties. That entire XML fragment can be Management obtained by two different objects. One option is to refer- A majority of the party management features have not ence the PartnerAgreementManager and get the EDIParty changed since 2004. For example, a party can not be associ- ated with an application and they can not be exported indi- EdiParty aParty = new EdiParty ( "Party Name", MgmtDbCon- vidually. The entire list is still associated with the ―Export Global Party Information‖ option when exporting a binding nectionString ) ; file or the ―Bindings – Global Parties‖ option for an MSI. String Settings = aParty.Xml

Given the growth of centralized partner management like A second option is to reference GSX and the number of companies with back end systems Microsoft.BizTalk.Deployment and use that store all of the required settings, it may be more im- portant to be able to manage BizTalk‘s party information programmatically rather than through the admin console UI. EdiParties Parties = new EdiParties ( ) ; IEdiParty aParty = Parties.GetParty ( "Party Name" ) ;

None of the following object mod- String Settings = aParty.Xml els are officially supported. They can change at any time and are to That simple code exports the fragment of the binding be used at your own risk. information needed

Read party settings To retrieve the full object model for a party, reference Mi- crosoft.BizTalk.Edi.PartnerAgreementManager. This gives read-only access to the settings, but it also lets you incre- ment and check for duplicate values for all of the control numbers.

Partner EDIPartner = new Partner ( "Party Name" ) ;

Get partial binding file To actually update party information, the only current op- tion is to import a binding file. If the settings need to come

19 Covast 06 Accelerator comparison Marker pipeline component. The Covast Accelerator uses the BizTalk Party model just a. To route a message to the batching orchestration like R2. A completely separate UI is used for management without using the BatchMarker component, the fol- which, as of QFE 4, has the option of selecting multiple par- lowing properties need to be set and promoted ties and exporting a binding file. They store their extra set- i. EDI.ToBeBatched = True tings in the CustomData property of the ExplorerOM.Party ii. EDI.DestinationPartyID = %PartyID% object. iii. EDI.EncodingType = X12 or EDIFACT 2. The activation range does not behave like a port service Outbound Batching window. If any message gets routed to the batching or- Outbound batching consists of one section on the party con- chestration outside of the activation window, it is routed figuration, 3 orchestrations and 1 pipeline component. to the BatchElementSuspend orchestration as an error. 1. BatchMarker Pipeline Component – Evaluates all batch 3. The control buttons actually just insert a record in a ta- filter settings and promotes the proper properties to ble and monitor a BAM activity to determine the current route a message to the batching orchestration status. In a DEV environment, it may be helpful to de- 2. BatchRoutingService – If a message matches the filter of crease the polling interval of the only receive location in more than one party, it gets routed to this orchestration, the BizTalk EDI Application, BatchControlMessageRecv- which drops copies of the message for each matching Loc. party 3. Batching Service – This orchestration actually creates the Management batch XML message according to the individual party Each start message actually creates an instance of the batching settings. batchingService orchestration. If that instance is not run- 4. Batch element suspend service – If the batchingService ning, all messages destined to batching will suspend as rout- orchestration determines that a message has arrived out- ing failures. side of the activation range for batching or if it contains invalid EDI, the message is routed to this orchestration Notice the text at the bottom of the setup page. where it is suspended. This can be replaced as its only For a send port to subscribe to a batched message, you subscription is must set the following filter expression Edi.PropertySchema.BatchElementValidationFailure=True. EDI.DestinationPartyName == Party Name And

Setup EDI.ToBeBatched == False The batch settings contain 1. A filter expression to determine what messages to be Those two properties are the only context properties that batched are promoted when the batching orchestration drops the 2. A release schedule by time, number of messages or size batched message to the MsgBox. All context from the indi- of the batch vidual transactions are lost and no other properties are pro- 3. A start and end condition moted. 4. Control to actually start, override or end batching If you have 100 parties all being batched and sent to the same place, but you have other EDI batches that go some- place else. 1. You have to manually start 100 batching orchestrations. The SDK will contain a utility to start or stop all bathing orchestrations, but there is nothing in the main UI. 2. You have to create a 100 line filter expression in the send port to subscribe to all of the DestinationPartyName values.

Batch Status This is one of the best features of the batching design. As mentioned below, R2 adds an EDI Status reports section to the group hub page. The Batch Status query returns the status of all batches in progress or completed, how many messages were batch, when it was or will be sent and how many messages were rejected.

Covast 06 Accelerator comparison Covast has batching orchestrations as well. A pre batcher orchestration sets a few properties based on the party setup Some of these settings are not entirely intuitive: and a simple convoy orchestration creates the batch. 1. The filter expression DOES NOT actually create a sub- 1. There are no control messages, so stopping a batching scription. These settings are used SOLELY by the Batch- orchestration for a particular party is hard.

20 2. The batch setting is a single, global timeout. No message ErrorReport.Description property similar to the following count, size or party specific options. Error details: An output message of the component 3. A global ―Lingering‖ setting determines how long the or- "Unknown" in receive pipeline chestration will wait for a message before terminating. A "Microsoft.BizTalk.Edi.DefaultPipelines.EdiReceive,… short timeout value will result in Zombie problems. is suspended due to the following error: Unknown. 4. There is no batch status reporting of any kind. The real error message is in the EDI.ErrorDescription context Monitoring property When the EDI option of BizTalk is installed, it adds an EDI Error encountered during parsing. The X12 transaction set Status Reports section to the group hub page. As with all with id '0001' contained in functional group with id '1', in other hub page links, they open a query window. I‘ll leave a interchange with id '000000001', with sender id 'THEM', re- detailed description to the R2 help file. ceiver id 'US' is being suspended with following errors:  Interchange Aggregation Report – A count of inter- Error: 1 (Miscellaneous error) changes per sender/receiver pair, per EDI type (C12, 5: X12_00401_850\TAX\TAX02\ The 'TAX02' element Edifact, etc.) has an invalid value according to its data type.  Transaction Set Aggregation Report – Count of transac- Error: 2 (Field level error) tions per Transaction Type SegmentID: TAX  Batch Status Report – detail of each in process or com- Position in TS: 6 pleted batch Data Element ID: TAX02  EDI Interchange and Correlated ACK Status Report – This Position in Segment: 2 query allows drill down into the transaction details of Data Value: Qual each interchange as well as requirement, receipt and 7: Invalid code value content of functional and technical ACKs.  AS2 Message and Correlated MDN Status – The descriptive error can be logged to the application event This query allows drill down into log for monitoring purposes by setting the following option in the interchanges that the EDI global properties, available by right clicking on the

were included in the AS2 parties node in the administration console. transmission and allows you to view the wire for- None of this data is Log EDI Errors and Warnings generated by the EDI engine to mat of the AS2 transmis- captured unless the Windows Event Log. “Activate EDI Reporting” sion. is set to true on the party resolved for the Summary Validation and Errors message. The R2 release is a huge leap when compared to the func- Validation occurs in the EDI Disas- tionality of the old Base EDI Adapter. The in the box func- sembler and Assembler compo- tionality will be more than enough to cover the EDI needs of nents as well as the batching orchestration. The level of a majority of Microsoft customers. validation is controlled by three different properties. Pros 1. Party properties – Document Validation – EDI Type  Very seamless integration into the BizTalk platform a. Validates EDI specific data types and code sets  Excellent coverage and flexibility for X12, HIPPA, EdiFact (Enumerations) and EANCOM standards 2. Party Properties–Document Validation–Extended Validation  All of the performance and scalability of BizTalk b. Performs standard XSD validation of the resulting XML Cons 3. Schema AppInfo tag - X12ConditionDesignator_Check or  Extensibility – While changing the schemas to alter the EdifactDependencyRule_Check transaction parsing is very flexible, there is no way to c. This will evaluate the EDI rules in the schema only if modify the envelope processing to support other EDI the EDI type validation is selected AND the AppInfo tag schema types, like ODETTE or Tradacom. Some work was in the schema is set to Yes done to allow for that extensibility, but it was not able 4. Nothing – If all of the above options are turned off, the to be completed in the R2 time frame. Other standards EDI structure will still be validated due to the parsing and scenarios still require the Covast 06 Accelerator. process, but all field level validation will be ignored.  Partner Management – A better UI and environment mi- gration story would have been nice, but industry trends toward centralized party management like GSX may de- Any party setting changes are not reflected until crease that importance either a host restart or a 30 minute hard coded cache  Schemas – The very short element names make mapping timeout. The EDI pipeline does not pay attention to difficult. As the parser doesn‘t care about the actual ele- the group cache refresh setting. ment names, a 2nd set of schemas with descriptive ele- ment names would have been a nice option.  Perhaps there is a regular expression Guru who could If an error occurs during validation, as of Beta2, the message take the existing schemas and generate new ones with is suspended with a very descriptive error message in the the EDI description in the element name.

21 The Maligned Distinguished Field or why Distinguished Fields are cool Tom Canter Neudesic LLC, Author he Distinguished Field is often seen as the weaker of the two types of Fields when handling Fields in Biz- JoAnn D. Een T Talk. Editor

After all, the Distinguished Field can‘t be used as a filter on a message, and it‘s slower than its big brother the Promoted Field. Now, how does Promoted and Distinguished Fields get into Well, today I‘m here to dispel the myth of the wimpy Distin- the Message Context? This occurs automatically in the Re- guished Field and place in the pantheon of power that ceive Pipeline by certain pre-built pipeline components? equals, and in some ways exceeds the Promoted Field. Out of the box, the BizTalk XML Disassembler, BizTalk Flat MYTH: Getting the value of a Distinguished Field requires File Disassembler and the BizTalk Framework Disassembler loading the entire message into memory. Promote Fields to the message context. All other production level Pipelines promote fields, most also support Distin- The first myth that we need to dispel is that the Promoted guished Fields. Field is a quicker field to access than the Distinguished Field. Distinguished Fields are written to the Message Context if one of these Receive Pipeline Components is used in the This is due to the statement in the BizTalk Documentation, Pipeline. Interestingly enough, this explains why the and I quote: Passthrough Pipeline doesn‘t promote Fields from the mes- sage, there are no components in the Passthrough Pipeline, The BizTalk Server Message it does nothing to the message content and therefore noth- … Lots of stuff cut out … ing gets promoted, especially BTS.MessageType. ―One of the benefits of promoted Fields is that the value of the element that is promoted is available in the context of As far as performance, Distinguished Fields beat out Pro- the message. This means that retrieving that value is inex- moted Fields 9 days each week. This is because both Pro- pensive, as it does not require loading the message into moted and Distinguished require the same overhead of writ- memory to execute an XPath statement on the message.‖ ing the message value to the context Field bag in the Mes- sage Box, but Promoted Fields have the additional overhead What is implied here is that for the Promoted Field reading of both being written to the Message Box context database its value doesn‘t require an XPath read into the message and AND the Subscription database. Promoted Fields have an conversley, that the Distinguished Field does require loading impact every time a message is written to the Message Box the message and has a performance cost because it‘s evalu- because each Promoted Field that exists musts be evaluated ated when queried. in a massive union (very efficiently written union mind you!) that builds the list of matching activation subscrip- Nothing could be further from the truth! In fact, both the tions. So in short, the more Promoted Fields that you have Promoted and Distinguished Fields are evaluated at the the costlier the subscription process. same time, and both are placed in the message context at the same time. So, let‘s talk about how fields get into the message context. Use Promoted somewhat sparingly, don’t avoid them, but do not use them if you do not need to. Use Pro- About BizTalk Message Context Fields moted Fields as they were designed, to facilitate mes- … Lots of stuff cut out... sage routing, but not to make it easy to access a mes- ―Since Distinguished fields do not require a separate prop- sage value. Instead primarily use Distinguished Fields. erty schema, the evaluation of Distinguished fields by the Orchestration engine consumes less overhead than the evaluation of Property fields by the Orchestration engine. MYTH: Its always safe to use a Promoted or Distinguished The evaluation of Property fields requires an XPath query, Field in an Orchestration. the evaluation of Distinguished fields does not require an XPath query as the pipeline disassembler populates the Dis- Using Operators in Expressions tinguished fields in the context and the orchestration engine exists test for the existence BTS.RetryCount gets the cached values. However, if the orchestration engine of a message context exists Message_In does not find the property in the context, it will then evalu- property ate the XPath query to find the value. Distinguished fields do not have a size limitation.

22 Let us talk about how to handle message content that is missing when it is a Promoted Field and a Distinguished If there is any chance that Field. What we are talking about specifically is the field that accessing the Distinguished Field may cause an was Promoted or Distinguished did not exist in the inbound exception, then place the check in a Scope Shape message. The XLANG/s xpath statement that was used to that has a catch shape to handle the NullRefer- query the message for the content during pipeline process- enceException. ing returned a null object. MYTH: Distinguished Fields are only accessible in Orches- The first thing to understand is when a Promoted and Distin- trations guished Field comes into existence. They are essentially the same, and this occurs when a Pipeline component parses a WRONG Documentation: Field Schemas message and either Promotes or Writes the value to the con- RIGHT Documentation: Distinguished Fields in Disassembler text. The simple answer is, when the value does not exist, Pipeline Components, Processing the Message, Promote the Field is not created. A query to the context for the Field Properties (Node Property of All Schemas) returns a null object. Another major fallacy about Distinguished Fields is that they So, if you attempt to access a Promoted or Distinguished are only accessible in the Orchestration. This is also untrue, Field that didn‘t exist in the inbound message, you can the BizTalk Server Documentation clearly has an example of cause an unhandled exception to be thrown. Specifically in how to use Distinguished Fields in any component from the both cases a NullReferenceException. RIGHT Documentation above.

Promoted Fields, have a special XLang/s test exists (see my All Distinguished Fields outside of an Orchestration use a previous blog post in this) that you can use to determine if fixed schema: they exist before attempting to use them. In this case, Pro- http://schemas.microsoft.com/BizTalk/2003/btsDistinguish moted Fields can always be tested for existence before use edFields and can safely be avoided when they don‘t exist. The Field to use is the XPath of the node that is Distin- Unfortunately, Distinguished Fields don‘t have such a special guished such as: test, and can cause an unpreventable unhandled exception. /*[local-name()='PO' and namespace- Specifically if you use a Field that the underlying type is a uri()='http://SendHtmlMessage.PO']/*[local-name()='Price' native non-nullable type. For instance, suppose the value and namespace-uri()=''] that you have distinguished is a integer. Integers cannot be null (and yes, I am aware of the Nullable generics, but Thus to access this you would use the Read Method: we are talking about what BizTalk XLANG/s has, not what C# MyObject = MyMessageContext.Read("/*[local-name()='PO' has) and if the underlying value didn‘t exist and you attempt and namespace-uri()='http://SendHtmlMessage.PO']/*[local- to use the value, or even test to see if the value exists will name()='Price' and namespace - uri()='']", " cause an unhandled NullReferenceException when BizTalk‘s http://schemas.microsoft.com/BizTalk/2003/btsDistinguish XLang engine attempts to convert a null value into an inte- edFields‖); ger by calling the System.Number.Parse(string) method with a null value. If the Field exists, then MyObject will contain an object that can be cast to the appropriate type. Here comes in the kicker and why a Distinguished field can appear to be fine at design time, but bite you at run-time. MYTH: Distinguished Fields in Orchestration Expression At design-time the expression editor generates a pseudo shapes are actually code. class-like dotted object for you to use in your expression. At run-time there is simple type-casting that occurs by the run- time engine that inspects the XML datatype of the node in Once the proper Pipeline Component has processed the Schema, retrieves the value as an object… then at- the message, use the Distinguished Field as you tempts to call the appropriate ConvertTo method on the would any Field without the Xpath lookup over- Object. When casting a Null to an Int32 or any other intrinsic head. datatype, a NullReferenceException is thrown and the Or- chestration fails. You have to hand it to the people who did the coding for XLANG/s. It looks like C#, it feels like C# and 99% of the The primary difference (excluding Routing) between Pro- time it pretty much generates standard C#. moted and Distinguished Fields is the developer design-time experience. Distinguished Fields are easy to use because In many ways, this is not your father‘s C#, it is really they emulate .Net Class dotted notation. XLANG/s and it has it‘s own syntax and special components. Distinguished Fields are a prime example.

23 Think back on all the times you used a Distinguished Field. It 4. Creating Orchestrations Using Orchestration Designer > feels like it‘s a C# Object! It uses dotted notation Creating Orchestrations > Using Expressions in Orches- (Node.Node.Node.Attribute). You assign values to it, you use trations > Using Operators in Expressions it‘s value in an expression and it comes out as the correct type. When the node is Boolean, then it behaves like a Boo- 5. Creating Schemas Using BizTalk Editor > About Schemas lean. Nothing could be further from the actual behavior as > Different Types of BizTalk Schemas > Field Schemas Marty learned recently. Just because it looks like a duck, doesn‘t mean that it‘s a duck. It really is a trick, that the 6. Creating Schemas Using BizTalk Editor > About Schemas Expression Editor parses the XSD on the fly and generates a > Ways to Use Message Content to Control Message Proc- class like editor experience, but no actual code ever gets essing > About BizTalk Message Context Fields generated. 7. Schema Property Reference > Node Properties - Alpha- Further Reading betical Listings > Node Properties of All Schemas > Pro- 1. Planning and Architecture > BizTalk Server Architecture mote Properties (Node Property of All Schemas) > Runtime Architecture > The BizTalk Server Message 8. Creating Schemas Using BizTalk Editor > Creating Sche- 2. Planning and Architecture > BizTalk Server Architecture mas > Promoting Properties > How to Copy Data to the > Runtime Architecture > Processing the Message Message Context as Distinguished Fields

3. Developing BizTalk Server Applications > Creating Pipe- lines Using Pipeline Designer > About Pipelines, Stages, Property Field values are stored in a database, and there- and Components > Distinguished Fields in Disassembler fore have more overhead than Distinguished Fields. Distin- guished Fields do not require any additional storage; they Pipeline Components are essentially an alias for an XPath, thereby allowing or- chestrations to more easily access the relevant values di- rectly from the message.

Using Parties with EDI Continued from page 16

5. If no party is found in steps 1, 2, or 3, the send pipeline processing options for not only multiple trading partners but uses the global party properties (its default pipeline also when using employing multiple home organization iden- properties) to generate the outgoing message. tifiers. Since party resolution is now performed using the 6. The following flowchart describes the process of party sender and receiver qualifier/identifier, the problems inher- resolution for outbound EDI documents: (See Figure 2) ent to resolving parties using only the party alias in a multi- ple home organization environment are no longer an issue." Why Should I Care About EDI Party Resolution? Using a Custom Pipeline Component to Set EDI Party Context The short answer is... you pretty much have to if you are Properties going to use EDI with BizTalk R2 because the entire BizTalk If you've made it this far then I'll hope there is a chance you R2 EDI solution builds upon this concept! The long answer may want to download the SDK sample I wrote which lead to that sounds like someone in Marketing (or someone in User this article. If so, the sample should be available for Education) wrote is… download from the BizTalk Server Code Samples page on or after June 29th, 2007. Look for the sample named "Using a "The new EDI party resolution functionality that is available Custom Pipeline Component for EDI Party Resolution". with R2 provides great flexibility for specifying message

24 Positioning

n NASCAR top teams understand Business: represents both internal and the majority of the race is positing external market goals, relationships, I oneself to be competitive at the etc. David Williams end. One must both build on contin- Microsoft Corporation ued effort in an attempt to keep pace IT: encompasses infrastructure, tech- Platform Strategy and be ready to seize opportunity, at nology capabilities, key skillets, sup- Advisor the same time, avoid any serious set- port costs, agility, reuse, etc. back. The balancing is to risk short term gain over long term viability. Cultural: reflects the impact inter- nally in terms of moral, growth oppor- Key Concept: Positioning tunity, sustainability, etc. Being number 1…… is the outcome – it pressures may drive the need for a was the planning & execution that got Political: embodies the effects on point solution but result in low adher- you there. Positioning is a key concept stakeholders influence, confidence, ence to standards, usages of technolo- to begin this journey. It is more than and credibility. gies not aligned with long term road- just up front planning; it is the first act maps, custom solutions creating on the journey and your constant com- In use, these measurements are moni- unique SME support, etc. Prior to fund- pass along the way. To achieve better tored and governed through the entire ing the investment, a positioning and more sustainable outcomes, one lifecycle of planning, implementation, scorecard circulates across the stake- must begin with quantifying impacts of and lifespan of the investment. For holders and we begin to see a more investments. each major initiative a score carding complete picture. Proliferation of dis- process can be used to quantify the parate technologies, increase support Most corporations tend to invest across planned outcome of a given invest- and licensing considerations, low reuse 1 year fiscal cycles. This is usually re- ment. The score carding process potential, risk of solution viability or alized in a portfolio of IT & Business should capture the perspective performance, etc. All of this begins to program/projects each with their from all the major stake- accumulate in the form of ―technical own defined goals. The holders in the organization. debt.‖ The short term business gratifi- end result of this year The goal of this activity is to cation ultimately is shifting the IT or- of activity will be an give management a higher ganizations debt level to worsening Prior to funding the in- levels that can become liability. At the inevitable change in vestment, a positioning degree of transparency the positioning of the scorecard circulates into how the approach to same time stakeholders can ―please corporation and its abil- across the stakeholders the goal will affect the the business‖ but in doing so create ity to respond to the next and we begin to see a corporation. cultural frustrations for their staff and year‘s objectives. For the more complete picture. will ultimately lose political influence most part, this change will Let‘s focus on some as their situation becomes harder to not be as simple as black & real world examples of posi- sustain business and staff satisfaction. white or good & evil. It will most tioning. Say there are strong business I‘ve seen this pattern repeated in or- likely be a mixture and the real need is pressures to achieve some key system ganizations of every size. Politics can to understand the nuances of how the integrations to improve your customer strong arm the budget. IT departments investments have affected the corpo- experience. Failure to achieve this bending over backwards to please the ration. To bring this into more con- would certainly be a negative impact business with no representation of crete terms I‘ll pick four high level on your business measures, and like- longer term outcomes. I‘ve watched measurements to convey the concept. wise, success would be a positive ad- success stories of IT groups delivering I will define these as: Business, IT, Cul- vancement. This pressure certainly ―on time and on budget‖ for three tural, and Political measures that can places forces on the approach which years straight, but fail to sustain. begin to help quantify the implications could produce outcomes that are not Their environments and solutions have of positioning. immediately obvious. Time to market Continued on page 34

25 Suddenly I realized the power I held. The power to rule. To make the world grovel at my feet.

Applying Throttles within BizTalk A woman born of electricity…a man ith all the speed the BizTalk be looking for a way to limit additional driven by passion! processing model can bring messages flowing into or out of the W to the track for your business system. Scott Colestock and technical needs…it‘s a little ironic Trace Ventures, LLC that a frequent issue is the desire to The second reason you might be look- apply a throttle or governor to a par- ing to throttle BizTalk is to limit the Consultant ticular aspect of how BizTalk is run- physical resources a given host is con- ning. suming in order to allow for a resource balance with other hosts that are in- There are three primary reasons you stanced on the same server or other might be looking to throttle BizTalk in non-BizTalk processes on the same a particular way. The first is that Biz- server. efficiently (so don‘t assume they are Talk is often intended to be the ―shock always about slowing the system absorber‖ within your environment – it Finally, you might be looking to throt- down!) Throttling controls are avail- deals with floods of events from up- tle BizTalk because a particular sys- able in the advanced properties of a stream systems, and temporary un- tem you are interacting with has hard host (within the BizTalk Admin MMC) – availability in downstream systems. limits regarding the number of simul- see Figure 1. The durable store-and-forward mecha- taneous connections it can support. nism provided by the MessageBox/pub- This is a variation on the case above The ―Maximum number of messaging sub model allows BizTalk to play pre- where you wanted to limit messages engine threads per CPU‖ setting in this cisely that role. However, life can‘t flowing out of the system, but with dialog refers to the number of threads remain out of balance forever – over tighter restrictions. used by the End Point Manager (see the long haul, messages can‘t accumu- Figure 2) to service inbound work. late in arbitrarily large quantities So, how do we get This does not include threads created within BizTalk (whether due to inbound this done in BizTalk? by adapters or thread pool threads floods or an outbound inability to de- BizTalk 2006 brought per-host throt- used along the way. Setting this value liver.) Therefore, you will sometimes tling controls into your toolbox. The to a low value would be a coarse way dials available here of throttling inbound traffic – it is typi- Figure 1 are primarily about cally set to fully optimize server re- a) balancing the sources during a normal load. rate at which mes- sages are received ―Message Publishing Throttling‖ es- vs. the rate at sentially lets you say: ―If the rate of which they can be messages flowing into this host ex- processed, and b) ceeds X% of the rate of messages flow- governing the re- ing out of this host, then start impos- sources that a given ing a gradually increasing delay before BizTalk host will each new message is allowed to flow consume. They are into the host.‖ This is also referred to a good fit for ad- as ―inbound throttling.‖ Remember dressing the first that messages flow into the host two cases above – (―publish‖) through receive locations however they are and orchestrations (via logical send also used in a vari- ports) – see Figure 2. Other conditions ety of tuning sce- that can (configurably) trigger inbound narios to help the throttling include the amount of mem- system run more ory, threads, or database connections

26 in use or the host-published message establish the throttling Figure 4 (count of messages with live refer- triggers for resource- ences). Other actions taken during related conditions such as throttled conditions (beyond a progres- the number of database sively increasing delay) include limiting connections, number of the number of End Point Manager threads, number of in- threads available and reducing memory process messages consumption (through dehydration, (delivered but not-yet- etc.) handled by adapters and Figure 2

―Message Processing Throttling‖ lets orchestration engines), you say: ―If the rate of messages flow- the host-published mes- ing out of this host exceeds X% of the sage count, and mega- downstream consumption rate of those bytes (or percent) mem- messages, then start imposing and ory consumed. gradually increasing delay before each new message is processed by the Note: ―Internal Message host.‖ This is also referred to as queue size‖ should more ―outbound throttling.‖ Remember properly be placed within that messages flow out of the host via the ―Message Processing orchestration subscriptions in other Throttling‖ settings, as it does not tually begin to return HTTP 500 hosts (logical receive ports) or physical describe a throttling threshold but (Server Too Busy) or a similar error. send ports. Other conditions that can rather a means of throttling. This is a If all of these settings don‘t give you trigger outbound throttling include the logical (memory-based) queue for precisely the control you‘re after, con- amount of memory, threads, or data- messages that exists between the da- sider whether you‘re perhaps spending base connections in use – as well as tabase and the Message Agent. Larger too much time with BizTalk. No, wait! when the ―in-process message count‖ values can assist with low-latency sce- Search the documentation for is too high. Other actions taken during narios; smaller values can assist with ―Registry settings that affect default throttled conditions (beyond the in- large message scenarios (to reduce throttling behavior‖. creasing delay) including limiting the memory consumption) or to simply number of Message Agent threads throttle the system. Engine Monitors… available and reducing memory con- So, you‘ve tweaked to your heart‘s sumption – as well as limiting the num- Note that eventually inbound throt- content…you‘re watching the system ber of messages held by the in-memory tling (―Message Publishing Throttling‖) in production or in a performance lab… queue (see Figure 3.) will affect receive adapters, and may now what? How do you know whether c a u s e m e s - throttling is actually coming into play? Figure 3 sages to back- Well, BizTalk 2006 also introduced a log at the large number of new Performance source. This Counters, including many that report behavior is on the state of throttling (and how you v e r y m u c h got into a throttled condition.) See All of the configuration for the ―X%‖ transport dependent. An MSMQ or the ―BizTalk:Message Agent‖ perform- noted above (termed ―rate overdrive MQSeries receive location will simply ance counter. Just about every factor‖), as well as the max delay im- show inbound queues building (i.e. threshold we‘ve discussed has a per- posed, are within the ―Settings‖ of messages are not being aggressively formance counter value both for the ―Message Publishing Throttling‖ and pulled into the Mes- ―Message Processing Throttling‖ (see sageBox.) A file Figure 1.) However, the resource re- receive location lated thresholds for when that throt- will show files accu- tling is applied are actually within the mulating in the pick ―Throttling Thresholds Settings‖ (see - u p d i r e c t o r y . Figure 4.) However, HTTP or SOAP based receive Figure 5 Within this settings dialog, you can adapters will even- Continued on page 31

27 BizTalk Requirements. . . Beyond the Norm

Figure 1 air Isaac® Corporation has been Glen Leifheit using BizTalk for more then four Standard Ports Fair Isaac Corporation F years, including versions 2000, Description Port 2004 and 2006. It is used for various RPC 135 Internet Architect functions across multiple business RPC Internet Range 5000-5099 lines, including scoring, insurance, and collection and recovery. They support SQL 1433 a multitude of applications that are Figure 2 built into BizTalk including billing en- Ports to Domain Controller gines, scoring algorithms, and fraud their default DC‘s to be local was criti- Description Port detection. In a future Issue, I hope to cal, and omission of this important explore the use of Fair Isaac‘s Blaze LDAP 389 step caused items to suddenly fail. AdvisorTM rules management system LDAP SSL 636 Occasionally, a DC in a more remote with Microsoft BizTalk Server. RPC 135 location would respond, resulting in Global Catalog Server 3268, 3269 failure. Problems also occurred when When we implemented BizTalk within IPSec 500 ports between trusted domains and Fair Isaac‘s complex technology envi- their DC‘s were not open. These can RPC Internet 5000-5099 ronment, we researched documenta- be solved by implementing the firewall tion from Microsoft and blogs to guide NAT-T 4500 changes mentioned earlier (see Figure us through the process. There are ex- Kerberos 88 2). tensive resources available about stan- DNS 53 dard dependencies and requirements When repeatedly using the HTTP that must be completed prior to instal- domain controller (see Figure 2) in adapter, you may want to secure it lation, such as minimum hardware (1 order to allow authentication. After with an SSL Certificate. If requests Ghz CPU, 1GB of RAM, 6GB of Hard disk opening the ports, DTC and authenti- are strictly internal, it can become space, etc.) and standard software cation began working appropriately. If financially beneficial to implement prerequisites (Window Server 2003 your network contains Virtual LANs this certificate from an internal Cer- with Service Pack 1, Microsoft SQL (VLAN), you need to ensure that you tificate Authority (CA). However, an Server 2005, etc.). However, there is have the ability to contact yourself internal SSL certificate should be im- little information available on how and other servers within your VLAN. plemented after the BizTalk installa- drastically the implementation of Biz- Certain complex environments do not tion and configuration, in particular, if Talk can be affected by the configura- offer this ability by default. Contact you do not allow external internet ac- tion of your environment. This article your network administrator if prob- cess to the BizTalk server. With its focuses on those BizTalk requirements lems occur. enhancements to Security of Windows beyond the norm, and shares some of 2003 SP1, Microsoft will force the our experiences gained through trial When running BizTalk on large net- search for the certificate revocation and error and investigation into spe- works, another ‗hidden‘ requirement list (CRL). This occurs in BizTalk during cific issues during the implementation is BizTalk‘s dependency on Active Di- configuration, usually when installing process. rectory. BizTalk is dependent on Ac- the BizTalk Rules Update Service. If tive Directory for Accounts and Group you install your certificates after in- The first requirement I will discuss will memberships and requires Active Di- stallation and configuration, your in- eventually be found in researching do- rectory to be in superior condition. stall will run smoothly and your certifi- main controller configuration, not Biz- Many organizations can utilize an Ac- cates will work appropriately. Talk. When implementing BizTalk tive Directory infrastructure that has through a firewall with the SQL server significant latency; BizTalk requires It is common practice in large-scale in a different domain than the BizTalk more of , in particular environments to utilize instance names server, you will need standard Distrib- with regard to latency. and alternate ports in SQL Server. uted Coordinator (DTC) ports (see Fig- These common practices don‘t lend ure 1) and the chosen SQL Server port Some of the specific issues we needed themselves to BizTalk. You can see (s). There are other items that may to address were based on the size of these issues with automated deploy- need to be opened as well, such as our organization. With Domain Con- ments, setup and configuration and SMB port 445 for file access to the SQL trollers not only located in different many other locations. To address this Server. Based on our configuration— datacenters but also on different con- issue, we have begun using SQL ali- two separate domains with a one-way tinents, configuration of the Active ases. Windows 2003 includes a utility trust with a firewall between them— Directory OU‘s was extremely impor- we needed to open the ports to the tant. Setting up Subnet ranges and Continued on page 34

28 BAMA OS400 Performance

What is Microsoft BizTalk Adapter for Host Applications? 1 The Microsoft BizTalk Adapter for Host Applications is Abdul Sait designed for BizTalk Server 2006. It is based on technology Taylor Corporation in Microsoft Transaction Integrator (TI) for Windows-Initiated Enterprise Processing, which enables efficient client access to existing Architect IBM mainframe zSeries (CICS and IMS) or midrange iSeries (RPG) server programs.

Test Setup The details about the hardware and specific software 2 versions used for conducting the tests are as follows: Host Name Purpose BizTalkServerApplication Default host in the BizTalk environment. 2.1 Deployment Topology No orchestrations were configured to The test deployment topology is shown in Figure 1, with Biz- use this host Talk Server 2006 deployed on one machine and SQL Server BizTalkTrackingHost Configured to perform message tracking. 2005 deployed on another. BizTalkXLangHost Configured to host the test orchestra- Figure 1 tion. FileHost Configured to host the send and receive Server Topology Handlers for the FILE adapter. BAHAHost Configured to host the send and receive handlers for the BizTalk Host Applica- SQL Server 2005 (64-bit) tions Adapter. Active/Passive Cluster TDSQLC01N01/N02 LoadGen Server (32-bit) BizTalk 2006 (32-bit) 2.4 Test Load Generation TEST01 TDBTS04 Load generation was carried out using the load generator

S.A.N application running on a separate client machine. The load generator kept pushing the files to a file share. Relevant performance counters were tracked on the BizTalk Server 2.2 Hardware and Software 2006 and SQL Server 2005 machines. Similar machines with similar deployment configuration for On the next page there is the configuration settings file that all servers were used in order to negate any hardware affect was used for the performance testing: on the testing (as shown in Figure 1). Hardware Dual Core Xeon Processor, 4MB Cache, 3.0GHz, 1333MHZ FSB 4GB 667MHz (4X1GB), Dual Ranked DIMMs 2 x 73GB, SAS, 2.5-inch, 10K RPM Hard Drive Software Windows Server 2003 SP1 .NET Framework 2.0.50727 BizTalk Server 2006 BizTalk Adapter for Host Systems SQL Server 2005 with SP1 2.3 BizTalk Host Configuration The following host configuration was used to deploy the or- chestration and adapters:

29

Testing Scenario and Results To conduct the performance test, 3 I used a scenario that would exist in any small, medium and large scale business process application.

3.1 Scenario This test business process accepts an xml file which contains purchase order infor- mation from a file- share using the FILE adapter. The mes- sage is picked up by the orchestration and a map is in- voked to convert the input to the out- put instance schema in accordance with the functoids used in the map. After transformation, the output message is sent to a RPG pro- gram on an iSeries mainframe using the Host Applications adapter via a solicit- In the configuration file above, the set-up was as follows: response send port. The orchestration NumOfThreadsPerSection Spawning 1 thread to generate the invokes three more maps that are sent load for the file section to three different RPG programs on the same iSeries mainframe using the Host SleepInterval Number of milliseconds the thread Applications adapter via solicit - sleeps before it translates the next response send ports. These actions are batch of messages performed within a long-running scope. LotSizePerInteval Number of messages to be sent after The long-running scope catches any the sleep interval exceptions and sends the original file to NumFiles Total number of messages to be sent a file-share using the FILE adapter. to the destination

ThreadHoldGenerationRate The upper and lower ranges that 3.2 Results within which the Load The performance test utilized 3500 in- Generator must keep its data genera- bound messages and all the orchestra- tion tions were completed in about 100 min- Parameters The location file monitor will check utes. No exceptions were thrown by for input messages any of the invoked orchestrations and SrcFilePath The source file which will be used as no messages or orchestrations were the input for testing suspended. DstFilePath The folder location monitor by the BizTalk Server receive port The Host Applications adapter submit- ted an average of 194 messages per minute to the iSeries mainframe. It is also worthy to note that the Interactive 2.5 Pre-Execution Steps Queries on the iSeries were not af- The following steps were carried out before running the per- fected as a result of this test and re- formance test: source utilization on the AS400 was The BizTalk Server Host Instances were re-started normal. A warm-up test with 500 messages was conducted for or- chestration The performance monitor results for The SQL Server service and SQL Agent service was restarted BizTalk Server are as follows: Figure 2 Test Orchestration

30 Conclusion It is clear from the test results above that the Host 4 Applications adapter performs really well under high load. Although the orchestration used by the load test may be a common scenario used by any small/medium/large company, the number of messages submitted for the load test may differ significantly. It is important however to note that all transactions in the load test completed without any suspended messages of server connectivity errors.

Based on my past experiences with mainframe adapters, it is common for transactions to fail due to connectivity errors with the adapter server program running on the mainframe and the thread pools need to be constantly adjusted or reset based on the load. Since the Host Applications adapter does existing TI Manager, Microsoft Management Console (MMC) not require any additional software to be installed on the snap-in, has been enhanced to improve supportability and iSeries mainframe, there is no additional maintenance or support the required remote BizTalk Server solution deploy- tweaking required for the adapter. ment scenarios. This significantly increases development and deployment of the adapter. Also, the Host Applications adapter is based on technology in Microsoft Transaction Integrator (TI) for Windows-Initiated Another major advantage of using this adapter is that the Processing, which enables efficient client access to existing Transaction Integrator technology supports both SNA con- IBM mainframe zSeries (CICS and IMS) or midrange iSeries nectivity and TCP/IP connectivity without requiring a host (RPG) server programs. The TI design tools are integrated footprint or costly host transaction rewrites. You can choose with Visual Studio 2005 and BizTalk Server solutions, ena- SNA connectivity if you need two-phase commit (2PC), or bling IT developers to be highly productive when defining choose TCP/IP connectivity if you need direct throughput. the client proxy and creating the XSD schema. This way all IBM has not implemented 2PC for the TCP/IP protocol, but the Host Application projects can be grouped in the same for those cases where 2PC is not necessary, TCP/IP can give BizTalk server solution and stored on SourceSafe of Team you direct connectivity. Foundation Server. For BizTalk Server administrators, the

Throttles Continued from page 27 assigned threshold level and the current value. There are You‘ll notice that we didn‘t quite address the case of deal- also several ―state based‖ counters that display a value indi- ing with hard limits in the systems you interact with cating the presence of absence of various throttling condi- (connection counts, etc.) In the next installment, we‘ll look tions – use the ―Explain‖ button in PerfMon (see figure 5 for at orchestration-level patterns for dealing with this. an example.) Scott Colestock consults independently through Trace Ven- In addition, spend some time with the ―BizTalk:Message tures, LLC. He is a BizTalk MVP and works in the Minneapo- Box:Host Counters‖ performance counter, which can give lis area. You‘ll find some of his other writing at: you good insight into where in your system you are accumu- www.traceofthought.net. lating backlog (since host queue lengths can be easily viewed.)

31 Tools of the TRADE . . .

Badda-Boom-Badda-Bling! Yes, we‘ve Additionally, this adapter not only pro- got some powerful stuff to trick out vides for physical communication your ride this time around. First, we‘re needs to and from ODBC data sources; Andy Schwarz going to take a peek at what is argua- but, like its SQL counterpart, also pro- Magenic Technologies bly one of the most versatile of the vides the ―Generated Item‖ wizard MCTS – BizTalk community-generated BizTalk Adapt- necessary to create schemas to facili- 2004 & 2006 ers, the Dynamic ODBC Adapter (in the tate such communications. (See Figure 2) interest of full disclosure, this was ac- tually created by Microsoft‘s own Todd Van Nurden; who, it may also be Figure 1 noted, serves as Editor Emeritus for the publication you are now reading… pend on what you‘re trying to but, since it doesn‘t come in any do with it. If it‘s easy to do in shrink wrapped BizTalk package, still ASP.NET‘s ODBC provider, it‘ll qualifies as ―community-generated‖). be easy with this adapter. We‘ll also take a step past the world of Clearly, the big win with this custom adapters and look at a functoid however, is its versatility. You that will help in mapping message con- can now access almost any tents in proper HL7 format. Roll up datastore without having to your sleeves! Let‘s BT! build a complete custom adapter from scratch. After all, BizTalk 2006 Dynamic ODBC Adapter that‘s the sort of thing that the http://www.gotdotnet.com/ ODBC standard was created to Community/UserSamples/Details.aspx? address: abstracting the inter- SampleGuid=2F88D1C8-BD76-4A1D- face to your database! B55B-C5FF80B7D3C4 The Upside: If you start with the in- Installation structions provided at the download Finally, the package comes with the Documentation site to get the files installed, and then complete source code… so for the follow the documentation provided in more adventurous, if you should find Samples the ZIP package to handle setup and any insurmountable shortcomings, you Ease of Use configuration, the installation flows are challenged to ―put your money Hero Factor without a hitch. The docu- mentation covers quite a Figure 2 The Lowdown: The BizTalk 2006 Dy- bit of territory: from de- namic ODBC Adapter is an adapter for sign notes, through setup BizTalk 2006 that functions along much and configuration, to a the same lines as the native SQL complete walkthrough of Adapter; but expands that functional- usage (complete with call- ity to apply to any available outs on limitations, cave- (potentially) ODBC provider. At its ats, and other ―gotchas‖). core, it is built upon the ASP.NET ODBC It can be extremely easy provider; so its functionality falls in to use… it‘s similarity to direct line with that. It comes with a the flow and functionality handy walkthrough of setup and use in of the SQL Adapter should its documentation, along with some make it a more familiar handy testing and support tools to environment for develop- make the adoption curve a bit ers to pick up. The ease of smoother. (See Figure 1) implementation will de- 32 where your mouth is‖ and change the different schemas Figure 3 this component darned thing! involving the com- simplifies, it‘s paratively restric- lacking in practi- The Downside: On both the compo- tive HL7 standards a cally every other nent and the documentation side, it is lot easier. Be way with regards clear (partly because it SAYS IT warned, however, to having a com- CLEARLY in the documentation) that that this download plete well docu- this is a work in progress. The docu- only provides the mented package mentation, while covering a lot of tool. for your toolkit. critical territory, it is replete with mi- As noted in the nor spelling, grammar, and flow errors. The Upside: The lowdown, all you There are no sample implementations installation of the get with the provided, save little snippets provided package is remarka- download is the in the usage walkthroughs in the docu- bly simple… if not binary… there‘s mentation. And, as the user commu- fully automated. no accompanying nity notes, the more complex the in- There is only the documentation, terface you are attempting, the easier assembly file pro- no readme, no it is to bring the adapter to its knees. vided in the ZIP, samples, no tu- Eh, nobuddy‘s prefect! with clear, three torial. Nothin‘, step instructions zilch, nada. In HL7 Delimiter Parsing Functoid provided on the site fact, if you don‘t http://www.gotdotnet.com/ for getting it up and running. Once it‘s download from the above link, you Community/UserSamples/Details.aspx? properly installed it is as easy to use won‘t even have installation instruc- SampleGuid=B49AFB5B-78AE-4C11- as any String Functoid: just drop it on tions available (granted, installing a 9C4D-554D6C72960A the mapper and specify either one new functoid isn‘t exactly rocket sci- Installation parameter (the string to be parsed, ence… but still). And finally, while I‘m Documentation using the default delimiters); or two still enjoying the afterglow of nitpick- parameters (the first being the string ing the grammar and spelling of the Samples of custom delimeters, the second be- last package reviewed (seriously, Ease of Use ing the string to be parsed). (See Fig- Todd, I think it‘s a terrific adapter!), Hero Factor ure 3) let me point out that when adding the new functoid to your toolbox, the The Lowdown: The HL7 Delimeter If you‘re doing extensive work on solu- word ―Character‖ actually contains Parsing Functoid allows you to parse a tions requiring HL7 compliance, you two c‘s! ;-) string for either the default |^~\& could finds this functoid to be a huge characters or custom string of delimit- time saver… hence the comparatively Well, that‘s it for this issue. If you ers and substituting HL7 escape se- high ―Hero Factor‖. have any issssSSSpspspspraaaa- quences according to the standard HL7 akk!!!...... rules. This enables mapping between The Downside: Sadly, with all that

Weapons of the Craft . . . The Evil Cease your witless prattling regarding without a BizTalk Server installation! ―Bling‖! I bring important information Impossible, you say? More impossible Andy Schwarz regarding your future! In our universe than this ridiculous beard? Nonsense! Parallel Universe BizTalk Server has proved a brilliant We have made it possible to leverage success in crushing its competition into key elements of BizTalk functionality the pathetic sub-standard subatomic in the form of hosted service building particles that constitute them. In fact, blocks. Beware, puny ones! When I it has proven so powerful, that we return (in your next pathetic issue), I have concentrated all our efforts on shall explain in excruciating detail Access Control Service extending and enhancing that power to how our new effort will supersede all And soon… bring our Empire the ability to create a you have ever before attempted, as  A Pub/Sub Event Brokering Service blended software/service model that we bring this power to bear in your  And, Workflow Processes… as can extend the power of BizTalk into universe. Tremble in fear at the no- hosted services! all manner of development! And we tion of: have succeeded! We can now leverage  A Message Routing Service Your slack-jawed amazement is like the ultimate power that is BizTalk  A Simple Federated Identity and ambrosia to me!

33 Beyond the Norm Continued from page 28 called SQL Server Client Network Util- few additional items that I‘d like to which runs a full DTC transaction, but ity (CliConfg.exe) which provides sev- point out. DTC requires the use of DNS does not require the client on the eral options. It allows you to set the Short Names. Short Name availability other end. DTCTester requires an default SQL connection port for your causes many DTC issues within BizTalk ODBC data source on the source server machine and set up aliases for a environments because it often is over- and an SQL Server on the destination server. When using multiple instance looked, especially in multiple domain server which you can access. It creates names on one server, it is best to use environments. a temp table in the tempdb database different Virtual Names in a clustered with a DTC Transaction. This process Microsoft offers most closely resembles BizTalk and three utilities provides the quickest route to verify- ( D T C P i n g , ing DTC communication. WinRm, and DTCTester) to Every environment will have different test DTC func- issues when it comes to troubleshoot- t i o n a l i t y , a n d ing the diverse portfolio of services each has its available through BizTalk. Having a benefits and firm understanding of your surrounding drawbacks. environment—from network configura- DTCPing basically tion to Active Directory configuration— pings the other can help you realize the full benefits c o m p u t e r of BizTalk. through the ports SQL Scenario. We recommend configur- used in DTC. It only tests the network DTCPing ing the alias as shown in Figure 3. and firewall openings and therefore http://support.microsoft.com/kb/306 needs to be run on both computers. 843 This configuration enables us to use WinRm is a utility that creates an ac- DTCTester only the server name when needing to tual DTC Transaction, but needs to http://support.microsoft.com/kb/293 connect. We no longer require the communicate with WinRm run on an- 799 instance name or the port, which is other computer—which can be chal- WinRM part of the platform SDK important as you begin automating lenging due to the lack of access and http://msdn.microsoft.com/library/de deployment processes with scripts. complex configurations in a clustered fault.asp?url=/library/en- configuration. The best utility for Biz- us/sdkintro/sdkintro/contents_of_the_ When dealing with DTC, there are a Talk appears to be the DTCTester, platform_sdk.asp

Positioning Continued from page 25 not built a foundation for adaption and Today, most organizations try and bal- understanding of the potential out- reuse. See fig 1.1— the business has ance these at the project level. A comes to the enterprise. To improve gained ground though incurred various better practice is to scorecard at the performance on all fronts begin with forms of internal debt. project/program level, but then bal- your ability to objectify and manage ance the investments at positioning over the long term and be the portfolio level so sure you are able to quantify the im- that enterprise concerns pact positioning before you invest. are better represented. Executive management Positioning for a single project is like teams must facilitate the the NASCAR track spotters guiding union of business, techni- their driver to the finish line. Position- cal, and program archi- ing over a season is like a team man- tecture groups in the ager winning a championship and posi- planning process so that tioning over the long haul is like the holistic score carding of team owner representing his stake- the portfolio can present holders. What level is your organiza- a true enterprise view of tion competing at? positioning. To be clear— Effective positioning allows for manag- Pleasing the business is a good thing as [email protected] ing trade-offs of enterprise concerns. long as management also has clear 34

Announcing - June 2007 Community Release of ESB Guidance – http://www.codeplex.com/esb By Marty Wasznicky Field Program Manager, Connected Systems Division

In October of 2006, we announced the preview of the Microsoft ESB Guidance at Microsoft SOA Conference in Redmond. This con- sisted of the following which enabled Microsoft partners and customers to build large and small-scale ESB solutions:

Sample code built on BizTalk Server 2006 Architectural guidance, patterns and practices Reusable BizTalk Server ESB and .NET components:  Dynamic Transformation Service  Dynamic End Point/Configuration Service  Itinerary based Routing & Service Invocation  ESB Portal  Exception Management framework  Namespace Resolution Service  JMS (Java Message Service) pipeline component (IBM JMS over WMQ)

Since that time we’ve achieved significant momentum:  Several hundred requests for the ESB Guidance  Several dozen customers incorporating the guidance into their projects  Dedicated Microsoft ESB web site: http://www.microsoft.com/biztalk/solutions/soa/esb.mspx  Dedicated Partner site for delivering the ESB Guidance: http://www.microsoft.com/biztalk/solutions/soa/esbpartners.mspx  Press on the ESB Guidance from the SOA conference  http://www.cio.com/blog_view.html?CID=25511  http://www.crn.com/sections/breakingnews/dailyarchives.jhtml?articleId=193104205  http://www.infoworld.com/article/06/10/04/HNmsesbsoa_1.html  http://www.networkworld.com/news/2006/100406-microsoft-offers-esb-guidelines-for.html  http://www.pcwelt.de/mobile/pda/news20061005/582163/ (German)  http://www.programmazione.it/index.php?entity=eitem&idItem=34953 (Italian)

Due to the overwhelming demand and popularity of the ESB Guidance, we (the Connected Systems Division) and the Patterns and Practices group have agreed to jointly develop the ESB Guidance moving forward.

As a result of the iteration of this partnership, we’ve released a new June Community Release build of the ESB Guidance on the new ESB Guidance community site, where all future iterations will be released until our final release in October later this year.

Although this June Community Release focused on bug fixes and refactoring the ESB Guidance for BizTalk 2006 R2, future releases will incorporate many new and augmented features such as:  UDDI publishing and richer resolution options  WS-MetadataExchange  Enhanced ESB Portal and Exception Mediation  Request-Response support for on and off ramps  WCF Adapter integration  New Samples and Guidance  Third party SOA Management and Governance integration:  Amberpoint Integration  SOA Software Integration

Through our partnership with Patterns and Practices, we hope to raise the bar of quality and build an extended community to support our customers as they move forward with the ESB Guidance.

With the Patterns and Practices partnership, we incur the benefit of having Don Smith (Product Manager for Patterns & Practices – [email protected] ) take an active role in owning the ESB Guidance Community. I will be coordinating feature development and community release schedules with Don, ensuring community feedback is incorporated into the ESB Guidance.

Please download the latest Community Release and provide us feedback. We will be monitoring the discussion forums on the site.

35 BizTalk 2006 Understanding the Hub and Spoke Deploy- Business Rules Framework in BizTalk Server Check for Updated and New white papers: ment Model for BizTalk Server 2006 2004 http://www.microsoft.com/biztalk/techinfo/whit BizTalk Server 2006 Application Deployment (August 2005) Read this article to understand Examine the creation and deployment of epapers/2004/default.mspx and Upgrade how the BizTalk Server 2006 hub and spoke business rule "policies" in BizTalk Server ————————————————–—— (June 2006) Read about improvements made model supports administrators who want to 2004, and see how a development environ- Check for Updated MSDN Technical Articles: to the application deployment and application install and deploy the associated bits of a ment that enables business rules to function http://msdn.microsoft.com/library/default.asp? upgrade experience via the platform’s appli- BizTalk Server solution from one central as transparent services can effectively drive url=/library/en - cation concept, the new BizTalk Server server and multiple remote servers. business agility. us/BTS_2004WP/html/90a5261b-a220-41bf- Administration Console, and more in this ————————————————–—— ————————————————–—— bf7f-fd759239242c.asp white paper. BizTalk Server 2006 Business Activity Moni- A Technical Guide For Certificate Manage- ————————————————–—— toring ment Webcasts BizTalk Server and : LOB (April 2005) This paper provides a detailed This paper provides detailed information Management and Integration Solutions for description of two new Business Activity about how to configure your BizTalk Server MSDN Architecture Webcast: Spotlight on E- the Extended Enterprise Monitoring (BAM) features in BizTalk Sever environment to use certificates for encryption, mail Adapters for BizTalk Server 2006 (Level (May 2006) This white paper describes the 2006—the BizTalk Server BAM Portal, and signing, and party resolution. 200) Original Air Date: December 1, 2005 deployment of Microsoft Dynamics and Biz- Alerts and Notification Support—and it dis- ————————————————–—— ————————————————–—— Talk Server, yielding a robust, high-value cusses enhancements to the BAM features in Security for BizTalk Server 2004 MSDN Architecture Webcast: What's New in solution that provides cross-functional inte- BizTalk Server 2004. Examine security mechanisms and deploy- BizTalk Server 2006: The Flat File Wizard gration and coordination of line-of-business ————————————————–—— ment methodologies that BizTalk Server 2004 (Level 200) Original Air Date: December 8, 2005 and supply chain management applications BizTalk Server 2006 Developer Tools Im- uses to authenticate data, authorize access, ————————————————–—— across the extended enterprise. provements and maintain data privacy and integrity. MSDN Webcast: BizTalk Adapter for Oracle ————————————————–—— (April 2005) This white paper describes some ————————————————–—— DB (Level 300) Original Air Date: March 29, The Business Value of Integration and Auto- key product enhancements in BizTalk Server Service-Oriented Architecture Paradigm 2006 mation for Midsize Companies 2006 that are of interest to developers, in Takes Center Stage in the Enterprise ————————————————–—— (May 2006) This white paper explains inte- particular the Flat File Wizard. Use Microsoft InfoPath with BizTalk Server MSDN Webcast: BizTalk Adapter Spotlight: gration and automation in BizTalk Server 2004 to address complex workflow issues, JD Edwards (Level 200) Original Air Date: 2006, how each enables midsize businesses demanding documentation requirements, and March 16, 2006 to improve supply chain functioning, and BizTalk 2004 application integration issues, with a view ————————————————–—— some broad principles to be aware of when towards building an agile enterprise. MSDN Webcast: BizTalk Adapter Spotlight: searching for effective integration and auto- Enterprise Integration Vision for BizTalk ————————————————–—— SAP (Level 200) Original Air Date: March 9, 2006 mation solutions. Server 2004 Single Sign-on Services for Microsoft Enter- ————————————————–—— ————————————————–—— Discover how XML and Web services are prise Application Integration Solutions MSDN Webcast: BizTalk Adapter Spotlight: The Business Value of Radio Frequency implemented within BizTalk Server 2004, Microsoft Host Integration Server and BizTalk Windows SharePoint Services (Level 200) Identification (RFID) .NET, and Microsoft Server both support an extension of Microsoft Original Air Date: February 2, 2006 (January 2006) This white paper examines Office 2003 and how they interact with each Windows Enterprise Security integration ————————————————–—— the opportunities and benefits of RFID and other to create a process-centric computing called Enterprise Single Sign-On (SSO). MSDN Webcast: BizTalk Adapters for DB2 how this technology will revolutionize supply infrastructure. Learn how SSO can help solve a key prob- and Host Files (Level 300) Original Air Date: chain management. ————————————————–—— lem that many enterprise organizations March 29, 2006 ————————————————–—— Choose a Business Process Automation experience. Download this paper from the ————————————————–—— BizTalk Server 2006 Adapter Enhancements Solution Microsoft Download Center for the details. MSDN Webcast: BizTalk Adapters for Host (November 2005) This white paper discusses Read this in-depth analysis of how BizTalk ————————————————–—— Applications (Level 300) Original Air Date: both the new built-in adapters and enhance- Server 2004 delivers a more integrated Understanding BPM Servers and BizTalk March 30, 2006 ments to the existing built-in adapters that will business process automation (BPA) solution Server 2004 ————————————————–—— ship with BizTalk Server 2006. than the WebSphere Business Integration Learn more about this conceptual framework MSDN Webcast: BizTalk Adapters for Siebel ————————————————–—— system from IBM. for BPM Server and how the major technolo- and TIBCO EMS (Level 300) Original Air BizTalk Server 2006 Runtime Improvements ————————————————–—— gies of BizTalk Server 2004 correspond to Date: March 30, 2006 (November 2005) This white paper reviews Developing a BizTalk Server Solution for these services. ————————————————–—— the improvements that have been made to BizTalk Server 2004 ————————————————–—— MSDN Webcast: BizTalk Server 2006 End-to- message processing as part of the core See how BizTalk Server 2004 enables devel- Understanding the Hub and Spoke Deploy- End Scenarios: Business Process Manage- engine enhancements for BizTalk Server opers and system architects to use the same ment Model for BizTalk Server 2006 ment (Level 200) Original Air Date: February 16, 2006. development methodology and components Read this article to understand how the 2006 ————————————————–—— to create workflow processes, application BizTalk Server 2006 hub and spoke model ————————————————–——— BizTalk Server 2006 Setup and Migration integration interfaces, and trading partner supports administrators who want to install MSDN Webcast: Business Activity Monitoring (November 2005) Included in this white paper interactions. and deploy the associated bits of a BizTalk (BAM) in BizTalk Server 2006 (Level 200) is a high-level overview of the BizTalk Sever ————————————————–—— Server solution from one central server and Original Air Date: February 23, 2006 2006 setup process and how it differs with Architecture for BizTalk Server 2004 multiple remote servers. ————————————————–——— the BizTalk Server 2004 install process. Learn fundamental concepts and develop- ————————————————–—— MSDN Webcast: Creating Your First BizTalk ————————————————–—— ment methodologies of the Service-Oriented Using Microsoft Tools for Business Process Server Application (Level 200) Original Air Understanding BizTalk Server 2006 Architecture (SOA) paradigm and its imple- Management in BizTalk Server 2004 Date: January 5, 2006 (October 2005) Learn about key features and mentation in BizTalk Server 2004, including See how Microsoft tools for business process ————————————————–——— improvements in BizTalk Server 2006, such the Microsoft .NET framework architecture. management (BPM) and supporting technolo- MSDN Webcast: Discover What’s New in as significantly simpler installation; better ————————————————–—— gies help you create and execute highly Biztalk Server 2006: New Management support for deploying, monitoring, and man- transparent and modular process-oriented Capabilities (Level 200) Original Air Date: aging applications; and improved capabilities workflows and gain development and opera- March 27, 2006 for Business Activity Monitoring. tional productivity. 36 MSDN Webcast: Enabling ―People-Ready‖ MSDN Architecture Webcast: Microsoft An Integrated Approach to Workflow and Microsoft Executive Circle Webcast: Manage Processes Using Microsoft Business Process Integration Technologies: When to Use What Data Exchange Tue, 25 May 2004 Trading Partner Integration with BizTalk 2004 Management Solutions and Technologies (Level 200) Thu, 08 Sep 2005 ————————————————–——— Wed, 17 Dec 2003 (Level 200) Original Air Date: July 27, 2006 ————————————————–——— MSDN webcast: Extending Mainframe Appli- ————————————————–——— ————————————————–——— MSDN Webcast: BizTalk Server 2004 Busi- cations using BizTalk Server 2004 and Host Microsoft Executive Circle Webcast: Check MSDN Webcast: End-to-End Scenarios: ness Rules Engine (Level 200) Wed, 31 Aug Integration 2004 - Level 200 Mon, 24 May Capture and Clearing – How to Manage Creating Service-Oriented Solutions with 2005 2004 Declining Fri, 12 Dec 2003 BizTalk Server 2006 (Level 300) Original Air ————————————————–——— ————————————————–——— ————————————————–——— Date: March 28, 2006 MSDN Webcast: Business Activity Monitoring MSDN Webcast: BizTalk Server 2004 Adapt- MSDN Webcast: Biztalk Server 2004 Tue, 09 ————————————————–——— with BizTalk (Level 200) Tue, 30 Aug 2005 ers for the Visual Studio .NET Developer - Dec 2003 MSDN Webcast: Extending BizTalk Solutions ————————————————–——— Level 200 Fri, 07 May 2004 ————————————————–——— to IBM Systems Using Host Integration MSDN Webcast: BizTalk Orchestration (Level ————————————————–——— MSDN Webcast: Biztalk Server Then and Server 2004 (Level 200) Original Air Date: 200) Mon, 29 Aug 2005 MSDN Webcast: Migrating from BizTalk Now Mon, 03 Nov 2003 October 20, 2005 ————————————————–——— Server 2002 to 2004 - Level 200 Mon, 03 ————————————————–——— ————————————————–——— MSDN Webcast: BizTalk Web Services and May 2004 Advanced Orchestration Concepts in BizTalk MSDN Webcast: High Availability, Fault WSE (Level 200) Fri, 26 Aug 2005 ————————————————–——— Server 2004 - Convoy Processing Tolerance and Scalability with BizTalk Server ————————————————–——— Microsoft Executive Circle Webcast: In- ————————————————–——— 2006 (Level 200) Original Air Date: January MSDN Webcast: Introduction to BizTalk creased Agility with Web Services Wed, 28 MSDN Webcast: Getting up to speed with 19, 2006 Server 2004 (Level 200) Thu, 25 Aug 2005 Apr 2004 BizTalk Server 2004 for the Visual Studio ————————————————–——— ————————————————–——— ————————————————–——— .NET Developer MSDN Webcast: Implementation and Tuning MSDN Webcast: An XML Guru's Guide to MSDN Webcast: InfoPath SP1 and BizTalk ————————————————–——— Best Practices for BizTalk Server Solutions BizTalk Server 2004 (Level 200) Wed, 01 Jun Server - Level 200 Mon, 19 Apr 2004 MSDN Webcast: Biztalk Server 2004 Orches- (Level 300) Original Air Date: March 31, 2006 2005 ————————————————–——— tration for the Visual Studio .NET Developer ————————————————–——— ————————————————–——— MSDN Webcast: BizTalk Server 2004 EDI ————————————————–——— MSDN Webcast: Implementing End-to-End TechNet Webcast: BizTalk Server 2004 with and without the Covast Accelerator - MSDN Webcast: Biztalk Server 2004 Archi- Sequential Processing in BizTalk Server Technical Overview (Level 200) Fri, 20 May Level 200 Wed, 14 Apr 2004 tecture 2006 (Level 200) Original Air Date: January 2005 ————————————————–——— ————————————————–——— 12, 2006 ————————————————–——— Microsoft Executive Circle Webcast: Enter- MSDN Webcast: BizTalk Server 2004 Per- ————————————————–——— MSDN Webcast: Implementing a Business prise Application Integration (EAI) Govern- formance and Early Adopter Experiences MSDN Webcast: Integrating Sales Data with Rules Engine Solution Using BizTalk Server ance Tue, 13 Apr 2004 ————————————————–——— Your Line-of-Business Applications Using the 2004 (Level 200) Fri, 20 May 2005 ————————————————–——— MSDN Webcast: Using Web Services with Salesforce.com Adapter for BizTalk Server ————————————————–——— MSDN Webcast: Real-World BizTalk Server BizTalk Server 2004 2006 (Level 200) Original Air Date: April 20, MSDN Webcast: Using the BizTalk Business 2004 Editing and Mapping Techniques - ————————————————–——— 2006 Rules Engine: Tips, Tricks and Best Practices Level 200 Thu, 08 Apr 2004 MSDN Webcast: BizTalk Server 2004 Busi- ————————————————–——— (Level 200) Fri, 13 May 2005 ————————————————–——— ness Rules for the Visual Studio .NET Devel- MSDN Webcast: Intelligent Reporting: Chart- ————————————————–——— MSDN Webcast: Adding Business Activity oper ing in Depth (Level 300) Original Air Date: MSDN Webcast: A Practical Approach to Monitoring your BizTalk Server 2004 Projects ————————————————–——— November 16, 2005 BizTalk Server 2004 and Web Services Thu, 08 Apr 2004 MSDN Webcast: Integrating BizTalk Server ————————————————–——— (Level 200) Wed, 11 May 2005 ————————————————–——— 2004 with SharePoint MSDN Webcast: Using the BizTalk Accelera- ————————————————–——— MSDN Webcast: Integrating BizTalk Server ————————————————–——— tor for SWIFT (Level 200) Original Air Date: MSDN Webcast: Everything You Wanted to 2004 with SharePoint Fri, 05 Mar 2004 MSDN Webcast: Extending Mainframe Appli- April 13, 2006 Know About Integration But Were Afraid to ————————————————–——— cations using BizTalk Server 2004 and Host ————————————————–——— Ask! (Level 200) Thu, 05 May 2005 MSDN Webcast: BizTalk Server 2004 Busi- Integration 2004 MSDN Webcast: Using the Business Activity ————————————————–——— ness Rules for the Visual Studio .NET Devel- ————————————————–——— Monitoring Tracking Profile Editor (TPE) Tool MSDN Webcast: Test-Driven Development oper Thu, 04 Mar 2004 MSDN Webcast: Adding Business Activity and APIs in BizTalk Server 2006 (Level 200) with BizTalk Server 2004 (Level 200) Wed, ————————————————–——— Monitoring your BizTalk Server 2004 Projects Original Air Date: April 6, 2006 04 May 2005 MSDN Webcast: Using Web Services with - Level 200 ————————————————–——— ————————————————–——— BizTalk Server 2004 Thu, 04 Mar 2004 ————————————————–——— MSDN Webcast: What’s New in the BizTalk Microsoft Executive Circle Webcast: BizTalk ————————————————–——— MSDN Webcast: Real-World BizTalk Server Server 2006 Messaging Engine (Level 200) Accelerator for SWIFT Tue, 05 Apr 2005 MSDN Webcast: BizTalk Server 2004 Per- 2004 Editing and Mapping Techniques - Original Air Date: March 27, 2006 ————————————————–——— formance and Early Adopter Experiences - Level 200 ————————————————–——— Microsoft Executive Circle Webcast: Level 200 Wed, 03 Mar 2004 ————————————————–——— MSDN Webcast: What's New in BizTalk A4SWIFT and Implementing SWIFT Stan- ————————————————–——— MSDN Webcast: Building on BizTalk Server Server 2006 (Level 200) Original Air Date: dards Using BizTalk 2004 Thu, 31 Mar 2005 MSDN Webcast: Biztalk Server 2004 Archi- 2004 Human Workflow Services for the October 6, 2005 ————————————————–——— tecture - Level 300 Wed, 03 Mar 2004 Visual Studio .NET developer - Level 200 ————————————————–——— Microsoft Executive Circle Webcast: Data ————————————————–——— ————————————————–——— MSDN Webcast: Windows Communication Management in STP Thu, 17 Mar 2005 MSDN Webcast: Biztalk Server 2004 Orches- MSDN Webcast: BizTalk Server 2004 EDI Foundation, Windows Workflow Foundation, ————————————————–——— tration for the Visual Studio .NET Developer with and without the Covast Accelerator - and Identity in Financial Services (Level 200) Microsoft Executive Circle Webcast: Creating Wed, 03 Mar 2004 Level 200 Original Air Date: March 28, 2006 Operational Efficiencies in Today's Financial ————————————————–——— ————————————————–——— ————————————————–——— Services Firms Tue, 08 Mar 2005 MSDN Webcast: Getting up to speed with MSDN Webcast: InfoPath SP1 and BizTalk MSDN Architecture Webcast: Design Human ————————————————–——— BizTalk Server 2004 for the Visual Studio Server - Level 200 MSDN Webcast: Migrating Workflow Solutions with BizTalk Server 2004 Microsoft Executive Circle Webcast: Interop- .NET Developer - Level 200 Tue, 02 Mar 2004 from BizTalk Server 2002 to 2004 (Level 200) Thu, 03 Nov 2005 erability Challenge of Maritime Security Wed, ————————————————–——— ————————————————–——— ————————————————–——— 02 Feb 2005 Microsoft Executive Circle Webcast: Micro- MSDN Webcast: BizTalk Server 2004 Adapt- MSDN Webcast: Extending BizTalk Solutions ————————————————–——— soft and Metastorm: Implementing the Busi- ers for the Visual Studio .NET Developer to IBM Systems Using Host Integration Microsoft Executive Circle Webcast: Using ness Process Management Solution Thu, 26 ————————————————–——— Server 2004 (Level 200) Thu, 20 Oct 2005 BizTalk 2004 To Implement An SOA For Feb 2004 MSDN Webcast: Advanced Orchestration ————————————————–——— Service Provisioning Mon, 31 Jan 2005 ————————————————–——— Concepts in BizTalk Server 2004 MSDN Webcast: What's New in BizTalk ————————————————–——— Microsoft Executive Circle Webcast: Leverag- ————————————————–——— Server 2006 (Level 200) Thu, 06 Oct 2005 MSDN Webcast: Integrating BizTalk Server ing Business Solutions with BizTalk Server MSDN Webcast: Extending Mainframe Appli- ————————————————–——— 2004 with SharePoint Sat, 16 Oct 2004 2004 Tue, 10 Feb 2004 cations using BizTalk Server 2004 and Host MSDN Architecture Webcast: BizTalk Server ————————————————–——— ————————————————–——— Integration 2004 Security Revealed (Level 300) Thu, 22 Sep Microsoft Executive Circle Webcast: Cutting Microsoft Executive Circle Webcast: Real- ————————————————–——— 2005 Medical Red Tape to Save Dollars and Lives: Time Pre-Trade Compliance Monitoring of MSDN Webcast: Advanced Orchestration Investment Policy Wed, 28 Jan 2004 Concepts in BizTalk Server 2004 - Level 300

37 TechNet Webcast: Monitoring your E- Adapter Technical Drilldown Rules Composer - David Wang MQSeries Adapter - Susie Adams Business Solutions with Microsoft Operations Webcasts: Joe Klug’s Team: http://www.placeware.com/cc/microsoft/view? http://www.placeware.com/cc/microsoft/view? id=JUPBAG-11&pw=35DKTQ Dec 12, 2003 id=JUPBAG-27&pw=35DKTQ May 7, 2004 Manager 2005 - Using Built-In Knowledge in ————————————————–——— ————————————————–——— MOM 2005 to Reduce Downtime (Level 300) 1. WCF Adapters in BizTalk 2006 R2 – Advanced Orchestration, Part 1 - Erik SharePoint Adapter - Steve Resnick ————————————————–——— Sarathy Sakshi Leaseburg http://www.placeware.com/cc/microsoft/view? MSDN Webcast: Host Integration Server http://www.livemeeting.com/cc/microsoft/view http://www.placeware.com/cc/microsoft/view? id=JUPBAG-28&pw=35DKTQ May 14, 2004 2004 Extends BizTalk Solutions – Level 200 ?id=Jumpstart-08&pw=BTS06R2 Maty 17, id=JUPBAG-12&pw=35DKTQ Dec 19, 2003 ————————————————–——— ————————————————–——— 2006 ————————————————–——— Advanced Orchestration - Erik Leaseburg Check for Updated and New web casts: ————————————————–——— Health and Activity Tracking (HAT) & http://msevents.microsoft.com/CUI/EventDeta http://www.microsoft.com/events/AdvSearch. 2. WCF LoB Adapter SDK – Sonu Arora Debugging - Patrick Smith il.aspx?EventID=1032253626 May 21, 2004 mspx?EventsAndWebcastsControlName=As http://www.livemeeting.com/cc/microsoft/view http://www.placeware.com/cc/microsoft/view? 1%3AAdvSrc&As1%3AAdvSrc%3AAudienceI ?id=Jumpstart-09&pw=BTS06R2 May 24, id=JUPBAG-13&pw=35DKTQ Jan 9, 2004 HIPAA 3.0 Accelerator - Monica DeZulueta D=0&As1%3AAdvSrc%3AProductID=a913e3 2006 ————————————————–——— http://www.placeware.com/cc/microsoft/view? 3b- e7d2- 4 e e a - 8 5 5 6 - ————————————————–——— Business Activity Services (BAS) - David id=JUPBAG-29&pw=35DKTQ May 28, 2004 c18f5b3670f8&As1%3AAdvSrc%3AEventTyp 3. BizTalk Adapter Pack (Siebel, SAP, Wang ————————————————–——— e=OnDemandWebcast&As1%3AAdvSrc%3A Oracle DB) – Tapas Nayak and Mahadevan http://www.placeware.com/cc/microsoft/view? Advanced Dev - Crypto Pipeline, Submit CountryRegionID=en%7CUS%7CUnited+Sta Venkatachalam id=JUPBAG-14&pw=35DKTQ Jan 16, 2004 Direct, Orchestration - Rajan Dwivedi tes&StateProvinceID=0&As1%3AAdvSrc%3A http://www.livemeeting.com/cc/microsoft/view ————————————————–——— http://www.placeware.com/cc/microsoft/view? TimeframeID= - ?id=Jumpstart-10&pw=BTS06R2 May 31, Advanced Orchestration, Part 2 - Marty id=JUPBAG-31&pw=35DKTQ Jun 4&18, 2004 1&As1%3AAdvSrc%3ASearchFilter=%C2%A 2006 0+Go+%C2%A0 Wasznicky ————————————————–——— http://www.placeware.com/cc/microsoft/view? Trading Partner Management & FTP 100 Past BizTalk 2004 & 2006 id=JUPBAG-15&pw=35DKTQ Jan 23, 2004 Adapter - David Wang Friday Brown Bags ————————————————–——— http://www.placeware.com/cc/microsoft/view? Human Workflow Services (HWS) - Raman id=JUPBAG-30&pw=35DKTQ June 25, 2004 BizTalk 2004 Overview & VS.NET Integra- Mahal ————————————————–——— tion - Erik Leaseburg http://www.placeware.com/cc/microsoft/view? SWIFT Accelerator - Fredda Cole http://www.placeware.com/cc/microsoft/view? id=JUPBAG-16&pw=35DKTQ Jan 30, 2004 http://www.placeware.com/cc/microsoft/view? id=JUPBAG&pw=35DKTQ Aug 29, 2003 ————————————————–——— id=JUPBAG-32&pw=35DKTQ July 9, 2004 Brownbag Webcasts ————————————————–——— InfoPath/BizTalk 2004 Integration - David ————————————————–——— Setup & Installation - Vipul Goyal Solomon RosettaNet Accelerator - Cuneyt Havlioglu http://www.placeware.com/cc/microsoft/view? http://www.placeware.com/cc/microsoft/view? http://www.placeware.com/cc/microsoft/view? 10 Past BizTalk 2006 R2 Jumpstart id=JUPBAG-1&pw=35DKTQ Sept 5, 2003 id=JUPBAG-17&pw=35DKTQ Feb 6, 2004 id=JUPBAG-33&pw=35DKTQ July 23, 2004 Webcasts ————————————————–——— ————————————————–——— ————————————————–——— Note: These links will go bad 90-days after the 2002 to 2004 Comparison & Migration - BizTalk Adapter Framework - Gavin Islip HL7 Accelerator - Suren Machiraju webcast delivery date: Erik Leaseburg http://www.placeware.com/cc/microsoft/view? http://www.placeware.com/cc/microsoft/view? http://www.placeware.com/cc/microsoft/view? id=JUPBAG-18&pw=35DKTQ Feb 13. 2004 id=JUPBAG-34&pw=35DKTQ July 30, 2004 BizTalk 2006 R2 Technical Overview – Mitch id=JUPBAG-2&pw=35DKTQ Sept 12th & ————————————————–——— ————————————————–——— Stein 19th, 2003 Business Activity Monitoring (BAM) - BizTalk Configuration and Administration http://www.livemeeting.com/cc/microsoft/view?i ————————————————–——— David Wang – Erik Leaseburg d=Jumpstart-01&pw=BTS06R2 Mar 22, 2006 XML Editor - Guru Venkataraman http://www.placeware.com/cc/microsoft/view? http://www.placeware.com/cc/microsoft/view? ————————————————–——— http://www.placeware.com/cc/microsoft/view? id=JUPBAG-19&pw=35DKTQ Feb 20, 2004 id=JUPBAG-35&pw=35DKTQ Aug 20, 2004 EDI Adapter – Tony Bernard id=JUPBAG-3&pw=35DKTQ Sept 26, 2003 ————————————————–——— ————————————————–——— http://www.livemeeting.com/cc/microsoft/view?i ————————————————–——— BizTalk Explorer & Administration - Erik Orchestration Drilldown: Transactions, d=Jumpstart-02&pw=BTS06R2 Mar 29, 2006 XML Mapper - Vipul Goyal Leaseburg Exceptions and Compensation - Erik ————————————————–——— http://www.placeware.com/cc/microsoft/view? http://www.placeware.com/cc/microsoft/view? Leaseburg RFID Technical/Business Overview – Anush id=JUPBAG-4&pw=35DKTQ Oct 3, 2003 id=JUPBAG-20&pw=35DKTQ Feb 27, 2004 http://www.placeware.com/cc/microsoft/view? Kumar. ————————————————–——— ————————————————–——— id=JUPBAG-36&pw=35DKTQ Sept 3, 2004 http://www.livemeeting.com/cc/microsoft/view?i Orchestration - Dale Michalk Enterprise Single Sign-On (SSO) - Jona- ————————————————–——— d=Jumpstart-03&pw=BTS06R2 Apr 5, 2006 http://www.placeware.com/cc/microsoft/view? than Gao BizTalk Adapter Wizard - Boudewijn van der ————————————————–——— id=JUPBAG-5&pw=35DKTQ Oct 10, 2003 http://www.placeware.com/cc/microsoft/view? Zwan (Unisys) AS2 Adapter & EDI Business Value – Tony ————————————————–——— id=JUPBAG-21&pw=35DKTQ Mar 5, 2004 http://www.placeware.com/cc/microsoft/view? Bernard Deployment - Rajan Dwivedi ————————————————–——— id=JUPBAG-37&pw=35DKTQ Sept 10, 2004 http://www.livemeeting.com/cc/microsoft/view?i http://www.placeware.com/cc/microsoft/view? EDI Covast Adapter - Scott Mauvais ————————————————–——— d=Jumpstart-04&pw=BTS06R2 Apr 12, 2006 id=JUPBAG-6&pw=35DKTQ Oct 17, 2003 http://www.placeware.com/cc/microsoft/view? HIS Integration with BizTalk - Mike Cramer ————————————————–——— id=JUPBAG-22&pw=35DKTQ Mar 12, 2004 http://www.placeware.com/cc/microsoft/view? RFID Technical Drilldown Web- Content Based Routing - Marty Wasznicky ————————————————–——— id=JUPBAG-38&pw=35DKTQ Sept 17, 2004 SQL Adapter - Ananth Krishnamurthy ————————————————–——— casts: Anush Kumar’s Team: http://www.placeware.com/cc/microsoft/view? id=JUPBAG-7&pw=35DKTQ Oct 24, 2003 (Equarius) Advanced Mapping - Aleksey Savateyev ————————————————–——— http://www.placeware.com/cc/microsoft/view? http://www.placeware.com/cc/microsoft/view? 1. Building device providers for the BizTalk Pipeline & Custom Components - Gavin id=JUPBAG-23&pw=35DKTQ May 26, 2004 id=JUPBAG-39&pw=35DKTQ Sept 24, 2004 RFID platform – Ramachandran Venkatesh Islip ————————————————–——— ————————————————–——— http://www.livemeeting.com/cc/microsoft/view?i http://www.placeware.com/cc/microsoft/view? Performance, Stress & Scalability - Erik BizTalk PowerToys - Erik Leaseburg d=Jumpstart-05&pw=BTS06R2 Apr 24, 2006 id=JUPBAG-8&pw=35DKTQ Nov 7, 2003 Leaseburg http://www.placeware.com/cc/microsoft/view? ————————————————–——— ————————————————–——— http://www.placeware.com/cc/microsoft/view? id=JUPBAG-40&pw=35DKTQ Oct 1, 2004 2. Designing and deploying BizTalk RFID BizTalk Message Queuing (MSMQ/T) - id=JUPBAG-24&pw=35DKTQ Apr 2, 2004 ————————————————–——— Business Processes – Janaki Goteti and Rajan Dwivedi ————————————————–——— BizTalk 2004 Administration Management Krishnan Gopalan http://www.placeware.com/cc/microsoft/view? SAP Adapter - Bryan McCutchan Tool - Paul Somers (Charteris) http://www.livemeeting.com/cc/microsoft/view?i id=6DWNGR-16&pw=494ZRK Nov 20, 2003 http://www.placeware.com/cc/microsoft/view? http://www.placeware.com/cc/microsoft/view? d=Jumpstart-06&pw=BTS06R2 Apr 24, 2006 Note: Click on Agenda slide to skip first id=JUPBAG-25&pw=35DKTQ Apr 16, 2004 id=JUPBAG-41&pw=35DKTQ Oct 8, 2004 ————————————————–——— 30min of unrelated information ————————————————–——— ————————————————–——— BAM Interceptors – Brad Paris and Tiho ————————————————–——— Migrating from BizTalk 2002 to 2004 - Erik Microsoft BizTalk Adapter for WSE 2.0 Tarnavski Web Services and Orchestration - Erik Leaseburg Technical Overview - Joe Klug http://www.livemeeting.com/cc/microsoft/view?i Leaseburg http://www.placeware.com/cc/microsoft/view? http://www.placeware.com/cc/microsoft/view? d=Jumpstart-07&pw=BTS06R2 Apr 26, 2006 http://www.placeware.com/cc/microsoft/view? id=JUPBAG-26&pw=35DKTQ Apr 30, 2004 id=WSE2.0&pw=WSE2.0 Oct 14, 2004 id=JUPBAG-10&pw=35DKTQ Dec 5, 2003 38 UK SDC BizTalk 2004 Documenter v.2.0 - SAP XI Overview – Alex Cobb Adapters New Features (POP3 & SMTP BizTalk 2006 Adapter for Oracle DB - Puru Jason Birth <\\erikleasdt\jupiter\Brown Drilldown) in Pathfinder/BizTalk 2006 - Erik Amradkar http://www.placeware.com/cc/icrosoft/view?id Bags\BTSBAG59_AlexCobb_SAP XI Over- Leaseburg & Doug Girard http://www.livemeeting.com/cc/microsoft/view =JUPBAG-42&pw=35DKTQ Oct 15, 2004 view-internal NDA only.wmv> (internal/NDA http://www.livemeeting.com/cc/microsoft/view ?id=BTSBAG-85&pw=35DKTQ Apr 7, 2006 ————————————————–——— only) Apr 8, 2005 ?id=BTSBAG-72&pw=35DKTQ Sept 9, 2005 ————————————————–——— BAM Drilldown - Zach Jason and John Ballard ————————————————–——— ————————————————–——— BizTalk Operations - Rob Cameron http://www.placeware.com/cc/microsoft/view? Utilizing Enterprise Library with BizTalk Leveraging Windows 2003 Kerberos - <\\erikleasdell\public\BizTalk\Brown id=JUPBAG-43&pw=35DKTQ Oct 22, 2004 2004 - Steve Yi Extensions Protocol Transition and Con- Bags\BTSBAG86_RobCamer_BizTalk Server ————————————————–——— http://www.livemeeting.com/cc/microsoft/view strained Delegation in a Multi-Tier Integra- 2004 Operations.wmv> (internal/NDA only) Building Adapters From Scratch Using ?id=BTSBAG-60&pw=35DKTQ April 15, 2005 tion Scenario Using BizTalk Server - Apr 21, 2005 VB.NET - David Stampfli ————————————————–——— Akhtar Hossain & Kathy Wilson ————————————————–——— http://www.placeware.com/cc/microsoft/view? Extracting, Transforming and Delivering http://www.livemeeting.com/cc/microsoft/view BizTalk 2006 Adapter for Siebel - Puru id=JUPBAG-44&pw=35DKTQ Oct 29, 2004 Gigantic Legacy Application Interface ?id=BTSBAG-73&pw=35DKTQ Sept 30, 2005 Amradkar ————————————————–——— Files Using BizTalk 2004 and Oracle - ————————————————–——— http://www.livemeeting.com/cc/microsoft/view BizTalk 2004 Adapter for MSMQ (NAIAD) - George Dunphy SAP Adapter Drilldown, Common Issues & ?id=BTSBAG-87&pw=35DKTQ Apr 28, 2006 Rick Mittelstaedt http://www.livemeeting.com/cc/microsoft/view Questions - Gruia Pitigoi-Aron & Guru ————————————————–——— http://www.placeware.com/cc/microsoft/view? ?id=BTSBAG-61&pw=35DKTQ May 13, 2005 Venkataraman BizTalk 2006 Adapter for WSE 3.0 - Jesus id=JUPBAG-45&pw=35DKTQ Nov 12, 2004 ————————————————–——— http://www.livemeeting.com/cc/microsoft/view Rodriguez, Rick Pelletier, Javier Mariscal ————————————————–——— Custom Pipeline Component Develop- ?id=BTSBAG-74&pw=35DKTQ Oct 7, 2005 (Two Connect) & Mark Fussell BizTalk Native Adapter & Orchestration ment, XmlCompleteValidator & More - ————————————————–——— http://www.livemeeting.com/cc/microsoft/view Tips & Tricks - Erik Leaseburg Martijn Hoogendoorn Writing Effective BizTalk Server Adapters ?id=BTSBAG-88&pw=35DKTQ May 5, 2006 http://www.placeware.com/cc/microsoft/view? http://www.livemeeting.com/cc/microsoft/view - Kartik Paramasivam ————————————————–——— id=JUPBAG-46&pw=35DKTQ Nov 19, 2004 ?id=BTSBAG-62&pw=35DKTQ May 27, 2005 http://www.livemeeting.com/cc/microsoft/view WSE 2.0 SP1 Adapter for BizTalk 2006 - ————————————————–——— ————————————————–——— ?id=BTSBAG-75&pw=35DKTQ Oct 14, 2005 Michael Elizarov Trading Partner Management (TPM) & BizTalk 2004 Oracle Adapter - Khaled M. ————————————————–——— http://www.livemeeting.com/cc/microsoft/view Business Activity Services (BAS) - Dale Hnidk (LINKdotNET) Beginning-to-End Ordered Delivery ?id=BTSBAG-89&pw=35DKTQ May 12, 2006 Michalk http://www.livemeeting.com/cc/microsoft/view (Sequential FIFO) in BizTalk 2004 and ————————————————–——— http://www.placeware.com/cc/microsoft/view? ?id=BTSBAG-63&pw=35DKTQ June 3, 2005 2006 - Erik Leaseburg BizTalk Operations - Rob Cameron id=JUPBAG-47&pw=35DKTQ Dec 3, 2004 ————————————————–——— http://www.livemeeting.com/cc/microsoft/view http://www.livemeeting.com/cc/microsoft/view ————————————————–——— BAS and Sharepoint Adapter in Pathfinder ?id=BTSBAG-76&pw=35DKTQ Nov 18, 2005 ?id=BTSBAG-90&pw=35DKTQ May 19, 2005 WRQ Verastream BizTalk 2004 Screen (BizTalk 2006) - Gary Keong & Sunghwa Jin ————————————————–——— ————————————————–——— Scraping Adapter for Legacy Integration - http://www.livemeeting.com/cc/microsoft/view Best Practice Analyzer (BPA) - BizTalk BizTalk 2006 Adapter for RIM BlackBerry - Paul Neutz & Jeff Zuber (WRQ) ?id=BTSBAG-64&pw=35DKTQ June 17, 2005 2006: Rules Design Spec Re- Jennifer Zouak (Zouak Consulting) http://www.placeware.com/cc/microsoft/view? ————————————————–——— view/Discussion - Gruia Pitigoi-Aron http://www.livemeeting.com/cc/microsoft/view id=JUPBAG-48&pw=35DKTQ Dec 10, 2004 BAM in Pathfinder (BizTalk 2006) New http://www.livemeeting.com/cc/microsoft/view ?id=BTSBAG-91&pw=35DKTQ May 26, 2005 ————————————————–——— Features - Mubarak Elamin & Brad Paris ?id=BTSBAG-77&pw=35DKTQ Dec 2, 2005 ————————————————–——— Clearway Workflow Suite and Microsoft http://www.livemeeting.com/cc/microsoft/view ————————————————–——— BizTalk Adapter for WebSphere MQ (Client- BizTalk - Gene Rodgers & Christian Manas- ?id=BTSBAG-65&pw=35DKTQ June 24, 2005 BizTalk Server 2006: Development and Based) - Anil Balakrishnan seh (Clearway) ————————————————–——— Adapters - Joe Sharp http://www.livemeeting.com/cc/microsoft/view http://www.placeware.com/cc/microsoft/view? New Features of Pathfinder (BizTalk 2006) http://www.livemeeting.com/cc/microsoft/view ?id=BTSBAG-92&pw=35DKTQ June 2, 2006 id=JUPBAG-49&pw=35DKTQ Dec 17, 2004 Messaging Engine - Ruslan Yakushev ?id=BTSBAG-78&pw=35DKTQ Dec 12, 2005 ————————————————–——— ————————————————–——— http://www.livemeeting.com/cc/microsoft/view ————————————————–——— Enterprise Single Sign-On (SSO) in BizTalk ODBC Adapter for BizTalk Server 2004 - ?id=BTSBAG-66&pw=35DKTQ July 1,2005 Future Directions: Beyond BizTalk Server 2006 and Host Integration Server (HIS) Todd Van Nurden ————————————————–——— 2006 - Eddie Churchill 2006 - Anil Balakrishnan http://www.livemeeting.com/cc/microsoft/view e-Taxation Portal: Using Biztalk, WSS http://www.livemeeting.com/cc/microsoft/view http://www.livemeeting.com/cc/microsoft/view ?id=BTSBAG-54&pw=35DKTQ Feb 18,2005 Adapter and InfoPath for providing elec- ?id=BTSBAG-79&pw=35DKTQ Jan 6, 2006 ?id=BTSBAG-93&pw=35DKTQ June 23, 2006 ————————————————–——— tronic tax filing services - Tarek Bohsali ————————————————–——— ————————————————–——— BizTalk Server 2006 "Pathfinder" Techni- (TerraVision) Discarded and Suspended Message Con- BizTalk Adapter for Host Applications - cal Overview - Jeff Wierer http://www.livemeeting.com/cc/microsoft/view trol - Mark Berry (STAC) Steve Smaller <\\erikleasdt\jupiter\Brown ?id=BTSBAG-67&pw=35DKTQ July 8, 2005 http://www.livemeeting.com/cc/microsoft/view http://www.livemeeting.com/cc/microsoft/view Bags\BTSBAG55_JWierer_BizTalk 2006 ————————————————–——— ?id=BTSBAG-80&pw=35DKTQ Feb 3, 2006 ?id=BTSBAG-94&pw=35DKTQ June 30, 2005 Pathfinder Tech Overview-internal NDA Using the BizTalk Adapter for SQL Server ————————————————–——— ————————————————–——— only.wmv> (internal/NDA only) Mar 4, 2005 - Common Scenarios - Todd Uhl (Avanade) BizTalk Server 2006 Lifecycle: Deploy- BizTalk Operations PowerToys - Erik ————————————————–——— http://www.livemeeting.com/cc/microsoft/view ment, Monitoring & Maintenance - Nikhil Leaseburg Deep Dive WRQ Verastream BizTalk 2004 ?id=BTSBAG-68&pw=35DKTQ July 15, 2005 George & Erik Leaseburg http://www.livemeeting.com/cc/microsoft/view Screen Scraping Adapter for Legacy ————————————————–——— http://www.livemeeting.com/cc/microsoft/view ?id=BTSBAG-95&pw=35DKTQ Aug 25, 2006 Integration - Jeff Zuber & David Stanley Two Worlds Collide: Transferring Data ?id=BTSBAG-81&pw=35DKTQ Feb 10, 2006 ————————————————–——— (WRQ) Between Microsoft BizTalk Server 2004 ————————————————–——— BizTalk Versioning - Mark Berry (STAC) http://www.livemeeting.com/cc/microsoft/view and Microsoft SQL Server 2005 - Jesus Upgrading from BizTalk Server 2004 to http://www.livemeeting.com/cc/microsoft/view ?id=BTSBAG-56&pw=35DKTQ Mar 18, 2005 Rodriguez & Javier Mariscal (TwoConnect) 2006 - Charlie Ferebee ?id=BTSBAG-96&pw=35DKTQ Sept 8, 2006 ————————————————–——— http://www.livemeeting.com/cc/microsoft/view <\\erikleasdell\public\BizTalk\Brown ————————————————–——— BizTalk Server 2004 Service Pack 1 - Doug ?id=BTSBAG-69&pw=35DKTQ Aug 5, 2005 Bags\BTSBAG82_CFerebee_Upgrading from Surviving Your First BizTalk Project - Girard and Vikas Nahata ————————————————–——— BizTalk 2004 to 2006 - TAP Customer.wmv> Walson Lee, Luke Nyswonger, Akhtar Hos- http://www.livemeeting.com/cc/microsoft/view Leveraging Windows 2003 Kerberos - (internal/NDA only) Feb 24, 2006 sain, Erik Leaseburg ?id=BTSBAG-57&pw=35DKTQ Mar 25, 2005 Extensions Protocol Transition and Con- ————————————————–——— http://www.livemeeting.com/cc/microsoft/view ————————————————–——— strained Delegation in a Multi-Tier Integra- BizTalk 2006 Adapter for SAP - Gruia ?id=BTSBAG-97&pw=35DKTQ Oct 13, 2006 Multi-Server BizTalk 2004 Installation and tion Scenario Using BizTalk Server - Pitigoi-Aron ————————————————–——— Configuration - Naveen Goli and Paul Akhtar Hossain & Kathy Wilson http://www.livemeeting.com/cc/microsoft/view BizTalk Disaster Recovery - Rob Cameron Davidson http://www.livemeeting.com/cc/microsoft/view ?id=BTSBAG-83&pw=35DKTQ Mar 3, 2006 (ATL) http://www.livemeeting.com/cc/microsoft/view ?id=BTSBAG-70&pw=35DKTQ Aug 12, 2005 ————————————————–——— http://www.livemeeting.com/cc/microsoft/view ?id=BTSBAG-58&pw=35DKTQ Apr 1,2005 ————————————————–——— BizTalk 2006 Adapters for DB2 and Host ?id=BTSBAG-98&pw=35DKTQ Oct 20, 2006 ————————————————–——— Windows SharePoint Services (WSS) Files - Ricardo Mendes ————————————————–——— Adapter in Pathfinder (BizTalk 2006) - Greg http://www.livemeeting.com/cc/microsoft/view Managing a Successful Performance Lab Prickril & Adrian Hamza ?id=BTSBAG-84&pw=35DKTQ Mar 17, 2006 with BizTalk Server 2006 - Doug Girard http://www.livemeeting.com/cc/microsoft/view ————————————————–——— http://www.livemeeting.com/cc/microsoft/view ?id=BTSBAG-71&pw=35DKTQ Aug 26, 2005 ?id=BTSBAG-99&pw=35DKTQ Oct 27, 2006

39 100th BizTalk Brown Bag! Pro BizTalk 2006 Community and Bloggers Additional Information Book - George Dunphy, Ahmed Metwally, et.al., BizTalk Patterns Wizard - Jon Flan- Community:BizTalk Server Community on ders & Interesting Brown Bag Stats - Erik Microsoft.com Leaseburg ————————————————–——— http://www.livemeeting.com/cc/microsoft/view? News Group:BizTalk Server News Group on id=BTSBAG-100&pw=35DKTQ Nov 17, 2006 TechNet Professional BizTalk ————————————————–——— ————————————————–——— Server 2006 Microsoft ESB Guidance for BizTalk Server Consolidated Blog Entries: 2006 - Marty Wasznicky & Brian Loesgen The Blogger's Guide to BizTalk by Darren Jefford, Kevin B. (Neudesic) ————————————————–——— Smith, Ewan Fairweather http://www.livemeeting.com/cc/microsoft/view? Product Group Blog: BPID Customer Re- Paperback id=BTSBAG-101&pw=35DKTQ Dec 8, 2006 sponse Team's Blog ISBN: 0470046422 ————————————————–——— ————————————————–——— Unlock Your Excel XLS Data with Spread Product Group Blog: Pub. Date: May 07, 2007 for BizTalk - Robby Powell & Pete Willis http://blogs.msdn.com/Biztalk_Core_Engine (FarPoint) ————————————————–——— http://www.livemeeting.com/cc/microsoft/view? BizTalk on : id=BTSBAG-102&pw=35DKTQ Jan 19, 2007 http://channel9.msdn.com/tags/Biztalk ————————————————–——— Archive and Purge in BizTalk Server 2006 - Vishal Chowdhary http://www.livemeeting.com/cc/microsoft/view? Self-Guided Training id=BTSBAG-103&pw=35DKTQ Feb 2, 2007 Foundations of BizTalk ————————————————–——— On-line Technical Training through MSDN Server 2006 Practices for Monitoring BizTalk Solutions Step into the BizTalk Virtual Lab for Free and with Microsoft Operations Manager (MOM) - learn BizTalk Server hands - on by Daniel Woolston Stephen Kaufman It's simple - no complex setup or installation is Paperback http://www.livemeeting.com/cc/microsoft/view? required to try out BizTalk running in the full- ISBN: 1590597753 featured MSDN Virtual Lab. As part of the id=BTSBAG-104&pw=35DKTQ Feb 16, 2007 Pub. Date: January 2007 ————————————————–——— MSDN Virtual Lab, you will have full access to BizTalk 2006 Performance Methodology - BizTalk through 14 different, 90 minute mod- Clint Huffman ules including topics such as Creating a http://www.livemeeting.com/cc/microsoft/view? Schema Map, Integrating Business Rules, and id=BTSBAG-105&pw=35DKTQ Mar 23, 2005 Enabling Business Activity Monitoring. ————————————————–——— ————————————————–——— Introducing the WebSphereTX (Mercator) Connected Systems Business Kit to BizTalk Migration Pack by Partner2Learn Now available to order at no charge, the - Elizabeth Redding (Partner2Learn) Connected Systems Business Kit shows you http://www.livemeeting.com/cc/microsoft/view? how connected systems deliver value to your BizTalk 2006 Recipes id=BTSBAG-106&pw=35DKTQ Apr 27, 2007 business. The resources in this kit can help by Mark Becker, Mark Smith, ————————————————–——— you better align your IT with your business. Mark Smith, Alexander West, http://www.microsoft.com/windowsserversyste BizTalk: Retaining Agility by Loose Cou- Alexander West pling - Karl Rissland m/overview/benefits/cstrial.mspx http://www.livemeeting.com/cc/microsoft/view? Paperback id=BTSBAG-107&pw=35DKTQ May 25, 2007 ISBN: 1590597117 ————————————————–——— Classroom Training Pub. Date: September 2006 Runtime Governance for BizTalk/.NET - Deploying and Managing E-Business Solu- Brian Gaffney tions Using Microsoft BizTalk Server 2004 http://www.livemeeting.com/cc/microsoft/view? Learn how BizTalk Server 2004 can help you id=BTSBAG-108&pw=35DKTQ June 22, 2007 deploy and manage your E-Business solutions in this two-day course offered by Microsoft Learning. Related Sites ————————————————–——— Developing E-Business Solutions Using Micro- BizTalk Server on MSDN soft BizTalk Server 2004 Pro BizTalk 2006 Discover how BizTalk Server 2004 can help BizTalk Server on TechNet you develop your E-Business Solutions in this by George Dunphy, Ahmed BizTalk Server on Microsoft.com five-day course offered by Microsoft Learning. Metwally ————————————————–——— Paperback BizTalk server on GotDotNet Find BizTalk Server Training and Resources Increase your market value with these educa- ISBN: 1590596994 tional resources. Choose from online and Pub. Date: October 2006 instructor-led courses as well as books. ————————————————–——— Become a Technical Leader—Get Certified Now Prove your advanced skills and experi- ence with Microsoft technologies by becoming certified. Microsoft certification helps organiza- tions identify the best in the industry. Visit the Training & Certification site to learn more. To unsubscribe, please send an email to: [email protected]

40 July2007 Mon Tue Wed Thu Fri *Webcasts 2 3 4 5 6 Click Event on Calendar to Register and Attend

9 10 11 12 13

*Live Meetings Click Event 16 17 18 BizTalk User 19 20 on Calendar to Attend Group - MN On Site* 1-866-500-6738 6:00-7:30p Pass code: 7696960 23 24 25 26 27

*On Site Events 30 31 Click Event on calendar for details and to pre-register August2007 Mon Tue Wed Thu Fri 1 2 3

6 7 8 9 10

13 14 15 16 17

20 21 22 23 24

27 28 29 Hotrod 30 31 Webcast* 1:00p BizTalk MOM part 2

DC BizTalk User Group meeting September2007 Date to be determined Mon Tue Wed Thu Fri 3 4 5 6 7

PRIVACY NOTICE: Microsoft is com- mitted to protecting your privacy. 10 11 12 13 14 Collection and use of the personal information you provide on this form will be governed by the practices set forth in the Microsoft privacy state- 1 12 13 14 15 ment. DISCLAIMER – The BizTalk Hot- rod contains the thoughts, theories and experiences to those who work 17 18 19 20 21 with BizTalk professionally and vol- BizTalk User untarily contribute to its publication. Group - MN It is not an official Microsoft docu- On Site* 6:00-7:30p ment, and opinions expressed may or 24 25 26 27 28 may not represent those of Microsoft Hotrod Webcast* Corporation All rights reserved 1:00p BizTalk & Office XML

41 © MMVII