In the figures which illustrate an example embodiment of this invention:
With reference to the accompanying drawings, a detailed description of the present invention will be provided.
The computer system generally includes a communications interface 26, such as an Ethernet card, to communicate to the electronic network 10. Other computer systems 13 and 13A may also be connected to the electronic network 10. One skilled in the art would recognize that the above system describes the typical components of a computer system connected to an electronic network. It should be appreciated that many other similar configurations are within the abilities of one skilled in the art and all of these configurations could be used with the methods of the present invention.
In addition, one skilled in the art would recognize that the “computer” implemented invention described further herein may include components that are not computers per se but include devices such as Internet appliances and Programmable Logic Controllers (PLCs) that may be used to provide one or more of the functionalities discussed herein. Furthermore, “electronic” networks are generically used to refer to the communications network connecting the processing sites of the present invention, including implementation by using optical or other equivalent technologies.
One skilled in the art would recognize that other system configurations and data structures and electronic/data signals could be provided to implement the functionality of the present invention. All such configurations and data structures are considered to be within the scope of the present invention.
The present invention is directed to an EDI Document Object Model, or EDI DOM, (hereinafter also referred to as “model”), which allows for an electronic interchange document. With such a model, various types of client software and applications can be utilized in order to manipulate, extract, and set segment, and/or sub-information stored within the model as well as create matching schema (meta message definition). This allows one to readily generate an interchange or document from the model at run-time which may be mapped/transformed to another structure. That is, a user is able to parse and pull particular information from a first electronic document, whereby that information may correspond to segment data, data or sub-data, and pull that information into a second electronic document in the same EDI format or in another EDI format.
The EDI DOM contains the classes or objects that serve as a container for EDI document s. The overall object model is shown in
EDI documents are represented as a collection of attributes, segments, functional groups and transaction sets.
Referring now to
The fundamental entities of an EDI document, which is represented by a Document node 210 in
The present invention describes a model for EDI messages using the Websphere Business Integration Message Broker (WBIMB) message model. This model is described in related co-pending US patent application entitled “Meta-model for associating multiple physical representations of logically equivalent entities in messaging and other applications”, filed on May 27, 2004, Ser. No. 10/703,037 and is herein incorporated by reference.
The logical structure of EDI messages is defined using the standard W3C XML Schema model and physical representations are defined using the Tagged/Delimited String (TDS) format. The standard W3C XML schema model is defined in the open-source document: http://dev.eclipse.org/viewcvs/indextech.cgi/.about.checkout.about./xsd-h-ome/docs/javadoc/org/eclipse/xsd/package-summary.html#details (accessible via http://www.eclipse.org/xsd). For a description of XML schemas generally, the reader is referred to the text XML Applications by Frank Boumphrey et al., 1998, Wrox Press, which text is hereby incorporated by reference herein. The XML schema recommendation is available at http://www.w3c.org/TR/xmlschema-0/ (“XML Schema Part 0: Primer”), http://www.w3c.org/TR/xmischema-1/(“XML Schema Part 1: Structures”, and http://www.w3c.org/TR/xmlschema-2/(“XML Schema Part 2: Datatypes”). The TDS format is described in detail at http://publib.boulder.ibm.com/infocenter/wmbhelp/v6r0m0/index.jsp?topic=/com.ibm.etools.mft.doc/ad00800_.htm, such readings are incorporated here by reference.
The model and techniques of the present invention exploit the advanced capabilities of WBIMB message model to create a definition for EDI envelope and messages which scales and performs well both at tooling and run time. The present invention relates specifically in defining the logical structure of the EDI envelope containing EDI messages. The physical representations are standard TDS format descriptions (see reference noted above) and won't be described further in the specification.
Table 1 below defines the Logical Model Representation of EDI Constructs. For definitions of the various constructs, the reader is referred to the W3 Schools web site available at: http://www.w3schools.com/xml/default.asp for reference. Also for reference, below identifies the EDI construct abbreviations:
As seen above, Table 1 illustrates the EDI constructs that are used in the logical model of the present invention for EDI messages using the open standards XML schema. The XML schema used for the EDI constructs are well known making it easy to program. The use of these EDI constructs allows one to build a standard logical instance compliant to XML schema and facilitates standard set of mapping tools working off XML schema to alter or map the EDI messages from one form to another, one message at a time. The present invention introduces, to the EDI Transaction Set construct, a schema group called EmbeddedMessageGroup. EmbeddedMessageGroup is a container for containing the EDI modeled message in the Message Model. It is modeled as well-known XML schema xsd:group with contentKind set to OpenDefined and composition set to Message. It contains the EDI modeled message as defined by the EDI standard or as customized by the user. As well documented in co-pending US patent application entitled “Meta-model for associating multiple physical representations of logically equivalent entities in messaging and other applications”, filed on May 27, 2004, Ser. No. 10/703,037, the content attribute is specific to messaging applications and is not expressly defined in the W3C XML Schema recommendation referenced above. This attribute has three enumerations representing alternative types of constraints of a message's s that may be applicable to a message received “on the wire.” The added enumerations provide a mechanism for use by a developer of tools which convert messages between alternative wire formats for indicating that it is acceptable if additional s exists in a message bit stream as long as it has all the s as defined in the logical model in the appropriate order. That is, the enumerations may be used to indicate that a particular message should match a partial message definition of the logical model when it is received, and in the case where the received message has additional s, the additional s may be ignored or processed by applications that are aware of the presence of additional s.
The three added content type enumerations are:
1. Closed—Default enumeration indicating that a message bit stream is to match the definition of the message in the logical model exactly (as implicitly defined in the XML Schema recommendation);
2. Open Defined—indicates that a message bit stream can contain any s which have been defined in the relevant message set (defined below); and
3. Open—the message bit stream can contain any s, even those that have been defined in different message sets.
The composition attribute extends the standard composition type attribute supported by XML schemas with enumerations useful for messaging applications, which enumerations are indicative of possible composition types for physical messages. The composition kind attribute extends the standard composition types of XML schemas (choice, sequence, and all) with the following two added enumerations:
1. Unordered Set—similar to “sequence” (which requires all s of a message to appear in sequence) except that s within the set may occur in any order.
2. Message—a restricted form of “choice” in which a complex type may have references only to those global s for which a message has been defined in the relevant message set.
Modeling EmbeddedMessageGroup as OpenDefined permits embedding of any EDI message within the group. This concept is analogous to a schema group which contains only xsd:any restricted to a set of namespaces.
Within EDI Interchange Envelope, Functional groups and Transaction sets are modeled as segment loops of unbounded cardinality. As a result, extraneous local s of anonymous complex types, FGL for functional group loop and TSL for transaction set loop, are introduced in the logical model which contain group reference to a corresponding Functional group and Transaction set respectively. An extraneous local is a local of complex type which repeats as many times as the number of Functional Groups modeled by the user in an interchange or number of Transaction Sets (modeled by the user) in a Functional Group. The complex type for the contains a group reference to Functional Group or the Transaction Set.
The present invention also introduces a new concept of having the ST segment (transaction set header which identifies the EDI message) and the SE segment (transaction set trailer) as being included in the Transaction Set group—instead of being part of the EDI Message as per the EDI standard.
This approach has the following advantages (among others):
Referring now to
As noted earlier, the creation of the new extraneous local s of anonymous complex types, functional group loop (FGL) and transaction set segment loop (TSL) which contain group reference to the functional group and transaction set, respectively, makes the addressing of messages much easier, that is, it makes it easy to write unambiguous XPATH or ESQL path statements to reference s within an instance document. This will be discussed further below.
Referring now to
The first example is that of an ESQL path statement which references s within an instance document. ESQL (Embedded SQL) is based on Structured Query Language (SQL), which is commonly used to query relational databases like DB2 Universal Database. A user can define the logic of message flows using ESQL by inserting ESQL code into built-in nodes that are supplied with the IBM WebSphere Message Broker, such as the Compute node, Database node, and Filter node. For more information regarding ESQL, the reader should reference IBM Redbook entitled “Websphere Message Broker Basics” having an ISBN of 0738494372 and an IBM Form Number of SG24-7137-00. It should be noted that the Websphere® Message Broker product (MRM domain), while creating an instance document for the message, strips of the top level and sticks the parsed tree under the InputRoot.MRM. Also noted is that ESQL paths are used in the Websphere® Message Broker product to reference s in the message instance built by the parser.
Referring back to
InputRoot.MRM.FGL[2].TSL[2].m—300
For the associated ST segment, the ESQL message path is:
InputRoot.MRM.FGL[2].TSL[2].ST
For the associated GS segment, the ESQL message path is:
InputRoot.MRM.FGL[2].GS
The second example is that of an XPATH path statement which references s within an instance document. XPATH (XML Path Language) is a terse (non-XML) syntax for addressing portions of a document. For more information, the reader should reference W3C Recommendation 16 Nov. 1999 (XML Path Language (XPATH) Version 1.0 located at http://www.w3.org/TR/xpath.
Referring back to
X12_EDI.FGL[2].TSL[2].m—300
For the associated ST segment, the XPATH message path is:
For the associated GS segment, the XPATH message path is:
X12_EDI.FGL[2].GS
Referring now to
In tool time period, since none of the EDI messages are defined in-line within the EDI Interchange envelope, its structure becomes very simple and small containing only a few set of elements pertaining to segments which surround the EDI Message. The EDI interchange envelope contains a logical container “Embedded Message Group” whose contentKind is set to openDefined (which is roughly equivalent to xsd:any construct of XML Schema), it allows any type of EDI message to be contained/substituted in the group at runtime. At tool time, users can create definition of EDI message type independent of the EDI Interchange envelope and map for mapping one EDI message to another. While creating maps, the expanded source and target trees contain definitions of only the EDI messages being mapped instead of all the possible different message types. This greatly improves performance and scalability of the message definition and mapping tools.
To give an illusion to the user that, he is mapping one EDI envelope to another, UI tools can expand the source and target trees up to the point of “Embedded Message Group” and then show a dialog to select a message from a given list of EDI message name and then expand the tree for the selected message only.
The invention can take the form of an entirely software embodiment or an embodiment containing both hardware and software elements. In a preferred embodiment, the invention is implemented in software, which includes but is not limited to firmware, resident software, microcode, etc.
Furthermore, the invention can take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system. For the purposes of this description, a computer-usable or computer readable medium can be any tangible apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.
The medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium. Examples of a computer-readable medium include a semiconductor or solid-state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk and an optical disk. Current examples of optical disks include compact disk-read only memory (CD-ROM), compact disk-read/write (CD-R/W) and DVD.
A data processing system suitable for storing and/or executing program code will include at least one processor coupled directly or indirectly to memory elements through a system bus. The memory elements can include local memory employed during actual execution of the program code, bulk storage, and cache memories which provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage during execution. Input/Output or I/O devices (including but not limited to keyboards, displays, pointing devices, etc.) can be coupled to the system either directly or through intervening I/O controllers.
Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modem and Ethernet cards are just a few of the currently available types of network adapters.
The foregoing description of various aspects of the invention has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed, and obviously, many modifications and variations are possible. Such modifications and variations that may be apparent to a person skilled in the art are intended to be included within the scope of the invention as defined by the accompanying claims.
This application is related in some aspects to the commonly owned and co-pending application entitled “A Method, System and Schema for Building a Hierarchical Model Schema Definition from a Flat Model Definition”, filed Sep. 5, 2006, assigned attorney docket number CA920060035US1, and assigned Ser. No. (to be provided), the entire contents of which are herein incorporated by reference. This application also is related in some aspects to the commonly owned and co-pending application entitled “Message Validation Model”, filed Sep. 5, 2006, assigned attorney docket number CA920060034US1, and assigned Ser. No. (to be provided), the entire contents of which are herein incorporated by reference. This application is also related in some aspects to commonly owned, and co-pending published patent application number US 2004-0103071 A1, entitled “Meta-Model for Associating Multiple Physical Representations of Logically Equivalent Entities in Messaging and Other Applications”, filed Nov. 6, 2003, and published May 27, 2004, the entire contents of which are herein incorporated by reference.