version 1.9, 2000/01/15 12:18:42 |
version 1.10, 2000/01/16 02:31:49 |
|
|
% $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} |
\section{Design Outline} |
|
|
Line 24 and a method to interrupt computations on servers from |
|
Line 24 and a method to interrupt computations on servers from |
|
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. |
NetSolve \cite{netsolve}, OpenMath$+$MCP, MP$+$MCP \cite{iamc}, |
NetSolve \cite{netsolve}, OpenMath$+$MCP, MP$+$MCP \cite{iamc}, |
and MathLink \cite{mathlink} provide both data and control integration. |
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. |
own design goals. |
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 followings. |
with design goals motivated by the followings. |
\begin{enumerate} |
\begin{enumerate} |
\item Noro has involved in the development of 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}. |
An interface for interactive distributed computations was introduced |
An interface for interactive distributed computations was introduced |
to Risa/Asir |
to Risa/Asir |
%% version 950831 released |
%% version 950831 released |
in 1995. |
in 1995. |
The model of computation was RPC (remote procedure call) |
The model of computation was RPC (remote procedure call). |
and it had its own serialization. |
|
A robust interruption protocol was provided |
A robust interruption protocol was provided |
by two communication channels |
by two communication channels |
like the File Transfer Protocol (ftp). |
like the File Transfer Protocol (ftp). |
|
|
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 We have been profitted by increasing number |
\item We have been profitted from increasing number |
of mathematical softwares. |
of mathematical softwares. |
These are usually ``expert'' systems in 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, |
It is fine for intensive users of these systems. |
which are fine for intensive users of these systems. |
However, for users who want to explore a new area of mathematics with these |
However, a unified system will be more convenient |
softwares or users who need these systems only occasionally, |
for users who want to explore a new area of mathematics with these |
a unified system will be more convenient. |
softwares or users who need these systems only occasionally. |
|
|
\item We believe that an open integrated system is a future of mathematical |
\item We believe that an open integrated system is a future of mathematical |
softwares. |
softwares. |
Line 91 fundamental architecture. |
|
Line 90 fundamental architecture. |
|
\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. |
They are called OX (OpenXM) messages, |
They are called OX (OpenXM) messages. |
|
Among the three types, |
{\it OX data messages} wrap mathematical data. |
{\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 |
as well as our own data format |
as well as our own data format {\it CMO} |
({\it CMO --- Common Mathematical Object format}). |
({\it Common Mathematical Object format}). |
\item Servers, which provide services to other processes, are stack machines. |
\item Servers, which provide services to other processes, are stack machines. |
The stack machine is called the |
The stack machine is called the |
{\it OX stack machine}. |
{\it OX stack machine}. |
|
|
it should follow a grammar 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; |
\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, |
For example, |
if we send the following string to {\tt ox\_asir} server |
if we send the following string to {\tt ox\_asir} server |
(OpenXM server based on Risa/Asir) \\ |
(OpenXM server based on Risa/Asir) \\ |
Line 121 then the server executes the asir command \\ |
|
Line 122 then the server executes the asir command \\ |
|
(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. |
\end{enumerate} |
\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 |
For example, the following is a command sequence to ask $1+1$ from |
the Asir client to the {\tt ox\_sm1} server: |
the Asir client to the {\tt ox\_sm1} server: |
\begin{verbatim} |
\begin{verbatim} |
Line 131 the Asir client to the {\tt ox\_sm1} server: |
|
Line 132 the Asir client to the {\tt ox\_sm1} server: |
|
\end{verbatim} |
\end{verbatim} |
Here, {\tt ox\_sm1} is an OpenXM server based on Kan/sm1. |
Here, {\tt ox\_sm1} is an OpenXM server based on Kan/sm1. |
|
|
The current system, OpenXM on TCP/IP, |
The current OpenXM package is implemented on the OpenXM for TCP/IP, |
uses the client-server model. |
which uses the client-server model. |
The OpenXM on MPI \cite{MPI} is currently running on Risa/Asir |
The OpenXM on MPI \cite{MPI} is currently running on Risa/Asir |
as we will see in Section \ref{section:homog}. |
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. |
|
|
|
|
|
|
|
|
|
|