Annotation of OpenXM/doc/issac2000/ox-messages.tex, Revision 1.1
1.1 ! takayama 1: %%$OpenXM$
! 2:
! 3: \section{OX messages} (Ohara)
! 4:
! 5: An OX message for TCP/IP is a byte stream consisting of
! 6: a header and a body.
! 7: \begin{center}
! 8: \begin{tabular}{|c|c|}
! 9: \hline
! 10: Header & \hspace{10mm} Body \hspace{10mm} \\
! 11: \hline
! 12: \end{tabular}
! 13: \end{center}
! 14: The header consists of two signed 32 bit integers.
! 15: The first one is an OX tag
! 16: and the second one is a serial number of the OX message.
! 17: Negative numbers are expressed by the two's complement.
! 18: Several byte orders including the network byte order
! 19: are allowed and the byte order is determined as a part of
! 20: the establishment of a connection.
! 21:
! 22: The OX messages are classifed into three types:
! 23: DATA, COMMAND, and others.
! 24: We have the following main tags for the OX messages.
! 25: \begin{verbatim}
! 26: #define OX_COMMAND 513 // COMMAND
! 27: #define OX_DATA 514 // DATA
! 28: #define OX_SYNC_BALL 515 // others
! 29: #define OX_DATA_WITH_LENGTH 521 // DATA
! 30: #define OX_DATA_OPENMATH_XML 523 // DATA
! 31: #define OX_DATA_OPENMATH_BINARY 524 // DATA
! 32: #define OX_DATA_MP 525 // DATA
! 33: \end{verbatim}
! 34:
! 35: New OX tags may be added.
! 36: The new tag should be classified into DATA or COMMAND.
! 37: For example, \verb+ OX_DATA_ASIR_BINARY + was added a few month ago
! 38: to send internal serialized objects of asir via OpenXM protocol.
! 39: This is a tag classifed to DATA.
! 40: See the home page of OpenXM to add a new tag.
! 41:
! 42: In OpenXM, a distributed computation is done as follows:
! 43: \begin{enumerate}
! 44: \item A client requests something to a server.
! 45: \item The server does works according to the request.
! 46: \item The client requests to send data to the server.
! 47: \item The server sends the data to the client and the client gets the data.
! 48: \end{enumerate}
! 49: The server is a stack machine.
! 50: That is OX data message sent by the client
! 51: are pushed to the stack of the server.
! 52: If the server gets a OX command message, then the data are
! 53: popped form the stack and they are used as arguments of a function call.
! 54: For example, the asir command
! 55: \verb+ ox_push_cmo(P,1) +
! 56: sends an OX data message
! 57: (OX\_DATA,(CMO\_ZZ,1)) to the server $P$.
! 58: Here,
! 59: OX\_DATA stands for OX\_DATA header and
! 60: (CMO\_ZZ,1) is a body standing for $1$ expressed in CMO data encoding format.
! 61:
! 62:
! 63:
! 64:
! 65:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>