Annotation of OpenXM/doc/calc2000p/calc2000.tex, Revision 1.2
1.2 ! noro 1: %$OpenXM: OpenXM/doc/calc2000p/calc2000.tex,v 1.1.1.1 2000/06/27 06:47:52 noro Exp $
1.1 noro 2: %% You need acmconf.cls and flushend.sty to compile this file.
3: %% They may be obtained from
4: %% http://riksun.riken.go.jp/archives/tex-archive/macros/latex/contrib/supported/acmconf/
5: \documentclass[notitlepage]{book}
6: \usepackage{behringer1}
7: %\documentclass{article}
8: %% \CopyrightText{\copyright 2000, }
9: \IfFileExists{graphicx.sty}{\usepackage{graphicx}}{}
10: \IfFileExists{epsfig.sty}{\usepackage{epsfig}}{}
11: %\ConferenceName{ISSAC 2000, St. Andrews, UK, 2000}
12: %\ConferenceShortName{ISSAC2000}
13: \def\OpenXM{{\rm OpenXM\ }}
14:
15: \begin{document}
16: %\date{January 16, 2000}
17: \date{}
18: \title{OpenXM
19: --- an Open System \\ to Integrate Mathematical Software}
20: \author{
21: {\hfil}
22: \and
23: {Masahide Maekawa \quad Yukio Okutani}\\
24: {Nobuki Takayama \quad Yasushi Tamura}\\
25: Kobe University
26: \and
27: {\hfil}
28: \and
29: {Masayuki Noro}\\
30: {Fujitsu Labs}
31: \and
32: {Katsuyoshi Ohara}\\
33: {Kanazawa University}
34: }
35: \maketitle
36:
1.2 ! noro 37: OpenXM (Open message eXchange protocol for Mathematics)
! 38: is a project aiming to integrate data, control and user interfaces
! 39: with the following fundamental architecture.
! 40: \begin{enumerate}
! 41: \item Communication is an exchange of {\it OX (OpenXM) messages},
! 42: which are classified into three types:
! 43: DATA, COMMAND, and SPECIAL.
! 44: {\it OX data messages} wrap mathematical data.
! 45: We use standards of mathematical data formats such as OpenMath and MP
! 46: as well as our own data format {\it CMO}
! 47: ({\it Common Mathematical Object format}).
! 48: \item Each server, which provides services to other processes, is a stack machine. The stack machine is called the {\it OX stack machine}.
! 49: Existing mathematical software tools are wrapped with this stack machine.
! 50: \item Any server may have a hybrid interface;
! 51: it may accept and execute not only stack machine commands,
! 52: but also its original command sequences.
! 53: For example,
! 54: if we send the following string to the {\tt ox\_asir} server
! 55: (OpenXM server based on Risa/Asir)\\
! 56: \verb+ "fctr(x^100-y^100);"+\\
! 57: and call the stack machine command\\
! 58: \verb+ SM_executeStringByLocalParser+\\
! 59: then the server executes the asir command
! 60: \verb+fctr(x^100-y^100);+
! 61: (factorize $x^{100}-y^{100}$ over ${\bf Q}$)
! 62: and pushes the result onto the stack.
! 63: \item Network transparent supports for controlling servers are provided.
! 64: For example OpenXM defines a robust reset procedure to restart computations
! 65: without any confusion in I/O buffers.
! 66: It is very useful for debugging programs running on distributed environment.
! 67: \end{enumerate}
! 68: %OpenXM has been designed and implemented from experimental mathematician's
! 69: %point of view, i.e.,
! 70: OpenXM is supposed to be used to connect mathematical
! 71: softwares in the academic community and to test new ideas in distributed
! 72: algorithms in mathematics.
! 73: Currently the following servers are available in the OpenXM package.
! 74:
! 75: \begin{description}
! 76: \item{\tt ox\_asir}
! 77: A server for Risa/Asir, a general-purpose computer algebra
! 78: system. It provides almost
! 79: all functionalities of Risa/Asir such as polynomial factorization,
! 80: Gr\"obner basis computation and primary ideal decomposition.
! 81: \item{\tt ox\_sm1}
! 82: A server for Kan/sm1, a system for computation in
! 83: the ring of differential operators including computation of Gr\"obner bases
! 84: and cohomology groups.
! 85: \item {\tt ox\_phc}
! 86: A server for PHC pack, a general-purpose solver for
! 87: polynomial systems by homotopy continuation.
! 88: \item {\tt ox\_tigers}
! 89: A server for TiGERS, a system to enumerate
! 90: all Gr\"obner bases of affine toric ideals.
! 91: It can be used to determine the state polytope
! 92: of a given affine toric ideal.
! 93: \item {\tt ox\_gnuplot}
! 94: A server for GNUPLOT, a famous plotting tool.
! 95: \item {\tt ox\_math}
! 96: A server for Mathematica.
! 97: \item {\tt OMproxy}
! 98: A server for translation between CMO and OpenMath/XML expressions.
! 99: It is written in Java.
! 100: This module provides Java classes OXmessage, CMO, and SM
! 101: for the OpenXM protocol, too.
! 102: \end{description}
! 103: In addition to these servers, Risa/Asir, Kan/sm1 and Mathematica
! 104: can act as clients.
! 105: For example, the following is a command sequence to ask $1+1$ from
! 106: the Asir client to the {\tt ox\_sm1} server:
! 107: \begin{verbatim}
! 108: P = sm1_start(); ox_push_cmo(P,1); ox_push_cmo(P,1);
! 109: ox_execute_string(P,"add"); ox_pop_cmo(P);
! 110: \end{verbatim}
! 111: The OpenXM package is implemented on the OpenXM for TCP/IP,
! 112: which uses the client-server model.
! 113: The OpenXM on MPI is currently tested on Risa/Asir,
! 114: where collective operations such as broadcast and reduction
! 115: are implemented to achieve a real speedup for massively parallel cases.
! 116: A C library interface is available for some servers.
! 117: The source code and binary packages are distributed from
! 118: {\tt http://www.openxm.org}.
! 119: The current version is 1.1.2.
! 120: Documents and a full paper including references are available
! 121: from this cite, too.
1.1 noro 122: \end{document}
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>