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.

3 comments:

Anonymous said...

I like the example of sports patterns. This was a good example. The players also have to adjust their pattern if the other team isn't doing what they predicted.

David's blog said...

I also thought examples of patterns applied to sports, chess, music, and Alexander's work were excellent. I still have a hard time thinking in terms of patterns for computing. In areas where I am experienced good solutions seem to come intuitively. My hope is that patterns will allow me to more quickly learn an unfamiliar subject like enterprise integration.

ceoworld.biz said...

Startups Invoice Factoring – Your ability to grow your access to cash

With little or no tangible assets Startups, have hard time being approved for a bank loan or banks are not willing to extend credit.
Traditionally banks will not consider loaning to Startups who have been in business for fewer than 3 years because...