=================================================================== RCS file: /home/cvs/OpenXM/doc/OpenXM-specs/start-session.tex,v retrieving revision 1.2 retrieving revision 1.8 diff -u -p -r1.2 -r1.8 --- OpenXM/doc/OpenXM-specs/start-session.tex 2000/01/23 00:41:08 1.2 +++ OpenXM/doc/OpenXM-specs/start-session.tex 2005/03/04 03:49:47 1.8 @@ -1,4 +1,4 @@ -%% $OpenXM: OpenXM/doc/OpenXM-specs/start-session.tex,v 1.1.1.1 2000/01/20 08:52:46 noro Exp $ +%% $OpenXM: OpenXM/doc/OpenXM-specs/start-session.tex,v 1.7 2002/01/20 09:26:22 takayama Exp $ //&jp \section{TCP/IP でのセッションのスタート} //&eg \section{How to start a session on TCP/IP} @@ -46,7 +46,7 @@ with a descriptor can be done by {\tt fdopen()}. */ /*&eg Though there need several socket operations to establish a -connetion over TCP/IP, servers do not have any functionality for +connection over TCP/IP, servers do not have any functionality for connection establishment. An application called {\it launcher} is provided to start servers and to establish connections as follows. @@ -69,8 +69,8 @@ acts as a control server and controls the server proce itself. */ -//&jp \subsection{byte order の決定} -//&eg \subsection{Negotiation of the byte order} +//&jp \subsection{byte order の決定} \label{subsection:byteorder} +//&eg \subsection{Negotiation of the byte order} \label{subsection:byteorder} /*&jp コントロールプロセス, 計算プロセス ともに, 起動直後に @@ -96,9 +96,16 @@ Network byte order しか実装していないシステムでは, {\tt 0} をおくればよい. ただし効率が問題となる通信において, network byte order への変換は おおきなボトルネックとなることがあることを了解しておくべきである. + +64 bit machine double および 128 bit machine double (浮動小数点数) +のやりとりに際しても, +上と同様な方法をもちいるものとする. +すなわち {\tt double64 *} を {\tt int32 *} にキャストしてから, +中身を {\tt int32} と同様の処理方法で送受信する. +例については {\tt CMO\_64BIT\_MACHINE\_DOUBLE} を見よ. */ /*&eg -A client and a server exchanges one byte data soon after +A client and a server exchange one byte data soon after the communication has started as follows. \begin{itemize} @@ -113,14 +120,21 @@ The one byte data is {\tt 0}, {\tt 1} or {\tt 0xFF}. {\tt 0} means that one wants to use the network byte order to send 16 or 32bit quantities. {\tt 1} means that one wants to use the little endian order. -{\tt 0xFF} means that one wants to use the little endian order. -On each side, if the preference coicides with each other then +{\tt 0xFF} means that one wants to use the big endian order. +On each side, if the preference coincides with each other then the byte order is used. Otherwise the network byte order is used. If a system implements only the network byte order, then it is sufficient to send always {\tt 0}. However unnecessary byte order conversion may add large overhead and it is often a bottle-neck on fast networks. + +In order to send and receive 64 bit machine double (floating point number) +and 128 bit machine double, +we use the same byte order. +In other words, we cast {\tt double64 *} to {\tt int32 *} and +send the array of 4 bytes by the same method with sending {\tt int32}. +As to examples, see the section on {\tt CMO\_64BIT\_MACHINE\_DOUBLE}. */ \begin{verbatim} @@ -164,29 +178,30 @@ One time パスワードを安全に配送し, リモートマシンの {\ */ /*&eg \noindent -Remark: {\tt ox}, included in {\tt OpenXM/src/kxx}, +{\tt ox}, included in {\tt OpenXM/src/kxx}, is a launcher to invoke an engine. After invoking an engine, it acts as a control server. By default {\tt ox} requires a one time password. To skip it, use {\tt -insecure} option. A one time password is a null-terminated byte sequence and -a client informs the both a control server and an engine of +a client informs both a control server and an engine of byte sequences as one time passwords. {\tt ox} is created from {\tt oxmain.c} and {\tt -kan96xx/plugin/oxmisc.c}. In {\tt ox} {\tt oxTellMyByteOrder()} +kan96xx/plugin/oxmisc.c}. In {\tt ox} \\ +{\tt oxTellMyByteOrder()} executes the exchange of the byte order information. In a client it is done in {\tt oxSetByteOrder()}. One time passwords should be sent via secure communication channels. -Note that in the current implementation of {\rm ox}, one time passwords +Note that in the current implementation of {\tt ox}, one time passwords are visible to all users logging in machines on which the server -and the client run, assuming that there is no evil person in the users. +and the client run, assuming that there is no evil person among the users. One may use {\tt ssh} with {\tt -f } option when one wants to send a one time password securely to a remote machine. The following example shows invocation of an {\tt ox\_sm1} -server and the comminucation establishment on {\rm sm1}. -In this example {\tt ox} on the host {\tt ox} is invoked from +server and the communication establishment on {\rm sm1}. +In this example {\tt ox} on the host {\tt dc1} is invoked from {\tt sm1} on the host {\tt yama}. */ {\footnotesize @@ -217,3 +232,14 @@ Byte order for engine process is network byte order. \end{verbatim} } +//&jp \subsection{OX サーバの利用例} +//&eg \subsection{Example of using OX servers} + +/*&jp +ox サーバを TCP/IP で $C$ より利用する例は +{\tt OpenXM/doc/oxlib/test1-tcp.c} にある. +*/ +/*&eg +An sample C source code to use ox servers by TCP/IP can be found +in {\tt OpenXM/doc/oxlib/test1-tcp.c}. +*/