[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.3 and 1.13

version 1.3, 2000/01/03 04:27:52 version 1.13, 2000/01/17 08:06:15
Line 1 
Line 1 
 % $OpenXM: OpenXM/doc/issac2000/design-outline.tex,v 1.2 2000/01/02 07:32:11 takayama Exp $  % $OpenXM: OpenXM/doc/issac2000/design-outline.tex,v 1.12 2000/01/16 10:55:40 takayama Exp $
   
 \section{Design Outline}  \section{Design Outline}
   
Line 10  Data integration concerns with the exchange of data be
Line 10  Data integration concerns with the exchange of data be
 softwares or same softwares.  softwares or same softwares.
 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 a standard way 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>
Line 19  means the (OpenMath) integer $123$ in OpenMath/XML exp
Line 19  means the (OpenMath) integer $123$ in OpenMath/XML exp
   
 Control integration concerns with the establishment and management of  Control integration concerns with the establishment and management of
 inter-software communications.  inter-software communications.
 Control involves, for example, a way to ask computation to other processes  Control involves, for example, a way to ask computations to 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)
 by Wang \cite{iamc} is such a protocol specialized to mathematics.  by Wang \cite{iamc} is such a protocol for 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.
 NetSolv \cite{netsolve}, OpenMath$+$MCP, MP$+$MCP \cite{iamc},  NetSolve \cite{netsolve}, OpenMath$+$MCP, MP$+$MCP \cite{iamc},
 and MathLink of Mathematica provide both data and control integration.  and MathLink \cite{mathlink} provide both data and control integration.
 These are currently studied ways of data and control integration.  Each integration method has their own features determined by their
 Each integration method has their own special features due to their  own design goals.
 own design goals and design motivations.  OpenXM (Open message eXchange protocol for Mathematics)
 OpenXM is a project aiming to integrate data, control and user interfaces  is a project aiming to integrate data, control and user interfaces
 from a different emphasis of a set of design goals with other projects.  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,  who is one of the authors of OpenXM, has developed a general  \item Noro has been involved in the development of
 purpose computer algebra system Risa/Asir \cite{asir}.  a computer algebra system Risa/Asir \cite{asir}.
 A set of functions for interative distributed computations were introduced  An interface for interactive distributed computations was introduced
 in Risa/Asir version 950831 released in 1995.  to Risa/Asir
 The model of computation was RPC (remote procedure call)  %% version 950831 released
 and it had its own serialization method for objects.  in 1995.
 A robust interruption method was provided by having two communication channels  The model of computation was RPC (remote procedure call).
 like ftp, which implements the simple network management protocol.  A robust interruption protocol was provided
 As an application of this robust and interractive distributed computation  by  two communication channels
 system,  like the File Transfer Protocol (ftp).
 a huge Gr\"obner basis was computed  As an application of this protocol,
 to determine all replicable functions by Noro and McKay \cite{noro-mckay}.  a parallel speed-up was achieved for a Gr\"obner basis computation
 However, the protocol was closed in asir and we thought that we should  to determine all odd order replicable functions
   (Noro and McKay \cite{noro-mckay}).
   However, the protocol was local in Asir and we thought that we should
 design an open protocol.  design an open protocol.
 \item Takayama, who is also one of the authors of OpenXM, 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$ and  which is a Gr\"obner engine for the ring of differential operators $D$.
 a package for computational algebraic geometry via D-module computations.  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 C library or a unix external program.  Risa/Asir as a UNIX external program.
 This approach was not satisfactory.  This approach was not satisfactory.
 Especially, we could not write a clean interface code between these  Especially, we could not write a clean interface code between these
 two systems.  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 profited from increasing number
 decade of the 20th century.  of mathematical softwares.
 These are usually ``expert'' systems for 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 usually specialied to a specific field of mathematics  which are fine for intensive users of these systems.
 or poor because developers do not have time for designing user interface  However, a unified system will be more convenient
 languages.  for users who want to explore a new area of mathematics with these
 It is fine for intensive and serious users of these systems.  softwares or users who need these systems only occasionally.
 %% x2 stands for x^2, specialized for polynomial ring.  
 However, for users who want to explore a new area of mathematics with these  \item  We believe that an open integrated system is a future of mathematical
 softwares or users who need these systems only occasionally,  
 a unified system will be more convinient.  
 For example, if we can call and use mathematical softwares  
 like CoCoa, GAP, Macaulay2, Porta, Singular, Snapea, $\ldots$  
 from Asir, Axion, Maple, muPAD, Mathematica, and so on,  
 it will be wonderful in research and education  
 of mathematics. This is an unification of user interfaces of mathematical  
 softwares.  softwares.
 \item  We believe that open integrated systems is a future of mathematical  
 softwares.  
 However, it might be just a dream without realizability.  However, it might be just a dream without realizability.
 We wanted 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 97  We want to see how far we can go with this approach.
Line 87  We want to see how far we can go with this approach.
 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.
 \begin{enumerate}  \begin{enumerate}
 \item Communication is an exchange of messages. The messages are classifed 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}.  Among the three types,
   {\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 {\it CMO}
 as data expressions.  ({\it Common Mathematical Object format}).
 \item Servers, which provide services to other processes, are stackmachines.  \item Servers, which provide services to other processes, are stack machines.
 The stackmachine is called the  The stack machine is called the
 {\it OX stackmachine}.  {\it OX stack machine}.
 Existing mathematical softwares are wrapped with this stackmachine.  Existing mathematical softwares are wrapped with this stack machine.
 Minimal requirements for a target software wrapped with the OX stackmachine  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 seriealized 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 grammer that can be parsed with other softwares.  it should follow a grammar that can be parsed with other softwares.
 \end{enumerate}  \end{enumerate}
   \item Any server may have a hybrid interface;
   it may accept and execute not only stack machine commands,
   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) \\
   \verb+        " fctr(x^100-y^100); "      + \\
   and call the stack machine command  \\
   \verb+        SM_executeStringByLocalParser    + \\
   then the server executes the asir command \\
   \verb+ fctr(x^100-y^100); +
   (factorize $x^{100}-y^{100}$ over ${\bf Q}$)
   and pushes the result onto the stack.
 \end{enumerate}  \end{enumerate}
 We are implementing a package, OpenXM package,  OpenXM package  is implemented on above fundamental architecture.
 which aims to realize our wishes stated as motivations.  
 It 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}
 The current system, OpenXM on TCP/IP,  Here, {\tt ox\_sm1} is an OpenXM server based on Kan/sm1.
 uses client-server model and the TCP/IP is used for interprocess  
 communications.  The OpenXM package is implemented on the  OpenXM for TCP/IP,
 A prototype OpenXM system on MPI \cite{MPI} already exists for Risa/asir and  which uses the client-server model.
 a general OpenXM on MPI is a work in progress.  The OpenXM on MPI \cite{MPI} is currently running on Risa/Asir
 However, we focus only on the system based on TCP/IP in this paper.  as we will see in Section \ref{section:homog}.
   In this paper, we discuss only on systems for TCP/IP
   to concentrate on the core part of our design.
   
   
   
   
   
   

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.13

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