version 1.1, 2001/03/07 02:42:10 |
version 1.4, 2001/03/08 00:49:29 |
|
|
% $OpenXM$ |
% $OpenXM: OpenXM/doc/ascm2001/design-outline.tex,v 1.3 2001/03/07 07:34:49 takayama Exp $ |
|
|
\section{Design Outline} |
\section{Design Outline and OpenXM Request for Comments (OpenXM-RFC)} |
|
|
As Schefstr\"om clarified in \cite{schefstrom}, |
As Schefstr\"om clarified in \cite{schefstrom}, |
integration of tools and softwares has three dimensions: |
integration of tools and software 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 |
softwares or same softwares. |
software or same software. |
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 67 We thought that it is necessary to provide a data and |
|
Line 67 We thought that it is necessary to provide a data and |
|
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 profited from increasing number |
\item We have been profited from increasing number |
of mathematical softwares. |
of mathematical software. |
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, |
which are fine for intensive users of these systems. |
which are fine for intensive users of these systems. |
However, a unified system will be more convenient |
However, a unified system will be more convenient |
for users who want to explore a new area of mathematics with these |
for users who want to explore a new area of mathematics with these |
softwares or users who need these systems only occasionally. |
software 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. |
software. |
However, it might be just a dream without realizability. |
However, it might be just a dream without realizability. |
We want to build a prototype of such an open system by using |
We want to build a prototype of such an open system by using |
existing standards, technologies and several mathematical softwares. |
existing standards, technologies and several mathematical software. |
We want to see how far we can go with this approach. |
We want to see how far we can go with this approach. |
\end{enumerate} |
\end{enumerate} |
|
|
Motivated with these, we started the OpenXM project with the following |
Motivated with these, we started the OpenXM project with the following |
fundamental architecture. |
fundamental architecture, which is currently described in |
|
OpenXM-RFC 100 proposed standard %% ``draft standard'' and ``standard'' |
|
``Design and Implementation of OpenXM client-server model and common |
|
mathematical object format''. |
\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 95 Among the three types, |
|
Line 98 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 {\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. |
\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 softwares are wrapped with this stack machine. |
Existing mathematical software 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} |
\item The target must have a serialized interface such as a character based |
\item The target must have a serialized interface such as a character based |
interface. |
interface. |
\item An output of the target must be understandable for computer programs; |
\item An output of the target must be understandable for computer programs; |
it should follow a grammar that can be parsed with other softwares. |
it should follow a grammar that can be parsed with other software. |
\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 not only stack machine commands, |
it may accept and execute not only stack machine commands, |
Line 122 then the server executes the asir command \\ |
|
Line 126 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 implemented on above fundamental architecture. |
OpenXM package implements the OpenXM-RFC 100 \cite{ox-rfc-100} |
|
and 101 \cite{ox-rfc-101} based on |
|
the above fundamental architecture. |
|
In this paper, we discuss mainly on systems implementing |
|
OpenXM-RFC 100 and 101 on TCP/IP. |
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 through TCP/IP: |
\begin{verbatim} |
\begin{verbatim} |
P = sm1_start(); |
P = sm1_start(); |
ox_push_cmo(P,1); ox_push_cmo(P,1); |
ox_push_cmo(P,1); ox_push_cmo(P,1); |
Line 132 the Asir client to the {\tt ox\_sm1} server: |
|
Line 140 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 OpenXM package is implemented on the OpenXM for TCP/IP, |
Our project of integrating mathematical software |
which uses the client-server model. |
systems is taking the ``RFC'' approach, which has been |
|
used to develop internet protocols. |
|
We think that ``RFC'' approach is an excellent way and |
|
we hope that other groups, who are working on standard protocols, |
|
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}. |
In this paper, we discuss only on systems for TCP/IP |
We are now preparing the OpenXM-RFC 102 ``Mathematical communication |
to concentrate on the core part of our design. |
on MPI'' (draft protocol) |
|
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. |
|
|
|
|
|
|
|
|
|
|
|
|