version 1.4, 2000/02/02 02:03:41 |
version 1.5, 2020/03/14 01:21:56 |
|
|
%% $OpenXM: OpenXM/doc/OpenXM-specs/project.tex,v 1.3 2000/01/24 12:32:49 noro Exp $ |
%% $OpenXM: OpenXM/doc/OpenXM-specs/project.tex,v 1.4 2000/02/02 02:03:41 takayama Exp $ |
//&jp \section{現在検討中の機能} |
//&jp \section{憜罎荐筝罘} |
//&eg \section{Projects in work in progress} |
//&eg \section{Projects in work in progress} |
|
|
//&jp \subsection{ OX DATA with Length の構造 } |
//&jp \subsection{ OX DATA with Length 罕 } |
//&eg \subsection{ OX DATA with Length } |
//&eg \subsection{ OX DATA with Length } |
|
|
/*&jp |
/*&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 |
/*&eg |
{\tt OX\_DATA\_WITH\_LENGTH } is the OX tag for |
{\tt OX\_DATA\_WITH\_LENGTH } is the OX tag for |
Line 30 This type of OX data message is called {\it secured OX |
|
Line 30 This type of OX data message is called {\it secured OX |
|
\hline |
\hline |
\end{tabular} |
\end{tabular} |
|
|
//&jp {\tt size} フィールドに 値 -1 が入っている場合この情報を無視する. |
//&jp {\tt size} c若 -1 ャc翫宴∴. |
//&eg If {\tt size} is equal to -1, then it is ignored. |
//&eg If {\tt size} is equal to -1, then it is ignored. |
|
|
//&jp {\it tail } は次のように定義する. |
//&jp {\it tail } 罨<絎臂. |
//&eg {\it tail } is defined as follows. |
//&eg {\it tail } is defined as follows. |
\\ \noindent |
\\ \noindent |
\begin{tabular}{|c|c|c|} \hline |
\begin{tabular}{|c|c|c|} \hline |
Line 43 This type of OX data message is called {\it secured OX |
|
Line 43 This type of OX data message is called {\it secured OX |
|
\end{tabular} |
\end{tabular} |
|
|
/*&jp |
/*&jp |
ここで, {\tt size} はバイト列 {\it signature} 部の長さ. |
, {\tt size} ゃ {\it signature} 激. |
{\it signature} は, Hash 関数を用いた, {\it CMO data} |
{\it signature} , Hash ∽違, {\it CMO data} |
にたいする, デジタル署名をいれ, 不正な serialized object |
, 吾帥臀峨, 筝罩c serialized object |
を検出する. |
罎冴. |
Tail の {\tt size} フィールドが 0 の場合, デジタル署名部はない. |
Tail {\tt size} c若 0 翫, 吾帥臀峨. |
*/ |
*/ |
/*&eg |
/*&eg |
Here {\tt size} is the length of {\it signature}. |
Here {\tt size} is the length of {\it signature}. |
Line 56 a Hash function and is used to detect invalid serializ |
|
Line 56 a Hash function and is used to detect invalid serializ |
|
If {\tt size} of Tail is equal to 0, then it has no digital signature. |
If {\tt size} of Tail is equal to 0, then it has no digital signature. |
*/ |
*/ |
|
|
//&jp クライアント, サーバの実装には次の4つの選択がある. |
//&jp ゃ≪潟, 泣若絎茖罨<4ゃ御. |
//&eg Currently there are four modes of communicating data. |
//&eg Currently there are four modes of communicating data. |
/*&jp |
/*&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 . |
\item {\tt OX\_DATA} および |
\item {\tt OX\_DATA} |
{\tt OX\_SECURED\_DATA} を混在して |
{\tt OX\_SECURED\_DATA} 羞桁 |
使用できるようにする. |
篏睡с. |
\item {\tt OX\_DATA} のみを用いてかつ mathcap も用いない(一番高速). |
\item {\tt OX\_DATA} 帥 mathcap (筝蕭). |
\end{enumerate} |
\end{enumerate} |
*/ |
*/ |
/*&eg |
/*&eg |
Line 77 If {\tt size} of Tail is equal to 0, then it has no di |
|
Line 77 If {\tt size} of Tail is equal to 0, then it has no di |
|
\end{enumerate} |
\end{enumerate} |
*/ |
*/ |
/*&jp |
/*&jp |
1 の短所は, mathcap の実装が不十分で,理解できない CMObject をうけとる |
1 , mathcap 絎茖筝,茹cс CMObject |
と,以後の CMObject は理解できなくなる. 1 の長所は, 長さフィールドの計 |
,篁ュ CMObject 茹cс. 1 傑, 激c若荐 |
算をおこなわないため, データを送り出す側に負担がかからないことである. |
膊, 若帥冴眼莢с. |
2 の長所は, mathcap の実装が不十分で,理解できない CMObject をうけとっ |
2 傑, mathcap 絎茖筝,茹cс CMObject |
ても,長さフィールドを用いて, 通信回線のダウンを防ぐことができる. 2 の |
,激c若, 篆≦膩潟蚊с. 2 |
短所は, 長さフィールドの計算をおこなうため, データを送り出す側に負担が |
, 激c若荐膊, 若帥冴眼莢 |
かかることである. |
с. |
*/ |
*/ |
/*&eg |
/*&eg |
Suppose that the mathcap handling is incomplete and an application |
Suppose that the mathcap handling is incomplete and an application |
Line 95 from the size information. However, in mode 2, additio |
|
Line 95 from the size information. However, in mode 2, additio |
|
required on the sender to compute the total length of CMObjects. |
required on the sender to compute the total length of CMObjects. |
*/ |
*/ |
|
|
//&jp 現在のすべてのサンプルサーバは, 1, 4 のみを実装している. |
//&jp 憜鴻泣潟泣若, 1, 4 帥絎茖. |
//&teg Currently all sample servers implements only 1 and 4. |
//&teg Currently all sample servers implements only 1 and 4. |
|
|
/*&jp |
/*&jp |
mathcap の交換はセッションの開始時点で必須という訳ではないことに注意さ |
mathcap 篋ゆ祉激с潟紮鴻у荐潟с羈 |
れたい. たとえば,モード 4 で通信して,それから, mathcap を交換して,モー |
. ,≪若 4 ч篆<,, mathcap 篋ゆ,≪ |
ド 1 へ移行することも可能なように実装すべきである. |
1 悟Щ茵純絎茖鴻с. |
*/ |
*/ |
/*&eg |
/*&eg |
Note that the exchange of mathcaps are not necessary at the start |
Note that the exchange of mathcaps are not necessary at the start |
Line 109 of a session. Any server should be implemented so that |
|
Line 109 of a session. Any server should be implemented so that |
|
change the communication mode dynamically, say, from 4 to 1. |
change the communication mode dynamically, say, from 4 to 1. |
*/ |
*/ |
|
|
//&jp \subsection{サーバスタックマシンはローカルな拡張機能をもってよい} |
//&jp \subsection{泣若鴻帥激潟若≦宍罘純c} |
//&eg \subsection{Local extension on server stack machines} |
//&eg \subsection{Local extension on server stack machines} |
|
|
\begin{verbatim} |
\begin{verbatim} |
Line 118 change the communication mode dynamically, say, from 4 |
|
Line 118 change the communication mode dynamically, say, from 4 |
|
|
|
/*&jp |
/*&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 |
/*&eg |
0x10000 ID's beginning from |
0x10000 ID's beginning from |
Line 131 which are not authorized yet. |
|
Line 131 which are not authorized yet. |
|
*/ |
*/ |
|
|
|
|
//&jp \subsection{MathLink や OpenMath などの通信規約の実装} |
//&jp \subsection{MathLink OpenMath 篆∴靘絎茖} |
//&eg \subsection{Implementation of other protocols such as MathLink and OpenMath} |
//&eg \subsection{Implementation of other protocols such as MathLink and OpenMath} |
|
|
/*&jp |
/*&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} |
内部構造を理解することなしに, これらに準拠したシステムと通信できる. |
罕茹c, 羣激鴻篆<с. |
*/ |
*/ |
/*&eg |
/*&eg |
If we provide a library or a server for protocol conversion |
If we provide a library or a server for protocol conversion |
Line 148 a client conforming to such protocols can communicate |
|
Line 148 a client conforming to such protocols can communicate |
|
Asir or kan/sm1 without knowing their internal structures. |
Asir or kan/sm1 without knowing their internal structures. |
*/ |
*/ |
|
|
//&jp \subsection{共通スタックマシン言語} |
//&jp \subsection{演鴻帥激活茯} |
//&eg \subsection{Common operations on stack machines} |
//&eg \subsection{Common operations on stack machines} |
|
|
/*&jp |
/*&jp |
CMO に付随した, たとえば, Integer 32 に対する, |
CMO 篁, , Integer 32 絲障, |
add, sub, mul, などの基本的な計算は {\tt SM\_executeFunction} |
add, sub, mul, 堺荐膊 {\tt SM\_executeFunction} |
で全てのシステムで実行できるように検討している. |
у激鴻у茵с罎荐. |
スタックマシンの制御構造についても検討している. |
鴻帥激潟九勝罕ゃ罎荐. |
*/ |
*/ |
/*&eg |
/*&eg |
Fundamental operations such as {\tt add}, {\tt sub}, {\tt mul} should be |
Fundamental operations such as {\tt add}, {\tt sub}, {\tt mul} should be |