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


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


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



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.


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.



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


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



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.



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.



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



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



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



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



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



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



Java / Abap proxies exists in SAP Exchange Infrastructure



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



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



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

Template Method


Mapping-templates exists in SAP Exchange Infrastructure



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


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

To report this post you need to login first.


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

  1. Former Member
    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.


    1. Bernd,
      You are absolutely right! Design patterns are not OO specific.
      I will change the blog accordingly ๐Ÿ™‚
      Best regards,

Leave a Reply