Biztalk Solution Factory

Jean-Paul Smit has released a Biztalk Solution Factory on Codeplex. His post about it is here. I joined up on another project , the Biztalk Application Factorya while ago but have been so snowed under with project work that i couldnt really get any contributions there up and running. Jean-Paul also mentions the work done […]

Business Process Automation – Don’t Just Shift the Costs!

I'm stepping on my soapbox again so be warned!

I've recently encountered a number of well-intentioned (or perhaps not so well-intentioned) companies looking to reduce their internal costs for processing orders and invoices through some sort of "business process automation" system. Being an avid BPA developer I applaud these efforts so long as they bring "value" to everyone in the supply chain. What I see all too often is companies spending thousands and thousands of dollars on web-based initiatives where the main goal is to shift the transaction processing from themselves to their suppliers. From a business perspective, this just isn't a wise choice and from a technological perspective, it just isn't necessary. Having your suppliers enter their invoices first on their ERP system and then on your web-based system does not reduce the "transaction cost" it just shifts the labor from yourself to your supplier.

True B2B Integration Doesn't Just Shift Costs, It Eliminates Them!

The Internet offers developers the unparalleled opportunity to connect disparate systems together without paying EDI "VAN" (Value Added Private Network) charges, telecom "WAN" (wide area network) charges or even leased-line charges. Basically, all the infrastructure costs are essentially free or paid for though corporate web access. All the developer (and business analyst) has to do is "connect-the-dots" using products like Microsoft’s BizTalk Server, Tibco’s iProcess Suite or Software AG’s WebMethods product to eliminate the real transaction costs. It's never been easier or more affordable to do this and the benefits to the entire supply chain are enormous! Automating the transaction processing so that the document (purchase order or invoice) is "touched" by human hands only during it's creation doesn't just shift costs, it eliminates them!

Yes, I've heard all the arguments about how "costly" B2B integration can be and how smaller companies really can't afford to participate but IT JUST ISN'T TRUE! Products like BizTalk Server 2006 make BPA truly affordable for companies of any size. I know of at least one very small company that used this product to integrate QuickBooks (their "ERP" system) to their much larger suppliers and customers. If they can do this without breaking the bank, anyone can!

Developer Call To Action: The next time your senior management talks about automating business processes with customers and suppliers, don't just develop a BPA system that shifts the costs, work to eliminate them altogether!

New WCF BizTalk Whitepaper

We just posted the new whitepaper “Integrating Microsoft BizTalk Server 2006 R2 with the Windows Communication Foundation” on one of the adapter web pages at

 http://msdn.microsoft.com/en-us/biztalk/bb545017.aspx, as well as part of the MSDN library at


http://msdn.microsoft.com/en-us/library/cc627292.aspx.   


 


Here is a summary of its content:


 


This paper describes the use of the BizTalk WCF adapters for hosting and consuming WCF services. As a key objective, it provides an in-depth understanding of the means of integrating a custom WCF channel stack with the BizTalk WCF adapters. Furthermore, key industrial infrastructure concerns such as transaction management and security are discussed in the context of integrating WCF services with the BizTalk Messaging Engine. The paper also emphasizes a few pragmatic paradigms such as the use of dynamic ports in invoking WCF services. Finally, some of the key integration challenges are discussed to streamline the correct use of the adapters for solving complex business problems.


With the realization of the benefits of developing and orchestrating unified business solutions, today’s business organizations adopt the paradigm of Service Oriented Architecture (SOA)-based solution development for the execution of dynamically composed business processes. However, due to the disparate nature of the diverse business applications that exist in an enterprise, many organizations experience daunting challenges in integrating these business applications and services.


This paper discusses the use of Microsoft%u00ae BizTalk%u00ae Server 2006 R2 and its WCF adapters as a platform for service orientation that alleviates the aforementioned integration challenges. The paper emphasizes the configuration and integration of custom WCF channels with BizTalk solutions, through the use of the above adapter platform. Furthermore, the paper provides concrete solutions for the identified integration concerns that apply to the orchestration of services through the use of custom WCF channels.

Dwight Goins will speak at BizTalk User Group Sweden

As enough attendees signed up for the ASP.Net Deep Dive course, Dwight Goins will come to join us at the next BizTalk User Group meeting. He will speak about WCF in general, using WCF adapters in BizTalk and hopefully show some insights of the WCF Adapter SDK.

Dwight Goins has more than 10 years of experience developing enterprise-level applications and teaching courses based on Microsoft products and technologies. Prior to joining QuickLearn as an instructor, Dwight worked for Hewlett- Packard as a courseware developer and trainer with a specialization in Microsoft .NET application development training. Over the last three years, Dwight has developed and delivered BizTalk Server Deep Dive training and .NET developer "road shows" for at locations across all over the world. Dwight is a Microsoft Certified Trainer (MCT) and teaches C#, ASP.NET, AJAX, .NET Framework, XML/XSL, SQL Server, and advanced BizTalk Server training to developers worldwide. Dwight was also the lead author for the Microsoft BizTalk Server 2006 certification exam.

Storing BizTalk settings in custom configuration file using Enterprise Library

Choice of configuration settings storage is an important topic when it comes to enterprise BizTalk application planning. One of the many options is to use regular.Net configuration files. Some prefer this way over the Enterprise SSO database option for reasons of simplicity and familiarity. I wanted to show how it can be done with Microsoft Enterprise Library configuration application block.

In this caseEnterprise Library configuration section is placed in theBTNTSvc.exe.config file while application settings are stored in a separate configuration file.The problem here is how do we make EntLibtoload required settings file at runtime. Its done by simple helper class CustomSettingsthat looks up registry entry for the location and name of the application configuration file and creates FileConfigurationSource with it.The registry entrycan becreated by MSI installation package.

The initialization method of this helper class looks like this (thread synchronization code omited for brevity):

          RegistryKey regKey = null;

          try
          {
             regKey = Registry.LocalMachine.OpenSubKey(@"Software\MyCompany\MyApplication");
             configurationFile = Path.Combine(
             (string)regKey.GetValue("ConfigDir"),
             (string)regKey.GetValue("ConfigFile"));

              ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap();
              fileMap.ExeConfigFilename = configurationFile;
              configuration = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None);
              configurationSource = new FileConfigurationSource(configurationFile);

              //- store configPath in the settings
              configuration.AppSettings.Settings.Add(
              new KeyValueConfigurationElement("configDir", (string)regKey.GetValue("ConfigDir")));
           }
           catch (Exception ex)
           {
              Debug.WriteLine("Exception while initializing Settings:" + ex.ToString());
              throw ex;
           }
           finally
           {
              if (regKey != null) regKey.Close();
           }

Then it has method to access properties by name:

        public static string GetValue(string name)
        {
            KeyValueConfigurationElement entry = Configuration.AppSettings.Settings[name];

            if (entry == null)
                throw new ConfigurationErrorsException("Key '" + name + "' is not found in the configuration file.");

            return Configuration.AppSettings.Settings[name].Value;
        }

Which is used as in:

string propertyValue = CustomSettings.GetValue("propertyName");

New BizTalk Performance, WCF Whitepapers

I was looking for a particular download today on the Microsoft site, and came across a couple of new whitepapers.  Check out the Microsoft BizTalk Server Performance Optimization Guide which 220+ pages of performance factors, analytic tools, planning/preparing/executing a performance assessment, identifying bottlenecks, how to test, and optimizing operating system / network / database  level […]

RosettaNet: Who Invents This Stuff?

Captain Picard – “Admiral, we’ve engaged the Borg”

Day 2 in my RosettaNet development project and all I can say is “Who Invents This Stuff”?

Yes, it’s been a glorious two days of trying to comprehend the world’s most complicated business-to-business process. Only the electronics industry could conceive of something so overly complex. Secure, internet-based transactions were never meant to be this difficult. It’s like swatting a fly with an atom bomb! After ten years of B2B development I though I had seen it all. Boy, was I wrong!

And the worse thing is that you have to pay for the privilege of enduring this torture. Every other xml standards organization I’ve ever dealt with freely distributes their schemas and specifications for everyone to use. Not so for the folks at RosettaNet.org! You’ll have to pay anywhere from several hundred to several thousand dollars for the rights to use their “PIP”s (Partner Interface Process) which is really nothing for than an XML DTD or XSD (schema) and a process guide explaining the message flow. It looks like RosettaNet.org used to publish these on their web site but now you’ll have to pay for a subscription to get these.

Why on earth would so many smart B2B developers adopt such an overly complex, expensive and time consuming standard is beyond my understanding. Folks, business-to-business transactions do NOT have to be this difficult.

Stay tuned for more fun & games!