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

Diff for /OpenXM/doc/issac2000/design-outline.tex between version 1.8 and 1.9

version 1.8, 2000/01/15 03:47:58 version 1.9, 2000/01/15 12:18:42
Line 1 
Line 1 
 % $OpenXM: OpenXM/doc/issac2000/design-outline.tex,v 1.7 2000/01/15 03:23:59 takayama Exp $  % $OpenXM: OpenXM/doc/issac2000/design-outline.tex,v 1.8 2000/01/15 03:47:58 takayama Exp $
   
 \section{Design Outline}  \section{Design Outline}
   
Line 26  infrastructures.
Line 26  infrastructures.
 MCP (Mathematical Communication Protocol)  MCP (Mathematical Communication Protocol)
 by Wang \cite{iamc} is such a protocol specialized to mathematics.  by Wang \cite{iamc} is such a protocol specialized to mathematics.
   
 Although, data and control are orthogonal to each other,  Although data and control are orthogonal to each other,
 real world requires both.  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 due to their  Each integration method has their own features due to their
 own design goals and design motivations.  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 its own set of design goals.  with design goals motivated by the followings.
 To explain our design outline, we start with a list of  
 our motivations.  
 \begin{enumerate}  \begin{enumerate}
 \item Noro has developed a general  \item Noro has involved in the development of a general
 purpose computer algebra system Risa/Asir \cite{asir}.  purpose computer algebra system Risa/Asir \cite{asir}.
 An interface for interactive distributed computations was introduced  An interface for interactive distributed computations was introduced
 in Risa/Asir version 950831 released in 1995.  to Risa/Asir
   %% version 950831 released
   in 1995.
 The model of computation was RPC (remote procedure call)  The model of computation was RPC (remote procedure call)
 and it had its own serialization.  and it had its own serialization.
 A robust interruption method was provided by having two communication channels  A robust interruption protocol was provided
 like ftp.  by  two communication channels
 As an application of this robust and the interactive distributed computation  like the File Transfer Protocol (ftp).
 system, speed-up was achieved for a huge Gr\"obner basis computation,  As an application of this protocol,
 for example,  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 closed in Asir and we thought that we should  However, the protocol was local in Asir and we thought that we should
 design an open protocol.  design an open protocol.
 \item Takayama has developed  \item Takayama has developed
 a special purpose computer algebra 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  In order to implement algorithms in $D$-modules due to Oaku
 (see, e.g., \cite{sst-book}),  (see, e.g., \cite{sst-book}),
 factorizations and primary ideal decompositions were necessary.  factorizations and primary ideal decompositions are necessary.
 Kan/sm1 does not have an implementation for these and called  Kan/sm1 does not have an implementation for these and called
 Risa/Asir as a UNIX external program.  Risa/Asir as a UNIX external program.
 This approach was not satisfactory.  This approach was not satisfactory.
Line 67  two systems.
Line 67  two systems.
 We thought that it is necessary to provide a data and control protocol  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  for Risa/Asir to work as a server of factorization and primary ideal
 decomposition.  decomposition.
 \item The number of mathematical softwares is increasing rapidly in the last  \item We have been profitted by increasing number
 decade of the 20th century.  of mathematical softwares.
 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.
 Interfaces are sometimes specialized to a specific field of mathematics  It is fine for intensive users of these systems.
 or poor.  
 It is fine for intensive and serious users of these systems.  
 However, for users who want to explore a new area of mathematics with these  However, for users who want to explore a new area of mathematics with these
 softwares or users who need these systems only occasionally,  softwares or users who need these systems only occasionally,
 a unified system will be more convenient.  a unified system will be more convenient.
Line 82  a unified system will be more convenient.
Line 80  a unified system will be more convenient.
 \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.  softwares.
 However, it might be just a dream without realizability.  However, it might be just a dream without realizability.
 We want to build a prototype system 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 softwares.
 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}
Line 92  fundamental architecture.
Line 90  fundamental architecture.
 \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:
 DATA, COMMAND, and others.  DATA, COMMAND, and SPECIAL.
 The messages are called OX (OpenXM) messages.  They are called OX (OpenXM) messages,
 Mathematical data are wrapped with {\it OX messages}.  {\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
 and our own data format ({\it CMO --- Common Mathematical Object format})  as well as our own data format
 as data expressions.  ({\it CMO --- Common Mathematical Object format}).
 \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}.
Line 113  it should follow a grammar that can be parsed with oth
Line 111  it should follow a grammar that can be parsed with oth
 \item Any server may have a hybrid interface;  \item Any server may have a hybrid interface;
 it may accept and execute its original command sequences.  it may accept and execute its original command sequences.
 For example,  For example,
 if we send the following string to ox\_asir server \\  if we send the following string to {\tt ox\_asir} server
 \verb+        " fctr(x^10-y^10); "      + \\  (OpenXM server based on Risa/Asir) \\
   \verb+        " fctr(x^100-y^100); "      + \\
 and call the stanck machine command  \\  and call the stanck 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^10-y^10); +  \verb+ fctr(x^100-y^100); +
 (factorize $x^10-y^10$ over ${\bf Q}$)  (factorize $x^{100}-y^{100}$ over ${\bf Q}$)
 and push the result on the stack.  and pushes the result onto the stack.
 \end{enumerate}  \end{enumerate}
 OpenXM package  is based on above fundamental architecture.  OpenXM package  is based on above fundamental architecture.
 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 OX sm1 server:  the Asir client to the {\tt ox\_sm1} server:
 \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.
   
 The current system, OpenXM on TCP/IP,  The current system, OpenXM on TCP/IP,
 uses client-server model and the TCP/IP is used for interprocess  uses the client-server model.
 communications.  
 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}.
 However, we focus only on the system based on TCP/IP in this paper.  However, we focus only on the system based on TCP/IP in this paper.

Legend:
Removed from v.1.8  
changed lines
  Added in v.1.9

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