=================================================================== RCS file: /home/cvs/OpenXM/doc/issac2000/design-outline.tex,v retrieving revision 1.4 retrieving revision 1.7 diff -u -p -r1.4 -r1.7 --- OpenXM/doc/issac2000/design-outline.tex 2000/01/07 07:52:26 1.4 +++ OpenXM/doc/issac2000/design-outline.tex 2000/01/15 03:23:59 1.7 @@ -1,4 +1,4 @@ -% $OpenXM: OpenXM/doc/issac2000/design-outline.tex,v 1.3 2000/01/03 04:27:52 takayama Exp $ +% $OpenXM: OpenXM/doc/issac2000/design-outline.tex,v 1.6 2000/01/15 02:24:18 takayama Exp $ \section{Design Outline} @@ -10,7 +10,7 @@ Data integration concerns with the exchange of data be softwares or same softwares. OpenMath \cite{OpenMath} and MP (Multi Protocol) \cite{GKW} are, 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, \begin{verbatim} 123 @@ -19,7 +19,7 @@ means the (OpenMath) integer $123$ in OpenMath/XML exp Control integration concerns with the establishment and management of 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. RPC, HTTP, MPI, PVM are regarded as a general purpose control protocols or infrastructures. @@ -29,67 +29,59 @@ by Wang \cite{iamc} is such a protocol specialized to Although, data and control are orthogonal to each other, real world requires both. NetSolve \cite{netsolve}, OpenMath$+$MCP, MP$+$MCP \cite{iamc}, -and MathLink of Mathematica provide both data and control integration. -These are currently studied ways of data and control integration. -Each integration method has their own special features due to their +and MathLink \cite{mathlink} provide both data and control integration. +Each integration method has their own features due to their own design goals and design motivations. -OpenXM is a project aiming to integrate data, control and user interfaces -from a different emphasis of a set of design goals with other projects. +OpenXM (Open message eXchange protocol for Mathematics) +is a project aiming to integrate data, control and user interfaces +with its own set of design goals. To explain our design outline, we start with a list of our motivations. \begin{enumerate} -\item Noro, who is one of the authors of OpenXM, has developed a general +\item Noro has developed a general purpose computer algebra system Risa/Asir \cite{asir}. -A set of functions for interactive distributed computations were introduced +An interface for interactive distributed computations was introduced in Risa/Asir version 950831 released in 1995. The model of computation was RPC (remote procedure call) -and it had its own serialization method for objects. +and it had its own serialization. A robust interruption method was provided by having two communication channels -like ftp, which implements the simple network management protocol. -As an application of this robust and interactive distributed computation -system, -a huge Gr\"obner basis was computed -to determine all replicable functions by Noro and McKay \cite{noro-mckay}. -However, the protocol was closed in asir and we thought that we should +like ftp. +As an application of this robust and the interactive distributed computation +system, speed-up was achieved for a huge Gr\"obner basis computation +to determine all odd order replicable functions +by Noro and McKay \cite{noro-mckay}. +However, the protocol was closed in Asir and we thought that we should 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}, -which is a Gr\"obner engine for the ring of differential operators $D$ and -a package for computational algebraic geometry via D-module computations. +which is a Gr\"obner engine for the ring of differential operators $D$. In order to implement algorithms in D-modules due to Oaku (see, e.g., \cite{sst-book}), factorizations and primary ideal decompositions were necessary. 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 C library or 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 +for Risa/Asir to work as a server of factorization and primary ideal decomposition. \item The number of mathematical softwares is increasing rapidly in the last decade of the 20th century. -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. They have their own interfaces and data formats. -Interfaces are usually specialized to a specific field of mathematics -or poor because developers do not have time for designing user interface -languages. +Interfaces are sometimes specialized to a specific field of mathematics +or poor. It is fine for intensive and serious users of these systems. -%% x2 stands for x^2, specialized for polynomial ring. However, for users who want to explore a new area of mathematics with these softwares or users who need these systems only occasionally, a unified system will be more convenient. -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 + +\item We believe that an open integrated system is a future of mathematical softwares. -\item We believe that open integrated systems is a future of mathematical -softwares. 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 system of such an open system by using existing standards, technologies and several mathematical softwares. We want to see how far we can go with this approach. \end{enumerate} @@ -117,12 +109,26 @@ interface. \item An output of the target must be understandable for computer programs; it should follow a grammar that can be parsed with other softwares. \end{enumerate} +\item Any server may have a hybrid interface; +it may accept and execute its original command sequences. +For example, +if we send the following string to ox\_asir server +{\footnotesize +\begin{verbatim} + " fctr(x^10-y^10); " +\end{verbatim} +} +and call the stanck machine command +SM\_executeStringByLocalParser, +then the server executes the asir command +\verb+ fctr(x^10-y^10); + +(factorize $x^10-y^10$ over ${\bf Q}$) +and push the result on the stack. \end{enumerate} -We are implementing a package, OpenXM package, -which aims to realize our wishes stated as motivations. +We are implementing a package, OpenXM package. It is based on above fundamental architecture. 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 OX sm1 server: \begin{verbatim} P = sm1_start(); ox_push_cmo(P,1); ox_push_cmo(P,1); @@ -131,9 +137,10 @@ the asir client to the OX sm1 server: The current system, OpenXM on TCP/IP, uses client-server model and the TCP/IP is used for interprocess communications. -A prototype OpenXM system on MPI \cite{MPI} already exists for Risa/asir and -a general OpenXM on MPI is a work in progress. +The OpenXM on MPI \cite{MPI} is currently running on Risa/Asir +as we will see in Section \ref{section:homog}. However, we focus only on the system based on TCP/IP in this paper. +