Saturday, June 23, 2007

Enterprise Integration Patterns

Patterns : -

People think in patterns. It is the way we naturally communicate ideas related to complex subject areas such as music, science, medicine, chess, and software design. Patterns are not new. We all use them intuitively as part of the learning process without really thinking about it. And because our minds naturally use patterns to perform complex tasks, you can find patterns nearly everywhere.

Patterns in Sports
Consider what happens during a soccer game or an American football game. Individuals who are acting according to predetermined patterns move quickly and decisively against targeted opponents. Each individual's pattern of movement is also part of a larger pattern of orchestration where each player has clear responsibilities and scope. In addition, the entire team is in a binary state—either offense or defense. Without patterns in sports, the games would not be as rich and interesting. Can you image how long the huddle would be in an American football game without the language of plays (patterns)?

Note: Software patterns are significantly more complex than these simple examples. These examples are intended to make the notion of software patterns more approachable at the expense of being less technically rigorous.

If you look closer at patterns, you will find relationships between them. In sports, for example, teams have certain plays for offense and certain plays for defense; the patterns that describe two players' actions must fit into a larger pattern that the team is following. In this sense, patterns can be described in terms of hierarchies.

Patterns in Music
Another example of how people think in patterns is the patterns found in music, such as rock and roll. In rock and roll, a rhythm guitar player usually repeats a pattern of chords in a specific key. Against this backdrop, a lead guitarist plays a freeform series of notes from a candidate pattern of notes that correspond to the chord progression being played.

Patterns: Templates and Systems
The reuse of expert knowledge and experiences is of high interest in all areas of human work. Major advantages are savings in time and cost and improved quality of problem solutions. A possibility to make expert experiences explicit and reusable are so called "patterns". The basic idea of patterns comes from the architect Christopher Alexander, which captured and reused design experiences in architecture and civil engineering by using a pattern language. The community of object-oriented software development adapted this idea for capturing software design experience in so called "design patterns".
We adapt the pattern idea of the before-mentioned authors to capture experiences in the area of enterprise integration. To describe a pattern, we use a pattern template consisting of five elements:

• Name: the name of the integration pattern.
• Context: a description of the situation an integration problem occurs.
• Problem: a description of the integration problem which has to be solved.
• Solution: a set of guidelines, instructions and rules to solve the problem.
• Example: a description of a typical application of the integration pattern.

A set of patterns describing a family of problem solutions for a given domain is called a pattern system. A pattern system consists of pattern descriptions and relationships between the patterns, describing their interdependencies.

A Pattern System for Metamodel Enterprise Integration Patterns: -
To define metamodel - sometimes when modeling a set of related systems, usually belonging to a given domain, we realize that these models share many constructs. We are then able to generalize across these different models and come up with a model of what the set of related models should conform to. This is what we call a 'metamodel', a model of models. As a matter of fact the term metamodel is still quite controversial and a matter of discussion. The pattern system for metamodel integration patterns consists of six patterns. These patterns are classified into loose integration patterns, intermediate integration patterns, and strong
integration patterns. Loose integration patterns are used for metamodels which are largely complementary. Each of the metamodels can exist without depending on the existence of the other metamodel. Intermediate integration patterns are used to reuse parts of a source metamodel to build a new metamodel or to aggregate parts into an existing one. Some parts of the new metamodel can exist with-out depending on the source metamodel, other parts can not exist independently. Strong integration patterns are used to build a new metamodel completely depending on a source metamodel. The new metamodel cannot exist independently of the source metamodel.

Tuesday, June 19, 2007

Enterprise Systems Integration Architecture

Enterprise Architecture

Business and IT Strategy are the “Yin” and “Yang” of today’s business survival and success. A key driver for enabling Business-IT alignment is a well defined IT Strategy and an associated governance process.

Enterprise Architecture provides the tight cohesion and loose coupling between the Business and IT strategies. It is the “glue” that allows both Business and IT Strategy to enable and drive each other.

Enterprise Architecture is the holistic view of the enterprise processes, information and information technology assets, as a vehicle for aligning business and IT in a structured, more efficient and sustainable manner.

1. Enterprise Architecture is a critical determining factor for business survival and success

An effective, enterprise architecture is one of the key means to achieving competitive advantage through Information Technology. Today’s CEOs know that the effective management and exploitation of information through IT is the key to business success.

2. Enterprise Architecture enables managed innovation within the Enterprise

Innovation is critical, especially in today’s rapidly changing technology and business landscape. Having a technology architecture that supports the IT Strategy and provides the flexibility to achieve the right balance between IT efficiency and business innovation is a keystone to business adaptability and growth.

3. Enterprise Architecture provides a plan for managing your IT Investments

Enterprise Architecture defines the components or building blocks that make up the overall information system. It provides a roadmap from which products can be procured, and systems developed that will work together to support the business processes. It thus enables one to manage IT investment in a way that meets the needs of the business.

Therefore, Enterprise Architecture is the key to agility. But, for Enterprise Architecture to deliver real, tangible results there needs to be an effective governance mechanism to provide direction & control.