[BACK]Return to openxm-clients.tex CVS log [TXT][DIR] Up to [local] / OpenXM / doc / issac2000

Diff for /OpenXM/doc/issac2000/openxm-clients.tex between version 1.3 and 1.6

version 1.3, 2000/01/11 05:17:11 version 1.6, 2000/01/16 03:15:49
Line 1 
Line 1 
 % $OpenXM: OpenXM/doc/issac2000/openxm-clients.tex,v 1.2 2000/01/02 07:32:12 takayama Exp $  % $OpenXM: OpenXM/doc/issac2000/openxm-clients.tex,v 1.5 2000/01/15 06:26:06 takayama Exp $
   
 \section{OpenXM Clients}  \section{OpenXM Clients}
 (noryo and Ohara)  
 MEMO: keywords:  
 Asir and Mathematica clients.  
   
 \subsection{Risa/Asir}  \subsection{Risa/Asir}
   
 Risa/Asir provides a launcher to invoke an OpenXM server and to set up the  Risa/Asir provides a launcher to invoke an OpenXM server and to set up the
 communication between the server and itself. It also provides primitives  communication between the server and itself. As a client,
 for communication as built-in functions.  it provides many built-in functions for communication.
   
 \subsubsection{{\tt ox\_launch}}  \subsubsection{Setting up servers}
 {\tt ox\_launch} is a general purpose launcher.  This application  {\tt ox\_launch} is a general purpose launcher.  This application
 invokes a server and initiates the server-client communication  invokes a server and sets up the server-client communication
 according to the protocol stated in Section \ref{launcher}, then  according to the protocol stated in Section \ref{launcher}, then
 itself becomes a control server.  itself becomes a control server.
 Several facilities related to {{\tt ox\_launch}} are provided  Several facilities related to {{\tt ox\_launch}} are provided
Line 23  of functions to execute the port generation, {\tt bind
Line 20  of functions to execute the port generation, {\tt bind
 {\tt connect} and {\tt accept} operations on sockets individually.  {\tt connect} and {\tt accept} operations on sockets individually.
   
 \subsubsection{Manipulating servers}  \subsubsection{Manipulating servers}
   Fundamental operations on OpenXM servers are
 Fundamental operations on OpenXM servers are sending and receiving  exchange of {\tt OX} data and sending of {\tt SM} commands.
 of {\tt OX} data and sending of {\tt OX} commands. The following functions  The following functions
 are provided to execute these primitive operations:  are provided to execute these primitive operations:
 {\tt ox\_push\_cmo()} for pushing data to a server,  {\tt ox\_push\_cmo()} for pushing data to a server,
 {\tt ox\_push\_cmd()} for sending an {\tt SM} command to a server  {\tt ox\_push\_cmd()} for sending an {\tt SM} command to a server
Line 44  it receives the data from the stream.
Line 41  it receives the data from the stream.
 \item {\tt ox\_cmo\_rpc()}  \item {\tt ox\_cmo\_rpc()}
   
 After pushing the name of a function, arguments and the number of the  After pushing the name of a function, arguments and the number of the
 arguments to the stack of a server , it request the server to execute  arguments to the stack of a server, it requests the server to execute
 the function. It does not wait the termination of the function call.  the function. It does not wait the termination of the function call.
   
 \item {\tt ox\_reset()}  \item {\tt ox\_reset()}
Line 55  it completes the operations stated in Section \ref{con
Line 52  it completes the operations stated in Section \ref{con
 Furthermore {\tt ox\_select()} is provided to detect streams ready for  Furthermore {\tt ox\_select()} is provided to detect streams ready for
 reading. It is realized by the {\tt select()} system call and is used  reading. It is realized by the {\tt select()} system call and is used
 to avoid blocking on read operations.  to avoid blocking on read operations.
   
   \subsection{Mathematica}
   
   We provide an OpenXM client {\tt math2ox} written as an external module
   for Mathematica.  Our client communicates with Mathematica by MathLink and
   with an OpenXM server by OpenXM protocols.
   By using the module {\tt math2ox},
   we can call OpenXM servers from Mathematica;
   here is an example of a computation of the de Rham cohomology groups
   of ${\bf C}^2 \setminus V(x^3-y^2)$.
   {\footnotesize
   \begin{verbatim}
   In[1]:= Install["math2ox"]
   In[2]:= OxStart["../lib/sm1/bin/ox_sm1_forAsir"]
   In[3]:= OxExecute[" [(x^3-y^2) (x,y)] deRham "]
   In[4]:= OxPopString[]
   Out[4]=  [ 1 , 1 , 0 ]
   \end{verbatim}
   }
   
   \subsubsection{Functions}
   
   The {\tt math2ox} has the following functions.
   \begin{quote}
   {\tt OxStart[s\_String]} \\
   {\tt OxStartInsecure[s\_String]} \\
   {\tt OxExecuteString[s\_String]}  \\
   {\tt OxParse[s\_String]} \\
   {\tt OxGet[]} \\
   {\tt OxPopCMO[]} \\
   {\tt OxPopString[]} \\
   {\tt OxClose[]} \\
   {\tt OxReset[]}
   \end{quote}
   For example, {\tt OxPopCMO[]} executes the same operation
   as {\tt ox\_pop\_cmo()} in Risa/Asir.
   By using the {\tt OxParse[]} function, one can send suitable OX messages,
   written by the OX expression, to a server. OX expressions are
   Lisp-like expressions for OX messages and are defined
   in~\cite{noro-takayama}.
   The {\tt OxGet[]} receives an OX data message
   and returns its translation to an local object.

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.6

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