next up previous
Next: CMO Primitive object Up: Design and Implementation of Previous: Design and Implementation of

Introduction

OpenXM is a free, or Open Source, infrastructure for mathematical softwares. It provides methods and protocols for interactive distributed computation and for integrating mathematical softwares. OpenXM package is a set of softwares that supports OpenXM protocols. It is currently a collection of softwares Risa/Asir [3], Kan/sm1 [7], PHC pack [8] , GNUPLOT, Mathematica interface, and OpenMath/XML [4] translator.

We have been profited from increasing number of mathematical softwares. These are usually ``expert'' systems in one area of mathematics such as ideals, groups, numbers, polytopes, and so on. They have their own interfaces and data formats, which are fine for intensive users of these systems. However, a unified system will be more convenient for users who want to explore a new area of mathematics with these softwares or users who need these systems only occasionally. OpenXM provides not only data representation and communication protocols but also programming guidelines to develop cooperative applications. One will be able to concentrate on developing mathematical algorithms with such guidelines. Our design goals are (1) simpleness, (2) extensibility, (3) easiness of implementation, (4) practicality, and (5) robustness.

We believe that an open integrated system is a future of mathematical softwares. However, it might be just a dream without realizability. We want to build a prototype of such an open system by using existing standards, technologies and several mathematical softwares. We want to see how far we can go with this approach.

It is not an obvious problem to consider how mathematical objects are represented and communicated. It may be similar to trying to create new mathematical symbols. We have the decimal notation to represent numbers, the symbol dxto represent a differential, and $ \longrightarrow $ to represent a mapping. One should imagine how we are benefited from these notations.

In OpenXM, communication is an exchange of messages. The messages are classified into three types: DATA, COMMAND, and SPECIAL. They are called OX (OpenXM) messages. Among the three types, OX data messages wrap mathematical data. We use standards of mathematical data formats such as OpenMath and MP as well as our own data format CMO (Common Mathematical Object format). Servers, which provide services to other processes, are stack machines. The stack machine is called the OX stack machine. Existing mathematical softwares are wrapped with this stack machine. OX stack machines work in the asynchronous mode which is similar to X servers. That is, OpenXM server won't send messages to the client unless it is requested to send them. It is also possible to emulate RPC and a web server for MCP [9] on our asynchronous OX stack machines.

A system xxx conforming to OpenXM is called open xxx. For example Asir conforming to OpenXM is called open Asir, and kan/sm1 conforming to OpenXM is called open sm1.


next up previous
Next: CMO Primitive object Up: Design and Implementation of Previous: Design and Implementation of
Nobuki Takayama 平成12年1月25日