version 1.1, 2004/09/18 11:40:16 |
version 1.3, 2004/10/14 07:05:21 |
|
|
$OpenXM$ |
$OpenXM: OpenXM/doc/OpenXM-specs/ox-rfc-104.oxw,v 1.2 2004/09/19 12:17:40 takayama Exp $ |
/*&C |
/*&C |
|
|
OX-RFC: 104 Nobuki Takayama |
OX-RFC: 104 Nobuki Takayama |
September 18, 2004 |
October 14, 2004 |
|
|
*/ |
*/ |
|
|
//&en OX-RFC100 over HTTP GET protocol |
//&en OX-RFC100 over HTTP protocol |
//&ja HTTP GET protocol $B$GJq$`$3$H$K$h$k(B OX-RFC 100 $B7A<0$NDL?.J}K!(B |
//&ja HTTP protocol $B$GJq$`$3$H$K$h$k(B OX-RFC 100 $B7A<0$NDL?.J}K!(B |
|
|
/*&C |
/*&C |
|
|
Status of this memo |
Status of this memo |
This is an experimental specification of sending OpenXM 100 packets |
This is an experimental specification of sending OpenXM 100 packets |
over http-GET and https-GET. |
over http (GET) and https. |
Distribution of this memo is unlimited. |
Distribution of this memo is unlimited. |
|
|
Copyright Notice |
Copyright Notice |
|
|
|
|
*/ |
*/ |
|
|
|
//&ja @@$BMWLs(B |
|
//&en @@Abstract |
/*&ja |
/*&ja |
|
|
@@$BMWLs(B. |
OpenXM 100 $B7A<0$NDL?.$r(B HTTP GET ($B$^$?$O(B POST) $B$G(B wrap $B$9$kJ}K!$rDj5A(B |
OpenXM 100 $B7A<0$NDL?.$r(B HTTP GET ($B$^$?$O(B POST) $B$G(B wrap $B$9$k$3$H$K$h$j(B, |
$B$9$k(B. $B$3$N(B wrapping $B$K$h$j(B, $B<!$N$3$H$r<B8=$9$k$3$H$rL\I8$H$9$k(B. |
OpenXM 100 $BBP1~$N%5!<%P$rMF0W$K(B CGI $B%5!<%S%92=$G$-$k(B. |
1. OpenXM 100 $BBP1~$N%5!<%P$rMF0W$K(B CGI $B%5!<%S%92=$9$k(B. |
$B$^$?(B OpenXM $B$N%5!<%S%9$r@)8B$5$l$?%M%C%H%o!<%/4D6-$G$b%0%j%C%I2=$7$F$$$/(B |
2. OpenXM $B$N%5!<%S%9$r(B http $B$r4pK\$K%0%j%C%I2=$9$k(B. |
$B$3$H$,2DG=$H$J$k(B. |
|
|
|
OpenXM 100 $B$G$O%5!<%P$rN)$A>e$2$k$K$O(B "login" $B$9$k$3$H$,0lHL$KI,MW$G$"$k$,(B, |
OpenXM 100 $B$G$O%5!<%P$rN)$A>e$2$k$K$O(B "login" $B$9$k$3$H$,0lHL$KI,MW$G$"$k(B. |
$BITFCDj?M$,0lEY$N$_$N7W;;MxMQ$r$9$k$h$&$J>l9g$K$b(B, $B$^$?(B OpenXM 100 $B$HF1MM$K(B |
OpenXM-100 over HTTP GET ($B0J2<(B OoHG $B$HN,5-(B) $B$O<!$N$h$&$K(B login$BITMW(B, |
login $B$7$F(B session $B$r0];}$9$k$3$H$b2DG=$J$h$&$K(B |
login$BI,MW$NFs$D$NF0:n%b!<%I$r$b$D(B. |
OpenXM-100 over HTTP GET ($B0J2<(B OoHG $B$HN,5-(B) $B$O@_7W$5$l$F$$$k(B. |
1. $BITFCDj?M$,0lEY$N$_$N7W;;MxMQ$r$9$k$h$&$J>l9g$K(B login $BITMW$GF0:n$9$k(B. |
|
2. OpenXM 100 $B$HF1MM$K(B login $B$7$F(B session $B$r0];}$9$k$3$H$b2DG=$G$"$k(B. |
|
|
$B$3$N%a%b$G$O(B HTTP GET $B$H(B HTTPS $B$7$+4{B85;=Q$OMxMQ$7$F$$$J$$(B. |
$B$3$N%a%b$G$O(B HTTP GET (POST) $B$H(B HTTPS $B$7$+4{B85;=Q$OMxMQ$7$F$$$J$$(B. |
Web $B5;=Q$K4X$7$F8=:_8&5fCf$d<BMQ2==i4|CJ3,$N$5$^$6$^$J%W%m%H%3%k$r3hMQ$7$F(B |
Web $B5;=Q$K4X$7$F8=:_8&5fCf$d<BMQ2==i4|CJ3,$N$5$^$6$^$J%W%m%H%3%k$r3hMQ$7$F(B |
$B$3$N%a%b$HF1Ey$+$=$l0J>e$N$3$H$r<B8=$9$k$3$H$O2DG=$G$"$m$&(B. |
$B$3$N%a%b$HF1Ey$+$=$l0J>e$N$3$H$r<B8=$9$k$3$H$O2DG=$G$"$m$&(B. |
$B2f!9$OC1=c$GI,MW==J,$J;EMM$rM?$($?$$$H;W$C$F$$$k(B. |
$B2f!9$OC1=c$GI,MW==J,$J;EMM$rM?$($?$$$H;W$C$F$$$k(B. |
|
|
|
|
*/ |
*/ |
|
|
|
|
|
//&ja @@OX-RFC-100 (OpenXM 100) $B7A<0$NDL?.$NI|=,(B |
|
//&en @@Review of OX-RFC-100 for this memo. |
/*&ja |
/*&ja |
|
|
@@ OX-RFC-100 (OpenXM 100) $B7A<0$NDL?.$NI|=,(B |
|
|
|
OpenXM 100 $B$*$h$S$=$NGI@87A<0$NDL?.$O0J2<$N$h$&$J;EAH$_$G9T$o$l$k(B. |
OpenXM 100 $B$*$h$S$=$NGI@87A<0$NDL?.$O0J2<$N$h$&$J;EAH$_$G9T$o$l$k(B. |
|
|
client server |
client server |
Line 83 OpenXM 100 $B$*$h$S$=$NGI@87A<0$NDL?.$O0J2<$N$h$&$J;E |
|
Line 87 OpenXM 100 $B$*$h$S$=$NGI@87A<0$NDL?.$O0J2<$N$h$&$J;E |
|
|
|
*/ |
*/ |
|
|
|
//&en @@Data structure of OoHG |
|
//&ja @@OoHG $B$N%G!<%?7A<0(B. |
|
|
/*&ja |
/*&ja |
|
|
@@ OoHG $B$N%G!<%?7A<0(B. |
OoHG $B$G$NDL?.$OAw?.(B, $B<u?.$GHsBP>N$G$"$k(B. |
|
|
OoHG $B$G$O%G!<%?$OAw?.(B, $B<u?.$GHsBP>N$G$"$k(B. |
|
GET $B$rMxMQ$9$k$?$a%G!<%?$N7A<0$O(B RFC 2396 $B$G;XDj$5$l$F$$$k(B |
GET $B$rMxMQ$9$k$?$a%G!<%?$N7A<0$O(B RFC 2396 $B$G;XDj$5$l$F$$$k(B |
$B$$$o$f$k(B URL $B%(%s%3!<%G%#%s%0J}K!$rMQ$$$k(B. |
$B$$$o$f$k(B URL $B%(%s%3!<%G%#%s%0J}K!$rMQ$$$k(B. |
GET $B$NMxMQ$NBe$o$j$K(B POST method $B$rMxMQ$7$F$b$h$$(B. |
GET $B$NMxMQ$NBe$o$j$K(B POST method $B$rMxMQ$7$F$b$h$$(B. |
$B%G!<%?$O(B |
$BAw?.%G!<%?$O(B |
$B%-!<%o!<%I(B = $BCM(B |
$B%-!<%o!<%I(B = $BCM(B |
$B$r(B & $B$G6h@Z$C$?$b$N$G$"$k(B. $B%-!<%o!<%I$O1Q?t;z$H(B _ $B$r$b$A$$$k$b$N$H$9$k(B. |
$B$r(B & $B$G6h@Z$C$?$b$N$G$"$k(B. $B%-!<%o!<%I$O1Q?t;z$H(B _ $B$r$b$A$$$k$b$N$H$9$k(B. |
$B%-!<%o!<%I$HCM$NAH$OF~$l;R9=B$$H$J$C$F$b$h$$(B. |
$B%-!<%o!<%I$HCM$NAH$OF~$l;R9=B$$H$J$C$F$b$h$$(B. |
|
|
|
$B<u?.%G!<%?$O<!$N7A<0$GAw?.$9$k(B. |
|
|
|
OX100-OVER-HTTP-GET0-$B$K2<$N%-!<%o!<%I$r$D$J$$$@$b$N(B : URL $B%(%s%3!<%I$5$l$?CM(B |
|
|
$B0J2<%-!<%o!<%I$rNs5s$9$k(B. |
$B0J2<%-!<%o!<%I$rNs5s$9$k(B. |
|
|
oxMessageBody: OpenXM $B$N%Q%1%C%H(B. $BJ#?t$N(B OX $B%Q%1%C%H$r0lEY$KAw$C$F$h$$(B. |
oxMessageBody: OpenXM $B$N%Q%1%C%H(B. $BJ#?t$N(B OX $B%Q%1%C%H$r0lEY$KAw$C$F$h$$(B. |
Line 109 oxMessageEncoding: OpenXM $B$N%Q%1%C%H$N(B encodin |
|
Line 118 oxMessageEncoding: OpenXM $B$N%Q%1%C%H$N(B encodin |
|
4. text_executeString_popString |
4. text_executeString_popString |
$B$3$l$O0lEY$N$_$N<B9T$rA[Dj$7$F$$$k(B. |
$B$3$l$O0lEY$N$_$N<B9T$rA[Dj$7$F$$$k(B. |
executeString $B$KM?$($k0z?t$r(B text $B7A<0$GM?$($k(B. |
executeString $B$KM?$($k0z?t$r(B text $B7A<0$GM?$($k(B. |
|
$BJd=uE*$JCM$H$7$F<!$N$b$N$,$"$k(B. |
|
a. 3DES Body $B$r(B 3DES $B$G0E9f2=$9$k(B. |
|
b. RSA Body $B$r(B RSA $B$G0E9f2=$9$k(B. |
|
$B$J$*(B oxMessageEncoding $B%-!<%o!<%I$NCM$OFs$D0J>eB8:_$7$F(B |
|
$B$h$$(B. $B$3$N>l9g(B and $B$H$7$F07$o$l$k(B. $B$?$H$($P(B |
|
oxMessageEncoding=xml_ox100,3DES |
|
$B$N>l9g(B xml_ox100 $B7A<0$N>pJs$,(B 3DES $B$G0E9f2=$5$l$F(B |
|
$BAw$i$l$k(B. ("," $B$O(B URL encoding $B$5$l$k(B.) |
|
|
dataChannelId: data $B%]!<%H$NHV9f$KAjEv(B. |
dataChannelId: data $B%]!<%H$NHV9f$KAjEv(B. |
controlChannelId: control $B%]!<%H$NHV9f$KAjEv(B. |
controlChannelId: control $B%]!<%H$NHV9f$KAjEv(B. |
sessionKey3Des: 64 bit x 3 3Des $BMQ$N(B Des Key. $B%5!<%PB&$,@8@.$7(B, |
sessionKeyFor3Des: 64 bit x 3 3Des $BMQ$N(B Des Key. $B%5!<%PB&$,@8@.$7(B, |
RSA $B$G0E9f2=$5$l%5!<%P$h$jAw?.$5$l$k(B. |
RSA $B$G0E9f2=$5$l%5!<%P$h$jAw?.$5$l$k(B. |
channelKey: $B%5!<%P$h$j0l$DA0$N(B HTTP $B%H%i%s%:%"%/%7%g%s$GM?$($i$l$k(B |
channelKey: $B%5!<%P$h$j0l$DA0$N(B HTTP $B%H%i%s%:%"%/%7%g%s$GM?$($i$l$k(B |
$B%-!<(B. $BBh#3<T$,(B session $B$K3d$j9~$`$N$r6X;_$9$k$?$a(B. |
$B%-!<(B. $BBh#3<T$,(B session $B$K3d$j9~$`$N$r6X;_$9$k$?$a(B. |
Line 136 responseEncoding: $B%5!<%P$NJVEz$N(B encoding $BJ |
|
Line 153 responseEncoding: $B%5!<%P$NJVEz$N(B encoding $BJ |
|
$B$=$NB>(B. |
$B$=$NB>(B. |
1. presentation_html |
1. presentation_html |
|
|
loginRSA: RSA $BG'>Z$K$h$k(B login. nextSessionKey $B$O%/%i%$%"%s%H$N(B |
loginRSA: RSA $BG'>Z$K$h$k(B login. challenge , challenge-response $B$O(B |
public key $B$rMQ$$$FAw?.$5$l$k(B. |
$B$*8_$$$N(B public key $B$rMQ$$$FAw?.$5$l$k(B. $B2<$NNc;2>H(B. |
RSA $B$K$D$$$F$O(B OX-RFC 103 $B$r8+$h(B. |
RSA $B$K$D$$$F$O(B OX-RFC-103 $B$r8+$h(B. |
logout: logout |
logout: logout |
|
|
|
|
Line 149 nextControlChannelKey: |
|
Line 166 nextControlChannelKey: |
|
challenge: |
challenge: |
challenge-response: |
challenge-response: |
|
|
|
$B0J2<$N%-!<%o!<%I$K$D$$$F$O8e=R(B. |
|
doSignature: |
|
response-doSignature: |
|
getMathCap2: |
|
grepDirectoryInfo: |
|
sendPublicKey: |
|
|
*/ |
*/ |
|
|
|
//&ja @@$B;O$a$F$NNc(B |
|
//&en @@The first example |
/*&ja |
/*&ja |
|
|
@@ $B;O$a$F$NNc(B |
|
|
|
$BNc(B1. |
$BNc(B1. |
fctr(x^2-1); $B$r(B fctr.cgi $B$XAw?.$9$k(B. |
fctr(x^2-1); $B$r(B fctr.cgi $B$XAw?.$9$k(B. |
|
*/ |
|
|
http://fctr.openxm.org/fctr.cgi?oxMessageBody=fctr(x%5E2-1)%3B |
//&C http://fctr.openxm.org/fctr.cgi?oxMessageBody=fctr(x%5E2-1)%3B |
|
|
|
/*&ja |
oxMessageBody $B0J30$NA4$F$N%-!<%o!<%I$,>JN,$5$l$F$$$k$N$G(B, |
oxMessageBody $B0J30$NA4$F$N%-!<%o!<%I$,>JN,$5$l$F$$$k$N$G(B, |
anonymous, 1 $B2s$N$_$N<B9T(B, executeString & popString, $BJVEz$O(B text $B7A<0(B |
anonymous, 1 $B2s$N$_$N<B9T(B, executeString & popString, $BJVEz$O(B text $B7A<0(B |
$B$H$J$j(B |
$B$H$J$j(B |
|
*/ |
[[1,1],[x-1],[x+2]] |
//&C [[1,1],[x-1],[x+2]] |
|
/*&ja |
$B$,La$k(B. |
$B$,La$k(B. |
|
*/ |
|
|
|
/*&ja |
$BNc(B2. |
$BNc(B2. |
$BF1$8LdBj$r(B session $B$r3NN)$7$F$+$i<B9T$9$k(B. URL encoding $BItJ,$O(B " ... " $B$G5-=R(B. |
$BF1$8LdBj$r(B session $B$r3NN)$7$F$+$i<B9T$9$k(B. URL encoding $BItJ,$O(B " ... " $B$G5-=R(B. |
RSA $B0E9f2=$5$l$F$kItJ,$O(B ' ... '$B$G5-=R(B. |
RSA $B0E9f2=$5$l$F$kItJ,$O(B ' ... '$B$G5-=R(B. |
|
*/ |
|
/*&C |
---> |
---> |
http://fctr.openxm.org/fctr.cgi?loginRSA="takayama@hoge.org" |
http://fctr.openxm.org/fctr.cgi?loginRSA="takayama@hoge.org" |
<--- |
<--- |
Line 179 RSA $B0E9f2=$5$l$F$kItJ,$O(B ' ... '$B$G5-=R(B. |
|
Line 208 RSA $B0E9f2=$5$l$F$kItJ,$O(B ' ... '$B$G5-=R(B. |
|
OX100-OVER-HTTP-GET-dataChannelId: 4011 |
OX100-OVER-HTTP-GET-dataChannelId: 4011 |
OX100-OVER-HTTP-GET-challenge: '.............' |
OX100-OVER-HTTP-GET-challenge: '.............' |
---> |
---> |
http://fctr.openxm.org/fctr.cgi?chanllenge-response: '..........' |
http://fctr.openxm.org/fctr.cgi?chanllenge-response='..........' |
<--- |
<--- |
OX100-OVER-HTTP-GET-nextChannelKey: 143245 |
OX100-OVER-HTTP-GET-nextChannelKey: 143245 |
OX100-OVER-HTTP-GET-nextControlChannelKey: 534256 |
OX100-OVER-HTTP-GET-nextControlChannelKey: 534256 |
Line 200 RSA $B0E9f2=$5$l$F$kItJ,$O(B ' ... '$B$G5-=R(B. |
|
Line 229 RSA $B0E9f2=$5$l$F$kItJ,$O(B ' ... '$B$G5-=R(B. |
|
http://fctr.openxm.org/fctr.cgi?dataChannelId=4011& |
http://fctr.openxm.org/fctr.cgi?dataChannelId=4011& |
channelKey=345137& |
channelKey=345137& |
logout& |
logout& |
|
|
*/ |
*/ |
|
|
|
|
|
//&ja @@$B%(%i!<%3!<%I0lMw(B. |
|
|
|
/*&ja |
|
|
|
HTTP $B=`5r$N%(%i!<$NB>(B, CMO $B%(%i!<(B object $B$r(B responseEncoding $B$K=>$$(B |
|
$BAw$k(B. |
|
|
|
<< $B0J2<$^$@8!F$$7$F$J$$(B >> |
|
|
|
*/ |
|
|
|
//&ja @@$B%3%s%H%m!<%k%W%m%;%9$H$NDL?.(B |
|
|
/*&ja |
/*&ja |
|
|
@@ $B%(%i!<%3!<%I0lMw(B. |
$B@\B3Cf$N(B connection $B$,@ZCG$5$l$?>l9g(B, $B%(%s%8%s(B, $B%3%s%H%m!<%k%5!<%P$H$b$K(B |
|
$B=*N;$9$k(B. |
|
$B%3%s%H%m!<%k%5!<%P$KCfCG%a%C%;!<%8$rAw$C$?>l9g(B, OX-RFC-103 $B$NCfCGF0:n(B |
|
$B$r$*$3$J$&(B. |
|
<< $B0J2<$^$@=q$$$F$J$$(B >> |
|
|
<< $B$^$@8!F$$7$F$J$$(B >> |
*/ |
|
|
|
//&ja @@$B%[%9%H$N$J$j$9$^$7$NKI;_(B |
|
|
|
/*&ja |
|
https $B$rMxMQ$9$k>l9g$O%5!<%P$,56J*$G$J$$$3$H$N>ZL@$O(B https $B$N5!G=$rMQ$$$F(B |
|
$B<B8=$5$l$k(B. http $B$N>l9g$K$O(B RSA public $B%-!<$rMQ$$$F%5!<%P$,56J*$G$J$$(B |
|
$B$3$H$r>ZL@$9$k$3$H$,2DG=$G$"$k(B. $B$3$N$?$a$N%-!<%o!<%I$,(B doSignature |
|
$B$G$"$k(B. |
*/ |
*/ |
|
//&C doSignature=anonymous@fctr.openxm.org,'challenge words encrypted' |
|
|
/*&ja |
/*&ja |
|
'challenge words encrypted' $B$O(B anonymous@fctr.openxm.org $B$N(B public key |
|
$B$rMQ$$$F(B RSA $B0E9f2=$5$l$k(B. $B%5!<%P$O(B response-DoSignature |
|
$B%-!<%o!<%I$rMQ$$$FAw$i$l$?(B words $B$r%/%i%$%"%s%H$KLa$9(B. |
|
|
@@ $B%3%s%H%m!<%k%W%m%;%9$H$NDL?.(B |
*/ |
|
|
<< $B$^$@=q$$$F$J$$(B >> |
//&ja @@OpenXM grid $B$N%5!<%S%90lMwDs6!J}K!(B. |
|
//&en @@Directory service for OpenXM grid. |
|
|
|
//&C @@@mathCap2 |
|
|
|
/*&ja |
|
mathCap2 $B$O(B |
|
$B%-!<%o!<%I(B = $BCM(B |
|
$B7A<0$GI=8=$5$l$?(B mathCap $B$G$"$k(B. $B%-!<%o!<%I$O0J2<$N$H$*$j(B. |
|
|
|
systemName |
|
systemVersion |
|
acceptOXtags |
|
acceptSMtags |
|
acceptCMOtags |
|
|
|
exportedCommands |
|
$B<B9T2DG=$J4X?tL>(B |
|
|
|
$BCM$O(B |
|
[$BL>A0(B,$B0z?t$N?t(B,$B0z?t(B1$B$N%G!<%?7?(B, $B0z?t(B2$B$N%G!<%?7?(B, ...] $B7A<0$N%j%9%H$G$"$k(B. |
|
$B0z?t$N?t$,(B -1 $B$N>l9g0z?t$OITDj(B. |
|
$B0z?t$N%G!<%?7?$O>JN,$7$F$b$h$$(B. |
|
|
|
$B%G!<%?7?$NI=8=J}K!$O(B XML name space $B$NI=5-J}K!$rMQ$$(B, $BJ8;zNs7?$GLa$9(B. |
|
$B$J$*(BPolymorphic $B$J4X?t$N>l9g$OF1$84X?tL>$GI=5-$7$F$+$^$o$J$$(B. |
|
$BNc(B: |
|
["gcd", 2, |
|
"<cmo:cmo_int32 xmlns:cmo="http://www.openxm.org/ox-rfc-100.xml">", |
|
"<cmo:cmo_int32 xmlns:cmo="http://www.openxm.org/ox-rfc-100.xml">" ] |
|
|
|
|
|
resourceLimit |
|
[time,$BCM(B], [memory,$BCM(B] $BEy$N(B $B%j%9%H(B |
|
|
|
$BCm0U(B: systemName, systemVersion, acceptOXtags, acceptSMtags, acceptCMOtags |
|
$B$O8=:_$N(B MathCap $B$NLa$9>pJs$K$[$+$J$i$J$$(B. |
|
|
|
$BCm0U(B: $B$"$k0lDj$N%5!<%P$G$OJQ?t$K3JG<$5$l$?%G!<%?$b4X?t$H$7$F<h$j=P$9(B |
|
|
|
systemName $B$O(B Java $B$N(B package $B$NL?L>J}K!$N??;w$r$9$k(B. |
|
$BNc(B: org.openxm.ox_sm1 |
|
org.openxm.ox_polymake_2 |
|
|
*/ |
*/ |
|
|
|
//&C @@@SM_getMathCap2 |
|
/*&ja |
|
SM_printMathCap2 $B$O$=$N%5!<%P$N(B mathCap2 $B$r(B CMO $B%G!<%?$H$7$FLa$9(B |
|
$B?7$7$$%9%?%C%/%^%7%s%3%^%s%I$G$"$k(B. |
|
$B2?$i$+$N%5!<%S%9$rDs6!$9$k%5!<%P$O(B |
|
*/ |
|
//&C (OX_COMMAND,(SM_getMathCap2)) (OX_COMMAND,(SM_popCMO)) |
|
/*&ja |
|
$B$,<B9T2DG=$G$"$k$Y$-$G$"$k(B. $B$3$N%3%^%s%I$O(B anonymous $B$K<B9T$r5v$9>l9g(B |
|
$B$b$"$k$N$G(B, (OX_COMMAND,(SM_getMathCap2)) (OX_COMMAND,(SM_popCMO)) |
|
$B$N>JN,7A<0$,(B OoHG $B$N%-!<%o!<%I(B |
|
getMathCap2=1 |
|
$B$H$7$FMQ0U$5$l$F$$$k(B. |
|
*/ |
|
|
|
//&C Example: http://fctr.openxm.org/fctr.cgi?getMathCap2=1 |
|
|
|
//&C @@@$B%G%#%l%/%H%j%5!<%S%9(B |
/*&ja |
/*&ja |
|
OpenXM grid $B$N%G%#%l%/%H%j%5!<%S%9$O3F%5!<%P$N(B mathCap2 $B$N>pJs$r$b$H$K(B |
|
$B$7$F$$$k(B. $B?.MQ$N$*$1$k%G%#%l%/%H%j%5!<%S%9$r<B8=$9$k$?$a$K$O(B |
|
$B%5!<%P$N(B RSA public key $B$,I,?\$G$"$k(B. $B$3$N%-!<$,$"$k$H(B doSignature |
|
$B$r$b$H$K%G%#%8%?%k=pL>$5$l$?(B mathCap2 $B>pJs$rF@$k$3$H$,2DG=$H$J$k(B. |
|
|
@@ OpenXM grid $B$N%5!<%S%90lMwDs6!J}K!(B. |
OpenXM grid $B$N%G%#%l%/%H%j>pJs$O(B |
|
$B%-!<%o!<%I(B=$BCM(B |
|
$B$N=89gBN$G$"$k(B. |
|
$B$3$N>pJs$O<!$N$$$:$l$+$NJ}K!$rMQ$$$FI=8=$9$k(B. |
|
1. $B%-!<%o!<%I$rMWAG$H$9$k(B XML $B$H$7$FI=8=(B. |
|
XML $B$N:,MWAG$O(B OpenXMnode. OpenXMnode $B$N=8$^$j$O(B OpenXMnodes. |
|
2. CMO $B$N%j%9%H$H$7$F(B $B%-!<%o!<%I(B, $BCM(B $B$N%Z%"$H$7$FI=8=$9$k(B. |
|
|
<< $B$^$@8!F$$7$F$J$$(B >> |
$BI,?\$N%-!<%o!<%I(B |
|
OpenXMnodeURL, mathCap2, listOfAnonymousPublicKeys |
|
|
|
OpenXM directory $B%5!<%P$O$3$l$i$N>pJs$r8!:w$7$FJVEz$9$k(B. |
|
Directory $B%5!<%P$b$^$?(B OpenXM $B%(%s%8%s$G$"$k(B. |
|
$B$?$H$($P(B factor $B$r%-!<%o!<%I$H$9$k(B |
|
grep $B8!:w$O0J2<$N$H$*$j(B. |
|
(OX_DATA,(CMO_STRING,"factor")) |
|
(OX_DATA,(CMO_INT32,1)) |
|
(OX_DATA,(CMO_STRING,"ox104_grepDirectoryInfo")) |
|
(OX_COMMAND,(SM_execute)) |
|
(XO_COMMAND,(SM_popCMO)) |
|
$BF1Ey$J5!G=$r<B8=$9$k(B OoHG $BMQ$N%-!<%o!<%I$H$7$F(B |
|
grepDirectoryInfo |
|
$B$,$"$k(B. |
|
$BNc(B: grepDirectoryInfo="factor" |
|
|
*/ |
*/ |
|
|
|
//&en @@@OX-104 Directory service |
|
//&ja @@@OX-104 Directory $B%5!<%S%9(B |
|
/*&ja |
|
|
|
Directory $B%5!<%P$O$$$o$f$k(B agent $B$N0l<o$G$"$k(B. |
|
Directory $B%5!<%P$O8D?M$N%m!<%+%k%^%7%s$GF0:n$5$;$F$h$$$,(B, |
|
ox-rfc-104 $B$G$O(B anonymous $B$J7W;;%5!<%S%9$N8!:w$N$?$a(B, |
|
$B$$$o$f$k:,$H$J$k$Y$-(B directory server $B$r0J2<$N$h$&$KDj5A$9$k(B. |
|
URL$B$O0J2<$N$H$*$j(B. |
|
http://ox104_directory.openxm.org/cgi-bin/ox104_directory.sh |
|
http://ox104_directory.math.kobe-u.ac.jp/cgi-bin/ox104_directory.sh |
|
http://ox104_directory.math.kyushu-u.ac.jp/cgi-bin/ox104_directory.sh |
|
http://ox104_directory.s.kanazawa-u.ac.jp/cgi-bin/ox104_directory.sh |
|
|
|
OX-server ox104_directory $B$O<!$N4X?t$r$b$D(B. |
|
1. ox104_findSystem(String systemName) |
|
|
|
ox $B%5!<%P$r8!:w$7$FLa$9(B. $B8+IU$1$?$b$N$r(B (cmo) $B%j%9%H$H$9$k(B. |
|
$BNc(B: |
|
ox104_findSystem("org.openxm.ox_polymake_2"); |
|
[server= |
|
[url="http://polymake.math.kobe-u.ac.jp/cgi-bin/cgi-polymake.sh", |
|
protocol="org.openxm.ox-rfc-104", |
|
description="CGI $BHG$N(B polymake $B%5!<%P(B. Version 2 $B%Y!<%9(B", |
|
version="??", |
|
loadAverage=0, |
|
cpuType=, memory=, anonymous=]] |
|
|
|
$B$J$*(B directoryServer=[...] $B$H$7$F>pJs$,La$k>l9g$O(B, |
|
$B$"$i$?$a$F$=$N%5!<%P$KJ9$/I,MW$,$"$k(B. |
|
|
|
$BNc(B: |
|
ox104_findSystem("org.openxm.ox_sm1"); |
|
[localServer= |
|
[path="/usr/local/OpenXM/bin/ox_sm1", |
|
protocol="org.openxm.ox-rfc-100" |
|
]] |
|
|
|
2. ox104_grepDirectoryInfo(String key) |
|
$B>pJs$r(B grep $B$7$F3:Ev$9$k%5!<%P$rLa$9(B. |
|
|
|
OX-server ox104_directory $B$O(B cash $B5!G=$r;}$D$Y$-$G$"$k(B. |
|
$B%5!<%P$O5!G=$N@)8B$r$7$F$$$k>l9g$,$"$k(B. |
|
$B$=$N>l9g%5!<%P$K(B mathcap2 $B$rLd$$9g$o$;$kI,MW$,$"$k(B. |
|
*/ |
|
|
|
//&en @@@list of system names |
|
//&ja @@@$B%7%9%F%`L>$N%j%9%H(B |
|
|
|
/*&C |
|
org.openxm.ox_polymake_2 |
|
org.openxm.ox_asir |
|
org.openxm.ox_sm1 |
|
<< It has not yet been completed. >> |
|
*/ |
|
|
|
//&ja @@@anonymous@host $B$N(B RSA public key $B$NF~<jJ}K!(B |
|
|
|
/*&ja |
|
anonymous@host $B$N(B RSA public key $B$OJL$N?.Mj$G$-$k>pJs8;$+$iF~<j$9$k$+(B, |
|
"host" $B$K$?$$$7$F(B |
|
sendPublicKey="anonymous@host" |
|
$BMW5a$r=P$9$3$H$K$h$jF~<j$9$k(B. |
|
*/ |
|
|
|
/*&ja |
|
|
|
<< $B0J2<(B, $B$^$@8!F$$7$F$J$$(B >> |
|
|
|
*/ |
|
|
|
//&ja @@$B6&DL4X?tL>(B |
|
//&en @@Common name of functions |
|
|
|
/*&ja |
|
|
|
$BL>A0(B $B0z?t$N?t(B |
|
ox104_equal 2 |
|
ox104_add 2 |
|
ox104_sub 2 |
|
ox104_times 2 |
|
ox104_divide 2 |
|
ox104_power 2 |
|
ox104_inverse 1 |
|
ox104_translate 2 |
|
|
|
*/ |
|
|
|
|
|
//&ja @@$B4XO"$9$k5;=Q(B |
|
//&en @@Related technologies |
|
|
|
/*&ja |
|
|
|
IAMC (symbolicnet.org) |
|
|
|
*/ |
|
|
|
//&ja @@$B9W8%<T$*$h$S;n83<BAu(B |
|
//&en @@Contributors and sample implementations |
|
|
|
|
|
/*&ja |
|
$B$^$@%5%s%W%k<BAu$O$J$$(B. |
|
*/ |
|
|
|
//&ja @@$B;29MJ88%(B |
|
//&en @@Bibliography |
|
|
|
/*&C |
|
|
|
[OpenXM-RFC-100] Design and Implementation of OpenXM Client-Server Model |
|
and Common Mathematical Object Format. M.Noro, N.Takayama |
|
|
|
[OpenXM-RFC-101] Protocol to Start Engines. K.Ohara |
|
|
|
[OpenXM-RFC-103] Supplement to OX-RFC-100 |
|
--- Broadcasting in process trees and engine authentication. |
|
OpenXM committers. |
|
|
|
[RFC1945] Hypertext Transfer Protocol -- HTTP/1.0. T. Berners-Lee, R. |
|
Fielding, H. Frystyk. May 1996. (Format: TXT=137582 bytes) (Status: |
|
INFORMATIONAL) |
|
|
|
[RFC2660] The Secure HyperText Transfer Protocol. E. Rescorla, A. |
|
Schiffman. August 1999. (Format: TXT=95645 bytes) (Status: |
|
EXPERIMENTAL) |
|
*/ |
|
|
|
|
$Id$ |
$Id$ |