Message transformation map object model
Message transformation rules for integration platforms are represented in a computing system using transformation rule trees of objects in map object models. The transformation rule tree is an intermediate representation of the transformation rule. The objects in the tree are instantiated from classes of one or more message transformation class hierarchies. Some example classes include iterator statement, conditional statement, and expression classes. Some example expression classes include constant, variable, function, and selector classes. In a message transformation architecture, transformation rules map incoming message schemas to outgoing message schemas. Transformation engines transform incoming messages to outgoing messages by applying the map object models to select data fragments of an incoming message and construct an outgoing message, from the fragments and from computational results of routines invoked on the fragments. Map object models are not dependent on particular formats for schema definitions.
1 . A computing system comprising:
a memory;
a processor set including at least one processor, the processor set in operable communication with the digital memory; and
a first message transformation map object model and a second message transformation object model residing in and configuring the memory, the first message transformation map object model representing a first transformation rule set which includes at least one transformation rule, the first message transformation map object model comprising a first transformation rule tree of objects, the first transformation rule tree of objects comprising a first outgoing message fragment constructor object which represents a construction of a first outgoing message fragment of a first outgoing message based on a first outgoing message structure of the first outgoing message, the first outgoing message fragment constructor object mapped to a first selector object which represents a selection of a first incoming message fragment of a first incoming message based on a first incoming message structure of the first incoming message, the second message transformation map object model comprising a second transformation rule tree of objects that differs from the first transformation rule tree of objects, the second transformation rule tree of objects comprising a second outgoing message fragment constructor object mapped to a second selector object.
2 . The computing system of claim 1 , further comprising a transformation engine which is configured to upon execution apply the transformation rule set to the incoming message.
3 . The computing system of claim 1 , wherein the transformation rule tree of objects further comprises at least one of:
a conditional statement object representing a conditional statement execution to conditionally perform transformation upon an application of the transformation rule set to the incoming message; or
an iterator statement object representing an iterator statement execution to iteratively perform transformation upon an application of the transformation rule set to the incoming message.
4 . The computing system of claim 1 , wherein the transformation rule tree of objects further comprises at least one of:
a constant expression object representing a constant expression upon an application of the transformation rule set to the incoming message, the constant expression object specifying a constant value and a constant value type; or
a function expression object representing a function expression upon an application of the transformation rule set to the incoming message, the function expression object specifying a transformation routine.
5 . A method performed by a computing system, the method comprising:
building a message transformation map object model in a digital memory, the message transformation map object model computationally representing a transformation rule set which includes at least one transformation rule, the message transformation map object model comprising a transformation rule tree of objects;
the building comprising placing in the transformation rule tree of objects an outgoing message fragment constructor object which represents a construction of an outgoing message fragment;
the building further comprising placing in the transformation rule tree of objects a selector object which represents a selection of an incoming message fragment, the outgoing message fragment constructor object mapped to the selector object in the transformation rule tree of objects;
the building further comprising placing in the transformation rule tree of objects at least one of the following:
a complex value object which instantiates a complex value class which is hierarchically below a node value class, the complex value object specifying a map element object that instantiates a map element class which is hierarchically above a map node class, the map node class having a member whose type is the node value class;
a selector object which instantiates a selector class which is hierarchically below an expression class;
a function expression object which instantiates a function expression class which is hierarchically below the expression class;
a variable object which instantiates a variable class which is hierarchically below the expression class;
a constant expression object which instantiates a constant expression class which is hierarchically below the expression class; or
a map object model object which instantiates a map object model class which comprises an incoming message structure identification and an outgoing message structure identification; and
providing a first outgoing message by applying the message transformation map object model to a first incoming message.
6 . The method of claim 5 , further comprising utilizing the message transformation map object model agnostically with respect to multiple message schema formats by performing the following:
providing a second outgoing message by applying the message transformation map object model to a second incoming message, wherein at least one of the following:
the first incoming message has a message structure defined in a first schema format, the second incoming message has the message structure defined in a second schema format, and the first schema format differs from the second schema format; or
the first outgoing message has a message structure defined in a first schema format, the second outgoing message has the message structure defined in a second schema format, and the first schema format differs from the second schema format.
7 . The method of claim 5 , further comprising:
providing a second outgoing message by applying a second message transformation map object model to a second incoming message, wherein the second message transformation map object model comprises a second transformation rule tree of objects, the transformation rule tree of objects differs from the second transformation rule tree of objects, and the second transformation rule tree of objects includes a respective outgoing message fragment constructor object mapped to a respective selector object.
8 . The method of claim 5 , wherein providing the first outgoing message is performed by a transformation engine during an execution of the transformation engine, wherein the method further comprises storing the message transformation map object model in a nonvolatile storage medium, and wherein the message transformation map object model continues to exist in the nonvolatile storage medium after execution of the transformation engine has paused or ended or both.
9 . The method of claim 5 , wherein building the message transformation map object model comprises placing in the transformation rule tree of objects the complex value object which instantiates the complex value class which is hierarchically below the node value class.
10 . The method of claim 5 , wherein building the message transformation map object model comprises placing in the transformation rule tree of objects the selector object which instantiates the selector class which is hierarchically below the expression class.
11 . The method of claim 5 , wherein building the message transformation map object model comprises placing in the transformation rule tree of objects the function expression object which instantiates the function expression class which is hierarchically below the expression class.
12 . The method of claim 5 , wherein building the message transformation map object model comprises placing in the transformation rule tree of objects the variable object which instantiates the variable class which is hierarchically below the expression class.
13 . The method of claim 5 , wherein building the message transformation map object model comprises placing in the transformation rule tree of objects the constant expression object which instantiates the constant expression class which is hierarchically below the expression class.
14 . The method of claim 5 , wherein building the message transformation map object model comprises placing in the transformation rule tree of objects the map object model object which instantiates the map object model class which comprises the incoming message structure identification and the outgoing message structure identification.
15 . The method of claim 5 , further comprising ascertaining the presence of a transformation engine, and choosing at least the transformation rule set or the transformation rule based on the transformation engine.
16 . A computer-readable storage device configured with data and instructions which upon execution by a processor cause a computing system to perform operations, the operations comprising:
placing in a first transformation rule tree of objects, which is comprised in a first message transformation map object model, a first outgoing message fragment constructor object which represents a construction of a first outgoing message fragment;
placing in the first transformation rule tree of objects a first selector object which represents a selection of a first incoming message fragment, the first outgoing message fragment constructor object mapped to the first selector object in the first transformation rule tree of objects;
placing in a second transformation rule tree of objects, which is comprised in a second message transformation map object model, a second outgoing message fragment constructor object which represents a construction of a second outgoing message fragment; and
placing in the second transformation rule tree of objects a second selector object which represents a selection of a second incoming message fragment, the second outgoing message fragment constructor object mapped to the second selector object in the second transformation rule tree of objects.
17 . The computer-readable storage device of claim 16 , wherein the operations further comprise placing in the transformation rule tree of objects at least two of the following objects: a constant expression object, a function expression object, or a variable object.
18 . The computer-readable storage device of claim 16 , wherein the operations further comprise placing an incoming message namespace identifier in the message transformation map object model, and placing an outgoing message namespace identifier in the message transformation map object model.
19 . The computer-readable storage device of claim 16 , wherein the operations further comprise placing an incoming message schema type identifier in the message transformation map object model, and placing an outgoing message schema type identifier in the message transformation map object model.
20 . The computer-readable storage device of claim 16 , wherein the operations further comprise placing in the first transformation rule tree of objects at least one of the following objects: a conditional statement object representing a condition during a message transformation, or an iterator statement object representing an iteration during the message transformation.