Browse Prior Art Database

Language for Message Transformation

IP.com Disclosure Number: IPCOM000015026D
Original Publication Date: 2001-Sep-16
Included in the Prior Art Database: 2003-Jun-20
Document File: 6 page(s) / 43K

Publishing Venue

IBM

Abstract

Introduction Message Brokers are an increasingly popular tool for integrating business applications. A Message Broker consists of two main components... A message transformation facility which re-formats messages so that messages produced by one application become intelligible to a second application A message delivery facility which delivers transformed messages to the applications that need to receive them This bulletin is concerned with the message transformation component. Message transformation can be performed by normal programs written in normal programming languages but experience in the industry has shown that overall costs are reduced by having purpose built transformation engines that are quicker and easier to program. Such programming is then often done by people whose skills are in business rather than computer programming and may be via a GUI rather than a text language. Until now these systems have suffered from a number of limitations...

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 25% of the total text.

Page 1 of 6

Language for Message Transformation

Introduction

Message Brokers are an increasingly popular tool for integrating
business applications. A Message Broker consists of two main
components...

    A message transformation facility which re-formats messages
so that messages produced by one application become
intelligible to a second application
A message delivery facility which delivers transformed
messages to the applications that need to receive them
This bulletin is concerned with the message transformation
component. Message transformation can be performed by normal
programs written in normal programming languages but experience
in the industry has shown that overall costs are reduced by
having purpose built transformation engines that are quicker and
easier to program. Such programming is then often done by people
whose skills are in business rather than computer programming and
may be via a GUI rather than a text language.

    Until now these systems have suffered from a number of
limitations...

    Producing a language that is simple enough for
non-programmers to use and yet powerful enough to tackle all
the variety of real life problems has proved to be elusive
When programming via a GUI, only relatively simple
operations can be performed
Mixing GUI written and manually written formal language code
has been difficult and fraught
Designing and implementing an adequate transformation
language has required a large development effort
These languages have been unfamiliar to users who have
therefore suffered learning curve costs
The system described here endeavours to solve these problems
by a combination of techniques which lead to a novel result...

    The transformation language described has a much broader
range of application than previous languages. Simple
operations can be specified very easily by non-programming
personnel and yet very complex operations can still be
programmed in the same language by the more experienced
The cost and timescale of a transformation engine
development are greatly reduced
Transformation performance is increased
GUI written and handwritten code can be mixed easily
Existing Systems

    Firstly consider the following simple transformation
fragment written in a conventional transformation language...

SET OutputRoot = InputRoot;

1

Page 2 of 6

SET OutputRoot.XML.Data.Invoice.Total =
OutputRoot.XML.Data.Invoice.Total * 1.175;

    The meaning of the first statement is... "Parse the incoming
message's bit-stream into a tree structure consisting of internal
elements (folders) and leaf elements (name-value pairs) and then
build a new tree which is a complete copy of the input tree". The
second statement means... "Locate the name value-pair called
"Total" inside the nested folders "XML", "Data" and "Invoice" and
multiply its value by 1.175. The end of the final statement has
an implied meaning of... "And finally generate a new bit-stream
to represent the new tree". This example is very simplistic, a
real example would probably modify many fields or create a new
message so differ...