| version 1.5, 2000/04/26 08:18:30 |
version 1.6, 2000/04/27 05:42:18 |
|
|
| % $OpenXM: OpenXM/doc/calc2000/design-outline.tex,v 1.4 2000/04/24 07:17:13 noro Exp $ |
% $OpenXM: OpenXM/doc/calc2000/design-outline.tex,v 1.5 2000/04/26 08:18:30 noro Exp $ |
| |
|
| \section{Integration of Mathematical Software} |
\section{Integration of Mathematical Software} |
| |
|
| Line 29 by Wang \cite{iamc} is such a protocol for mathematics |
|
| Line 29 by Wang \cite{iamc} is such a protocol for mathematics |
|
| Although data and control are orthogonal to each other, real world |
Although data and control are orthogonal to each other, real world |
| requires both. The best way to evaluate and to improve such |
requires both. The best way to evaluate and to improve such |
| integration schemes is to implement and to use them on various |
integration schemes is to implement and to use them on various |
| plaftforms. Dalmas et al. \cite{omimp} shows an implementation of |
platforms. Dalmas et al. \cite{omimp} shows an implementation of |
| OpenMath API, where as Maple, REDUCE and |
OpenMath API, where Maple, REDUCE and |
| AXIOM/Aldor are wrapped as servers. MP$+$MCP \cite{iamc} shows a design |
AXIOM/Aldor are wrapped as servers. MP$+$MCP \cite{iamc} shows a design |
| of server inferface suited for interactive use and its limited |
of server interface suited for interactive use and its limited |
| implementation on MAXIMA is reported. Lakshman et al. \cite{pseware} |
implementation on MAXIMA is reported. Lakshman et al. \cite{pseware} |
| proposes functionalities which a server should have and Maple is |
proposes functionalities which a server should have and Maple is |
| encapsulated as a server. These are all attempts to justify thier |
encapsulated as a server. These are all attempts to justify their |
| designs of protocols or architectures, but little is shown about their |
designs of protocols or architectures, but little is shown about their |
| practical usefulness, especially for developing real applications of |
practical usefulness, especially for developing real applications of |
| distributed computation. |
distributed computation. |
| Line 53 usability by implementing and using it on various plat |
|
| Line 53 usability by implementing and using it on various plat |
|
| |
|
| \section{Design Outline of OpenXM} |
\section{Design Outline of OpenXM} |
| |
|
| %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 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). |
|
| %A robust interruption protocol was provided |
|
| %by two communication channels |
|
| %like the File Transfer Protocol (ftp). |
|
| %As an application of this protocol, |
|
| %a parallel speed-up was achieved for a Gr\"obner basis computation |
|
| %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. |
|
| %\item Takayama has developed |
|
| %a special purpose system Kan/sm1 \cite{kan}, |
|
| %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 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 tools. |
|
| %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 tools or users who need these systems only occasionally. |
|
| % |
|
| %\item We believe that an open integrated system is a future of mathematical |
|
| %software. |
|
| %However, it might be just a dream without realizability. |
|
| %We want to build a prototype of such an open system by using |
|
| %existing standards, technologies and several mathematical software tools. |
|
| %We want to see how far we can go with this approach. |
|
| %\end{enumerate} |
|
| % |
|
| %Motivated with these, we started the OpenXM project with the following |
|
| %fundamental architecture. |
|
| 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 followng. |
with design goals motivated by the following. |
| |
|
| \begin{enumerate} |
\begin{enumerate} |
| \item |
\item |
| An interface for interactive distributed computations was introduced |
An interface for interactive distributed computations was introduced |
| to Risa/Asir in 1995. |
to Risa/Asir \cite{asir} in 1995. |
| As an application, |
As an application, |
| a parallel speed-up was achieved for a Gr\"obner basis computation |
a parallel speed-up was achieved for a Gr\"obner basis computation |
| (Noro and McKay \cite{noro-mckay}). |
(Noro and McKay \cite{noro-mckay}). |
| Line 123 design an open protocol. |
|
| Line 69 design an open protocol. |
|
| \item |
\item |
| 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}), |
| Kan/sm1 called Risa/Asir as a UNIX external program to |
Kan/sm1 \cite{kan} called Risa/Asir as a UNIX external program to |
| compute factorizations and primary ideal decompositions, |
compute factorizations and primary ideal decompositions, |
| but the interface code was not clean. |
but the interface code was not clean. |
| 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 |
| Line 174 it may accept and execute not only stack machine comma |
|
| Line 120 it may accept and execute not only stack machine comma |
|
| 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 based on Risa/Asir \cite{asir}) \\ |
(OpenXM server based on 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 + \\ |
| Line 185 and pushes the result onto the stack. |
|
| Line 131 and pushes the result onto the stack. |
|
| \item Network transparent supports for controlling servers are provided. |
\item Network transparent supports for controlling servers are provided. |
| For example OpenXM defines a robust reset procedure to restart computations |
For example OpenXM defines a robust reset procedure to restart computations |
| without any confusion in I/O buffers. |
without any confusion in I/O buffers. |
| It is necessary for debugging programs running on distributed environment. |
It is very useful for debugging programs running on distributed environment. |
| \end{enumerate} |
\end{enumerate} |
| OpenXM package is implemented on above fundamental architecture. |
OpenXM package is implemented on above fundamental architecture. |
| Currently the following servers are available in the OpenXM package |
Currently the following servers are available in the OpenXM package |
| Line 195 Currently the following servers are available in the O |
|
| Line 141 Currently the following servers are available in the O |
|
| \item{\tt ox\_asir} |
\item{\tt ox\_asir} |
| A server for Risa/Asir, a general-purpose computer algebra |
A server for Risa/Asir, a general-purpose computer algebra |
| system. It provides almost |
system. It provides almost |
| all functinalities of Risa/Asir such as polynomial factorization, |
all functionalities of Risa/Asir such as polynomial factorization, |
| Gr\"obner basis computation and primary ideal decomposition. |
Gr\"obner basis computation and primary ideal decomposition. |
| \item{\tt ox\_sm1} |
\item{\tt ox\_sm1} |
| A server for Kan/sm1 \cite{kan}, a system for computation in |
A server for Kan/sm1, a system for computation in |
| the ring of differential operators including computation of Gr\"obner bases |
the ring of differential operators including computation of Gr\"obner bases |
| and cohomology groups. |
and cohomology groups. |
| \item {\tt ox\_phc} |
\item {\tt ox\_phc} |