Wednesday Feb 20, 2013

Book Review: SOA Made Simple by L. Dikmans and R.v.Luttikhuizen

Just finished reading "SOA Made Simple" by Lonneke Dikmans and Ronald van Luttikhuizen, published in 12/2012 by Packt Publishing and use this summary to share my thoughts. 

"SOA Made Simple" is a very good book that - beside of helping readers to do SOA right - will have an impact to how you look at going out for breakfast. The "breakfast example" is one of the great samples that the authors consistently use throughout the book.In addition, this book is well written and covers really no fluff but just stuff. Reading this book you learn what SOA is, the benefit it brings to IT, as well as how you design and model your SOA and services.

 Whenever Packt asks me to review and write about a new book, I ask for a printed copy so I can annotate the page with comments and questions. My copy of this 257 page book has a lot of annotations, mostly about information I want to share in my review.Too many annotations, which clearly indicates I liked the book, though I am not directly involved in SOA (which probably makes me the perfect candidate for reading this book). According to the Preface, yes I read this too, the book is "for anyone (architect, designer, developer, administrator, team lead) who is implementing or is about to implement SOA in anIT-related environmenet". Well, I would call this mission accomplished and recommend you to buy this book for your learning and career.

So lets have a look what this book covers and what I liked so much:

Chapter 1: Understanding the Problem

This chapter is a well structured introduction to the current state of IT that leads to a problem statement that demands for SOA to come for the rescue. However, though A SOA book, the authors don't make it too obvious that SOA is the answer. The chapter also gives you some questions by hand you should ask before starting a SOA project so you ensure your decision is right before starting a SOA project. This chapter also introduces the examples (I already mentioned the diner for breakfast, but there also is an insurance business and others).

Chapter 2: The Solution

This chapter introduces services and the SOA term. It does so not from a pure technical perspective and without calling WS* services too soon. Or would you have considered the waiter service in a diner to be a service? In fact it is and therefore services don't need to be SOAP or REST to be called a service. SOAP and REST come into play later, when the talk is about standards and SOA.

Chapter 3: Service Identification and Design

This chapter introduces various concepts around the design of services  like top-down, bottom-up and meet-in-the-middle. Walking towards WS services, this chapter summarizes and explains service characteristics. Unless you are a WS expert already, this is one of the chapters that really help you to understand what a service should be, how isolated and de-coupled it must/can be and how complex IT architectures can be mapped to a sensible service oriented architecture.Here you get a good analogy of services to lasagna (really good examples that stick as pictures)

Ps.: As a note to the publisher, I think the images on page 73 and 74 are in the wrong order. Too late though, the ink has dried.

Chapter 4: Classification of Services

This chapter allows you to organize services into elementary services, composite services and process services.  It also covers the difference between service composition (BPM/BPEL) and aggregation (ESB, client). Other concepts for organizing services in this book are: granularity, actor (who works with a service), channel of access, security requirements and many more.

Chapter 5: The SOA Platform

This chapter switches gear for a moment and uses SOA terminology that hasn't been introduced until here but is getting explained in the following. The chapter also talks about REST and SOAP services as first class citizen technologies in a SOA. This chapter thus is where you learn about ESB, BPM, Case Management, Events, Business rules and user interfaces to SOA (which is also where Oracle ADF gets its mentioning). A lot of pages are dedicated to service security, design and develpment tools.

Chapter 6: Solution Architectures

Chapter 6 is one of my favorites and compares SOA offerings and suites provided by Oracle, IBM and Microsoft, allowing readers to understand what each of these vendors has to offer and how products could integrate. The chapter doesn't announce a winner, which I think would be a bad move for a generic SOA book, but really saves you from investigating this yourself. As the authors stress it, it is important to understand what is best in breed for a project and where you shop this best looking at the full package.

Chapter 7: Creating a Roadmap, How to Spend Your Money and When

This chapter discusses what it takes to implement SOA in a company: stake holders, requirements, wrong and right expectations, benefits and money gains. Personally I think the graph on page 1999 is a great idea for showing what you can expect on each of the stages involved when implementing SOA. Its really well done.

Chapter 8: Life Cycle Management

What you build today is what you maintain tomorrow and throw away the day after tomorrow. This basically is what the authors call the the lifecycle of SOA solutions. and in fact its all about change management and the conflict that exists between developer and administration personnel that both have a different agenda. Governance plays into this as well. Basically you learn that you need to keep the "eye on the bal" during the realization of SOA architectures. 

Chapter 9: Pick your Battles

This chapter is all about how to get people to buy in to a SOA architecture and how to ensure that the implementation - especially when implemented in distributed teams and by different departments - follows defined rules and definitions without being prohibitive to change.

Chapter 10: Methodologies and SOA

This chapter discusses the impact SOA has to different aspects of software development and provides methodologies to use.

In case you did not order the book while reading my review, here's a dense list for why you should:

- Clear story line

- Chapters that make sense and float

- No fluff just stuff

- Explaining complex concepts simple in real life examples

- Back / Forward references

- External document references

- Good SOA coverage from a project perspective looking at SOA as a whole and not just services

 The one thing I wanted to have immediately when reading this book was a second book that closely follows this book's chapters and that  - by example - shows how to implement various SOA components for people to have example code and instructions. This could be using the Oracle stack (preferred) but also would be valuable for any of the other introduced vendors. However, code and implementation samples was not in focus for this book and this is good the way it is.

 Frank


Friday Feb 24, 2012

Book Review: Do More with SOA Integration: Best of Packt

Packt Publishing released "Do More with SOA Integration: Best of Packt", book that aggregates the knowledge of  eight (!) SOA books into one 650 pages mashup.

Lets start my review with a little problem I had when reading this book: For me it was not easy to identify the audience this book a was written for. The book contains chapters that point towards beginners and others pointing towards experienced SOA experts. Other chapters are more hands-on oriented, indicating they are meant for developers. After reading the whole book, I think that the targeted audience is not to qualify though most chapters address IT architects and project leads who need to expose legacy IT infrastructures to external or who plan a new software project based on SOA.

The book touches on various aspects of SOA and in chapter 1 presents an explains a wikipedia of SOA acronyms and architecture patterns for readers foreign to SOA. If you are not yet SOA savvy then this chapter will prove itself helpful in understanding the rest of the book as these SOA acronyms are used throughout the remainder of the book.

Chapter 2 lists problem statements and solutions that describe what SOA is for and why it is good to adopt it into your IT landscape. "Types of integration" on page 82 had me slowing down in my reading pace as I found it an interesting topic. It introduces important concepts of SOA like service interfaces, brokering and communication. The chapter, as most parts of the book, is about awareness and operates on the theory of things, and less on technical implementation details.

Chapter 3 showed that a best of compilation is not always a smooth reading and started with the mentioning of the Trivadis Integration Architecture Blueprint, making me use Google to learn what this is all about. Turns out that this architecture is the documented combined SOA experience of the Switzerland based Trivadis AG. The blueprint is well introduced in this online article on the Packt Publishing website (Note that you need a user account to read the whole article). To quote from this article written by Guido Schmutz, Oracle ACE Directory for FMW and SOA, working for Trvadis AG:

"The Trivadis Integration Architecture Blueprint indicates how integration architectures can be implemented in practice. It achieves this by representing common integration approaches, such as Enterprise Application Integration (EAI); Extract, Transform, and Load (ETL); event-driven architecture (EDA); and others, in a clearly and simply structured blueprint. It creates transparency in the confused world of product developers and theoretical concepts.

...

The Trivadis Integration Architecture Blueprint shows how to structure, describe, and understand existing application landscapes from the perspective of integration. The process of developing new systems is significantly simplified by dividing the integration architecture into process, mediation, collection and distribution, and communication layers. The blueprint makes it possible to implement application systems correctly without losing sight of the bigger picture: a high performance, flexible, scalable, and affordable enterprise architecture."

As a reader I wished this was explained that way in the book (better the same chapter) along with some words about the relevance and how it helps to do more with SOA integration.

Chapter 5 explains the use of BPEL for integrating services of different systems into a single process. Here, the focus is put on the process flow and less on how to work with BPEL. Example configurations are given for exposing services on TIBCO and webMethods, for exposing Siebel and SAP services for orchestration in BPEL. Briefly the talk is about security (basic authentication) and logging.

Chapter 6 looks at ERP integration between PeopleSoft and Oracle Applications. If you are in the situation in which you need to get the two systems working together, then this chapter is for you. It explains how to create an example BPEL process, how to configure the OA adapter as a partner link and how to transform messages between the two systems. A useful reference shared in this chapter is for the Oracle Applications integration cookbook whitepaper, which you find here. Chapter 6 in my opinion is what I was expecting to find in this book: a real use case for SOA that is explained well to help readers solve a current integration problem.

Chapter 7 is about Enterprise Service Bus (ESB) and actually is a quite good read. It teaches the reason why ESB is needed, as well as the individual components, like Normalized Message Router (NMR) it provides. The idea of abstracting different systems, which may be based on different technologies and protocols, and that in the past may not even be designed for communication to the outside world, spoke to me and made this chapter useful. The uses NetBeans Enterprise Pack  5.5 and 6.0 for its screen shots and examples. The current state of the NetBeans enterprise pack is that SOA components have been removed from native NetBeans and instead should be installed from the Open ESB website:

"The SOA module has been removed from the standard distribution for NetBeans IDE 6.7. To use the SOA functionality with NetBeans IDE 6.7, you need to install GlassFish ESB v2.1 from the OpenESB website."  (src: http://soa.netbeans.org/#downloadsandstatus)

The last release of NetBeans that has SOA on board is NetBeans 6.5. I assume that this change was too late for the book to pick up, but at least it makes it appear dated.

Chapter 8 is about binding containers, which is an interesting read that explains NMR bindings to File, FTP, SMTP and JMS (though some of them needs to be downloaded from the Open ESB site to get them working in NetBeans 5.5 or 6.0). The concepts in this chapter are clearly defined and explained, which I liked. A practical example would have been a great addition.

Chapter 9 is about SOA and Web Service integration that aims for helping readers to get their SOA poject started without getting lost in the architecture's complexity. The chapter starts with pointing out that the vertical market thinking of the past often makes it difficult to integrate existing software solutions into a horizontal solution, where businesses need to access information from different business lines. For example, booking a trip to a foreign country often involves information from several airlines, hotels and rental car companies, accessed from a single front-end that hides the complexity that lies behind. It then introduces e-business patterns suggested by IBM. I didn't quite understand what IBM has to do with it and why there is no standard for it? The introduction of the IBM patterns is like the Trivadis architecture in chapter 3: It just falls into the book with no word of explanation regarding the why and the industry acceptance of it. However, the IBM patterns do a good job in outlining several architecture options to solve a specific integration problem. I liked that the patterns are not related to a specific technology and instead are expressed as blue prints. At its end, the chapter explains the  creation of WSDL files and the WS-I profile to then conclude with creating "hello world" Web Services in Java and .Net. The example of "hello world" at the end is a bit odd, given that this chapter guides you to more more complex things before.

With "Service- and Process-Oriented Approach to Integration Using Web Service", chapter 10 has a similar headline then chapter 9 but is about the Enterprise Service Bus (ESB). This chapter also makes me feel like Bill Murray in "Groundhog Day" from 1993: The problem statement that leads to SOA as a solution is getting introduced to me for the 10th time and I think that I'll have to live with it 4 more times until the end of chapter 14 will release me from this loop. On the positive side, you can read chapters in the order you like and don't miss out the relevance of SOA in today's IT. Chapter 10 nicely spans back to the various connection infrastructure types introduced in chapter 1.The chapter explains the role of the ESB in comparison to a pure Web Service approach for integration and its benefits as a connection infrastructure. The chapter states that as of 2010, when the chapter's original book has been published, there is no common standard definition of ESB (which is a statement that also goes in line with what you find on Wikipedia for ESB) nut that ESB evolve "into a tanglible infrastructure for SOA". The chapter therefore lists criteria to look out for when adopting an ESB to avoid vendor lock-in, which I think is very useful information. ESB advantages listed in the chapter includes scalability, connection to heterogeneous systems, mediation, transformation and routing, as well as orchestration and event notification.Like chapter 9, chapter 10 is a very strong chapter and one you want to read several times as it has so much information and insight to share.

Chapter 11 "Loosely Coupling Services" surprisingly already got me out of the "groundhog day" loop and went straight to the subject. It starts off with the criteria defining coupling of a service, the dependencies a services has to its environment, other services and input data streams. The chapter then continues discussing the Oracle Service Bus and Enterprise Service Bus and service virtualization. The content of the chapter is taken from chapter 4 of the Oracle SOA Suite Developer Guide by Antony Reynolds and Matt Wright. I don't understand though why this chapter was taken from the March 2009 version of the book and not from the 11g R1 version printed in June 2010. This decision remains the secret of Carl Jones the series editor but spoils the whole chapter as I kept of wondering which information else I can find is no longer accurate.

Chapter 12 "Integrating BPEL with BPM using BPM Suite" is another hands-on oriented chapter. The software used in this chapter is Oracle SoA Suite 11g PS2, which is a contrast to the older version used in the previous chapter. The chapter introduces the Oracle BPM Suite and its architecture. Readers learn about JDeveloper as the modelling environment and Metadata Services (MDS), a common repository used by the web based Oracle Business Process Composer to save projects. The hands-on journey actually gets stuck first time at a broken link that should point to the BPM Studion 11g extension. Since the publication of the original book the chapter was taken from, Oracle obviously has remodeled its website. However, the link is no longer needed and you can install the software directly from JDeveloper choosing Help --> check for updates. Then you install the Oracle SOA Composite Editor in a first installment and then BPM Studion (just in this order). Just in case you are interested in BPM I highly recommend "Getting Started with Oracle BPM Suite 11gR1  (ISBN 978-1-849681-68-1) from Packt Publishing. The remainder of the chapter then steps you through building a BPM flow for a travel request and approval scenario that included human workflow.

Chapter 13 "SOA Integratio - Functional View, Implementation, and Architecture" and deals with legacy integration. This chapter actually gets me back to "Groundhog Day" by explaining what SOA is (though it doesn't want to be a primer) and I can see Bill Murray staring at its 6 am alarm listening to "I got you babe". However, though starting with some repetition of what has been said many times earlier in the book, the legacy to SOA chapter provides some good information and methodologies for modernizing existing IT infrastructures. From an Oracle technology perspective it also covers the "why should I use" question for individual Oracle products in the context of SOA, which also is a bit of a sales pitch. All in all, I liked this chapter and the information herein.

Chapter 14 is "SOA Integration - Scenarion in Detail" works through a legacy migration project. Its not hands-on driven, but outlines the roles involved as well as the things to consider when approaching such a project. It should go without explicit mentioning that this chapter also repeats some of what the book explained before. Still, a good read.

So What's my final verdict - "buy" or "no-buy"?

As usually, it depends! Do More with SOA Integration: Best of Packt aggregates content written by people who know SOA. Personally I don't think that this is a book that I would bring to work if I was allowed to bring 3 books to a SOA project (Packt Publishing released other SOA books hat I probably would bring instead).

However, this book is not meant to be a programmer guide and for this reason does need to be brought to a job but should be read before planning the overall SOA infrastructure. By my experience in working with Oracle Application Development Framework (though a completely different topic), architecture decisions are too eagerly made driven by technology, which means that already in the planning stage architecture decisions are constraint or mislead by what is working best from an implementation point of view. Here this book really helps you to step back and focus on what you want and then how to achieve it.

My general expectation towards a book is that it enable me to do what I wasn't able to do before and that they provide information I did not know before, raising my awareness for good, best and recommended practices. From this perspective I can recommend this book (on an amazon.com rating scale I would give it 4 stars for the content, -1/2 star for dated information, missed out information and old screen shots and -1/2 for the bumpy reading experience = 3 stars). Note that on the real amazon.com website I found an existing 5 start rating for this book, which may mean I had the wrong glasses on)

Finally, and my apologies to Packt Publishing for stating this, "best-of" book compilations just don't work. Music best-of compilations are easy to listen to. However, best-of compilations of technical books are hard to read without the original chapter authors to add corrections and updates to the previously published content. The Do More with SOA Integration: Best of Packt book contains unnecessary repetitions, references old (out of date) technologies and introduces SOA core technologies in a non-chronological order that takes from the overall reading experience. An example for the latter is the introduction of a "hello world" Web Service at the end of chapter 9, which beside of this is a strong chapter that I liked. If you have money to spend on a single SOA book, my recommendation would be to buy one of the books the chapters were taken from. If you need a single quick overview at a glance and don't mind repetition and older information, still this book is a good reading (but never be 5 star. Again my apologies to Packt Publishing for having to say this; I know you had good in mind)


About

The Oracle JDeveloper forum ranks in the Top 5 of the most active forums on the Oracle Technology Network (OTN).



The OTN Harvest blog is a summary of selected topics posted on the OTN Oracle JDeveloper forum.



It is an effort to turn knowledge exchange into an interesting read for developers who enjoy little nuggets of wisdom





Frank Nimphius

Search

Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today