version 1.3, 2001/03/07 07:34:49 |
version 1.6, 2001/03/08 07:09:02 |
|
|
% $OpenXM: OpenXM/doc/ascm2001/design-outline.tex,v 1.2 2001/03/07 06:54:40 takayama Exp $ |
% $OpenXM: OpenXM/doc/ascm2001/design-outline.tex,v 1.5 2001/03/08 04:24:09 takayama Exp $ |
|
|
\section{Design Outline and OpenXM Request for Comments (OpenXM-RFC)} |
\section{Design Outline and OpenXM Request for Comments (OpenXM-RFC)} |
|
|
Line 36 OpenXM (Open message eXchange protocol for Mathematics |
|
Line 36 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 The proposed standards mentioned above such as OpenMath |
|
should be tested on various mathematical software systems, |
|
but the testing has not been enough in comparison with |
|
internet protocols. |
\item Noro has been involved in the development of |
\item Noro has been involved in the development of |
a 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 |
Line 86 We want to see how far we can go with this approach. |
|
Line 90 We want to see how far we can go with this approach. |
|
|
|
Motivated with these, we started the OpenXM project with the following |
Motivated with these, we started the OpenXM project with the following |
fundamental architecture, which is currently described in |
fundamental architecture, which is currently described in |
OpenXM RFC 100 proposed standard %% ``draft standard'' and ``standard'' |
OpenXM-RFC 100 proposed standard %% ``draft standard'' and ``standard'' |
``Design and Implementation of OpenXM client-server model and common |
``Design and Implementation of OpenXM client-server model and common |
mathematical object format''. |
mathematical object format'' \cite{ox-rfc-100}. |
\begin{enumerate} |
\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: |
Line 99 Among the three types, |
|
Line 103 Among the three types, |
|
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 {\it CMO} |
as well as our own data format {\it CMO} |
({\it Common Mathematical Object format}), |
({\it Common Mathematical Object format}), |
which can be described in XML. |
which can be expressed in terms of XML. |
\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}. |
Existing mathematical software are wrapped with this stack machine. |
Existing mathematical software systems are wrapped with this stack machine. |
Minimal requirements for a target software wrapped with the OX stack machine |
Minimal requirements for a target software wrapped with the OX stack machine |
are as follows: |
are as follows: |
\begin{enumerate} |
\begin{enumerate} |
Line 117 it may accept and execute not only stack machine comma |
|
Line 121 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) \\ |
(OpenXM server of 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 126 then the server executes the asir command \\ |
|
Line 130 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 implements the OpenXM-RFC 100 and 101 based on |
OpenXM package implements the OpenXM-RFC 100 \cite{ox-rfc-100} |
|
and 101 \cite{ox-rfc-101} based on |
the above fundamental architecture. |
the above fundamental architecture. |
In this paper, we discuss mainly on systems implementing |
In this paper, we discuss mainly on systems implementing |
OpenXM-RFC 100 and 101 on TCP/IP. |
OpenXM-RFC 100 and 101 on TCP/IP. |
Line 137 the Asir client to the {\tt ox\_sm1} server through TC |
|
Line 142 the Asir client to the {\tt ox\_sm1} server through TC |
|
ox_push_cmo(P,1); ox_push_cmo(P,1); |
ox_push_cmo(P,1); ox_push_cmo(P,1); |
ox_execute_string(P,"add"); ox_pop_cmo(P); |
ox_execute_string(P,"add"); ox_pop_cmo(P); |
\end{verbatim} |
\end{verbatim} |
Here, {\tt ox\_sm1} is an OpenXM server based on Kan/sm1. |
Here, {\tt ox\_sm1} is an OpenXM server of Kan/sm1. |
|
|
Our project of integrating mathematical software |
Our project of integrating mathematical software |
systems is taking the ``RFC'' approach, which has been |
systems is taking the ``RFC'' approach, which has been |
used to develop internet protocols. |
used to develop internet protocols. |
We think that ``RFC'' approach is an excellent way and |
We think that ``RFC'' approach is an excellent way and |
we hope that other groups, who are working on standard protocols, |
we hope that other groups, who are working on standard protocols, |
take this ``RFC'' approach. |
take this ``RFC'' approach, too. |
|
|
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}. |
We are now preparing the OpenXM RFC 102 ``Mathematical communication |
We are now preparing the OpenXM-RFC 102 ``Mathematical communication |
on MPI'' (draft protocol) |
on MPI'' (draft protocol) |
based on our experiments on MPI. |
based on our experiments on MPI. |
|
|
|
In the rest of the paper, we abbreviate |
|
OpenXM-RFC 100 and 101 to OpenXM if no confusion arises. |
|
|
|
|
|
|