Annotation of OpenXM/doc/issac2000/ox-messages.tex, Revision 1.2
1.2 ! takayama 1: %%$OpenXM: OpenXM/doc/issac2000/ox-messages.tex,v 1.1 2000/01/02 07:32:12 takayama Exp $
1.1 takayama 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.
1.2 ! takayama 37: For example, \verb+ OX_DATA_ASIR_LOCAL_BINARY + was added a few month ago
! 38: to send internal serialized objects of asir via the OpenXM protocol.
1.1 takayama 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}
1.2 ! takayama 49: The server is a stackmachine.
! 50: That is {\it OX data} message sent by the client
1.1 takayama 51: are pushed to the stack of the server.
1.2 ! takayama 52: If the server gets an {\it OX command} message, then the data are
1.1 takayama 53: popped form the stack and they are used as arguments of a function call.
54: For example, the asir command
1.2 ! takayama 55: \verb+ ox_push_cmo(P,1) + (push integer $1$ to the server P)
1.1 takayama 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
1.2 ! takayama 60: (CMO\_ZZ,1) is a body standing for $1$ expressed
! 61: in the CMO data encoding format.
1.1 takayama 62:
63:
64:
65:
66:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>