WO2006052996A2 - System, method and apparatus for an extensible distributed enterprise integration platform - Google Patents

System, method and apparatus for an extensible distributed enterprise integration platform Download PDF

Info

Publication number
WO2006052996A2
WO2006052996A2 PCT/US2005/040486 US2005040486W WO2006052996A2 WO 2006052996 A2 WO2006052996 A2 WO 2006052996A2 US 2005040486 W US2005040486 W US 2005040486W WO 2006052996 A2 WO2006052996 A2 WO 2006052996A2
Authority
WO
WIPO (PCT)
Prior art keywords
server
transaction
adapter
resource
service
Prior art date
Application number
PCT/US2005/040486
Other languages
French (fr)
Other versions
WO2006052996A3 (en
Inventor
Bruce Magown
Original Assignee
Integration Technologies, Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Integration Technologies, Inc filed Critical Integration Technologies, Inc
Priority to EP05848805A priority Critical patent/EP1819415A2/en
Publication of WO2006052996A2 publication Critical patent/WO2006052996A2/en
Publication of WO2006052996A3 publication Critical patent/WO2006052996A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5016Session

Definitions

  • the present invention relates generally to the field of transaction processing systems (e.g., "Information Integration Management”, “Enterprise Application Integration” and “Enterprise Information Integration”) and, more particularly, to a connector-server- adapter architecture used to act upon and integrate applications and data normally deployed in networked computing environments.
  • Transaction processing systems e.g., "Information Integration Management”, “Enterprise Application Integration” and “Enterprise Information Integration”
  • connector-server- adapter architecture used to act upon and integrate applications and data normally deployed in networked computing environments.
  • the present invention provides a system, method and apparatus for an extensible distributed enterprise integration platform that solves the problems associated with current software integration programs and focuses on embedding the systems integration process in to a platform which companies can use to integrate systems automatically.
  • the present invention provides an extensible software platform that integrates systems, databases, and services across technology and organizational boundaries.
  • This platform consists of a set of server components and application program interfaces.
  • the platform serves as a proxy between two or more systems (e.g. applications, databases, services, devices).
  • the platform serves as a service which manages and coordinates complex transactions across systems boundaries.
  • the integration server comprises three major components - transformation server, adaptor(s) and connector(s).
  • the business daemon is a component that allows starting integration transactions according to pre-defined schedule.
  • the transformation server is an integration engine, which executes integration transactions.
  • the adaptors implement application program interfaces that provide bi-directional communication between the server to different applications, databases, services and devices outside the server. Connectors bind applications or services (internal such as business daemon and external), which initiate integration transactions, to the transformation server.
  • the server components are programmed using Java, XML, XLST and XPath.
  • XML stands for Extensible Markup Language which is a standard format for documents containing structured information.
  • XSLT stands for XML Transformations which is a language for transforming XML and other (such as HTML, text, etc.) types of documents.
  • XPath stands for XML Path Language which is an expression language used by XSLT to access or refer to parts of an XML document.
  • the platform can extend to accommodate new systems by writing new connectors and adapters that implement application program interfaces (APIs), which translate systems protocols to a common format understood by the platform.
  • APIs application program interfaces
  • This decoupling of the transformation server from the external system protocol has the effect of simplifying the server and allowing it to appear as different types of servers depending on which API is used to connect to it.
  • the server appears to be a Web Server
  • the SOAP API the server appears to be a SOAP Server
  • the WAP API the server appears to be a WAP Server
  • the AMF API the server appears to be a Flash Remoting Server, etc.
  • the dynamic generation of system queries and commands based on the incoming data translated into internal format allows building flexible and generic integration transactions applicable to the variety of data sources and destinations without necessity to develop a new code.
  • the present invention provides for significant time and cost advantages over other approaches of systems integration. More specifically, the present invention provides a method for processing a service request in real time using an enterprise integration platform that includes a server communicably coupled to one or more connectors and one or more adapters.
  • the service request is received at the connector from a requestor communicably coupled to the connector.
  • the service request contains a transaction comprising one or more transaction steps.
  • the service request is translated into a server compatible format and the translated service request is passed to the server.
  • the transaction is then loaded from the translated service request and each step of the transaction is executed.
  • the execution of the transaction steprrequires accessing a resource one of the adapters is identified to communicate with the resource, a bi-directional communication session is established between the identified adapter and the resource, the transaction step is translated into a request compatible with the resource, the request is sent to the resource, a response is received from the resource, the response is translated into the server compatible format and the translated response is passed to the server.
  • a result for the executed transaction step is then determined.
  • a service response for the service request is then created based on the results for the executed transaction steps, the service response is passed to the connector where the service response is translated into a requestor compatible format and the translated service response is sent to the requestor.
  • the present invention provides an enterprise integration platform for processing a service request containing a transaction that includes one or more transaction steps in real time.
  • the enterprise integration platform includes a server communicably coupled to one or more connectors and one or more adapters.
  • the server loads the transaction from a translated service request, executes each transaction step of the transaction by identifying an adapter to communicate with a resource when necessary, determining a result for the executed transaction step, creating a service response for the service request based on the results for the executed transaction steps and passing the service response to a connector.
  • the connector receives the service request from a requestor, translates the service request into a server compatible format, passes the translated service request to the server, translates the service response into a requestor compatible format and sends the translated service response to the requestor.
  • the adapter establishes a bi-directional communication session with the resource, translates the transaction step into a request compatible with the resource, sends the request to the resource, receives a response from the resource, translates the response into the server compatible format and passes the translated response to the server.
  • FIGURE 1 provides a business view on the types of applications, systems and services that may be integrated in accordance with one embodiment of the present invention
  • FIGURE 2 depicts the Enterprise Integration Platform (EIP) in accordance with one embodiment of the present invention
  • FIGURE 3 illustrates example of the plurality requestors and data-system objects that are accessed, updated and integrated and examples of supported protocols in accordance with one embodiment of the present invention
  • FIGURE 4 illustrates the Application Service and Management Service of the
  • FIGURES 5A and 5B illustrate a method for processing a transaction in accordance with the present invention
  • FIGURE 6 illustrates the steps involved in a request cycle and how the process is supported in accordance with one embodiment of the present invention.
  • FIGURES 7A, 7B, 7C and 7D illustrate some of the many ways the server can be laid out in a physical network in accordance with one embodiment of the present invention. Description of the Invention
  • the present invention provides an extensible software platform that integrates systems, databases, and services across technology and organizational boundaries.
  • This platform consists of a set of server components and application program interfaces.
  • the platform serves as a proxy between two or more systems (e.g. applications, databases, services, devices).
  • the platform serves as a service which manages and coordinates complex transactions across systems boundaries.
  • server components There are two types of server components - business daemons (schedulers) and integration servers.
  • the integration server comprises three major components - transformation server, adaptor(s) and connector(s).
  • the business daemon is a component that allows starting integration transactions according to pre-defined schedule.
  • the transformation server is an integration engine, which executes integration transactions.
  • the adaptors implement application program interfaces that provide bi-directional communication between the server to different applications, databases, services and devices outside the server.
  • Connectors bind applications or services (internal such as business daemon and external), which initiate integration transactions, to the transformation server.
  • the server components are programmed using Java, XML, XLST and XPath.
  • XML stands for Extensible Markup Language which is a standard format for documents containing structured information.
  • XSLT stands for XML Transformations which is a language for transforming XML and other (such as HTML, text, etc.) types of documents.
  • XPath stands for XML Path Language which is an expression language used by XSLT to access or refer to parts of an XML document.
  • the platform can extend to accommodate new systems by writing new connectors and adapters that implement application program interfaces (APIs), which translate systems protocols to a common format understood by the platform.
  • APIs application program interfaces
  • This decoupling of the transformation server from the external system protocol has the effect of simplifying the server and allowing it to appear as different types of servers depending on which API is used to connect to it. For example, when using the HTML API the server appears to be a Web Server, when using the SOAP API the server appears to be a SOAP Server, when using the WAP API the server appears to be a WAP Server, when using the AMF API the server appears to be a Flash Remoting Server, etc.
  • the dynamic generation of system queries and commands based on the incoming data translated into internal format allows building flexible and generic integration transactions applicable to the variety of data sources and destinations without necessity to develop a new code. Furthermore, the combination of systems integration via a server, involving no definition or generation of program code, the decoupling of protocols, the dynamic command generation, the ability to easily accommodate new data systems and technologies, and the ability to masquerade as other servers, is to our knowledge is unique in the industry. As a result, the present invention provides for significant time and cost advantages over other approaches of systems integration.
  • the Enterprise Integration Platform (EIP) 100 in one aspect consists of extensible run-time Enterprise Integration Server (EIS) 102 that provides a mechanism to link systems, transform and exchange data, and executes workflow processes across technology environments.
  • EIS extensible run-time Enterprise Integration Server
  • the EIS 102 runs within a Run-Time Container 104 such as an application server, web application server, or servlet engine.
  • Requestors 106 (which may include business daemon as well as external applications or services) call the server 102 and ask it to run a particular transaction.
  • the transaction is loaded into the server 102 and executes.
  • the transaction may be simple or complex and may involve few or many steps and data-system objects (122-57 and collectively referred to as resources 120).
  • the transactions are defined in XML/XSLT and compiled and deployed to the Run-Time Container 104 for enhanced performance and security.
  • Examples of data-systems objects or resources 120 which are integrated by the server 102 include Enterprise Resource Planning (ERP) applications 122 (e.g., SAP 124, PeopleSoft 126, Oracle 128, etc.), Customer Relationship Management (CRM) and help desk applications 130 (e.g., Siebel 132, Vantive 134, Remedy 136, Clarify 138, Salesforce.com 140, etc.), other applications 142 (e.g., legacy systems 144, gateways 146, monitoring systems 148, Micromuse 150, etc.), databases 152 (e.g., Gupta 154, Sybase 156, Oracle 158, etc.), Distributed Application Services 160 (e.g., web services 162, message queues 164, transaction managers 166, etc.), Messaging and Collaboration Technologies 168 (e.g., calendar/scheduling systems 170, email systems 172, directory/identity services 174, etc.), and Networks 176 (e.g., IM 178, SMS (text messaging) 180, data feeds (
  • the architecture for the EIP 200 includes an Enterprise Integration Server (EIS) 102 and one or more connectors 202 (e.g., connector one, connector two, etc.) and one or more adapters 204 (e.g., adapter one, adapter two, etc.) that provide real-time and bi-directional communication across a plurality of technology protocols.
  • EIS Enterprise Integration Server
  • adapters 204 e.g., adapter one, adapter two, etc.
  • the purpose of each connector 202 is to provide an ability to start specific transactions or chains of transactions initiated by various requestors 106.
  • each adapter 204 is to translate a specific technology protocol used by the data system objects or resources 120 (e.g., data system objects Ia, Ib, 2a and 2b, etc.) to a server compatible format (the EIS Protocol) and then from the EIS Protocol to the specific technology protocol or to specific technology commands, so that disparate technologies, such as ERP systems, CRM systems, legacy applications, databases, etc. (See FIGURE 1), can be quickly and easily integrated.
  • the EIS Protocol may include a Java protocol, an Extensible Markup Language (XML) protocol, a XML Transformations (XSLT) protocol or a XML Path Language (XPath) protocol.
  • the EIS 102 is not restricted in terms of what it can connect to nor is it burdened with the need to understand and support protocols. Protocol translations are performed using protocol specific XSLT Transformers.
  • the EIS 102 may be accessed by a plurality of requestors 106, through a plurality of connectors 202, and link to a plurality of data-system objects 120, through a plurality of adapters 204.
  • This framework can extended to accommodate new data, systems and technologies by writing new connectors using the connector adapter kit 206, and new adapters using the adapter development kit 208, providing bi-directional translation of open and proprietary protocols to a common format understood by the platform 200.
  • the connector development kit 206 is a source code library of guidelines and templates that is used to model and develop new Connectors.
  • the adapter development kit 208 is a source code library of guidelines and templates that is used to model and develop new Adapters.
  • the EIP 200 also includes integration wizards in the form of a database integration wizard 210 and a SOAP integration wizard 212 that automatically map database and SOAP requests to the EIS 102 thereby eliminating the process of typing these maps manually and the possibility of mapping errors being introduced during the typing process. Typically, there will be one integration wizard for each protocol supported by the EIP 200.
  • FIGURE 3 an example of the plurality of requestors 106 and data-system objects (resources 120) that are accessed, updated and integrated and examples of supported protocols in accordance with one embodiment of the present invention is illustrated.
  • the EIS 102 links systems, shares, presents and exchanges data, and creates workflows across technological and organizational boundaries.
  • the process begins with a requestor 106 - which may be by virtually any client, system, service, device, application, API, a daemon, etc, - calling the server 102.
  • the server 102 invokes a connector 202 which handles and in-bound and out-bound protocol translation that allow the server 102 and requestor 106 to communicate.
  • the server 102 then initiates the transaction requested by the requestor 106.
  • the transaction instructs the server 102 which data-systems objects (resources 120) it needs to access, and which adapters 204 the server 102 should use to support that communication.
  • the main point of this diagram is it provides some examples of the requestors 106, connectors 202, adapters 204 and data- system objects 120.
  • the requestor 106 may include a business daemon (scheduler), an internal application, an internal service, an external application, an external service, a browser 300, a flash application 302, a personal data assistant 304, a mobile phone 306, an instant messaging client 308, a text messaging device 310, a package application program interface (API) 312, a legacy API 314, a custom API 316, a third party API 318, a web server 320, a gateway 322, a SOAP request 324, a message queue 326, a transaction manager 328, a directory and identity manager 330, an enterprise integration server 332 or an enterprise integration server daemon 334.
  • a business daemon switcheduler
  • an internal application an internal service
  • an external application an external service
  • a browser 300 a flash application 302
  • a personal data assistant 304 a mobile phone 306, an instant messaging client 308, a text messaging device 310, a package application program interface (API) 312, a legacy API 314,
  • the connector 202 may include a HTML container 336, a XML container 338, a SOAP container 340 or an AMF container 342.
  • the adapter 204 may include a HTTP/HTTPS adapter 344, a SOAP adapter 346, a
  • JDBC adapter 348 a JMS adapter, a C code adapter 350, a custom application program interface adapter 352, an ebXML adapter 354, a terminal emulation adapter 356, a SNMP adapter 358, a SMTP adapter 360, a LDAP adapter, an ICAL adapter 362, an IM adapter 364, a SMS adapter 366 or an ANPA adapter 368.
  • the resource 120 may include a web application 370, a packaged application 372, an ERP system, a CRM system, a help desk, a legacy system 374, a gateway 376, a system monitoring tool 378, a database 380, a distributed application service, a data feed 396, a web service, a message queue 384, a transaction manager 386, a directory/identity management system 388, an e-mail system 390, a calendar/scheduling system 392, an IM/SMS network 394 or an EIS 382.
  • the EIS 102 includes an interactive service 402 and an automated service 404.
  • the interactive service 402 is an external service and in general provides and manages the transaction processing capabilities of the server 102
  • the automated service 404 is an internal service and in general provides services that monitor and report the status of the server 102, manage session data, manage database connections, and managed the state of transactions for restart, rollback and transaction integrity purposes.
  • the automated service 404 can provide error handling, event logging, session management, state management and connection pooling.
  • the present invention provides an enterprise integration platform
  • the enterprise integration platform 400 includes a server 102 communicably coupled to one or more connectors 202 and one or more adapters 204.
  • the server 102 loads the transaction from a translated service request, executes each transaction step of the transaction by identifying an adapter 204 to communicate with a resource 120 when necessary, determining a result for the executed transaction step, creating a service response for the service request based on the results for the executed transaction steps and passing the service response to a connector 202.
  • the connector 202 receives the service request from a requestor 106, translates the service request into a server compatible format, passes the translated service request to the server 102, translates the service response into a requestor compatible format and sends the translated service response to the requestor 106.
  • the adapter 204 establishes a bi-directional communication session with the resource 120, translates the transaction step into a request compatible with the resource 120, sends the request to the resource 120, receives a response from the resource 120, translates the response into the server compatible format and passes the translated response to the server 102.
  • the requestor 106 is communicably coupled to the connector 202 and the resource 120 is communicably coupled to the adapter 204.
  • the present invention may include a>connector development kit 206 communicably coupled to the server 102, an adapter development kit 208 communicably coupled to the server 102, a SOAP integration wizard 212 communicably coupled to the server 102, a database integration wizard 210 communicably coupled to the server 102, an interactive service 4-2 communicably coupled to the server 102 and/or an automated service 404 communicably coupled to. the server 102.
  • FIGURES 5A and 5B a method 500 for processing a transaction in accordance with the present invention is illustrated.
  • the service request is processed in real time using an enterprise integration platform that includes a server 102 communicably coupled to one or more connectors 202 and one or more adapters 204.
  • the server 102 can be an application server, a web application server or a servlet engine that is decoupled from the requestor compatible formats.
  • the service request is received at the connector 202 from a requestor 106 communicably coupled to the connector 202 in block 502.
  • the service request contains a transaction comprising one or more transaction steps.
  • the transaction links one or more systems, transforms data, exchanges data or executes workflow processes.
  • the service request is translated into a server compatible format (e.g., a Java protocol, an Extensible Markup Language (XML) protocol, a XML Transformations (XSLT) protocol or a XML Path Language (XPath) protocol, etc.) in block 504 and the translated service request is passed to the server 102 in block 506.
  • the translation of the service request into the server compatible format dynamically generates one or more system queries and commands.
  • the requestor 106 views the server 102 as using the requestor compatible format.
  • the transaction is then loaded from the translated service request in block 508 and each step of the transaction is executed in block 510.
  • a result for the executed transaction step is determined in block 514. If, however, the execution of the transaction step requires accessing a resource 120, as determined by decision block 512, one of the adapters 204 is identified to communicate with the resource 120 in block 516, a bi-directional communication session is established between the identified adapter 204 and the resource 120 in block 518, the transaction step is translated into a request compatible with the resource 120 in block 520, the request is sent to the resource 120 in block 522, a response is received from the resource 120 in block 524, the response is translated into the server compatible format in block 526 and the translated response is passed to the server 102 in block 528.
  • a result for the executed transaction step is then determined in block 514. If additional transaction steps are to be executed, as determined in decision block 530, the process loops back to decision block 512 where the process repeats as previously described. If, however, no additional transaction steps are to be executed, as determined in decision block 530, a service response for the service request is then created based on the results for the executed transaction steps in block 532, the service response is passed to the connector 202 in block 534 where the service response is translated into a requestor compatible format in block 536 and the translated service response is sent to the requestor 106 in block 538. Note that this method can be implemented using a computer program embodied on a computer readable medium where each step is executed by one or more code segments.
  • the EIS 102 includes an interactive service 402 that is a request-response mechanism that generally provides and manages the transaction processing capabilities of the server 102.
  • the steps are as follows:
  • a service request is initiated.
  • the requestor 106 makes a service request via a servlet naming the connector 202 and transaction to be invoked.
  • the servlet invokes the connector 202.
  • the connector 202 either establishes or reacquires a session.
  • the connector 202 translates the inbound information and passes the service request to the server 102. 5.
  • the server 102 loads and begins to run the transaction named in the service request.
  • the server 102 reads the transaction and performs the specified work.
  • the transaction comprises one or more transaction steps and each transaction step is executed by the server 102.
  • the transaction involves a data-system object (resource 120)
  • the transaction specifies the address (URL) of the resources 120 to be accessed, the parameters (I/O to be done) to be passed to the resource 120, and the adapter 204 to be used to talk to the resource 120.
  • the adapter 204 starts and manages the bi-directional communication with the resource 120, any response from the resource 120 is received by the adapter 204 is formatted by the adapter 204 into a XML record format.
  • the set is cached by the server 102 and made available to the next transaction step for further processing.
  • the transaction completes and calls the next transaction. If there are no more transactions, control is returned to the connector 202; otherwise, steps 6, 7 and 8 are repeated for each transaction in the transaction chain.
  • the XML formatted response record can be translated using XSLT transformer into data or command format for the next transaction step (if any).
  • the connector 202 formats (using appropriate XSLT transformer) the final response and provides it to the servlet.
  • the servlet provides the response to the requestor 106 and the process ends.
  • the server 102 operates within the industry standard security frameworks and corporate security policies which determine the system resources the server 102 may access and what resources may access it.
  • FIGURES 7A, 7B, 7C and 7D some of the many ways the server can be laid out in a physical network in accordance with one embodiment of the present invention are shown.
  • the circles in this diagram are meant to denote server nodes.
  • Each node may consist of a single server (denoted by a circle) or a cluster of servers (denoted by two overlapping circles) that share a single address on the network.
  • a server may be deployed on either a single-processor or multiple-processor computer and is designed to take full advantage of a server's multi-processor architecture.
  • the server is designed to operate either on its own or in association with other servers.
  • a server can initiate requests on other servers essentially become clients of those servers.
  • This feature provides virtually unlimited flexibility in terms of how services may be deployed in distributed networks, and provides and virtually unlimited options in terms of how servers may be deployed to meet the business and technical needs of its customers, e.g. security, network traffic considerations, scalability, high-performance, high- availability, auditability, etc..
  • FIGURE 7A Standalone Configuration 700
  • FIG. 7B Peer-to-Peer Configuration 710
  • FIG. 7C Hub-and-Spoke Configuration 720
  • FIGURE 7D Complex Distributed Network Configuration 730
  • Each logical integration server or business daemon can also be represented as a pair of primary-secondary physical components for high availability and failover purposes.
  • a general purpose processor e.g., microprocessor, conventional processor, controller, microcontroller, state machine or combination of computing devices
  • DSP digital signal processor
  • ASIC application specific integrated circuit
  • FPGA field programmable gate array
  • steps of a method or process described herein may be embodied directly in hardware, in a software module executed by a processor, or in a combination of the two.
  • a software module may reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)

Abstract

The present invention provides a system, method and apparatus for an extensible distributed enterprise integration platform (100, 200, 400) that includes a server (102) communicably coupled to a connector (202) and an adapter (204). The server (102) that loads (508) the transaction from a translated service request, executes (510) each transaction step of the transaction by identifying (516) an adapter (204) to communicate with a resource (120), determining (514) a result for the executed transaction step, creating (532) a service response for the service request and passing (534) the service response to the connector (202). The connector (202) receives (502) the service request from a requestor (106), translates (504) the service request, passes (506) the translated service request to the server (102), translates (536) the service response and sends (538) the translated service response to the requestor (106). The adapter (204) establishes (518) a session with the resource (120), translates (520) the transaction step, sends (522) the request to the resource (120), receives (524) a response from the resource (120), translates the response (526) and passes (528) the translated response to the server (102).

Description

SYSTEM, METHOD AND APPARATUS FOR AN EXTENSIBLE DISTRIBUTED ENTERPRISE INTEGRATION PLATFORM
Field of Invention The present invention relates generally to the field of transaction processing systems (e.g., "Information Integration Management", "Enterprise Application Integration" and "Enterprise Information Integration") and, more particularly, to a connector-server- adapter architecture used to act upon and integrate applications and data normally deployed in networked computing environments.
Background Art
Over the last several decades, organizations have spent hundreds of billion of dollars creating and maintain applications and databases (heretofore referred to as "systems") that support their business. Because these systems where developed at different points in time, by different project teams, using different technology, these systems typically are not fully compatible and have limited ability to interoperate,
As a result, companies that need to integrate their systems have had to build software programs that link applications, and in many cases replicate their data so it may be used by non-compatible systems. The problem with these solutions is that they are time-consuming and costly to develop and support due to their technical complexity and limited commonality and re-usability of solutions for one instance of the problem to the next.
Over the last few years, the software industry has begun to help companies address these issues through the creation of standards, messaging middleware, integration oriented Interactive Development Environments (IDEs), and data distribution and mapping products.
Accordingly there is a need for a solution that takes a new tack on the problem. While most solutions to-date have focused on facilitating building software integration programs, a new solution is needed that focuses on embedding the systems integration process in to a platform which companies can use to integrate systems automatically..
Summary of the Invention
The present invention provides a system, method and apparatus for an extensible distributed enterprise integration platform that solves the problems associated with current software integration programs and focuses on embedding the systems integration process in to a platform which companies can use to integrate systems automatically. In general, in one aspect, the present invention provides an extensible software platform that integrates systems, databases, and services across technology and organizational boundaries. This platform consists of a set of server components and application program interfaces. In one aspect, the platform serves as a proxy between two or more systems (e.g. applications, databases, services, devices). In another aspect, the platform serves as a service which manages and coordinates complex transactions across systems boundaries.
There are two types of server components - business daemons (schedulers) and integration servers. The integration server comprises three major components - transformation server, adaptor(s) and connector(s). The business daemon is a component that allows starting integration transactions according to pre-defined schedule. The transformation server is an integration engine, which executes integration transactions. The adaptors implement application program interfaces that provide bi-directional communication between the server to different applications, databases, services and devices outside the server. Connectors bind applications or services (internal such as business daemon and external), which initiate integration transactions, to the transformation server.
The server components are programmed using Java, XML, XLST and XPath. XML stands for Extensible Markup Language which is a standard format for documents containing structured information. XSLT stands for XML Transformations which is a language for transforming XML and other (such as HTML, text, etc.) types of documents. XPath stands for XML Path Language which is an expression language used by XSLT to access or refer to parts of an XML document. The platform can extend to accommodate new systems by writing new connectors and adapters that implement application program interfaces (APIs), which translate systems protocols to a common format understood by the platform. This decoupling of the transformation server from the external system protocol has the effect of simplifying the server and allowing it to appear as different types of servers depending on which API is used to connect to it. For example, when using the HTML API the server appears to be a Web Server, when using the SOAP API the server appears to be a SOAP Server, when using the WAP API the server appears to be a WAP Server, when using the AMF API the server appears to be a Flash Remoting Server, etc. The dynamic generation of system queries and commands based on the incoming data translated into internal format allows building flexible and generic integration transactions applicable to the variety of data sources and destinations without necessity to develop a new code. Furthermore, the combination of systems integration via a server, involving no definition or generation of program code, the decoupling of protocols, the dynamic command generation, the ability to easily accommodate new data systems and technologies, and the ability to masquerade as other servers, is to our knowledge is unique in the industry. As a result, the present invention provides for significant time and cost advantages over other approaches of systems integration. More specifically, the present invention provides a method for processing a service request in real time using an enterprise integration platform that includes a server communicably coupled to one or more connectors and one or more adapters. The service request is received at the connector from a requestor communicably coupled to the connector. The service request contains a transaction comprising one or more transaction steps. The service request is translated into a server compatible format and the translated service request is passed to the server. The transaction is then loaded from the translated service request and each step of the transaction is executed. Whenever the execution of the transaction steprrequires accessing a resource, one of the adapters is identified to communicate with the resource, a bi-directional communication session is established between the identified adapter and the resource, the transaction step is translated into a request compatible with the resource, the request is sent to the resource, a response is received from the resource, the response is translated into the server compatible format and the translated response is passed to the server. A result for the executed transaction step is then determined. A service response for the service request is then created based on the results for the executed transaction steps, the service response is passed to the connector where the service response is translated into a requestor compatible format and the translated service response is sent to the requestor. Note that this method can be implemented using a computer program embodied on a computer readable medium where each step is executed by one or more code segments. In addition, the present invention provides an enterprise integration platform for processing a service request containing a transaction that includes one or more transaction steps in real time. The enterprise integration platform includes a server communicably coupled to one or more connectors and one or more adapters. The server loads the transaction from a translated service request, executes each transaction step of the transaction by identifying an adapter to communicate with a resource when necessary, determining a result for the executed transaction step, creating a service response for the service request based on the results for the executed transaction steps and passing the service response to a connector. The connector receives the service request from a requestor, translates the service request into a server compatible format, passes the translated service request to the server, translates the service response into a requestor compatible format and sends the translated service response to the requestor. The adapter establishes a bi-directional communication session with the resource, translates the transaction step into a request compatible with the resource, sends the request to the resource, receives a response from the resource, translates the response into the server compatible format and passes the translated response to the server.
Brief Description of the Drawings
Further benefits and advantages of the present invention will become more apparent from the following description of various embodiments that are given by way of example with reference to the accompanying drawings:
FIGURE 1 provides a business view on the types of applications, systems and services that may be integrated in accordance with one embodiment of the present invention; FIGURE 2 depicts the Enterprise Integration Platform (EIP) in accordance with one embodiment of the present invention;
FIGURE 3 illustrates example of the plurality requestors and data-system objects that are accessed, updated and integrated and examples of supported protocols in accordance with one embodiment of the present invention; FIGURE 4 illustrates the Application Service and Management Service of the
Enterprise Integration Server in accordance with one embodiment of the present invention; FIGURES 5A and 5B illustrate a method for processing a transaction in accordance with the present invention;
FIGURE 6 illustrates the steps involved in a request cycle and how the process is supported in accordance with one embodiment of the present invention; and
FIGURES 7A, 7B, 7C and 7D illustrate some of the many ways the server can be laid out in a physical network in accordance with one embodiment of the present invention. Description of the Invention
While the making and using of various embodiments of the present invention are discussed in detail below, it should be appreciated that the present invention provides many applicable inventive concepts that can be embodied in a wide variety of specific contexts. The specific embodiments discussed herein are merely illustrative of specific ways to make and use the invention and do not delimit the scope of the invention. The discussion herein relates primarily to enterprise integration systems, but it will be understood that the concepts of the present invention are applicable to any transaction processing system in which automatic integration is desireable. The present invention provides a system, method and apparatus for an extensible distributed enterprise integration platform that solves the problems associated with current software integration programs and focuses on embedding the systems integration process in to a platform which companies can use to integrate systems automatically. In general, in one aspect, the present invention provides an extensible software platform that integrates systems, databases, and services across technology and organizational boundaries. This platform consists of a set of server components and application program interfaces. In one aspect, the platform serves as a proxy between two or more systems (e.g. applications, databases, services, devices). In another aspect, the platform serves as a service which manages and coordinates complex transactions across systems boundaries. There are two types of server components - business daemons (schedulers) and integration servers. The integration server comprises three major components - transformation server, adaptor(s) and connector(s). The business daemon is a component that allows starting integration transactions according to pre-defined schedule. The transformation server is an integration engine, which executes integration transactions. The adaptors implement application program interfaces that provide bi-directional communication between the server to different applications, databases, services and devices outside the server. Connectors bind applications or services (internal such as business daemon and external), which initiate integration transactions, to the transformation server. The server components are programmed using Java, XML, XLST and XPath.
XML stands for Extensible Markup Language which is a standard format for documents containing structured information. XSLT stands for XML Transformations which is a language for transforming XML and other (such as HTML, text, etc.) types of documents. XPath stands for XML Path Language which is an expression language used by XSLT to access or refer to parts of an XML document.
The platform can extend to accommodate new systems by writing new connectors and adapters that implement application program interfaces (APIs), which translate systems protocols to a common format understood by the platform. This decoupling of the transformation server from the external system protocol has the effect of simplifying the server and allowing it to appear as different types of servers depending on which API is used to connect to it. For example, when using the HTML API the server appears to be a Web Server, when using the SOAP API the server appears to be a SOAP Server, when using the WAP API the server appears to be a WAP Server, when using the AMF API the server appears to be a Flash Remoting Server, etc.
The dynamic generation of system queries and commands based on the incoming data translated into internal format allows building flexible and generic integration transactions applicable to the variety of data sources and destinations without necessity to develop a new code. Furthermore, the combination of systems integration via a server, involving no definition or generation of program code, the decoupling of protocols, the dynamic command generation, the ability to easily accommodate new data systems and technologies, and the ability to masquerade as other servers, is to our knowledge is unique in the industry. As a result, the present invention provides for significant time and cost advantages over other approaches of systems integration.
Now referring to FIGURE 1 , a business view on the types of applications, systems and services that may be integrated in accordance with one embodiment of the present invention is shown. The Enterprise Integration Platform (EIP) 100 in one aspect consists of extensible run-time Enterprise Integration Server (EIS) 102 that provides a mechanism to link systems, transform and exchange data, and executes workflow processes across technology environments. The EIS 102 runs within a Run-Time Container 104 such as an application server, web application server, or servlet engine.
Requestors 106 (which may include business daemon as well as external applications or services) call the server 102 and ask it to run a particular transaction. The transaction is loaded into the server 102 and executes. The transaction may be simple or complex and may involve few or many steps and data-system objects (122-57 and collectively referred to as resources 120). The transactions are defined in XML/XSLT and compiled and deployed to the Run-Time Container 104 for enhanced performance and security.
Examples of data-systems objects or resources 120 which are integrated by the server 102 include Enterprise Resource Planning (ERP) applications 122 (e.g., SAP 124, PeopleSoft 126, Oracle 128, etc.), Customer Relationship Management (CRM) and help desk applications 130 (e.g., Siebel 132, Vantive 134, Remedy 136, Clarify 138, Salesforce.com 140, etc.), other applications 142 (e.g., legacy systems 144, gateways 146, monitoring systems 148, Micromuse 150, etc.), databases 152 (e.g., Gupta 154, Sybase 156, Oracle 158, etc.), Distributed Application Services 160 (e.g., web services 162, message queues 164, transaction managers 166, etc.), Messaging and Collaboration Technologies 168 (e.g., calendar/scheduling systems 170, email systems 172, directory/identity services 174, etc.), and Networks 176 (e.g., IM 178, SMS (text messaging) 180, data feeds (newswire networks) 182, etc.). Note that any other type of resource can be used with the present invention. Referring now to FIGURE 2, the Enterprise Integration Platform (EIP) 200 in accordance with one embodiment of the present invention is shown. The architecture for the EIP 200 includes an Enterprise Integration Server (EIS) 102 and one or more connectors 202 (e.g., connector one, connector two, etc.) and one or more adapters 204 (e.g., adapter one, adapter two, etc.) that provide real-time and bi-directional communication across a plurality of technology protocols. The purpose of each connector 202 is to provide an ability to start specific transactions or chains of transactions initiated by various requestors 106. The purpose of each adapter 204 is to translate a specific technology protocol used by the data system objects or resources 120 (e.g., data system objects Ia, Ib, 2a and 2b, etc.) to a server compatible format (the EIS Protocol) and then from the EIS Protocol to the specific technology protocol or to specific technology commands, so that disparate technologies, such as ERP systems, CRM systems, legacy applications, databases, etc. (See FIGURE 1), can be quickly and easily integrated. The EIS Protocol may include a Java protocol, an Extensible Markup Language (XML) protocol, a XML Transformations (XSLT) protocol or a XML Path Language (XPath) protocol. In this way, the EIS 102 is not restricted in terms of what it can connect to nor is it burdened with the need to understand and support protocols. Protocol translations are performed using protocol specific XSLT Transformers. The EIS 102 may be accessed by a plurality of requestors 106, through a plurality of connectors 202, and link to a plurality of data-system objects 120, through a plurality of adapters 204. This framework can extended to accommodate new data, systems and technologies by writing new connectors using the connector adapter kit 206, and new adapters using the adapter development kit 208, providing bi-directional translation of open and proprietary protocols to a common format understood by the platform 200. The connector development kit 206 is a source code library of guidelines and templates that is used to model and develop new Connectors. Similarly, the adapter development kit 208 is a source code library of guidelines and templates that is used to model and develop new Adapters. The EIP 200 also includes integration wizards in the form of a database integration wizard 210 and a SOAP integration wizard 212 that automatically map database and SOAP requests to the EIS 102 thereby eliminating the process of typing these maps manually and the possibility of mapping errors being introduced during the typing process. Typically, there will be one integration wizard for each protocol supported by the EIP 200. Now referring to FIGURE 3, an example of the plurality of requestors 106 and data-system objects (resources 120) that are accessed, updated and integrated and examples of supported protocols in accordance with one embodiment of the present invention is illustrated. As previously stated, the EIS 102 links systems, shares, presents and exchanges data, and creates workflows across technological and organizational boundaries. The process begins with a requestor 106 - which may be by virtually any client, system, service, device, application, API, a daemon, etc, - calling the server 102. The server 102 invokes a connector 202 which handles and in-bound and out-bound protocol translation that allow the server 102 and requestor 106 to communicate. The server 102 then initiates the transaction requested by the requestor 106. The transaction instructs the server 102 which data-systems objects (resources 120) it needs to access, and which adapters 204 the server 102 should use to support that communication. The main point of this diagram is it provides some examples of the requestors 106, connectors 202, adapters 204 and data- system objects 120.
For example, the requestor 106 may include a business daemon (scheduler), an internal application, an internal service, an external application, an external service, a browser 300, a flash application 302, a personal data assistant 304, a mobile phone 306, an instant messaging client 308, a text messaging device 310, a package application program interface (API) 312, a legacy API 314, a custom API 316, a third party API 318, a web server 320, a gateway 322, a SOAP request 324, a message queue 326, a transaction manager 328, a directory and identity manager 330, an enterprise integration server 332 or an enterprise integration server daemon 334. The connector 202 may include a HTML container 336, a XML container 338, a SOAP container 340 or an AMF container 342. The adapter 204 may include a HTTP/HTTPS adapter 344, a SOAP adapter 346, a
JDBC adapter 348, a JMS adapter, a C code adapter 350, a custom application program interface adapter 352, an ebXML adapter 354, a terminal emulation adapter 356, a SNMP adapter 358, a SMTP adapter 360, a LDAP adapter, an ICAL adapter 362, an IM adapter 364, a SMS adapter 366 or an ANPA adapter 368. The resource 120 may include a web application 370, a packaged application 372, an ERP system, a CRM system, a help desk, a legacy system 374, a gateway 376, a system monitoring tool 378, a database 380, a distributed application service, a data feed 396, a web service, a message queue 384, a transaction manager 386, a directory/identity management system 388, an e-mail system 390, a calendar/scheduling system 392, an IM/SMS network 394 or an EIS 382. Referring now to FIGURE 4, the Application Service and Management Service of the Enterprise Integration Server in accordance with one embodiment of the present invention is illustrated. The EIS 102 includes an interactive service 402 and an automated service 404. The interactive service 402 is an external service and in general provides and manages the transaction processing capabilities of the server 102, whereas the automated service 404 is an internal service and in general provides services that monitor and report the status of the server 102, manage session data, manage database connections, and managed the state of transactions for restart, rollback and transaction integrity purposes. For example, the automated service 404 can provide error handling, event logging, session management, state management and connection pooling. In other words, the present invention provides an enterprise integration platform
400 for processing a service request containing a transaction that includes one or more transaction steps in real time. The enterprise integration platform 400 includes a server 102 communicably coupled to one or more connectors 202 and one or more adapters 204. The server 102 loads the transaction from a translated service request, executes each transaction step of the transaction by identifying an adapter 204 to communicate with a resource 120 when necessary, determining a result for the executed transaction step, creating a service response for the service request based on the results for the executed transaction steps and passing the service response to a connector 202. The connector 202 receives the service request from a requestor 106, translates the service request into a server compatible format, passes the translated service request to the server 102, translates the service response into a requestor compatible format and sends the translated service response to the requestor 106. The adapter 204 establishes a bi-directional communication session with the resource 120, translates the transaction step into a request compatible with the resource 120, sends the request to the resource 120, receives a response from the resource 120, translates the response into the server compatible format and passes the translated response to the server 102. The requestor 106 is communicably coupled to the connector 202 and the resource 120 is communicably coupled to the adapter 204. As shown in FIGURES 2 and 4, the present invention may include a>connector development kit 206 communicably coupled to the server 102, an adapter development kit 208 communicably coupled to the server 102, a SOAP integration wizard 212 communicably coupled to the server 102, a database integration wizard 210 communicably coupled to the server 102, an interactive service 4-2 communicably coupled to the server 102 and/or an automated service 404 communicably coupled to. the server 102.
Now referring to FIGURES 5A and 5B, a method 500 for processing a transaction in accordance with the present invention is illustrated. Note that the service request is processed in real time using an enterprise integration platform that includes a server 102 communicably coupled to one or more connectors 202 and one or more adapters 204. The server 102 can be an application server, a web application server or a servlet engine that is decoupled from the requestor compatible formats. The service request is received at the connector 202 from a requestor 106 communicably coupled to the connector 202 in block 502. The service request contains a transaction comprising one or more transaction steps. The transaction links one or more systems, transforms data, exchanges data or executes workflow processes. The service request is translated into a server compatible format (e.g., a Java protocol, an Extensible Markup Language (XML) protocol, a XML Transformations (XSLT) protocol or a XML Path Language (XPath) protocol, etc.) in block 504 and the translated service request is passed to the server 102 in block 506. The translation of the service request into the server compatible format dynamically generates one or more system queries and commands. As a result, the requestor 106 views the server 102 as using the requestor compatible format. The transaction is then loaded from the translated service request in block 508 and each step of the transaction is executed in block 510. Whenever the execution of the transaction step does not require accessing a resource 120, as determined by decision block 512, a result for the executed transaction step is determined in block 514. If, however, the execution of the transaction step requires accessing a resource 120, as determined by decision block 512, one of the adapters 204 is identified to communicate with the resource 120 in block 516, a bi-directional communication session is established between the identified adapter 204 and the resource 120 in block 518, the transaction step is translated into a request compatible with the resource 120 in block 520, the request is sent to the resource 120 in block 522, a response is received from the resource 120 in block 524, the response is translated into the server compatible format in block 526 and the translated response is passed to the server 102 in block 528. A result for the executed transaction step is then determined in block 514. If additional transaction steps are to be executed, as determined in decision block 530, the process loops back to decision block 512 where the process repeats as previously described. If, however, no additional transaction steps are to be executed, as determined in decision block 530, a service response for the service request is then created based on the results for the executed transaction steps in block 532, the service response is passed to the connector 202 in block 534 where the service response is translated into a requestor compatible format in block 536 and the translated service response is sent to the requestor 106 in block 538. Note that this method can be implemented using a computer program embodied on a computer readable medium where each step is executed by one or more code segments.
Referring now to FIGURE 6, the steps involved in a request cycle and how the process is supported in accordance with one embodiment of the present invention are shown. The EIS 102 includes an interactive service 402 that is a request-response mechanism that generally provides and manages the transaction processing capabilities of the server 102. The steps are as follows:
1. A service request is initiated. The requestor 106 makes a service request via a servlet naming the connector 202 and transaction to be invoked.
2. The servlet invokes the connector 202. 3. The connector 202 either establishes or reacquires a session.
4. The connector 202 translates the inbound information and passes the service request to the server 102. 5. The server 102 loads and begins to run the transaction named in the service request.
6. The server 102 reads the transaction and performs the specified work. The transaction comprises one or more transaction steps and each transaction step is executed by the server 102.
7. If the transaction involves a data-system object (resource 120), the transaction specifies the address (URL) of the resources 120 to be accessed, the parameters (I/O to be done) to be passed to the resource 120, and the adapter 204 to be used to talk to the resource 120. 8. The adapter 204 starts and manages the bi-directional communication with the resource 120, any response from the resource 120 is received by the adapter 204 is formatted by the adapter 204 into a XML record format. The set is cached by the server 102 and made available to the next transaction step for further processing.
9. The transaction completes and calls the next transaction. If there are no more transactions, control is returned to the connector 202; otherwise, steps 6, 7 and 8 are repeated for each transaction in the transaction chain. The XML formatted response record can be translated using XSLT transformer into data or command format for the next transaction step (if any).
10. The connector 202 then formats (using appropriate XSLT transformer) the final response and provides it to the servlet.
11. The servlet provides the response to the requestor 106 and the process ends. Please note the server 102 operates within the industry standard security frameworks and corporate security policies which determine the system resources the server 102 may access and what resources may access it. Now referring to FIGURES 7A, 7B, 7C and 7D, some of the many ways the server can be laid out in a physical network in accordance with one embodiment of the present invention are shown. The circles in this diagram are meant to denote server nodes. Each node may consist of a single server (denoted by a circle) or a cluster of servers (denoted by two overlapping circles) that share a single address on the network. Also, a server may be deployed on either a single-processor or multiple-processor computer and is designed to take full advantage of a server's multi-processor architecture.
The server is designed to operate either on its own or in association with other servers. A server can initiate requests on other servers essentially become clients of those servers. This feature provides virtually unlimited flexibility in terms of how services may be deployed in distributed networks, and provides and virtually unlimited options in terms of how servers may be deployed to meet the business and technical needs of its customers, e.g. security, network traffic considerations, scalability, high-performance, high- availability, auditability, etc.. Examples of the myriad of possible server configurations include a Standalone Configuration 700 (FIGURE 7A), a Peer-to-Peer Configuration 710 (FIGURE 7B), a Hub-and-Spoke Configuration 720 (FIGURE 7C), and a Complex Distributed Network Configuration 730 (FIGURE 7D). Each logical integration server or business daemon can also be represented as a pair of primary-secondary physical components for high availability and failover purposes.
It will be understood by those of skill in the art that information and signals may be represented using any of a variety of different technologies and techniques (e.g., data, instructions, commands, information, signals, bits, symbols, and chips may be represented by voltages, currents, electromagnetic waves, magnetic fields or particles, optical fields or particles, or any combination thereof). Likewise, the various illustrative logical blocks, modules, circuits, and algorithm steps described herein may be implemented as electronic hardware, computer software, or combinations of both, depending on the application and functionality. Moreover, the various logical blocks, modules, and circuits described herein may be implemented or performed with a general purpose processor (e.g., microprocessor, conventional processor, controller, microcontroller, state machine or combination of computing devices), a digital signal processor ("DSP"), an application specific integrated circuit ("ASIC"), a field programmable gate array ("FPGA") or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. Similarly, steps of a method or process described herein may be embodied directly in hardware, in a software module executed by a processor, or in a combination of the two. A software module may reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art. Although preferred embodiments of the present invention have been described in detail, it will be understood by those skilled in the art that various modifications can be made therein without departing from the spirit and scope of the invention as set forth in the appended claims.

Claims

1. A method for processing a service request in real time using an enterprise integration platform (100, 200, 400) comprising a server (102) communicably coupled to one or more connectors (202) and one or more adapters (204), the method comprising the steps of: receiving (502) the service request at the connector (202) from a requestor (106) communicably coupled to the connector (202), wherein the service request contains a transaction comprising one or more transaction steps; translating (504) the service request into a server compatible format; passing (506) the translated service request to the server (102); loading (508) the transaction from the translated service request; executing (510) each transaction step of the transaction by:
(a) whenever (512) the execution of the transaction step requires accessing a resource (120):
(1) identifying (516) one of the adapters (204) to communicate with the resource (120);
(2) establishing (518) a bi-directional communication session between the identified adapter (204) and the resource (120); (3) translating (520) the transaction step into a request compatible with the resource (120);
(4) sending (522) the request to the resource (120);
(5) receiving (524) a response from the resource (120);
(6) translating (526) the response into the server compatible format; (7) passing (528) the translated response to the server (102);
(b) determining (514) a result for the executed transaction step; creating (532) a service response for the service request based on the results for the executed transaction steps; passing (534) the service response to the connector (202); translating (536) the service response into a requestor compatible format; and sending (538) the translated service response to the requestor (106).
2. The method as recited in claim 1 , wherein the transaction links one or more systems, transforms data, exchanges data or executes workflow processes.
3. The method as recited in claim 1 , wherein the server (102) comprises an application server, a web application server or a servlet engine.
4. The method as recited in claim 1, wherein the step of translating (504) the service request into the server compatible format dynamically generates one or more system queries and commands.
5. The method as recited in claim 1, wherein the server compatible format comprises a Java protocol, an Extensible Markup Language (XML) protocol, a XML Transformations (XSLT) protocol or a XML Path Language (XPath) protocol.
6. The method as recited in claim 1, wherein the server (102) is decoupled from the requestor compatible formats.
7. The method as recited in claim 1 , wherein the requestor (106) views the server (102) as using the requestor compatible format.
8. The method as recited in claim 1, wherein the requestor (106) comprises a business daemon (scheduler), an internal application, an internal service, an external application, an external service, a browser (300), a flash application (302), a personal data assistant (304), a mobile phone (306), an instant messaging client (308), a text messaging device (310), a package application program interface (API) (312), a legacy API (314), a custom API
(316), a third party API (318), a web server (320), a gateway (322), a SOAP request (324), a message queue (326), a transaction manager (328), a directory and identity manager (330), an enterprise integration server (332) or an enterprise integration server daemon (334).
9. The method as recited in claim 1, wherein the connector (202) comprises a HTML container (336), a XML container (338), a SOAP container (340) or an AMF container (342).
10. The method as recited in claim 1, wherein the adapter (204) comprises a HTTP/HTTPS adapter (344), a SOAP adapter (346), a JDBC adapter (348), a JMS adapter, a C code adapter (350), a custom application program interface adapter (352), an ebXML adapter (354), a terminal emulation adapater (356), a SNMP adapter (358), a SMTP adapter (360), a LDAP adapter, an ICAL adapter (362), an IM adapter (364), a SMS adapter (366) or an ANPA adapter (368).
11. The method as recited in claim 1 , wherein the resource (120) comprises a web application (370), a packaged application (372), an ERP system, a CRM system, a help desk, a legacy system (374), a gateway (376), a system monitoring tool (378), a database (380), a distributed application service, a data feed, a web service, a message queue (384), a transaction manager (386), a directory/identity management system (388), an e-mail system (390), a calendar/scheduling system (392), an IM network (394), a SMS network (394) or an EIS (382).
12. The method as recited in claim 1, wherein the resource (120) comprises a data- system object.
13. The method as recited in claim 1 , further comprising the step of creating the connector (202) for the requestor (106).
14. The method as recited in claim 1, further comprising the step of creating the adaptor for the resource (120).
15. A computer program embodied on a computer readable medium for processing a service request in real time using an enterprise integration platform (100, 200, 400) comprising a server (102) communicably coupled to one or more connectors (202) and one or more adapters (204), the computer program comprising: a code segment for receiving (502) the service request at the connector (202) from a requestor (106) communicably coupled to the connector (202), wherein the service request contains a transaction comprising one or more transaction steps; a code segment for translating (504) the service request into a server compatible format; a code segment for passing (506) the translated service request to the server (102); a code segment for loading (508) the transaction from the translated service request; a code segment for executing (510) each transaction step of the transaction by:
(a) whenever (512) the execution of the transaction step requires accessing a resource (120):
(1) identifying (516) one of the adapters (204) to communicate with the resource (120); (2) establishing (518) a bi-directional communication session between the identified adapter (204) and the resource (120);
(3) translating (520) the transaction step into a request compatible with the resource (120);
(4) sending (522) the request to the resource (120); (5) receiving (524) a response from the resource (120);
(6) translating (526) the response into the server compatible format;
(7) passing (528) the translated response to the server (102);
(b) determining (514) a result for the executed transaction step; a code segment for creating (532) a service response for the service request based on the results for the executed transaction steps; a code segment for passing (534) the service response to the connector (202); a code segment for translating (536) the service response into a requestor compatible format; and a code segment for sending (536) the translated service response to the requestor (106).
16. An enterprise integration platform (100, 200, 400) for processing a service request containing a transaction comprising one or more transaction steps in real time, the enterprise integration platform (100, 200, 400) comprising: a server (102) that loads (508) the transaction from a translated service request, executes (510) each transaction step of the transaction by identifying (516) an adapter (204) to communicate with a resource (120) when necessary, determining (514) a result for the executed transaction step, creating (532) a service response for the service request based on the results for the executed transaction steps and passing (534) the service response to a connector (202); the connector (202) communicably coupled to the server (102), wherein the connector (202) receives (502) the service request from a requestor (106), translates (504) the service request into a server compatible format, passes (506) the translated service request to the server (102), translates (536) the service response into a requestor compatible format and sends (548) the translated service response to the requestor (106); and the adapter (204) communicably coupled to the server (102), wherein the adapter (204) establishes (518) a bi-directional communication session with the resource (120), translates (520) the transaction step into a request compatible with the resource (120), sends (522) the request to the resource (120), receives (524) a response from the resource (120), translates (526) the response into the server compatible format and passes (528) the translated response to the server (102).
17. The enterprise integration platform (100, 200, 400) as recited in claim 16, wherein the requestor (106) is communicably coupled to the connector (202) and the resource (120) is communicably coupled to the adapter (204).
18. The enterprise integration platform (100, 200, 400) as recited in claim 16, wherein the connector (202) comprises two or more connectors (202) and the adapter (204) comprises two or more adapters (204).
19. The enterprise integration platform (100, 200, 400) as recited in claim 16, wherein the platform (100, 200, 400) is deployed in a standalone configuration (700), a peer-to-peer configuration (710), a hub-and-spoke configuration (720) or a complex distributed network configuration (730).
20. The enterprise integration platform (100, 200, 400) as recited in claim 16, further comprising: a connector development kit (206) communicably coupled to the server (102); an adapter development kit (208) communicably coupled to the server (102); a SOAP integration wizard (212) communicably coupled to the server (102); a database integration wizard (210) communicably coupled to the server (102); an interactive service (402) communicably coupled to the server (102); or an automated service (404) communicably coupled to the server (102).
PCT/US2005/040486 2004-11-08 2005-11-08 System, method and apparatus for an extensible distributed enterprise integration platform WO2006052996A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
EP05848805A EP1819415A2 (en) 2004-11-08 2005-11-08 System, method and apparatus for an extensible distributed enterprise integration platform

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US62616404P 2004-11-08 2004-11-08
US60/626,164 2004-11-08

Publications (2)

Publication Number Publication Date
WO2006052996A2 true WO2006052996A2 (en) 2006-05-18
WO2006052996A3 WO2006052996A3 (en) 2007-04-19

Family

ID=36337152

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2005/040486 WO2006052996A2 (en) 2004-11-08 2005-11-08 System, method and apparatus for an extensible distributed enterprise integration platform

Country Status (3)

Country Link
US (1) US20060101474A1 (en)
EP (1) EP1819415A2 (en)
WO (1) WO2006052996A2 (en)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8069443B2 (en) * 2004-06-29 2011-11-29 Novell, Inc. Techniques for providing services and establishing processing environments
US20060271939A1 (en) * 2005-05-11 2006-11-30 Eric Joris Enterprise-to-enterprise integration
US7490098B2 (en) * 2005-06-10 2009-02-10 International Business Machines Corporation Apparatus, system, and method for processing hierarchical data in disparate data repositories
US20060280177A1 (en) * 2005-06-13 2006-12-14 Gupta Pawan K Integration network for digital media solutions
US7917124B2 (en) * 2005-09-20 2011-03-29 Accenture Global Services Limited Third party access gateway for telecommunications services
EP1764972B1 (en) * 2005-09-20 2017-07-19 Accenture Global Services Limited Authentication and authorization architecture for an access gateway
US7920583B2 (en) * 2005-10-28 2011-04-05 Accenture Global Services Limited Message sequencing and data translation architecture for telecommunication services
US8694616B2 (en) * 2005-10-28 2014-04-08 Accenture Global Services Limited Service broker integration layer for supporting telecommunication client service requests
WO2007064879A2 (en) * 2005-12-01 2007-06-07 Firestar Software, Inc. System and method for exchanging information among exchange applications
US20070261065A1 (en) * 2006-04-20 2007-11-08 Astl Kenneth L Framework for generating pre-packaged business integration component group pattern-based applications
US8056052B2 (en) * 2006-06-02 2011-11-08 International Business Machines Corporation Populating service requests
US8094797B2 (en) * 2006-08-31 2012-01-10 Accenture Global Services Limited Service provisioning and activation engines for system
US8056000B2 (en) * 2007-08-27 2011-11-08 International Business Machines Corporation Apparatus and system for an automated bidirectional format transform
US8122040B2 (en) 2007-08-29 2012-02-21 Richard Banister Method of integrating remote databases by automated client scoping of update requests over a communications network
US8145593B2 (en) 2008-12-11 2012-03-27 Microsoft Corporation Framework for web services exposing line of business applications
US20100153565A1 (en) * 2008-12-11 2010-06-17 Microsoft Corporation Connection management in line-of-business
US20100318394A1 (en) * 2009-06-15 2010-12-16 Microsoft Corporation Executing transactions as an atomic unit
US9063800B2 (en) 2010-05-26 2015-06-23 Honeywell International Inc. Automated method for decoupling avionics application software in an IMA system
US8539020B2 (en) 2010-06-14 2013-09-17 Microsoft Corporation Sessions to host processes with special requirements
US8935397B2 (en) 2010-07-01 2015-01-13 Red Hat, Inc. Dividing cloud resources
US8639746B2 (en) 2010-07-01 2014-01-28 Red Hat, Inc. Architecture, system and method for mediating communications between a client computer system and a cloud computing system with a driver framework
US8631067B2 (en) * 2010-07-01 2014-01-14 Red Hat, Inc. Architecture, system and method for providing a neutral application programming interface for accessing different cloud computing systems
US8725891B2 (en) 2010-07-01 2014-05-13 Red Hat, Inc. Aggregation across cloud providers
US8639745B2 (en) * 2010-07-01 2014-01-28 Red Hat, Inc. Providing a neutral interface to multiple cloud computing systems
US8639747B2 (en) 2010-07-01 2014-01-28 Red Hat, Inc. System and method for providing a cloud computing graphical user interface
US8578202B2 (en) * 2010-07-29 2013-11-05 Ca, Inc. System and method for providing high availability for distributed application
US9070107B2 (en) * 2011-07-29 2015-06-30 Sap Se Modeling infrastructure for internal communication between business objects
US9262133B2 (en) * 2012-01-27 2016-02-16 Amx Llc Mapping and formatting input commands to a third party protocol
EP2648364B1 (en) 2012-03-07 2018-06-06 Accenture Global Services Limited Communication collaboration
US9110767B2 (en) * 2012-07-09 2015-08-18 Accenture Global Services Limited Cobol reference architecture
US11803786B2 (en) * 2013-04-10 2023-10-31 eData Platform, Corp. Enterprise integration platform
US9483329B2 (en) * 2015-02-09 2016-11-01 Sap Se Categorizing and modeling integration adapters
IN2015CH01314A (en) * 2015-03-17 2015-04-10 Wipro Ltd
US9860346B2 (en) 2015-10-14 2018-01-02 Adp, Llc Dynamic application programming interface builder
US10623528B2 (en) 2015-10-14 2020-04-14 Adp, Llc Enterprise application ecosystem operating system
US11171924B2 (en) 2015-10-14 2021-11-09 Adp, Inc. Customized web services gateway
US10348816B2 (en) 2015-10-14 2019-07-09 Adp, Llc Dynamic proxy server
US10762559B2 (en) 2016-04-15 2020-09-01 Adp, Llc Management of payroll lending within an enterprise system
US10691901B2 (en) * 2018-07-13 2020-06-23 Carnegie Mellon University Sequence generation using neural networks with continuous outputs
US11756543B2 (en) * 2020-10-27 2023-09-12 Incentive Marketing Group, Inc. Methods and systems for application integration and macrosystem aware integration
CN115988087B (en) * 2023-03-17 2023-08-01 北京百度网讯科技有限公司 Service calling method and device based on bus, electronic equipment and storage medium

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020143819A1 (en) * 2000-05-31 2002-10-03 Cheng Han Web service syndication system
US20030191677A1 (en) * 2002-03-27 2003-10-09 Akkiraju Rama K. Method and system for integrating e-Logistics processes into a user/provider interface using Web Services
US6993585B1 (en) * 2000-12-22 2006-01-31 Unisys Corporation Method and system for handling transaction requests from workstations to OLTP enterprise server systems utilizing a common gateway

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6236997B1 (en) * 1997-06-23 2001-05-22 Oracle Corporation Apparatus and method for accessing foreign databases in a heterogeneous database system
US6397220B1 (en) * 1998-10-01 2002-05-28 Unisys Corporation Common gateway which allows JAVA applets to make program calls to OLTP applications executing on an enterprise server reference to co-pending applications
US6799166B2 (en) * 1999-09-02 2004-09-28 International Business Machines Corporation Method and apparatus for preventing duplicate transactions on batch mode failure recovery in a data processing system
US6816865B2 (en) * 2001-04-18 2004-11-09 International Business Machines Corporation Process for data driven application integration for B2B
AU2002332556A1 (en) * 2001-08-15 2003-03-03 Visa International Service Association Method and system for delivering multiple services electronically to customers via a centralized portal architecture
US7546462B2 (en) * 2001-10-18 2009-06-09 Bea Systems, Inc. Systems and methods for integration adapter security
US20030120563A1 (en) * 2001-12-20 2003-06-26 Meyer Douglas C. Method of managing inventory

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020143819A1 (en) * 2000-05-31 2002-10-03 Cheng Han Web service syndication system
US6993585B1 (en) * 2000-12-22 2006-01-31 Unisys Corporation Method and system for handling transaction requests from workstations to OLTP enterprise server systems utilizing a common gateway
US20030191677A1 (en) * 2002-03-27 2003-10-09 Akkiraju Rama K. Method and system for integrating e-Logistics processes into a user/provider interface using Web Services

Also Published As

Publication number Publication date
EP1819415A2 (en) 2007-08-22
US20060101474A1 (en) 2006-05-11
WO2006052996A3 (en) 2007-04-19

Similar Documents

Publication Publication Date Title
US20060101474A1 (en) System, method and apparatus for an extensible distributed enterprise integration platform
US8751626B2 (en) Model-based composite application platform
US7565443B2 (en) Common persistence layer
US8886571B2 (en) System and method for service virtualization in a service governance framework
US6212546B1 (en) Providing a modular gateway architecture which isolates attributes of the client and server systems into independent components
US9817657B2 (en) Integrated software development and deployment architecture and high availability client-server systems generated using the architecture
US8984535B2 (en) System and method for facilitating the exchange of information among applications
US8065657B2 (en) Exchange infrastructure system and method
US20090165021A1 (en) Model-Based Composite Application Platform
EP2561656A1 (en) Servlet api and method for xmpp protocol
US20060187902A1 (en) Method and apparatus for session initiation protocol application design, development, execution and integration
US9940178B2 (en) System and method for integrating a transactional middleware platform with a centralized audit framework
US11411812B2 (en) Dynamic service creation for microservice-based integration service
US7739389B2 (en) Providing web services from a service environment with a gateway
CN114840329A (en) Cloud and native hybrid integration method based on block chain
CA2481099C (en) Exchange infrastructure system and method
US20050149342A1 (en) Method and apparatus for creating and customizing plug-in business collaboration protocols
US20030023577A1 (en) Method and apparatus for handling the registration of multiple and diverse communication protocols for use in an object request broker (ORB)
US10402307B2 (en) System and method for providing runtime tracing for a web-based client accessing a transactional middleware platform using an extension interface
WO2006044898A2 (en) A method and system for providing reconciliation of semantic differences amongst multiple message service providers
Krimmel et al. SAP NetWeaver Process Integration
CN114528140A (en) Method and device for service degradation
KR100629018B1 (en) The legacy interface system and operating method for enterprise wireless application service
Samset et al. Dealing with active and stateful services in the service-oriented architecture
CN116909657A (en) Method for calling class method in dubbo application, dubbo server and system

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KM KN KP KR KZ LC LK LR LS LT LU LV LY MA MD MG MK MN MW MX MZ NA NG NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SM SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): BW GH GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU LV MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2005848805

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 2005848805

Country of ref document: EP