Wednesday Dec 11, 2013

Review: Oracle Data Integrator Essentials [Video]

Packt Publishing ( released a new video tutorial about Oracle Data Integrator  authored by Andreas Nobbmann of TrivadisAG in Switzerland.

The video is well paced and structured and in its larger parts focuses on ODI Studio, the IDE for building data integration projects. The TOC shown below is from the Packt Publishing website and while it gives  the timing for each section as +20 minutes, each item on the TOC is provided in its own 3-7 minute video, making it easy to listen and consume:

  1. The ODI Core Concepts [24:15 minutes]
    • Key ODI Concepts
    • Differentiating between ETL and ELT
    • Exploring the Graphical UI
    • ODI Basics
    • Defining Your Strategy
    • The ODI Staging Area

  2. Developing in ODI – the Core Objects [21:47minutes]
    • Organizing Your Project
    • Creating an Interface
    • Using Joins, Data Sets, Filters, and Sequences
    • Using Temporary Interfaces and Lookups

  3. Your Data Transformation Strategy – Knowledge Modules [11:06 minutes]
    • Adapting Knowledge Modules to Your Needs
    • Executing Data Transformation in an ODI Interface
    • Executing a Mapping on Your Source

  4. Workflows in ODI [19:08 minutes]
    • Creating a Workflow in ODI
    • Reusable Workflows: Procedures
    • User Functions as Useful Functions
    • Customize Development Objects in ODI

  5. Data Quality and Delta Detection [15:08 minutes]
    • Oracle Data Quality Products
    • Using Data Integrity Controls and Integrating Data Quality in ODI
    • Running EDQ
    • Delta Detection via CDC

  6. Version Management and Deployment [13:06 minutes]
    • Version Management
    • Scenarios: Smallest Deployment Units
    • Solutions
    • Export and Import

  7. Operating and Maintenance [12:51 minutes]
    • Loadplans
    • ODI Repository Tables
    • Security

  8. Additional Supporting Functions [11:11 minutes]
    • How to Automate ODI Object Creation
    • Impact and Data Lineaging
    • ODI Studio Enhancements

The videos explains the development environment and replaces lots of readings. As someone being new to the whole project of data integration I missed a chapter 0 that introduces data integration principals and concepts to put viewers into a context that allows them to follow the rest of the tutorial.

Maybe people like me are not the envisioned audience this video is recorded for. Questions I had while watching the tutorial included i) what is the end product of a Oracle DI project (a script? a service API?), ii) how is the repository installed and where iii) what is the result of data integration, is is a data loading from a source into a target? An end-to-end example would have been nice to see the problem solved by the product and how this solution then looks. 

All in all I think its a good tutorial if you are BI savvy and know what the Oracle DI Studio is good for (as it seems to be quite powerful). Given my non-BI background and using the Amazon star ranking as a shared language, I would give 3 stars. If there was a chapter 0 (missing) that introduces the concepts of data integration it would be worth a 4th star. An end-to-end example would have made me giving a 5th star in my rating.

Saturday Jun 08, 2013

Book Review: Instant Oracle BPM for Financial Services How-to

Just recently, Packt Publishing released "Instant Oracle BPM for Financial Services How-to" (  by B. M. Madhusudhan Rao (a.k.a James Smith  - - for those familiar with the SOA blog-sphere.

The book follows the layout of the cookbook series the sample publisher runs, is cheap as it only costs 3.39 Euro for 62 pages it covers, which appears to be a fair price.

The publisher itself sets the expectation towards this book as

  • Learn something new in an Instant! A short, fast, focused guide delivering immediate results
  • Simplifies complex business problems for financial services
  • Optimize, enhance, and modify your business processes
  • Includes enterprise architecture best practices
  • Highlights various roles of Business Process Management

The same website then says that:

"Oracle Business Process Management helps in process automation and improvement with a very high level of flexibility for all the process participants from the process planning team to the end users. It also makes it possible to have corporate employees and customers collaborating towards common goals.

Instant Oracle BPM for Financial Services How-to covers many concepts that can be easily reused across industries such as core banking, healthcare, travel, self service automation, e-governance, and so on. It highlights various roles of Business Process Management such as Business Process Modeling, Process Developer, Process Owner, and Process Participant along with the way they work together in a financial services environment.

Instant Oracle BPM for Financial Services How-to is your guide to implementing Oracle Business Process Management whilst working in the Financial Services industry.Starting through the discovering of implementation and Business challenges for financial services we will move on to Modeling, Implementation, Process ork-flow’s, deployment and testing.

Moving on to cover advanced topics such as Process administering, changing business processes using process analysts, business reporting, participants and notifications and finally collaboration. You will learn to setup, maintain and alter your Business Process Management aimed specifically for the Financial services industry."

and then ....

 "Filled with practical, step-by-step instructions and clear explanations for the most important and useful tasks. This book is a practical Packt How-to guide that is designed to provide targeted information for experienced BPM professionals in the financial sector."

Why am I quoting all of these? Because I think that the text on the publisher website describes a book different from the one I reviewed and in fact the real book falls shorter. Still I think its a good book that you certainly learn from. It however is no book for newbie developers.

To give you a background to what I expects a book to deliver, lets talk about my own goals when writing articles, samples or my book. In all of my writings I aim for a specific type of users and skill set. For this group then I try to be as comprehensive as possible to share my experience. Since you cannot start by Adam & Eve in all articles, samples or books, you have to make assumptions at some point. In such cases I usually point to references, which could be articles, blogs, documents and books written by Oracle or 3rd parties so the reader gets all the information he or she needs to get the best out of my writing. I think I demand a great deal of my own writing and do the same for 3rd party and Oracle documentation, articles and books I review.

So what to say about this book: This book surely is a good bargain looking at the minimal cost it comes for and the quality of content you get. Technically I feel the book is correct and flawless, written on a good level of knowledge. In Amazon parlance I would rate it 4 for the content and then reduce it by 1 star (to 3) for the delivery which in some areas is too bumpy for my taste.

My detailed comments on this book: This book is designed to be a how-to for SOA developers in financial services, though the book preface states:

"The book is for Java/SOA/BPM Developers and Architects, and is also for people working in financial services in various roles such as Process Administrator/Developer/Business Process Owner or Process Participant."

This in my opinion is a elegant way of saying that I don't know for what audience this book really is. Java developers by definitions have no in depth product specific SOA / BPM knowledge, as otherwise they would be SOA developers. Administrators are no developers and as such are completely overwhelmed with the technical hands-on steps in this mini-book

The how-to itself is not very detailed and here-and-there makes assumption about the readers knowledge, which at least means that readers following the hands-on steps must have some previous experience with Oracle JDeveloper and Oracle BPM. You should also be familiar with installing the Oracle SOA Suite and WebCenter software because this part is in wide parts assumed by the author. To quick start the hands-on, the author provides sample project sources.

I only wished the author provided a URL for downloading the sources, which are available on his blog (so go and ask Google for it) and the Packt Publishing website (still didn't find it there). So here's the download URL that the author provides on his blog: (Note that this is a dropbox reference, which means that the book may be probably longer on the market than this resources. So you want to download it instantly of hope the publisher provides it on his website)

An example for where - as a non BPM expert - I would have liked more explanation is on page 11

"It would also be interesting to know that Oracle has process accelerators—a prebuilt, 'ready to deploy' BPM process that meets industry standards. These process accelerators not only use Oracle BPM, but other Oracle products as well, depending on the business requirements."

I have no idea if this means templates, standard software or starter processes (but if you are from BPM or SOA, you maybe know). An example of which Oracle products use these also would have been helpful. In my opinion, this is not a problem of the author but should have been caught during the review process and I would have flagged this.

The example implemented in this book is a home loan application to give customers a quote based on their income. For this the author introduces a formula EMI = (L*I)* {(1+I)^N / [(1+I)^N]-1}  for which he explains what all the different variables mean and do. This formula needs to be implemented in PL/SQL by you the reader (and no guidance are provided in the book, so make sure you get the sample sources). I don't have a problem with the sources to be available as a download, however, personally I like books to provide this information so I can follow reading even in a disconnected environment (my personal taste though).

An example for where the instructions come with unnecessary gap is on page 19

14. Select the Database Adapter service that we have created in the service list.
15. Now click on Data Associations and ensure that the necessary input and outputparameters are passed.
16. Save the process and deploy on SOA Suite.
17. Generate a web service-based Application Development Framework (ADF) data
control by using the deployed WSDL URL, and drag-and-drop it on the JSPX page.

Note the gap between step 16 and 17. No mentioning about how to create a WS data control, just a mentioning of that you have to do it. Google is your friend and you will find an ADF tutorial in case you are not familiar with ADF. Here I would have liked to see more guidance in form of references to tutorials or documents that provide this information (sorry B. M. Madhusudhan Rao, I had to mention this)

All in all this book is good for readers that know the Oracle software involved and that like challenging how-to instructions that don't aim for pushing the mouse for you but outline what you should do (Interestingly I myself found the instructions towards the end of the book more detailed than in the beginning). Its the first book from the Packt Publishing "Instant" series I reviewed and I see room for improvement, which either is to reduce the scope of such a tutorial or increase the page budget to the benefit of more explanations that in the end would have helped me to pick on the authors expertise.

 As mentioned earlier, this book is a bargain compared to its cost. If you are familiar with Oracle BPM and JDeveloper then you may enjoy the challenge to test your skills, understanding and what you don't yet know


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.


Thursday Dec 27, 2012

Book Review: Securing WebLogic Server 12c

"Security is a must in modern Enterprise architecture, and WebLogic implements a very complete, complex architecture for this." is a quote taken from the book covers of Securing WebLogic Server 12c book written by Luca Masini and Rinaldi Vincenzo, published by Packt Publishing ( book then sets the reader's expectation within another quote from the book covers: "Securing WebLogic Server 12c will simplify this complex world abd let you develop abd deploy in a production system with best practices for both the development and deployment world."

When Packt Publishing asked me to review and write about this book, my expectation was to get a book of 400 pages in size that covers security from its Java EE fundamentals down to its implementation in WebLogic Server 12c. When the long awaited shipment arrived, to my surprise, the book only had 80 pages. Such small format is not uncommon for Packt Publishing and in August 2012 I reviewed the "Oracle WebLogic Server 12c: First Look" book written by Michel Schildmeijer ( So my expectation was to find an overview to WebLogic Server 12c features with pointers of how to use them and where to follow up reading about it.

Securing WebLogic Server 12c starts with "WebLogic Security Concepts" that introduces Java EE terms like Principals and Subjects and WebLogic server terms like authentication providers, credential mappers and identity assertion. This chapter touches on many topics without going into details. A nice addition to this chapter would have been pointers to follow up readings for readers to be able to gain a deeper understanding of a topic.

Chapter 2 is about WebLogic server security realms, the identity store and policy stripe you define for a WebLogic server domain. This chapter is interesting to read (I only have problems with statements like "A user is an entity that can be authenticated and used to protect application resources", which I think is a wrong and misleading definition) and explains the WebLogic server user, role and group architecture. It would have helped if there were screen shots to this chapter for people who are not familiar with WebLogic server to better follow. Maybe the requirement for this book, though not spelled out, is that you have WebLogic server 12c installed or experience with a previous version of it. In the following the chapter explains how to configure authentication providers in WebLogic server, by example of LDAP, which IMO is a good and very useful chapter. The troubleshooting section for the LDAP configuration is well written and really shares the author's experience.

Chapter 3 is about Java EE Security with WebLogic and explains how to use Maven to administer WebLogic server by example of creating role mappings on the fly. This chapter clearly is wrongly labeled and should have been titled: "Using Maven to administer WebLogic server" because there is nothing new you learn in regards to security and how to protect WebLogic server or your applications. Instead you learn how to use Maven for configuring role mappings upon deployment instead of editing metadata files at design time.  The security bits mentioned in this chapter are Java EE 6 security annotations for servlets and EJB, so nothing that is really specific to WebLogic server. The Maven information is good and detailed, though lost me here and there in some of its folder and project descriptions. The section "A RESTful and secure EJB component" actually explains that in Java EE 6 EJB modules can be deployed with a servlet in a WAR file, which then - using annotations - you can secure in that you check the user role membership before executing a method.

Chapter 4 explains how to build a custom authentication provider using Maven and a JAAS login module. Its an interesting and useful chapter that gives you some good insight in how you build the authentication provider wrapper for a JAAS login module and how WebLogic server MBeans are used for administration. The custom authentication provider authenticates against a JSP file, which the authors use to simulate a legacy or existing SSO system. Again, Maven is used to assemble the provider and to deploy it. The use of Maven adds some complexity to the custom authentication provider explanations and also take a lot of pages from the overall 80 page budget of this book. I wished the use of Maven for deploying the custom authentication provider was explained in a separate chapter. Again, there are no pointers for readers to follow up with a topic. This is a problem with the book as a whole.

Chapter 5 is about Kerberos integration for authentication, which is a frequent customer requirement. The chapter is a step-by-step instruction to how to make the Kerberos authentication work with WebLogic server though, in my opinion, assume quite abit for the reader to know and have as to seen a beginners guide.

As usual, when doing book reviews, I am annotating book pages with questions I have and follow ups action items. The annotations I used the most in this book were Why and How. For sure pointers to follow-up reading would have been good and welcome. I also had difficulties to identify the audience for this book: As an overview it was too technical and not comprehensive in some areas. As a technical book and reference it wasn't detailed enough, leaving me guessing and wondering far too often. In some parts, like the Kerberos configuration in chapter 5, it reads like notes the authors took while setting up the environment for the company they work for.

So who is this book for? To quote the book: "If you are a WebLogic Server administrator who is looking forward to a step-by-step guide to administer and configure WebLogic security, then this guide is for you. This book is also for WebLogic developers who want to leverage the complex but powerful WevLogic security infrastrucure."

This book is well written and contains some good information you want to follow up on after reading the book's 80 pages. However, neither the administrators nor developer finds all that he / she needs to know about WebLogic and Java EE application security to protect a business. In my opinion, the book is good, but the title is wrong! A better title would have been  "WebLogic 12c administration and application deployment with Maven by example of Java EE security".

"Security is a complex matter, and Java EE is not an exception to this rule. To make things even more complicated, WebLogic Server extends standard securtity [...]" - page 5 of  "Securing WebLogic Server 12c". I agree with this statement, but also read from it that the authors were well aware of the need for a more in depth book.

All in all I enjoyed reading this book, though I did not learn a lot in regards to security (the Maven - WebLogic server administration and deployment bits are good though).

My final review summary you can quote me on thus is that The book is a good reference for everyone who has "Maven deployement to WebLogic Server 12c", "custom authentication provider development" and "Kerberos authentication for Windows based authentication" on his or her to-do list.


Ps.: My suggestion to reviewers: Ask more questions about what you read and don't understand. If I see explanations like the following (taken from page 18): "View User Attributes: Some user attributes" then this clearly has not been reviewed with enough care.

Thursday Nov 29, 2012

Book Review: Oracle ADF Real World Developer’s Guide

Recently PACKT Publishing published "Oracle ADF Real World Developer’s Guide" by Jobinesh Purushothaman, a product manager in our team. Though already the sixth book dedicated to Oracle ADF, it has a lot of great information in it that none of the previous books covered, making it a safe buy even for those who own the other books published by Oracle Press (McGrwHill) and PACKT Publishing.

More than the half of the "Oracle ADF Real World Developer’s Guide" book is dedicated to Oracle ADF Business Components in a depth and clarity that allows you to feel the expertise that Jobinesh gained in this area. If you enjoy Jobinesh blog ( about Oracle ADF, then, no matter what expert you are in Oracle ADF, this book makes you happy as it provides you with detail information you always wished to have. If you are new to Oracle ADF, then this book alone doesn't get you flying, but, if you have some Java background, accelerates your learning big, big, big times.

Chapter 1 is an introduction to Oracle ADF and not only explains the layers but also how it compares to plain Java EE solutions (page 13). If you are new to Oracle JDeveloper and ADF, then at the end of this chapter you know how to start JDeveloper and begin your ADF development

Chapter 2 starts with what Jobinesh really is good at: ADF Business Components. In this chapter you learn about the architecture ingredients of ADF Business Components: View Objects, View Links, Associations, Entities, Row Sets, Query Collections and Application Modules. This chapter also provides a introduction to ADFBC SDO services, as well as sequence diagrams for what happens when you execute queries or commit updates.

Chapter 3 is dedicated to entity objects and  is one of many chapters in this book you will enjoy and never want to miss. Jobinesh explains the artifacts that make up an entity object, how to work with entities and resource bundles, and many advanced topics, including inheritance, change history tracking, custom properties, validation and cursor handling.

 Chapter 4 - you guessed it - is all about View objects. Comparable to entities, you learn about the XM files and classes that make a view object, as well as how to define and work with queries. List-of-values, inheritance, polymorphism, bind variables and data filtering are interesting - and important topics that follow. Again the chapter provides helpful sequence diagrams for you to understand what happens internally within a view object.

Chapter 5 focuses on advanced view object and entity object topics, like lifecycle callback methods and when you want to override them. This chapter is a good digest of Jobinesh's blog entries (which most ADF developers have in their bookmark list). Really worth reading !

Chapter 6 then is bout Application Modules. Beside of what application modules are, this chapter covers important topics like properties, passivation, activation, application module pooling, how and where to write custom logic. In addition you learn about the AM lifecycle and request sequence.

Chapter 7 is about the ADF binding layer. If you are new to Oracle ADF and got lost in the more advanced ADF Business Components chapters, then this chapter is where you get back into the game. In very easy terms, Jobinesh explains what the ADF binding is, how it fits into the JSF request lifecycle and what are the metadata file involved.

Chapter 8 then goes into building data bound web user interfaces. In this chapter you get the basics of JavaServer Faces (e.g. managed beans) and learn about the interaction between the JSF UI and the ADF binding layer. Later this chapter provides advanced solutions for working with tree components and list of values.

Chapter 9 introduces bounded task flows and ADF controller. This is a chapter you want to read if you are new to ADF of have started. Experts don't find anything new here, which doesn't mean that it is not worth reading it (I for example, enjoyed the controller talk very much)

Chapter 10 is an advanced coverage of bounded task flow and talks about contextual events

 Chapter 11 is another highlight and explains error handling, trains, transactions and more. I can only recommend you read this chapter. I am aware of many documents that cover exception handling in Oracle ADF (and my Oracle Magazine article for January/February 2013 does the same), but none that covers it in such a great depth.

Chapter 12 covers ADF best practices, which is a great round-up of all the tips provided in this book (without Jobinesh to repeat himself). Its all cool stuff that helps you with your ADF projects.

In summary, "Oracle ADF Real World Developer’s Guide" by Jobinesh Purushothaman is a great book and addition for all Oracle ADF developers and those who want to become one.


Monday Aug 20, 2012

Book Review: Oracle WebLogic Server 12c: First Look

"Oracle WebLogic Server 12c: First Look" written by Michel Schildmeijer and published by Packt Publishing (ISBN 978-1-84968-718-8) is a well structured overview of new features in Java EE 6 and Oracle WebLogic Server 12c. On 117 pages (no typo on my side), Michel provides a well done digest of what you need to know about Java EE 6 development and deployment with WebLogic server 12c. Michel shows in depth expertise in the Java EE and open source landscape as well as in WebLogic server configuration and administration, as well as Oracle Exalogic.

  • Chapter 1 "Ready for the Cloud!" is a brief introduction to Oracle's WLS stratey and the features of Java EE.
  • Chapter 2 "Supporting the Java EE 6" shows an overview of interesting Java EE 6 features like CDI, EJB 3.1, JSF 2.1, JPA, Servlet 3.0 and REST. The book doesn't go in depth when describing the new features but gives you enough information to feed Google for more information.  From a developer perspective its a well written heads up on what you want to research further in preparation for JDeveloper 12c and WLS 12c.
  • Chapter 3 "Deployment, Installation and Configuration Features" lets you know about a lean start option of WLS, class loader analysis, Enterprise Manager functionality and additional packages for application performance monitoring. Again, a lot of heads up to follow up on.
  • Chapter 4 "Integrated and External Services" is about Grid Link and RAC integration, as well as new JDBC features. You also learn about WLS and Java EE security services and the work with RESTful services. Again, this chapter only scratches the surface and is more of a laundry list of what you want to follow up with for your future application development(I at least put down a lot of notes). If you are a project lead or manager (so no developer who need to know exactly how to do things), then this chapter however provides you all information you need to know of.
  • Chapter 5 "Integration and Management with Enterprise Manager 12c Cloud Control is - together with chapter 2 - my personal favorite and explains Enterprise management options a bit closer. Especially WebLogic Server 12c monitoring in this chapter is what I thought "this is what people really need to know about".
  • Chapter 6 "Oracle Weblogic 12c to the Cloud: Exalogic" is less in depth information on what Oracle Exalogic and Exadata is but again provides a reasonable bird's eye overview of the benefits this system provides

As mentioned, 117 pages full of information that are worthwhile reading. The perfect holiday novel for geeks. Definitive, this book is a best value you can get for the cost of if.


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:

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 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 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)

Thursday Oct 13, 2011

Book Review: Oracle WebCebter 11g PS3 Administration Cookbook

Packt Publishing (  asked me to review one of their new books: Oracle WebCenter 11g PS3 Administration Cookbook written by Yannick Ongena, a proven WebCenter community expert and founder of the WebCenter Methododlogy Group (

The book basically holds on what it promises on the backside of it, which is that you learn:

- to create and manage navigation models

- about JSR 286 use in WebCenter

- integrate content sing document services

- build collaborate services

- to build Wikis

- etc.

The book has 14 well structured chapters that don't have inter dependencies, allowing you to read topics in order of your interested. As you would expect from a cookbook, the content is hands-on driven. This however means you get things done, but you don't necessarily get enough background information teaching you the technology. I didn't follow the book on a WebCenter instance, but the accompanying screen shots made it easy to follow without.

I liked the book ad read it almost in one go on my flight to SFO and back. The only thing I wanted to learn more about was in chapter 2 where Yannick discussed the writing of portlets using events. Here the chosen sample was too easy and I would have liked to see one that shows how to pass data from a portlets to another so that the model of the other portlet gets udated.

In summary, if you start with WebCenter and have a deadline breathing down your neck that doesn't allow you to learn things properly, this book buys you the time you need. If you are experienced in WebCenter, still this book sis useful as it gives you a step-by-step checklist for various common and reoccurring tasks in WebCenter.

 Just for completenes, here's the table of content for the book  :

  • Chapter 2: Consuming Portlets
    • Introduction
    • Building JSR 286 portlets in JDeveloper
    • Registering a portlet producer at design time
    • Registering a portlet producer at runtime
    • Consuming portlets at design time
    • Consuming portlets at runtime
    • Wiring two portlets together at design time
    • Wiring two portlets together at runtime
    • Contextual wiring of portlets using events
  • Chapter 3: Navigation Models and Page Hierarchies
    • Introduction
    • Creating a navigation model at design time
    • Creating a navigation model at runtime
    • Adding a folder to a navigation model
    • Adding a link to a navigation model
    • Adding content query to a navigation model
    • Adding a page hierarchy to a navigation model
    • Referencing a navigation model
    • Adding a component to a navigation model
    • Adding a custom folder to a navigation model
    • Adding custom content to a navigation model
    • Changing the default start page of your portal
    • Filtering navigation resources based upon business logic
    • Exporting a navigation model
    • Importing an existing navigation model
    • Specifying the default navigation model
    • Managing the page hierarchy
  • Chapter 4: Managing the Resource Catalog
    • Introduction
    • Creating a resource catalog at design time
    • Creating a resource catalog at runtime
    • Adding a folder to a resource catalog
    • Adding a link to a resource catalog
    • Adding another resource catalog to a resource catalog
    • Adding a component to a resource catalog
    • Adding a custom folder to a resource catalog
    • Adding custom content to a resource catalog
    • Adding resources to a catalog at runtime
    • Managing the Resource Library
    • Securing resource catalogs
    • Filtering resources based upon a role or other business logic
    • Selecting a resource catalog based upon business logic
    • Exporting a resource catalog
    • Importing a resource catalog
  • Chapter 6: Integrating Content with Document Services
    • Introduction
    • Preparing UCM for a remote connection
    • Creating a connection to a content server
    • Creating a content driven navigation model
    • Displaying a single content item with the content presenter
    • Displaying multiple content items with the content presenter
    • Creating a content presenter template for a single item
    • Creating a content presenter template for multiple items
    • Using the document service taskflows
  • Chapter 7: Discussions and Wiki Services
    • Introduction
    • Creating a connection to the discussion service
    • Adding discussion forums to your portal
    • Creating forums
    • Creating topics
    • Adding announcements to your portal
    • Creating an announcement
    • Creating a wiki document
    • Editing a wiki document
  • Chapter 8: Organizing and Finding Content
    • Introduction
    • Creating a connection for the link and tagging services
    • Enabling tagging functionality to pages
    • Showing related content
    • Showing a tag cloud
    • Linking content
    • Linking to a document
    • Linking to a discussion
  • Chapter 9: Using Polls and Surveys
    • Introduction
    • Creating a connection for the poll services
    • Creating a poll
    • Adding a poll to a page
    • Managing sections
    • Managing questions
    • Scheduling a poll
    • Analyzing the results
    • Creating a poll template
    • Applying a template to a poll
  • Chapter 10: Integrating External Content and Applications
    • Introduction
    • Registering an external application in JDeveloper
    • Register an external application at runtime
    • Adding an external application to your portal
    • Integrating external content with the WebClipping portlet
    • Registering the Omniportlet
    • Integrating external content with the Omniportlet
  • Chapter 11: WebCenter Spaces
    • Introduction
    • Creating a discussion and announcement service connection
    • Creating a document service connection
    • Registering external Applications
    • Registering a portlet producer
    • Creating a group space
    • Enabling additional pages
    • Creating subspaces
    • Creating lists
    • Creating a space template
    • Exporting group spaces
    • Importing group spaces
  • Chapter 12: Securing Your WebCenter Portal
    • Introduction
    • Securing pages with the page hierarchy
    • Securing pages at runtime
    • Using Oracle Identity Directory as an identity store
    • Enabling SSL for a WebCenter portal application
    • Securing taskflows
  • Chapter 13: Managing WebCenter Portal Applications
    • Introduction
    • Creating a connection to an application server
    • Deploying a WebCenter Portal Application
    • Undeploying an application
    • Managing connections in the Enterprise Manager
    • Propagating changes from a staging environment to a production environment
    • Viewing log messages in the Enterprise Manager
    • Monitoring the performance of an application
  • Chapter 14: WebCenter Analytics and Activity Graph
    • Introduction
    • Registering a WebCenter Portal application to the Analytics collector
    • Manually running the Gathering Engine
    • Scheduling the Gathering Engine
    • Creating a connection to the activities schema in JDeveloper
    • Using the WebCenter Analytics taskflows
    • Creating your own analytics report
    • Showing an activity stream on your portal

Sunday Jun 19, 2011

ADF Enterprise Application Development - Made Simple (Book Review)

Sten E. Vesterli wrote the "Oracle ADF Enterprise Application Development – Made Simple" book published by Packt Publishing in 2011

A common question on OTN, but also when talking to clients or customers is about where and how to start your ADF application development. Especially when the current programming background is not in Java, but 4 GL or PLSQL, developers often look for answers to the following questions:

· How long does it take to learn Oracle ADF ?

· How long does it take to replace a Forms application with ADF ?

· How many developers do I need?

· Do I need to know Java to use ADF and if yes, how good do I need to know this?

· How do I structure my programming files, organizing them in JDeveloper work spaces, projects and libraries?

· What is best practices for naming Java packages and how to void naming conflicts in ADF in general?

· How many Application Modules do I need or should I create?

· How to test applications?

Sten Vesterli answers all of the above questions and more in his book

, which makes it great value add to the 3 existing Oracle ADF books.

In order of complexity (which also is the order in which reading the available Oracle ADF books makes sense), in my opinion, Sten's book should come second – though it also is useful to those that are already more advanced with Oracle ADF. So if you are absolutely new to Oracle ADF, then the order of books to read to get you up on an expert level should be:

1. Grant Ronald; "Quick Start Guide to Oracle Fusion Development: Oracle JDeveloper and Oracle ADF" (McGraw Hill 2010)

2. Sten Vesterli; "Oracle ADF Enterprise Application Development – Made Simple" (Packt Publishing 2011)

3. Duncan Mills, Peter Koletzke; " Oracle JDeveloper 11g Handbook: A Guide to Fusion Web Development" (McGraw Hill 2009)

4. Frank Nimphius, Lynn Munsinger; " Oracle Fusion Developer Guide: Building Rich Internet Applications with Oracle ADF Business Components and Oracle ADF Faces" (McGraw Hill 2010)

If you are not new to Oracle ADF and Orace JDeveloper, then buy Sten Vesterli's book anyway. It is worth it and you want to have it on your book shelf. See below the table of content to get a better idea of what this book covers:

· Chapter 1: The ADF Proof of Concept

· Chapter 2: Estimating the Effort

· Chapter 3: Getting Organized

· Chapter 4: Productive Teamwork

· Chapter 5: Prepare to Build

· Chapter 6: Building the Enterprise Application

· Chapter 7: Testing your Application

· Chapter 8: Look and Feel

· Chapter 9: Customizing the Functionality

· Chapter 10: Securing your ADF Application

· Chapter 11: Package and Deliver

· Appendix: Internationalization

The book is written with a lot of good humor, which makes the read very enjoyable (from a geek's perspective, of course). My favorite quote – just in case you are interested - is from page 97, when Sten talks about getting organized:

" Stop sending e-mails to your team. Just stop it. E-mail is so last century.…"

So true, so true! This quote's runner up is the "boss key" on page 128 where Sten talks about productivity and how Oracle Team Productivity Center (TPC) can help you with this. Quotes like these stick to your brains and make sure you never forget.

Go for it!


A blog on Oracle JDeveloper, ADF, MAF, MCS and other mobile and web topics inspired by questions and answers posted on the OTN forums.

Frank Nimphius


« July 2016