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

Diff for /OpenXM/doc/ascm2001p/design-outline.tex between version 1.2 and 1.5

version 1.2, 2001/06/20 02:09:45 version 1.5, 2001/06/20 05:42:47
Line 1 
Line 1 
 % $OpenXM: OpenXM/doc/ascm2001p/design-outline.tex,v 1.1 2001/06/19 07:32:58 noro Exp $  % $OpenXM: OpenXM/doc/ascm2001p/design-outline.tex,v 1.4 2001/06/20 03:08:05 takayama Exp $
   
 \section{Design Outline and OpenXM Request for Comments (OpenXM-RFC)}  \section{Design Outline and OpenXM Request For Comments}
   
 As Schefstr\"om clarified in \cite{schefstrom},  As Schefstr\"om\cite{schefstrom} clarified,
 integration of tools and software 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 is concerned with the exchange of data between different
 software or same software.  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.
 For example,  %For example,
 \begin{verbatim}  %\begin{verbatim}
  <OMOBJ>  <OMI> 123 </OMI> </OMOBJ>  % <OMOBJ>  <OMI> 123 </OMI> </OMOBJ>
 \end{verbatim}  %\end{verbatim}
 means the (OpenMath) integer $123$ in OpenMath/XML expression.  %means the (OpenMath) integer $123$ in OpenMath/XML expression.
   
 Control integration concerns with the establishment and management of  Control integration is concerned with the establishment and management of
 inter-software communications.  inter-software communications.
 Control involves, for example, a way to ask computations to other processes  Control involves, for example, a way to call subroutines on other processes
 and a method to interrupt computations on servers from a client.  and a method to interrupt computations on servers from a client.
 RPC, HTTP, MPI, PVM are regarded as a general purpose control protocols or  RPC, HTTP, MPI, PVM are regarded as a general purpose control protocols or
 infrastructures.  infrastructures.
 MCP (Mathematical Communication Protocol)  MCP (Mathematical Communication Protocol)\cite{iamc}
 by Wang \cite{iamc} and OMEI \cite{omei} are such protocols for mathematics.  and OMEI \cite{omei} are such protocols for mathematics.
   
 Although data and control are orthogonal to each other,  Although data and control are orthogonal to each other,
 real world requires both.  the real world requires both.
 NetSolve \cite{netsolve}, OpenMath$+$MCP, MP$+$MCP \cite{iamc},  NetSolve \cite{netsolve}, OpenMath$+$MCP, MP$+$MCP \cite{iamc},
 and MathLink \cite{mathlink} provide both data and control integration.  and MathLink \cite{mathlink} provide both data and control integration.
 Each integration method has their own features determined by their  Each integration method has its own features determined by its
 own design goals.  own design goals.
 OpenXM (Open message eXchange protocol for Mathematics)  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.  started by Noro and Takayama.
 \begin{enumerate}  
 \item We should test the proposed standards mentioned above on  Noro has been involved in the development of
 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}.  a computer algebra system Risa/Asir \cite{asir}.
 An interface for interactive distributed computations was introduced  An interface for interactive distributed computations was introduced
 to Risa/Asir  to Risa/Asir in 1995.
 %% version 950831 released  The model of computation was RPC.
 in 1995.  
 The model of computation was RPC (remote procedure call).  
 A robust interruption protocol was provided  A robust interruption protocol was provided
 by  two communication channels  by  two communication channels like ftp.
 like the File Transfer Protocol (ftp).  
 As an application of this protocol,  As an application of this protocol,
 a parallel speed-up was achieved for a Gr\"obner basis computation  a parallel speed-up was achieved for a Gr\"obner basis computation
 to determine all odd order replicable functions  to determine all odd order replicable functions
 (Noro and McKay \cite{noro-mckay}).  (Noro and McKay \cite{noro-mckay}).
 However, the protocol was local in Asir and we thought that we should  Takayama has developed
 design an open protocol.  
 \item Takayama has developed  
 a special purpose system Kan/sm1 \cite{kan},  a special purpose system Kan/sm1 \cite{kan},
 which is a Gr\"obner engine for the ring of differential operators $D$.  which is a Gr\"obner engine for the ring of differential operators $D$
 In order to implement algorithms in $D$-modules due to Oaku  and which was designed as a component of larger systems.
 (see, e.g., \cite{sst-book}),  
 factorizations and primary ideal decompositions are necessary.  
 Kan/sm1 does not have an implementation for these and called  
 Risa/Asir as a UNIX external program.  
 This approach was not satisfactory.  
 Especially, we could not write a clean interface code between these  
 two systems.  
 We thought that it is necessary to provide a data and control protocol  
 for Risa/Asir to work as a server of factorization and primary ideal  
 decomposition.  
 \item We have been profited from increasing number  
 of mathematical software.  
 These are usually ``expert'' systems in one area of mathematics  
 such as ideals, groups, numbers, polytopes, and so on.  
 They have their own interfaces and data formats,  
 which are fine for intensive users of these systems.  
 However, a unified system will be more convenient.  
 %for users who want to explore a new area of mathematics with these  
 %software or users who need these systems only occasionally.  
   
 \item  We believe that an open integrated system is a future of mathematical  Noro and Takayama first tried to integrate these existing two
   software systems.
   We believe that an open integrated system is a future of mathematical
 software.  software.
 However, it might be just a dream without realizability.  However, we found that it might be just a dream without realizability
 We want to build a prototype of such an open system by using  and that it is an important research subject to
 existing standards, technologies and several mathematical software.  build a prototype of such an integrated system. % Project X
 We want to see how far we can go with this approach.  We started the OpenXM project with the following
 \end{enumerate}  
   
 Motivated with these, we started the OpenXM project with the following  
 fundamental architecture, which is currently described in  fundamental architecture, which is currently described in
 OpenXM-RFC 100  proposed standard %% ``draft standard'' and ``standard''  the OpenXM-RFC 100  proposed standard %% ``draft standard'' and ``standard''
 ``Design and Implementation of OpenXM client-server model and common  \cite{ox-rfc-100}.
 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 109  The stack machine is called the
Line 80  The stack machine is called the
 Existing mathematical software systems 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}  (a) 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;  (b) An output of the target must be understandable for computer programs;
 it should follow a grammar that can be parsed with other software.  it should follow a grammar that can be parsed with other software.
 \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 of 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+
 then the server executes the asir command \\  then the server executes the asir command
 \verb+ fctr(x^100-y^100); +  \verb+ fctr(x^100-y^100); +
 (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.
Line 132  and pushes the result onto the stack.
Line 101  and pushes the result onto the stack.
 OpenXM package  implements the OpenXM-RFC 100 \cite{ox-rfc-100}  OpenXM package  implements the OpenXM-RFC 100 \cite{ox-rfc-100}
 and 101 \cite{ox-rfc-101} based on  and 101 \cite{ox-rfc-101} based on
 the above fundamental architecture.  the above fundamental architecture.
 In this paper, we discuss mainly on systems implementing  In this paper, we mainly discuss systems implementing
 OpenXM-RFC 100 and 101 on TCP/IP.  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 through TCP/IP:  %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 of Kan/sm1.
 Here, {\tt ox\_sm1} is an OpenXM server of Kan/sm1.  
   
 Our project of integrating mathematical software  Our project of integrating mathematical software
 systems is taking the ``RFC'' approach, which has been  systems is taking the ``RFC'' approach, which has been
 used to develop internet protocols.  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}.
 We are now preparing the OpenXM-RFC 102 ``Mathematical communication  We are now preparing the OpenXM-RFC 102 ``Mathematical communication
 on MPI'' (draft protocol)  on MPI'' (draft protocol).
 based on our experiments on MPI.  
   
 In the rest of the paper, we abbreviate  In the rest of the paper, we abbreviate
 OpenXM-RFC 100 and 101 to OpenXM if no confusion arises.  OpenXM-RFC 100 and 101 to OpenXM if no confusion arises.
   
   
   
   
   
   
   
   

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

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