=================================================================== RCS file: /home/cvs/OpenXM/doc/ascm2001/design-outline.tex,v retrieving revision 1.2 retrieving revision 1.5 diff -u -p -r1.2 -r1.5 --- OpenXM/doc/ascm2001/design-outline.tex 2001/03/07 06:54:40 1.2 +++ OpenXM/doc/ascm2001/design-outline.tex 2001/03/08 04:24:09 1.5 @@ -1,4 +1,4 @@ -% $OpenXM: OpenXM/doc/ascm2001/design-outline.tex,v 1.1 2001/03/07 02:42:10 noro Exp $ +% $OpenXM: OpenXM/doc/ascm2001/design-outline.tex,v 1.4 2001/03/08 00:49:29 takayama Exp $ \section{Design Outline and OpenXM Request for Comments (OpenXM-RFC)} @@ -36,6 +36,9 @@ OpenXM (Open message eXchange protocol for Mathematics is a project aiming to integrate data, control and user interfaces with design goals motivated by the followings. \begin{enumerate} +\item We should test the proposed standards mentioned above on +various mathematical software systems, but the testing has not been +enough. \item Noro has been involved in the development of a computer algebra system Risa/Asir \cite{asir}. An interface for interactive distributed computations was introduced @@ -86,9 +89,9 @@ We want to see how far we can go with this approach. Motivated with these, we started the OpenXM project with the following fundamental architecture, which is currently described in -OpenXM RFC 100 proposed standard %% ``draft standard'' and ``standard'' +OpenXM-RFC 100 proposed standard %% ``draft standard'' and ``standard'' ``Design and Implementation of OpenXM client-server model and common -mathematical object format''. +mathematical object format'' \cite{ox-rfc-100}. \begin{enumerate} \item Communication is an exchange of messages. The messages are classified into three types: @@ -99,11 +102,11 @@ Among the three types, We use standards of mathematical data formats such as OpenMath and MP as well as our own data format {\it CMO} ({\it Common Mathematical Object format}), -which can be described in XML. +which can be expressed in terms of XML. \item Servers, which provide services to other processes, are stack machines. The stack machine is called the {\it OX stack machine}. -Existing mathematical software are wrapped with this stack machine. +Existing mathematical software systems are wrapped with this stack machine. Minimal requirements for a target software wrapped with the OX stack machine are as follows: \begin{enumerate} @@ -117,7 +120,7 @@ it may accept and execute not only stack machine comma but also its original command sequences. For example, if we send the following string to the {\tt ox\_asir} server -(OpenXM server based on Risa/Asir) \\ +(OpenXM server of Risa/Asir) \\ \verb+ " fctr(x^100-y^100); " + \\ and call the stack machine command \\ \verb+ SM_executeStringByLocalParser + \\ @@ -126,32 +129,35 @@ then the server executes the asir command \\ (factorize $x^{100}-y^{100}$ over ${\bf Q}$) and pushes the result onto the stack. \end{enumerate} -OpenXM package is implemented on above fundamental architecture. +OpenXM package implements the OpenXM-RFC 100 \cite{ox-rfc-100} +and 101 \cite{ox-rfc-101} based on +the above fundamental architecture. +In this paper, we discuss mainly on systems implementing +OpenXM-RFC 100 and 101 on TCP/IP. For example, the following is a command sequence to ask $1+1$ from -the Asir client to the {\tt ox\_sm1} server: +the Asir client to the {\tt ox\_sm1} server through TCP/IP: \begin{verbatim} P = sm1_start(); ox_push_cmo(P,1); ox_push_cmo(P,1); ox_execute_string(P,"add"); ox_pop_cmo(P); \end{verbatim} -Here, {\tt ox\_sm1} is an OpenXM server based on Kan/sm1. +Here, {\tt ox\_sm1} is an OpenXM server of Kan/sm1. -The OpenXM package is implemented on the OpenXM RFC 100 for TCP/IP, -which uses the client-server model. -In this paper, we discuss mainly on systems implementing -OpenXM RFC 100 on TCP/IP. +Our project of integrating mathematical software +systems is taking the ``RFC'' approach, which has been +used to develop internet protocols. +We think that ``RFC'' approach is an excellent way and +we hope that other groups, who are working on standard protocols, +take this ``RFC'' approach, too. -Our project is taking the ``RFC'' approach, which has been -used to develop internet protocols, to integrate mathematical software -systems. -We hope that other groups, who are working on standard protocols, -take the ``RFC'' approach. - The OpenXM on MPI \cite{MPI} is currently running on Risa/Asir as we will see in Section \ref{section:homog}. -We are now preparing the OpenXM RFC 102 ``Mathematical communication +We are now preparing the OpenXM-RFC 102 ``Mathematical communication on MPI'' (draft protocol) based on our experiments on MPI. + +In the rest of the paper, we abbreviate +OpenXM-RFC 100 and 101 to OpenXM if no confusion arises.