Monday, April 16, 2007

Event Driven Architecture

In my last blogentry I wrote about SOA as just one architectural approach. So I restudied older approaches I have been using and looked into new ones. Event Driven Architecture, based on the business events that trigger the business to work, is a new one. I once bought David Luckham's The Power of Events, as an introduction to Complex Event Processing.

Reading on the internet I found Jack van Hoof's blog about the relation between SOA and EDA. He sees SOA as manifested in the earlier in this blog defined strongly coupled information systems. SOA as based on command and control style, the 'slower' world of core business services.

And he sees the EDA as the fire and forget style, the mashup style of very loosely coupled services, the 'faster world'. Events form the linking pins between core business services.

This way, it seems my original SOA consists of two patterns, which you have to combine by making the right design decisions/trade offs.

Wednesday, April 11, 2007

Service oriented paradigm versus other paradigms

I had a SOA round table last night with some clever minds. I told them that in my opinion the service oriented paradigm is just one paradigm I use as an enterprise architect. I use for example also the data oriented approach, a proces oriented approach, all columns of the Zachman framework and more. One of them http://www.futurefurniture.nl/jeroen-j-van-beele asked me to make that more manifest. I will do that in due time. But for the time being I found will refer to some descriptions in NORA: http://matrix.e-overheid.nl/row.aspx?matrixid=nora&rowid=4&view=Architectuur (in dutch, especially paragraph 4.4.5).

Thursday, April 5, 2007

Creating flexibility

Some-one refreshed my insight today into flexibility, especially in the alignment between business and information architecture and technology. He told me that inflexibility in information architecture and technology in relation to the business comes into existance if the (flexibility in the) model used for information architecture and technology is very different than the (flexibility in the) model of the business. In that case, simple changes in the business (for which flexibility they designed themselves) turn out to be very complex changes in information or technologie. In that case ICT becomes the main bottleneck for flexibility.

This might be a very good argument for the case of service orientation, if you use similar models of service decomposition throughout business architecture, information architecture and technology architecture. In that case, all models have the same flexibel and inflexible pieces, and the flexibility was in all models as chosen by the business (model). If anything, SOA gives flexibility (and inflexibility) design decisions back to the business in that case.

This is also a strong case for not using very different (disjoint) models in the different architectures.

Sunday, March 25, 2007

SOA and Architecture language Archimate

Service Orientation is said to bridge the gap between Business and ICT. In Archimate, the Architecture language, the concrete result of this can be seen. Services is a core element of the language. And this core element bridges the gap between different architecture levels. External business services bridge the gap to the outside world and external application services bridge the gap between business architecture and information architecture. Technical services do the same between information architecture and technology architecture.

Can services be drawn between the horizontal Zachman layers aswell, I wonder?

Monday, March 12, 2007

Remodularizing Heritage Systems

Some people might think that to fit heritage systems (nicer term than legacy) into service oriented architecture, you only need to create services on top of them. My opinion however is that, to acquire real flexibility, the decomposition of the heritage systems is at stake aswell.

As Harry Pierson writes here:
"SOA
is a way of implementing IT systems as a web of interconnected yet independent loosely coupled subsystems (typically called services) instead of as big honking systems we have traditionally built that tend to be unwieldy, in-agile, difficult to change and probably obsolete by the time they were deployed."

and I totally agree with that. Simply putting services on top of heritage systems is good for integration and reuse, but not for flexibility.

Wednesday, March 7, 2007

Service Normal Form

Today I was working on finding relevant business services. As normal I used criteria like good abstractions, good separation of concerns, maximum cohesion and minimum coupling, added value of a cohesive set, in the numbers 7 +/- 2 for any level and a relevant service requestor could be found. But the design decisions I made did not completely satisfy me. Suddenly a thought struck me: just as in database theory there should be service normal forms, with standard rules to get to, validate and optimize the correct services.

Surfing internet it turned out that others had already had the same thought. They are researching "what kind of properties a "good" service should have". I will read it and come back on this subject later.

Monday, March 5, 2007

Initiative in an SOA architecture

I am charmed of the figure below (originally by BEA). Most of the layered SOA models put the GUI layer on top, near the user. Then follows the proceslayer, business logic layer and data layer.

I always wondered which layer had the initiative. It always seemed that initiative coming from the user had to come from the GUI layer and had to pass all layers.

In this figure however it seems (if the user is on top of the figure) that this composite applications layer wil have the initiative. Only after some action in that layer, the user will get a presentation. Presentation is not first. This seems a logical order to me. The Composite Applications layer also can access all other layers, without going through the others. That is the second thing I like. I am still wondering whether accessing Information Services directly is a wise thing to do, without going through Business logic. I can imagine that is ok when just accessing and viewing information.