ICMicm.mcs.kent.edu › research › IAMC.icm › iamcslide.pdf · ICM ' & $ % Goals and Motiv...

35

Transcript of ICMicm.mcs.kent.edu › research › IAMC.icm › iamcslide.pdf · ICM ' & $ % Goals and Motiv...

Page 1: ICMicm.mcs.kent.edu › research › IAMC.icm › iamcslide.pdf · ICM ' & $ % Goals and Motiv ations Man y kinds of info and services are easily accessible on the In ternet Sharing

ICM'

&

$

%

I A M C

Paul S. Wang

Institute for Computational Mathematics

Kent State University

[email protected]

http://monkey.mcs.kent.edu/~pwang

iamc-1

Page 2: ICMicm.mcs.kent.edu › research › IAMC.icm › iamcslide.pdf · ICM ' & $ % Goals and Motiv ations Man y kinds of info and services are easily accessible on the In ternet Sharing

ICM'

&

$

%

Contents

� Goals and Motivations

� Overview of IAMC Architecture

� MCP (Mathematical Computation Protocol)

� IAMC client { a MCP client

� IAMC server { a MCP server

� IAMC client-server communication

� IAMC Server to compute engine interface

iamc-2

Page 3: ICMicm.mcs.kent.edu › research › IAMC.icm › iamcslide.pdf · ICM ' & $ % Goals and Motiv ations Man y kinds of info and services are easily accessible on the In ternet Sharing

ICM'

&

$

%

Mathematics on the Web

� Table of integrals (socket connection, UC Berkeley)

� Demos on SymbolicNet (CGI, X, Kent State)

� MathML (W3 Consortium)

� NetSolve (U. Tennessee and Oak Ridge National Lab)

� Techexplorer (IBM)

� WebEQ (Geometry Technologies Inc)

iamc-3

Page 4: ICMicm.mcs.kent.edu › research › IAMC.icm › iamcslide.pdf · ICM ' & $ % Goals and Motiv ations Man y kinds of info and services are easily accessible on the In ternet Sharing

ICM'

&

$

%

Goals and Motivations

� Many kinds of info and services are easily accessible on the Internet

� Sharing of mathematical/scienti�c results is lagging behind

� To make math-oriented data and services easily accessible on the Internet {

directly, via Web, and by email.

� To allow remote compute servers usable almost like local programs

� To allow e�ective and e�cient communication of mathematical data over the

Internet

� To make it possible to heterogeneous compute servers to exchange

computational results and perform further computation on them.

� To make IAMC compatible with prevailing technologies

� To make IAMC convenient, simple to use, and easy to learn.

iamc-4

Page 5: ICMicm.mcs.kent.edu › research › IAMC.icm › iamcslide.pdf · ICM ' & $ % Goals and Motiv ations Man y kinds of info and services are easily accessible on the In ternet Sharing

ICM'

&

$

%

IAMC Architecture Overview

File

Infix Math

USER

Local Workstation Remote Host

Compute Engine

Info-Obj

ViewerResult

email

IAMC Client

MCP

serverIAMC

MC Protocol

iamc-5

Page 6: ICMicm.mcs.kent.edu › research › IAMC.icm › iamcslide.pdf · ICM ' & $ % Goals and Motiv ations Man y kinds of info and services are easily accessible on the In ternet Sharing

ICM'

&

$

%

IAMC Applications

� Use of remote computation services

� Access remote scienti�c databases

� Making parallel/super computing accessible

� Distance learning

� Computing via NetPC for high school or occasional users.

� Problem solving environments (PSE)

iamc-6

Page 7: ICMicm.mcs.kent.edu › research › IAMC.icm › iamcslide.pdf · ICM ' & $ % Goals and Motiv ations Man y kinds of info and services are easily accessible on the In ternet Sharing

ICM'

&

$

%

Leveraging Prevailing Technologies

� Internet and the Web

� MathML { as part of HTML

� MP { a binary math data encoding/transfer protocol

� OpenMath { evolving math representation and semantics `standard' largely

by the European Maple group.

� Java { platform independence and network/GUI able

� Java RMI and/or Corba { for distributed applications

iamc-7

Page 8: ICMicm.mcs.kent.edu › research › IAMC.icm › iamcslide.pdf · ICM ' & $ % Goals and Motiv ations Man y kinds of info and services are easily accessible on the In ternet Sharing

ICM'

&

$

%

IAMC Service Overview

� Web-based | IAMC service providers will publish and make their services

available with Web documents

� IAMC addresses | links to IAMC servers in the form

iamc://hostname:port/service-id

http://hostname/.../cgi-bin/imac-gateway

� IAMC clients are clients that can be launched independently or by Web

browsers.

iamc-8

Page 9: ICMicm.mcs.kent.edu › research › IAMC.icm › iamcslide.pdf · ICM ' & $ % Goals and Motiv ations Man y kinds of info and services are easily accessible on the In ternet Sharing

ICM'

&

$

%

� An IAMC server will perform the service

� Connection between IAMC client can be TCP/IP, persistent HTTP, regular

HTTP/CGI, or email based.

� IAMC client may perform simple one-transaction computations, longer

connection-based computations, connect to multiple servers at the same time.

� IACM server may start and control a separate compute engine.

iamc-9

Page 10: ICMicm.mcs.kent.edu › research › IAMC.icm › iamcslide.pdf · ICM ' & $ % Goals and Motiv ations Man y kinds of info and services are easily accessible on the In ternet Sharing

ICM'

&

$

%

Email-based IAMC

� Request format:

Subject: IAMC REQUEST version

Content-Type: application/x-mp

Transfer-Encoding: base64

To: serverid.IAMC@host

� Response format:

Subject: IAMC RESPONSE status

Content-Type: application/x-mp

Transfer-Encoding: base64

To: reply address

iamc-10

Page 11: ICMicm.mcs.kent.edu › research › IAMC.icm › iamcslide.pdf · ICM ' & $ % Goals and Motiv ations Man y kinds of info and services are easily accessible on the In ternet Sharing

ICM'

&

$

%

CGI-based IAMC

� Use HTTP POST query

� Use Content-Type: application/x-mp

� Send body of query/response without encoding

iamc-11

Page 12: ICMicm.mcs.kent.edu › research › IAMC.icm › iamcslide.pdf · ICM ' & $ % Goals and Motiv ations Man y kinds of info and services are easily accessible on the In ternet Sharing

ICM'

&

$

%

IAMC Client Design

Subsystem

Editor/Parser

Network

Display

Help

Server Control

UI Control

Exp Store

email Control

IAMC Servers

MCP

File Control

File System

IAMC ClientJava Application

MathML, URL, .gif, latex, html ...Infix Input

Manager

iamc-12

Page 13: ICMicm.mcs.kent.edu › research › IAMC.icm › iamcslide.pdf · ICM ' & $ % Goals and Motiv ations Man y kinds of info and services are easily accessible on the In ternet Sharing

ICM'

&

$

%

IAMC Client Responsibilities

� Receives input from user (in�x, menu, button, ...), and/or �le

� Produces display-able results: MathML, points, .gif, URL, HTML, in�x,

pre�x, latex, ...

� Controls one-time transaction or user session

� Provides server-supplied help/documentation info to user

� Reads/edits in�x math

� Keeps track of user input and history

� Stores-retrieves �les from local �le system

� Connects to one or more remote servers

� Communicates with remote server in MCP

� Provides email interface

iamc-13

Page 14: ICMicm.mcs.kent.edu › research › IAMC.icm › iamcslide.pdf · ICM ' & $ % Goals and Motiv ations Man y kinds of info and services are easily accessible on the In ternet Sharing

ICM'

&

$

%

Connecting to an IAMC Server

IAMCServer

inetd

iamc://hostxyz/server-idxyz

server-id iamcd

MCP

ClientIAMC

iamc-14

Page 15: ICMicm.mcs.kent.edu › research › IAMC.icm › iamcslide.pdf · ICM ' & $ % Goals and Motiv ations Man y kinds of info and services are easily accessible on the In ternet Sharing

ICM'

&

$

%

IAMC Server Design

IAMC Server

Java Application

Standard Input Standard Output

Response Handler

Log/Stat

MP Exps

File System

MCP

Request Handler

Manager

ComputeEngine

IAMC Client or Agent

iamc-15

Page 16: ICMicm.mcs.kent.edu › research › IAMC.icm › iamcslide.pdf · ICM ' & $ % Goals and Motiv ations Man y kinds of info and services are easily accessible on the In ternet Sharing

ICM'

&

$

%

IAMC Server Responsibilities

� Receives IAMC request from client from stdin

� Sends IAMC response to client to stdout

� Performs requested operation or computation

� Maintains state

� Provides user help and usage documentation through client

� Keeps log of operations, errors, and statistics

� Speaks MC protocol

� Spawned by iamcd, cgi, or email processing.

iamc-16

Page 17: ICMicm.mcs.kent.edu › research › IAMC.icm › iamcslide.pdf · ICM ' & $ % Goals and Motiv ations Man y kinds of info and services are easily accessible on the In ternet Sharing

ICM'

&

$

%

Interface to External Engine

ComputeEngine

MP-to-EngineConverter

InterfaceEngine

MP Exps

Engine Controller

Engine-to-MPConverter

iamc-17

Page 18: ICMicm.mcs.kent.edu › research › IAMC.icm › iamcslide.pdf · ICM ' & $ % Goals and Motiv ations Man y kinds of info and services are easily accessible on the In ternet Sharing

ICM'

&

$

%

MCP: Mathematical Computation Protocol

� Addressing and making connections

� Single-transaction vs. stream connection

� Compatible with tcp, http and email

� MCP request and response formats

� MP encoding of mathematical data

� Computation, control, help, requests

� Server-side prompts

� Synchronous vs. asyhchronous modes

� Session-control functions such as interrupt, reset

iamc-18

Page 19: ICMicm.mcs.kent.edu › research › IAMC.icm › iamcslide.pdf · ICM ' & $ % Goals and Motiv ations Man y kinds of info and services are easily accessible on the In ternet Sharing

ICM'

&

$

%

MP: A Mathematical Data Encoding/Transfer Format

� Mathematical data represented as binary-encoded parse trees

� Annotations

� Dictionaries

� Transport layer independence

� E�ciency and exibility

� C language support (MP-1.1.3)

iamc-19

Page 20: ICMicm.mcs.kent.edu › research › IAMC.icm › iamcslide.pdf · ICM ' & $ % Goals and Motiv ations Man y kinds of info and services are easily accessible on the In ternet Sharing

ICM'

&

$

%

MP Binary Encoding Example

(f := x! x � �3� 1)(source maple)

Type Dict Value Annot Args

Op ElemAlg FncAssign 1 3

Annot MP Source

String Session Maple 0

Op ElemAlg FncName 0 1

Id Session f 0

Op ElemAlg FormalArgs 0 1

Id Session x 0

Op ElemAlg FncDefinition 0 1

Op ElemAlg Subtract 0 2

Op ElemAlg Power 0 2

Id Session x 0

Int -- 3 0

Int -- 1 0

iamc-20

Page 21: ICMicm.mcs.kent.edu › research › IAMC.icm › iamcslide.pdf · ICM ' & $ % Goals and Motiv ations Man y kinds of info and services are easily accessible on the In ternet Sharing

ICM'

&

$

%

MathML Presentation Markup

The expression x2 + 4x+ 4 = 0 is coded as follows

<mrow>

<msup>

<mi>x</mi>

<mn>2</mn>

</msup>

<mo>+</mo>

<mn>4</mn>

<mi>x</mi>

<mo>+</mo>

<mn>4</mn>

<mo>=</mo>

<mn>0</mn>

</mrow>

iamc-21

Page 22: ICMicm.mcs.kent.edu › research › IAMC.icm › iamcslide.pdf · ICM ' & $ % Goals and Motiv ations Man y kinds of info and services are easily accessible on the In ternet Sharing

ICM'

&

$

%

Another Presentation Example

3

r1 �

x

2

<mroot>

<mrow>

<mn>1</mn>

<mo>-</mo>

<mfrac>

<mi>x</mi>

<mn>2</mn>

</mfrac>

</mrow>

<mn>3</mn>

</mroot>

iamc-22

Page 23: ICMicm.mcs.kent.edu › research › IAMC.icm › iamcslide.pdf · ICM ' & $ % Goals and Motiv ations Man y kinds of info and services are easily accessible on the In ternet Sharing

ICM'

&

$

%

MathML Content Markup

MathML also employs a pre�x notation to encode the content of the

mathematical expressions:

The general form is

<apply> Operator operand1 ... </apply>

For example:

iamc-23

Page 24: ICMicm.mcs.kent.edu › research › IAMC.icm › iamcslide.pdf · ICM ' & $ % Goals and Motiv ations Man y kinds of info and services are easily accessible on the In ternet Sharing

ICM'

&

$

%

Another Content Example

iamc-24

Page 25: ICMicm.mcs.kent.edu › research › IAMC.icm › iamcslide.pdf · ICM ' & $ % Goals and Motiv ations Man y kinds of info and services are easily accessible on the In ternet Sharing

ICM'

&

$

%iamc-25

Page 26: ICMicm.mcs.kent.edu › research › IAMC.icm › iamcslide.pdf · ICM ' & $ % Goals and Motiv ations Man y kinds of info and services are easily accessible on the In ternet Sharing

ICM'

&

$

%

IAMC Client Converts MP to MathML

� Converting pre�x MP to pre�x MathML is not hard.

� Output MathML has advantages

� Leveraging over Web browser plug-ins or stand-alone MathML viewers to

make nice presentations.

iamc-26

Page 27: ICMicm.mcs.kent.edu › research › IAMC.icm › iamcslide.pdf · ICM ' & $ % Goals and Motiv ations Man y kinds of info and services are easily accessible on the In ternet Sharing

ICM'

&

$

%

External Engine Interface Issues

� Assume same-host interprocess communication

� Input to engine is in�x { need MP-in�x converter

� Input to engine is pre�x { need MP-pre�x converter

� Output from engine is pre�x { need pre�x{MP converter

� Output from engine is in�x { need in�x{MP converter

� Output from engin is known content type { pass to client unchanged

iamc-27

Page 28: ICMicm.mcs.kent.edu › research › IAMC.icm › iamcslide.pdf · ICM ' & $ % Goals and Motiv ations Man y kinds of info and services are easily accessible on the In ternet Sharing

ICM'

&

$

%

� Pre�x I/O to engine can be more e�cient

� In�x input and pre�x output can be easier to arrange

� It is possible to require no modi�cation of the engine if the output is not to

be converted to MP format

� Handling of dialog and error state I/O from engine needs further

consideration

� Sending interrupts to engine may not be easy in many cases.

iamc-28

Page 29: ICMicm.mcs.kent.edu › research › IAMC.icm › iamcslide.pdf · ICM ' & $ % Goals and Motiv ations Man y kinds of info and services are easily accessible on the In ternet Sharing

ICM'

&

$

%

Server-MAXIMA Interface

ServerIAMC

maxima

Existing Code New Code

Pro

mpt

Prefix OutputReceiver

Infix InputSender

ModulesComputation

iamc-29

Page 30: ICMicm.mcs.kent.edu › research › IAMC.icm › iamcslide.pdf · ICM ' & $ % Goals and Motiv ations Man y kinds of info and services are easily accessible on the In ternet Sharing

ICM'

&

$

%

Interface Scenario

1. IAMC server converts incoming request to in�x MAXIMA input.

2. IAMC server sends input to MAXIMA.

3. MAXIMA performs the computation.

4. MAXIMA outputs answer in pre�x form to IAMC server.

5. IAMC server converts answer to MP.

6. MAXIMA sends ready prompt

7. IAMC server sends next requst to MAXIMA

iamc-30

Page 31: ICMicm.mcs.kent.edu › research › IAMC.icm › iamcslide.pdf · ICM ' & $ % Goals and Motiv ations Man y kinds of info and services are easily accessible on the In ternet Sharing

ICM'

&

$

%

Modi�cation to MAXIMA

(defun displa(exp)

(print 'BEGIN-EXP)

(print exp)

(print 'END-EXP)

(terpri)

)

iamc-31

Page 32: ICMicm.mcs.kent.edu › research › IAMC.icm › iamcslide.pdf · ICM ' & $ % Goals and Motiv ations Man y kinds of info and services are easily accessible on the In ternet Sharing

ICM'

&

$

%

E�ect of the Modi�cation

(C1) loadfile("newdispla.lsp");

Loading newdispla.lsp

Finished loading newdispla.lsp

BEGIN-EXP

((MLABLE) $D1 $DONE)

END-EXP

(C2) diff(sin(x),x);

BEGIN-EXP

((MLABLE) $D2 ((%COS SIMP) $X))

END-EXP

(C3)

iamc-32

Page 33: ICMicm.mcs.kent.edu › research › IAMC.icm › iamcslide.pdf · ICM ' & $ % Goals and Motiv ations Man y kinds of info and services are easily accessible on the In ternet Sharing

ICM'

&

$

%

User

IAMCClient

Server

Server

Files

iamc-33

Page 34: ICMicm.mcs.kent.edu › research › IAMC.icm › iamcslide.pdf · ICM ' & $ % Goals and Motiv ations Man y kinds of info and services are easily accessible on the In ternet Sharing

ICM'

&

$

%

Files

IAMCClient

Students

InstructorEngine

Distance Learning

ServerIAMC

iamc-34

Page 35: ICMicm.mcs.kent.edu › research › IAMC.icm › iamcslide.pdf · ICM ' & $ % Goals and Motiv ations Man y kinds of info and services are easily accessible on the In ternet Sharing

ICM'

&

$

%

Problem Solving Environments

mcp

mcp

mcp

mcp

Symbolic

Numeric

UI

geometric

iamc-35