U.S. patent application number 10/456293 was filed with the patent office on 2004-02-05 for software, method and system for data connectivity and integration having transformation and exchange infrastructure.
Invention is credited to Beck, Paul Robert JR., Caleraro, Matthew Aloysius, Grow, John Darwin, Ludke, Edward Reed, Sirdevan, Scott Michael, Sisco, Paul Allan.
Application Number | 20040025167 10/456293 |
Document ID | / |
Family ID | 29739928 |
Filed Date | 2004-02-05 |
United States Patent
Application |
20040025167 |
Kind Code |
A1 |
Grow, John Darwin ; et
al. |
February 5, 2004 |
Software, method and system for data connectivity and integration
having transformation and exchange infrastructure
Abstract
Software, methods, and system for data connectivity and
integration having a transformation and exchange gateway are
provided. The transformation and exchange gateway software is
stored in a memory and has a mapper to map connection data path
instructions, a plurality of inbound templates each to provide
inbound data processing instructions for an inbound data set having
an inbound data interchange protocol, at least one outbound
template to provide outbound data processing instructions for an
outbound data set having an outbound data interchange protocol
different from the inbound data interchange protocol, and a data
transformation and exchange engine in communication with the mapper
to locate a data path and determine a select one of the plurality
of inbound templates to use for inbound data processing
instructions, in communication with the select one of the plurality
of inbound templates to process the inbound data set responsive to
the inbound data processing instructions of the select one of the
plurality of inbound templates and thereby transform the inbound
data set to the outbound data set, and in communication with the at
least one outbound template to send the outbound data set with the
outbound data interchange protocol responsive to the outbound data
processing instructions of the at least one outbound template.
Inventors: |
Grow, John Darwin; (Palm
Coast, FL) ; Sirdevan, Scott Michael; (Green Cove
Springs, FL) ; Sisco, Paul Allan; (Middleburg,
FL) ; Beck, Paul Robert JR.; (Jacksonville, FL)
; Ludke, Edward Reed; (Jacksonville, FL) ;
Caleraro, Matthew Aloysius; (Jacksonville, FL) |
Correspondence
Address: |
JEFFREY S. WHITTLE
BRACEWELL & PATTERSON
P.O. BOX 61389
HOUSTON
TX
77208-1389
US
|
Family ID: |
29739928 |
Appl. No.: |
10/456293 |
Filed: |
June 6, 2003 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
60387097 |
Jun 7, 2002 |
|
|
|
Current U.S.
Class: |
719/310 ;
707/E17.006 |
Current CPC
Class: |
H04L 67/75 20220501;
G06F 16/252 20190101; H04L 67/62 20220501; H04L 67/563 20220501;
H04L 67/565 20220501; G06F 16/258 20190101; H04L 69/08
20130101 |
Class at
Publication: |
719/310 |
International
Class: |
G06F 015/163 |
Claims
That claimed is:
1. A system for data connectivity and integration, the system
comprising: a first computer defining a first server, the first
server having a first memory, a first data set stored therein, and
a first data interchange protocol; a first area network in
communication with the server; a plurality of remote data terminals
in communication with the first server through the first area
network by the first data interchange protocol, at least one remote
data terminal of the plurality of remote data terminals having data
terminal memory associated therewith; a second area network in
communication with the first server and the at least one remote
data terminals; a second computer remote from the first server, in
communication with the second area network, and defining a second
server, the second server having a second memory, a second data set
stored therein, and a second data interchange protocol; a third
computer remote from the first server, in communication with the
second area network, and defining a third server, the third server
having memory, a third data set stored therein and a third data
interchange protocol; and transformation and exchange gateway
software stored in data terminal memory of one of the plurality of
remote data terminals, having an output in communication with the
first server through the first area network by the first data
interchange protocol and having an input in communication with the
second server through the second area network by the second data
interchange protocol and in communication with the third server
through the second area network by the third data interchange
protocol to transform each of the second and third data interchange
protocols to the first data interchange protocol so that the
respective second and third data sets can be effectively
communicated to the first server through the transformation and
exchange gateway software and be in the first data interchange
protocol for effective use by the plurality of remote terminals and
to transform the first data interchange protocol to the respective
second and third data interchange protocols so that first data set
can be communicated from the first server to the second and third
servers so that the second and third servers for effective use
thereby.
2. A system as defined in claim 1, wherein the transformation and
exchange gateway software further has a plurality of inbound
templates defining the input positioned in communication with the
second and third servers to selectively define the respective
second and third data interchange protocols prior to receiving
inbound data and at least one outbound template defining the output
positioned in communication with the plurality of remote terminals
to selectively define the first data interchange protocol prior to
sending outbound data.
3. A system as defined in claim 2, wherein the transformation and
exchange gateway software further includes a mapper to map
connection data path instructions to the second and third
servers.
4. A system as defined in claim 3, wherein the transformation and
exchange gateway software includes a data transforming and
exchanging engine in communication with the mapper to locate a data
path and determine a select one of the plurality of inbound
templates to use for inbound data processing instructions, in
communication with the select one of the plurality of inbound
templates to process the inbound data set responsive to the inbound
data processing instructions of the select one of the plurality of
inbound templates and thereby transform the inbound data set to the
outbound data set, and in communication with the at least one
outbound template to send the outbound data set with the outbound
data interchange protocol responsive to the outbound data
processing instructions of the at least one outbound template.
5. A system as defined in claim 4, wherein the transformation and
exchange gateway software further comprises a scheduler in
communication with the mapper to schedule timing for making a
connection to the second and third servers having the inbound data
set and connection instructions to connect to the second and third
servers having the inbound data set.
6. A system as defined in claim 4, wherein the transformation and
exchange gateway software further comprises a set of graphical user
interface (GUI) tools in communication with the data transformation
and exchange engine to interface with a user, the GUI tools
including an inbound template GUI to select the inbound data
processing instructions and thereby define parameters for the
inbound data set and an outbound template GUI to select the
outbound data processing instructions and thereby define parameters
for the outbound data set.
7. Transformation and exchange gateway software stored in a first
memory, the software comprising: a mapper to map connection data
path instructions; a plurality of inbound templates each to provide
inbound data processing instructions for an inbound data set having
an inbound data interchange protocol; at least one outbound
template to provide outbound data processing instructions for an
outbound data set having an outbound data interchange protocol
different from the inbound data interchange protocol; and a data
transformation and exchange engine in communication with the mapper
to locate a data path and determine a select one of the plurality
of inbound templates to use for inbound data processing
instructions, in communication with the select one of the plurality
of inbound templates to process the inbound data set responsive to
the inbound data processing instructions of the select one of the
plurality of inbound templates and thereby transform the inbound
data set to the outbound data set, and in communication with the at
least one outbound template to send the outbound data set with the
outbound data interchange protocol responsive to the outbound data
processing instructions of the at least one outbound template.
8. Software as defined in claim 7, further comprising a scheduler
in communication with the mapper to schedule timing for making a
connection to an entity having the inbound data set and connection
instructions to connect to the entity having the inbound data
set.
9. Software as defined in claim 7, further comprising a set of
graphical user interface (GUI) tools in communication with the data
transformation and exchange engine to interface with a user, the
GUI tools including an inbound template GUI to select the inbound
data processing instructions and thereby define parameters for the
inbound data set and an outbound template GUI to select the
outbound data processing instructions and thereby define parameters
for the outbound data set.
10. A method of data interchanges, the method comprising: receiving
an inbound data set having a first data interchange protocol;
processing the inbound data set responsive to inbound data
processing instructions to thereby transform the inbound data set
into an outbound data set having a second data interchange protocol
different from the first data interchange protocol; and sending the
outbound data set having the second data interchange protocol.
Description
RELATED APPLICATIONS
[0001] This is a non-provisional patent application, which claims
the priority of provisional patent application U.S. Serial No.
60/387,097, filed Jun. 7, 2002, and titled "System, Method and
System for Electronic Data Interchange Among Multiple Data Sources"
which is incorporated herein by reference in its entirety.
BACKGROUND OF THE INVENTION
[0002] 1. Field of the Invention
[0003] The present invention is related to the fields of data
interchange systems and data connectivity and integration and
related software and methods.
[0004] 2. Description of Related Art
[0005] Communication and connectivity between disparate entities
has been a significant technical and financial challenge for the
past thirty years. Over the years, electronic data interchange
("EDI") formats and standards have emerged to communicate between
data interchange systems of these disparate entities or sources in
an effort to bring method and order to the process. For example,
disparate entities often exchange documents that conform to EDI
standards in efforts to streamline communication between the
entities. Entities often buy software that provides the
functionality needed to translate data to an EDI format for further
processing at another computer system. Even with the development of
EDI protocols, however, each implementation of these systems still
often requires individual and customized work to adapt to each
"node" in a communications network so that the entities can
communicate effectively. This custom approach, however, is
expensive, time-consuming and static (requiring modification as a
result of each and every change).
[0006] Recently, various enhanced protocols and standards, such as
XML and newer EDI standards, were developed to accommodate today's
explosive e-business environment. Even so, there are still multiple
standards, and there are nuances within almost every business
entity and application so that effective data interchange between
entities, sources, or applications still remains extremely
expensive and time-consuming to implement.
[0007] For example, an administrator often manually performs
various tasks required to prepare a data set or file for transfer
and processing at another computer system. Likewise, an
administrator at the receiving computer system often performs many
tasks to process the received data. The administrator, for example,
can manipulate, copy, append, create, or delete various files
depending on the condition or requirements of the data or documents
to be transferred or received. Also, the administrator can encrypt,
compress, or translate the data to another format. Further, the
administrator often maps data from one format to another and
performs tasks to complete the transfer or receipt of a data set or
file to and from another computer system. These administrators also
often create scripts or instruction sets to assist them in
performing various tasks. These functions by the administrator can
be time consuming and expensive as complexities related to a
plurality of different entities interfacing with one company have
different data formats, standards, or protocols. These complexities
often require teams of analysts at a customer, for example, and a
team of analysts at a supplier or distributor to try to address the
data connectivity issues between the entities.
[0008] More recently, software has emerged in attempts to address
some of these problems. Applicants, however, recognized that many
software companies are focusing only on the very expensive,
top-tier implementations. They build software modules that
"plug-in" between specific, popular commercial software
applications, and have additional tools to address disparate
communication environments. Although these companies can be
somewhat successful in facilitating working environments, they can
easily cost millions of dollars to implement, and take several
months (to over a year) to complete. They require the services of
trained systems integrators to manage and facilitate their
installation.
[0009] For example, many conventional approaches for addressing
disparate data interchange generally set a proposed solution on top
of some existing data "standard" such as a particular version of
EDI such as X12, some version of XML such as ebXML, or some other
proprietary data format. Applicants recognized this as being
problematic in that invariably entities wanting to connect
electronically to another company often have to adopt that other
entity's data "standard" whether it was convenient or not.
Applicants recognized that this problem is like getting 12 people
into a room, all of whom speak different languages, and trying to
decide how to communicate with one another.
SUMMARY OF THE INVENTION
[0010] In view of the foregoing, embodiments of the present
invention advantageously provide a system, apparatus, software, and
methods for data connectivity and integration that facilitate fast
and accurate transformation and exchange of data among a plurality
of entities, sources, or applications. Embodiments of a system,
apparatus, software and methods for data connectivity and
integration of the present invention advantageously identify a
communication data format or connectivity protocol and translate or
transform it to its connected applications. Embodiments of an
apparatus and software for data connectivity and integration of the
present invention are also adaptable to predictable future formats
that may come into practice, and can perform these functions in
near real-time. Because embodiments of an apparatus and software
for data connectivity and integration of the present invention
operate as a translator, these embodiments do not rely on a limited
set of pre-determined modules. Embodiments of a system, apparatus,
software and methods for data connectivity and integration of the
present invention further advantageously adapts easily to a very
large number of entities, sources, or applications and, therefore,
require little time or investment to implement. Embodiments of a
system, apparatus, software, and methods for data connectivity and
integration of the present invention still further advantageously
were developed as a powerful, open approach to data connectivity
and leverage the capabilities of existing standards, such as EDI,
XML and Java, to manipulate, transform, and exchange electronic
data transparently and accurately.
[0011] Embodiments of software, methods, and system for data
connectivity and integration of the present invention
advantageously can target various environments including, but not
limited to, the following:
[0012] (a) One to One: From one entity or company to another (i.e.,
between a parent company's software and that of its
subsidiary);
[0013] (b) One to Many: From one company to multiple companies
(i.e., between a wholesale distributor, and its suppliers and
distributors);
[0014] (c) Many to Many: Within group entities (i.e., a commerce
exchange between suppliers, distributors, retail outlets and
service providers); and
[0015] (d) Intra-company: From one company's software application
to its other application(s) (i.e., between a company's e-commerce
application and its Inventory Management application).
[0016] Embodiments of a system and software for data connectivity
and integration have a transformation and exchange infrastructure
(TEI) that takes incoming data (from any source using any protocol)
and transforms it into a form that can be read and understood
natively by the destination(s). The TEI advantageously has two
parts: the exchange part is where data from various sources are
sent to various destinations, and the transformation part is where
the data is manipulated and transformed so that a first data
protocol coming from the source is properly turned into the second
data protocol by the time it reaches the destination. TEI is an
infrastructure in that TEI is broader than a single application,
but narrower than an operating system. TEI has the capability of
effectively working in both arenas and is not limited to a single
area.
[0017] More particularly, embodiments of the present invention
provides a system for data connectivity and integration that
includes a first computer defining a first server. The first server
having a first memory, a first data set stored therein, and a first
data interchange protocol. A first area network is in communication
with the server, and a plurality of remote data terminals is in
communication with the first server through the first area network
by the first data interchange protocol. At least one remote data
terminal of the plurality of remote data terminals has data
terminal memory associated therewith. A second area network is in
communication with the first server and the at least one remote
data terminals. A second computer remote from the first server is
in communication with the second area network and defines a second
server. The second server has a second memory, a second data set
stored therein, and a second data interchange protocol. A third
computer remote from the first server is in communication with the
second area network and defines a third server. The third server
also has memory, a third data set stored therein and a third data
interchange protocol. Transformation and exchange gateway software
is stored in the data terminal memory of one of the plurality of
remote data terminals, has an output in communication with the
first server through the first area network by the first data
interchange protocol, and has an input in communication with the
second server through the second area network by the second data
interchange protocol and in communication with the third server
through the second area network by the third data interchange
protocol to transform each of the second and third data interchange
protocols to the first data interchange protocol so that the
respective second and third data sets can be effectively
communicated to the first server through the transformation and
exchange gateway software and be in the first data interchange
protocol for effective use by the plurality of remote terminals and
to transform the first data interchange protocol to the respective
second and third data interchange protocols so that first data set
can be communicated from the first server to the second and third
servers so that the second and third servers for effective use
thereby.
[0018] Additionally, embodiments of a system of the present
invention can include the transformation and exchange gateway
software further having a plurality of inbound templates defining
the input positioned in communication with the second and third
servers to selectively define the respective second and third data
interchange protocols prior to receiving inbound data and at least
one outbound template defining the output positioned in
communication with the plurality of remote terminals to selectively
define the first data interchange protocol prior to sending
outbound data. The transformation and exchange gateway software can
further have a mapper to map connection data path instructions to
the second and third servers, a data transforming and exchanging
engine in communication with the mapper to locate a data path and
determine a select one of the plurality of inbound templates to use
for inbound data processing instructions, in communication with the
select one of the plurality of inbound templates to process the
inbound data set responsive to the inbound data processing
instructions of the select one of the plurality of inbound
templates and thereby transform the inbound data set to the
outbound data set, and in communication with the at least one
outbound template to send the outbound data set with the outbound
data interchange protocol responsive to the outbound data
processing instructions of the at least one outbound template, and
a scheduler in communication with the mapper to schedule timing for
making a connection to the second and third servers having the
inbound data set and connection instructions to connect to the
second and third servers having the inbound data set. The
transformation and exchange gateway software can also include a set
of graphical user interface (GUI) tools in communication with the
data transformation and exchange engine to interface with a user.
The GUI tools can include an inbound template GUI to select the
inbound data processing instructions and thereby define parameters
for the inbound data set and an outbound template GUI to select the
outbound data processing instructions and thereby define parameters
for the outbound data set.
[0019] Embodiments of the present invention also provide
transformation and exchange gateway software stored in a memory.
The software includes a mapper to map connection data path
instructions, a plurality of inbound templates each to provide
inbound data processing instructions for an inbound data set having
an inbound data interchange protocol, at least one outbound
template to provide outbound data processing instructions for an
outbound data set having an outbound data interchange protocol
different from the inbound data interchange protocol, and a data
transformation and exchange engine in communication with the mapper
to locate a data path and determine a select one of the plurality
of inbound templates to use for inbound data processing
instructions, in communication with the select one of the plurality
of inbound templates to process the inbound data set responsive to
the inbound data processing instructions of the select one of the
plurality of inbound templates and thereby transform the inbound
data set to the outbound data set, and in communication with the at
least one outbound template to send the outbound data set with the
outbound data interchange protocol responsive to the outbound data
processing instructions of the at least one outbound template.
[0020] Further, embodiments of the transformation and exchange
gateway software can includes a scheduler in communication with the
mapper to schedule timing for making a connection to an entity
having the inbound data set and connection instructions to connect
to the entity having the inbound data set and a set of graphical
user interface (GUI) tools in communication with the data
transformation and exchange engine to interface with a user. The
GUI tools can include an inbound template GUI to select the inbound
data processing instructions and thereby define parameters for the
inbound data set and an outbound template GUI to select the
outbound data processing instructions and thereby define parameters
for the outbound data set.
[0021] The present invention also provides embodiments of method of
data interchange. A method includes receiving an inbound data set
having a first data interchange protocol, processing the inbound
data set responsive to inbound data processing instructions to
thereby transform the inbound data set into an outbound data set
having a second data interchange protocol different from the first
data interchange protocol, and sending the outbound data set having
the second data interchange protocol.
[0022] Implementation of embodiments of TEI gateway software of the
present invention preferably uses layered architecture to allow the
software to be embedded inside another application, used as an
application service provider (ASP), run as a stand-alone
application, or implemented as separate independent modules. The
software can operate in the enterprise application integration
(EAI) space because it is capable of connecting disparate systems
together in a unifying manner, but is different from traditional
EAI tools in that it does not require "deep" integration into CRM,
ERP, or other enterprise applications in order to achieve the goal
of system interoperability. For example, if the goal is to capture
customer data using a CRM application, and then make sure that the
customer's relevant billing information is transferred into the
backend ERP system, the TEI gateway software easily handles this
without requiring that the CRM and ERP systems be awkwardly united.
Instead, these systems can remain separate systems without
requiring that the TEI gateway software be surgically (and
artificially) implanted.
[0023] Embodiments of a system, methods, and software for data
connectivity and integration of the present invention have a data
transformation and exchange engine capable of interpreting
templates that describe the incoming and/or outgoing data without
actually carrying the data. This, for example, releases embodiments
of a system, apparatus, and software from having to "know" anything
about any other data standards or formats. Instead, these
embodiments act as a sort of universal translator. This universal
translator can receive data transmitted from essentially any source
and transform it, according to the instructions found in the
interpreting templates, into the format needed by or understood
natively by a receiving destination entity or source. By providing
embodiments of a system, methods, and software for data
connectivity and integration of the present invention, for example,
entities are no longer forced to fit their data into existing
"standards" and enhances these entities abilities to do business
with other entities for which they otherwise were not able.
BRIEF DESCRIPTION OF THE DRAWINGS
[0024] Some of the objects and advantages of the present invention
having been stated, others will become apparent as the description
proceeds when taken in conjunction with the accompanying drawings,
in which:
[0025] FIG. 1A is a schematic view of a system for data
connectivity having transformation and exchange infrastructure
(TEI) for communication between a plurality of entities according
to an embodiment of the present invention;
[0026] FIG. 1B is a schematic view of a system for data
connectivity having transformation and exchange infrastructure
(TEI) for communication between a plurality of entities according
to another embodiment of the present invention;
[0027] FIG. 1C is a schematic view of a system for data
connectivity having transformation and exchange infrastructure
(TEI) for communication between a plurality of entities according
to still another embodiment of the present invention;
[0028] FIG. 1D is a schematic view of a system for data
connectivity having transformation and exchange infrastructure
(TEI) for communication between a plurality of entities according
to yet another embodiment of the present invention;
[0029] FIG. 2 is a schematic view of a system for data connectivity
having TEI for communication between a plurality of entities having
TEI translating gateway software according to an embodiment of the
present invention;
[0030] FIG. 3 is a schematic view of TEI gateway software according
to an embodiment of the present invention;
[0031] FIG. 4 is a schematic view of TEI translating gateway
software having independent and separate data interchange
connectivity and layering for the TEI according to an embodiment of
the present invention;
[0032] FIG. 5 is a schematic view of a method of doing business for
data connectivity according to an embodiment of the present
invention;
[0033] FIG. 6 is a schematic environmental view of a system having
TEI for communicating between a plurality of entities according to
an embodiment of the present invention;
[0034] FIG. 7 is a flow diagram of a method of communicating for
TEI gateway software according to an embodiment of the present
invention;
[0035] FIG. 8 is a flow diagram of a method of getting data for TEI
gateway software according to an embodiment of the present
invention;
[0036] FIG. 9 is a flow diagram of a method of translating data for
TEI gateway software according to an embodiment of the present
invention;
[0037] FIG. 10 is a flow diagram of a method of initializing an
data stream for TEI gateway software according to an embodiment of
the present invention;
[0038] FIG. 11 is a flow diagram of a method of parsing a record
for TEI gateway software according to an embodiment of the present
invention;
[0039] FIG. 12 is a flow diagram of a method of processing database
data for TEI gateway software according to an embodiment of the
present invention;
[0040] FIG. 13 is a flow diagram of a method of processing database
data for TEI gateway software according to an embodiment of the
present invention;
[0041] FIG. 14 is a flow diagram of a method of creating an
outbound record for TEI gateway software according to an embodiment
of the present invention;
[0042] FIG. 15 is a flow diagram of a method for parsing a relation
among data for TEI gateway software according to an embodiment of
the present invention;
[0043] FIG. 16 is a flow diagram of a method of sending data for
TEI gateway software according to an embodiment of the present
invention;
[0044] FIG. 17 is a flow diagram of a method of processing a
synchronous response according to an embodiment of the present
invention;
[0045] FIG. 18 is a flow diagram of a method of processing errors
for TEI gateway software according to an embodiment of the present
invention;
[0046] FIG. 19 is a flow diagram of a method of scheduling for TEI
gateway software according to an embodiment of the present
invention;
[0047] FIG. 20 is a schematic view of a graphical user interface to
select a communication group for TEI gateway software according to
an embodiment of the present invention;
[0048] FIG. 21 is a schematic view of a graphical user interface to
select and create inbound and outbound templates for TEI gateway
software according to an embodiment of the present invention;
[0049] FIG. 21A is a schematic view of a graphical user interface
having an inbound template according to an embodiment of the
present invention;
[0050] FIG. 21B is a schematic view of a graphical user interface
having an outbound template according to an embodiment of the
present invention;
[0051] FIG. 22 is a schematic view of a graphical user interface
having a transfer screen to connect from a local machine to a
remote server according to an embodiment of the present
invention;
[0052] FIG. 23 is a schematic view of a graphical user interface to
establish communications to complete a data exchange or transaction
for TEI gateway software according to an embodiment of the present
invention;
[0053] FIG. 24 is a schematic view of a graphical user interface to
select communications for TEI gateway software according to an
embodiment of the present invention;
[0054] FIG. 25 is a schematic view of a graphical user interface of
a schedule manager for TEI gateway software according to an
embodiment of the present invention;
[0055] FIG. 26 is a schematic view of a graphical user interface of
an initial login to an account for user data connectivity
management for TEI gateway software according to an embodiment of
the present invention;
[0056] FIG. 27 is a schematic view of a graphical user interface of
a user data connectivity management for TEI gateway software
according to an embodiment of the present invention; and
[0057] FIG. 28 is a schematic view of a graphical user interface of
account management according to an embodiment of the present
invention.
DETAILED DESCRIPTION
[0058] The present invention now will be described more fully
hereinafter with reference to the accompanying drawings in which
illustrated embodiments of the invention are shown. This invention
may, however, be embodied in many different forms and should not be
construed as limited to the embodiments set forth herein; rather,
these embodiments are provided so that this disclosure will be
thorough and complete, and will fully convey the scope of the
invention to those skilled in the art. Like numbers refer to like
elements throughout, and prime or double prime notation, if used,
refers to like elements in alternative embodiments.
[0059] FIGS. 1A-28 illustrate embodiments of a system, software,
and methods for data connectivity having transformation and
exchange infrastructure (TEI) according to the present invention
and provide an e-commerce integration application that facilitates
fast and economical data connectivity among multiple distinct
entities using virtually any data format, connectivity protocol or
delivery mechanism. IT departments within companies, for example,
have the responsibility of writing, buying, deploying, and
maintaining the applications and related technologies that are
needed to keep a company current in the Information Age.
Traditionally, there has been a give and take relationship with the
"buy vs. build" decision on whether to write a custom application
in-house, or to buy an off-the-shelf application written by someone
else. Embodiments of TEI gateway software according to the present
invention, however, advantageously fits both. As shown in FIGS.
1A-1D and 6, for example, a site license in the software allows
companies who desire to buy an application that is ready to be
deployed and used immediately to connect suppliers, vendors,
partners, and others into their existing systems and lines of
communications either through the company itself (see FIG. 1 A) or
through a third party remote service provider (FIG. 1B). An
original equipment manufacturer (OEM) license in the software
allows companies the ability to embed the software technology
directly into their custom applications (see FIGS. 1C-1D), or to
use whatever components of the software desired or appropriate for
a "custom" solution.
[0060] A system and software for data connectivity and integration
can be effective in a wide variety of scenarios because of at least
three design and architectural objectives: human control is kept at
the semantic level and the rest is automated, the system and
software do not require any predetermined data formats, and the
architecture is layered to provide flexibility. The system,
software, and methods operate in real-time and connect to internal
or external data sources, regardless of the EDI or XML applications
being used (this applies even if no standard is being used). The
TEI gateway software has an extensible J2EE or Java
platform-independent solution that allows companies with distinct
systems and environments to transparently exchange electronic data.
It provides businesses with seamless integration and translation
capabilities, regardless of any public or proprietary EDI, XML or
other data formats in use. The TEI gateway software can be placed
behind company firewalls for use on internal applications in
addition to being used as an application service provider (ASP) or
OEM. The system and software does not require an outside company or
IT engineer to "map" the data from point A to point B but can
easily be handled by a business analyst, for example. As new
standards develop or evolve, the new standards can be easily
integrated into the software, for example, in as little as a single
day.
[0061] The TEI gateway software supports any-to-any data exchange
and is an effective, fast approach to data connectivity. It does
not replace EDI with XML; rather it works directly with existing
systems to create a cohesive environment where applications talk to
other entities such as suppliers, customers or distributors or
partners, such as shown in FIG. 1, without data loss or the
requirement for extensive coding. The TEI gateway software also
combines XML and EDI transformation capabilities, enabling a
company to extend its reach to virtually any audience. Through the
use of TEI gateway software, e-commerce or similar applications can
be integrated with a wide variety of supply chain trading partners
with no fear of exclusion, high-expense, long implementation times,
or other typical challenges. Once installed, frequent changes and
additions to trading partners and their applications do not cause
unnecessary gaps in service or lengthy software development
tasks.
[0062] A number of key assumptions factor into the architecture,
design, and development of the TEI gateway software according to
embodiments of the present invention. For example, EDI and XML are
extremely well adopted, though they are not complete communication
solutions as variations exist (industry leaders continue to
disagree on which EDI or QML standard to adopt) including which
vendor, version, style and syntax. Consequently, the first major
step in developing the TEI gateway software was to acknowledge that
EDI and XML do not provide a "total solution" for everyone and to
limit coding to any of these standards would limit what the
software could do tomorrow. Several data connectivity software
products have these limits and, therefore, require constant
revisions and enhancements in order to keep current with shifts in
industry practice. This is not in the best interest of many
entities. Consequently, the data definition has been separated from
the communication layers (see FIGS. 3-4) in the embodiments of
software and systems of the present invention so that data can be
transformed from any source using any method.
[0063] A first design consideration was to make the TEI gateway
software entirely decoupled from any existing EDI or XML "standard"
by architecting it so that any such standards were held in
modifiable templates, apart from the actual transformation and
exchange engine, so that industry changes could be captured quickly
with little coding being needed (see FIGS. 2-3 and 21-22). This has
the added effect of making any proprietary changes to a given
standard easy to adapt, as no coding is necessary if, for example,
a company needed to extend an existing standard to better handle
its own data.
[0064] Second, and a key design consideration, was that the less
integration necessary to connect entities, sources, applications,
or partners, the better the design. The less time, planning, and
necessary resources required to efficiently integrate and connect
partners, the faster the implementation and greater the return on
investment (ROI) for the software users. Further, a goal was not
merely to make integration easy, but to make it invisible to those
being integrated. Integrating and connecting partners using
software, methods, or a system for data connectivity can be done
without the partner organization, entity, source, or application
having to do any significant integration work at all. This
capability was also a key design objective.
[0065] Third, the architecture and platform can be J2EE or Java
compliant. This satisfies dual requirements for cross-platform
capability and adherence to accepted code standards. Although the
software and system for data connectivity was designed to require
as little coding as possible, external coding may be necessary in
certain situations and a goal was for it to be straightforward and
accessible for information technology (IT) personnel. Additionally,
the capabilities of the TEI gateway software 60 and system 50 can
be extended through its pluggable algorithm module (see below), and
it was a design goal to make this straightforward and intuitive for
software developers.
[0066] Embodiments of the TEI gateway software of the present
invention advantageously operate in both worlds of value added
networks (VAN), which traditionally use EDI to handle
point-to-point data transfers, and data exchanges and marts, which
have arisen to compete with the VAN paradigm and which usually only
use XML or one of its derivatives, such as Web Services, rather
than EDI, as the document type. One reason that TEI gateway
software is able to do this is because the software does not care
about data format, size, connection protocol, or other arbitrary
forms. Because there is a difference between being "able to handle"
data in a specific format and "requiring that data be handled" in a
specific format, the TEI gateway software is "able to handle" any
kind of data and does not "require" that it come or go in any
particular form or format. The layer architecture of the TEI
gateway software handles the details of receiving data from any
kind of transportation protocol (such as e-mail, FTP, HTTP, a
database connection, etc.) and keeps it separate from the actual
format of the data (XML, SOAP, X12, EDIFACT, etc.) so that the
transformation process is kept separate from the exchange
process.
[0067] embodiments of the present invention provides a system for
data connectivity and integration that includes a first computer
defining a first server. The first server having a first memory, a
first data set stored therein, and a first data interchange
protocol. A first area network is in communication with the server,
and a plurality of remote data terminals is in communication with
the first server through the first area network by the first data
interchange protocol. At least one remote data terminal of the
plurality of remote data terminals has data terminal memory
associated therewith. A second area network is in communication
with the first server and the at least one remote data terminals. A
second computer remote from the first server is in communication
with the second area network and defines a second server. The
second server has a second memory, a second data set stored
therein, and a second data interchange protocol. A third computer
remote from the first server is in communication with the second
area network and defines a third server. The third server also has
memory, a third data set stored therein and a third data
interchange protocol. Transformation and exchange gateway software
is stored in the data terminal memory of one of the plurality of
remote data terminals, has an output in communication with the
first server through the first area network by the first data
interchange protocol, and has an input in communication with the
second server through the second area network by the second data
interchange protocol and in communication with the third server
through the second area network by the third data interchange
protocol to transform each of the second and third data interchange
protocols to the first data interchange protocol so that the
respective second and third data sets can be effectively
communicated to the first server through the transformation and
exchange gateway software and be in the first data interchange
protocol for effective use by the plurality of remote terminals and
to transform the first data interchange protocol to the respective
second and third data interchange protocols so that first data set
can be communicated from the first server to the second and third
servers so that the second and third servers for effective use
thereby.
[0068] Additionally, embodiments of a system of the present
invention can include the transformation and exchange gateway
software further having a plurality of inbound templates defining
the input positioned in communication with the second and third
servers to selectively define the respective second and third data
interchange protocols prior to receiving inbound data and at least
one outbound template defining the output positioned in
communication with the plurality of remote terminals to selectively
define the first data interchange protocol prior to sending
outbound data. The transformation and exchange gateway software can
further have a mapper to map connection data path instructions to
the second and third servers, a data transforming and exchanging
engine in communication with the mapper to locate a data path and
determine a select one of the plurality of inbound templates to use
for inbound data processing instructions, in communication with the
select one of the plurality of inbound templates to process the
inbound data set responsive to the inbound data processing
instructions of the select one of the plurality of inbound
templates and thereby transform the inbound data set to the
outbound data set, and in communication with the at least one
outbound template to send the outbound data set with the outbound
data interchange protocol responsive to the outbound data
processing instructions of the at least one outbound template, and
a scheduler in communication with the mapper to schedule timing for
making a connection to the second and third servers having the
inbound data set and connection instructions to connect to the
second and third servers having the inbound data set. The
transformation and exchange gateway software can also include a set
of graphical user interface (GUI) tools in communication with the
data transformation and exchange engine to interface with a user.
The GUI tools can include an inbound template GUI to select the
inbound data processing instructions and thereby define parameters
for the inbound data set and an outbound template GUI to select the
outbound data processing instructions and thereby define parameters
for the outbound data set.
[0069] Embodiments of the present invention also provide
transformation and exchange gateway software stored in a memory.
The software includes a mapper to map connection data path
instructions, a plurality of inbound templates each to provide
inbound data processing instructions for an inbound data set having
an inbound data interchange protocol, at least one outbound
template to provide outbound data processing instructions for an
outbound data set having an outbound data interchange protocol
different from the inbound data interchange protocol, and a data
transformation and exchange engine in communication with the mapper
to locate a data path and determine a select one of the plurality
of inbound templates to use for inbound data processing
instructions, in communication with the select one of the plurality
of inbound templates to process the inbound data set responsive to
the inbound data processing instructions of the select one of the
plurality of inbound templates and thereby transform the inbound
data set to the outbound data set, and in communication with the at
least one outbound template to send the outbound data set with the
outbound data interchange protocol responsive to the outbound data
processing instructions of the at least one outbound template.
[0070] Further, embodiments of the transformation and exchange
gateway software can includes a scheduler in communication with the
mapper to schedule timing for making a connection to an entity
having the inbound data set and connection instructions to connect
to the entity having the inbound data set and a set of graphical
user interface (GUI) tools in communication with the data
transformation and exchange engine to interface with a user. The
GUI tools can include an inbound template GUI to select the inbound
data processing instructions and thereby define parameters for the
inbound data set and an outbound template GUI to select the
outbound data processing instructions and thereby define parameters
for the outbound data set.
[0071] The present invention also provides embodiments of method of
data interchange. A method includes receiving an inbound data set
having a first data interchange protocol, processing the inbound
data set responsive to inbound data processing instructions to
thereby transform the inbound data set into an outbound data set
having a second data interchange protocol different from the first
data interchange protocol, and sending the outbound data set having
the second data interchange protocol.
[0072] Use of TEI gateway software.
[0073] The following scenario is intended to indicate how the
system 50 for data connectivity is used in practice such as in the
example illustrated in FIG. 1.
[0074] Typical Scenario: the customer 55 creates products that are
sold to a distributor 54, e.g., a Retail Partner, who then sells
them to the general public. To make it's products, the customer 55
also buys products from suppliers 52, e.g., Factory A, Factory B,
and Factory C. Prior to the existence of electronic data
interchange (EDI), all transactions between the customer 55 and its
supplier factories 52 were via telephone, faxes and mail or
couriers. Orders for more Factory A's or Factory B's required
someone at the customer 55 to manually place an order, then wait to
receive manual confirmation through the mail (or by phone).
Transactions took unnecessary time, and multiple people at both
ends had to get involved to complete the process.
[0075] The customer 55 faced the following problem: they wanted to
connect to a distributor 54 using an XML-based data interchange
protocol for its system, but distributor 54 had adopted EDI
previously, and had not chosen to use XML. The customer 55 also
wanted to connect to the Factory A, Factory B, and Factory C, but
there were problems. Factory A was now installing a J2EE
application server and custom coding it to handle orders, including
a variety of planned electronic communications that they had yet to
define. Factory B was already using ebXML via the web, and
insisting that anyone doing business with them had to use (their
choice of) XML to do business with them. Factory B had long ago
created a proprietary system that used its own socket based system,
and had no budget to adapt to a new system, including any changes
to their order form.
[0076] Previously the customer 55 had to look at a number of
possible solutions to solve this problem, and may be required to
invest the money to write custom data connectivity code to attach
each supplier to their system. Why? Too many off-the-shelf
solutions required all of the customer's 55 partners to adopt some
standard (thus almost never happens), or write custom code. The
stopping point for the customer 55 can be that they are just
agreeing to sign up 500 new vendors and merchants, and each would
likely require significant, custom setup. The customer 55 simply
does not have the programming staff (or budget) for such a
project.
[0077] The data connectivity to the distributor 54 is solved,
because the TEI gateway software 60 can handle any form of EDI or
other data interchange protocol. The connectivity to Factory B is
also resolved, because the TEI gateway software 60 can be adaptable
to any kind of data stream that Factory B's J2 EE application is
likely to use. Factory A is gracefully handled, because the TEI
gateway software also handles any form of XML and Factory C's
proprietary socket connection is not an issue, neither is their
proprietary cryptic order form, because the TEI gateway software
does not require any particular data format, only that someone
indicate how it should be translated into the workflow. The
customer 55 also can select the TEI gateway software 60 for this
application because it can accommodate the 500 new vendors and
merchants the customer 55 wants to bring into their trading
application.
[0078] The TEI gateway software 60 is platform independent (any
32EE compliant platform), connects using FTP, HTTP/S, email,
socket, files, custom protocols and/or interfaces for support, and
has drag drop user interface for managing data, systems integration
and partners. The TEI gateway software 60 has extensible
capabilities via pluggable algorithm module 68 and can be directly
integrated with most Enterprise Application Servers (Weblogic,
WebSphere, IPlant, Borland, Jboss, etc.). The system for data
connectivity, for example, can have 128bit security, dynamic
document and format recognition, and automatic data merge,
translation, and split logic for Store and forward capabilities.
The TEI gateway software can provide support for new HIPPA
standards and had reporting mechanisms for performance and usage,
For example, the supported platforms can be Linux, Solaris, HP
Unix, Windows NT/2000 Oracle, Sybase, DB2, and MySQL.
[0079] TEI gateway software 60 is used to connect multiple sources
and providers of electronic data together into a system that acts
as if no natural barriers exist between them. Most systems have
little in common with each other and do not easily work together at
all, let alone in a seamless and integrated fashion. The TEI
gateway software 60 advantageously makes such electronic
connectivity possible in a realistic, effective, straightforward,
and rapid manner. The TEI gateway software 60 is focused to
efficiently connect, transmit, receive, and transform, electronic
data between diverse trading partners, suppliers, information
brokers, or other sources of electronic data.
[0080] The TEI gateway software 60 or infrastructure has the
following five main elements:
[0081] (1) Data Transformation and Exchange Engine 65 (the core
software itself);
[0082] (2) Partner Maps 64 (documents that describe remote partner,
entity, source, or application configurations);
[0083] (3) Inbound and Outbound Templates 62 (describe data
transformations);
[0084] (4) GUI Tools 66 (for partner and system administration);
and
[0085] (5) External Modules 68.
[0086] The transformation and exchange engine 65 is the core of the
application. The Partner Map 64 and Inbound Template 61 define
rules, and the transformation and exchange engine 65 can be
considered the implementation resource for those rules. When a
Scheduler [see below] reads the Partner Map 64 and determines when,
and how, to initiate contact with the partner entity, the incoming
data is passed, along with the appropriate Inbound and Outbound
Templates 62 to the transformation and exchange engine 65 for
processing. The engine 65 first reads the Partner Map 64 to
determine which templates 62 to use, then reads the Inbound
Template to configure itself to handle the incoming data
appropriately. The data is processed according to the blueprint
found in the Inbound Template 61, including all dynamic
substitutions and transformations. If multiple Inbound Templates 63
have been specified, these are aggregated and processed
accordingly. Once all the data needed by the Outbound Template 63
has been collected and transformed, it is sent to the
destination(s) specified, according to the rules contained in the
Outbound Template 63.
[0087] The TEI gateway software 60 uses a core engine 65, written
in Java or other software programming language as understood by
those skilled in the art, that manages connectivity between and
among various electronic data partners. The system 50 is designed
to allow either a distributed or single-server deployment model,
and can accommodate the preferences of an IT department with regard
to database utilization, file system use, high-availability, error
handling, and load balancing. It is database independent, file
system independent, and fits into existing IT infrastructure for
load balancing and messaging. The Scheduler is responsible for
general coordination of the application. When the system 50 is
started up, it loads all the Partner Maps 64 and scans them for
directions on when and how to connect to the partner entities. This
information is cached, and as each Partner requirement is examined,
the Scheduler creates a process to handle the interaction.
Typically, a Partner will require one of two conditions: open a
Listener, and wait for any incoming data from that Partner, or
periodically make calls into the Partner's system with data
requests. The Scheduler does not distinguish whether the Partner
wants to conduct business in real-time, or using nightly batch
feeds. Nor does it distinguish whether the data is incoming or
outgoing, multi-source or singlesource. It simply takes and manages
the information stored in the Partner Map 54, which is where all
the instructions exist.
[0088] The Partner Maps 64 are the documents that describe the
technical requirements of each company, organization, entity,
source, or application that is being connected to, including the
protocol(s), connection details, and where to locate the Inbound
and Outbound documents for each company. The Partner Map 64
contains all the essential data necessary to physically connect to,
and communicate with, the outside entity. The map itself simply
acts as a single point of contact for the system 50, and is
basically the "roadmap" on how to interact with that particular
company or organization. Only one Partner Map 64 is required for
each company 52, agency, or organization being configured. The
Partner Map 64 also holds information on where to find the related
Inbound and Outbound Templates 62 needed to handle data
interactions with the external entity. Although each partner 52
only requires exactly one unique Partner Map 64, that is not
necessarily the case for Inbound or Outbound Templates 62, which
can be reused by multiple partners (i.e., two different partners
can reference the same Inbound Template 61).
[0089] The Partner Map 64 acts as the first point of contact for
the TEI to identify the communication protocol(s), transport
layer(s), Inbound and Outbound Template 62 location(s), and all
other data required to do business electronically with that
particular partner 52. Further, the Partner Map 64 contains
document recognition intelligence necessary for the system to
dynamically evaluate incoming data streams and select the correct
Inbound Template(s) 61 to use. This capability is one of the key
strengths of the software 60; by allowing the process of field
mapping and transformation to be done in a data-driven manner, the
run-time flexibility of the system 50 is significantly enhanced.
Further, the flexibility achieved in allowing incoming data to
dynamically select the outbound templates 63, as well as trigger
appropriate transformations, has the beneficial side effect of
eliminating or greatly reducing the need for any external
coding.
[0090] There are three kinds of templates used for each Partner 52:
a single Partner Map 64 (see above), one or more Inbound Templates
61, and one or more Outbound Templates 63. All three of these
templates, for example, can be XML-based, but since they are only
used internally by the TEI gateway software 60, outside systems do
not necessarily have to be XML aware or compliant. The Inbound and
Outbound Templates 62are where the descriptions of the EDI (or XML)
mappings are held. These files are dynamically applied based upon
business rules defined in the Partner Map 64. Each template
contains the descriptive information needed by the core system to
correctly collect, process, and route the data. These documents can
be XML-based, but do not require XML to be used as part of the
incoming or outgoing data stream.
[0091] The GUI tools 66 are responsible for the creation and
management of the Partner Map 64, Inbound Template 61, and Outbound
Template 62. Although it is not necessary to use the GUI toolset to
create these documents, the tools 66 have been designed to make the
creation and editing of these documents straightforward and
efficient.
[0092] The Inbound Template 61 is where the actual instructions on
how to handle and interpret the incoming data are stored. When the
Partner Map 64 has identified (to the TEI engine 65) which Inbound
Template 61 to use, both that template 61 and the incoming data are
passed to the TEI engine 65 to be parsed and transformed according
to the rules contained in the template 61. The Inbound Template 61
describes the incoming data to the TEI engine 65, which processes
the data according to rules present in the template document;
including all substitutions, field rearranging, alpha and numeric
transformations, and any other data massaging that may be required;
including any calls to any pluggable algorithm module 68 which can
do additional data manipulation as necessary. Although the Inbound
Template 61 is written in DAL, the template is most often created
using the GUI tools 66 provided with TEI. Since the template has
the responsibility of describing potentially complex and/or
recursive data sources in terms that the TEI engine 65 can
understand, the GUI tools 66 provide a straightforward way to
create, edit, and manage these documents. It is certainly possible,
however, for the programmers or experienced IT personnel to utilize
third party tools to write these XML document, however, if desired,
according to the present invention. The GUI tools 66 are provided
for convenience and to reduce potential errors.
[0093] The Outbound Template 63 is essentially the exact reverse of
the Inbound Template 61, with a few additions. Since the needs to
the system 50 ultimately receiving the data are paramount, the
Outbound Template 63 drives additional dynamic performance, such as
requiring multiple data feeds from more than one Inbound Template
61, allowing multiple outbound types of connections.
[0094] The External Modules 68 (Rule-Based Processing Engine,
Pluggable Module) exist or can be used to facilitate advanced data
transformation capabilities in cases where the robust capabilities
of the system are insufficient to handle the complexities. The
"Pluggable" Module 68, for example, allows any external system or
code to be invoked so that processing can be passed outside of the
software 65 for further handling. This may be necessary in cases
where proprietary or classified data needs to be handled, or in
cases where complicated calculations (such as invoking tax tables
or real-time currency trading) must be handled.
[0095] The logical architecture of the TEI gateway software 60 does
not require the same limits on acceptable data types or
communication protocols that are most often found in middleware
products. It does not require that a pre-defined template exist for
a new trading partner or entity. This is because the TEI engine 65
makes no assumptions about the nature of data that is to be
transmitted or received. Data is generally received into the TEI
gateway software via an FTP, email, HTTP/S, Socket, or a DBMS
connection using a variety of connection protocols, such as TCP/IP,
IPX, POP, IMAP, or others (see FIGS. 2-4) The software 60 can
accommodate any known protocol or connection mechanism, as these
are merely adaptors and act as an abstraction layer to the physical
data stream. An adaptor can be created for any connection
required.
[0096] Partner information (the Partner Map 64, Inbound Template
61, and Outbound Template 63), which is collectively shown in FIG.
2 as Input Document Adaptor 69 and Output Document Adaptor 69, is
defined using a graphical user interface (see FIGS. 20-28). These
adaptors 69 define the connectivity required to do business with a
particular entity, and the adaptors 69 can be written in XML or in
other protocols. Because they can describe any kind of incoming or
outgoing data, the adaptors 69 are used by the TEI engine to
translate how to interact with the Partner 52, 54 on a particular
transaction (Partners 52, 54 can have as many kinds of transactions
as they require).
[0097] Data entering the TEI engine 65 is filtered using the
appropriate Inbound Data Template 61, which describes in detail how
the engine 65 is to parse and transform that particular data
stream. In addition, data requiring additional processing or
evaluation that goes beyond the transformation capabilities already
built into the system 50, can utilize both a rule-based
transformation service (the Rule-Based Translator), as well as
calling an external Pluggable Module 68 that allows incoming or
outgoing data to be manipulated as needed by outside systems or
external classes, functions, or RPC. The Pluggable Module 68 allows
the capabilities of the system 50 to be extended as needed, using
any language or system required to do so. The point of entry is
through a Java wrapper class that can be configured to setup and
call the external system, passing any data to and from the system
50 as needed. The Pluggable Module 68 extends the application
capabilities to integrate with legacy applications, customized
code, or any other external hooks that need to be called or
utilized during the handing of inbound and outbound data. The
module 68 allows direct connections to applications such as SAP,
Oracle, i2, J. D. Edwards, PeopleSoft, iPlanet, BEA, and others. It
also allows programmers to extend the systems capabilities by
calling any external code, which can be written in any
language.
[0098] The TEI gateway software 60 has native transformation
capabilities that are extensive. Therefore, it is unlikely that the
Pluggable Module 68 will be needed for ordinary transformation and
routing needs. It is more likely called when outside systems need
to be invoked, such as calls to a tax processing system, getting
government immigration data, or checking current stock and bond
pricing. The TEI gateway software 60, for example, can run on any
hardware capable of running an Enterprise Java system (which is
nearly every piece of computing hardware in existence). The exact
configurations, memory, disc storage, and other such factors are
entirely dependent upon the anticipated load, transaction volume,
and size of the data being handled. A single Windows-based server
can handle approximately 1500 transactions per minute, assuming
each transaction is approximately one megabyte in size. The TEI
gateway software 60 can be deployed on a single machine, or across
an entire cluster, depending upon on the load balancing and
high-availability needs of an organization. Further, the TEI
gateway software 60 can run on any system 50 capable of running
Java or the selected programming language, so hardware decisions
can be used based upon company preference and capacity
requirements.
[0099] In the example in FIG. 1, the Customer's 55 setup can take
the following configuration:
[0100] (a) A Sun server 58 running the Solaris operating system can
be the primary machine, where all transaction logs can reside.
[0101] (b) A Windows 2000 PC 56 can be used to provide load
balancing and redundancy and can be dedicated to the TEI gateway
software.
[0102] (c) A single Macintosh running OSX can also be setup to
provide additional load balancing and fault-tolerance, even though
it can sometimes be used for other purposes at the same time.
[0103] The machines can be configured as follows:
[0104] (a) The Sun Server can run the System Service, which has the
responsibility of knowing about and keeping connection with the
other machines in the cluster and managing system-level services.
It also can run the DataWave Controller, which manages the actual
transactions going between the Customer 55 and its partners 52,
54.
[0105] (b) The Windows 2000 machine would run another instance of
the DataWave Controller.
[0106] (c) The Mac OSX can also run an instance of the DataWave
Controller.
[0107] (d) The Customer's 55 existing web server can run the
Scheduler Servlet, which has the responsibility of coordinating
transactions by notifying any one of the DataWave Controllers that
a partner's external system 52, 54 requires interaction.
[0108] The list of partners 52, 54, their connectivity
requirements, inbound processing requirements, and outbound
definitions also can be stored as documents on the primary Sun
Server, although it is just as possible to store them in a
customer's Oracle database and/or replicate them across all
machines as understood by those skilled in the art. It is solely a
matter of preference by the IT staff to store them in one location
on the Sun server 58. The Scheduler can then get the updated list
of partner requirements from the Sun server 58 as needed, so that
it could perform its role of notifying the DataWave Controllers
that transactions need to be processed. In addition to the above
configuration, a number of individuals in IT, as well as one or
more Business Analysts who had been properly trained can have their
desktop PC's loaded with the Client software (Java-based) that
streamlined the configuration of Partners.
[0109] The TEI gateway software 60 has a robust graphical user
interface to allow IT professionals and business analysts the
ability to quickly construct Partner Maps 64 and Inbound and
Outbound Templates 62. The GUI Tool 66 also supports general
administrative functions for setup and deployment of the TEI
gateway software 60.
[0110] Connecting a partner 52, 54 is accomplished by defining
connection parameters necessary to interact with an outside entity,
regardless of the entity. In addition, setting up and configuring a
partner 52, 54 involves answering a number of basic questions about
how data is to be sent or received, its format, transformations,
substitutions, and related technical information.
[0111] Looking again at the connections between the Customer 55 and
its partners 52, 54, the information needed to set up electronic
interaction between each of them involves a number of simple
questions:
[0112] (a) How is the Customer 55 physically going to communicate
to each partner 52, 54?
[0113] (b) How many kinds of transactions will take place between
the Customer 55 and each partner 52, 54? [such as payment
transactions, invoicing, price quotes, etc.]
[0114] (c) For each kind of transaction, how many variations of
inbound or outbound data exist? [inbound and outbound data refers
to each discreet chunk of data that is either coming into, or going
out of, the company]
[0115] (d) In the case of Customer's 55 desire to connect to a
supplier 52, the logical partner setup would appears as
follows:
[0116] (e) The Ccustomer 55 will physically communicate with
Supplier 52 over a TCP/IP connection via a standard Internet
connection. Once the physical connection is made to Supplier's IP
address, the supplier requires that the Customer 55 connect and
authenticate to port 2741, which is the supplier's official
"outside vendor authentication port."
[0117] (f) The Customer 55 will be sending two outbound kinds of
electronic data: current price quotes on existing inventory, and
invoices for purchased goods.
[0118] (g) The Customer 55 will be receiving one kind of inbound
data: purchase orders.
[0119] Once this is accomplished, Partner setup is a simple process
comprised of N steps. A single Partner document is created for the
supplier 52. This document serves as the starting point for all
system-contact with the supplier 52, and contains all the required
information needed to communicate with them, regardless of advanced
levels of complexity in the installation. The physical setup of the
supplier document can be handled by the Customer 55, and may be
edited and configured by any external editor at the discretion of
IT. Additionally, the Partner Map 64 can be edited locally on a PC,
or remotely on the server 58; according to the specifications of
the IT department. The Partner Map 64 is given a unique name, such
as "Supplier 1" and the location of where to locate and store
partner-related temporary files is specified as a document path.
Then each of the unique Inbound and Outbound files (one file for
each unique connection) is specified, such as location, connection
information, and other dynamic conditions. The location of each
file can be completely different, the connection protocols and
mechanisms different, and the dynamic nature of which Inbound or
Outbound templates 62 are actually called is entirely
configurable.
[0120] In the case of Customer's 55 Inbound connection, the
supplier 52, for example, can complicate the issue by actually
having three separate purchasing divisions that generate their own
purchase orders; consequently, the Customer 55 has to be able to
identify and handle all three flavors seamlessly. This document
recognition ability is accomplished in the conditional section,
which can use a wide variety of expressions, including POSIX
Regular Expressions, to dynamically evaluate incoming data and
direct it to the appropriate template for processing.
[0121] To do this, the Customer 55 only has to specify the names
and locations of the three Inbound Templates 61, along with the
incoming data to scan so that the correct template can be invoked.
For example:
[0122] (a) Supplier's Automotive Division uses a comma separated
purchase order which has 23 fields with a separate header section
denoting date, time, issuer, and reply code.
[0123] (b) Supplier's Corporate Purchasing Department uses a
fixed-length field document with 47 fields and no header section at
all.
[0124] (c) Supplier's Home Division uses a pipe-delimited,
variable-length purchase order with between 17 and 22 fields, and a
timestamp header.
[0125] For the Customer 55 to accommodate this in the Partner
setup, all that is needed is to specify which incoming data will be
evaluated to determine the correct Inbound Template 61 to use.
Since the dynamic section of the Partner Map 64 allows different
Inbound Templates 61 to be specified based on the dynamic data that
was actually received, Customer 55 can specify that Inbound
Template #1 be used for Supplier's Automotive Division, Inbound
Template #2 for Supplier's Corporate Purchasing Department, and
template #3 for Supplier's Home Division.
[0126] The actual data, that can be checked and evaluated in order
to determine which template should be called, can be complex (if
the data requires it), but in the supplier's case, all that the
Customer 55 needs to do is to specify that any pipe-delimited
documents use Inbound Template #3, any comma-separated documents
use Inbound template #1, and everything else use Template #2, which
would be a Corporate purchase order. The Customer 55 is free to
make both the checking and error-handing routines more complex if
they choose to do so, but it is not required. It should be noted
that all of the particulars of how to handle the inbound data
itself is contained in the Inbound Template 61, and the Partner Map
64 does not need to know anything about it. The Partner Map 64
simply passes control of the incoming data to the correct Inbound
Template 61.
[0127] Once the Customer 55 has identified which Inbound Templates
61 to use for which kind of incoming data, it then can do the same
thing for the outgoing data to the supplier 52. The Customer 55
only needs to create references to which Outbound Templates to use
for the price quotes and invoices. The fact that price quotes needs
to be sent via FTP and that invoices are emailed to a special
accounting email address does not complicate the setup, because the
TEI gateway software 60 handles these issues gracefully.
[0128] The connections to the suppliers 52, e.g., Factory B,
Factory A, and Factory C can be handled in the same manner, using
the same approach. It makes little difference that each of these
have completely different formats and modes of connectivity,
because the system 50 is capable of handling each in a
straightforward manner.
[0129] Transacting business using the TEI gateway software 60 is a
straightforward process. Once a Partner 52, 54 has been set up, the
system 50 will handle the daily, hourly, and real-time transactions
without interruption. In the event that an exception occurs, such
as a connection site being inaccessible or an email address being
unknown, the system 50 is capable of taking a number of steps to
insure that the transaction completes. If desired, IT staff can be
notified that a transaction could not take place so that an
operator can intervene.
[0130] The TEI gateway software 60 allows for automated and
unattended use, that its intended use is to follow the set of
prescribed guidelines set down by IT staff and do it until notified
otherwise. In the Customer's 55 case, once the setup is completed,
no other action is required. Triggers to notify humans in boundary
cases (or in the event of errors) can be setup, and the system 50
can now be left to run on its own and simply report on the
transactions taking place.
[0131] This application is related to co-pending provisional patent
application U.S. Serial No. 60/387,097, filed Jun. 7, 2002, and
titled "System, Method and System for Electronic Data Interchange
Among Multiple Data Sources" which is incorporated herein by
reference in its entirety.
[0132] In the drawings and specification, there have been disclosed
typical embodiments of the invention and, although specific terms
are employed, they are used in a generic and descriptive sense only
and not for the purpose of limitation, the scope of the invention
being set forth in the following claims.
* * * * *