[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     ! 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>