^񓯊^zbv^]pXw lZTv
=====================================================

̃fBNgɂ́AlZT[rXƁAOpenSOAPT[õbZ[W
O@\i^񓯊yсAT[o]̍őzbvƓ]zXgwj
𗘗płNCAg̃TvR[h܂܂Ă܂B
NCAgɂ̓R}hCłWebuEUł܂B

OpenSOAP API CXg[́Amake -f CalcAsync.mak ŁA
RpCłAȉ̃t@C쐬܂B

* CalcAsyncClient
  R}hCł̎lZNCAgvOłB
* CalcAsyncApp.cgi
  CGI ^̎lZNCAgvOłBWebuEU
  s邱Ƃ\łB
* CalcAsyncService
  Wo͂plZT[rXvOłB
  inetd p邱ƂŁAsocket type ̃T[rXɂ邱Ƃ\łB
* CalcAsyncService.cgi
  CGI ^̎lZT[rXvOłB

[gŁAmake -f CalcAsync.mak install sƁAT[rXv
O SSMLt@CAy NCAgvOCXg[܂B
VKSSMLt@CCXg[ꍇɂ́A
# opensoap-server-ctl reload
ŁAݒt@CǂݒĉB


R}hC CalcAsyncClient ̎g͈ȉ̂悤ɂȂ܂B

Usage: CalcAsyncClient [options] method [op_a] [op_b]
  method         Add[Async], Subtract[Async], Multiply[Async], Divide[Async]
                 or GetResult.
  op_a           first operand (except for GetResult)
  op_b           second operand (except for GetResult)

 [options]
  -s endpoint    SOAP service endpoint URI
  -a soapaction  value of SOAPAction HTTP-Header
  -c char_enc    character encoding of request message (default: UTF-8)

  (messaging options)
  -H hopcount             set hopcount (>= 0)
  -f path1[,path2[,...]]  set forward path by URI (Commas are not allowed)
                          e.g.http://host/cgi-bin/soapInterface.cgi
  -F forward_path_file    set forward path from input file

op_a  op_b 2̐ƁA4ނ̌vZ@A
Add(Z) Subtract(Z) Multiply(|Z) Divide(Z)
w肵܂B

$ ./CalcAsyncClient Add 1 2
  ([h 1 + 2 vZ)

T[o̔񓯊[hŎsꍇ́AvZ@ Async ܂B
񓯊ł͌vZʂ͂ɂ͕Ԃ炸AT[oŏsAʓr
ʂ₢킹Kv܂B

$ ./CalcAsyncClient MultiplyAsync 1 2 > tmp_msg
  (񓯊[h 1 * 2 vZ)
$ ./CalcAsyncClient GetResult < tmp_msg
  (Ԃ郁bZ[WIDɌʂ₢킹)

R}hCIvVŃT[rX̃Gh|Cgwł܂B
hostnameOpenSOAPT[oŃT[rXsꍇɂ
-s http://hostname/cgi-bin/soapInterface.cgi
ƂȂ܂B

w肵OpenSOAPT[oɃT[rXȂꍇÃT[o͕ʂ̃T[o
bZ[W]ď˗܂B
ǂ܂œ]邩̍őzbv -H IvVŎwł܂B

$ ./CalcAsyncClient -s http://host/cgi-bin/soapInterface.cgi -H 4 AddAsync 1 2
  (T[o:host ɃT[rXȂꍇA4܂œ])

]T[oNCAgw肷邱Ƃł܂B
t@Cǂݍ(-F)AR}hC(-f)wł܂B

$ cat forward_path.txt
http://host1/cgi-bin/soapInterface.cgi
http://host2/cgi-bin/soapInterface.cgi

$ ./CalcAsyncClient -s http://host/cgi-bin/soapInterface.cgi \
                    -F forward_path.txt  AddAsync 1 2
  (t@CwFT[ohostɃT[rXȂꍇAhost1, host2 Ə
  ɓ])

$ ./CalcAsyncClient -s http://host/cgi-bin/soapInterface.cgi \
  -F http://host1/cgi-bin/soapInterface.cgi,http://host2/cgi-bin/soapInterface.cgi \
  AddAsync 1 2
  (R}hCIvVŎwFlhost1, host2 Ɠ])

CalcAsync.mak ɊȒPȃeXgp̃[pӂĂ܂B

$ make -f CalcAsync.mak stest1
  (TvNGXgbZ[WgT[rX@\̃eXg)
$ make -f CalcAsync.mak ctest1
  (NCAg@\̃eXg)
$ make -f CalcAsync.mak cstest1
  (T[rXENCAg@\̘Ag̃eXg)
$ make -f CalcAsync.mak cstest1a
$ make -f CalcAsync.mak cstestr
  (T[rXENCAg@\̔񓯊ł̃eXgB
   cstestrŏʂ₢킹ł܂B)


l̋@\ CGIł̃NCAgg WebuEUŎsł܂B
ftHgŃCXg[ƁAURL珈s܂B
http://localhost/cgi-bin/CalcAsyncApp.cgi

NCAgőMSOAPbZ[W̓emFꍇ́A
"Display Request & Response messages" `FbNĉB
