Book Image

SOA Patterns with BizTalk Server 2013 and Microsoft Azure

By : Richard Seroter, Mark T Brimble, Coen J Dijkgraaf, Mahindra Morar, Mark Brimble, Colin Dijkgraaf, Johann Cooper
Book Image

SOA Patterns with BizTalk Server 2013 and Microsoft Azure

By: Richard Seroter, Mark T Brimble, Coen J Dijkgraaf, Mahindra Morar, Mark Brimble, Colin Dijkgraaf, Johann Cooper

Overview of this book

Table of Contents (21 chapters)
SOA Patterns with BizTalk Server 2013 and Microsoft Azure Second Edition
Credits
About the Authors
About the Reviewers
www.PacktPub.com
Preface
Index

Preface

 

Repeat after me: SOA is something you do, not something you buy.

 
 --David Linthicum

This may seem an odd quote to use when beginning a book about employing a particular product to facilitate the implementation of a service-oriented architecture (SOA). However, I think it sets the tone.

I prefer to define SOA as an architectural discipline based on loosely-coupled, autonomous chunks of business functionality, which can be used to construct composite applications.

This is how the first edition of this book started, and like so many words in that book, they are timeless. As I updated chapters, I was continuously struck by how little had changed. We also added new chapters, Chapter 4, REST and JSON Support in BizTalk Server 2013, Chapter 5, Azure BizTalk Services, and Chapter 6, Azure Service Bus to cover some of the newer technologies that give us more ways to implement SOA. For sure, there are newer technologies and we are embracing the brave new world of the cloud, but the underlying patterns that we use in integration do not change. For example, the words in Chapter 7, Planning Service-oriented BizTalk Solutions just as true today as they were seven years ago. SOA might not be a trendy word anymore, but call it what you will, the pattern does not go away.

Mark Brimble, June 2015

From writing desktop and web-based Line of Business (LOB) applications in the early 2000, I find integration is the adhesive that connects all these disparate systems together. Without integration, I wonder how many businesses would survive in today's world where information exchange is essential. This book describes how BizTalk Server and Microsoft Azure create the adhesive that bonds these systems together.

When writing the chapters on REST and hybrid systems, I pondered how the Internet has grown to become the conduit of connecting systems and devices together. The trend now seems to be all about providing RESTful services and hosting them in the cloud. With this in mind, new integration patterns have emerged, which are discussed in this book.

Mahindra Morar, June 2015

In the information technology industry, if you aren't constantly learning, then you are falling behind due to the technology and methodology constantly changing. Some examples of this changing landscape include the move toward cloud-based services and REST web services, both of these are covered in this updated book.

I'm lucky enough to be part of a team of BizTalk developers with whom I can share and receive ideas and concepts, and we can learn from each other. Another source of these ideas and concepts come from books like this where others have shared their expertise. So, I hope this book helps you to keep learning and growing.

– Colin Dijkgraaf, June 2015

BizTalk Server is equivalent to a Swiss army knife in that there are so many options available to solve integration problems. Like a weapon, it is possible to attack your problems with brute force or finesse. Typically, the end result seems similar, but the amount of effort expended is vastly different, not to mention the amount of cleanup required after the exercise.

When I was still in the early stages of my journey toward becoming a seasoned BizTalk developer, I came across the first edition of this book, and it opened my eyes to the fact that there is a right way to do integration, and an expensive way to do integration, even if the costs are not instantly evident. The differentiating factors between these two end results typically come down to applying the right integration patterns and making early architectural decisions that will guide you down a path toward building efficient solutions.

Now, I'm not just talking about the 40,000 feet in the air high level types of architectural decisions, which are obviously very important, but the low level detail as well. Having an understanding of the inner workings of the toolsets you are working with as well as an appreciation for how and when to apply various integration principles and patterns can make or break a solution. These patterns and principles are timeless, and will serve you well regardless what technology you are using to solve your integration problems, but having a keen understanding of their relevance to a given product empowers you even more.

The first edition of this book would have already given you great insight into the inner workings of BizTalk Server and how to apply SOA principles to the platform. This updated edition will take things further, firstly by extending the existing material from a BizTalk Server perspective with all the new insights that have been gleaned in the last few years. Moreover, we have also explored some previously untrodden territory by exploring how SOA and BizTalk Server can be used to build effective solutions leveraging RESTful architectures as well as by extending the reach of the integration platform through the use of Azure Service Bus. Finally, we end the book by giving you a taste of the newest technologies to be released by Microsoft, which will hopefully inspire you to get your hands dirty playing with these new platforms.

Thank you for reading our book, and I hope you enjoy reading it as much we enjoyed writing it.

– Johann Cooper, June 2015

What this book covers

Chapter 1, Building BizTalk Server 2013 Applications, looks at what exactly BizTalk Server is, reviews the core architecture of the application, and shows you how to build an end-to-end solution.

Chapter 2, Windows Communication Foundation Primer, looks at the problems that WCF attempts to solve, and how to actually build and host WCF services.

Chapter 3, Using WCF Services in BizTalk Server 2013, builds a number of common scenarios using BizTalk and WCF services.

Chapter 4, REST and JSON Support in BizTalk Server 2013, covers the fundamentals of REST-based services and the BizTalk WCF-WebHttp adapter.

Chapter 5, Azure BizTalk Services, looks at one of the newer integration offerings from Microsoft, reviews how it works, and shows how to build an end-to-end solution. Although this platform has been superseded by Azure Logic Apps while we were writing this book, we decided to keep this chapter for historical completeness.

Chapter 6, Azure Service Bus, discusses the different types of services available and the characteristics of each type. You will also learn about creating Azure Topics and Subscriptions.

Chapter 7, Planning Service-oriented BizTalk Solutions, investigates exactly what a service-oriented BizTalk solution looks like. What types of services you should expose. How you can exchange messages through the BizTalk bus. We'll answer these questions and many more at this stage of the book.

Chapter 8, Schema and Endpoint Patterns, explores various patterns for building schemas and endpoints, and discusses what scenarios each pattern is applicable to.

Chapter 9, Asynchronous Communication Patterns, looks at how to take advantage of asynchronous messaging to build robust service-oriented solutions. We'll also cover the tricky concept of providing acknowledgements or results to clients that call services in a fire-and-forget fashion.

Chapter 10, Orchestration Patterns, explores advanced patterns used to build loosely-coupled orchestrations that cater for advanced functionality without compromising flexibility.

Chapter 11, Versioning Patterns, covers proven methods to version your BizTalk components, ensuring that you don't introduce changes that will cause unintended disruption.

Chapter 12, Frameworks and Tools, introduces you to a variety of tools and frameworks that can be leveraged to support your SOA aspirations.

Chapter 13, New SOA Capabilities in BizTalk Server 2013 – Azure Hybrid Patterns, covers the pros and cons of hybrid solutions. This chapter also describes the different integration patterns available when connecting on-premise resources to the resources hosted in the cloud.

Chapter 14, What's New and What's Next?, will touch upon some of the latest offerings from Microsoft, cover how they are relevant to you, and give you a taste of how to implement solutions with these platforms.

What you need for this book

The requirements for this book are as follows:

  • An Internet connection.

  • An Azure subscription.

  • A MSDN account or access to BizTalk Server 2013 and 2013 R2 media as well as to corresponding SQL Server media (refer to https://msdn.microsoft.com/en-us/library/jj248697.aspx for corresponding SQL Server versions).

  • A development VM with Visual Studio 2012 on which you can install BizTalk Server 2013 and a corresponding SQL Server instance. You can alternatively create a VM based on the Azure template for BizTalk Server 2013 Developer Edition. Refer to https://msdn.microsoft.com/en-us/library/jj248697.aspx for minimum hardware requirements and software prerequisites.

  • A development VM with Visual Studio 2013 on which you can install BizTalk Server 2013 R2 and a corresponding SQL Server instance. You can alternatively create a VM based on the Azure template for BizTalk Server 2013 R2 Developer Edition. Refer to https://msdn.microsoft.com/en-us/library/jj248697.aspx for minimum hardware requirements and software prerequisites.

Who this book is for

If you are a developer who has been tasked with building service-oriented BizTalk Server solutions or cloud-based integration solutions using Microsoft Azure, this book is for you. Architects, designers, and technical leads who want to envision an enterprise solution and implement the software blueprint to deliver solutions will also find this book useful.

Conventions

In this book, you will find a number of text styles that distinguish between different kinds of information. Here are some examples of these styles and an explanation of their meaning.

Code words in text, database table names, folder names, filenames, file extensions, pathnames, dummy URLs, user input, and Twitter handles are shown as follows: "The "schema generators" need to be installed from VB scripts in the C:\Program Files (x86)\Microsoft BizTalk Server 2013\SDK\Utilities\Schema Generator folder before the first use."

A block of code is set as follows:

<xs:schema
  xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="Person>
    <xs:complexType>
        <xs:sequence>
            <xs:element name="FirstName" type="xs:string"/>
            <xs:element name="LastName" type="xs:string"/>
            <xs:element name="Age" type="xs:int"/>
        </xs:sequence>
    </xs:complexType>
    </xs:element>
</xs:schema>

When we wish to draw your attention to a particular part of a code block, the relevant lines or items are set in bold:

Svcutil.exe http://localhost:8081/VServiceBase?WSDL /      out:WCFProxy.cs /language:c#  /config:app.config /mergeConfig

New terms and important words are shown in bold. Words that you see on the screen, for example, in menus or dialog boxes, appear in the text like this: "When a new BizTalk project is added to a Visual Studio solution, you should immediately right-click on the project and select the Properties option."

Note

Warnings or important notes appear in a box like this.

Tip

Tips and tricks appear like this.

Reader feedback

Feedback from our readers is always welcome. Let us know what you think about this book—what you liked or disliked. Reader feedback is important for us as it helps us develop titles that you will really get the most out of.

To send us general feedback, simply e-mail , and mention the book's title in the subject of your message.

If there is a topic that you have expertise in and you are interested in either writing or contributing to a book, see our author guide at www.packtpub.com/authors.

Customer support

Now that you are the proud owner of a Packt book, we have a number of things to help you to get the most from your purchase.

Downloading the example code

You can download the example code files from your account at http://www.packtpub.com for all the Packt Publishing books you have purchased. If you purchased this book elsewhere, you can visit http://www.packtpub.com/support and register to have the files e-mailed directly to you.

Errata

Although we have taken every care to ensure the accuracy of our content, mistakes do happen. If you find a mistake in one of our books—maybe a mistake in the text or the code—we would be grateful if you could report this to us. By doing so, you can save other readers from frustration and help us improve subsequent versions of this book. If you find any errata, please report them by visiting http://www.packtpub.com/submit-errata, selecting your book, clicking on the Errata Submission Form link, and entering the details of your errata. Once your errata are verified, your submission will be accepted and the errata will be uploaded to our website or added to any list of existing errata under the Errata section of that title.

To view the previously submitted errata, go to https://www.packtpub.com/books/content/support and enter the name of the book in the search field. The required information will appear under the Errata section.

Piracy

Piracy of copyrighted material on the Internet is an ongoing problem across all media. At Packt, we take the protection of our copyright and licenses very seriously. If you come across any illegal copies of our works in any form on the Internet, please provide us with the location address or website name immediately so that we can pursue a remedy.

Please contact us at with a link to the suspected pirated material.

We appreciate your help in protecting our authors and our ability to bring you valuable content.

Questions

If you have a problem with any aspect of this book, you can contact us at , and we will do our best to address the problem.