In SCIEnce, we are connecting different Computer Algebra Systems in a standardized way. The protocol used is called SCSCP (Symbolic Computation Software Composability Protocol), and we have some prototypes running. The mathematical objects are marshalled in XML using OpenMath. This is a demo-session in MuPAD:
*----* MuPAD Pro 4.5.0 -- The Open Computer Algebra System
/| /|
*----* | Copyright (c) 1997 - 2008 by SciFace Software
| *--|-* All rights reserved.
|/ |/
*----* Licensed to: Peter Horn
// load the package
>> package("OpenMath"):
// define some (simple) maths task. hold is required to prevent
// MuPAD from immediately computing the result.
>> A := hold(hold(_plus)(7, 8 ))
hold(_plus)(7, 8 )
// There are scscp-servers running on some remote machines.
// Note: in the setup of the connection, the type of the system is NOT
// specified. They all talk SCSCP.
>> gap := SCSCP("machine1.somewhere.org", 26133):
>> kant := SCSCP("machine2.somewhere-else.org", 26133):
>> mupad := SCSCP("machine3.differentplace.org", 26133):
// now, ask GAP, KANT and the remote MuPAD to compute the task:
>> gap::compute(A)
15
>> kant::compute(A)
15
>> mupad::compute(A)
15
// a slightly more advanced example (extended euclidean algorithm)
>> B := hold(hold(gcdex)(12, 14, 20))
hold(gcdex)(12,14,20)
>> kant::compute(B)
[2, -1, 1, 0]
More to come