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

Annotation of OpenXM/doc/OpenXM-specs/project.tex, Revision 1.1.1.1

1.1       noro        1: %% $OpenXM$
                      2: //&jp \section{現在検討中の機能}
                      3: //&eg \section{Projects in work in progress} (This part has not been translated.)
                      4:
                      5: /*&jp
                      6: \subsection{ OX DATA with Length の構造 }
                      7:
                      8: Digital signature 付の {\tt OX\_DATA} は
                      9: ヘッダ {\tt OX\_DATA\_WITH\_LENGTH }で, はじまり, CMO がきて,
                     10: それから, 終りのマークおよびデジタル署名がくる.
                     11: この形のデータを {\it secured OX DATA} と呼ぶ.
                     12: \begin{verbatim}
                     13: #define OX_SECURED_DATA               521
                     14: \end{verbatim}
                     15:
                     16: \noindent
                     17: \begin{tabular}{|c|c|c|c|c|}  \hline
                     18: {\tt int32 OX\_DATA\_WITH\_LENGTH} & {\tt int32} {\rm serial}
                     19: & {\tt int32} {\rm size}
                     20: & {\sl CMObject} {\rm o} & {\it tail} \\
                     21: \hline
                     22: \end{tabular}
                     23:
                     24: {\tt size} フィールドに 値 -1 が入っている場合この情報を無視する.
                     25:
                     26: {\it tail } は次のように定義する.
                     27: \\ \noindent
                     28: \begin{tabular}{|c|c|c|}  \hline
                     29: {\tt int32 CMO\_START\_SIGNATURE} & {\tt int32} {\rm size}
                     30: & {\it signature} \\
                     31: \hline
                     32: \end{tabular}
                     33:
                     34: ここで, {\tt size} はバイト列 {\it signature} 部の長さ.
                     35: {\it signature} は, Hash 関数を用いた, {\it CMO data}
                     36: にたいする, デジタル署名をいれ, 不正な serialized object
                     37: を検出する.
                     38: Tail の {\tt size} フィールドが 0 の場合, デジタル署名部はない.
                     39:
                     40: クライアント, サーバの実装には次の3つの選択がある.
                     41: \begin{enumerate}
                     42: \item {\tt OX\_DATA} のみを用いて CMObject を送る (mathcap 付).
                     43: \item {\tt OX\_SECURED\_DATA} のみを用いて CMObject を送る.
                     44: \item {\tt OX\_DATA} および
                     45: {\tt OX\_SECURED\_DATA} を混在して
                     46: 使用できるようにする.
                     47: \item {\tt OX\_DATA} のみを用いてかつ mathcap も用いない(一番高速).
                     48: \end{enumerate}
                     49: 1 の短所は, mathcap の実装が不十分で,
                     50: 理解できない CMObject をうけとると,
                     51: 以後の CMObject は理解できなくなる.
                     52: 1 の長所は, 長さフィールドの計算を
                     53: おこなわないため, データを送り出す側に負担がかからないことである.
                     54: 2 の長所は, mathcap の実装が不十分で,
                     55: 理解できない CMObject をうけとっても,
                     56: 長さフィールドを用いて, 通信回線のダウンを
                     57: 防ぐことができる.
                     58: 2 の短所は, 長さフィールドの計算を
                     59: おこなうため, データを送り出す側に負担がかかることである.
                     60:
                     61: 現在のすべてのサンプルサーバは, 1, 4 のみを実装している.
                     62:
                     63: mathcap の交換はセッションの開始時点で必須という訳ではない
                     64: ことに注意されたい.
                     65: たとえば,
                     66: モード 4 で通信して,
                     67: それから,
                     68: mathcap を交換して,
                     69: モード 1 へ移行することも可能なように実装すべきである.
                     70:
                     71:
                     72: \subsection{サーバスタックマシンはローカルな拡張機能をもってよい}
                     73:
                     74: \begin{verbatim}
                     75: #define  CMO_PRIVATE   0x7fff0000
                     76: \end{verbatim}
                     77:
                     78: {\tt CMO\_PRIVATE} = {\tt OX\_PRIVATE} = {\tt SM\_PRIVATE}
                     79: よりはじまる, 0x10000 個の ID は, private 領域として予約されている.
                     80: 各サーバの開発者間で表現方法につきまだ合意がないような, CMObject,
                     81: OX Message, SMobject を表現するために使用する.
                     82:
                     83: \subsection{MathLink や open math などの通信規約の実装}
                     84:
                     85: Open asir, open sm1 と Mathematica の用いている MathLink や
                     86: Open Math (\cite{openmath})
                     87: プロトコルを変換するための
                     88: ライブラリやサーバを用意すれば, {\tt asir} や {\tt kan/sm1} の
                     89: 内部構造を理解することなしに, これらに準拠したシステムと通信できる.
                     90:
                     91: \subsection{共通スタックマシン言語}
                     92:
                     93: CMO に付随した, たとえば, Integer 32 に対する,
                     94: add, sub, mul, などの基本的な計算は {\tt SM\_executeFunction}
                     95: で全てのシステムで実行できるように検討している.
                     96: スタックマシンの制御構造についても検討している.
                     97:
                     98:
                     99: */
                    100:

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