Tuesday, February 22, 2011

New BizTalk 2010 book unveiled – Line of Business Systems Integration

Received news this morning that the book that I have been working on for the past 7 months has now reached “RAW” status. What is RAW you ask? RAW stands for “Read As we Write”. The idea is to get the book, in soft copy format, into the hands of readers early. The goal is to get early feedback from readers with the possibility of incorporating this feedback before the book is published. This is a relatively new program from Packt but when it was presented to us we decided to get the book into the community sooner than later. I must caution that the book, in this format, is not the final version. Think of it as a CTP (Community Technical Preview) with the polished version of the book set for the end of April timeframe.



What is the book about?


The book primarily deals with Line of Business integration with popular LOB systems like SAP, Dynamics CRM, SalesForce.com, Dynamics AX, SQL Server and SharePoint. In addition to these chapters we also introduce the Line of Business Adapters Fundamentals and connecting to the AppFabric Service bus.



Why write another BizTalk book?


As experienced developers we understand the nuts and bolts of BizTalk. We can create Schemas, Ports, Maps and understand various BizTalk patterns. The challenge is often understanding the systems that we are integrating with. When integrating with commercial products like SAP and Dynamics there is always some pre-requisite knowledge required to effectively integrate with it. The goal of this book is to expose some of this pre-requisite knowledge so that an experienced BizTalk developer can get up to speed quickly with the technology that they need to integrate with.



Who are the authors?


I have yet to meet a person who was an expert in each of these technology areas. With this in mind a talented team of BizTalk specialists was assembled to take on this adventure including:



Technical Reviewers


Anyone who has written a book can appreciate the “unsung heroes” of a published book. The unsung heroes of this book are our Packt publishing team and Technical Reviewers. We have an outstanding roster that includes the following people:


Packt



  • Kerry George

  • Alina Lewis

  • Zainab Bagasrawala

Technical Reviewers



I can say, without any hesitation, that their efforts have significantly increased the quality of the book.



For more details on the RAW program, I encourage you to visit the PACKT website.



Stay tuned for more information as the actual published date nears.


1902en_mockupcover_normal_0

Sunday, January 2, 2011

Off Topic–Payback is a ….

So you may recall a bet that took place around the 2010 Olympic timeframe which had me, and Team Canada, matched up against fellow BizTalk MVP Mikael Håkansson and Team Sweden.  As we all know, Canada won the Olympic Gold Medal and I won the bet.

The Christmas break is well anticipated holiday for many obvious reasons in Canada.  While most people in Canada are stuck indoors for the coldest part of the year, many are glued to their television sets watching the World Junior Hockey tournament.  This tournament represents the best under 20 year old Hockey players on the the planet.  Most of these players will end up playing professional Hockey somewhere and many will make the NHL.

On December 31st, 2010, Canada squared off against Team Sweden in a round robin game.  Once again Mikael taunted me with a blog post so I couldn’t resist opening up that wound of his from earlier in the year.

This time around it is my time to eat crow.  Sweden beat Canada 6-5 in a shoot-out and in return here is my tribute to Team Sweden and Mikael.

There are still some games left and I am confident that Team Canada can pull it off. There is a good chance that Canada could play Sweden so perhaps there will be a rematch bet?

friberg_73159

Saturday, January 1, 2011

Microsoft MVP Awarded: Part 4

I recently received word that I have been re-awarded for another year.  Contributing to the BizTalk community continues to be something I enjoy and am passionate about so it is always nice to be recognized by Microsoft for my efforts.

Looking back at 2010, it sure was a busy year.  I spent a lot of time in the areas of SharePoint and SAP integration.  I attended TechEd in New Orleans where I also helped out at the BizTalk booth.  I gave a SharePoint and App Fabric Service Bus presentation to the Calgary .Net User group and had the opportunity to go to Sweden and speak about Monitoring your BizTalk environment with SCOM.  Travelling to Stockholm and spending time with Mikael Håkansson and Johan Hedberg was one of my highlights even if Mikael signed both Johan and I up for an Olympic distance triathlon.

2011 is shaping up to being just as busy if not busier than 2010.  Here are some of the things coming up for me:

  • I am currently the Integration Architect on a Dynamics CRM/Project Server 2010/SharePoint 2010/SAP project so I will continue to be very involved with integrating line of business systems.  Expect more SAP and Dynamics CRM content on this blog.  I am thinking about building a series around CRM 4.0  integration much like the ShareTalk series that I previously published on this site.
  • Speaking of Line of Business systems, the rumor is true.  I have teamed up with a group of really talented authors to write a BizTalk book.  The book will be unlike any of the current BizTalk books and will target experienced BizTalk developers.  The list of authors and technical reviewers is impressive, I am very confident that the end product will be great.  More information will be forthcoming, but you can expect the book to be available towards the end of April 2011.
  • Learning more about AppFabric is also on my “resolution” list for 2011.  While I have a very good idea of what AppFabric is and what you can do with it, I just haven’t had a lot of “hands on” experience with it.
  • While unrelated to this blog, I just love my Windows Phone 7 device and have previously written the “BizTweet” app for it.  I look to expand my skills in this area as well.  I have a couple ideas that I plan on pursuing, one that does involve BizTalk and SAP.

While no where near Seroter numbers, this blog received just over 40 000 hits over the past year, so I thank you for taking the time to stop by and read my content.  All the best for the upcoming year.

Thursday, November 18, 2010

Off Topic: Introducing BizTweet for Windows Phone 7

In addition to blogging about BizTalk, I have decided to start blogging about Windows Phone 7.  Therefore, I have created a new blog to focus on WP7 and will continue to blog about BizTalk here. 

I recently had my first WP7 App published in the marketplace.  The app is called BizTweet and may be found in the Social category.  The purpose of the application is to aggregate information related to BizTalk and AppFabric.  So if you have a WP7 and are interested in BizTalk and/or AppFabric then I encourage you to check it out. 

For more details, check out the BizTweet blog post.

Monday, October 4, 2010

BizTalk: HTTP Adapter and preventing Cached Responses

A while back I blogged about a service that would go fetch Natural Gas Prices, the price of Oil and Stock Quotes from Yahoo.    The information that is returned from BizTalk is surfaced in an Xcelsius dashboard along with a lot of other business critical data from SAP.  Our executive team accesses this information from a web part in SharePoint site.  As people launch their browsers, they see the Stock Quotes and other commodity prices get updated.  Since this is a dashboard, people will view the data for a few minutes and then close their browser.  This type of user behavior never uncovered a flaw in the application.  It is not like someone sat on the dashboard all day long waiting for the stock price to change.

A request came in to turn this Dashboard into a Windows 7 widget.  Once this widget was in place, we uncovered that the stock quotes were not being updated.   The Widget simply acts as a container for the dashboard.  So we dug out Fiddler and could determine that the BizTalk service was not being called on a regular interval.  The reason?  Caching.  There was no cache command or expiration date sent on the HTTP header going back to the dashboard so it would not be called on a regular basis.  Since this Widget does not get restarted like a Web Browser does, the stock quotes would remain static for the duration of a user’s desktop session.

To avoid this situation, I needed to provide an explicit command in a Message Assignment Shape to prevent my responses from being cached:

msgStockQuoteResponse(HTTP.UserHttpHeaders) ="Cache-Control: no-cache";

Since the client was instructed not to cache the response, it would now go ahead and call the service when it goes to refresh the rest of its data.

 

image

 

There are many options that you can set within the HTTP Header.  For example,  if you wanted to expire content every 2 minutes, you could set your header to  Cache-Control: max-age=120.  If you are interested in what other features can be set in an HTTP Header, I recommend checking out this site.

Sunday, September 26, 2010

BizTalk 2010 – RTM has arrived!

 

image

As you are probably aware by now, BizTalk 2010 has RTM’d.  You can catch the announcement here.  I am not going to recap all of the new features as you can read about them here.  However, here are a few points worth noting about the new release.

  • The  BizTalk 2010 Developer’s edition is now free.  So if you are curious about BizTalk and getting a licensed copy has been a barrier for you in the past, now is your chance to test drive BizTalk at no cost.  Full details and download may be found here.
  • For those AppFabric/WCF/WF developers, there is a new compelling feature called BizTalk AppFabric Connect which allows you to leverage BizTalk components such as the BizTalk LOB Adapter Pack and BizTalk Mapper within your .Net projects. This is a true enabler for connecting your WF applications to Line of Business Systems (LOB)
  • If you have written applications in the past that have used the traditional line of business adapters, you will now be forced to use the BizTalk Adapter pack when communicating with SQL Server, SAP, Oracle and Siebel.  Microsoft had deprecated these adapters in BizTalk 2009 and they have been officially removed in 2010.  For the past year or so, I have been using the BizTalk Adapter pack when communicating with LOB systems and there are some subtle differences between the legacy and new LOB adapters. Overall, I am satisfied with the experience and there are no “show stoppers” that we have run into  when making the switch.  So if you are planning a BizTalk 2010 upgrade and currently use the legacy adapters, ensure migrating these applications to use the BizTalk adapter pack is in your project plan as you will need to regenerate schemas using these new adapters.

Wednesday, September 15, 2010

BizTalk 2009 + SharePoint 2010

 

Note:  The following steps do not represent a supportable configuration by Microsoft and extreme caution should be used when following these steps.  To my knowledge, these steps are complete, but it is possible that I missed something.  These steps have been tested in a Send Port Subscription scenario.   Use these instructions at your own risk.

At the organization that I work for, we are rolling out SharePoint 2010.  We currently run BizTalk 2009 and  at this point in time, the  BizTalk 2009 SharePoint Adapter Web Service isn’t supported with SharePoint 2010.  BizTalk 2010 has been updated to support SharePoint 2010.  We really have no choice but to head in this direction since upgrading to BizTalk 2010 just isn’t an option at this point in time.

When you launch the BizTalk 2009 installation on a SharePoint 2010 Server you will not be able to install the Windows SharePoint Services Adapter Web Service as it is not able to detect the pre-requisite Windows SharePoint Services v 3.0 files.

image

Mick Badran has a post that helped me out tremendously. However, I found that I had to take a few additional steps so I will recap exactly what we did in order for us to get this to function in our environment.

We had an existing MOSS 2007 server that had the BizTalk Adapter Web Service installed and functioning correctly.  Since you cannot use the BizTalk installation wizard to install this Web Service, we decided to reverse engineer what was deployed on MOSS 2007 and manually deploy on SharePoint 2010.

  • Copy the c:\program files\Microsoft BizTalk 2009 folder from your MOSS 2007 Server to your SharePoint 2010 Server
  • Create the BTSharePointAdapterWS Web Application in IIS Manager and set the physical path to C:\Program Files (x86)\Microsoft BizTalk Server 2009\Business Activity Services\BTSharePointV3AdapterWS 

Note: This path represents a 64 bit installation.

image

  • We leveraged the existing App Pool that the SharePoint Site was using
  • Modify the web.config to set the appropriate SharePoint Enabled Hosts, if required.  For us, we use AD Groups and had to change to reflect our “DEV” AD group
  • Rebind the Microsoft.SharePoint.dll to point to version 14.

image

  • We removed the Document Tag so that we could browse the WSDL properly.  See this post for more info.

 image

  • We then exported two keys from the Registry on our MOSS 2007 Server and import them on your SharePoint 2010 Server:
    • [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\BizTalk Server]
    • [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\BizTalk Server]
  • At this point we thought we were done and attempted to push a message from BizTalk 2009 to SharePoint 2010 but discovered the following message in event viewer:

 

Event Type:    Warning
Event Source:    BizTalk Server 2009
Event Category:    (1)
Event ID:    5743
Date:        9/10/2010
Time:        1:37:51 PM
User:        N/A
Computer:    SERVER

Description:
The adapter failed to transmit message going to send port "SendPort1" with URL "wss://SERVER:80/DropOffLibrary". It will be retransmitted after the retry interval specified for this Send Port. Details:"System.Web.Services.Protocols.SoapException: Server was unable to process request. ---> System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.BizTalk.KwTpm.OfficeImporters2, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.
File name: 'Microsoft.BizTalk.KwTpm.OfficeImporters2, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
   at Microsoft.BizTalk.KwTpm.WssAdapter.BTSharePointAdapterWS..ctor()

WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure logging.
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].

   --- End of inner exception stack trace ---

This error was triggered by the Windows SharePoint Services receive location or send port with URI wss://SERVER:80/DropOffLibrary.

Windows SharePoint Services adapter event ID: 12462".

For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.

 

Once again it was back to the MOSS 2007 server and more specifically, a trip to the GAC where we discovered the following BizTalk Dlls.  This list included the Microsoft.BizTalk.KwTpm.OfficeImporters2.dll that was mentioned in the event viewer.  We then pulled these dlls off of the installation CD and gac’d them on the SharePoint 2010 server using gacutil.

image

After Gac’ing these assemblies we had success pushing messages from BizTalk 2009 to SharePoint 2010.

 

Note: There is another option which I have not tried that Kirk Hofer discusses here.  It involves installing WSS v3.0 SP2, but not configuring it, so that the BizTalk install Wizard thinks it is installed.  Our SharePoint team was not crazy about having these other dlls on their fresh SharePoint 2010 server so we were unable to proceed with this approach.