An electronic messaging system for communicating between computers and the like with heterogeneous and universal interfacing between distributed applications and processes residing in a wide variety of differing computer platforms and communications transport facilities of various types, having, in combination:
- means for providing between an application/process and a communications facility a set of single-function software modules controlled by a preselected set of verbs that together provide a single application programming interface through which application programs/processes can directly access the electronic messaging by an interface control block;
- message routing means controlled by the application programming interface control block for staging messages and data flowing from and to the sending and receiving computer applications/processes by a router control block for determining message handling and communications transport facilities, and monitoring the message delivery status, said message routing means including
- means for determining whether a particular message is too large to be handled by a particular communications transport facility, and if so, segmenting the particular message into segments sized to be accommodated by the particular communications transport facility,
- means for maintaining a given message and associated data in a queue, and
- means, responsive to a particular verb from one of the receiving computer applications/processes that received the given message, for (a) generating an acknowledge message and communicating the acknowledge message to one of the sending computer applications/processes, and (b) releasing the given message and any queue data, said particular verb thus supporting the ability of one of the sending computer applications/processes to specify that delivery for the given message is to be guaranteed, regardless of whether the communications transport facility that carries the given message supports guaranteed delivery;
- and
- communication agent means, one corresponding and connected to each communications transport facility, controlled by common communication management means connected to the routing means and responsive to its said router control block to control the message flow from each communication agent means to its corresponding communications transport facility independently of and without user concern for the specifics of the various communications facilities and their characteristics.