[BACK]Return to design-outline.tex CVS log [TXT][DIR] Up to [local] / OpenXM / doc / calc2000p

Annotation of OpenXM/doc/calc2000p/design-outline.tex, Revision 1.2

1.2     ! noro        1: % $OpenXM: OpenXM/doc/calc2000p/design-outline.tex,v 1.1.1.1 2000/06/27 06:47:52 noro Exp $
1.1       noro        2:
                      3: OpenXM (Open message eXchange protocol for Mathematics)
                      4: is a project aiming to integrate data, control and user interfaces
                      5: with the following fundamental architecture.
                      6: \begin{enumerate}
                      7: \item Communication is an exchange of {\it OX (OpenXM) messages},
                      8: which are classified into three types:
                      9: DATA, COMMAND, and SPECIAL.
                     10: {\it OX data messages} wrap mathematical data.
                     11: We use standards of mathematical data formats such as OpenMath and MP
                     12: as well as our own data format {\it CMO}
                     13: ({\it Common Mathematical Object format}).
                     14: \item Each server, which provides services to other processes, is a stack machine. The stack machine is called the {\it OX stack machine}.
                     15: Existing mathematical software tools are wrapped with this stack machine.
                     16: \item Any server may have a hybrid interface;
                     17: it may accept and execute not only stack machine commands,
                     18: but also its original command sequences.
                     19: For example,
                     20: if we send the following string to the {\tt ox\_asir} server
                     21: (OpenXM server based on Risa/Asir)\\
                     22: \verb+            "fctr(x^100-y^100);"+\\
                     23: and call the stack machine command\\
                     24: \verb+            SM_executeStringByLocalParser+\\
                     25: then the server executes the asir command
                     26: \verb+fctr(x^100-y^100);+
                     27: (factorize $x^{100}-y^{100}$ over ${\bf Q}$)
                     28: and pushes the result onto the stack.
                     29: \item Network transparent supports for controlling servers are provided.
                     30: For example OpenXM defines a robust reset procedure to restart computations
                     31: without any confusion in I/O buffers.
                     32: It is very useful for debugging programs running on distributed environment.
                     33: \end{enumerate}
                     34: OpenXM package  is implemented on above fundamental architecture.
                     35: Currently the following servers are available in the OpenXM package.
                     36:
                     37: \begin{description}
                     38: \item{\tt ox\_asir}
                     39: A server for Risa/Asir, a general-purpose computer algebra
                     40: system. It provides almost
                     41: all functionalities of Risa/Asir such as polynomial factorization,
                     42: Gr\"obner basis computation and primary ideal decomposition.
                     43: \item{\tt ox\_sm1}
                     44: A server for Kan/sm1, a system for computation in
                     45: the ring of differential operators including computation of Gr\"obner bases
                     46: and cohomology groups.
                     47: \item {\tt ox\_phc}
                     48: A server for PHC pack, a general-purpose solver for
                     49: polynomial systems by homotopy continuation.
                     50: \item {\tt ox\_tigers}
                     51: A server for TiGERS, a system to enumerate
                     52: all Gr\"obner bases of affine toric ideals.
                     53: It can be used to determine the state polytope
                     54: of a given affine toric ideal.
                     55: \item {\tt ox\_gnuplot}
                     56: A server for GNUPLOT, a famous plotting tool.
                     57: \item {\tt ox\_math}
                     58: A server for Mathematica.
                     59: \item {\tt OMproxy}
                     60: A server for translation between CMO and OpenMath/XML expressions.
                     61: It is written in Java.
                     62: This module provides Java classes OXmessage, CMO, and SM
                     63: for the OpenXM protocol, too.
                     64: \end{description}
                     65: In addition to these servers, Risa/Asir, Kan/sm1 and Mathematica
                     66: can act as clients.
                     67: For example, the following is a command sequence to ask $1+1$ from
                     68: the Asir client to the {\tt ox\_sm1} server:
                     69: \begin{verbatim}
                     70:   P = sm1_start(); ox_push_cmo(P,1); ox_push_cmo(P,1);
                     71:   ox_execute_string(P,"add"); ox_pop_cmo(P);
                     72: \end{verbatim}
                     73: The OpenXM package is implemented on the  OpenXM for TCP/IP,
                     74: which uses the client-server model.
                     75: The OpenXM on MPI is currently tested on Risa/Asir,
                     76: where collective operations such as broadcast and reduction
                     77: are implemented to achieve a real speedup for massively parallel cases.
                     78: A C library interface is available for some servers.
1.2     ! noro       79: The source code and binary packages are distributed from
        !            80: {\tt http://www.openxm.org}.
        !            81: The current version is 1.1.2.
        !            82: Documents and a full paper including references are available
        !            83: from this cite, too.
1.1       noro       84:
                     85: xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
                     86: xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
                     87:
                     88:
                     89:
                     90:

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>