version 1.4, 2001/03/08 00:49:29 |
version 1.5, 2001/03/08 04:24:09 |
|
|
% $OpenXM: OpenXM/doc/ascm2001/design-outline.tex,v 1.3 2001/03/07 07:34:49 takayama Exp $ |
% $OpenXM: OpenXM/doc/ascm2001/design-outline.tex,v 1.4 2001/03/08 00:49:29 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 We should test the proposed standards mentioned above on |
|
various mathematical software systems, but the testing has not been |
|
enough. |
\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 88 Motivated with these, we started the OpenXM project wi |
|
Line 91 Motivated with these, we started the OpenXM project wi |
|
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 102 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 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) \\ |
(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 138 the Asir client to the {\tt ox\_sm1} server through TC |
|
Line 141 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 |