Annotation of OpenXM/doc/OpenXM-specs/ox-rfc-104.oxw, Revision 1.3
1.3 ! takayama 1: $OpenXM: OpenXM/doc/OpenXM-specs/ox-rfc-104.oxw,v 1.2 2004/09/19 12:17:40 takayama Exp $
1.1 takayama 2: /*&C
1.2 takayama 3:
1.1 takayama 4: OX-RFC: 104 Nobuki Takayama
1.3 ! takayama 5: October 14, 2004
1.1 takayama 6:
7: */
8:
1.2 takayama 9: //&en OX-RFC100 over HTTP protocol
10: //&ja HTTP protocol $B$GJq$`$3$H$K$h$k(B OX-RFC 100 $B7A<0$NDL?.J}K!(B
1.1 takayama 11:
12: /*&C
13:
14: Status of this memo
15: This is an experimental specification of sending OpenXM 100 packets
1.2 takayama 16: over http (GET) and https.
1.1 takayama 17: Distribution of this memo is unlimited.
18:
19: Copyright Notice
20: OpenXM.org, 2004
21:
22: */
23:
1.2 takayama 24: //&ja @@$BMWLs(B
25: //&en @@Abstract
1.1 takayama 26: /*&ja
27:
1.2 takayama 28: OpenXM 100 $B7A<0$NDL?.$r(B HTTP GET ($B$^$?$O(B POST) $B$G(B wrap $B$9$kJ}K!$rDj5A(B
29: $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.
30: 1. OpenXM 100 $BBP1~$N%5!<%P$rMF0W$K(B CGI $B%5!<%S%92=$9$k(B.
31: 2. OpenXM $B$N%5!<%S%9$r(B http $B$r4pK\$K%0%j%C%I2=$9$k(B.
32:
33: 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.
34: OpenXM-100 over HTTP GET ($B0J2<(B OoHG $B$HN,5-(B) $B$O<!$N$h$&$K(B login$BITMW(B,
35: login$BI,MW$NFs$D$NF0:n%b!<%I$r$b$D(B.
36: 1. $BITFCDj?M$,0lEY$N$_$N7W;;MxMQ$r$9$k$h$&$J>l9g$K(B login $BITMW$GF0:n$9$k(B.
37: 2. OpenXM 100 $B$HF1MM$K(B login $B$7$F(B session $B$r0];}$9$k$3$H$b2DG=$G$"$k(B.
1.1 takayama 38:
1.2 takayama 39: $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.
1.1 takayama 40: 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
41: $B$3$N%a%b$HF1Ey$+$=$l0J>e$N$3$H$r<B8=$9$k$3$H$O2DG=$G$"$m$&(B.
42: $B2f!9$OC1=c$GI,MW==J,$J;EMM$rM?$($?$$$H;W$C$F$$$k(B.
43: $B$=$N>r7o$K9gCW$9$k8B$j(B Web $B5;=Q$K4X$7$F8=:_8&5fCf$d<BMQ2==i4|CJ3,$N(B
44: $B$5$^$6$^$J%W%m%H%3%k$r3hMQ$9$k$3$H$rH]Dj$9$k$b$N$G$O$J$$(B.
45: $BJL$N%"%W%m!<%A$b;n$_$h$j$h$$%W%m%H%3%k$r:n$C$F$$$-$?$$(B.
46:
47: */
48:
1.2 takayama 49:
50: //&ja @@OX-RFC-100 (OpenXM 100) $B7A<0$NDL?.$NI|=,(B
51: //&en @@Review of OX-RFC-100 for this memo.
1.1 takayama 52: /*&ja
53:
54: OpenXM 100 $B$*$h$S$=$NGI@87A<0$NDL?.$O0J2<$N$h$&$J;EAH$_$G9T$o$l$k(B.
55:
56: client server
57:
58: ---------------- step 1 ----------------------->
59: ssh $B$K$h$k(B server $B$X$N(B login.
60: localhost $B$G$O(B ox100start/ox $B$J$I$N(B launcher $B$,D>@\5/F0$5$l$k(B.
61: controle server, engine server $B$H$N@\B3$r3NN)$9$k$?$a$N(B
62: $B%]!<%HHV9f$*$h$S(B -control= ... , -data=...
63: $BG'>ZJ}K!$*$h$S(B -authtype=NONE | <<oneTimePassword>>
64: $BG'>Z%Q%9%o!<%I(B -passControl=... , -passData=...
65: $B$bAw?.$5$l$k(B.
66: $BG'>Z%Q%9%o!<%I$N0E9f(B -authEncoding=<<NONE>> | file | RSA
67: $B2=J}K!$N;XDj(B.
68: << >> $B$O(B src/kxx/ox $B$NI8=`CM(B
69:
70:
71: <---------------- step 2 -------------------------->
72: -reverse $B$N>l9g$O(B <--- $B$N8~$-$K(B TCP/IP $B@\B3$,3NN)$5$l$k(B.
73: $B$=$&$G$J$$$H$-$O(B ---> $B$N8~$-$K(B TCP/IP $B@\B3$,3NN)$5$l$k(B.
74:
75: <---------------- step 3 -------------------------->
76: -authtype=oneTimePassword $B$N;~(B.
77: connect $B$7$?B&$,(B accept $B$7$?B&$X(B oneTimePassword $B$rAw$k(B.
78:
79: $B0J2<(B launcher $B$N;E;v$O=*N;$7$F(B, engine $B$H(B control $B$K@)8f$,0\$k(B.
80: <---------------- step 4 -------------------------->
81: engine $B$N(B byte order $B$r@_Dj(B.
82:
83: <---------------------------------------------------->
84: OpenXM $B$N%Q%1%C%H8r49(B
85:
86: $B>\$7$/$O(B OX-RFC-100, OX-RFC 103 (OX-RFC 100 $BJd0d(B) $B$r8+$h(B.
87:
88: */
89:
1.2 takayama 90: //&en @@Data structure of OoHG
91: //&ja @@OoHG $B$N%G!<%?7A<0(B.
92:
1.1 takayama 93: /*&ja
94:
1.2 takayama 95: OoHG $B$G$NDL?.$OAw?.(B, $B<u?.$GHsBP>N$G$"$k(B.
1.1 takayama 96: GET $B$rMxMQ$9$k$?$a%G!<%?$N7A<0$O(B RFC 2396 $B$G;XDj$5$l$F$$$k(B
97: $B$$$o$f$k(B URL $B%(%s%3!<%G%#%s%0J}K!$rMQ$$$k(B.
98: GET $B$NMxMQ$NBe$o$j$K(B POST method $B$rMxMQ$7$F$b$h$$(B.
1.2 takayama 99: $BAw?.%G!<%?$O(B
1.1 takayama 100: $B%-!<%o!<%I(B = $BCM(B
101: $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.
102: $B%-!<%o!<%I$HCM$NAH$OF~$l;R9=B$$H$J$C$F$b$h$$(B.
103:
1.2 takayama 104: $B<u?.%G!<%?$O<!$N7A<0$GAw?.$9$k(B.
105:
106: OX100-OVER-HTTP-GET0-$B$K2<$N%-!<%o!<%I$r$D$J$$$@$b$N(B : URL $B%(%s%3!<%I$5$l$?CM(B
107:
1.1 takayama 108: $B0J2<%-!<%o!<%I$rNs5s$9$k(B.
109:
110: 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.
111:
112: oxMessageEncoding: OpenXM $B$N%Q%1%C%H$N(B encoding $BJ}K!$N;XDj(B.
113: <<text_executeString_popString>> $B$,>JN,;~$NCM(B.
114: $BJ}K!$O0J2<$N$H$*$j(B.
115: 1. xml_ox100 (OX-RFC100 $B$KDj5A$5$l$?(B XML $BI=8=(B)
116: 2. lisplike_ox100 (OX-RFC100 $B$KDj5A$5$l$?(B Lisp$BIwI=8=(B)
117: 3. binary_ox100 (OX-RFC100 $B$KDj5A$5$l$?(B binary $BI=8=(B)
118: 4. text_executeString_popString
119: $B$3$l$O0lEY$N$_$N<B9T$rA[Dj$7$F$$$k(B.
120: executeString $B$KM?$($k0z?t$r(B text $B7A<0$GM?$($k(B.
1.2 takayama 121: $BJd=uE*$JCM$H$7$F<!$N$b$N$,$"$k(B.
122: a. 3DES Body $B$r(B 3DES $B$G0E9f2=$9$k(B.
123: b. RSA Body $B$r(B RSA $B$G0E9f2=$9$k(B.
124: $B$J$*(B oxMessageEncoding $B%-!<%o!<%I$NCM$OFs$D0J>eB8:_$7$F(B
125: $B$h$$(B. $B$3$N>l9g(B and $B$H$7$F07$o$l$k(B. $B$?$H$($P(B
126: oxMessageEncoding=xml_ox100,3DES
127: $B$N>l9g(B xml_ox100 $B7A<0$N>pJs$,(B 3DES $B$G0E9f2=$5$l$F(B
128: $BAw$i$l$k(B. ("," $B$O(B URL encoding $B$5$l$k(B.)
1.1 takayama 129:
130: dataChannelId: data $B%]!<%H$NHV9f$KAjEv(B.
131: controlChannelId: control $B%]!<%H$NHV9f$KAjEv(B.
1.2 takayama 132: sessionKeyFor3Des: 64 bit x 3 3Des $BMQ$N(B Des Key. $B%5!<%PB&$,@8@.$7(B,
1.1 takayama 133: RSA $B$G0E9f2=$5$l%5!<%P$h$jAw?.$5$l$k(B.
134: channelKey: $B%5!<%P$h$j0l$DA0$N(B HTTP $B%H%i%s%:%"%/%7%g%s$GM?$($i$l$k(B
135: $B%-!<(B. $BBh#3<T$,(B session $B$K3d$j9~$`$N$r6X;_$9$k$?$a(B.
136: 10 $B7e0J>e$N?t;z$GM?$($k(B.
137: $B%5!<%P$,M?$($k%-!<$O(B nextChannelKey (Cookie $B$KAjEv(B).
138: ($B%M%C%H%o!<%/$,EpD0$5$l$F$$$k$H$-$O(B, $B$3$NJ}K!$OL5NO$G$"$k(B.
139: https $B$+(B $B<!$N(B channelKeyIn3Des, nextChannelKeyIn3Des
140: $B$rMQ$$$k$Y$-$G$"$k(B.)
141:
142: channelKeyIn3Des: 3Des $B$G0E9f2=$5$l$?(B channelKey.
143: nextChannelKeyIn3Des: 3Des $B$G0E9f2=$5$l$?(B nextChannelKey.
144:
145: responseEncoding: $B%5!<%P$NJVEz$N(B encoding $BJ}K!(B.
146: $B>JN,;~$K$O(B oxMessageEncoding $B$KBP1~$7$?J}K!$G(B
147: $BK\BNItJ,$OAw$i$l$k(B.
148: nextChannelKey $BEy$N>pJs$OFC$K;XDj$7$J$$>l9g(B
149: OX100-OVER-HTTP-GET-nextChannelKey: $B$K$h$k(B
150: header $B$rMQ$$$?JVEz$r9T$&(B.
151: text_execute_popString $B$N;~$O(B text $B7A<0$GAw?.$5$l$k(B.
152: $B>\:Y8e=R(B.
153: $B$=$NB>(B.
154: 1. presentation_html
155:
1.2 takayama 156: loginRSA: RSA $BG'>Z$K$h$k(B login. challenge , challenge-response $B$O(B
157: $B$*8_$$$N(B public key $B$rMQ$$$FAw?.$5$l$k(B. $B2<$NNc;2>H(B.
158: RSA $B$K$D$$$F$O(B OX-RFC-103 $B$r8+$h(B.
1.1 takayama 159: logout: logout
160:
161:
162: sessionTimeOut:
163:
164: controlChannelKey:
165: nextControlChannelKey:
166: challenge:
167: challenge-response:
168:
1.2 takayama 169: $B0J2<$N%-!<%o!<%I$K$D$$$F$O8e=R(B.
170: doSignature:
171: response-doSignature:
172: getMathCap2:
173: grepDirectoryInfo:
174: sendPublicKey:
175:
1.1 takayama 176: */
177:
1.2 takayama 178: //&ja @@$B;O$a$F$NNc(B
179: //&en @@The first example
1.1 takayama 180: /*&ja
181:
182: $BNc(B1.
183: fctr(x^2-1); $B$r(B fctr.cgi $B$XAw?.$9$k(B.
1.2 takayama 184: */
1.1 takayama 185:
1.2 takayama 186: //&C http://fctr.openxm.org/fctr.cgi?oxMessageBody=fctr(x%5E2-1)%3B
1.1 takayama 187:
1.2 takayama 188: /*&ja
1.1 takayama 189: oxMessageBody $B0J30$NA4$F$N%-!<%o!<%I$,>JN,$5$l$F$$$k$N$G(B,
190: anonymous, 1 $B2s$N$_$N<B9T(B, executeString & popString, $BJVEz$O(B text $B7A<0(B
191: $B$H$J$j(B
1.2 takayama 192: */
193: //&C [[1,1],[x-1],[x+2]]
194: /*&ja
1.1 takayama 195: $B$,La$k(B.
1.2 takayama 196: */
1.1 takayama 197:
1.2 takayama 198: /*&ja
1.1 takayama 199: $BNc(B2.
200: $BF1$8LdBj$r(B session $B$r3NN)$7$F$+$i<B9T$9$k(B. URL encoding $BItJ,$O(B " ... " $B$G5-=R(B.
201: RSA $B0E9f2=$5$l$F$kItJ,$O(B ' ... '$B$G5-=R(B.
1.2 takayama 202: */
203: /*&C
1.1 takayama 204: --->
205: http://fctr.openxm.org/fctr.cgi?loginRSA="takayama@hoge.org"
206: <---
207: OX100-OVER-HTTP-GET-controlChannelId: 4010
208: OX100-OVER-HTTP-GET-dataChannelId: 4011
209: OX100-OVER-HTTP-GET-challenge: '.............'
210: --->
1.2 takayama 211: http://fctr.openxm.org/fctr.cgi?chanllenge-response='..........'
1.1 takayama 212: <---
213: OX100-OVER-HTTP-GET-nextChannelKey: 143245
214: OX100-OVER-HTTP-GET-nextControlChannelKey: 534256
215: --->
216: http://fctr.openxm.org/fctr.cgi?dataChannelId=4011&
217: channelKey=143245&
218: oxMessageEncoding="lisplike_ox100"&
219: responseEncoding="text"
220: oxMessageBody="(OX_DATA,(CMO_STRING,\"fctr(x^2-1);\"))
221: (OX_COMMAND,(SM_executeString))
222: (OX_COMMAND,(SM_popString))"
223: <---
224: Content-Type: text/plain
225: OX100-OVER-HTTP-GET-nextChannelKey: 345137
226:
227: [[1,1],[x-1],[x+2]]
228: --->
229: http://fctr.openxm.org/fctr.cgi?dataChannelId=4011&
230: channelKey=345137&
231: logout&
232: */
233:
234:
1.2 takayama 235: //&ja @@$B%(%i!<%3!<%I0lMw(B.
236:
237: /*&ja
238:
239: HTTP $B=`5r$N%(%i!<$NB>(B, CMO $B%(%i!<(B object $B$r(B responseEncoding $B$K=>$$(B
240: $BAw$k(B.
241:
242: << $B0J2<$^$@8!F$$7$F$J$$(B >>
243:
244: */
245:
246: //&ja @@$B%3%s%H%m!<%k%W%m%;%9$H$NDL?.(B
247:
248: /*&ja
249:
250: $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
251: $B=*N;$9$k(B.
252: $B%3%s%H%m!<%k%5!<%P$KCfCG%a%C%;!<%8$rAw$C$?>l9g(B, OX-RFC-103 $B$NCfCGF0:n(B
253: $B$r$*$3$J$&(B.
254: << $B0J2<$^$@=q$$$F$J$$(B >>
255:
256: */
257:
258: //&ja @@$B%[%9%H$N$J$j$9$^$7$NKI;_(B
259:
260: /*&ja
261: 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
262: $B<B8=$5$l$k(B. http $B$N>l9g$K$O(B RSA public $B%-!<$rMQ$$$F%5!<%P$,56J*$G$J$$(B
263: $B$3$H$r>ZL@$9$k$3$H$,2DG=$G$"$k(B. $B$3$N$?$a$N%-!<%o!<%I$,(B doSignature
264: $B$G$"$k(B.
265: */
266: //&C doSignature=anonymous@fctr.openxm.org,'challenge words encrypted'
267:
268: /*&ja
269: 'challenge words encrypted' $B$O(B anonymous@fctr.openxm.org $B$N(B public key
270: $B$rMQ$$$F(B RSA $B0E9f2=$5$l$k(B. $B%5!<%P$O(B response-DoSignature
271: $B%-!<%o!<%I$rMQ$$$FAw$i$l$?(B words $B$r%/%i%$%"%s%H$KLa$9(B.
272:
273: */
274:
275: //&ja @@OpenXM grid $B$N%5!<%S%90lMwDs6!J}K!(B.
276: //&en @@Directory service for OpenXM grid.
277:
278: //&C @@@mathCap2
279:
1.1 takayama 280: /*&ja
1.2 takayama 281: mathCap2 $B$O(B
282: $B%-!<%o!<%I(B = $BCM(B
283: $B7A<0$GI=8=$5$l$?(B mathCap $B$G$"$k(B. $B%-!<%o!<%I$O0J2<$N$H$*$j(B.
284:
285: systemName
286: systemVersion
287: acceptOXtags
288: acceptSMtags
289: acceptCMOtags
290:
291: exportedCommands
292: $B<B9T2DG=$J4X?tL>(B
1.3 ! takayama 293:
! 294: $BCM$O(B
! 295: [$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.
! 296: $B0z?t$N?t$,(B -1 $B$N>l9g0z?t$OITDj(B.
! 297: $B0z?t$N%G!<%?7?$O>JN,$7$F$b$h$$(B.
! 298:
! 299: $B%G!<%?7?$NI=8=J}K!$O(B XML name space $B$NI=5-J}K!$rMQ$$(B, $BJ8;zNs7?$GLa$9(B.
! 300: $B$J$*(BPolymorphic $B$J4X?t$N>l9g$OF1$84X?tL>$GI=5-$7$F$+$^$o$J$$(B.
! 301: $BNc(B:
! 302: ["gcd", 2,
! 303: "<cmo:cmo_int32 xmlns:cmo="http://www.openxm.org/ox-rfc-100.xml">",
! 304: "<cmo:cmo_int32 xmlns:cmo="http://www.openxm.org/ox-rfc-100.xml">" ]
! 305:
1.1 takayama 306:
1.2 takayama 307: resourceLimit
308: [time,$BCM(B], [memory,$BCM(B] $BEy$N(B $B%j%9%H(B
1.1 takayama 309:
1.3 ! takayama 310: $BCm0U(B: systemName, systemVersion, acceptOXtags, acceptSMtags, acceptCMOtags
! 311: $B$O8=:_$N(B MathCap $B$NLa$9>pJs$K$[$+$J$i$J$$(B.
! 312:
! 313: $BCm0U(B: $B$"$k0lDj$N%5!<%P$G$OJQ?t$K3JG<$5$l$?%G!<%?$b4X?t$H$7$F<h$j=P$9(B
! 314:
! 315: systemName $B$O(B Java $B$N(B package $B$NL?L>J}K!$N??;w$r$9$k(B.
! 316: $BNc(B: org.openxm.ox_sm1
! 317: org.openxm.ox_polymake_2
! 318:
1.2 takayama 319: */
1.1 takayama 320:
1.2 takayama 321: //&C @@@SM_getMathCap2
322: /*&ja
323: SM_printMathCap2 $B$O$=$N%5!<%P$N(B mathCap2 $B$r(B CMO $B%G!<%?$H$7$FLa$9(B
324: $B?7$7$$%9%?%C%/%^%7%s%3%^%s%I$G$"$k(B.
325: $B2?$i$+$N%5!<%S%9$rDs6!$9$k%5!<%P$O(B
1.1 takayama 326: */
1.2 takayama 327: //&C (OX_COMMAND,(SM_getMathCap2)) (OX_COMMAND,(SM_popCMO))
328: /*&ja
329: $B$,<B9T2DG=$G$"$k$Y$-$G$"$k(B. $B$3$N%3%^%s%I$O(B anonymous $B$K<B9T$r5v$9>l9g(B
330: $B$b$"$k$N$G(B, (OX_COMMAND,(SM_getMathCap2)) (OX_COMMAND,(SM_popCMO))
331: $B$N>JN,7A<0$,(B OoHG $B$N%-!<%o!<%I(B
332: getMathCap2=1
333: $B$H$7$FMQ0U$5$l$F$$$k(B.
334: */
335:
336: //&C Example: http://fctr.openxm.org/fctr.cgi?getMathCap2=1
1.1 takayama 337:
1.2 takayama 338: //&C @@@$B%G%#%l%/%H%j%5!<%S%9(B
1.1 takayama 339: /*&ja
1.2 takayama 340: 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
341: $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
342: $B%5!<%P$N(B RSA public key $B$,I,?\$G$"$k(B. $B$3$N%-!<$,$"$k$H(B doSignature
343: $B$r$b$H$K%G%#%8%?%k=pL>$5$l$?(B mathCap2 $B>pJs$rF@$k$3$H$,2DG=$H$J$k(B.
344:
345: OpenXM grid $B$N%G%#%l%/%H%j>pJs$O(B
346: $B%-!<%o!<%I(B=$BCM(B
347: $B$N=89gBN$G$"$k(B.
348: $B$3$N>pJs$O<!$N$$$:$l$+$NJ}K!$rMQ$$$FI=8=$9$k(B.
349: 1. $B%-!<%o!<%I$rMWAG$H$9$k(B XML $B$H$7$FI=8=(B.
350: XML $B$N:,MWAG$O(B OpenXMnode. OpenXMnode $B$N=8$^$j$O(B OpenXMnodes.
351: 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.
352:
353: $BI,?\$N%-!<%o!<%I(B
354: OpenXMnodeURL, mathCap2, listOfAnonymousPublicKeys
355:
356: OpenXM directory $B%5!<%P$O$3$l$i$N>pJs$r8!:w$7$FJVEz$9$k(B.
357: Directory $B%5!<%P$b$^$?(B OpenXM $B%(%s%8%s$G$"$k(B.
1.3 ! takayama 358: $B$?$H$($P(B factor $B$r%-!<%o!<%I$H$9$k(B
1.2 takayama 359: grep $B8!:w$O0J2<$N$H$*$j(B.
1.3 ! takayama 360: (OX_DATA,(CMO_STRING,"factor"))
1.2 takayama 361: (OX_DATA,(CMO_INT32,1))
362: (OX_DATA,(CMO_STRING,"ox104_grepDirectoryInfo"))
363: (OX_COMMAND,(SM_execute))
364: (XO_COMMAND,(SM_popCMO))
365: $BF1Ey$J5!G=$r<B8=$9$k(B OoHG $BMQ$N%-!<%o!<%I$H$7$F(B
1.3 ! takayama 366: grepDirectoryInfo
! 367: $B$,$"$k(B.
! 368: $BNc(B: grepDirectoryInfo="factor"
! 369:
! 370: */
! 371:
! 372: //&en @@@OX-104 Directory service
! 373: //&ja @@@OX-104 Directory $B%5!<%S%9(B
! 374: /*&ja
1.1 takayama 375:
1.3 ! takayama 376: Directory $B%5!<%P$O$$$o$f$k(B agent $B$N0l<o$G$"$k(B.
! 377: Directory $B%5!<%P$O8D?M$N%m!<%+%k%^%7%s$GF0:n$5$;$F$h$$$,(B,
! 378: ox-rfc-104 $B$G$O(B anonymous $B$J7W;;%5!<%S%9$N8!:w$N$?$a(B,
! 379: $B$$$o$f$k:,$H$J$k$Y$-(B directory server $B$r0J2<$N$h$&$KDj5A$9$k(B.
! 380: URL$B$O0J2<$N$H$*$j(B.
! 381: http://ox104_directory.openxm.org/cgi-bin/ox104_directory.sh
! 382: http://ox104_directory.math.kobe-u.ac.jp/cgi-bin/ox104_directory.sh
! 383: http://ox104_directory.math.kyushu-u.ac.jp/cgi-bin/ox104_directory.sh
! 384: http://ox104_directory.s.kanazawa-u.ac.jp/cgi-bin/ox104_directory.sh
! 385:
! 386: OX-server ox104_directory $B$O<!$N4X?t$r$b$D(B.
! 387: 1. ox104_findSystem(String systemName)
! 388:
! 389: 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.
! 390: $BNc(B:
! 391: ox104_findSystem("org.openxm.ox_polymake_2");
! 392: [server=
! 393: [url="http://polymake.math.kobe-u.ac.jp/cgi-bin/cgi-polymake.sh",
! 394: protocol="org.openxm.ox-rfc-104",
! 395: description="CGI $BHG$N(B polymake $B%5!<%P(B. Version 2 $B%Y!<%9(B",
! 396: version="??",
! 397: loadAverage=0,
! 398: cpuType=, memory=, anonymous=]]
! 399:
! 400: $B$J$*(B directoryServer=[...] $B$H$7$F>pJs$,La$k>l9g$O(B,
! 401: $B$"$i$?$a$F$=$N%5!<%P$KJ9$/I,MW$,$"$k(B.
! 402:
! 403: $BNc(B:
! 404: ox104_findSystem("org.openxm.ox_sm1");
! 405: [localServer=
! 406: [path="/usr/local/OpenXM/bin/ox_sm1",
! 407: protocol="org.openxm.ox-rfc-100"
! 408: ]]
! 409:
! 410: 2. ox104_grepDirectoryInfo(String key)
! 411: $B>pJs$r(B grep $B$7$F3:Ev$9$k%5!<%P$rLa$9(B.
! 412:
! 413: OX-server ox104_directory $B$O(B cash $B5!G=$r;}$D$Y$-$G$"$k(B.
! 414: $B%5!<%P$O5!G=$N@)8B$r$7$F$$$k>l9g$,$"$k(B.
! 415: $B$=$N>l9g%5!<%P$K(B mathcap2 $B$rLd$$9g$o$;$kI,MW$,$"$k(B.
! 416: */
1.1 takayama 417:
1.3 ! takayama 418: //&en @@@list of system names
! 419: //&ja @@@$B%7%9%F%`L>$N%j%9%H(B
1.1 takayama 420:
1.3 ! takayama 421: /*&C
! 422: org.openxm.ox_polymake_2
! 423: org.openxm.ox_asir
! 424: org.openxm.ox_sm1
! 425: << It has not yet been completed. >>
1.1 takayama 426: */
427:
1.2 takayama 428: //&ja @@@anonymous@host $B$N(B RSA public key $B$NF~<jJ}K!(B
1.1 takayama 429:
430: /*&ja
1.2 takayama 431: anonymous@host $B$N(B RSA public key $B$OJL$N?.Mj$G$-$k>pJs8;$+$iF~<j$9$k$+(B,
432: "host" $B$K$?$$$7$F(B
433: sendPublicKey="anonymous@host"
434: $BMW5a$r=P$9$3$H$K$h$jF~<j$9$k(B.
435: */
1.1 takayama 436:
1.2 takayama 437: /*&ja
1.1 takayama 438:
1.2 takayama 439: << $B0J2<(B, $B$^$@8!F$$7$F$J$$(B >>
1.1 takayama 440:
441: */
442:
1.2 takayama 443: //&ja @@$B6&DL4X?tL>(B
444: //&en @@Common name of functions
445:
446: /*&ja
447:
448: $BL>A0(B $B0z?t$N?t(B
449: ox104_equal 2
450: ox104_add 2
451: ox104_sub 2
452: ox104_times 2
453: ox104_divide 2
454: ox104_power 2
455: ox104_inverse 1
456: ox104_translate 2
457:
458: */
459:
460:
461: //&ja @@$B4XO"$9$k5;=Q(B
462: //&en @@Related technologies
463:
464: /*&ja
465:
466: IAMC (symbolicnet.org)
467:
468: */
469:
470: //&ja @@$B9W8%<T$*$h$S;n83<BAu(B
471: //&en @@Contributors and sample implementations
472:
473:
474: /*&ja
475: $B$^$@%5%s%W%k<BAu$O$J$$(B.
476: */
477:
478: //&ja @@$B;29MJ88%(B
479: //&en @@Bibliography
480:
481: /*&C
482:
483: [OpenXM-RFC-100] Design and Implementation of OpenXM Client-Server Model
484: and Common Mathematical Object Format. M.Noro, N.Takayama
485:
486: [OpenXM-RFC-101] Protocol to Start Engines. K.Ohara
487:
488: [OpenXM-RFC-103] Supplement to OX-RFC-100
489: --- Broadcasting in process trees and engine authentication.
490: OpenXM committers.
491:
492: [RFC1945] Hypertext Transfer Protocol -- HTTP/1.0. T. Berners-Lee, R.
493: Fielding, H. Frystyk. May 1996. (Format: TXT=137582 bytes) (Status:
494: INFORMATIONAL)
495:
496: [RFC2660] The Secure HyperText Transfer Protocol. E. Rescorla, A.
497: Schiffman. August 1999. (Format: TXT=95645 bytes) (Status:
498: EXPERIMENTAL)
499: */
500:
501:
1.3 ! takayama 502: $Id: ox-rfc-104.oxw,v 1.14 2004/10/14 07:03:55 taka Exp $
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>