Download The CAS Server - User Manual (DRAFT)

Transcript
The CAS server – User Manual on one hand, computer algebra specialists that may use this software to expose their own
work using the Grid services technologies. On the other hand, this documentation is intended
to offer required technical details that would enable system administrators to implement
complicated symbolic computation distributed infrastructures by installing this software on
computational remote computational nodes, and integrating them in a single computational
architecture. While the CAS Server may be used in conjunction with the simple client
provided with the installation software package, more details are given for more advanced
users that may want to implement more complex infrastructures or custom clients.
Several reasons motivate the need for the CAS Server component. The first one is
interoperability in the context of distributed architectures. Symbolic computation is mostly
done using Computer Algebra Systems (CASs). These systems are standalone software
applications or software packages that can be integrated with existing CASs. There are two
main categories of such systems:
General purpose systems, designed to cover a large area of functionality required
by symbolic computing. While these systems offer a broad functionality, they may not
offer the best computation solutions to solve particular problems.
Special purpose systems that offer solution for particular areas of the symbolic
computing. These systems are especially designed to solve problems from a particular
area of interest. Their efficiency resides in the data representation model used and the
specially tailored algorithms.
Integration with distributed systems requires, at least, network interconnection capabilities
which most of the current CASs do not provide. Communication with sibling instances or
instances of other CAS systems may allow computer algebra specialists to distribute
computation and thus, use available computational resources optimally. Communication
capability is proven as an important feature for symbolic computing due to the nature of
symbolic computing:
Symbolic computing demands huge amounts of computing resources such as
internal memory, storage space and high number of computing cycles. When these
resources are not available on a single system, a common solution is to implement a
distributed architecture that is able to offer the required computational resources.
Symbolic computing problems may be sometimes decomposed in smaller
problems that can be solved separately. Using a distributed architecture to solve such
problems may dramatically decrease the time required to obtain solutions.
Having in mind the above requirements, CAS Server is a software package that offers the
ability to expose the functionality implemented by CASs using standard technologies
currently used to implement interoperable distributed systems, i.e. Web Services. The latest
developments in the Grid Services technology and its advantages recommend Grid Services
(Web services that comply with the WSRF standard) as the best technology to use for the
CAS Server component communication interface.
In order to make sure that the CAS Server is versatile enough to meet the expectations
and requirements of the symbolic computing specialists, several main objectives were
considered throughout the CAS Server design and implementation process:
Offer a standard interface that enables exposing capabilities of any CAS - These
capabilities may be accessed by a remote client by passing meaningful self explanatory calls
that must be understood and interpreted by the CAS. Depending on the capabilities of the
underlying CAS, the CAS Server offers two exposing flavors:
1. Functionality made accessible by parsing and executing SCSCP [1] compliant calls.
The SCSCP is a communication protocol specially designed for CAS to CAS
communication. All messages exchanged using SCSCP are encoded using OpenMath [2] and
have a specific format. The CAS Server is able to receive SCSCP compliant messages as
SCIEnce IeAt Team
3