[BACK]Return to OX-RFC-101.tex CVS log [TXT][DIR] Up to [local] / OpenXM / doc / OpenXM-specs

Annotation of OpenXM/doc/OpenXM-specs/OX-RFC-101.tex, Revision 1.2

1.2     ! ohara       1: %#!make OX-RFC-101-ja.dvi
        !             2: % $OpenXM: OpenXM/doc/OpenXM-specs/OX-RFC-101.tex,v 1.1 2000/11/30 02:41:36 takayama Exp $
1.1       takayama    3: \documentclass{article}
                      4: %%\IfFileExists{epsfig.sty}{\usepackage{epsfig}}{}
                      5: \usepackage{html}
                      6: /*&jp
1.2     ! ohara       7: \title{{\bf エンジン起動プロトコル, OpenXM RFC 101 Draft}}
        !             8: \author{ 小原功任\thanks{{金沢大学理学部計算科学教室, \htmladdnormallink{http://omega.s.kanazawa-u.ac.jp/ohara/}{http://omega.s.kanazawa-u.ac.jp/ohara/}}}}
        !             9: \date{ 2000年, 11月30日}
1.1       takayama   10: */
                     11: /*&eg
                     12: \title{{\bf Protocol to Start Engines, OpenXM RFC 101 Draft}}
                     13: \author{ Katsuyoshi Ohara\thanks{Department of Computational Science, Kanazawa University, \htmladdnormallink{http://www.s.kanazawa.ac.jp}{http://www.s.kanazawa.ac.jp}}}
                     14: \date{ November 30, 2000 }
                     15: */
                     16:
                     17: \begin{document}
                     18: \maketitle
                     19: \section{Session Management}
                     20:
                     21: /*&jp
1.2     ! ohara      22: この文書では ``OpenXM RFC 100, OpenXM の設計と実装''\
1.1       takayama   23: \htmladdnormallink{http://www.math.kobe-u.ac.jp/OpenXM/OpenXM-RFC.html}{http://www.math.kobe-u.ac.jp/OpenXM/OpenXM-RFC.html}
1.2     ! ohara      24: で定義されたコントロールサーバを置き換える新しいコントロールサーバの
        !            25: 仕様を説明する.
1.1       takayama   26: */
                     27:
                     28: /*&eg
                     29: This document describes a new control server specification
                     30: which is intended to be
                     31: a replacement of the control server defined in
                     32: ``Design and implementation of OpenXM, OpenXM RFC 100''\
                     33: \htmladdnormallink{http://www.math.kobe-u.ac.jp/OpenXM/OpenXM-RFC.html}{http://www.math.kobe-u.ac.jp/OpenXM/OpenXM-RFC.html}.
                     34: */
                     35:
                     36: \subsection{New OpenXM control servers}
                     37:
                     38: /*&jp
                     39:
1.2     ! ohara      40: 我々は新しいコントロールサーバを提案する。そのサンプル実装として oxc が
        !            41: 提供される。新しいコントロールサーバは以下の点で従来のものと異なる。
1.1       takayama   42: \begin{enumerate}
1.2     ! ohara      43: \item コントロールサーバは OpenXM スタックマシンであり、
        !            44: CMObject/Primitive をサポートする。
        !            45: \item 計算サーバの起動はスタックマシンコマンドを介して行う。
        !            46: \item 一つのコントロールサーバから複数の計算サーバを起動できる。
1.1       takayama   47: \end{enumerate}
                     48:
1.2     ! ohara      49: oxc の導入により、いままでのサーバの起動手順はコントロールサーバの起動と
        !            50: 計算サーバの起動に分離される。コントロールサーバを起動するには次の手順を
        !            51: 取る。まず、適当なオプション(後述)をつけて、コントロールサーバを起動する
        !            52: と、コントロールサーバはソケットを作成し、connect する。クライアントは、
        !            53: listen, accept する。接続後、バイトオーダを決定する。バイトオーダの決定
        !            54: 方法については、従来のものと変更はない。
        !            55: OpenXM/doc/OpenXM-specs/control.tex を見よ。その後、コントロールサーバは
        !            56: 待機状態にはいる。コントロールサーバは OpenXM スタックマシンであるから、
        !            57: mathcap の交換などの手続きに入ってもよい。
        !            58:
        !            59: \subsection{OpenXM control stack machine}
        !            60:
        !            61: コントロールサーバは、次のスタックマシンコマンドを実装しなければならない。
        !            62: それぞれのスタックコマンドの意味は、{\bf 以前のコントロールサーバとは異なる。}
        !            63:
        !            64: \begin{enumerate}
        !            65: \item
        !            66: \begin{verbatim}
        !            67: SM_control_spawn_server
1.1       takayama   68: \end{verbatim}
1.2     ! ohara      69: 新たに計算サーバを起動する。サーバの起動に成功すると、その ID を返す。
        !            70:
        !            71: Request:
        !            72: \begin{tabular}{|c|c|}  \hline
        !            73: {\tt int32 OX\_COMMAND} & {\tt int32 SM\_control\_spawn\_server}  \\
        !            74: \hline
        !            75: \end{tabular}
        !            76:
        !            77: Stack before the request:
        !            78: \begin{tabular}{|c|c|}  \hline
        !            79: {\sl Integer32} Port & {\sl String} ServerName \\
        !            80: \hline
        !            81: \end{tabular}
        !            82:
        !            83: Stack after the request:
        !            84: \begin{tabular}{|c|c|}  \hline
        !            85: {\sl Integer32} ServerID \\
        !            86: \hline
        !            87: \end{tabular}
        !            88:
        !            89: Output: none.
        !            90:
        !            91: \item
        !            92: \begin{verbatim}
        !            93: SM_control_terminate_server
        !            94: \end{verbatim}
        !            95: 指定された計算サーバに SIGKILL を送る。
        !            96:
        !            97: Request:
        !            98: \begin{tabular}{|c|c|}  \hline
        !            99: {\tt int32 OX\_COMMAND} & {\tt int32 SM\_control\_terminate\_server}  \\
        !           100: \hline
        !           101: \end{tabular}
        !           102:
        !           103: Stack before the request:
        !           104: \begin{tabular}{|c|c|}  \hline
        !           105: {\sl Integer32} ServerID \\
        !           106: \hline
        !           107: \end{tabular}
        !           108:
        !           109: Output: none.
        !           110:
        !           111: \item
        !           112: \begin{verbatim}
        !           113: SM_control_kill
        !           114: \end{verbatim}
        !           115: 全ての計算サーバに SIGKILL を送る。
        !           116:
        !           117: Request:
        !           118: \begin{tabular}{|c|c|}  \hline
        !           119: {\tt int32 OX\_COMMAND} & {\tt int32 SM\_control\_kill}  \\
        !           120: \hline
        !           121: \end{tabular}
        !           122:
        !           123: Output: none.
        !           124:
        !           125: \item
        !           126: \begin{verbatim}
        !           127: SM_control_reset_connection_server
        !           128: \end{verbatim}
        !           129: 指定された計算サーバに SIGUSR1 を送る。
        !           130:
        !           131: Request:
        !           132: \begin{tabular}{|c|c|}  \hline
        !           133: {\tt int32 OX\_COMMAND} & {\tt int32 SM\_control\_reset\_connection\_server}  \\
        !           134: \hline
        !           135: \end{tabular}
        !           136:
        !           137: Stack before the request:
        !           138: \begin{tabular}{|c|c|}  \hline
        !           139: {\sl Integer32} ServerID \\
        !           140: \hline
        !           141: \end{tabular}
        !           142:
        !           143: Output: none.
        !           144:
        !           145: \item
        !           146: \begin{verbatim}
        !           147: SM_control_reset_connection
        !           148: \end{verbatim}
        !           149: 全ての計算サーバに SIGUSR1 を送る。これは下位互換性のための措置である。
        !           150:
        !           151: Request:
        !           152: \begin{tabular}{|c|c|}  \hline
        !           153: {\tt int32 OX\_COMMAND} & {\tt int32 SM\_control\_reset\_connection}  \\
        !           154: \hline
        !           155: \end{tabular}
        !           156:
        !           157: Output: none.
        !           158:
        !           159: \end{enumerate}
        !           160:
        !           161: \bigskip
        !           162: \bigskip
        !           163:
        !           164: \subsection{A sample implementation}
        !           165:
        !           166: \subsubsection{Command Line Arguments}
        !           167: コントロールサーバの実行形式は getopt(1) に ``c:p:h:x'' で指定するオプショ
        !           168: ンを持つ。すなわち、
        !           169: \begin{verbatim}
        !           170: oxc -c [password] -h [hostname] -p [portnumber] -x
        !           171: \end{verbatim}
        !           172:
        !           173: \subsubsection{Local Functions}
        !           174:
        !           175: コントロールサーバの各実装は、独自にローカル関数をサポートしてもよい。
        !           176: 実際、サンプル実装 oxc はローカル関数をサポートしている。
        !           177:
        !           178: ここでは、oxc のローカル関数 spawn について説明しよう。
        !           179:
        !           180: spawn は計算サーバを起動し、少なくとも 2 個の引数を持つ。すなわち、
        !           181: \begin{verbatim}
        !           182: spawn(計算サーバ名, ポート番号, モード, ...)
        !           183: \end{verbatim}
        !           184: という形式である。「モード」はなくてもよい。ここで、「計算サーバ名」は
        !           185: CMO\_STRING 型のオブジェクト、「ポート番号」、「モード」は CMO\_INT32型
        !           186: のオブジェクトである。ローカル関数の実行は SM\_executeFunction による。
        !           187: すなわち各引数を順にスタックに積み、最後にSM\_executeFunction を実行する。
        !           188: SM\_executeStringByLocalParser は利用できないので注意する。
        !           189:
        !           190: spawn は、計算サーバの起動に成功したら (CMO\_INT32, サーバID) を、失
        !           191: 敗したらエラーオブジェクトをスタックに積む。例えば計算サーバが発見できな
        !           192: かった場合にはエラーオブジェクトを積むことになる。コントロールサーバは
        !           193: access(2) を用いて PATH から計算サーバを探す。もし見つからなければ、fork
        !           194: をせずに、エラーオブジェクトをスタックに積む。
        !           195:
1.1       takayama  196: */
                    197:
                    198: /*&eg
                    199:
                    200: This document has not yet been translated into English from Japanese.
                    201:
                    202: */
                    203:
                    204: \end{document}

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>