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

Diff for /OpenXM/doc/OpenXM-specs/project.tex between version 1.1 and 1.2

version 1.1, 2000/01/20 08:52:46 version 1.2, 2000/01/24 07:36:35
Line 1 
Line 1 
 %% $OpenXM$  %% $OpenXM: OpenXM/doc/OpenXM-specs/project.tex,v 1.1.1.1 2000/01/20 08:52:46 noro Exp $
 //&jp \section{現在検討中の機能}  //&jp \section{現在検討中の機能}
 //&eg \section{Projects in work in progress} (This part has not been translated.)  //&eg \section{Projects in work in progress}
   
 /*&jp  //&jp \subsection{ OX DATA with Length の構造 }
 \subsection{ OX DATA with Length の構造 }  //&eg \subsection{ OX DATA with Length }
   
   /*&jp
 Digital signature 付の {\tt OX\_DATA} は  Digital signature 付の {\tt OX\_DATA} は
 ヘッダ {\tt OX\_DATA\_WITH\_LENGTH }で, はじまり, CMO がきて,  ヘッダ {\tt OX\_DATA\_WITH\_LENGTH }で, はじまり, CMO がきて,
 それから, 終りのマークおよびデジタル署名がくる.  それから, 終りのマークおよびデジタル署名がくる.
 この形のデータを {\it secured OX DATA} と呼ぶ.  この形のデータを {\it secured OX DATA} と呼ぶ.
   */
   /*&eg
   {\tt OX\_DATA\_WITH\_LENGTH } is the OX tag for
   OX data message with a digital signature.
   It is followed by the serial number, CMO, an end mark and a digital signature.
   This type of OX data message is called {\it secured OX DATA}.
   */
   
 \begin{verbatim}  \begin{verbatim}
 #define OX_SECURED_DATA               521  #define OX_SECURED_DATA               521
 \end{verbatim}  \end{verbatim}
Line 21  Digital signature 付の {\tt OX\_DATA} は
Line 30  Digital signature 付の {\tt OX\_DATA} は
 \hline  \hline
 \end{tabular}  \end{tabular}
   
 {\tt size} フィールドに 値 -1 が入っている場合この情報を無視する.  //&jp {\tt size} フィールドに 値 -1 が入っている場合この情報を無視する.
   //&eg If {\tt size} is equal to -1, then it is ignored.
   
 {\it tail } は次のように定義する.  //&jp {\it tail } は次のように定義する.
   //&eg {\it tail } is defined as follows.
 \\ \noindent  \\ \noindent
 \begin{tabular}{|c|c|c|}  \hline  \begin{tabular}{|c|c|c|}  \hline
 {\tt int32 CMO\_START\_SIGNATURE} & {\tt int32} {\rm size}  {\tt int32 CMO\_START\_SIGNATURE} & {\tt int32} {\rm size}
Line 31  Digital signature 付の {\tt OX\_DATA} は
Line 42  Digital signature 付の {\tt OX\_DATA} は
 \hline  \hline
 \end{tabular}  \end{tabular}
   
   /*&jp
 ここで, {\tt size} はバイト列 {\it signature} 部の長さ.  ここで, {\tt size} はバイト列 {\it signature} 部の長さ.
 {\it signature} は, Hash 関数を用いた, {\it CMO data}  {\it signature} は, Hash 関数を用いた, {\it CMO data}
 にたいする, デジタル署名をいれ, 不正な serialized object  にたいする, デジタル署名をいれ, 不正な serialized object
 を検出する.  を検出する.
 Tail の {\tt size} フィールドが 0 の場合, デジタル署名部はない.  Tail の {\tt size} フィールドが 0 の場合, デジタル署名部はない.
   */
   /*&eg
   Here {\tt size} is the length of {\it signature}.
   {\it signature} is a digital signature of {\it CMO data} by
   a Hash function and is used to detect invalid serialized objects.
   If {\tt size} of Tail is equal to 0, then it has no digital signature.
   */
   
 クライアント, サーバの実装には次の3つの選択がある.  //&jp クライアント, サーバの実装には次の4つの選択がある.
   //&eg Currently there are four modes of communicating data.
   /*&jp
 \begin{enumerate}  \begin{enumerate}
 \item {\tt OX\_DATA} のみを用いて CMObject を送る (mathcap 付).  \item {\tt OX\_DATA} のみを用いて CMObject を送る (mathcap 付).
 \item {\tt OX\_SECURED\_DATA} のみを用いて CMObject を送る.  \item {\tt OX\_SECURED\_DATA} のみを用いて CMObject を送る.
Line 46  Tail の {\tt size} フィールドが 0 の場合, デジタル署名
Line 67  Tail の {\tt size} フィールドが 0 の場合, デジタル署名
 使用できるようにする.  使用できるようにする.
 \item {\tt OX\_DATA} のみを用いてかつ mathcap も用いない(一番高速).  \item {\tt OX\_DATA} のみを用いてかつ mathcap も用いない(一番高速).
 \end{enumerate}  \end{enumerate}
 1 の短所は, mathcap の実装が不十分で,  */
 理解できない CMObject をうけとると,  /*&eg
 以後の CMObject は理解できなくなる.  \begin{enumerate}
 1 の長所は, 長さフィールドの計算を  \item Only {\tt OX\_DATA} is used with checking by mathcap.
 おこなわないため, データを送り出す側に負担がかからないことである.  \item Only {\tt OX\_SECURED\_DATA} is used.
 2 の長所は, mathcap の実装が不十分で,  \item Both {\tt OX\_DATA} and {\tt OX\_SECURED\_DATA} can be used.
 理解できない CMObject をうけとっても,  \item Only {\tt OX\_DATA} is used without checking by mathcap.
 長さフィールドを用いて, 通信回線のダウンを  \end{enumerate}
 防ぐことができる.  */
 2 の短所は, 長さフィールドの計算を  /*&jp
 おこなうため, データを送り出す側に負担がかかることである.  1 の短所は, mathcap の実装が不十分で,理解できない CMObject をうけとる
   と,以後の CMObject は理解できなくなる.  1 の長所は, 長さフィールドの計
   算をおこなわないため, データを送り出す側に負担がかからないことである.
   2 の長所は, mathcap の実装が不十分で,理解できない CMObject をうけとっ
   ても,長さフィールドを用いて, 通信回線のダウンを防ぐことができる.  2 の
   短所は, 長さフィールドの計算をおこなうため, データを送り出す側に負担が
   かかることである.
   */
   /*&eg
   Suppose that the mathcap handling is incomplete and an application
   has received unknown CMObject. If the mode 1 is used,
   In mode 1, the application cannot detect the end of the CMObject
   and it will not be able to understand the subsequent messages.
   In mode 2, the application can detect the end of the unknown CMObject
   from the size information. However, in mode 2, additional cost is
   required on the sender to compute the total length of CMObjects.
   */
   
 現在のすべてのサンプルサーバは, 1, 4 のみを実装している.  //&jp 現在のすべてのサンプルサーバは, 1, 4 のみを実装している.
   //&teg Currently all sample servers implements only 1 and 4.
   
 mathcap の交換はセッションの開始時点で必須という訳ではない  /*&jp
 ことに注意されたい.  mathcap の交換はセッションの開始時点で必須という訳ではないことに注意さ
 たとえば,  れたい.  たとえば,モード 4 で通信して,それから, mathcap を交換して,モー
 モード 4 で通信して,  ド 1 へ移行することも可能なように実装すべきである.
 それから,  */
 mathcap を交換して,  /*&eg
 モード 1 へ移行することも可能なように実装すべきである.  Note that the exchange of mathcaps are not necessary at the start
   of a session. Any server should be implemented so that it can
   change the communication mode dynamically, say, from 4 to 1.
   */
   
   //&jp \subsection{サーバスタックマシンはローカルな拡張機能をもってよい}
   //&eg \subsection{Local extension on server stack machines}
   
 \subsection{サーバスタックマシンはローカルな拡張機能をもってよい}  
   
 \begin{verbatim}  \begin{verbatim}
 #define  CMO_PRIVATE   0x7fff0000  #define  CMO_PRIVATE   0x7fff0000
 \end{verbatim}  \end{verbatim}
   
   /*&jp
 {\tt CMO\_PRIVATE} = {\tt OX\_PRIVATE} = {\tt SM\_PRIVATE}  {\tt CMO\_PRIVATE} = {\tt OX\_PRIVATE} = {\tt SM\_PRIVATE}
 よりはじまる, 0x10000 個の ID は, private 領域として予約されている.  よりはじまる, 0x10000 個の ID は, private 領域として予約されている.
 各サーバの開発者間で表現方法につきまだ合意がないような, CMObject,  各サーバの開発者間で表現方法につきまだ合意がないような, CMObject,
 OX Message, SMobject を表現するために使用する.  OX Message, SMobject を表現するために使用する.
   */
   /*&eg
   0x10000 ID's beginning from
   {\tt CMO\_PRIVATE} = {\tt OX\_PRIVATE} = {\tt SM\_PRIVATE}
   is reserved for private use.
   They can be used to represent OX tags, CMObjects, SMobjects
   which are not authorized yet.
   */
   
 \subsection{MathLink や open math などの通信規約の実装}  
   
   //&jp \subsection{MathLink や OpenMath などの通信規約の実装}
   //&eg \subsection{Implementation of other protocols such as MathLink and OpenMath}
   
   /*&jp
 Open asir, open sm1 と Mathematica の用いている MathLink や  Open asir, open sm1 と Mathematica の用いている MathLink や
 Open Math (\cite{openmath})  Open Math (\cite{openmath})
 プロトコルを変換するための  プロトコルを変換するための
 ライブラリやサーバを用意すれば, {\tt asir} や {\tt kan/sm1} の  ライブラリやサーバを用意すれば, {\tt asir} や {\tt kan/sm1} の
 内部構造を理解することなしに, これらに準拠したシステムと通信できる.  内部構造を理解することなしに, これらに準拠したシステムと通信できる.
   */
   /*&eg
   If we provide a library or a server for protocol conversion
   between CMO and ``foreign'' protocols such as MathLink or OpenMath,
   a client conforming to such protocols can communicate with
   Asir or kan/sm1 without knowing their internal structures.
   */
   
 \subsection{共通スタックマシン言語}  //&jp \subsection{共通スタックマシン言語}
   //&eg \subsection{Common operations on stack machines}
   
   /*&jp
 CMO に付随した, たとえば, Integer 32 に対する,  CMO に付随した, たとえば, Integer 32 に対する,
 add, sub, mul, などの基本的な計算は {\tt SM\_executeFunction}  add, sub, mul, などの基本的な計算は {\tt SM\_executeFunction}
 で全てのシステムで実行できるように検討している.  で全てのシステムで実行できるように検討している.
 スタックマシンの制御構造についても検討している.  スタックマシンの制御構造についても検討している.
   */
   /*&eg
   Fundamental operations such as {\tt add}, {\tt sub}, {\tt mul} should be
   executed on any server by {\tt SM\_executeFunction}.
   Control structures on stack machines such as {\tt if} and {\tt for}
   are also considered.
 */  */
   

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

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