Tuesday, November 14, 2006

Current Software Architectural Concepts

As a preparation for the job interviews I studied the current most important concepts of software-architecture. I identified three important concepts which I will focus on:

  1. Service Oriented Architecture (SOA)
  2. Model Driven Architecture (MDA)
  3. Event Driven Architecture (EDA)
There are plenty of ressources where these concepts are described, so I will just give a very short summary.

Service Oriented Architecture
SOA is a management concept which leads to a flexible IT Infrastructure which is driven by business needs. The core idea is to provide the whole enterprise functionality as an amount of different independent services.
The main goal of a SOA is the construction of an IT infrastructure which is geared to business processes. Changing business processes need a flexible IT which can adapt to these changes. To enable this flexibility the reusability of functionality and support of distributed systems are other goals of a SOA.

Model Driven Architecture
The MDA tries to automatically generate code via models. The models can be defined in UML so they can be developed in cooperation with the customers. Software changes should only be made in the models, not in the code.


Event Driven Architecture
Components in an EDA communicate via events. Because events are a special kind of message the EDA makes use of a message oriented communication via message channels and the publish-subscribe integration pattern.




No comments: