version 1.2, 2000/04/24 05:01:29 |
version 1.5, 2000/04/26 08:18:30 |
|
|
% $OpenXM: OpenXM/doc/calc2000/design-outline.tex,v 1.1.1.1 2000/04/24 04:20:11 noro Exp $ |
% $OpenXM: OpenXM/doc/calc2000/design-outline.tex,v 1.4 2000/04/24 07:17:13 noro Exp $ |
|
|
\section{Integration of Mathematical Software} |
\section{Integration of Mathematical Software} |
|
|
Line 7 integration of software tools has three dimensions: |
|
Line 7 integration of software tools has three dimensions: |
|
data, control, and user interface. |
data, control, and user interface. |
|
|
Data integration concerns with the exchange of data between different |
Data integration concerns with the exchange of data between different |
software or same software. |
programs or the same program. |
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 standard ways to express mathematical objects. |
They provide standard ways to express mathematical objects. |
Line 30 Although data and control are orthogonal to each other |
|
Line 30 Although data and control are orthogonal to each other |
|
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 |
plaftforms. Dalmas et al. \cite{omimp} shows an implementation of |
OpenMath API, where several systems such as Maple, REDUCE and |
OpenMath API, where as Maple, REDUCE and |
AXIOM/Aldor are made 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 inferface 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 has been |
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 thier |
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. |
|
|
In this paper we propose a unified server interface fitting for both |
In this paper we propose a unified server interface fitting for both |
interactive use and efficient batch processing. We hope to show its |
interactive use and efficient batch processing. |
|
It includes various supports for developing programs on distributed |
|
environment. We will show its |
usability by implementing and using it on various platforms. |
usability by implementing and using it on various platforms. |
|
|
%NetSolve \cite{netsolve}, OpenMath$+$MCP, MP$+$MCP \cite{iamc}, |
%NetSolve \cite{netsolve}, OpenMath$+$MCP, MP$+$MCP \cite{iamc}, |
Line 107 usability by implementing and using it on various plat |
|
Line 109 usability by implementing and using it on various plat |
|
%fundamental architecture. |
%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 the following design goals. |
with design goals motivated by the followng. |
|
|
\begin{enumerate} |
\begin{enumerate} |
|
\item |
|
An interface for interactive distributed computations was introduced |
|
to Risa/Asir in 1995. |
|
As an application, |
|
a parallel speed-up was achieved for a Gr\"obner basis computation |
|
(Noro and McKay \cite{noro-mckay}). |
|
However, the protocol was local in Asir and we thought that we should |
|
design an open protocol. |
|
\item |
|
In order to implement algorithms in $D$-modules due to Oaku |
|
(see, e.g., \cite{sst-book}), |
|
Kan/sm1 called Risa/Asir as a UNIX external program to |
|
compute factorizations and primary ideal decompositions, |
|
but the interface code was not clean. |
|
We thought that it is necessary to provide a data and control protocol |
|
for Risa/Asir to work as a server. |
|
|
|
\item |
|
There are increasing number of ``expert'' systems which are useful |
|
but which have their own interfaces and data formats. |
|
A unified system integrating such systems |
|
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. |
|
\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 SPECIAL. |
DATA, COMMAND, and SPECIAL. |
Line 144 then the server executes the asir command \\ |
|
Line 182 then the server executes the asir command \\ |
|
\verb+ fctr(x^100-y^100); + |
\verb+ fctr(x^100-y^100); + |
(factorize $x^{100}-y^{100}$ over ${\bf Q}$) |
(factorize $x^{100}-y^{100}$ over ${\bf Q}$) |
and pushes the result onto the stack. |
and pushes the result onto the stack. |
|
\item Network transparent supports for controlling servers are provided. |
|
For example OpenXM defines a robust reset procedure to restart computations |
|
without any confusion in I/O buffers. |
|
It is necessary 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 156 system. It provides almost |
|
Line 198 system. It provides almost |
|
all functinalities of Risa/Asir such as polynomial factorization, |
all functinalities 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 algebraic |
A server for Kan/sm1 \cite{kan}, a system for computation in |
analysis. |
the ring of differential operators including computation of Gr\"obner bases |
\item {\tt ox\_sm1\_phc} |
and cohomology groups. |
|
\item {\tt ox\_phc} |
A server for PHC pack \cite{phc}, a general-purpose solver for |
A server for PHC pack \cite{phc}, a general-purpose solver for |
polynomial systems by homotopy continuation. It is available only |
polynomial systems by homotopy continuation. |
on Linux. |
\item {\tt ox\_tigers} |
\item {\tt ox\_sm1\_tigers} |
|
A server for TiGERS \cite{tigers}, a system to enumerate |
A server for TiGERS \cite{tigers}, a system to enumerate |
all Gr\"obner bases of affine toric ideals. |
all Gr\"obner bases of affine toric ideals. |
It can be used to determine the state polytope |
It can be used to determine the state polytope |
of a given affine toric ideal. |
of a given affine toric ideal. |
\item {\tt ox\_sm1\_gnuplot} |
\item {\tt ox\_gnuplot} |
A server for GNUPLOT, a famous plotting tool. |
A server for GNUPLOT, a famous plotting tool. |
\item {\tt ox\_math} |
\item {\tt ox\_math} |
A server for Mathematica. |
A server for Mathematica. |
\item {\tt OMproxy} |
\item {\tt OMproxy} |
A server for translation between CMO and OpenMath/XML expressions. |
A server for translation between CMO and OpenMath/XML expressions. |
It is written in Java. |
It is written in Java. |
|
This module provides Java classes OXmessage, CMO, and SM |
|
for the OpenXM protocol, too. |
\end{description} |
\end{description} |
In addition to these servers, Risa/Asir, Kan/sm1 and Mathematica |
In addition to these servers, Risa/Asir, Kan/sm1 and Mathematica |
can act as clients. |
can act as clients. |
Line 190 The OpenXM on MPI \cite{MPI} is currently running on R |
|
Line 234 The OpenXM on MPI \cite{MPI} is currently running on R |
|
as we will see in Section \ref{section:homog}. |
as we will see in Section \ref{section:homog}. |
In this paper, we discuss only on systems for TCP/IP |
In this paper, we discuss only on systems for TCP/IP |
to concentrate on the core part of our design. |
to concentrate on the core part of our design. |
|
Note that a C library interface is available for some servers. |
|
|
|
|
|
|