=================================================================== RCS file: /home/cvs/OpenXM/doc/issac2000/design-outline.tex,v retrieving revision 1.9 retrieving revision 1.10 diff -u -p -r1.9 -r1.10 --- OpenXM/doc/issac2000/design-outline.tex 2000/01/15 12:18:42 1.9 +++ OpenXM/doc/issac2000/design-outline.tex 2000/01/16 02:31:49 1.10 @@ -1,4 +1,4 @@ -% $OpenXM: OpenXM/doc/issac2000/design-outline.tex,v 1.8 2000/01/15 03:47:58 takayama Exp $ +% $OpenXM: OpenXM/doc/issac2000/design-outline.tex,v 1.9 2000/01/15 12:18:42 takayama Exp $ \section{Design Outline} @@ -24,26 +24,25 @@ and a method to interrupt computations on servers from RPC, HTTP, MPI, PVM are regarded as a general purpose control protocols or infrastructures. 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, real world requires both. NetSolve \cite{netsolve}, OpenMath$+$MCP, MP$+$MCP \cite{iamc}, 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 determined by their own design goals. OpenXM (Open message eXchange protocol for Mathematics) is a project aiming to integrate data, control and user interfaces with design goals motivated by the followings. \begin{enumerate} -\item Noro has involved in the development of a general -purpose computer algebra system Risa/Asir \cite{asir}. +\item Noro has been involved in the development of +a computer algebra system Risa/Asir \cite{asir}. An interface for interactive distributed computations was introduced to Risa/Asir %% version 950831 released in 1995. -The model of computation was RPC (remote procedure call) -and it had its own serialization. +The model of computation was RPC (remote procedure call). A robust interruption protocol was provided by two communication channels like the File Transfer Protocol (ftp). @@ -67,15 +66,15 @@ 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 profitted by increasing number +\item We have been profitted from increasing number of mathematical softwares. 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. -It is fine for intensive users of these systems. -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. +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 +softwares or users who need these systems only occasionally. \item We believe that an open integrated system is a future of mathematical softwares. @@ -91,11 +90,12 @@ fundamental architecture. \item Communication is an exchange of messages. The messages are classified into three types: DATA, COMMAND, and SPECIAL. -They are called OX (OpenXM) messages, +They are called OX (OpenXM) messages. +Among the three types, {\it OX data messages} wrap mathematical data. We use standards of mathematical data formats such as OpenMath and MP -as well as our own data format -({\it CMO --- Common Mathematical Object format}). +as well as our own data format {\it CMO} +({\it Common Mathematical Object format}). \item Servers, which provide services to other processes, are stack machines. The stack machine is called the {\it OX stack machine}. @@ -109,7 +109,8 @@ interface. 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. +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 {\tt ox\_asir} server (OpenXM server based on Risa/Asir) \\ @@ -121,7 +122,7 @@ then the server executes the asir command \\ (factorize $x^{100}-y^{100}$ over ${\bf Q}$) and pushes the result onto the stack. \end{enumerate} -OpenXM package is based on above fundamental architecture. +OpenXM package is implemented on above fundamental architecture. For example, the following is a command sequence to ask $1+1$ from the Asir client to the {\tt ox\_sm1} server: \begin{verbatim} @@ -131,11 +132,14 @@ the Asir client to the {\tt ox\_sm1} server: \end{verbatim} Here, {\tt ox\_sm1} is an OpenXM server based on Kan/sm1. -The current system, OpenXM on TCP/IP, -uses the client-server model. +The current OpenXM package is implemented on the OpenXM for TCP/IP, +which uses the client-server model. 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. +In this paper, we discuss only on systems for TCP/IP +to concentrate on the core part of our design. + +