Happy BizTalk to you – Part 1

Welcome To machine!

Today, I would like to introduce the series of Happy BizTalk to you; the idea behind these articles is to familiarize you with a set of design patterns in BizTalk orchestrations to simplify the programming process automatically. The plan is to get you some overview automatically, no additional effort required. When you're familiar with the design patterns of BizTalk, you can face a programming issue and — Bam! — A solution will come to you more quickly. Instead of banging your head against the wall in desperation, you'll say, "What I need here is the Splitter pattern Or the Aggregator pattern". Let's go

What are the Patterns?

People think in patterns. It is the way we naturally communicate ideas related ‎to complex subject areas such as music, science, medicine, chess, and ‎software design. Patterns are not new. We all use them intuitively as part of ‎the learning process without really thinking about it. And because our minds ‎naturally use patterns to perform complex tasks, you can find patterns nearly ‎everywhere.‎

For example : The Patterns in Sports

Consider what happens during a soccer game or an American football game.‎ if you look closer at patterns, you will find relationships between them. In ‎sports, for example, teams have certain plays for offense and certain plays for ‎defense; the patterns that describe two players' actions must fit into a larger ‎pattern that the team is following. In this sense, patterns can be described in ‎terms of hierarchies.‎

What are you talking about exactly?

You know that BizTalk implements the meaning of EAI (Enterprise Application Integration), but we need to define the following :

  • What is Enterprise Application?

    The Enterprise Application is software which provides business logic support functionality for a ‎organization, typically in commercial organizations, which aims to improve ‎the organization's productivity and efficiency.‎Enterprise applications are those which are accessed at the same time by ‎many users and are hosted on single servers. They mostly have multiple ‎user roles, security access and integration with other applications. They ‎help companies to maintain and access enterprise data like finance, ‎employee, sales, production, etc.‎

  • What is the Integration of Enterprise Application?

    Integration, Integration, integration….ummmm! , actually, Integration is an act of combining two or more things in such a way that ‎they work together. In this respect, integration is connected to enterprise ‎applications and information technology. Enterprise applications store a ‎huge amount of persistent data which are accessed simultaneously by ‎multiple users. ‎

    The definition of "integration" is very broad. To us it means connecting ‎computer systems, companies or people. However, in EAI there are six types of integration ‎projects:‎

    • ‎Information Portals
    • ‎Data Replication
    • ‎Shared Business Functions
    • ‎Service-Oriented Architectures
    • ‎Distributed Business Processes
    • ‎Business-to-Business Integration

Take a break!

  1. Information Portals : ‎

    For example, to verify the status of an order, a customer service representative may have to access the order management system on the mainframe plus log on to the system that manages orders placed over the Web. Information portals aggregate information from multiple sources into a single display to avoid having the user access multiple systems for information. Simple information portals divide the screen into multiple zones, each of which displays information from a different system.

  2. Data Replication : ‎

    Many business systems require access to the same data. For example, a ‎customer's address may be used in the customer care system (when the ‎customer calls to change it), the accounting system (to compute sales tax), the ‎shipping system (to label the shipment) and the billing system (to send an ‎invoice). Many of these systems are going to have their own data stores to ‎store customer related information. When a customer calls to change his or ‎her address all these systems need to change their copy of the customer's ‎address. This can be accomplished by implementing an integration strategy ‎based on data replication. There are many different ways to implement data ‎replication. For example, some database vendors build replication functions ‎into the database, we can export data into files and re-import them into the ‎other system, or we can use message-oriented middleware to transport data ‎records inside messages.‎

  3. Shared Business Functions: ‎

    In the same way that many business applications store redundant data, they also tend to implement redundant functionality. Multiple systems may need to check whether a social-security number is valid, whether the address matches the specified postal code or whether a particular item is in stock. It makes business sense to expose these functions as a shared business function that is implemented once and available as a service to other systems.

    A shared business function can address some of the same needs as data replication. For example, we could implement a business function called 'Get Customer Address' that could allow other systems to request the customer's address when it is needed rather than always storing a redundant copy. The decision between these two approaches is driven by a number of criteria, such as the amount of control we have over the systems (calling a shared function is usually more intrusive than loading data into the database) or the rate of change (an address may be needed frequently but change very infrequently).

  4. Service-Oriented Architecture : ‎

Shared business functions are often referred to as services. A service is a well-‎defined function that is universally available and responds to requests from ‎‎"service consumers". Once an enterprise assembles a collection of useful ‎services, managing the services becomes an important function. First of all, ‎applications need some form of service directory, a centralized list of all ‎available services. Second, each service needs to describe its interface in such ‎a way that an application can "negotiate" a communications contract with the ‎service. These two functions, service discovery and negotiation, are the key ‎elements that make up a service oriented architecture.‎

Service-oriented architectures (SOAs) blur the line between integration and ‎distributed applications. A new application can be developed using existing, ‎remote services that may be provided by other applications. Therefore, calling ‎a service may be considered integration between the two applications. On the ‎other hand a service-oriented architecture usually provides tools that make ‎calling an external service almost as simple as calling a local method ‎‎(performance considerations aside). Because all services are available in a ‎consistent manner, SOAs are sometimes referred to as "service bus ‎architectures".‎

  1. Business-to-Business Integration

    So far we have mainly considered the interaction between applications and business functions inside an enterprise. In many cases, business functions may be available from outside suppliers or business partners. For example, the shipping company may provide a service for customers to compute shipping cost or track shipments. Or a business may use an outside provider to compute sales tax rates. Likewise, integration frequently occurs between business partners. A customer may contact a retailer to inquire on the price and the availability of an item. In response, the retailer may ask the supplier for the status of an expected shipment that contains the out-of-stock item.

    Many of the above considerations apply equally to business-to-business integration. However, communicating across the Internet or some other network usually raises new issues related to transport protocols and security. Also, since many business partners may collaborate in an electronic "conversation" standardized data formats are critically important.

    What is of the biggest buzz words in enterprise architecture and integration? ‎ Loose Coupling

    Someone may ask; how could the Loose Coupling help us?

    Okay, let's assume we are building an on-line banking system that allows customers to ‎deposit money into their account from another bank. To perform this function, the ‎front-end Web application has to be integrated with the back-end financial system ‎that manages fund transfers. The easiest way to connect the two systems is ‎through the TCP/IP protocol. Every self-respecting operating system or ‎programming library created in the last 15 years is certain to include a TCP/IP stack. ‎TCP/IP is the ubiquitous communications protocol that transports data between ‎the millions of computers connected to the Internet and local networks. Why not ‎use the most ubiquitous of all network protocols to communicate between two ‎applications? Let's assume that the remote function that deposits money into a ‎person's account takes only the person's name and the Dollar amount as ‎arguments. The following few lines of code then suffice to call such a function over ‎TCP/IP.

    byte[] amount = BitConverter.GetBytes(258);

    But we didn't keep in mind in this example the following:

  • Platform Technology ‎ the internal representations of numbers and objects
  • Location all components have to be available at the same time
  • Data Format the list of parameters and their types must match
Because of the platform technology are not the same, the problem of Big-Endian and Little- Endian may be occurred
Have you figured the problem?
What about the location, Data format?
So, the TCP is not the right option in our example, in order to make the solution more loosely coupled we can try to remove ‎these dependencies one by one. We should use a standard data format ‎that is self-describing and platform independent, such as XML. Instead of ‎sending information directly to a specific machine we should send it to an ‎addressable "channel". A channel is a logical address that both sender and ‎receiver can agree on the same channel without being aware of each ‎other's identity. Using channels resolves the location- dependency, but still ‎requires all components to be available at the same time if the channel is ‎implemented using a connection-oriented protocol... In order to remove ‎this temporal dependency we can enhance the channel to queue up sent ‎requests until the network and the receiving system are ready. To support ‎queuing of requests inside the channel, we need wrap data into self-‎contained messages so that the channel knows how much data to buffer ‎and deliver at any one time. Lastly, the two systems still depend on a ‎common data format. We can remove this dependency by allowing for ‎data format transformations inside the channel. If the format of one ‎system changes we only have to change the transformer and not the other ‎participating systems. This is particularly useful if many applications send ‎data to the same channel.

Okay, I guess I had answered your question about the Loose Coupling. in the next article I will exaplin the Application Integration Options.
So Be there.

BizTalk 2009 and ESB 2.0 Now Available for Public Beta

Some of the key enhancements to BizTalk 2009 is support for the latest Microsoft offerings (including Windows 2008, Visual Studios 2008 SP1, .Net 3.5 SP1, SQL 2008, and TFS), support for RFID Mobile, and new LOB Adapters (including a new SQL Adapter).

A new release of the Enterprise Service Bus Guidance is available on CodePlex (http://www.codeplex.com/esb).

Wow.. seem that we are going to enojoy biztalking :D

New BizTalk Business Activity Monitoring (BAM) Guidance

BizTalk Server Team Blog post this guidance, If you are looking into implementing a BAM solution using the BizTalk Server infrastructure I strongly recommend reading this paper and testing the sample code provided with it. The online version is available on MSDN, however for the full Word version and sample code you may want to download it.

Do you want high throughput?

The combination of BizTalk Server 2006 and SQL Server 2005 running on a Windows Server 2003 platform offers the industry’s best mission-critical functionality and availability, and achieves very high levels of performance. This document presents a customer that achieved unprecedented performance, scalability, flexibility and cost-effectiveness for a business-critical application within a large financial institution.

download from here 

BizTalk Server 2009 Beta Availability and beyond

The first public beta release of BizTalk Server 2009 is now available for download at http://connect.microsoft.com.
Some of the major themes of this version are the enhanced developer productivity and the significantly improved developer team experience through the integration with Microsoft’s application life-cycle management (ALM) solution: Visual Studio Team System and Team Foundation Server.
For more details, please refer to the press release.

Check this article  by David Worthington describes the main facntinality of Biztalk 2009

Due to Muslims around Gaza

At least 632 Palestinians, including women and children, have been killed in an Israeli aerial bombardment on Hamas security installations.
Emergency services said that at least 2845 people had been wounded.
we call on imams, speakers, journalists, poets, writers, and literary authors to enrich the religious, cultural, and media pulpits with resistance literature and to send out a message of hope that the more ferocious events get, the more hope we lay on Allah who promised to exterminate the tyrants and grant victory to the believers and Who made it a duty on Him in His grandeur saying in the Qur'an: {وَكَانَ حَقّاً عَلَيْنَا نَصْرُ الْمُؤْمِنِينَ} Transliteration: Wa Kāna Ĥaqqāan `Alaynā Naşru Al-Mu'uminīna[and it was due (to them) upon Us to help the believers.] [Ar-Rum 30:47].
:: This Is a Message for Humankind ::
:: Did you know ? ::
:: The situation of the Muslims in Palestine ::
:: What can we do about the slaughter of Muslims in Palestine and around the world? ::
:: For more news ::

Microsoft BizTalk Server Performance Optimization Guide

Microsoft published  this guide to provide in depth information for optimizing the performance of a BizTalk Server solution. Full end-to-end performance testing is frequently overlooked during enterprise application deployment. Knowing that Microsoft has built a scalable messaging infrastructure, many organizations that use BizTalk Server spend little or no time conducting performance testing of their own applications. BizTalk Server applications consist of many parts, which may include custom-built components as well as those provided by Microsoft. It is impossible for Microsoft to performance test every possible combination of these components. Therefore, fully and properly conducting a performance test of your application is a critical step of any deployment. The purpose of this guide is to consolidate and provide prescriptive guidance on the best practices and techniques that should be followed to optimize BizTalk Server performance.
Check this guide and follow the right steps to optimize your solution: