[BACK]Return to design-outline.tex CVS log [TXT][DIR] Up to [local] / OpenXM / doc / ascm2001

Diff for /OpenXM/doc/ascm2001/design-outline.tex between version 1.1 and 1.5

version 1.1, 2001/03/07 02:42:10 version 1.5, 2001/03/08 04:24:09
Line 1 
Line 1 
 % $OpenXM$  % $OpenXM: OpenXM/doc/ascm2001/design-outline.tex,v 1.4 2001/03/08 00:49:29 takayama Exp $
   
 \section{Design Outline}  \section{Design Outline and OpenXM Request for Comments (OpenXM-RFC)}
   
 As Schefstr\"om clarified in \cite{schefstrom},  As Schefstr\"om clarified in \cite{schefstrom},
 integration of tools and softwares has three dimensions:  integration of tools and software has three dimensions:
 data, control, and user interface.  data, control, and user interface.
   
 Data integration concerns with the exchange of data between different  Data integration concerns with the exchange of data between different
 softwares or same softwares.  software or same software.
 OpenMath \cite{OpenMath} and MP (Multi Protocol) \cite{GKW} are,  OpenMath \cite{OpenMath} and MP (Multi Protocol) \cite{GKW} are,
 for example, general purpose mathematical data protocols.  for example, general purpose mathematical data protocols.
 They provide standard ways to express mathematical objects.  They provide standard ways to express mathematical objects.
Line 36  OpenXM (Open message eXchange protocol for Mathematics
Line 36  OpenXM (Open message eXchange protocol for Mathematics
 is a project aiming to integrate data, control and user interfaces  is a project aiming to integrate data, control and user interfaces
 with design goals motivated by the followings.  with design goals motivated by the followings.
 \begin{enumerate}  \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  \item Noro has been involved in the development of
 a computer algebra system Risa/Asir \cite{asir}.  a computer algebra system Risa/Asir \cite{asir}.
 An interface for interactive distributed computations was introduced  An interface for interactive distributed computations was introduced
Line 67  We thought that it is necessary to provide a data and 
Line 70  We thought that it is necessary to provide a data and 
 for Risa/Asir to work as a server of factorization and primary ideal  for Risa/Asir to work as a server of factorization and primary ideal
 decomposition.  decomposition.
 \item We have been profited from increasing number  \item We have been profited from increasing number
 of mathematical softwares.  of mathematical software.
 These are usually ``expert'' systems in one area of mathematics  These are usually ``expert'' systems in one area of mathematics
 such as ideals, groups, numbers, polytopes, and so on.  such as ideals, groups, numbers, polytopes, and so on.
 They have their own interfaces and data formats,  They have their own interfaces and data formats,
 which are fine for intensive users of these systems.  which are fine for intensive users of these systems.
 However, a unified system will be more convenient  However, a unified system will be more convenient
 for users who want to explore a new area of mathematics with these  for users who want to explore a new area of mathematics with these
 softwares or users who need these systems only occasionally.  software or users who need these systems only occasionally.
   
 \item  We believe that an open integrated system is a future of mathematical  \item  We believe that an open integrated system is a future of mathematical
 softwares.  software.
 However, it might be just a dream without realizability.  However, it might be just a dream without realizability.
 We want to build a prototype of such an open system by using  We want to build a prototype of such an open system by using
 existing standards, technologies and several mathematical softwares.  existing standards, technologies and several mathematical software.
 We want to see how far we can go with this approach.  We want to see how far we can go with this approach.
 \end{enumerate}  \end{enumerate}
   
 Motivated with these, we started the OpenXM project with the following  Motivated with these, we started the OpenXM project with the following
 fundamental architecture.  fundamental architecture, which is currently described in
   OpenXM-RFC 100  proposed standard %% ``draft standard'' and ``standard''
   ``Design and Implementation of OpenXM client-server model and common
   mathematical object format'' \cite{ox-rfc-100}.
 \begin{enumerate}  \begin{enumerate}
 \item Communication is an exchange of messages. The messages are classified into  \item Communication is an exchange of messages. The messages are classified into
 three types:  three types:
Line 95  Among the three types,
Line 101  Among the three types,
 {\it OX data messages} wrap mathematical data.  {\it OX data messages} wrap mathematical data.
 We use standards of mathematical data formats such as OpenMath and MP  We use standards of mathematical data formats such as OpenMath and MP
 as well as our own data format {\it CMO}  as well as our own data format {\it CMO}
 ({\it Common Mathematical Object format}).  ({\it Common Mathematical Object format}),
   which can be expressed in terms of XML.
 \item Servers, which provide services to other processes, are stack machines.  \item Servers, which provide services to other processes, are stack machines.
 The stack machine is called the  The stack machine is called the
 {\it OX stack machine}.  {\it OX stack machine}.
 Existing mathematical softwares 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  Minimal requirements for a target software wrapped with the OX stack machine
 are as follows:  are as follows:
 \begin{enumerate}  \begin{enumerate}
 \item The target must have a serialized interface such as a character based  \item The target must have a serialized interface such as a character based
 interface.  interface.
 \item An output of the target must be understandable for computer programs;  \item An output of the target must be understandable for computer programs;
 it should follow a grammar that can be parsed with other softwares.  it should follow a grammar that can be parsed with other software.
 \end{enumerate}  \end{enumerate}
 \item Any server may have a hybrid interface;  \item Any server may have a hybrid interface;
 it may accept and execute not only stack machine commands,  it may accept and execute not only stack machine commands,
 but also its original command sequences.  but also its original command sequences.
 For example,  For example,
 if we send the following string to the {\tt ox\_asir} server  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); "      + \\  \verb+        " fctr(x^100-y^100); "      + \\
 and call the stack machine command  \\  and call the stack machine command  \\
 \verb+        SM_executeStringByLocalParser    + \\  \verb+        SM_executeStringByLocalParser    + \\
Line 122  then the server executes the asir command \\
Line 129  then the server executes the asir command \\
 (factorize $x^{100}-y^{100}$ over ${\bf Q}$)  (factorize $x^{100}-y^{100}$ over ${\bf Q}$)
 and pushes the result onto the stack.  and pushes the result onto the stack.
 \end{enumerate}  \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  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}  \begin{verbatim}
   P = sm1_start();    P = sm1_start();
   ox_push_cmo(P,1); ox_push_cmo(P,1);    ox_push_cmo(P,1); ox_push_cmo(P,1);
   ox_execute_string(P,"add"); ox_pop_cmo(P);    ox_execute_string(P,"add"); ox_pop_cmo(P);
 \end{verbatim}  \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 for TCP/IP,  Our project of integrating mathematical software
 which uses the client-server model.  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.
   
 The OpenXM on MPI \cite{MPI} is currently running on Risa/Asir  The OpenXM on MPI \cite{MPI} is currently running on Risa/Asir
 as we will see in Section \ref{section:homog}.  as we will see in Section \ref{section:homog}.
 In this paper, we discuss only on systems for TCP/IP  We are now preparing the OpenXM-RFC 102 ``Mathematical communication
 to concentrate on the core part of our design.  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.
   
   
   
   
   
   

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

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