Skip to Content

This blog is a proof for XI having design patterns in it. I am comparing the design patterns to design objects in XI

Design Patterns

Abstract Factory

‘Namespaces’ provide an interface for creating families of related or dependent objects without specifying their implementation

Adapter

JCA 1.0 compatible resource adapters in XI convert the interface of a message to another the client expects.

Bridge

Graphical message mapping, Java/XSLT/Abap mapping decouples messages so that the two structures can vary independently.

Builder

 

Integration Repository/Directory separates the construction of a complex object from its representation so that the same construction process can create different representations.

Chain of Responsibility

 

Chain the receiving messages and pass the request along the chain until a mapping in a transformation handles it.

Command

Modules encapsulate a request as a stream object, thereby letting you parameterize the function in the ejb with different requests, queue or log requests and support undoable operations.

Composite

 

Compose XML into tree structures to represent part-whole hierarchies.

Decorator

Message types have additional responsibilities to a message having data types in it.

Facade

 

Interface mapping provide an interface to a set of interfaces in a subsystem. Façade defines a higher-level interface that makes the subsystem easier to use.

Factory Method

 

Message Interface defines an interface for creating a message, but let the message type decide which data type to choose and defines about the type of message.

Flyweight

 

Data types can be added to any scenario and be independent of any scenario which enables sharing. Data types are the lowest level in the hierarchy.

Interpreter

 

Given a XSD, it is used to interpret the input XML messages.

Iterator

 

Node Operations in graphical message mapping provides a way to access the elements in input message sequentially.

Mediator

 

PCK promotes loose coupling by keeping objects from referring to each other explicitly and it lets you vary their interaction independently.

Memento

 

Without violating encapsulation, capture and externalize a message because of message persistence, so that the message can be restored to the state later.

Observer

 

External definitions define a one-to-many dependency between messages so that when one external definition is changed, all its dependents are notified and updated automatically

Prototype

 

Sample Adapter/Module given by SAP is a small prototype for developing adapters / modules.

Proxy

 

Java / Abap proxies exists in SAP Exchange Infrastructure

Singleton

 

Correlation can ensures about a single instance in it while BPM is executed.

State

 

Integration process allows a message to alter its behavior when its values changes.

Strategy

 

Integration scenario defines a family of algorithms encapsulate each one and make then interchangeable.

Template Method

 

Mapping-templates exists in SAP Exchange Infrastructure

Visitor

 

Java functions in graphical message mapping represent an operation on the elements of a XML message structure. It lets you define a new operation without changing the message of the elements on which it operates

Conclusion

Well, I think XI has all the needed design patterns! So, what do you think!?

To report this post you need to login first.

2 Comments

You must be Logged on to comment or reply to a post.

  1. Bernd Eckenfels
    Great Post, nice how you have analyszed the design patterns. However IMHO those are not OO specific (and I dont think having used or supporting those patterns means it is OO).

    I think the main OO principles are encapsulation, abstraction, inheritance and polymorphism, those should be used…

    Personally I think the main data structure of XI (XML MEssage) should have (business) methods to make it OO.

    Gruss
    Bernd

    (0) 
    1. Anonymous
      Bernd,
      You are absolutely right! Design patterns are not OO specific.
      I will change the blog accordingly 🙂
      Best regards,
      Felix
      (0) 

Leave a Reply