WO2004062234A1 - Message transfer using multiplexed connections in an osi-tp environment - Google Patents

Message transfer using multiplexed connections in an osi-tp environment Download PDF

Info

Publication number
WO2004062234A1
WO2004062234A1 PCT/US2003/041682 US0341682W WO2004062234A1 WO 2004062234 A1 WO2004062234 A1 WO 2004062234A1 US 0341682 W US0341682 W US 0341682W WO 2004062234 A1 WO2004062234 A1 WO 2004062234A1
Authority
WO
WIPO (PCT)
Prior art keywords
osi
message
data
xatmi
processing machine
Prior art date
Application number
PCT/US2003/041682
Other languages
French (fr)
Inventor
Diane E. Schaefer
Stephen A. Burdeau
Original Assignee
Unisys Corporation
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 Unisys Corporation filed Critical Unisys Corporation
Priority to EP03800379A priority Critical patent/EP1584172A1/en
Publication of WO2004062234A1 publication Critical patent/WO2004062234A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1068Discovery involving direct consultation or announcement among potential requesting and potential source peers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • H04L69/162Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Definitions

  • the invention relates generally to distributed transaction processing systems, and more particularly to improved message transfer and more efficient processing in an open system interconnection ("OSI”) transaction processing (“TP”) environment.
  • OSI open system interconnection
  • TP transaction processing
  • On-line transaction processing is a technology that has been used successfully for business-critical applications by large enterprises for many years.
  • OLTP On-line transaction processing
  • users at terminals send messages to application programs, and these in turn update databases in real time. This is in contrast to batch or queued processing of transactions where the transactions are processed at a later time.
  • DTP Distributed Transaction Processing
  • DTP is a form of on-line transaction processing that allows a single transaction to be performed by multiple application programs that access one or more databases on one or more computers across a network. This type of transaction, in which multiple application programs cooperate, is called a distributed transaction.
  • DTP for example, related databases al regional and branch locations can be synchronized.
  • DTP also facilitates transaction processing across multiple enterprises. For example, DTP can be used to coordinate the computers of manufactures and suppliers, or to coordinate the computers of enterprises in related industries, such as the travel agency, airline, car rental, and hotel industries.
  • Transaction processing in a distributed environment can be either non- global or global.
  • a non-global transaction the same work takes place as in a traditional transaction, but the work is distributed in a client/server manner.
  • a travel agent may request an airline reservation via a client application program that has a graphical user interface.
  • the client application program communicates with a server application program that manages the reservation database.
  • the server application program updates the database, commits or aborts its own work, and returns information to the client application program, which notifies the travel agent.
  • a global transaction consists of multiple, coordinated database updates, possibly occurring on different computers. Global transactions are used when it is important that all databases are synchronized so that either all updates are made or none are made.
  • the travel agent may also need to reserve a rental car and hotel room. The customer who is traveling wants to make sure that all reservations are coordinated; if a flight is unavailable, the hotel and car reservations are not needed.
  • the airline, car, and hotel databases are oii different transaction processing systems.
  • the global transaction begins when the travel agent requests the reservation from a workstation client application program with a graphical user interface.
  • the client program contacts tliree server application programs on different transaction processing systems.
  • One server program books a flight, another reserves a car, and the third makes a hotel reservation.
  • Each of the server application programs updates its respective database.
  • the transactions processed by each of the server application programs may be referred to as subordinate transactions of the global transaction.
  • a global transaction manager coordinates the updates to the three databases, and a subordinate transaction manager on each of the individual transaction processing systems coordinates locally with the server application programs.
  • the server application programs return information to the client application program. ,
  • a major advantage of global transaction processing is that tasks that were once processed individually are processed as a group, the group of tasks being the global transaction.
  • the database updates are made on an all-or-nothing basis. For example, if an airline seat is not available, the hotel and car reservations are not made.
  • tasks that were once performed independently may be, coordinated and automated.
  • the two-phase commit process ensures that multiple databases participating in a single global transaction are synchronized— either all database updates requested by the global transaction are made or, in the event of system or component failure, none are made.
  • Two-phase commit guarantees global data integrity and preserves the ACID properties in a DTP environment. .
  • the X/Open DTP model is a software architecture that allows multiple application programs to share resources provided by multiple resource managers, and allows their work to be coordinated into global transactions.
  • the X/Open DTP model comprises a number of components, application programming interfaces ("APIs"), and communications interfaces.
  • APIs application programming interfaces
  • the components of the X/Open DTP model include an application program ("AP"), one or more resource managers (“RMs”), a transaction manager (“TM”), and a communications resource manager (“CRM”).
  • An AP is a user-defined software component that defines global transaction boundaries and specifies actions ' that constitute global transactions. It also provides access to one or more resources that are required by a transaction. In a global transaction, two or more server APs perform their individual functions which, when combined, make up the global transaction. One of the APs will be the transaction coordinator, that is, the AP that starts and finishes the global transaction. The other APs will be subordinate.
  • a RM provides access to a resource for an AP. Database management systems and file access systems are examples of system software components that act as RMs.
  • the APs begin and end transactions under the control of a TM.
  • TM is a system software component that assigns transaction identifiers to global transactions, monitors their progress, coordinates their completion, and coordinates failure recovery.
  • the TM enforces the transaction property of atomicity.
  • the TM adheres to the two-phase commit transaction processing protocol.
  • a CRM controls communication between the APs that are participating in global transactions, as well as between the TMs on separate data processing systems.
  • the X/Open DTP model provides a number of standard APIs that enable APs to interact with system components to conduct global transactions. These APIs include one or more AP-RM interfaces, an AP-TM interface, an AP-CRM interface, an RM-TM interface, and a TM- CRM interface.
  • the AP-RM interfaces provide APs access to resources (such as databases) through their respective RMs, but are not specifically defined by the X/Open DTP model, as a number of different resources may exist on a system. Examples of AP-RM interfaces include the Struclured Query Language (SQL) and the Indexed Sequential Access Method (ISAM).
  • SQL Struclured Query Language
  • ISAM Indexed Sequential Access Method
  • the AP-TM interface is provided by the TM to define global transaction boundaries.
  • the AP-TM interface is also referenced as the TX interface. Further information on the TX interface is available in Distributed Transaction Processing: The TX (Transaction Demarcation
  • the AP-CRM interfaces are provided by a CRM to an AP.
  • X/Open DTP model supports the following three AP-CRM interfaces: the TXRPC interface, the XATMI interface, and the CPI-C interface. Each of these interfaces can be used to enable communication between APs that utilize the same interface.
  • the TM-RM interface is used for purposes of transaction control (preparing, committing, or rolling-back).
  • the TM-RM interface is described further in XA Interface, Distributed Transaction Processing: The TX (Transaction Demarcation) Specification, X/Open Company Limited, U. K. (1992).
  • the TM-CRM interface 29 is described further in X/Open Preliminary Specification— Distributed Transaction Processing: The XA+ Specification, X/Open Company Limited, U.K. (1993).
  • the XATMI interface is described in more detail below, as well as in Distributed Transaction Processing: The XATMI Specification, X/Open Company Limited, U.K., (1993)(hereinafter "the XATMI Specification") which is incorporated herein by reference in its entirety.
  • DTP- model can communicate with each other using an industry standard communications protocol know as Open Systems Interconnection (OSI) Transaction Processing (TP) (1SO/IEC 10026) ("the OSI TP Standard"), all parts of which are hereby incorporated by reference in their entireties.
  • OSI TP Standard defines a machine independent protocol that supports communications between computers in a transaction processing system.
  • An industry standard CRM-OSI TP programming interface, called XAP-TP provides an interface between a CRM and an.
  • OSI TP protocol machine that conforms to the OSI TP Standard.
  • the OSI TP Protocol Specification defines the state transitions and protocols that a conformant OSI TP protocol machine must generate in processing OSI TP service requests in accordance with the OSI TP Standard.
  • the XAP-TP programming interface is specified in X/Open ACSE/Presentation: Transaction Processing API (XAP- TP) CAE specification ⁇ ("the XAP-TP Specification").
  • the XAP-TP Specification defines the interface, including functions, parameters, and errors, that controls the use of a conformant OSI-TP protocol machine.
  • the XATMI interface relies principally on the following API requests supported by the TX interface: tx.sub.-- begin() ⁇ a demarcation function that indicates that subsequent work performed by the calling AP is in support of a global transaction; tx.sub.— commit()-a demarcation function that commits all work done ' on behalf of the current global transaction; and tx.sub.— rollback()-a demarcation function that rolls back all work done on behalf of the current global transaction. Further details of the TX interface can be found in Distributed Transaction Processing: The TX (Transaction Demarcation) Specification, X/Open Company Limited, U.K., (1992).
  • the XATMI API provides a set of function calls, collectively referred to as the lp*() function calls, that can be called to perform various functions.
  • Table 1 is a list of these functions, callable from any C language application program:
  • IpallocQ Allocate a typed buffer tpfreeO Free a typed buffer.
  • tprealloc() Change the size of a typed buffer.
  • IplypesO Determine information about a typed buffer.
  • tpcallQ Send a service request and synchronously await its reply.
  • tpcancel Cancel a call descriptor for an outstanding reply.
  • tpgetrplyO Get a reply from a previous service request.
  • tpconnect Establish a conversational service connection.
  • tpdisconQ Terminate a conversational service connection abortively.
  • IprecvQ Receive a message in a conversational connection.
  • tpsendQ Send a message in a conversational connection.
  • Each of the foregoing XATMI API requests has a formal syntax that specifies the format and arguments of each request.
  • the formal syntax for each request is specified in the XATMI Specification. -
  • the XATMI interface supports typed buffers through the typed buffer functions listed above.
  • a typed buffer contains data and has associated with it a type and possibly a subtype, that indicate the meaning or interpretation of the data.
  • An AP calls tpallocfj to allocate a typed buffer of a specified type and subtype, can call tprealloc() to increase its size, and must eventually call tpfree() to dispose of it.
  • a receiver of a typed buffer can call tptypes() to determine the type and subtype of a buffer as well as its size.
  • the primitives (i.e., function calls) of the XATMI API are mapped to the services of the OSI TP protocol through an abstraction layer referred to as the XATMI Application Service Element (XATMI ASE).
  • the XATMI-ASE defines how the primitives in the XATMI interface (e.g., tpcall, tpacall, tpsend, etc.) are mapped to the services of the OSI TP protocol, the specifics of which may be found in the XATMI Specification.
  • the XAP-TP programming interface provides the interface between the XATMI-ASE service calls issued by a CRM, and the corresponding OSI TP service calls to which they must be mapped in an OSI TP protocol machine.
  • some of the XATMI-ASE service primitives map to a combination of more than one OSI TP service.
  • the XATMI-ASE service primitive, XATMI-CALL req maps to a sequence of three OSI TP service calls, TP- BEGIN-DIALOGUE req, TP- DATA req, and TP-GRANT-CONTROL req.
  • the XAP-TP interface must be called three successive times in order to execute the XATMI-CALL req service primitive of the XATMI-ASE, i.e., once for each OSI TP service call to which it maps.
  • each of the OSI TP service calls is processed by the OSI TP protocol machine independently (i.e., one at a time).
  • a CRM is required to make calls to an OSI TP protocol machine via XAP-TP tliree separate times in order to perform the services required by the XATMI-CALL req primitive of the XATMI-ASE. Each of these calls enters the
  • OSI TP protocol machine separately, the OSI TP protocol machine makes the necessary state transitions, the OSI TP protocol machine enters a protocol encoder to encode appropriate OSI-TP protocol data units ("PDUs"), as described in the OSI TP Protocol Specification, and the PDUs are eventually sent to the network via the lower layer protocols.
  • PDUs OSI-TP protocol data units
  • OSI TP Protocol Specification often result in increased system overhead that adversely affects the performance and throughput of any implementation of the OSI TP Protocol Specification.
  • execution of a single XATMI-ASE service request such as XATMI-CALL req, requires three separate calls to a standard OSI TP protocol machine via the XAP TP interface.
  • the system must cross the process boundary between Ihe user process (i.e.,, the software processes executing the functions of tlie AP, TM, and CRM) and the OSI TP process (i.e., the software processes executing , the functions of the OSI TP protocol machine) multiple times. Numerous calls across process boundaries in a software implementation of a system can seriously effect performance of the system.
  • DTP systems only support one of the three available AP-CRM programming interfaces.
  • a DTP system may only support the XATMI interface.
  • OSI TP Protocol Specification was designed with sufficient granularity to support many AP-CRM interfaces the overhead imposed by that granular design cannot be avoided with a fully compliant OSI TP protocol machine.
  • the modified OSI TP protocol machine comprised a modified multiple association control facility ("MACF") protocol machine that operated in accordance with a modified MACF state table that defined new event primitives and associated actions to support the processing of concatenated OSI TP services as single, atomic events.
  • MAF multiple association control facility
  • the 679 model modified OSI TP protocol machine also comprised a modified single association control facility ("SACF") protocol machine that operated in accordance with a modified SACF state table that defined new service primitives that corresponded to the new events defined in the modified MACF state table.
  • SACF single association control facility
  • the 679 model modified OSI TP protocol machine further comprised means for receiving successive OSI TP PDUs from a peer node until all of the PDUs associated with a particular service of the XATMI ASE protocol specification had been received, concatenating all of the received PDUs associated with that XATMI ASE service, and then passing the concatenated PDUs through the modified OSI TP protocol machine for processing as a single, atomic event.
  • the 679 model also included a CRM-OSI TP programming interface, referred to as the high performance transaction processing for XATMI ("HPTPX") programming interface, which replaced the standard XAP TP programming interface.
  • HPTPX high performance transaction processing for XATMI
  • Fig. 1 is a block diagram illustrating the process stmcture and functional components in a preferred embodiment of the 679 model.
  • Apparatus 80 comprises code 84 that implements the HPTPX interface of the 679 model, and a modified OSI TP protocol machine 85 that, as described above, processes concatenated OSI TP services for a given HPTPX service request as a single, atomic event.
  • An input/output control block 96 and a session block 98 control the input and output of data to and from the modified OSI TP protocol machine 85 via an output thread 102 and one or more input threads 104.
  • the session block 98 performs protocol transformations for the session layer of the OSI protocol stack.
  • a TSU request queue collects outgoing requests for processing by the output thread 102, which sends requests out to the network.
  • An output queue 106 stores flow controlled data requests when the network (not shown) is congested.
  • An implementation of lower layer protocols 108 handles the low level communications between nodes.
  • the modified OSI TP protocol machine 85 of the 679 model is based on the standard OSI TP protocol machine defined in the OSI TP Protocol Specification, but has been modified to support the processing of certain combinations of concatenated OSI TP service requests as single, atomic events, while remaining fully compliant with the OSI TP Standard.
  • the modified OSI TP protocol machine 85 comprises a modified MACF protocol machine 86, with its associated CPM, and a modified SACF protocol machine 88. Requests to the SACF protocol machine are queued in a SACF storage queue 90.
  • the modified OSI TP protocol machine further -comprises a PDU concat function 92.
  • Control of logging and management of the transaction trees is kept under the control of a TM.
  • the modified MACF protocol machine 86 relinquishes control of branch management to the TM and treats each branch as a separate entity with no correlation to any other branch.
  • the modified OSI TP protocol machine 85 controls all associations needed for TP dialogues and channels.
  • the CRM will solicit the modified OSI TP protocol machine 85 for an AAID when needed, and in the case of added multiple branches to the same transaction tree, it will supply the modified OSI TP protocol machine 85 with the necessary AAID.
  • Recovery is also handled branch by branch.
  • the modified MACF protocol machine 86 does not need to know how the branches are associated.
  • a NULL RCH recovery context handle
  • Fig. 2 is a block diagram illustrating prior art non-multiplexed connections between hosts in an OSI TP environment, including the 679 model.
  • an OSI TP environment where Host A 201 and another Host B 202 are exchanging data, there are one or more concurrent dialogues 203a-203x (e.g., XATMI service calls) residing on Host A that correspond directly to one or more concurrent dialogues 204a- 204x on Most B.
  • non-multiplexed associations 205a-205x were created between each dialogue 203a-203x on Host A 201 and each dialogue 204a- 204x on Host B 202. This involved significant codepath, generated excess overhead, and made connection management and creation difficult and complex.
  • the invention overcomes problems with the prior art in a number of ways.
  • the invention provides a novel mapping of the OSI TP PDUs that is less complex, requires less system overhead, and results in simpler connection creation and management.
  • the novel PDU mappings are platform and hardware independent. Each mapping groups the OSI PDUs into types that characterize the PDUs' content, thereby minimizing the number of processing cycles expended on each PDU because the processor need not interpret each field of every PDU the processor receives.
  • the mappings are customized and optimized for an OSI TP machine utilizing XATMI.
  • Another aspect of the invention is the use of multiplexed TCP/IP protocol connections to transfer messages between TMs in OSI TP environments.
  • multiplexed TCP/IP connections in the OSI TP protocol machine the SACF and OSI lower layers in the prior art may be eliminated, significantly reduced codepath is necessary, less overhead related to data transfer is required, and there are hardware independent connections that are far simpler to create and manage.
  • the invention eliminates portions of the OSI TP stack design and condenses network transmission to multiplexed TCP/IP connections, condenses the TCP IP protocol stack and moves the functions of the SACF and CCR in the prior art into the MACF and reworks the encode and decode routines into fixed buffers that are consistent with XATMI.
  • Other aspects of the invention, together with additional features and advantages are described below.
  • Fig. 1 is a block diagram illustrating the process structure and functional components of a prior art apparatus for performing distributed transaction processing in an OSI TP environment;
  • Fig. 2 is a block diagram illustrating prior art non-multiplexed connections between hosts in an OSI TP environment
  • Fig. 3 is a block diagram illustrating multiplexed connections between hosts in an OSI TP 'environment in accordance with an embodiment of the invention
  • Fig. 4 is a block diagram illustrating the process structure and functional components of an apparatus for performing distributed transaction processing in an OST TP environment in accordance with an embodiment of the invention
  • Fig. 5 is a block diagram illustrating the layers in a modified OSI TP stack in accordance with an embodiment of the invention.
  • Fig. 6 is a state table describing multiplexing OSI TP messages over a TCP-IP connection in accordance with an embodiment of the invention.
  • Fig. 3 is a block diagram illustrating multiplexed connections between the same pair of hosts in an OSI TP environment in accordanceVvith an embodiment of the invention.
  • concurrent dialogues 203a-203x e.g., XATMI service calls
  • Host A that correspond directly to one or more concurrent dialogues 204a-204x on Host B.
  • a single multiplexed TCP/IP connection 301 connects Host A 201 to Host B 202.
  • Data being exchanged between the concurrent dialogues 203a-203x on Host A 201 and the concurrent dialogues 204a-204x on Host B 202 is mapped into the single multiplexed TCP/IP connection 301 between Host A 201 and Host B 202.
  • FIG. 4 is a block diagram illustrating the process structure and functional components of an apparatus 401 for performing distributed transaction processing in an OST TP environment in accordance with an embodiment of the invention.
  • Apparatus 401 comprises code 403 that implements the HPTPX interface, and a modified OSI TP protocol machine 404 that processes concatenated OSI TP services for a given HPTPX service request as a single, atomic event.
  • An output queue 407 holds all requests 408 from the modified OSI TP protocol machine.
  • Output socket thread 409 takes all requests 408 from queue 407, and distributes them to the one or more remote host buffers (not shown) it controls where it is sent to. the remote host.
  • Data from network 411 is input to the modified OSI TP protocol machine 404 via input socket thread 410.
  • the modified OSI TP protocol machine 404 of apparatus 401 is based on the standard OSI TP protocol machine defined in the OSI TP Protocol Specification, and/or as modified by the 679 model noted above, but has been further modified to support the processing of messages that are much simpler in form. The format and handling of these simpler messages is described in detail below.
  • the modified OSI TP protocol machine 404 comprises a modified MACF protocol machine 405, with its associated Channel Protocol Machine (CPM), and an encode/decode machine 406. Data as it flows from the MACF/CPM protocol machine 405 to the XATMI engine in 402 remains consistent with XATMI standard X/Open protocol.
  • CCM Channel Protocol Machine
  • the threads utilized in the multiplexed OSI TP over TCP/IP environment of apparatus 401 have the following characteristics.
  • a Timer Thread deals with timed events, such as recovery and cleanup of resources.
  • a Socket Listener Thread listens for incoming connection requests on any of the IP/Port combinations configured in the apparatus 401. In one embodiment the user may configure up to 8 listening addresses, thereby allowing for multi-homing.
  • Socket Worker Threads are designated once a incoming association request is received by apparatus " 401, and receive all other data from the other host after the incoming association request.
  • a Socket Input Thread listens on all sockets in apparatus 401 for incoming data, and there is one input thread for each remote host configured by apparatus 401.
  • Each socket input thread controls two basic 'structures in apparatus 401, a Communications Instance Array and a Poll Array, which match socket requests to Multiplexed Communications Instances ("MCIs").
  • MCIs Multiplexed Communications Instances
  • Each socket input thread reads data for all sockets in the poll array, and captures and interprets the message headers in the data read. If the header is either a Keep_Alive, Keep_Alive_Ok, or Security _Ok, described in more detail below, the socket input thread performs all the necessary processing. Otherwise, the header and data (based on the length),are moved to the appropriate Stream Input Queue for the Communications Instance.
  • a Socket Output Thread controls the flow of PDUs from the output queue 407 to the write buffer, and streams data from the write buffer onto the network 411.
  • the Asynchronous Request Processor (ARP) Thread handles asynchronous requests depending on the particular implementation.
  • the MCI represents the state of the connection and all information needed to establish communications, send, and receive data to and from the particular remote host.
  • the recognized states comprise idle (i.e., no connection exists), connecting (i.e., connection establishment in progress), connected (connection is established), and reconnecting (i.e., connection was broken and is waiting to be reestablished).
  • security sub-states could ' include: rio_sec ⁇ rily, wsecure_ack, wsecurejrc, and secure.
  • Keep alive sub-states could include: kalive-pending, and kalive-ok.
  • Fig. 6 illustrates one implementation of a state table 601 for use with the apparatus 401 embodiment of the invention.
  • Events addressed in state table 601 include: Mconnect-req (request for multiplexed connection); Mdata-req (request to send data over multiplexed connection); Accept-connect (incoming connection request received); Assoc- sp (response to an outgoing association was received); and Connection-close (physical connection was closed or aborted).
  • Actions addressed in state table 601 include: SEND-ASSOC-REQ (processes an outgoing association request after first establishing a TCP/IP connection and then encoding and sending ait Associate_Req to the peer host); HELD-Q (queues messages to a held queue until they can be sent to the peer host); SEND-DATA (sends messages to the peer host over the TCP/IP connection); SEND-ASSOC-RSP (accepts incoming Associate_Req message and encodes and sends Associate_Rsp message to the peer host over the multiplexed TCP/IP connection); SEND-ABORT-REQ (rejects an incoming Associate_Req message and encodes and sends an Abort_Req message); CLOSE- SOCKET (closes socket with incoming connection and causes a peer host to see a Connection-close event); FLUSH-Q (writes all messages stored in held queue to a peer host over the TCP/IP connection); DISCARD-Q (frees all
  • Fig. 6 state table Decisions addressed in the Fig. 6 state table include Validation True (“VT"), which indicates that all received fields in a message have been successfully validated.
  • Variables addressed in, the Fig. 6 state table include: Local Serial Number (“LSN”) (a randomly generated unsigned long integer stored in an MCI); and Remote Serial Number (“RSN”) (a randomly generated unsigned lon integer from the remote system found in an incoming Associate Req message).
  • LSN Local Serial Number
  • RSN Remote Serial Number
  • Each MCI may have a serial number comprised of a random number assigned to it when an Associate Request is sent.
  • the serial number inay serve several purposes, such as resolving association establishment collisions.
  • Each MCI also may maintain various statistics, such as size of transfer and how many PDUs are being sent. The statistics may be used for a number of purposes, one example being adjustments in the streaming of data.
  • Each MCI also may have remote host information, such as the OSI TP application entity title and IP address information needed to make the particular TCP/IP connection. ' The MCI may also contain a pointer to such information. Finally, each MCI also may include protocol version information and security ⁇ information, such as HASH values for use in security exchanges.
  • each MB data structure includes the following additional information: a pointer to its associated MCI for queuing output requests and posting network aborts from its MCI; decoded fields which serve as a place to put any flags or other information discovered while decoding a PDU; and a serial number comprised of the branch and gen-id of the remote host corresponding message so that when a message arrives at apparatus 401 the socket input thread can find the appropriate branch record in apparatus 401.
  • Data movement, connection behavior, and the like in the apparatus 401 embodiment of the, invention can generally be described as follows. There is one thread that controls sending and receiving of messages per remote host. One connection is established and maintained between the apparatus 401 and the remote host session by this worker tluead. Once a connection to a remote host is established, it remains available until it is abnormally terminated due to a network or host failure.
  • One listening thread is activated upon startup of apparatus 401 and - listens for incoming connection requests.
  • apparatus 401 there may be up to 8 IP addresses with ports specified for the listening thread to wait for incoming messages from remote hosts.
  • apparatus 401 starts a worker thread to analyze the incoming message, send the response, and handle all future incoming communication with this peer.
  • This worker thread exists for the duration of the socket.
  • There is a collision scenario that exists where an output and input connection establishment is attempted. In this case apparatus 401 maintains an internal serial number for ⁇ ach connection attempt so results can be compared and one side or the other will "win" the connection establishment.
  • connection 301 Once connection 301 is established, data may flow from either side. If connection 301 is established from the apparatus 401 side, the output thread determines that a connection establishment is needed and starts a worker tluead to create connection 301 and handle all future incoming communication with the peer.
  • output thread There is one output thread that handles the transmission of all output messages.
  • the output thread works from output queue 407 where messages coming from protocol machine 404 are placed. Data is not copied in this case, but referenced from the queue. Additional headers are needed by OSI TP so that the peer will recognize the data format. These additional headers are generated by MACF 405 and sent in a separate array to output queue 407 along with the user data and the internal representation of what resource has sent the message and what remote host this message is destined for.
  • output thread 409 wakes up, it takes all messages accumulated on queue 407 from all CRM 402 application threads and begins to gather the output data to be placed on the multiplexed OSI TP over TCP/IP connection 301. The messages are separated by remote host and sent as a gathered output.
  • the CRM 402 application thread is held until the data is actually sent. This enables apparatus 401 to send data directly from the CRM 402 generated buffer without copying the data.
  • connection 301 there is a dedicated worker thread to handle incoming messages for this connection.
  • the contents are evaluated based on the message type as described in detail below.
  • XATMI messages are passed up through protocol machine 404 for state processing before the actual message is passed up to CRM 402.
  • the array used to receive the message is simply indexed into at various points depending on which software piece of apparatus 401 needs to reference the array. Some inbound messages are not destined for CRM 402 and result in an immediate outbound response generated by the input worker thread (instead of being placed on the output queue for the output thread to process).
  • apparatus 401 When a network failure or socket close is detected, apparatus 401 begins its failure processing for all resources using connection 301 to communicate with remote hosts or the particular remote host associated with the closed socket. All active calls are aborted and depending on their current state may enter into transaction recovery. In transaction recovery, apparatus 401 tries to reestablish communication with the remote host or hosts and assess the current state of the transaction. The connection layer handles actually re-establishing communications while all messages destined for the remote host or hosts are held by apparatus 401. Once the communications are re-established, all query requests are sent so the transaction can be resumed. In one embodiment of apparatus 401, connection layer 301 attempts to reestablish communications using the graduated time algorithm shown in Table 2 below:
  • a socket close results in all held data being flushed and aborts being sent to all active transactions.
  • CRM 402 only sees aborts for transactions in the active phase. Once a transaction has been prepared, recovery attempts continue indefinitely until they are resolved.
  • each MACF machine in a OSI TP implementation communicates directly with peers or remote hosts, and the standard seven-layer OSI model is reduced by eliminating presentation, session and the OSI transport protocol layers to the layers as shown in Fig. 5. ' • -
  • the modified OSI TP stack 501 iii one embodiment of the invention comprises an XATMI layer 504a, OSI TP layer 505a, and Socket layer 506a, each of which resides on Host Platform A 502.
  • the same modified stack may reside on other peers or remote hosts such as Host Platform B 503 in Fig. 5.
  • socket layers 506 communicate with each' other by establishing a socket connection 507 between the local (e.g., Flost Platform A 502) and remote hosts (e.g., Host Platform B 503), sending an ASSOCIATE-REQ with the Application Entity Title ("AET") to identify the OSI TP layer, confirming the foregoing, and exchanging security information if enabled.
  • AET Application Entity Title
  • a client issues either a TPCALL or TPCONNECT, the XATMI layers are connected. Through this modified stack, all data and transaction primitives are exchanged.
  • all messages are simply streams of bytes without regard for word alignment, and each message field is represented by a fixed number of bytes.
  • Iii a preferred embodiment of the invention the following logical field types are used to encode OSI TP messages: unsigned byte (one 8-bit byte); array of unsigned byte; unsigned short integer (two 8-bit bytes); and unsigned long integer (four 8-bit bytes).
  • unsigned short integer field type the first byte is the high order byte and the second byte is the low-order byte.
  • the unsigned long integer field type the first byte is the highest order byte; the second byte is the next highest order byte, and so on.
  • the messages in accordance with the preferred embodiment of the invention have the following general format: Header [OSI TP Data [XATMI Encoding [user data]]], where the information contained with any set of brackets is optional. All messages contain a five-byte Header comprised of an unsigned byte that indicates message type and an unsigned long integer that indicates the remaining message length.
  • the format of the OSI TP data varies depending on the particular message, as described in more detail below.
  • the format of the XATMI encoding in accordance with a preferred embodiment of the invention comprises an unsigned long integer that indicates the length of XATMI data in the message and an array of unsigned bytes that is the XATMI data;
  • Encryption bits also may be encoded as enumerated types so that key lengths greater than 255 bits can be represented in a single byte.
  • special case values above 128 can be used to represent key sizes larger than 255 bits.
  • the format of the OSI TP Data portion of the foregoing Security_Rsp message type in accordance with an embodiment of the invention is 20 Unsigned Bytes representing the Recipient HASH values.
  • the format of the OSI TP data portion of the foregoing Abort message type in accordance with an embodiment of the invention is an Unsigned Byte representing the reason for the abort.
  • Exemplary Abort reason codes include: (1) invalid protocol version; (2) multiplexing negotiation error; (3) configuration error; (4) security error; (5) encryption negotiation error; (6) recovery not complete error; (7) RDOM is offline; (8) invalid platform; and (9) other error.
  • OSI TP PDUs 1-3 in Table 6 above in accordance with an embodiment of the invention is set forth in Table 7 below.
  • the XATMI Encoding with optional user data follows the OSI TP Data portion of the messages.
  • OSI TP Data portion of transactional messages OSI
  • TP PDUs 4-6 in Table 6 above in accordance with an embodiment of the invention is set forth in Table 8 below.
  • the XATMI Encoding with optional user data follows the OSI TP Data portion of the messages.
  • OSI TP PDUs 7-9, 12-14, 21-22, and 35-36 in Table 9 above The format of the OSI TP Data portion of begin dialogue response with data messages or begin dialogue response with an abort messages (OSI TP PDUs 7-9, 12-14, 21-22, and 35-36 in Table 9 above) in accordance with an embodiment of the invention is set forth in Table 10 below.
  • the XATMI Encoding with optional user data follows the OSI TP Data portion of the messages. In the case of PDU 36, the XATMI Encoding may be zero length.
  • OSI TP PDUs 33 and 34 in Table 9 above The format of the OSI TP Data portion of an abort without XATMI data (OSI TP PDUs 33 and 34 in Table 9 above) in accordance with an embodiment of the invention is set forth in Table 11 below. There is no XATMI Encoding or user data that follows the OSI TP Data portion of the messages.
  • OSI TP Data portion of a user data request OSI TP
  • PDUs 15-18 in Table 9 above in accordance with an embodiment of the invention is set forth in Table 13 below.
  • the XATMI Encoding with optional user data follows the OSI TP Data portion of the messages.
  • OSI TP Data portion of a two-phased commit message with a recipient (OSI TP PDUs 20, 24-29 and 37 in Table 9 above) in accordance with an embodiment of the invention is set forth in Table 14 below. There is no XATMI Encoding or user data that follows the OSI TP Data portion of the messages.
  • PDU 30 in Table 9 above in accordance with ah embodiment of the invention is set forth in Table 15 below.
  • OSI.TP PDU 31 in Table 9 above in accordance with an embodiment of the invention is set forth in Table 16 below. There is no XATMI Encoding or user data, that follows the OS! TP Data portion of the messages.
  • OSI TP PDUs 38-39 in Table 9 above The format of the OSI TP Data portion of a heuristic commit or rollback message (OSI TP PDUs 38-39 in Table 9 above) in accordance with an embodiment of the invention is set forth in Table 17 below. There is no XATMI Encoding or user data that follows the OSI TP Data portion of the messages.
  • OSI TP PDU 40 in Table 9 above in accordance with an embodiment of the invention is set forth in Table 18 below. There is no XATMI Encoding or user data that follows the OSI TP Data portion of the messages.
  • OSI TP PDUs 41-42 in Table 9 above The format of the OSI TP Data portion of a rollback abort with heuristic message (OSI TP PDUs 41-42 in Table 9 above) in accordance with an embodiment of the invention is set forth in Table 19 below.
  • the XATMI Encoding with optional user data follows the OSI TP Data portion of the messages, but the XATMI Encoding may be zero length.

Abstract

Novel message formats for use in a distributed transaction environment are disclosed. Each message includes a message type field, a message length field, and a data field, typically in the foregoing order, and each field in the message has a fixed number of bytes. The message type and data length fields may be comprised of a single header. The data field may include novel groups of OSI TP PDUs where each grouping characterizes the content of the data in the PDU. A novel apparatus for use in a distributed transaction environment also is disclosed. The apparatus may include a peer processing machine and a multiplexed TCP/IP connection for exchanging messages with other peer processing machines in the distributed transaction environment.

Description

MESSAGE TRANSFER USING MULTIPLEXED CONNECTIONS IN AN OSI-TP ENVIROMENT
I. Background
A. Field of the Invention
[001] The invention relates generally to distributed transaction processing systems, and more particularly to improved message transfer and more efficient processing in an open system interconnection ("OSI") transaction processing ("TP") environment.
B. Copyright Notice/Permission
[002] A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever. The following notice applies to the software and data as described below, the drawings, and any appendices: Copyright. COPYRGT. 1998-2002, Unisys Corporation.
C. Description of the Related Art
[003] Much of the art related and background associated with the invention is described in U.S. Patent No. 6,141,679, issued on October 31, 2000 and assigned to the assignee of this invention, and its entire contents is incorporated herein by reference. For ease of reference though, some of the information contained therein is set forth below, together with additional information about the shortcomings in the prior art overcome by this invention.
[004] On-line transaction processing (OLTP) is a technology that has been used successfully for business-critical applications by large enterprises for many years. With OLTP, users at terminals send messages to application programs, and these in turn update databases in real time. This is in contrast to batch or queued processing of transactions where the transactions are processed at a later time.
[005] Distributed Transaction Processing (DTP) is a form of on-line transaction processing that allows a single transaction to be performed by multiple application programs that access one or more databases on one or more computers across a network. This type of transaction, in which multiple application programs cooperate, is called a distributed transaction. Using DTP, for example, related databases al regional and branch locations can be synchronized. DTP also facilitates transaction processing across multiple enterprises. For example, DTP can be used to coordinate the computers of manufactures and suppliers, or to coordinate the computers of enterprises in related industries, such as the travel agency, airline, car rental, and hotel industries.
[006] Transaction processing in a distributed environment can be either non- global or global. In a non-global transaction, the same work takes place as in a traditional transaction, but the work is distributed in a client/server manner. For example, a travel agent may request an airline reservation via a client application program that has a graphical user interface. The client application program communicates with a server application program that manages the reservation database. The server application program updates the database, commits or aborts its own work, and returns information to the client application program, which notifies the travel agent.
[007] A global transaction consists of multiple, coordinated database updates, possibly occurring on different computers. Global transactions are used when it is important that all databases are synchronized so that either all updates are made or none are made. Continuing with the previous example, the travel agent may also need to reserve a rental car and hotel room. The customer who is traveling wants to make sure that all reservations are coordinated; if a flight is unavailable, the hotel and car reservations are not needed. For the purpose of illustrating a global transaction, the airline, car, and hotel databases are oii different transaction processing systems.
[008] The global transaction begins when the travel agent requests the reservation from a workstation client application program with a graphical user interface. The client program contacts tliree server application programs on different transaction processing systems. One server program books a flight, another reserves a car, and the third makes a hotel reservation. Each of the server application programs updates its respective database. The transactions processed by each of the server application programs may be referred to as subordinate transactions of the global transaction. A global transaction manager coordinates the updates to the three databases, and a subordinate transaction manager on each of the individual transaction processing systems coordinates locally with the server application programs. The server application programs return information to the client application program. ,
[009] A major advantage of global transaction processing is that tasks that were once processed individually are processed as a group, the group of tasks being the global transaction. The database updates are made on an all-or-nothing basis. For example, if an airline seat is not available, the hotel and car reservations are not made. Thus, with a global transaction, tasks that were once performed independently may be, coordinated and automated.
[010] As with non-global transactions, global transactions must possess atomicity, consistency, isolation, and durability ("ACID") properties as well. In order to preserve these properties for a global transaction, the commit processing is modified to a two-phase commit procedure. Under a two-phase commit, a global transaction manager first requests that each of the subordinate transaction managers prepare to commit their updates to the respective databases. If all the local transaction managers respond that they are prepared to commit, the global transaction manager sends a commit request to the local transaction managers. Thus, the two parts of the two-phase commit process are (i) prepare to commit the database updates, and (ii) commit the database updates. If any one of the transaction managers is unable to prepare to commit, the entire global transaction is aborted and each transaction manager performs a rollback function to undo the processing that may have occurred up to that point. In short, the two-phase commit process ensures that multiple databases participating in a single global transaction are synchronized— either all database updates requested by the global transaction are made or, in the event of system or component failure, none are made. Two-phase commit guarantees global data integrity and preserves the ACID properties in a DTP environment. .
[01 1] An industry consortium of users and vendors, known as X Open
GroupTM., developed some lime ago a model architecture for DTP, referred to as the X/Open Distributed Transaction Processing model. The X/Open DTP model is a software architecture that allows multiple application programs to share resources provided by multiple resource managers, and allows their work to be coordinated into global transactions. The X/Open DTP model comprises a number of components, application programming interfaces ("APIs"), and communications interfaces.
[012] The components of the X/Open DTP model include an application program ("AP"), one or more resource managers ("RMs"), a transaction manager ("TM"), and a communications resource manager ("CRM"). An AP is a user-defined software component that defines global transaction boundaries and specifies actions ' that constitute global transactions. It also provides access to one or more resources that are required by a transaction. In a global transaction, two or more server APs perform their individual functions which, when combined, make up the global transaction. One of the APs will be the transaction coordinator, that is, the AP that starts and finishes the global transaction. The other APs will be subordinate. A RM provides access to a resource for an AP. Database management systems and file access systems are examples of system software components that act as RMs.
[013] The APs begin and end transactions under the control of a TM. The
TM is a system software component that assigns transaction identifiers to global transactions, monitors their progress, coordinates their completion, and coordinates failure recovery. The TM enforces the transaction property of atomicity. In a global transaction, the TM adheres to the two-phase commit transaction processing protocol. A CRM controls communication between the APs that are participating in global transactions, as well as between the TMs on separate data processing systems.
[014] The X/Open DTP model provides a number of standard APIs that enable APs to interact with system components to conduct global transactions. These APIs include one or more AP-RM interfaces, an AP-TM interface, an AP-CRM interface, an RM-TM interface, and a TM- CRM interface. The AP-RM interfaces provide APs access to resources (such as databases) through their respective RMs, but are not specifically defined by the X/Open DTP model, as a number of different resources may exist on a system. Examples of AP-RM interfaces include the Struclured Query Language (SQL) and the Indexed Sequential Access Method (ISAM). [015] The AP-TM interface is provided by the TM to define global transaction boundaries. The AP-TM interface is also referenced as the TX interface. Further information on the TX interface is available in Distributed Transaction Processing: The TX (Transaction Demarcation) Specification, X/Open Company Limited, U.K., (1992).
[016] The AP-CRM interfaces are provided by a CRM to an AP. The
X/Open DTP model supports the following three AP-CRM interfaces: the TXRPC interface, the XATMI interface, and the CPI-C interface. Each of these interfaces can be used to enable communication between APs that utilize the same interface. The TM-RM interface is used for purposes of transaction control (preparing, committing, or rolling-back). The TM-RM interface is described further in XA Interface, Distributed Transaction Processing: The TX (Transaction Demarcation) Specification, X/Open Company Limited, U. K. (1992). The TM-CRM interface 29 is described further in X/Open Preliminary Specification— Distributed Transaction Processing: The XA+ Specification, X/Open Company Limited, U.K. (1993). The XATMI interface is described in more detail below, as well as in Distributed Transaction Processing: The XATMI Specification, X/Open Company Limited, U.K., (1993)(hereinafter "the XATMI Specification") which is incorporated herein by reference in its entirety.
[017] In addition to the foregoing APIs, systems that implement the X/Open
DTP- model can communicate with each other using an industry standard communications protocol know as Open Systems Interconnection (OSI) Transaction Processing (TP) (1SO/IEC 10026) ("the OSI TP Standard"), all parts of which are hereby incorporated by reference in their entireties. The OSI TP Standard defines a machine independent protocol that supports communications between computers in a transaction processing system. An industry standard CRM-OSI TP programming interface, called XAP-TP, provides an interface between a CRM and an. OSI TP protocol machine that conforms to the OSI TP Standard. ISO/IEC 10026-3, Information Technology- -Open Systems Interconnection— Distributed Transaction Processing— Part 3: Protocol Specification ("the OSI TP Protocol Specification") defines the state transitions and protocols that a conformant OSI TP protocol machine must generate in processing OSI TP service requests in accordance with the OSI TP Standard. The XAP-TP programming interface is specified in X/Open ACSE/Presentation: Transaction Processing API (XAP- TP) CAE specification~("the XAP-TP Specification"). The XAP-TP Specification defines the interface, including functions, parameters, and errors, that controls the use of a conformant OSI-TP protocol machine.
[018] The XATMI interface relies principally on the following API requests supported by the TX interface: tx.sub.-- begin()~a demarcation function that indicates that subsequent work performed by the calling AP is in support of a global transaction; tx.sub.— commit()-a demarcation function that commits all work done'on behalf of the current global transaction; and tx.sub.— rollback()-a demarcation function that rolls back all work done on behalf of the current global transaction. Further details of the TX interface can be found in Distributed Transaction Processing: The TX (Transaction Demarcation) Specification, X/Open Company Limited, U.K., (1992).
[019] The XATMI API provides a set of function calls, collectively referred to as the lp*() function calls, that can be called to perform various functions. Table 1 is a list of these functions, callable from any C language application program:
Table 1
Service Requests (Function Calls) of the XATMI API. Name Description
Typed Buffer Functions
IpallocQ Allocate a typed buffer. tpfreeO Free a typed buffer. tprealloc() Change the size of a typed buffer.
IplypesO. Determine information about a typed buffer. A
Functions for Writing Service Routines lpservice() Template for service routines. tprelurn() Return from a service routine.
Functions for Dynamically Advertising Service Names IpadvertisefJ Advertise a service name. tpunadvertise() Unadvertise a service name.
Functions for Request/Response Services tpacallf) Send a service request. tpcallQ Send a service request and synchronously await its reply. tpcancel() Cancel a call descriptor for an outstanding reply. tpgetrplyO. Get a reply from a previous service request.
Functions for Conversational Services tpconnect() Establish a conversational service connection. tpdisconQ Terminate a conversational service connection abortively. IprecvQ Receive a message in a conversational connection. • tpsendQ Send a message in a conversational connection.
[020] Each of the foregoing XATMI API requests has a formal syntax that specifies the format and arguments of each request. The formal syntax for each request is specified in the XATMI Specification. -
[021 ] - The XATMI interface supports typed buffers through the typed buffer functions listed above. A typed buffer contains data and has associated with it a type and possibly a subtype, that indicate the meaning or interpretation of the data. An AP calls tpallocfj to allocate a typed buffer of a specified type and subtype, can call tprealloc() to increase its size, and must eventually call tpfree() to dispose of it. A receiver of a typed buffer can call tptypes() to determine the type and subtype of a buffer as well as its size.
[022] Under the X/Open DTP model, the primitives (i.e., function calls) of the XATMI API are mapped to the services of the OSI TP protocol through an abstraction layer referred to as the XATMI Application Service Element (XATMI ASE). The XATMI-ASE defines how the primitives in the XATMI interface (e.g., tpcall, tpacall, tpsend, etc.) are mapped to the services of the OSI TP protocol, the specifics of which may be found in the XATMI Specification.
[023] The XAP-TP programming interface provides the interface between the XATMI-ASE service calls issued by a CRM, and the corresponding OSI TP service calls to which they must be mapped in an OSI TP protocol machine. In fact, some of the XATMI-ASE service primitives map to a combination of more than one OSI TP service. For example, the XATMI-ASE service primitive, XATMI-CALL req, maps to a sequence of three OSI TP service calls, TP- BEGIN-DIALOGUE req, TP- DATA req, and TP-GRANT-CONTROL req. Thus, according to the XAP TP Specification and OSI TP Protocol Specification, the XAP-TP interface must be called three successive times in order to execute the XATMI-CALL req service primitive of the XATMI-ASE, i.e., once for each OSI TP service call to which it maps. Moreover, according to the OSI TP Protocol Specification, each of the OSI TP service calls is processed by the OSI TP protocol machine independently (i.e., one at a time).
[024] In other words, according to the XAP-TP Specification and OSI TP
Protocol Specification, a CRM is required to make calls to an OSI TP protocol machine via XAP-TP tliree separate times in order to perform the services required by the XATMI-CALL req primitive of the XATMI-ASE. Each of these calls enters the
OSI TP protocol machine separately, the OSI TP protocol machine makes the necessary state transitions, the OSI TP protocol machine enters a protocol encoder to encode appropriate OSI-TP protocol data units ("PDUs"), as described in the OSI TP Protocol Specification, and the PDUs are eventually sent to the network via the lower layer protocols.
[025] The reason that higher-level services, such as the XATMI-CALL req of the XATMI-ASE, are broken down into more granular service primitives within the OSI TP protocol machine is that the standard OSI TP protocol machine, as specified in the OSI TP Protocol Specification, must support multiple AP-CRM programming interfaces—the XATMI interface described above, the TXRPC interface, the CPI-C interface, and others not yet defined. Combinations of the granular service primitives of the OSI TP Protocol Specification are executed, in sequence, as necessary to perform the higher level services of each AP- CRM interface.
[026] In practice though, the granular nature of the service primitives of the
OSI TP Protocol Specification often result in increased system overhead that adversely affects the performance and throughput of any implementation of the OSI TP Protocol Specification. For example, because of the granular nature of the OSI TP Protocol Specification, execution of a single XATMI-ASE service request, such as XATMI-CALL req, requires three separate calls to a standard OSI TP protocol machine via the XAP TP interface. The system must cross the process boundary between Ihe user process (i.e.,, the software processes executing the functions of tlie AP, TM, and CRM) and the OSI TP process (i.e., the software processes executing , the functions of the OSI TP protocol machine) multiple times. Numerous calls across process boundaries in a software implementation of a system can seriously effect performance of the system.
[027] Many DTP systems only support one of the three available AP-CRM programming interfaces. For example, a DTP system may only support the XATMI interface. Nevertheless, because the OSI TP Protocol Specification was designed with sufficient granularity to support many AP-CRM interfaces the overhead imposed by that granular design cannot be avoided with a fully compliant OSI TP protocol machine.
[028] The invention described and claimed in U.S. Patent No. 6,141,679 noted above (the "679 model") addressed the problems associated with the foregoing design by optimizing the operation of an OSI TP based protocol machine for use in a particular AP- CRM interface environment without affecting the conformance of the system to the OSI TP Protocol Specification. Specifically, in the 679 model the multiple OSI TP service requests to which a given service request of the XATMI ASE are mapped, and which are normally processed as individual events in an OSI TP protocol machine that conforms to the OSI TP Protocol Specification, are concatenated and processed by a modified OSI TP protocol machine as a single, atomic event. The modified OSI TP protocol machine comprised a modified multiple association control facility ("MACF") protocol machine that operated in accordance with a modified MACF state table that defined new event primitives and associated actions to support the processing of concatenated OSI TP services as single, atomic events.
[029] The 679 model modified OSI TP protocol machine also comprised a modified single association control facility ("SACF") protocol machine that operated in accordance with a modified SACF state table that defined new service primitives that corresponded to the new events defined in the modified MACF state table. The 679 model modified OSI TP protocol machine further comprised means for receiving successive OSI TP PDUs from a peer node until all of the PDUs associated with a particular service of the XATMI ASE protocol specification had been received, concatenating all of the received PDUs associated with that XATMI ASE service, and then passing the concatenated PDUs through the modified OSI TP protocol machine for processing as a single, atomic event.
[03.0] Finally, to support the processing of concatenated OSI TP services as a single, atomic event in an XATMI ASE environment, the 679 model also included a CRM-OSI TP programming interface, referred to as the high performance transaction processing for XATMI ("HPTPX") programming interface, which replaced the standard XAP TP programming interface. Each service primitive of the XATMI ASE mapped to a respective, single service request of the HPTPX interface in the 679 model, and each service request of the HPTPX interface represented a concatenation of the OSI TP services to which its respective XATMI ASE service was normally mapped in accordance with the XATMI Specification.
[031 ] Fig. 1 is a block diagram illustrating the process stmcture and functional components in a preferred embodiment of the 679 model. Apparatus 80 comprises code 84 that implements the HPTPX interface of the 679 model, and a modified OSI TP protocol machine 85 that, as described above, processes concatenated OSI TP services for a given HPTPX service request as a single, atomic event. An input/output control block 96 and a session block 98 control the input and output of data to and from the modified OSI TP protocol machine 85 via an output thread 102 and one or more input threads 104. The session block 98 performs protocol transformations for the session layer of the OSI protocol stack. A TSU request queue collects outgoing requests for processing by the output thread 102, which sends requests out to the network. An output queue 106 stores flow controlled data requests when the network (not shown) is congested. An implementation of lower layer protocols 108 handles the low level communications between nodes.
[032] ' The modified OSI TP protocol machine 85 of the 679 model is based on the standard OSI TP protocol machine defined in the OSI TP Protocol Specification, but has been modified to support the processing of certain combinations of concatenated OSI TP service requests as single, atomic events, while remaining fully compliant with the OSI TP Standard. The modified OSI TP protocol machine 85 comprises a modified MACF protocol machine 86, with its associated CPM, and a modified SACF protocol machine 88. Requests to the SACF protocol machine are queued in a SACF storage queue 90. The modified OSI TP protocol machine further -comprises a PDU concat function 92.
[033] Control of logging and management of the transaction trees is kept under the control of a TM. The modified MACF protocol machine 86 relinquishes control of branch management to the TM and treats each branch as a separate entity with no correlation to any other branch. The modified OSI TP protocol machine 85 controls all associations needed for TP dialogues and channels. The CRM will solicit the modified OSI TP protocol machine 85 for an AAID when needed, and in the case of added multiple branches to the same transaction tree, it will supply the modified OSI TP protocol machine 85 with the necessary AAID. Recovery is also handled branch by branch. The modified MACF protocol machine 86, does not need to know how the branches are associated. A NULL RCH (recovery context handle) is assumed and incoming association requests are denied until recovery is performed. Once recovery is complete, the RCH is said to be "active".
[034] . Fig. 2 is a block diagram illustrating prior art non-multiplexed connections between hosts in an OSI TP environment, including the 679 model. In an OSI TP environment where Host A 201 and another Host B 202 are exchanging data, there are one or more concurrent dialogues 203a-203x (e.g., XATMI service calls) residing on Host A that correspond directly to one or more concurrent dialogues 204a- 204x on Most B. In the prior art, non-multiplexed associations 205a-205x were created between each dialogue 203a-203x on Host A 201 and each dialogue 204a- 204x on Host B 202. This involved significant codepath, generated excess overhead, and made connection management and creation difficult and complex.
[035] Despite the 679 model's significant advances over the prior art, the overhead and complexity associated with OSI TP Protocol Specification continues to detrimentally effect system performance in fully compliant OSI TP protocol machines. Accordingly, there is a need for a DTP system and model where less data is exchanged, fewer discrete components are used, and unnecessary protocol options are eliminated. II. Summary of the Invention
[036] The invention overcomes problems with the prior art in a number of ways. First, the invention provides a novel mapping of the OSI TP PDUs that is less complex, requires less system overhead, and results in simpler connection creation and management. Moreover, the novel PDU mappings are platform and hardware independent. Each mapping groups the OSI PDUs into types that characterize the PDUs' content, thereby minimizing the number of processing cycles expended on each PDU because the processor need not interpret each field of every PDU the processor receives. In one embodiment of the invention, the mappings are customized and optimized for an OSI TP machine utilizing XATMI.
[037] Another aspect of the invention is the use of multiplexed TCP/IP protocol connections to transfer messages between TMs in OSI TP environments. Through the use of multiplexed TCP/IP connections in the OSI TP protocol machine the SACF and OSI lower layers in the prior art may be eliminated, significantly reduced codepath is necessary, less overhead related to data transfer is required, and there are hardware independent connections that are far simpler to create and manage.
[038] In general, the invention eliminates portions of the OSI TP stack design and condenses network transmission to multiplexed TCP/IP connections, condenses the TCP IP protocol stack and moves the functions of the SACF and CCR in the prior art into the MACF and reworks the encode and decode routines into fixed buffers that are consistent with XATMI. Other aspects of the invention, together with additional features and advantages are described below.
III. Brief Description of the Drawings
[039] These and other features, aspects, and advantages of the invention will become better understood in connection with the appended claims and the following description and drawings of various embodiments of the invention where: '
Fig. 1 is a block diagram illustrating the process structure and functional components of a prior art apparatus for performing distributed transaction processing in an OSI TP environment;
Fig. 2 is a block diagram illustrating prior art non-multiplexed connections between hosts in an OSI TP environment; Fig. 3 is a block diagram illustrating multiplexed connections between hosts in an OSI TP 'environment in accordance with an embodiment of the invention;
Fig. 4 is a block diagram illustrating the process structure and functional components of an apparatus for performing distributed transaction processing in an OST TP environment in accordance with an embodiment of the invention;
Fig. 5 is a block diagram illustrating the layers in a modified OSI TP stack in accordance with an embodiment of the invention; and
Fig. 6 is a state table describing multiplexing OSI TP messages over a TCP-IP connection in accordance with an embodiment of the invention.
IV. Detailed Description of the Illustrated Embodiments
[040] Throughout the following detailed description similar reference numbers refer to similar elements in all the Figures. '
[041] Fig. 3 is a block diagram illustrating multiplexed connections between the same pair of hosts in an OSI TP environment in accordanceVvith an embodiment of the invention. As with the prior art, in an OSI TP environment where Host A 201 and another Host B 202 are exchanging data, there are one or more concurrent dialogues 203a-203x (e.g., XATMI service calls) residing on Host A that correspond directly to one or more concurrent dialogues 204a-204x on Host B. In departure from the prior art, rather than utilizing non-multiplexed associations between Host A and Host B, a single multiplexed TCP/IP connection 301 connects Host A 201 to Host B 202. Data being exchanged between the concurrent dialogues 203a-203x on Host A 201 and the concurrent dialogues 204a-204x on Host B 202 is mapped into the single multiplexed TCP/IP connection 301 between Host A 201 and Host B 202.
[042] Fig. 4 is a block diagram illustrating the process structure and functional components of an apparatus 401 for performing distributed transaction processing in an OST TP environment in accordance with an embodiment of the invention. Apparatus 401 comprises code 403 that implements the HPTPX interface,, and a modified OSI TP protocol machine 404 that processes concatenated OSI TP services for a given HPTPX service request as a single, atomic event. An output queue 407 holds all requests 408 from the modified OSI TP protocol machine. Output socket thread 409 takes all requests 408 from queue 407, and distributes them to the one or more remote host buffers (not shown) it controls where it is sent to. the remote host. Data from network 411 is input to the modified OSI TP protocol machine 404 via input socket thread 410.
[043] The modified OSI TP protocol machine 404 of apparatus 401 is based on the standard OSI TP protocol machine defined in the OSI TP Protocol Specification, and/or as modified by the 679 model noted above, but has been further modified to support the processing of messages that are much simpler in form. The format and handling of these simpler messages is described in detail below. The modified OSI TP protocol machine 404 comprises a modified MACF protocol machine 405, with its associated Channel Protocol Machine (CPM), and an encode/decode machine 406. Data as it flows from the MACF/CPM protocol machine 405 to the XATMI engine in 402 remains consistent with XATMI standard X/Open protocol.
[044] The threads utilized in the multiplexed OSI TP over TCP/IP environment of apparatus 401 have the following characteristics. A Timer Thread deals with timed events, such as recovery and cleanup of resources. A Socket Listener Thread listens for incoming connection requests on any of the IP/Port combinations configured in the apparatus 401. In one embodiment the user may configure up to 8 listening addresses, thereby allowing for multi-homing. Socket Worker Threads are designated once a incoming association request is received by apparatus"401, and receive all other data from the other host after the incoming association request. A Socket Input Thread listens on all sockets in apparatus 401 for incoming data, and there is one input thread for each remote host configured by apparatus 401. Each socket input thread controls two basic 'structures in apparatus 401, a Communications Instance Array and a Poll Array, which match socket requests to Multiplexed Communications Instances ("MCIs"). Each socket input thread reads data for all sockets in the poll array, and captures and interprets the message headers in the data read. If the header is either a Keep_Alive, Keep_Alive_Ok, or Security _Ok, described in more detail below, the socket input thread performs all the necessary processing. Otherwise, the header and data (based on the length),are moved to the appropriate Stream Input Queue for the Communications Instance. A Socket Output Thread controls the flow of PDUs from the output queue 407 to the write buffer, and streams data from the write buffer onto the network 411. The Asynchronous Request Processor (ARP) Thread handles asynchronous requests depending on the particular implementation.
[045] Two novel data structures are utilized in the multiplexed TCP/IP connection aspects of the apparatus 401 embodiment of the invention. The first, mentioned above, is the MCI. There is one MCI per remote host connection. The MCI represents the state of the connection and all information needed to establish communications, send, and receive data to and from the particular remote host. In one embodiment of the invention, there are two buffers associated with each MCI. One of the buffers is where the socket threads stream the data to be read from the socket and the other buffer is for data to be written to the socket. State of the multiplexed TCP/IP connection also is maintained in the MCI. In one embodiment of the invention the recognized states comprise idle (i.e., no connection exists), connecting (i.e., connection establishment in progress), connected (connection is established), and reconnecting (i.e., connection was broken and is waiting to be reestablished). There may also be sub-states associated with the connection to control , security and keep the connection alive. For example, security sub-states could ' include: rio_secϋrily, wsecure_ack, wsecurejrc, and secure. Keep alive sub-states could include: kalive-pending, and kalive-ok.
[046] Fig. 6 illustrates one implementation of a state table 601 for use with the apparatus 401 embodiment of the invention. Events addressed in state table 601 include: Mconnect-req (request for multiplexed connection); Mdata-req (request to send data over multiplexed connection); Accept-connect (incoming connection request received); Assoc- sp (response to an outgoing association was received); and Connection-close (physical connection was closed or aborted). Actions addressed in state table 601 include: SEND-ASSOC-REQ (processes an outgoing association request after first establishing a TCP/IP connection and then encoding and sending ait Associate_Req to the peer host); HELD-Q (queues messages to a held queue until they can be sent to the peer host); SEND-DATA (sends messages to the peer host over the TCP/IP connection); SEND-ASSOC-RSP (accepts incoming Associate_Req message and encodes and sends Associate_Rsp message to the peer host over the multiplexed TCP/IP connection); SEND-ABORT-REQ (rejects an incoming Associate_Req message and encodes and sends an Abort_Req message); CLOSE- SOCKET (closes socket with incoming connection and causes a peer host to see a Connection-close event); FLUSH-Q (writes all messages stored in held queue to a peer host over the TCP/IP connection); DISCARD-Q (frees all messages stored in held queue); RECOVER-MACF (alerts MACF to a Connection-close event and processes provider abort actions); MRECONNECT (uses Timer thread to sleep for a . period of time and then raises a Mconnect-req event); and UPDATE-LSN (generates a new random integer for the variable LSN). Decisions addressed in the Fig. 6 state table include Validation True ("VT"), which indicates that all received fields in a message have been successfully validated. Variables addressed in, the Fig. 6 state table include: Local Serial Number ("LSN") (a randomly generated unsigned long integer stored in an MCI); and Remote Serial Number ("RSN") (a randomly generated unsigned lon integer from the remote system found in an incoming Associate Req message).
[047] Each MCI may have a serial number comprised of a random number assigned to it when an Associate Request is sent. The serial number inay serve several purposes, such as resolving association establishment collisions. Each MCI also may maintain various statistics, such as size of transfer and how many PDUs are being sent. The statistics may be used for a number of purposes, one example being adjustments in the streaming of data.
[048] Each MCI also may have remote host information, such as the OSI TP application entity title and IP address information needed to make the particular TCP/IP connection. ' The MCI may also contain a pointer to such information. Finally, each MCI also may include protocol version information and security ■ information, such as HASH values for use in security exchanges.
[049] The other novel data structure utilized in the multiplexed TCP/IP connection aspects of apparatus 401 is the Multiplexed Branch ("MB") data structure. While containing information from the prior art XBRANCH_TEMPL TE data structure, in one embodiment of the invention each MB data structure includes the following additional information: a pointer to its associated MCI for queuing output requests and posting network aborts from its MCI; decoded fields which serve as a place to put any flags or other information discovered while decoding a PDU; and a serial number comprised of the branch and gen-id of the remote host corresponding message so that when a message arrives at apparatus 401 the socket input thread can find the appropriate branch record in apparatus 401.
[050] Data movement, connection behavior, and the like in the apparatus 401 embodiment of the, invention can generally be described as follows. There is one thread that controls sending and receiving of messages per remote host. One connection is established and maintained between the apparatus 401 and the remote host session by this worker tluead. Once a connection to a remote host is established, it remains available until it is abnormally terminated due to a network or host failure.
[051] One listening thread is activated upon startup of apparatus 401 and - listens for incoming connection requests. As noted above, in one embodiment of ' apparatus 401 there may be up to 8 IP addresses with ports specified for the listening thread to wait for incoming messages from remote hosts. Once a message is received, apparatus 401 starts a worker thread to analyze the incoming message, send the response, and handle all future incoming communication with this peer. This worker thread exists for the duration of the socket. There is a collision scenario that exists where an output and input connection establishment is attempted. In this case apparatus 401 maintains an internal serial number for ςach connection attempt so results can be compared and one side or the other will "win" the connection establishment. Once connection 301 is established, data may flow from either side. If connection 301 is established from the apparatus 401 side, the output thread determines that a connection establishment is needed and starts a worker tluead to create connection 301 and handle all future incoming communication with the peer.
[052] There is one output thread that handles the transmission of all output messages. The output thread works from output queue 407 where messages coming from protocol machine 404 are placed. Data is not copied in this case, but referenced from the queue. Additional headers are needed by OSI TP so that the peer will recognize the data format. These additional headers are generated by MACF 405 and sent in a separate array to output queue 407 along with the user data and the internal representation of what resource has sent the message and what remote host this message is destined for. When output thread 409 wakes up, it takes all messages accumulated on queue 407 from all CRM 402 application threads and begins to gather the output data to be placed on the multiplexed OSI TP over TCP/IP connection 301. The messages are separated by remote host and sent as a gathered output. The CRM 402 application thread is held until the data is actually sent. This enables apparatus 401 to send data directly from the CRM 402 generated buffer without copying the data.
[053] ' Once connection 301 is established, there is a dedicated worker thread to handle incoming messages for this connection. When a message is received, the contents are evaluated based on the message type as described in detail below. XATMI messages are passed up through protocol machine 404 for state processing before the actual message is passed up to CRM 402. The array used to receive the message is simply indexed into at various points depending on which software piece of apparatus 401 needs to reference the array. Some inbound messages are not destined for CRM 402 and result in an immediate outbound response generated by the input worker thread (instead of being placed on the output queue for the output thread to process).
[054] When a network failure or socket close is detected, apparatus 401 begins its failure processing for all resources using connection 301 to communicate with remote hosts or the particular remote host associated with the closed socket. All active calls are aborted and depending on their current state may enter into transaction recovery. In transaction recovery, apparatus 401 tries to reestablish communication with the remote host or hosts and assess the current state of the transaction. The connection layer handles actually re-establishing communications while all messages destined for the remote host or hosts are held by apparatus 401. Once the communications are re-established, all query requests are sent so the transaction can be resumed. In one embodiment of apparatus 401, connection layer 301 attempts to reestablish communications using the graduated time algorithm shown in Table 2 below:
Table 2 For this amount
Of time... Retry this often
6 min 20 seconds
1 hr 1 minute lO hr 10 minutes
1 day 20 minutes .
1 week 1 hour
1 month 2 hours
[055] A socket close results in all held data being flushed and aborts being sent to all active transactions. CRM 402 only sees aborts for transactions in the active phase. Once a transaction has been prepared, recovery attempts continue indefinitely until they are resolved.
[056] Another aspect of the invention noted above is the format of the OSI
TP messages exchanged in an OSI TP distributed transaction processing environment. In accordance with the invention the OSI TP messages are simplified and shortened. Rather than employing the standard ASN.l encoding of the prior art, a much simpler form of encoding is utilized in the invention. Simple messages are defined for each data exchange, and each message has. fixed parameters. The transport, session, and presentation layers in the prior art are eliminated and data is streamed onto the network directly. Each message is complete, and contains a message type and message length followed, by the rest of the message, unlike the prior art where, each variable subcomponent consisted of a designated type, data, length and value. In this case all subcomponents are identified and placed into fix length fields. Thus, each MACF machine in a OSI TP implementation communicates directly with peers or remote hosts, and the standard seven-layer OSI model is reduced by eliminating presentation, session and the OSI transport protocol layers to the layers as shown in Fig. 5. ' • -
[057] As shown in Fig. 5, the modified OSI TP stack 501 iii one embodiment of the invention comprises an XATMI layer 504a, OSI TP layer 505a, and Socket layer 506a, each of which resides on Host Platform A 502. The same modified stack may reside on other peers or remote hosts such as Host Platform B 503 in Fig. 5. In this simplified model 501 socket layers 506 communicate with each' other by establishing a socket connection 507 between the local (e.g., Flost Platform A 502) and remote hosts (e.g., Host Platform B 503), sending an ASSOCIATE-REQ with the Application Entity Title ("AET") to identify the OSI TP layer, confirming the foregoing, and exchanging security information if enabled. When a client issues either a TPCALL or TPCONNECT, the XATMI layers are connected. Through this modified stack, all data and transaction primitives are exchanged.
[058] ' In accordance with the invention, all messages are simply streams of bytes without regard for word alignment, and each message field is represented by a fixed number of bytes. Iii a preferred embodiment of the invention the following logical field types are used to encode OSI TP messages: unsigned byte (one 8-bit byte); array of unsigned byte; unsigned short integer (two 8-bit bytes); and unsigned long integer (four 8-bit bytes). In the unsigned short integer field type the first byte is the high order byte and the second byte is the low-order byte. In the unsigned long integer field type the first byte is the highest order byte; the second byte is the next highest order byte, and so on.
[059] The messages in accordance with the preferred embodiment of the invention have the following general format: Header [OSI TP Data [XATMI Encoding [user data]]], where the information contained with any set of brackets is optional. All messages contain a five-byte Header comprised of an unsigned byte that indicates message type and an unsigned long integer that indicates the remaining message length. The format of the OSI TP data varies depending on the particular message, as described in more detail below. The format of the XATMI encoding in accordance with a preferred embodiment of the invention comprises an unsigned long integer that indicates the length of XATMI data in the message and an array of unsigned bytes that is the XATMI data;
[060] The meaning of the message and the format of the remaining portion of the message varies depending on the Message Type, which have been defined to start with the number 16 to avoid any possibility of overlap with the old Request for Comment ("RFC") 1006 protocol which sends a 3 as the first byte of a message. Table 3 below lists the Message Types in accordance with a preferred embodiment of the invention. In the Table 3 descriptions the terms "recipient" and "local" are from the point of view of the message encoder. When the message is decoded, the meanings of these fields become reversed. For example, the "recipient AET" on an associate request is encoded as the AET for the remote system. When the message is decoded, this same field in the message now represents the AET for the local system. In a preferred embodiment of the invention the Header portion of a message contains a Message Type followed by a data length.
Table 3
Figure imgf000022_0001
Figure imgf000023_0002
[061 ] The format of the OSI TP Data portion of the foregoing Associate_Req message type in accordance with an embodiment of the invention is shown below in Table 4. There is no XATMI Encoding or user data portion for this message type.
Table 4
Figure imgf000023_0003
[062] Encryption bits also may be encoded as enumerated types so that key lengths greater than 255 bits can be represented in a single byte. In the alternative, special case values above 128 can be used to represent key sizes larger than 255 bits.
[063] The format of the OSI TP Data portion of the foregoing Associate_Rsp message type in accordance with an embodiment of the invention is shown below in Table 5. There is no XATMI Encoding or user data portion for this message type.
Table 5
Figure imgf000023_0001
[064] The format of the OSI TP Data portion of the foregoing Security_Rsp message type in accordance with an embodiment of the invention is 20 Unsigned Bytes representing the Recipient HASH values. The format of the OSI TP data portion of the foregoing Abort message type in accordance with an embodiment of the invention is an Unsigned Byte representing the reason for the abort. There is no XATMI Encoding or user data portion for either the Security_Rsp or the Aborf Req message types. Exemplary Abort reason codes include: (1) invalid protocol version; (2) multiplexing negotiation error; (3) configuration error; (4) security error; (5) encryption negotiation error; (6) recovery not complete error; (7) RDOM is offline; (8) invalid platform; and (9) other error.
[065] In addition to the foregoing message headers and formats, there are a number of novel PDU groupings that follow the header and length portions of the OSI TP messages in accordance with the invention. The PDUs associated with the establishment of dialogues in accordance with a preferred embodiment of the invention are illustrated below in Table 6. These messages have a message type of New_Dialogue(22). A TP-ID, comprising a multiplexed branch index and branch generation id placed into 32 bits, is sent to represent the branch for a new dialogue and a multiplexed branch_table is established to house resources for all concurrent branch activity, thereby enabling the response from a remote host to be linked back to the originating branch.
Table 6
Figure imgf000024_0001
[066] The format of the OSI TP Data portion of non-transactional messages
(OSI TP PDUs 1-3 in Table 6 above) in accordance with an embodiment of the invention is set forth in Table 7 below. The XATMI Encoding with optional user data follows the OSI TP Data portion of the messages.
Table 7
Figure imgf000025_0001
[067] The format of the OSI TP Data portion of transactional messages (OSI
TP PDUs 4-6 in Table 6 above) in accordance with an embodiment of the invention is set forth in Table 8 below. The XATMI Encoding with optional user data follows the OSI TP Data portion of the messages.
Table 8
Figure imgf000025_0002
[068] Other novel PDU groupings that follow the header and length portions of the OSI TP messages in accordance with an embodiment of the invention are listed in Table 9 below. Unlike the PDUs listed in Table 6 above, the PDUs listed in Table 9 below are not associated with the establishment of dialogues. These messages have a message type of Data(23).
Table 9
Figure imgf000025_0003
Figure imgf000026_0001
Figure imgf000027_0001
[069] The multiplexed protocol in one embodiment of the invention uses the following values for Heuristic Type: no_heuristic = 0; heuristic_mix = 1; and heurislic iazard =2.
[070] The format of the OSI TP Data portion of begin dialogue response with data messages or begin dialogue response with an abort messages (OSI TP PDUs 7-9, 12-14, 21-22, and 35-36 in Table 9 above) in accordance with an embodiment of the invention is set forth in Table 10 below. The XATMI Encoding with optional user data follows the OSI TP Data portion of the messages. In the case of PDU 36, the XATMI Encoding may be zero length.
Table 10
Figure imgf000027_0002
[071 ] The format of the OSI TP Data portion of an abort without XATMI data (OSI TP PDUs 33 and 34 in Table 9 above) in accordance with an embodiment of the invention is set forth in Table 11 below. There is no XATMI Encoding or user data that follows the OSI TP Data portion of the messages.
Table 11
Figure imgf000027_0003
[072] The format of the OSI TP Data portion of a begin dialogue with a dialogue result (OSI TP PDUs 10-11, 19, 23, and 32 in Table 9 above) in accordance with an embodiment of the invention is set forth in Table 12 below. There is no XATMI Encoding or user data that follows the OSI TP Data portion of the messages. Table 12
Figure imgf000028_0001
[073] The format of the OSI TP Data portion of a user data request (OSI TP
PDUs 15-18 in Table 9 above) in accordance with an embodiment of the invention is set forth in Table 13 below. The XATMI Encoding with optional user data follows the OSI TP Data portion of the messages. ,
Table 13
Figure imgf000028_0002
[074] The format of the OSI TP Data portion of a two-phased commit message with a recipient (OSI TP PDUs 20, 24-29 and 37 in Table 9 above) in accordance with an embodiment of the invention is set forth in Table 14 below. There is no XATMI Encoding or user data that follows the OSI TP Data portion of the messages.
Table 14
Figure imgf000028_0003
[075] The format of the OSI TP Data portion of a recover message (OSI TP
PDU 30 in Table 9 above) in accordance with ah embodiment of the invention is set forth in Table 15 below. There is no XATMI Encoding or user data that follows the OSI TP Data portion of the messages.
Table 15
Figure imgf000028_0004
Figure imgf000029_0001
[076] The format of the OSI TP Data portion of a recover response message
(OSI.TP PDU 31 in Table 9 above) in accordance with an embodiment of the invention is set forth in Table 16 below. There is no XATMI Encoding or user data, that follows the OS! TP Data portion of the messages.
Table 16
Figure imgf000029_0002
[077] The format of the OSI TP Data portion of a heuristic commit or rollback message (OSI TP PDUs 38-39 in Table 9 above) in accordance with an embodiment of the invention is set forth in Table 17 below. There is no XATMI Encoding or user data that follows the OSI TP Data portion of the messages.
Table 17
Figure imgf000029_0003
[078] The format of the OSI TP Data portion of a heuristic recover message
(OSI TP PDU 40 in Table 9 above) in accordance with an embodiment of the invention is set forth in Table 18 below. There is no XATMI Encoding or user data that follows the OSI TP Data portion of the messages.
Table 18
Figure imgf000030_0001
[079] The format of the OSI TP Data portion of a rollback abort with heuristic message (OSI TP PDUs 41-42 in Table 9 above) in accordance with an embodiment of the invention is set forth in Table 19 below. The XATMI Encoding with optional user data follows the OSI TP Data portion of the messages, but the XATMI Encoding may be zero length.
Table 19
Figure imgf000030_0002
[080] While the invention has been described in connection with the embodiments depicted in the various figures, it is to be understood that other embodiments may be used or modifications and additions may be made to the described embodiments without deviating from the spirit of the invention. Therefore, the invention should not be limited to any single embodiment whether depicted in the figures or not. Rather, the invention should be construed to have the breadth and scope accorded by the claims appended below.

Claims

V. ClaimsWe claim:
1. In an environment for performing distributed transaction processing via data contained in messages exchanged between heterogeneous computer systems, a message format wherein each message exchanged comprises a plurality of fields, and the fields comprise at least a message type field, a message length field, and a fixed set of fields dictated by the message type.
2. The message format of claim 1 wherein each message exchanged has a fixed number of parameters.
3. The message format of claim 1 wherein each message field has a fixed number of bytes.
4. The message format of claim 1 wherein each message comprises a stream of bytes without regard to word alignment within the message.
5. The message format of claim 1 wherein the message fields comprise a plurality of logical field types including an unsigned byte, an array of unsigned bytes, an unsigned short integer, and an unsigned long integer.
6. The message format of claim 1 wherein each message exchanged has the general format of a Header followed by OSI TP Data, XATMI Encoding following the OSI TP Data, and user data following the XATMI Encoding, the message type and data length fields being comprised of the Header, and the data field being
comprised of the OSI TP Data, XATMI Encoding, and user data.
7. The message format of claim 6 wherein the Header comprises an unsigned byte for the message type field and an unsigned long integer for the data length field.
8. The message format of claim 6 wherein the XATMI Encoding comprises an unsigned long integer indicating length of XATMI data in the message and an array of unsigned bytes comprising the XATMI data.
9. The message format of claim 1 wherein there are at least nine message type . fields. ■
10. The message format of claim 1 wherein the message type fields comprise Keep_Alive, Keep_Alive_Ok, Associatejleq, AssociateJRsp, Security Jlsp, Security )k, New_Dialogue, Data, and Abort leq.
11. In an environment for performing distributed transaction processing via exchange of messages containing data in the form of OSI TP PDUs, a plurality of PDU types comprising groups of the OSI TP PDUs, each of the PDU types characterizing the data contained in each of the OSI TP PDU groups.
12. The PDU types of claim 11 wherein each type has a numeric value.
13. The PDU types of claim 12 wherein each numeric value is unique.
14. The PDU types of claim 11 wherein an XATMI API is utilized as an AP-CRM interface in the distributed transaction processing environment.
15. The PDU types of claim 14 wherein there are at least forty-one PDU types.
16. The PDU types of claim 14 wherein there are at least six PDU types associated with the establishment of OSI TP dialogues.
17. The PDU types of claim 16 wherein the at least six PDU types comprise pJpcall_notran_ri, p tpcall_noreply_ri, pJpconnect_notran_sendonlyji, p tpcalljran ϊ, p tpconnectJran_sendonly_ri, and pjpcall_prepare_ri.
18. The PDU types of claim 14 comprising p_bdrcJpreturn_notran, p_bdrcJpsend_rcvonly, pJxlrcJpsend_sendonly, pjdjrc, p_bdc_rc, pJxlc_rcjpsend_sendonly_ri, p_bdc_rcJpsend_rcvonly_ri, p bdc rc tpsend_ready_ri, p_tpsend_rcvonly, pJpreturn_notran, p preturn_ready, pJxlrc_abort_ri, and p dri_channel.
19. An apparatus for, participating in distributed transaction processing via exchange of messages between peer processing machines, comprising a first peer processing machine running executable code capable of establishing a multiplexed TCP/IP connection with a second peer processing machine and exchanging messages with the second peer processing machine over the multiplexed TCP/IP connection.
20. The apparatus of claim 19 wherein a plurality of concurrent OSI TP dialogues reside on the first peer processing machine, and each of the concurrent OSI TP dialogues are mapped by the first peer processing machine into the multiplexed TCP/IP connection.
21. The apparatus of claim 19 wherein the first peer processing machine utilizes a multiplexed communications instance with the multiplexed TCP/IP connection.
22. The apparatus of claim 21 wherein the multiplexed communications instance includes slate information about the multiplexed TCP/IP connection.
23. The apparatus of claim 21 wherein the multiplexed communications instance includes information for establishing communications with, sending data to, and receiving data from the second peer processing machine.
24. The apparatus of claim 19 wherein the first peer processing machine utilizes a multiplexed branch data structure with the multiplexed TCP/IP connection.
25. The apparatus of claim 24 wherein the multiplexed branch data stmcture includes a pointer to another data structure for queuing output requests and posting network aborts generated by the first peer processing machine, decoded fields for placing flags or other information discovered by the first processing machine while decoding a message; and a unique identification number comprised of a branch and generation id for the second peer processing machine.
26. The apparatus of claim 19 wherein a plurality of threads are utilized by the first peer processing machine to establish and manage the multiplexed TCP/IP connection.
27. The apparatus of claim 26 wherein the plurality of threads comprise a timer tluead, socket listener thread, socket worker thread, socket input thread, and socket output thread.
28. The apparatus of claim 27 wherein the socket input thread controls a communications instance array and a poll array in the first peer processing machine.
29. The apparatus of claim 27 wherein the socket output tluead controls data output by a protocol machine in the first peer processing machine and destined for the output socket thread.
PCT/US2003/041682 2002-12-26 2003-12-22 Message transfer using multiplexed connections in an osi-tp environment WO2004062234A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
EP03800379A EP1584172A1 (en) 2002-12-26 2003-12-22 Message transfer using multiplexed connections in an osi-tp environment

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/329,723 US20050193056A1 (en) 2002-12-26 2002-12-26 Message transfer using multiplexed connections in an open system interconnection transaction processing environment
US10/329,723 2002-12-26

Publications (1)

Publication Number Publication Date
WO2004062234A1 true WO2004062234A1 (en) 2004-07-22

Family

ID=32710810

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2003/041682 WO2004062234A1 (en) 2002-12-26 2003-12-22 Message transfer using multiplexed connections in an osi-tp environment

Country Status (3)

Country Link
US (1) US20050193056A1 (en)
EP (1) EP1584172A1 (en)
WO (1) WO2004062234A1 (en)

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7058817B1 (en) 1999-07-02 2006-06-06 The Chase Manhattan Bank System and method for single sign on process for websites with multiple applications and services
US8571975B1 (en) 1999-11-24 2013-10-29 Jpmorgan Chase Bank, N.A. System and method for sending money via E-mail over the internet
US10185936B2 (en) 2000-06-22 2019-01-22 Jpmorgan Chase Bank, N.A. Method and system for processing internet payments
US8335855B2 (en) 2001-09-19 2012-12-18 Jpmorgan Chase Bank, N.A. System and method for portal infrastructure tracking
US8849716B1 (en) 2001-04-20 2014-09-30 Jpmorgan Chase Bank, N.A. System and method for preventing identity theft or misuse by restricting access
WO2002099598A2 (en) 2001-06-07 2002-12-12 First Usa Bank, N.A. System and method for rapid updating of credit information
US7266839B2 (en) 2001-07-12 2007-09-04 J P Morgan Chase Bank System and method for providing discriminated content to network users
CA2466071C (en) 2001-11-01 2016-04-12 Bank One, Delaware, N.A. System and method for establishing or modifying an account with user selectable terms
US7987501B2 (en) 2001-12-04 2011-07-26 Jpmorgan Chase Bank, N.A. System and method for single session sign-on
US20180165441A1 (en) 2002-03-25 2018-06-14 Glenn Cobourn Everhart Systems and methods for multifactor authentication
US7058660B2 (en) * 2002-10-02 2006-06-06 Bank One Corporation System and method for network-based project management
US8301493B2 (en) 2002-11-05 2012-10-30 Jpmorgan Chase Bank, N.A. System and method for providing incentives to consumers to share information
EP1872555A4 (en) * 2005-04-18 2008-07-02 Research In Motion Ltd Container-level transaction management system and method therefor
US7877350B2 (en) 2005-06-27 2011-01-25 Ab Initio Technology Llc Managing metadata for graph-based computations
US8583926B1 (en) 2005-09-19 2013-11-12 Jpmorgan Chase Bank, N.A. System and method for anti-phishing authentication
US20070129980A1 (en) * 2005-12-02 2007-06-07 Barros Alistair P Transactional atomicity in service interactions of business processes
US8793490B1 (en) 2006-07-14 2014-07-29 Jpmorgan Chase Bank, N.A. Systems and methods for multifactor authentication
CA2657233C (en) 2006-08-10 2016-06-21 Ab Initio Software Llc Distributing services in graph-based computations
US8473735B1 (en) 2007-05-17 2013-06-25 Jpmorgan Chase Systems and methods for managing digital certificates
CN107423046B (en) * 2007-07-26 2021-08-06 起元技术有限责任公司 Method, system, and computer-readable medium for processing graph-based computations
US8321682B1 (en) 2008-01-24 2012-11-27 Jpmorgan Chase Bank, N.A. System and method for generating and managing administrator passwords
WO2009106930A1 (en) * 2008-02-27 2009-09-03 Nokia Corporation Transport independent architecture
WO2009106932A1 (en) * 2008-02-27 2009-09-03 Nokia Corporation Buffer control for multi-transport architectures
KR20150038758A (en) 2009-02-13 2015-04-08 아브 이니티오 테크놀로지 엘엘시 Managing task execution
US9608826B2 (en) 2009-06-29 2017-03-28 Jpmorgan Chase Bank, N.A. System and method for partner key management
US8266101B1 (en) * 2009-07-16 2012-09-11 Binpeng Shuai Share nothing database cluster and real time synchronization by signaling
US8667329B2 (en) * 2009-09-25 2014-03-04 Ab Initio Technology Llc Processing transactions in graph-based applications
CA2801573C (en) 2010-06-15 2018-08-14 Ab Initio Technology Llc Dynamically loading graph-based computations
US9164806B2 (en) 2011-01-28 2015-10-20 Oracle International Corporation Processing pattern framework for dispatching and executing tasks in a distributed computing grid
US9081839B2 (en) 2011-01-28 2015-07-14 Oracle International Corporation Push replication for use with a distributed data grid
US9201685B2 (en) 2011-01-28 2015-12-01 Oracle International Corporation Transactional cache versioning and storage in a distributed data grid
US9063852B2 (en) * 2011-01-28 2015-06-23 Oracle International Corporation System and method for use with a data grid cluster to support death detection
US9063787B2 (en) 2011-01-28 2015-06-23 Oracle International Corporation System and method for using cluster level quorum to prevent split brain scenario in a data grid cluster
US9507682B2 (en) 2012-11-16 2016-11-29 Ab Initio Technology Llc Dynamic graph performance monitoring
US10108521B2 (en) 2012-11-16 2018-10-23 Ab Initio Technology Llc Dynamic component performance monitoring
US20140156234A1 (en) * 2012-12-03 2014-06-05 Rockwell Automation Technologies, Inc., Input output cloning for industrial automation
US9274926B2 (en) 2013-01-03 2016-03-01 Ab Initio Technology Llc Configurable testing of computer programs
US9419957B1 (en) 2013-03-15 2016-08-16 Jpmorgan Chase Bank, N.A. Confidence-based authentication
WO2015085152A1 (en) 2013-12-05 2015-06-11 Ab Initio Technology Llc Managing interfaces for dataflow graphs composed of sub-graphs
US10148726B1 (en) 2014-01-24 2018-12-04 Jpmorgan Chase Bank, N.A. Initiating operating system commands based on browser cookies
US10664495B2 (en) 2014-09-25 2020-05-26 Oracle International Corporation System and method for supporting data grid snapshot and federation
US10585599B2 (en) 2015-07-01 2020-03-10 Oracle International Corporation System and method for distributed persistent store archival and retrieval in a distributed computing environment
US10798146B2 (en) 2015-07-01 2020-10-06 Oracle International Corporation System and method for universal timeout in a distributed computing environment
US10860378B2 (en) 2015-07-01 2020-12-08 Oracle International Corporation System and method for association aware executor service in a distributed computing environment
US11163498B2 (en) 2015-07-01 2021-11-02 Oracle International Corporation System and method for rare copy-on-write in a distributed computing environment
US10657134B2 (en) 2015-08-05 2020-05-19 Ab Initio Technology Llc Selecting queries for execution on a stream of real-time data
EP3394739B1 (en) 2015-12-21 2020-11-11 AB Initio Technology LLC Sub-graph interface generation
CN115334169B (en) * 2022-04-28 2023-06-06 深圳证券通信有限公司 Communication protocol coding method capable of saving network bandwidth

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6141679A (en) * 1998-02-06 2000-10-31 Unisys Corporation High performance distributed transaction processing methods and apparatus
US6333929B1 (en) * 1997-08-29 2001-12-25 Intel Corporation Packet format for a distributed system
US20020052931A1 (en) * 2000-10-10 2002-05-02 Christopher Peiffer HTTP multiplexor/demultiplexor

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0951767A2 (en) * 1997-01-03 1999-10-27 Fortress Technologies, Inc. Improved network security device
US6317438B1 (en) * 1998-04-14 2001-11-13 Harold Herman Trebes, Jr. System and method for providing peer-oriented control of telecommunications services
US6546425B1 (en) * 1998-10-09 2003-04-08 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US7206805B1 (en) * 1999-09-09 2007-04-17 Oracle International Corporation Asynchronous transcription object management system
US7003571B1 (en) * 2000-01-31 2006-02-21 Telecommunication Systems Corporation Of Maryland System and method for re-directing requests from browsers for communication over non-IP based networks
KR20020081389A (en) * 2000-03-03 2002-10-26 퀄컴 인코포레이티드 Method and apparatus for participating in group communication services in an existing communication system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6333929B1 (en) * 1997-08-29 2001-12-25 Intel Corporation Packet format for a distributed system
US6141679A (en) * 1998-02-06 2000-10-31 Unisys Corporation High performance distributed transaction processing methods and apparatus
US20020052931A1 (en) * 2000-10-10 2002-05-02 Christopher Peiffer HTTP multiplexor/demultiplexor

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
CHEN G: "Distributed transaction processing standards and their applications", COMPUTER STANDARDS AND INTERFACES, ELSEVIER SEQUOIA. LAUSANNE, CH, vol. 17, no. 4, 15 September 1995 (1995-09-15), pages 363 - 373, XP004062583, ISSN: 0920-5489 *

Also Published As

Publication number Publication date
US20050193056A1 (en) 2005-09-01
EP1584172A1 (en) 2005-10-12

Similar Documents

Publication Publication Date Title
US20050193056A1 (en) Message transfer using multiplexed connections in an open system interconnection transaction processing environment
US6115744A (en) Client object API and gateway to enable OLTP via the internet
US5706429A (en) Transaction processing system and method
US7554992B2 (en) Mobile device communications system and method
US6345291B2 (en) Multiplexing of clients and applications among multiple servers
US7024479B2 (en) Filtering calls in system area networks
US5317568A (en) Method and apparatus for managing and facilitating communications in a distributed hetergeneous network
JP2698336B2 (en) Node used in local area network for digital data processing system
EP1311946B1 (en) System and method for concentration and load-balancing of requests
US8478906B2 (en) Wireless device address book updates
CN108390950A (en) A kind of information push method, device and equipment
US20040003085A1 (en) Active application socket management
JP2009508260A (en) Port sharing among multiple processes
CN107528891B (en) Websocket-based automatic clustering method and system
US7913262B2 (en) Method and system for improved computer network efficiency in use of remote procedure call applications
US6141679A (en) High performance distributed transaction processing methods and apparatus
CN112134915A (en) Application layer protocol decoupling universal network processing system
US6839732B1 (en) Efficient use of domain socket pairs in communication for tightly coupled transactions
JP3608905B2 (en) Data communication system and data communication method
US8060568B2 (en) Real time messaging framework hub to intercept and retransmit messages for a messaging facility
US6490623B1 (en) System, method and computer readable code for encapsulating system, language and device independent communications socket functionality in a lightweight uniform communications object model
CN111901689A (en) Streaming media data transmission method and device, terminal equipment and storage medium
CN109254853A (en) Data sharing method, data-sharing systems and computer readable storage medium
Rodriguez An X. PC/TCP protocol translator
JPH0830523A (en) Method for communicating on-line message

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): DE GB

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT RO SE SI SK TR

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
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: 2003800379

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 2003800379

Country of ref document: EP