7.1 Overview of Conversational Communication

Conversational communication is the Oracle Tuxedo system implementation of a human-like paradigm for exchanging messages between ATMI clients and servers. In this form of communication, a virtual connection is maintained between the client (initiator) and server (subordinate) and each side maintains information about the state of the conversation. The connection remains active until an event occurs to terminate it.

During conversational communication, a half-duplex connection is established between the client and server. A half-duplex connection allows messages to be sent in only one direction at any given time. Control of the connection can be passed back and forth between the initiator and the subordinate. The process that has control can send messages; the process that does not have control can only receive messages.

To understand how conversational communication works in an Oracle Tuxedo ATMI application, consider the following example in the following figure from an online banking application. In this example, a bank customer requests checking account statements for the past two months.

Figure 7-1 Example of Conversational Communication in an Online Banking Application


Example of Conversational Communication in an Online Banking Application Diagram

  1. The customer requests the checking account statements for the past two months.
  2. The Account Records Storage System responds by sending the first month’s checking account statement followed by a More prompt for accessing the remaining month’s statement.
  3. The customer requests the second month’s account statement by selecting the More prompt.

    Note: The Account Records Storage System must maintain state information so it knows which account statement to return when the customer selects the More prompt.

  4. The Account Records Storage System sends the remaining month’s account statement.

As with request/response communication, the Oracle Tuxedo system passes data using typed buffers. The buffer types must be recognized by the application. For more information on buffer types, refer to Overview of Typed Buffers .

Conversational clients and servers have the following characteristics:

  • The logical connection between them remains active until terminated.
  • Any number of messages can be transmitted across a connection between them.
  • Both clients and servers use the tpsend () and tprecv () routines to send and receive data in conversations.

Conversational communication differs from request/response communication in the following ways:

  • A conversational client initiates a request for service using tpconnect() rather than tpcall() or tpacall().
  • A conversational client sends a service request to a conversational server.
  • The configuration file reserves part of the conversational server for addressing conversational services.
  • Conversational servers are prohibited from making calls using tpforward().