Sunday, September 30, 2007

Introduction to Zachman Framework

Zachman Framework

Well I have everything lined up for my Master's Thesis at the Athabasca University. I am looking at how to apply Enterprise Architecture Frameworks towards an SOA. I have received Zachman's eBook and have read the first 3 chapters. I must admit I am not a big fan of reading at the computer but that is what what I have to do with this.

Chapter 1. Introduction

The Zachman Framework is represented by a 6x6 grid of different cells. The 6 rows are:

Principal Perspectives:

Owner's perspective - the recipient of the end product
Designer's perspective - the engineer/architect between the what is desirable (Row 2) and what is physically possible(Row 4)
Builder's perspective- the one(engineer) who has the technical capacity for producing the end product
Scope Perspective - context that estabishes the universe of discourse, inner and outer limits
Out-of-Context Perspective - detailed description that disassociates the parts of the complex object for manufacturing process
Row 6 represents the physical manifestation of the end product itself, not Architecture

Abstractions of the Framework:
What - what it is made of, material composition of the object
How - it works, the functional specification, the transformations
Where - the components are located relative to one another
Who - does what work
When - do things happen relative to one another - life cycles, timing diagrams
Why - do things happen

Chapter 2 - Three Definitions of Integration

Scope Integration - continuity across the scope of the Enterprise within any or every Cell.

Horizontal Integration - continuity between the different types of models across any or every Row

Vertical Integration - continutity of intent from Cell to Cell down any or every column

Chapter 3 - Rules of the Framework

Rule 1: Do Not Add Rows or Columns to the Framework
Rule 2: Each Column Has a Simple Generic Model
Rule 3: Each Cell Model Specializes Its Column's Generic Model
Rule 3 Corollary: Level of Detail Is a Function of a Cell, Not a Column
Rule 4: No Meta Concept Can Be Classified Into More than One Cell
Rule 5: Do not Create Diagonal Relationships Between Cells
Rule 6: Do Not Change the Names of the Rows or Columns
Rule 7: The Logic is Generic, Recursive

Saturday, September 29, 2007

Greg the Architect

Thanks to Anthony Kimber's blog for pointing out Greg the Architect!

These videos are probably closer to the truth than most of the vendor speak/buzzword on SOA out there!

Tuesday, September 25, 2007

SOA - Principles of Service Design

Just finished Thomas Erl's new SOA book "SOA - Principles of Service Design". Again, it is a quality book, giving real information on SOA and implementation details without the fluff. It is certainly a technical book with very good diagrams and explanations.

There is quite an impressive array of reviews for the book from industry specialists from Google, Oracle, Microsoft, and so on. This book can stand on its own or it can be paired with his "SOA Design Patterns" book. Some patterns are referenced but not the complete set in the Design Pattern book.

There are 3 parts to "SOA - Principles of Service Design": Fundamentals, Design Principles and a Supplemental section.

Firstly, the Fundamental section reviews SOA, Benefits and sets the stage for the Design Principles. "A principle is a generalized, accepted industry practic. In other works, it something others are doing or promoting in association with a common objective..." From the principles, come design patterns.

The second section covers the Design Principles themselves, of which 8 are given:

1. Service Contracts (Standardization and Design)
2. Service Coupling (Intra-Service and Consumer Dependencies)
3. Service Abstraction (Information Hiding and Meta Abstraction Types)
4. Service Reusability (Commercial and Agnostic Design)
5. Service Autonomy (Processing Boundaries and Control)
6. Service Statelessness (State Management Deferral and Stateless Design)
7. Service Discoverability (Interpretability and Communication)
8. Service Composability (Composition Member Design and Complex Composition)

Each principle is profiled and explained. Each provides guidance in shaping your SOA. They work together but there are examples where they conflict and choices must be made. A design paradigm is a composition of the design principles. From the design principles, there are design patterns. So basically, a design paradigm (SOA), is comprised of design principles, which is then made up of the design patterns.

Each design principle is summarized in a Principle Profile, which contains a short definition, long definition, goals, design characteristics, implementation requirements, web service region of influence.

The last section, Supplemental, covers a comparison between SOA and OO, Supporting Practices, and Mapping Service-Orientation Principles to Strategic Goals.

I have to say that reading Erl's books enlighten in a common-sense technical way. He is my favorite SOA author.

Monday, September 3, 2007

Getting started with JSF 1.2 & Tomcat 6

I wanted to start dabbling with JSF and the latest JDK and Tomcat versions. I have an idea for a website that I want to create. To gain skills and knowledge in JSF seems valuable to me.

I had seen that myfaces 1.2 came out and tried to get it working but ran into some JSTL tag issues. gives a tutorial on how to get Tomcat 6 and jsf 1.2 running together.

Basic downloads to get started
Java JDK 1.6
Tomcat 6
Sysdeo Plugin
This plugin allows you to start and stop tomcat from within Eclipse which is a feature I like.

Proof that you can run jsf 1.2 on Tomcat 6

An excellent book that I am starting to go through the examples
is Core JavaServer Faces by Geary & Horstmann.

I successfully got the first example to run properly, something that I was
not able to do with the latest myfaces 1.2 and Tomcat 6.

Example code from the book can be found at

Earlier this year, I built a website using myfaces 1.1 and Tomcat 5. That was nice but jsf 1.2 is the more current version and I want to migrate towards that.

Now that I have it set up, I can start working in JSF 1.2 and all that it

I did try and set up the Chapter 8 Tiles examples from and ran into some JSTL tag issues.

The following link helped resolve that