[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.1

1.1     ! noro        1: % $OpenXM$
        !             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: See {\tt http://www.openxm.org/} for the details.
        !            37:
        !            38: \begin{description}
        !            39: \item{\tt ox\_asir}
        !            40: A server for Risa/Asir, a general-purpose computer algebra
        !            41: system. It provides almost
        !            42: all functionalities of Risa/Asir such as polynomial factorization,
        !            43: Gr\"obner basis computation and primary ideal decomposition.
        !            44: \item{\tt ox\_sm1}
        !            45: A server for Kan/sm1, a system for computation in
        !            46: the ring of differential operators including computation of Gr\"obner bases
        !            47: and cohomology groups.
        !            48: \item {\tt ox\_phc}
        !            49: A server for PHC pack, a general-purpose solver for
        !            50: polynomial systems by homotopy continuation.
        !            51: \item {\tt ox\_tigers}
        !            52: A server for TiGERS, a system to enumerate
        !            53: all Gr\"obner bases of affine toric ideals.
        !            54: It can be used to determine the state polytope
        !            55: of a given affine toric ideal.
        !            56: \item {\tt ox\_gnuplot}
        !            57: A server for GNUPLOT, a famous plotting tool.
        !            58: \item {\tt ox\_math}
        !            59: A server for Mathematica.
        !            60: \item {\tt OMproxy}
        !            61: A server for translation between CMO and OpenMath/XML expressions.
        !            62: It is written in Java.
        !            63: This module provides Java classes OXmessage, CMO, and SM
        !            64: for the OpenXM protocol, too.
        !            65: \end{description}
        !            66: In addition to these servers, Risa/Asir, Kan/sm1 and Mathematica
        !            67: can act as clients.
        !            68: For example, the following is a command sequence to ask $1+1$ from
        !            69: the Asir client to the {\tt ox\_sm1} server:
        !            70: \begin{verbatim}
        !            71:   P = sm1_start(); ox_push_cmo(P,1); ox_push_cmo(P,1);
        !            72:   ox_execute_string(P,"add"); ox_pop_cmo(P);
        !            73: \end{verbatim}
        !            74: The OpenXM package is implemented on the  OpenXM for TCP/IP,
        !            75: which uses the client-server model.
        !            76: The OpenXM on MPI is currently tested on Risa/Asir,
        !            77: where collective operations such as broadcast and reduction
        !            78: are implemented to achieve a real speedup for massively parallel cases.
        !            79: A C library interface is available for some servers.
        !            80:
        !            81: xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
        !            82: xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
        !            83: xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
        !            84: xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
        !            85:
        !            86:
        !            87:
        !            88:

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