<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7033471499546805836</id><updated>2012-02-25T08:53:44.742-08:00</updated><category term='ESB Toolkit'/><category term='Introduction'/><category term='State'/><category term='2009'/><category term='Designer'/><category term='ESB'/><category term='IT'/><category term='BizTalk'/><category term='UI'/><category term='Import'/><category term='Itineraries'/><category term='Calling'/><category term='not showing up'/><category term='Encryption'/><category term='Management'/><category term='Oracle'/><category term='Skills'/><category term='SOA'/><category term='Engineer'/><category term='XAML'/><category term='Sql'/><category term='Reddy'/><category term='Chamakura'/><category term='Charity'/><category term='Loosely Coupled'/><category term='Software'/><category term='EAI'/><category term='Itinerary'/><category term='AZGiveCamp'/><category term='Video'/><category term='Orchestration'/><category term='BizTalk 2009'/><category term='Preetham'/><category term='Toolkit 2.0'/><category term='Phoenix'/><category term='Service'/><category term='Custom'/><category term='Portal'/><category term='GiveCamp'/><category term='Primary'/><category term='Give'/><category term='Developer'/><category term='BAM'/><category term='Basics'/><category term='Tracking'/><category term='Java'/><category term='C#'/><category term='WBA'/><category term='Enterprise'/><category term='Camp'/><category term='Install'/><category term='Bus'/><category term='HTML'/><category term='Certificate'/><category term='Toolkit'/><category term='WPF'/><category term='Demo'/><category term='.NET'/><category term='Silverlight'/><title type='text'>Preetham Reddy's .NET Blog!!!</title><subtitle type='html'>Hi There,

This is Preetham Reddy. I am an C#.NET programmer and a BizTalk Application developer. I have a Master&amp;#39;s degree in Information Systems from Texas A&amp;amp;M.

I&amp;#39;ve created this blog to share the knowledge I&amp;#39;ve acquired while working with BizTalk.

I hope you enjoy reading my blogs as much as I enjoyed creating it.

I wish you a very happy BizTalking!!

--
Preetham Reddy Chamakura</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.preetham-reddy.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7033471499546805836/posts/default'/><link rel='alternate' type='text/html' href='http://www.preetham-reddy.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Preetham Reddy</name><uri>http://www.blogger.com/profile/02395891721351433842</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_jWVijk7a_t4/SzaNPZloSZI/AAAAAAAAABk/oBEwiXW2N10/S220/preetham_Crop.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>12</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7033471499546805836.post-2048702466007746948</id><published>2010-04-28T18:36:00.000-07:00</published><updated>2010-04-28T18:55:37.269-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Phoenix'/><category scheme='http://www.blogger.com/atom/ns#' term='GiveCamp'/><category scheme='http://www.blogger.com/atom/ns#' term='Charity'/><category scheme='http://www.blogger.com/atom/ns#' term='IT'/><category scheme='http://www.blogger.com/atom/ns#' term='Camp'/><category scheme='http://www.blogger.com/atom/ns#' term='Give'/><category scheme='http://www.blogger.com/atom/ns#' term='AZGiveCamp'/><title type='text'>AZ Givecamp for Non-Profit Organizations</title><content type='html'>Hello Everyone,&lt;br /&gt;&lt;br /&gt;AZGiveCamp is organizing an event for developing Software Applications for Non-Profit/Charity Organizations on the weekend of May 21st 2010. It's a event where group of software engineers team up and develop applications for Non-Profit companies that they desperately need to improve efficiencies, streamline their business processes so that they could reach out to their users/customers and serve their communities better.&lt;br /&gt;&lt;br /&gt;The kind of applications buing built range from getting a simple website up and running, improving the existing system architecture to make it more effiecient, make the website look more prettier than the existing one, develop an application from scratch to stream line their business process etc.,&lt;br /&gt;&lt;br /&gt;There are wide variety of companies that have already registered and the kind of applications they are looking for range from simple to fairly complex. So, depending upon your skillset and the amount of time you are willing to spend, you can choose what project you are interested to work on.&lt;br /&gt;&lt;br /&gt;The organizers are looking for Dev Leads, PM's, BA's and Software Developers. If you are interested or know of anyone who can contribute to this camp, please signup on the AZGiveCamp website at &lt;a href="http://azgivecamp.org/Home.aspx"&gt;http://azgivecamp.org/Home.aspx&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Thank you and please pass on if you know of anyone who is interested.&lt;br /&gt;&lt;br /&gt;--&lt;br /&gt;Preetham Reddy&lt;br /&gt;&lt;a href="http://www.preetham-reddy.com/"&gt;http://www.preetham-reddy.com/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7033471499546805836-2048702466007746948?l=www.preetham-reddy.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://azgivecamp.org/Home.aspx' title='AZ Givecamp for Non-Profit Organizations'/><link rel='replies' type='application/atom+xml' href='http://www.preetham-reddy.com/feeds/2048702466007746948/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7033471499546805836&amp;postID=2048702466007746948' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7033471499546805836/posts/default/2048702466007746948'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7033471499546805836/posts/default/2048702466007746948'/><link rel='alternate' type='text/html' href='http://www.preetham-reddy.com/2010/04/az-givecamp-for-non-profit.html' title='AZ Givecamp for Non-Profit Organizations'/><author><name>Preetham Reddy</name><uri>http://www.blogger.com/profile/02395891721351433842</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_jWVijk7a_t4/SzaNPZloSZI/AAAAAAAAABk/oBEwiXW2N10/S220/preetham_Crop.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7033471499546805836.post-8915895337701623248</id><published>2010-04-19T12:00:00.001-07:00</published><updated>2010-04-28T22:54:27.264-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><category scheme='http://www.blogger.com/atom/ns#' term='Sql'/><category scheme='http://www.blogger.com/atom/ns#' term='Skills'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><category scheme='http://www.blogger.com/atom/ns#' term='Engineer'/><category scheme='http://www.blogger.com/atom/ns#' term='Developer'/><title type='text'>Must have skills for a Software Engineer!!!</title><content type='html'>&lt;span xmlns=""&gt; &lt;p&gt;Ever wondered what does it take to be a successful and highly productive software developer??? Well, The success lies in not just being good at what you do but having a fair knowledge across wide spectrum of technologies and constantly learning new stuff and applying those things in your day to day life to improve the efficiency of applications you write.&lt;/p&gt;&lt;p&gt;Somebody once said - "A programmer who hasn't been exposed to all four of the imperative, functional, objective, and logical programming styles has one or more conceptual blindspots. It's like knowing how to boil but not fry". &lt;/p&gt;&lt;p&gt;He was spot on. There are lot of technologies/methodologies involved in the design and development of Application Software. Quite frankly, each one of those software development methodologies/technologies/languages are designed to solve a problem situation in a better way than other ones. There is no one size fits all. It all depends on the problem at hand, developer expertise, budget and most importantly, the available time frame to deliver the project.&lt;/p&gt;&lt;p&gt;Here's what I think are the must have skills : &lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Expertise in Object Oriented Programming languages&lt;/strong&gt; like C#, Java, VB.NET along with their associated frameworks like Asp.net/ J2EE.&lt;/li&gt;&lt;li&gt;Legacy languages like C, C++; C++ is mother of all modern day programming languages like C# and Java, which inturn was derived from C. If you are new to software development, I would suggest you to start learning languages in the following order, provided you have time. C --&gt; C++ --&gt; C#/Java. The reason being C# and Java borrow lot of concepts from C++. Thorough understanding of these legacy languages will only strengthen your understanding of C#/Java and you can borrow most of the coding style etc/.,&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Data Modeling Languages&lt;/strong&gt; like UML and their associated tools like Rational Rose or Microsoft Visio. Before you get down to writing code, you have to design the application and put it down on paper using various models for pictorial representation of your application architecture. Unified Modeling Language is a must have skill.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Relational Databases&lt;/strong&gt; : Sql Server and Oracle are the most widely used databases for Enterprise Applications. You've got to know how to Design/Architect database tables, the relation between them, apply constraints and also to normalize them to maintain integrity and reduce redundancy.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Programming T-SQL/PL-SQL&lt;/strong&gt; : Database is an integral part of majority of the applications. To be a good developer/architect, you not only need to have a very good understanding of relational databases but also how to program them. You've got to know how to perform various operations, write complex queries to process data, apply business rules etc., And for that, you've got to master the art of Sql Stored Procedures.,&lt;/li&gt;&lt;li&gt;&lt;strong&gt;ORM Technologies&lt;/strong&gt; : Object Relational Mapping technologies like NHibernate, Entity Framework, Linq To SQL or LLBNGen Pro helps you in developing your database intensive applications rapidly by abstractiong out most of the plumbing code to access your database objects. Each one of the technologies mentioned above have their pro's and con's. Some of them are open source and other's are licensed. Depending on your need and the kind of features you are looking for, one of them can fit your needs. My favourite in NHibernate.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Third Party Frameworks&lt;/strong&gt; : Depending upon the complexity of your application, you might need to leverage some of the benifits of third party frameworks to help your build quality applications. One of my favourite is Spring.NET which a port of Java's Spring Framework. Spring.NET is lot of things for lot of people. It has lot of components that aim to improve the speed and efficiency of your applications. My favourite feature is Dependency Injection (Inversion of Control). There are other IOC frameworks too. Once you get the hand of them, you'll never go back to your normal style.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;CSS&lt;/strong&gt; : Cascading Sytle Sheets for the look and feel of your website.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;JavaScript Libraries&lt;/strong&gt; : JQuery, Scriptalacious, Prototype and YUI are the most popular ones. My favourite ones are YUI (Yahoo User Interface) and jQuery.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Ajile Development Methodologies&lt;/strong&gt; : Scrum / Kanban using TDD ( Test Driven Development).&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Mobile Phone&lt;/strong&gt; : Let's face it. Mobile PDA's are the future of internet. You don't want to be left behind in area. With Monotouch, you could develop iPhone/iPad applications using C#.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;EAI&lt;/strong&gt; : Enterprise Application Integration Tools like BizTalk / Business Objects. A good software engineer knows how to leverage best tools in the market to integrate applications developed in different platforms. Although you can make use of MSMQ and Windows Work Flows to perform most of the tasks needed for application integration, using tools like BizTalk provide you with support for Load Balancing, Applying Transformations, Dynamic Routing that are required for large scale applications.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;RIA&lt;/strong&gt; : Rich Internet Applications are the order of the day. If your web-applications are target at consumers, you've got to master atleast one of the following technologies : Silverlight/WPF/Flash.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Azure/oData/Oslo&lt;/strong&gt; anyone????&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Although the above list looks very long, in-reality its not. Most good developers have a fair knowledge of most of the technologies mentioned above and I don't see any reason why you should not!!!&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7033471499546805836-8915895337701623248?l=www.preetham-reddy.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.preetham-reddy.com/feeds/8915895337701623248/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7033471499546805836&amp;postID=8915895337701623248' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7033471499546805836/posts/default/8915895337701623248'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7033471499546805836/posts/default/8915895337701623248'/><link rel='alternate' type='text/html' href='http://www.preetham-reddy.com/2010/04/must-have-skills-for-software-engineer.html' title='Must have skills for a Software Engineer!!!'/><author><name>Preetham Reddy</name><uri>http://www.blogger.com/profile/02395891721351433842</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_jWVijk7a_t4/SzaNPZloSZI/AAAAAAAAABk/oBEwiXW2N10/S220/preetham_Crop.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7033471499546805836.post-3363516151756119273</id><published>2009-08-22T12:03:00.000-07:00</published><updated>2009-08-23T21:32:31.533-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><category scheme='http://www.blogger.com/atom/ns#' term='Bus'/><category scheme='http://www.blogger.com/atom/ns#' term='SOA'/><category scheme='http://www.blogger.com/atom/ns#' term='ESB Toolkit'/><category scheme='http://www.blogger.com/atom/ns#' term='Service'/><category scheme='http://www.blogger.com/atom/ns#' term='Loosely Coupled'/><category scheme='http://www.blogger.com/atom/ns#' term='Toolkit'/><category scheme='http://www.blogger.com/atom/ns#' term='Enterprise'/><category scheme='http://www.blogger.com/atom/ns#' term='EAI'/><category scheme='http://www.blogger.com/atom/ns#' term='ESB'/><title type='text'>Case for ESB Toolkit 2.0 : Why do we need it?</title><content type='html'>It's been over 6 months now, since I've started digging into ESB Guidance 2.0 CTP version ( and later ESB Toolkit) and working on an '&lt;strong&gt;Enterprise Service Bus' &lt;/strong&gt;solution for an Insurance company that would like to have it's systems integrate seamlessly with various &lt;strong&gt;'Service Providers' &lt;/strong&gt;on the fly, in a very secure, dynamic, reliable way and yet being loosely coupled.&lt;br /&gt;&lt;br /&gt;The resulting system should give the end users, an ablilty to configure various applications to consume services offered by a large array of &lt;strong&gt;'Service Providers'. &lt;/strong&gt;They should also be able to track the messages that go in and out of the hub, do exception management, fault tracking and generate various reports to make business decisions on the fly, all from a web interface. We've been going back and forth, trying out various technologies to find out the best way to implement such a system. After an exhaustive and a very extensive analysis of various ESB products, we finally settled on '&lt;strong&gt;ESB Toolkit 2.0' and 'BizTalk Server 2009'. &lt;/strong&gt;The application that we developed using &lt;strong&gt;ESB Toolkit&lt;/strong&gt; looks very elegant and provides solution for every single bit of problem we've set out to solve.&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;'ESB Toolkit' &lt;/strong&gt;is Microsoft's flavour of '&lt;strong&gt;Enterprise Service Bus' &lt;/strong&gt;implemented on BizTalk Server 2009 platform. There are plethora of third party vendors who came up with ESB products to help enterprises design and implement their EAI projects. With ESB Tookit 2.0, Microsoft plans to capture a pie of that market. Before we discuss 'ESB Toolkit', we've got to first understand what is &lt;strong&gt;'Enterprise Service Bus'&lt;/strong&gt;? What role does it play in integrating applications? What solutions does it provide that traditional EAI integrating solutions doesn't?&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;'Enterprise Service Bus'&lt;/strong&gt; is an architectural pattern that enables the development of 'Service Oriented Architectural' applications. That begs the question, What is &lt;strong&gt;'Service Oriented Architecture'&lt;/strong&gt;? While there is lot of depth to the concept, SOA at a very highlevel could be described as an architectural pattern that will allow you to package functionality in your software as a set of interoperable services in a loosely coupled way. It adds an additional layer to your application that consists of set of services that are provided by it. These services are exposed to consumers and they can use one or more of these services to implement business logic in their programs. For any application to fully implement SOA, it has to support these features :&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Services should be loosely coupled with Operating Systems. Consumers had Providers should not be depended on each other or the operation system they are developed on to communicate with each other. &lt;/li&gt;&lt;li&gt;Services should be flexible. They need to be accessible through variety of transport protocols. &lt;/li&gt;&lt;li&gt;Services should be agile. Any change in business requirements should be quickly propagated and deployed without much hassle. &lt;/li&gt;&lt;li&gt;Services should be re-usable. They should be easily composed into new business processes.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;It is possible to design solutions that consume these services whenever and in whatever way, without the use of an ESB. However, such an implementation has many drawbacks, which would be discussed later in the blog. &lt;strong&gt;'Enterprise Service Bus'&lt;/strong&gt; is an additional layer(middle-tier infrastructure) added to applications that would help their clients to consume their services in a structured way by providing a wide array of tools. ESB is just one building block of SOA applications. Since ESB assists in the development of SOA applications, it has to align itself to the core principles of SOA namely loose coupling, flexibilty, re-usablilty and agility etc., apart from providing the following features. &lt;/p&gt;&lt;ul&gt;&lt;li&gt;Dynamic Resolution of endpoints for Routing. &lt;/li&gt;&lt;li&gt;Content based Routing. &lt;/li&gt;&lt;li&gt;Routing based on Rules Engine. ( In case of BizTalk, it's BRE). &lt;/li&gt;&lt;li&gt;Message Transformation using Maps ( In case of BizTalk, it's BizTalk Mapper). &lt;/li&gt;&lt;li&gt;Message Enrichment. &lt;/li&gt;&lt;li&gt;Service Aggregation. &lt;/li&gt;&lt;li&gt;Support for multiple transport protocols ( Http, Ftp, MSMQ, FILE etc.,) &lt;/li&gt;&lt;li&gt;Business Process Orchestration. &lt;/li&gt;&lt;li&gt;Business Activity Monitoring. &lt;/li&gt;&lt;li&gt;Message Logging. &lt;/li&gt;&lt;li&gt;Reports. &lt;/li&gt;&lt;li&gt;Alerts. &lt;/li&gt;&lt;li&gt;Exception Managment. &lt;/li&gt;&lt;li&gt;Support for Service Registries eg UDDI. &lt;/li&gt;&lt;li&gt;Itineraries(Mediation Policies), which consists of instructions to ESB regarding what components to use in the underlying engine, to process the message. &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;What does BizTalk provide 'out of the box', what it lacks and how does the ESB Tookit fills the gap???&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;BizTalk is primarily designed to be an 'Enterprise Application Integration' (EAI) tool. It's primary function is to integrate various applications (Service Providers and Service Consumers) using a 'Hub and Spoke' model. BizTalk acts as a hub which accepts an inbound message and depending upon the need, performs various operations like transformation, enrichment, routing etc., before forwarding it to appropriate subscribers. If it's a two way request, it waits for the subscriber to return the message, perform another set of outbound operations before sending it back to the consumer application. It achieves this functionality by providing a series of &lt;strong&gt;'Receive Ports', 'Receive Locations' and 'Send Ports'&lt;/strong&gt;. To be able to consume a service, the consumer application should have an endpoint where it can send the request. For this, a BizTalk developer typically provides a &lt;strong&gt;'Receive Port' and a 'Receive Location'&lt;/strong&gt; which consists of the required endpoint. This receive location will have various &lt;strong&gt;'Pipelines', 'Maps'&lt;/strong&gt; and other BizTalk components associated with it to perform the necessary inbound operations like &lt;strong&gt;'Transformation', 'Decoding', 'Enrichment'&lt;/strong&gt; etc., Once these operations are performed, it will be forwarded to the subscribing send ports. It's the job of the send port to subscribe to the messages arriving on the receive ports and based on the context, forward it to appropriate service provider. Send port will have all the necessary details like URL, transport protocol etc., It has it's own set of pipelines, maps associated with it to perform the necessary operations before sending the request and after getting the response. When it finally get the response, it forwards it back to the same receive port through which the response message is sent to the caller.&lt;br /&gt;&lt;br /&gt;The problem with this approach is, it gets overwhelming after a certain point. BizTalk should know about every single message that it would process. This means that the corresponding BizTalk application should have schemas for all the inbound and all the outbound messages. It receive ports should be configured to pickup specific messages from exactly one location. Send ports should be configured to specific locations. All these configurations should be done during the design time. All the operations that needs to be performed on inbound and outbound messages should be specified during design time too. If the application ever gets too large and complex, it would be very difficult to sustain this kind of architecture. The BizTalk Server would be flooded with large number of 'Receive Ports', 'Receive Locations', 'Send Ports' that gets very difficult to manage and maintain. This architecture is very tightly coupled and neither flexible nor agile.&lt;br /&gt;&lt;br /&gt;While there are lot of ways to provide more flexibility, agilty and interoperabililty to BizTalk applications, it requires lot of work on the part of programmer and the solution isn't normally elegant.&lt;br /&gt;&lt;br /&gt;This is where 'ESB Toolkit' comes into the picture and fills all the required gaps!!!&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;ESB Toolkit 2.0 using BizTalk Server 2009 :&lt;/strong&gt;&lt;/p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;p&gt;&lt;br /&gt;ESB Tookit extends the functionality of '&lt;strong&gt;BizTalk Server 2009' &lt;/strong&gt;by providing wide range of capabilities to it that didn't exist before. It provides a bunch of tools to developers that they could leverage to build robust, connected, service-oriented applications that incorporate itinerary-based service invocation for lightweight service composition and dynamic resolution of endpoints and maps. They would also help in Web service and WS-* integration, fault management, exception management, business activity monitoring and reporting.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;strong&gt;'ESB Toolkit' cannot exist without the BizTalk Server. It is built on top of BizTalk and makes use of various components like 'Pipelines', 'Maps', 'Orchestrations' that come along with BizTalk.&lt;/strong&gt; &lt;/p&gt;&lt;p&gt;ESB Toolkit solves the above mentioned problem of schemas by releasing the need to have schemas for any of it's mediation components like on-ramp, off-ramp, generic routing and generic transformation agents. The ESB solution should be generic, re-usable, flexible and agile. For that to happen, the various components provided by ESB Toolkit should not be tied down to schemas. &lt;/p&gt;&lt;p&gt;For example, a typical BizTalk solution for consuming a webservice would be something like this. A schema would be exposed as a webservice by creating a virtual directory in IIS and creating the necessary receive ports and receive locations. Then, a send port is created and configured to subscribe to that receive location and send a WCF request to the webservice. For every webservice that needs to be consumed, you've got to create seperate receive location and a send port. Now, if the WSDL of any of the already configured webservices should change, then you've got to open the VS, import the new WSDL, compile the project, deploy it and restart the host instance. This is time consuming and ridiculous way of implementing SOA solution.&lt;/p&gt;&lt;p&gt;If the need to have an XML for the incoming and outgoing messages is removed, then it makes life a lot easier for developers and the resulting solutions would look more elegant. With ESB Toolkit, the OnRamp and OffRamp would be binded to generic/dynamic ports which does not have to validate the incomming message against a schema. Since the webservices already do the validation, it doesn't make sense to add another layer of validation in BizTalk. The only requirment is that the messages should be well formed. They should be valid XML documents. This is the pattern followed by all the Itinerary(Mediation) components in ESB Toolkit. They all have inbuilt support for&lt;strong&gt; 'Generic XML'&lt;/strong&gt; so that they don't need to change when webservices change their schema or WSDL.&lt;/p&gt;&lt;p&gt;ESB Toolkit comes with a bunch of webservices which helps in dynamically resolving endpoints, pullout required transformation files (maps) and process mediation policies. It also provides an 'ESB Management Console' Portal which gives various reports on Faults, Exceptions etc.,. It allows business users to have a look at the fault messages, it's context properties and gives them an ability to change the message and resubmit it. The users would also be able to subscribe to alerts, configure registries and finally trace the message as it goes in and out of the BizTalk Server.&lt;/p&gt;&lt;p&gt;Therefore, ESB Toolkit 2.0 is a very welcome addition to BizTalk Server 2009, and it significantly increases the functionality and capabilities than that were previously offered by BizTalk. This also ensures that the BizTalk server is no longer thought of just as an EAI Toolkit but a very important engine in the design and development of SOA applications.&lt;/p&gt;&lt;p&gt;In my &lt;a href="http://www.preetham-reddy.com/2009/08/esb-toolkit-20-architecture.html"&gt;next series of posts &lt;/a&gt;, I am going to dig deeper into the ESB Toolkit Architecture and various components that ship with it and how to leverage those components to develop loosely coupled applications.--&lt;/p&gt;&lt;p&gt;Preetham Reddy Chamakura&lt;/p&gt;&lt;p&gt; &lt;a href="http://www.preetham-reddy.com/"&gt;www.preetham-reddy.com&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7033471499546805836-3363516151756119273?l=www.preetham-reddy.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.preetham-reddy.com/feeds/3363516151756119273/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7033471499546805836&amp;postID=3363516151756119273' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7033471499546805836/posts/default/3363516151756119273'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7033471499546805836/posts/default/3363516151756119273'/><link rel='alternate' type='text/html' href='http://www.preetham-reddy.com/2009/08/case-for-esb-toolkit-20-why-do-we-need.html' title='Case for ESB Toolkit 2.0 : Why do we need it?'/><author><name>Preetham Reddy</name><uri>http://www.blogger.com/profile/02395891721351433842</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_jWVijk7a_t4/SzaNPZloSZI/AAAAAAAAABk/oBEwiXW2N10/S220/preetham_Crop.jpg'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7033471499546805836.post-2310159185926250391</id><published>2009-08-15T01:02:00.000-07:00</published><updated>2009-08-23T21:02:53.609-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Demo'/><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><category scheme='http://www.blogger.com/atom/ns#' term='Video'/><category scheme='http://www.blogger.com/atom/ns#' term='ESB Toolkit'/><category scheme='http://www.blogger.com/atom/ns#' term='Basics'/><category scheme='http://www.blogger.com/atom/ns#' term='Toolkit'/><category scheme='http://www.blogger.com/atom/ns#' term='Itinerary'/><category scheme='http://www.blogger.com/atom/ns#' term='Itineraries'/><category scheme='http://www.blogger.com/atom/ns#' term='Introduction'/><category scheme='http://www.blogger.com/atom/ns#' term='ESB'/><title type='text'>Introduction to ESB Toolkit 2.0 Itineraries : Video</title><content type='html'>Hello Folks,&lt;br /&gt;&lt;br /&gt;This is my first video of the ESB Toolkit 2.0 video series which explains the basic concepts of an Itinerary. In this video, I create a sample Itinerary that makes use of existing BizTalk components like Maps and Orchestration.&lt;br /&gt;&lt;br /&gt;It takes in an Input Message, Transforms it using a BizTalk Map, then uses the Orchestration Extender to route the message to a WebService. Once it gets the response, it sends it back to the caller.&lt;br /&gt;&lt;br /&gt;In my subsequent videos, I am going to walk you through creating more advanced Orchestrations, Maps etc., and leverage those in an Itinerary. Until then, enjoy this video.&lt;br /&gt;&lt;br /&gt;Here is the link to the video : &lt;a href="http://www.screencast.com/t/oDkhpN7rZM2"&gt;Introduction to ESB Toolkit 2.0 Itineraries&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Btw, Today is the 63rd Independence day of my favourite country in this world, 'India'. Happy Independence day to all the Indian's out there!!!&lt;/b&gt; &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Cheers,&lt;br /&gt;--&lt;br /&gt;Preetham Reddy Chamakura&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.preetham-reddy.com/"&gt;www.preetham-reddy.com&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;PS : Please turn on your volume full throttle... There is some problem with the way my software recorded my voice... I'll rectify it in my following videos!!!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7033471499546805836-2310159185926250391?l=www.preetham-reddy.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.preetham-reddy.com/feeds/2310159185926250391/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7033471499546805836&amp;postID=2310159185926250391' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7033471499546805836/posts/default/2310159185926250391'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7033471499546805836/posts/default/2310159185926250391'/><link rel='alternate' type='text/html' href='http://www.preetham-reddy.com/2009/08/esb-toolkit-20-creating-itinerary.html' title='Introduction to ESB Toolkit 2.0 Itineraries : Video'/><author><name>Preetham Reddy</name><uri>http://www.blogger.com/profile/02395891721351433842</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_jWVijk7a_t4/SzaNPZloSZI/AAAAAAAAABk/oBEwiXW2N10/S220/preetham_Crop.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7033471499546805836.post-8626398334396782918</id><published>2009-08-11T21:46:00.000-07:00</published><updated>2009-08-23T21:13:25.468-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Custom'/><category scheme='http://www.blogger.com/atom/ns#' term='ESB Toolkit'/><category scheme='http://www.blogger.com/atom/ns#' term='Toolkit'/><category scheme='http://www.blogger.com/atom/ns#' term='Itinerary'/><category scheme='http://www.blogger.com/atom/ns#' term='not showing up'/><category scheme='http://www.blogger.com/atom/ns#' term='Orchestration'/><category scheme='http://www.blogger.com/atom/ns#' term='ESB'/><title type='text'>ESB Toolkit : Custom Orchestration not showing in the Itinerary Property Window</title><content type='html'>Ever tried to use a custom 'Orchestration' in your Itinerary for processing your business funtionality only to find out that 'Itinerary Designer' is not showing it in the 'Itinerary Service' properties?? &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Well, there are couple of things you need to do, before you get to that point!!!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;First of all, You need to create a new entry for your 'Orchestration' in the ESB.Config file located at 'C:\Program Files\Microsoft BizTalk ESB Toolkit 2.0\Esb.config'. Open up the configuration file, look for 'itineraryServices' node. Inside this, you've got to add a new entry for an 'ItineraryService' of type Orchestration.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here are the list of attributes for the ItineraryService node :&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;id : It has be a new GUID. Generate a new GUID and assign it.&lt;/li&gt;&lt;li&gt;name : Any name that you want to assign to your Orchestration Service. This is the same name that would be used by the 'Receive Shape' in your Orchestration to subscribe to the messages comming for the Itinerary Service.&lt;/li&gt;&lt;li&gt;type : This is the combination of Orchestration Name and Assembly Name. This information can be found by right clicking on the Orchestration in the BizTalk Admin Console, and click on Properties. It will show a list of properties. Under 'General' tab, you could find the Name and Assembly information. Just copy those two values seperated by a comma.&lt;/li&gt;&lt;li&gt;scope : Since this is an Orchestration service, it's scope should be 'Orchestration'.&lt;/li&gt;&lt;li&gt;state = "None".&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;A typical entry in the ESB.Config file will look like this :&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;itineraryservice id="5" scope="Orchestration" name="TwoWayTransformation" stage="None" type="ESB.MultipleWebServices.Orchestrations.TwoWayRouting, BizTalkArtifacts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f922625124e336c0"&gt;&lt;/itineraryservice&gt;&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;"itineraryService id="5" name="TwoWayTransformation" type="ESB.MultipleWebServices.Orchestrations.TwoWayRouting, XactConnectArtifacts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f922625124e336c0" scope="Orchestration" stage="None"/"&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Once you have this information in the ESB.Config File, it should show up in the Itinerary Service Property Window for the ServiceName property. If it doesn't show, close the Visual Studio and open it up again... It should be able to show up now...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If it still doesn't, like it did for me, then the problem lies else where...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;When you configure SSO using EsbConfigurationTool.exe, are you storing it in a datastore or a file???Change it to look it up from a file.... It will show up!!!! If you have configured it to look in a datastore then any changes made to the configuration file will obviously not show up...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So, Open up the ESBConfigurationTool.exe, click on Configuration node and see what is checked over there.... File Source or SSO Configuration Source???If it is SSO Configuration Source, then click on the UnConfigure Source button in the menu, Select File Source and then click Apply Configuration....&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;From now on, any changes made to the Configuration File will show up!!!!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;That should set the ball rolling, as far as using a custom Orchestration in an Itinerary is concerned!!!&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;--&lt;/div&gt;&lt;div&gt;Preetham Reddy Chamakura&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.preetham-reddy.com/"&gt;http://www.preetham-reddy.com/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7033471499546805836-8626398334396782918?l=www.preetham-reddy.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.preetham-reddy.com/feeds/8626398334396782918/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7033471499546805836&amp;postID=8626398334396782918' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7033471499546805836/posts/default/8626398334396782918'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7033471499546805836/posts/default/8626398334396782918'/><link rel='alternate' type='text/html' href='http://www.preetham-reddy.com/2009/08/custom-orchestration-not-showing-in.html' title='ESB Toolkit : Custom Orchestration not showing in the Itinerary Property Window'/><author><name>Preetham Reddy</name><uri>http://www.blogger.com/profile/03216343141337613601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_7vRiSlaBfbY/SzaNnlH7AKI/AAAAAAAACH0/zpAKDA9zle8/S220/preetham_Crop.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7033471499546805836.post-8225797011278028811</id><published>2009-08-11T18:51:00.000-07:00</published><updated>2009-08-23T21:07:25.210-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BAM'/><category scheme='http://www.blogger.com/atom/ns#' term='Import'/><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><category scheme='http://www.blogger.com/atom/ns#' term='2009'/><category scheme='http://www.blogger.com/atom/ns#' term='Tracking'/><category scheme='http://www.blogger.com/atom/ns#' term='Primary'/><category scheme='http://www.blogger.com/atom/ns#' term='ESB Toolkit'/><category scheme='http://www.blogger.com/atom/ns#' term='Toolkit'/><category scheme='http://www.blogger.com/atom/ns#' term='Itinerary'/><category scheme='http://www.blogger.com/atom/ns#' term='State'/><category scheme='http://www.blogger.com/atom/ns#' term='ESB'/><title type='text'>ESB Toolkit : Tracking an Itinerary in the BAM Database</title><content type='html'>With version 2.0, BizTalk ESB Toolkit ships with a cool feature that lets you track the trajectory of various Itinerary Services, as they traverse through the BizTalk Engine. Ofcourse, It doesn't happen automatically. You've got to make it happen... &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Every Itinerary Service has a special property called 'Tracking Enabled' which you've got to set it to 'True' during the design phase. This sets the stage for tracking an Itinerary Service. Note that, you've got to set this property for every single service in an Itinerary. Only those services whose 'Tracking Enabled' property is set to true will show up in the database. If you miss or forget for any of the services, then they won't show up....&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_jWVijk7a_t4/SoInzhz6wkI/AAAAAAAAAA4/jOCru-9ui1U/s1600-h/Untitled.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5368897471981994562" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 320px; CURSOR: hand; HEIGHT: 110px; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_jWVijk7a_t4/SoInzhz6wkI/AAAAAAAAAA4/jOCru-9ui1U/s320/Untitled.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;All said and done.. So where does it show up??? When you install BAM Components during BizTalk Installation, they create a series of tables in the default SQL Server. One of them is the BAM Primary Import Database... Pull the records from the table &lt;b&gt;bam_ItineraryServiceActivity_Completed &lt;/b&gt;and you should see all the Itinerary Services that are exectued successfully...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This table has lot of columns, but the one's that we are interested in are ItineraryBeginTime, ItineraryEndTime, ItineraryisRequestResponse, ItineraryState, ESBServiceName.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ItinearyBeginTime and ItineraryEndTime will track the point at which Itinerary is started and ended. ItineraryEndTime is null for all the services except the last one. That is the point at which Itinerary signs off. ItineraryisRequestResponse indicates whether it's a one way or a two way Itinerary. ItinearyState indicates whether it is 'Pending' or 'Completed'. It has the value of 'Pending' for all the Itinerary Services except the last one, which has a value of 'Completed'. This indicates that our Itinerary is successful and it's performing the way it's suppossed to be. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you don't take proper care, when creating custom Itinerary Services using 'Orchestration' or 'Messaging', some of them might just return the values back to the On-Ramp without advancing the Itinerary. In those cases, the next Itinerary Steps wouldn't be executed, as a result of which, the Itinerary State remains 'Pending'. This is a good way to trouble shoot your itinerary services!!!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;--&lt;/div&gt;&lt;div&gt;Preetham Reddy Chamakura&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.preetham-reddy.com/"&gt;www.preetham-reddy.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7033471499546805836-8225797011278028811?l=www.preetham-reddy.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.preetham-reddy.com/feeds/8225797011278028811/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7033471499546805836&amp;postID=8225797011278028811' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7033471499546805836/posts/default/8225797011278028811'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7033471499546805836/posts/default/8225797011278028811'/><link rel='alternate' type='text/html' href='http://www.preetham-reddy.com/2009/08/tracking-itinerary-in-bam-database.html' title='ESB Toolkit : Tracking an Itinerary in the BAM Database'/><author><name>Preetham Reddy</name><uri>http://www.blogger.com/profile/03216343141337613601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_7vRiSlaBfbY/SzaNnlH7AKI/AAAAAAAACH0/zpAKDA9zle8/S220/preetham_Crop.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_jWVijk7a_t4/SoInzhz6wkI/AAAAAAAAAA4/jOCru-9ui1U/s72-c/Untitled.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7033471499546805836.post-7126768489561616664</id><published>2009-08-10T23:09:00.000-07:00</published><updated>2009-08-23T21:09:34.430-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Encryption'/><category scheme='http://www.blogger.com/atom/ns#' term='ESB Toolkit'/><category scheme='http://www.blogger.com/atom/ns#' term='Designer'/><category scheme='http://www.blogger.com/atom/ns#' term='Toolkit'/><category scheme='http://www.blogger.com/atom/ns#' term='Itinerary'/><category scheme='http://www.blogger.com/atom/ns#' term='Certificate'/><category scheme='http://www.blogger.com/atom/ns#' term='ESB'/><title type='text'>ESB Toolkit : Removing Encryption Certificates in the Itinerary Designer</title><content type='html'>Microsoft has shipped a new Itinerary Designer with ESB Toolkit 2.0 to assist the developers in creating the Itineraries visually... Creating Itineraries in ESB Guidance 1.0 was a real pain.... You would have to create that XML manually or using a .NET library and there was very little validation support.. Itinerary Designer in Version 2.0 comes with lot of cool features that not only simplifies the tasks but also has features for security and validation...&lt;br /&gt;&lt;br /&gt;Every time you export the data either to an Itinerary store or to a file location on your local drive, the designer validates the XML and makes sure it conforms to the Itinerary Schema. It also has a way to protect the sensitive information in the Itineraries using X.509 Ceritificates.&lt;br /&gt;&lt;br /&gt;While these security features are a welcome addition, sometimes it gets annoying during the development time. Most programmers, myself included, would want to concentrate on the task on hand rather than concentrate on trivial security features that doesn't really matter at the development time. So, If you are like me, and would like to disable Encryption while developing your Itineraries, then you've got plenty of options!!!&lt;br /&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;In the Registry Editor, navigate to the subkey HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\BizTalk ESB Toolkit\2.0\Designer, and then set the RequireX509Certificate property value to false.&lt;/li&gt;&lt;li&gt;If you installed the BizTalk ESB Toolkit on an operating system that has 64-bit support, the subkey is HKEY_LOCAL_MACHINE\SOFTWARE\SysWOW64\Microsoft\BizTalk ESB Toolkit\2.0\Designer.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;While, this is a recommended way to disable encryption certificates, I am not a great fan of interfering with System Registries. The way I've disabled in my system is by commenting out the lines in the Itinerary Configuration File which insist on throwing errors and warning for having an Invalid Certificate. Open up the file at &lt;b&gt;C:\Program Files\Microsoft BizTalk ESB Toolkit 2.0\Tools\Itinerary Designer\ruleset.config &lt;/b&gt;and look for a property node that has a value of 'EncryptionCertificate' for it's 'name' attribute and comment out those following lines.&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;property name="EncryptionCertificate"&gt;&lt;/property&gt;&lt;/div&gt;&lt;div&gt;&lt;!--&lt;validator type="Microsoft.Practices.Modeling.Validation.X509CertificateContainerValidator,Microsoft.Practices.Modeling.Validation"&gt;&lt;div&gt;messageTemplate="A X509 Certificate is required in the model property '{0}' to encrypt any sensitive property in the designer."  name="EncryptingCertificate validator"/&gt;--&gt;&lt;/div&gt;&lt;div&gt;&lt;!-- Warning message when not enforcing encryption --&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;property name="EncryptionCertificate"&gt;&lt;/property&gt;&lt;/div&gt;&lt;div&gt;&lt;!--&lt;validator type="Microsoft.Practices.Modeling.Validation.X509CertificateContainerValidator, Microsoft.Practices.Modeling.Validation"&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;  messageTemplate="A X509 Certificate is required in the model property '{0}' to encrypt any sensitive property in the designer."&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;      name="EncryptingCertificate validator"/&gt;--&gt;&lt;/div&gt;&lt;div&gt;&lt;!-- Warning message when not enforcing encryption --&gt;&lt;/div&gt;&lt;div&gt;&lt;validator type="Microsoft.Practices.Modeling.Validation.X509CertificateContainerValidator, Microsoft.Practices.Modeling.Validation"&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="WHITE-SPACE: pre"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/validator&gt;&lt;/div&gt;&lt;div&gt;If you'd just like to disable the error, just disable for first 'Validator' node. If you'd like to get rid of warning too, then go ahead and comment out the next 'Validator' node...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;That should keep the designer's mouth shut!!!!&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;--&lt;/div&gt;&lt;div&gt;Preetham Reddy Chamakura&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.preetham-reddy.com/"&gt;www.preetham-reddy.com&lt;/a&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7033471499546805836-7126768489561616664?l=www.preetham-reddy.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.preetham-reddy.com/feeds/7126768489561616664/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7033471499546805836&amp;postID=7126768489561616664' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7033471499546805836/posts/default/7126768489561616664'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7033471499546805836/posts/default/7126768489561616664'/><link rel='alternate' type='text/html' href='http://www.preetham-reddy.com/2009/08/removing-encryption-certificates-in.html' title='ESB Toolkit : Removing Encryption Certificates in the Itinerary Designer'/><author><name>Preetham Reddy</name><uri>http://www.blogger.com/profile/02395891721351433842</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_jWVijk7a_t4/SzaNPZloSZI/AAAAAAAAABk/oBEwiXW2N10/S220/preetham_Crop.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7033471499546805836.post-3383735911767892701</id><published>2009-08-09T21:56:00.000-07:00</published><updated>2009-08-23T21:10:05.310-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><category scheme='http://www.blogger.com/atom/ns#' term='2009'/><category scheme='http://www.blogger.com/atom/ns#' term='ESB Toolkit'/><category scheme='http://www.blogger.com/atom/ns#' term='Calling'/><category scheme='http://www.blogger.com/atom/ns#' term='Itinerary'/><category scheme='http://www.blogger.com/atom/ns#' term='Orchestration'/><category scheme='http://www.blogger.com/atom/ns#' term='ESB'/><title type='text'>ESB Toolkit : Calling an Orchestration from an Itinerary in BizTalk Server 2009</title><content type='html'>In my last post, I gave a brief Introduction to Itineraries in ESB Toolkit 2.0. In this, lets just develop an Itinerary that makes use of an Orchestration to Transform the InBound Message, Route it to a WebService, Transform it back to the client format before sending it back.&lt;br /&gt;&lt;br /&gt;These 'Transformations' and 'Routing' can be done using an Orchestration Extender or a Messaging Extender. We'll save 'Messaging Extender' logic for another post... For now, let's use Orchestration Extender.&lt;br /&gt;&lt;br /&gt;Transformations could be done either using BizTalk Maps or using a .NET code. BizTalk makes it simple and very easy to transform InBound Messages using the logic embedded into it's Maps. It's a very powerful component and you could include pretty powerful logic into it with the help of Functoids. If you have an existing XSLT sheets that already has your transformation logic, you could tell the maps to use those sheets too... But here, I would like to demonstrate calling an external .NET code from an Orchestration. Hence, I am not going to use the BizTalk Maps. I am going to include all the tranformation logic in the .NET code and deploy the assembly in the GAC. Once we add a reference to this DLL in our BizTalk project, our Orchestration will be able to call it to perform the necessary transformations!!!&lt;br /&gt;&lt;br /&gt;Here is the list of things we need to do, to get things done :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Write the .NET Transformation Function, that accepts two parameters : XLANG Message and XSLT FileName. Based on the XSLT FileName provided, it would pull the appropriate file from the database, and transform the XLANG Message and send it back to the caller. We need to assign the 'Strong Name Key' to the assembly and deploy it in the GAC.&lt;/li&gt;&lt;li&gt;Create a New Orchestration, that calls the .NET code to transforms the InBound Message and forward it to the next Itinerary Step.&lt;/li&gt;&lt;li&gt;Create another Orchestration that get the current Itinerary Step and fetches the 'Transport Type' and 'Transport Location' from it's 'Resolver'. Using this information, it routes the message to appropriate endpoint, get the response back and forward it to the next step in the Itinerary.&lt;/li&gt;&lt;li&gt;Build and Deploy the BizTalk project containing these Orchestrations and start the Application using the Admin Console.&lt;/li&gt;&lt;li&gt;Add two new Itinerary Services to the Esb.Config file, give them some meaningful names and point them to the two newly created Orchestrations. This would help us to find them in the 'Itinerary Service' Properties Box.&lt;/li&gt;&lt;li&gt;Create an Itinerary using the designer that makes use of these orchestrations to perform transformation and routing!!!&lt;/li&gt;&lt;li&gt;Use the Itinerary Test Client Application to send the message along with the Itinerary to test!!!&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Simple, Isn't it??? Okay then, Let's get started!!!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7033471499546805836-3383735911767892701?l=www.preetham-reddy.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.preetham-reddy.com/feeds/3383735911767892701/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7033471499546805836&amp;postID=3383735911767892701' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7033471499546805836/posts/default/3383735911767892701'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7033471499546805836/posts/default/3383735911767892701'/><link rel='alternate' type='text/html' href='http://www.preetham-reddy.com/2009/08/calling-orchestration-from-itinerary-in.html' title='ESB Toolkit : Calling an Orchestration from an Itinerary in BizTalk Server 2009'/><author><name>Preetham Reddy</name><uri>http://www.blogger.com/profile/02395891721351433842</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_jWVijk7a_t4/SzaNPZloSZI/AAAAAAAAABk/oBEwiXW2N10/S220/preetham_Crop.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7033471499546805836.post-2038986484527528956</id><published>2009-08-08T20:51:00.000-07:00</published><updated>2009-08-23T21:11:00.468-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><category scheme='http://www.blogger.com/atom/ns#' term='2009'/><category scheme='http://www.blogger.com/atom/ns#' term='ESB Toolkit'/><category scheme='http://www.blogger.com/atom/ns#' term='Toolkit'/><category scheme='http://www.blogger.com/atom/ns#' term='Itinerary'/><category scheme='http://www.blogger.com/atom/ns#' term='ESB'/><title type='text'>Creating Itineraries using BizTalk Server 2009 ESB Toolkit 2.0</title><content type='html'>In this Blog, I am going to talk about using Itineraries in BizTalk Server 2009 ESB Toolkit 2.0 to achieve business functionality. Itineraries are relatively new concept to BizTalk server having been introduced with BTS 2006. With BTS 2009, Microsoft took it to new level altogether by introducing new components and a designer itself to create them using Visual Studio 2008. If you have followed the instructions in my previous blog, then Visual Studio will provide you with an Itinerary Designer to allow you to create them visually instead of hardcoding the XML.&lt;br /&gt;&lt;br /&gt;So, What is an Itinerary? Why do we need them? What do they provide that BizTalk doesn't already provide out of the Box???&lt;br /&gt;&lt;br /&gt;Well, An Itinerary is a small snippet of XML string that tracks the trajectory of the 'Message' as it traverses through the BizTalk Engine, and also telling it what components to use once it enters the BizTalk Environment!!! Typically, an Itinerary will have an On-Ramp component(this is where the message enters the BizTalk Message Box), an Off-Ramp(this acts as a send port, subscribing to the message using various filters) and a bunch of Itinerary Services chained together. These services will carry the instructions to process the message, telling it what BizTalk components (Orchestration, Messaging Pipeline, Business Rules Engine) to use to achieve the desired result.&lt;br /&gt;&lt;br /&gt;For example, an Itinerary Service will have plethora of properties associated with it, which you could configure(at runtime) to tell it what BizTalk component to use. You could configure 'Itinerary Service Extender' propery to either 'Orchestration Extender', 'Messaging Extender' or an 'Off-Ramp Extender'. An Orchestration Extender will allow you to call a pre-Existing Orchestration in the BizTalk Engine. A Messaging Extender will allow you to 'Transform' the message using BizTalk maps or 'Route' it to various locations using BizTalk Adapters and 'Trasport Locations'. And an Off-Ramp extender will ofcourse allow you to specify a dynamic send port that subscribes to the message and forward this message to the subscribing send port for further processing.&lt;br /&gt;&lt;br /&gt;Each of these 'Itinerary Services' will have resolvers which actually contain the instructions. An On-Ramp and Off-Ramp will have 'Receive and Send Handlers' that allow you to process the message in the 'Receive' or 'Send' Pipelines respectively.&lt;br /&gt;&lt;br /&gt;I am going to include a series of articles in the following blog posts that would give you a complete idea as to how to make the best use of Itineraries to achieve your business functionality. If time permits, I am also planning to include few videos too...&lt;br /&gt;&lt;br /&gt;So, Why do we need Itineraries at all?&lt;br /&gt;&lt;br /&gt;The reason behind using Itineraries or Enterprise Service Bus(ESB) for that matter, is that it would allow you to build loosely coupled dynamic applications. BizTalk Applications traditionally relied on a &lt;strong&gt;'Centralized Routing Engine'&lt;/strong&gt; that would make the decisions where to 'Route' the message, what 'Transformations' to apply etc., You would manually create Receive Ports, Receive Locations, Send Ports and configure their filters to subscribe to incomming messages. It makes use of various pluggable components like Maps, Pipelines, Orchestrations all of which are developed and configured during design time. Ofcoruse, you could change the configurations during run-time but there is very little flexibility.&lt;br /&gt;&lt;br /&gt;With the help of Itineraries, a whole new functionality is provided to BizTalk that didn't exist before. You could actually attach a 'Routing-Slip' to the incomming message telling the BizTalk Engine what to do. It would contain all the instructions telling what ports to route the message, what maps to call, or even execute a .NET code... The Message itself carries instructions in it's header (XML format), there by allowing the clients/developers to change the instructions dynamically on the fly without ever touching any of the BizTalk components. If you think it's unsafe to give the clients an Itinerary, no problem. Just store the Itinerary in the 'DataStore' and use the 'Business Rules Engine' to pull the appropriate Itinerary and attach it to the message as soon as it enters the BizTalk Engine.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;What does a typical Itinerary look like? Here it is :&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_jWVijk7a_t4/SoO8sgwfHFI/AAAAAAAAABQ/Y9o4hjetNuw/s1600-h/Itinerary.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5369342653649329234" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 320px; CURSOR: hand; HEIGHT: 152px; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_jWVijk7a_t4/SoO8sgwfHFI/AAAAAAAAABQ/Y9o4hjetNuw/s320/Itinerary.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here, I have an On-Ramp that is bounded to a two-way dynamic Receive Port which receives a Message and forwards it to the next step in the Itinerary. Then I've used Orchestration Extender to transform the message. Then comes an Orchestration Extender to route the transformed message to a WebService. The details of the WebService like 'Transport Type', 'Transport Location' are specified using the Resolver 'WebService Details'. Once I get the message back from the WebService, I am another Orchestration Extender to transform the message back to the format that client expects before sending it back to them!!!&lt;br /&gt;&lt;br /&gt;To recap, Itineraries doesn't really rely on the &lt;strong&gt;'Centralized Routing Engine'&lt;/strong&gt; provided out of the box by BizTalk. Instead, the instructions are sent along with the message to help it to route to various endpoints and to leverage existing BizTalk components and expose them in a more re-usable way.&lt;br /&gt;&lt;br /&gt;In my following posts, I am going to give step by step instructions on how to create Itineraries to solve your business problems.&lt;br /&gt;&lt;br /&gt;Until then, Keep BizTalking!!!!&lt;br /&gt;&lt;br /&gt;--&lt;br /&gt;Preetham Reddy Chamakura&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7033471499546805836-2038986484527528956?l=www.preetham-reddy.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.preetham-reddy.com/feeds/2038986484527528956/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7033471499546805836&amp;postID=2038986484527528956' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7033471499546805836/posts/default/2038986484527528956'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7033471499546805836/posts/default/2038986484527528956'/><link rel='alternate' type='text/html' href='http://www.preetham-reddy.com/2009/08/creating-itineraries-using-biztalk.html' title='Creating Itineraries using BizTalk Server 2009 ESB Toolkit 2.0'/><author><name>Preetham Reddy</name><uri>http://www.blogger.com/profile/02395891721351433842</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_jWVijk7a_t4/SzaNPZloSZI/AAAAAAAAABk/oBEwiXW2N10/S220/preetham_Crop.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_jWVijk7a_t4/SoO8sgwfHFI/AAAAAAAAABQ/Y9o4hjetNuw/s72-c/Itinerary.jpg' height='72' width='72'/><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7033471499546805836.post-2703066363138763916</id><published>2009-08-08T17:14:00.000-07:00</published><updated>2009-08-23T21:11:38.837-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Install'/><category scheme='http://www.blogger.com/atom/ns#' term='Management'/><category scheme='http://www.blogger.com/atom/ns#' term='ESB Toolkit'/><category scheme='http://www.blogger.com/atom/ns#' term='Portal'/><category scheme='http://www.blogger.com/atom/ns#' term='Toolkit'/><category scheme='http://www.blogger.com/atom/ns#' term='ESB'/><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk 2009'/><title type='text'>Installing and Configuring ESB Toolkit 2.0 on Windows Server 2008</title><content type='html'>Alright Folks, &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I've been beating around the bush for quite some time now, trying to Install ESB Toolkit 2.0 on Windows Server 2008 (32 bit) , and ran into bunch of problems before I could get everything working. I've also seen lot of questions in the ESB Toolkit blog, regarding the installation of the toolkit and getting the ESB Portal to work etc., So, I've documented all the required steps!!!&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I am going to lay down step by step instructions to Install the ESB Toolkit. If you follow these in the order specified, rest assured, you'll have a perfectly working copy of the Toolkit!!! &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here we go:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;First of all, there are a bunch of pre-requisites you've got to take care of, before you get anywhere close to installing the ESB Toolkit 2.0. Note that these instruction are for installing it on 32bit Windows 2008 server. Intalling on 64 bit server might still work but I am not sure, never tried it before...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Install Microsoft Windows 2008 Server (32bit) operating system. Once you do that, run a Windows Update and Install all the security updates. Make sure you get SP1.&lt;/li&gt;&lt;li&gt;Install .NET framework 3.5 SP1.&lt;/li&gt;&lt;li&gt;Install IIS 7.0 along with IIS 6.0 extensions. ( This is used by the WebServices that come along with ESB Toolkit for processing Itineraries, Exception Management, ESB portal etc.,)&lt;/li&gt;&lt;li&gt;Install Microsoft Sql Server 2008/2005. ( This is where BizTalk stores all the Application data and ESB Toolkit stores data pertaining to BAM, Itineraries, Exception Management etc). Make sure you install Reporting Services and Integration Services.&lt;/li&gt;&lt;li&gt;Install Microsoft BizTalk Server 2009 Enterprise Edition. Make sure you check all the optional features including BAM components. You may not need it now immediately but eventually you will need it. So, unless space is a constraint, just go for it.&lt;/li&gt;&lt;li&gt;Install Visual Studio 2008 SP1. If you are planning to develop applications on this Box, then you've got to install VS 2008 too. After this step, it might screw up some BizTalk extensions. So, put the BizTalk 2009 CD in drive and run a repair. That'll take care of things, if anything got screwed up after installing SP1 for VS 2008.&lt;/li&gt;&lt;li&gt;Install Microsoft Chart Controls for .NET Framework 3.5. (This would be used by ESB Portal)&lt;/li&gt;&lt;li&gt;And now, the most important thing. &lt;b&gt;Install Microsoft Enterprise Library 4.1. This step is missing in the Microsoft Documentation&lt;/b&gt;. As a result of which, I had to uninstall it and get a fresh copy again...&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Before you go ahead, make sure everything is working fine. Open up the BizTalk Administration console and check to see if the snap-in is populating defaut applications etc., fine. Make sure that Visual studio is showing a new template for creating BizTalk Projects. Actually, go ahead annd create a new test project. When I tried it on my system, creating a BizTalk project failed and I got the error messge 'BizTalk Project creation failed' or something like that... At this time, I've run the BizTalk repair... It set everything right... Once we have the pre-requisites up and running fine, get the latest MSI file for the ESB Toolkit from the Microsoft Website and install it.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This would unpack all the required files in to C:\Program Files\ESB Toolkit 2.0\ &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Open up the BizTalk Admin Console, right click on the Applications node and import the C:\Program Files\Microsoft BizTalk ESB Toolkit 2.0\Microsoft.Practices.ESB.CORE.msi file. After this, run the Installer too.&lt;/li&gt;&lt;li&gt;Do the same thing for Microsoft.Practices.ESB.ExceptionHandling.msi file. This time check the "Overwrite resources" when importing the file in the Wizard. Run the Installer too.&lt;/li&gt;&lt;li&gt;Do the same thing for Microsoft.Practices.ESB.JMS.msi file. This time check the "Overwrite resources" when importing the file in the Wizard. Run the Installer too.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Now is the time to run bunch of scripts. But to do this, you've got to set execution policy to 'Unrestricted'. This would give you complete privilages to run the power scripts.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Open up the common prompt or power shell prompt and run the following command.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;set-executionpolicy Unrestricted &lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Extract the ESBSource.zip file to C:\Projects\Microsoft.Practices.ESB\. This would create two directories in it. Source and Keys. Source will have the source code for ESB WebSites, Managment Portal and all the samples that come along with it. The key folder is used to store the strong name keys and this would be blank initially. You need Strong Name Key files to sign the assemblies before you deploy them to Global Assembly Cache (GAC). At this point, generate a strong name key which would be used by all the applications in the source folder. Open up the Visual Studio Command Prompt, navigate to the keys folder and type&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;sn -k Microsoft.Practices.ESB.snk&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;That would create the required strong name key.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now is the time to install the ESB Management Portal.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Go to C:\Projects\Microsoft.Practices.ESB\Source\Samples\Management Portal\Install\Scripts. Double click on Management_Install.cmd. This would install the portal and create all the required virtual directories in the IIS. &lt;/li&gt;&lt;li&gt;Open the IIS, make sure ESB.Portal Virtual directory is created and is pointing to the correct folder. In the right pane, click on authentication and make sure that Windows Authentication is enabled for this folder.&lt;/li&gt;&lt;li&gt;Open the ESB Configuration Tool located at C:\Program Files\Microsfot BizTalk ESB Toolkit 2.0\Bin\ESBConfigurationTool.exe and configure the settings for Exception Management, ESB Core Components and Configuration nodes.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Open the node Exception Management, Select Database, click on Enable Exception Management Database and click on Apply Configuration. Do the samething for ESB Core Components.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Now, click on Configuration and make sure to save the SSO configuration information in the Configuration File instead of datastore. This would store all the information in the Esb.Config file. This would make it easy for the Itinerary Designer to pick up the changes made to configuration file on the fly.&lt;/li&gt;&lt;li&gt;Once you do that, make sure all the users who are planning to use the portal are added to the following groups. BizTalk Isolated Host users, BizTalk Application Users and all the SSO related groups.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;It's time to set the BAM definations. Run the following commands.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Got to the following directory in the command prompt : C:\Program Files\Microsoft BizTalk Server 2009\Tracking.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Run the following comands&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;bm.exe deploy-all -DefinitionFile:"C:\Program Files\Microsoft BizTalk ESB Toolkit 2.0\Bam\Microsoft.BizTalk.ESB.BAM.Itinerary.xml".&lt;/li&gt;&lt;li&gt;bm.exe deploy-all -DefinitionFile:"C:\Program Files\Microsoft BizTalk ESB Toolkit 2.0\Bam\Microsoft.BizTalk.ESB.BAM.Exceptions.xml"&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Now is the time to cure the unhandled exception error that is generated when trying to access the ESB Portal. Go to C:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation and run the following command.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;ServiceModelReg.exe -r -y&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;This should set everything right... I hope I've included every bit of information required to install the ESB Toolkit... I followed the exact same instructions and its working for me. I hope it works for you too...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;And I wish you a &lt;b&gt;Very Happy BizTalking&lt;/b&gt;. If you run into issues, do post a comment, I'll get back to you as soon as I can.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Thanks&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;--&lt;/div&gt;&lt;div&gt;Preetham Reddy Chamakura&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.preetham-reddy.com/"&gt;www.preetham-reddy.com&lt;/a&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7033471499546805836-2703066363138763916?l=www.preetham-reddy.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.preetham-reddy.com/feeds/2703066363138763916/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7033471499546805836&amp;postID=2703066363138763916' title='27 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7033471499546805836/posts/default/2703066363138763916'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7033471499546805836/posts/default/2703066363138763916'/><link rel='alternate' type='text/html' href='http://www.preetham-reddy.com/2009/08/installing-and-configuring-esb-toolkit.html' title='Installing and Configuring ESB Toolkit 2.0 on Windows Server 2008'/><author><name>Preetham Reddy</name><uri>http://www.blogger.com/profile/02395891721351433842</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_jWVijk7a_t4/SzaNPZloSZI/AAAAAAAAABk/oBEwiXW2N10/S220/preetham_Crop.jpg'/></author><thr:total>27</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7033471499546805836.post-21733006685652858</id><published>2009-07-16T22:33:00.000-07:00</published><updated>2009-08-09T23:28:21.948-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WPF'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='XAML'/><category scheme='http://www.blogger.com/atom/ns#' term='Silverlight'/><category scheme='http://www.blogger.com/atom/ns#' term='WBA'/><category scheme='http://www.blogger.com/atom/ns#' term='UI'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML'/><title type='text'>Difference between Silverlight and Windows Presentation Foundation</title><content type='html'>I often hear this question a lot. What is difference between Silverlight and WPF?? Aren't they developed by Microsoft?? Why do they need to have two different technologies for developing application interfaces?? Why can't they just club them into one technology??&lt;br /&gt;&lt;br /&gt;Well, the reason behind separating these two technologies is because they serve two different purposes.. Silverlight is developed with the intention of competing and  eating into Adobe Flash's market. Today, Adobe Flash is undisputed king when it comes to developing rich web interfaces. And with Silverlight, they hope to get a pie of that market..  Knowing Microsoft for 3 decades, I wasn't surprised when they announced Silverlight... They compete with every tom, dick and harry and they are pretty good at that... (until they start messing with Google). &lt;br /&gt;&lt;br /&gt;Silverlight basically allows you to create web applications that have rich user interface. It has large array of tools, which developers can leverage to build cool and visually spell binding interfaces. Whereas, WPF is primarily developed for building Desktop applications.. Incidentally, WPF applications can be hosted on Web Browsers which offers rich graphics features for Web Applications...&lt;br /&gt;&lt;br /&gt;Web Browser Applications (WBA) developed on WPF uses XAML (eXtended Applicatoin Markup Language) to host user interface for browser applications. The Web Server sends the XAML files ( which are stored as discrete files on the server) to the client, which takes the help of .NET 3.5 framework to render the HTML. It's not as complicated as it sounds, because all this logic is hidden from the developer and they only have to make user of rich WPF libraries to develop the application. Everything else is encapsulated... That's the whole purpose of Object Oriented Programming... isn't it???&lt;br /&gt;&lt;br /&gt;Alright folks, that completes my blog. Mail me at &lt;a href="mailto:reddy.preetham@gmail.com"&gt;reddy.preetham@gmail.com&lt;/a&gt; for further queries.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7033471499546805836-21733006685652858?l=www.preetham-reddy.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.preetham-reddy.com/feeds/21733006685652858/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7033471499546805836&amp;postID=21733006685652858' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7033471499546805836/posts/default/21733006685652858'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7033471499546805836/posts/default/21733006685652858'/><link rel='alternate' type='text/html' href='http://www.preetham-reddy.com/2009/07/difference-between-silverlight-and.html' title='Difference between Silverlight and Windows Presentation Foundation'/><author><name>Preetham Reddy</name><uri>http://www.blogger.com/profile/02395891721351433842</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_jWVijk7a_t4/SzaNPZloSZI/AAAAAAAAABk/oBEwiXW2N10/S220/preetham_Crop.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7033471499546805836.post-5982410164818908711</id><published>2009-07-16T22:29:00.001-07:00</published><updated>2010-06-14T17:08:06.463-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Toolkit 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='Chamakura'/><category scheme='http://www.blogger.com/atom/ns#' term='Reddy'/><category scheme='http://www.blogger.com/atom/ns#' term='Preetham'/><category scheme='http://www.blogger.com/atom/ns#' term='ESB'/><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk 2009'/><title type='text'>My info</title><content type='html'>My name is Preetham Reddy. I am a Software Developer working for &lt;strong&gt;US Airways Inc.,&lt;/strong&gt; with a focus on Microsoft Technologies. Over the course of last 5 yrs, I’ve worked with various software companies(Keane, Intuit, etc.,) and developed enterprise level applications using Microsoft Technologies. But nothing ever got me as exiting as working on ESB Toolkit 2.0 on BizTalk Server 2009. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The folks at Microsoft did a great job with their version of '&lt;b&gt;Enterprise Service Bus&lt;/b&gt;' and majority of my posts on this blog are going be on my exploits with it. My primary skill set is developing applications using BizTalk Server 2006 R2/2009, Sharepoint, ASP.NET 2.0/3.5, WCF, WWF, WPF, Silverlight, SQL Server 2000/2005/2008, XML, LINQ, Visual Studio Tools, &lt;strong&gt;NHiberbate, Spring.NET&lt;/strong&gt; and now '&lt;b&gt;ESB Toolkit 2.0&lt;/b&gt;' etc., &lt;div&gt;&lt;br /&gt;I’ve created this blog with the intention of sharing all the knowledge I’ve accumulated over the years so that it easy for anyone to have access to it. My hobby is to share my knowledge, so I've decided that the best way to do it is by posting articles, videos and walk through tutorials of all the interesting stuff that I find while working on BizTalk Server, C#, Sql Server, QlikView etc.,&lt;br /&gt;&lt;br /&gt;I use this site to publish a variety of stuff that I hope people find interesting or useful.&lt;br /&gt;I can be reached via email at: &lt;a href="mailto:preetham_reddy@hotmail.com"&gt;preetham_reddy@hotmail.com&lt;/a&gt; or &lt;a href="mailto:reddy.preetham@gmail.com"&gt;reddy.preetham@gmail.com&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;You could follow me on twitter at &lt;a href="http://www.twitter.com/preetham_reddyc"&gt;www.twitter.com/preetham_reddyc&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="mailto:reddy.preetham@gmail.com"&gt;&lt;/a&gt;Do post a comment, if you'd like me to include articles/videos on any interesting topic. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Thankyou for visiting my blog and I hope you'll come back!!!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;Cheers!!!&lt;br /&gt;–&lt;br /&gt;Preetham Reddy Chamakura&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.preetham-reddy.com/"&gt;http://www.preetham-reddy.com/&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7033471499546805836-5982410164818908711?l=www.preetham-reddy.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.preetham-reddy.com/feeds/5982410164818908711/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7033471499546805836&amp;postID=5982410164818908711' title='13 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7033471499546805836/posts/default/5982410164818908711'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7033471499546805836/posts/default/5982410164818908711'/><link rel='alternate' type='text/html' href='http://www.preetham-reddy.com/2009/07/my-info.html' title='My info'/><author><name>Preetham Reddy</name><uri>http://www.blogger.com/profile/02395891721351433842</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_jWVijk7a_t4/SzaNPZloSZI/AAAAAAAAABk/oBEwiXW2N10/S220/preetham_Crop.jpg'/></author><thr:total>13</thr:total></entry></feed>
