SOA with .NET and Windows Azure: Realizing Service-Orientation with the Microsoft Platform
Buy it now
One Minute Bottom Line
|This is a great reference book for (but not limited to) architects who work with SOA (and cloud computing) and are looking into providing solutions based on Microsoft platforms, specifically .NET & Azure. It assumes basic understanding of these technologies. It is a practical book with examples on the subject giving advice what is good and what could be a pitfall. Thomas Erl is the editor and one of the authors so rest assured that it extensively talks about SOA principles & patterns usage (and deviations thereof, due to the platforms under study).|
ReviewThis is a very 'thick book' and is needed to be so due to the vast subject matter. The contributions are by specialists on each aspect of the subject. One must start by reading the introduction chapter to understand the complex layout to deal with patterns, technologies, reference materials and symbols. And of course, reading chapter 2 is also required as it briefs about the case study used throughout the book.
I would suggest reading "Part I: Fundamentals" as a refresher even if you are well versed with SOA and different Microsoft technologies. Also, so you don't miss the nuggets e.g., on page 81's side bar that discusses a practice (WCF runtime inferring interface from class) that is contrary to 'Standardized Service Contract' principle.
Part I has 5 chapters starting with chapter 3 SOA Fundamentals. These go over historical background with respect to Microsoft's distributed technologies evolution leading to .Net Enterprise and Windows Communication Foundation (WCF) services. Chapter 8 describes basic concepts of cloud computing and then jumps into the Azure platform's role. There is some details of creating Web and RESTful Services to be deployed on Azure.
Part II is about the services and service composition. Chapters 9 - 11 discuss extensively the application of service oriented design patterns and principles (service coupling, interoperability, reusability, etc) while using .Net platform. An important aspect of a service is its reusability. Chapter 11 is important in this respect as it discusses the reusability principle in great detail describing usage of service identification and definition patterns for example Functional Decomposition, Service Encapsulation, Agnostic Context, etc. It gives case study examples for the development of 'utility' service (using Web service) and 'entity' service (using REST service). Chapters 12 - 14 are about service composition and orchestration principles and patterns. Chapter 12 first discusses the composition theory while chapters 13 and 14 discuss applicability utilizing features provided by Windows Workflow Platform and BizTalk server.
Part III (chapters 15 - 20) is about using different Microsoft technologies components in certain combinations to achieve specific results in regards to development and governance of service oriented solutions. For example, combining ESB Toolkit with Biztalk Server, usage of Azure's AppFabric Service Bus with REST-based services. Chapter 17 covers security aspects like basic security patterns, providing info on Windows Identity Foundation. It further discusses security concerns with respect to Azure. Chapter 19 is about optimizing performance of reusable and composable services. It presents a few techniques. Chapter 20 discusses BizTalk's features in regards to metrics for service usage, scalability and governance.
The last Part IV has a collection of appendices. These are references and resources and are referred to by the entire book. I ended up reading the appendix titled "SOA Design Patterns Reference" while reading chapter 5 so as to avoid the nuisance of coming back and forth to it. These appendices have not only references but good advice on usage of technologies. The book can be used as a starting point and as you progress through the book and read up materials referenced almost all over the book, you might become an expert. It has some parts which are tutorial like details and some just skimmed over by giving a reference. This book is not for you if you are looking for something fast to learn and put to practice. I should not be discouraged by it though, as the subject is basically vast and encompasses many relevant technologies (which themselves require a lot of understanding).
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)