XML-RPC ¤Ï HTTP ¾å ¤Ç¥ê¥â¡¼¥È¼ê³¤¸Æ¤Ó½Ð¤·¤ò¹Ô¤¦¤¿¤á¤Î´Êñ¤Ç¼ê·Ú¤ÊÊýË¡¤Ç¤¹¡£Perl, Java, Python, C, C++, PHP ¤ä¿¤¯¤Î¾¤Î¥×¥í¥°¥é¥ß¥ó¥°¸À¸ì¤Ç»ÈÍѤǤ¤Þ ¤¹¡£Unix ¤È Windows, Macintosh ¾å¤ÇÍøÍѲÄǽ¤Ç¤¹¡£
Perl ¤Ç½ñ¤«¤ì¤¿Ã»¤¤ XML-RPC ¥¯¥é¥¤¥¢¥ó¥È¤ò¼¨¤·¤Þ¤¹ (Ken MacLeod ¤Î Frontier::Client ¤ò»ÈÍѤ·¤Þ¤¹)¡£
use Frontier::Client; $server = Frontier::Client->new(url => 'http://betty.userland.com/RPC2'); $name = $server->call('examples.getStateName', 41); print "$name\n"; |
¼Â¹Ô¤¹¤ë¤È¡¢¤³¤Î¥×¥í¥°¥é¥à¤Ï¥ê¥â¡¼¥È¤Î¥µ¡¼¥Ð¤ËÀܳ¤·¡¢½£Ì¾¤òÆÀ ¤Æ¡¢¤½¤ì¤òɽ¼¨¤·¤Þ¤¹ (¤³¤ÎÎã¤Î½£ÈÖ¹æ 41 ¤Ï South Dakota ¤Î¤Ï¤º¤Ç¤¹)¡£
Python ¤Ç¤ÎƱ¤¸¥×¥í¥°¥é¥à¤Ç¤¹ (¤³¤ì¤Ç¤Ï Fredrik Lundh ¤Î xmlrpclib ¤ò»È¤¤¤Þ¤¹)¡£
python> import xmlrpclib python> server = xmlrpclib.Server("http://betty.userland.com/RPC2") python> server.examples.getStateName(41) 'South Dakota' |
°Ê¹ß¤Î¾Ï¤Ç¤Ï¡¢ÍÍ¡¹¤Ê¸À¸ì¤Ç XML-RPC ¥¯¥é¥¤¥¢¥ó¥È¤ª¤è¤Ó¥µ¡¼¥Ð¤Î½ñ ¤Êý¤ò³Ø¤Ó¤Þ¤¹¡£
XML-RPC ¤Ï Dave Winer ¤Î¸ø¼°»ÅÍͽñ¤Ç¾ÜºÙ¤ËÀâÌÀ¤µ ¤ì¤Æ¤¤¤Þ¤¹¡£¶½Ì£¤¬¤¢¤ë¤Ê¤é¡¢À§Èó¤´Í÷¤Ë¤Ê¤Ã¤Æ¤¯¤À¤µ¤¤¡£´Ê·é¤ÇÌÀ²ò¤Ê ʸ½ñ¤Ç¤¹¡£
ÄÌ¿®¤¹¤ë¾å¤Ç¡¢XML-RPC ¤ÎÃÍ¤Ï XML ¤Ë¥¨¥ó¥³¡¼¥É¤µ¤ì¤Þ¤¹ -
<methodCall> <methodName>sample.sumAndDifference</methodName> <params> <param><value><int>5</int></value></param> <param><value><int>3</int></value></param> </params> </methodCall> |
¾åµ¤Ï¾éŤǤ¹¤¬¡¢´Êñ¤Ë°µ½Ì¤Ç¤¤Þ¤¹¡£¤Þ¤¿¡¢Í½Á۰ʾå¤Ë®¤¤ ¤Ç¤¹ - Rick Blair ¤Î¬Äê¤Ë¤è¤ì¤Ð¡¢Hannes Wallnöæer ¤Î Java ¤Ç¤Î¼ÂÁõ¤ò»È¤¦¤È XML-RPC ¸Æ¤Ó½Ð¤·¤Î±þÅú»þ´Ö¤Ï 3 ¥ß¥êÉäǤ¹¡£
XML-RPC ¤Ï°Ê²¼¤Î¥Ç¡¼¥¿¤Î¼ïÊ̤ò¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£
É乿ÉÕ 32 ¥Ó¥Ã¥ÈÀ°¿ô
ASCII ʸ»úÎó¤Ç¶õ¥Ð¥¤¥È¤âµö¤µ¤ì¤Þ¤¹¡£(¼ÂºÝ¤Ë¤Ï¤¿¤¯¤µ¤ó¤Î XML-RPC ¤Î¼ÂÁõ¤¬ Unicode ¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤¹¡£XML ¤Î´ðËܵ¡ ǽ¤Ë´¶¼Õ¡£)
¿¿¤«µ¶¤Î¤É¤Á¤é¤«
ÇÜÀºÅÙÉâÆ°¾®¿ôÅÀ¼Â¿ô (¼ÂºÝ¤Ë¤Ï¤¤¤¯¤Ä¤«¤Î¼ÂÁõ¤Ç»È¤¨¤Ê¤¤ ¤«¤â¤·¤ì¤Þ¤»¤ó)
ÆüÉդȻþ¹ï¡£»Äǰ¤Ê¤¬¤é¡¢XML-RPC ¤Ï¥¿¥¤¥à¥¾¡¼¥ó¤Î»ÈÍѤò ¶Ø»ß¤·¤Æ¤¤¤ë¤Î¤Ç¡¢¤³¤ì¤Ï¤Û¤È¤ó¤ÉÌò¤ËΩ¤Á¤Þ¤»¤ó¡£
Ǥ°ÕŤÎÀ¸¤Î¥Ð¥¤¥Ê¥ê¥Ç¡¼¥¿ - ÄÌ¿®¾å Base64 ¤ò»ÈÍѤ·¤Æ ¥¨¥ó¥³¡¼¥É¤µ¤ì¤Þ¤¹¡£¤È¤Æ¤âÌòΩ¤Á¤Þ¤¹ (¤±¤ì¤É¤â¤¤¤¯¤Ä¤«¤Î¼ÂÁõ ¤Ç¤Ï 0 ¥Ð¥¤¥È¤Î¥Ç¡¼¥¿¼õ¿®¤¬¹Ô¤¨¤Þ¤»¤ó)¡£
Ãͤΰ켡¸µÇÛÎ󡣸ġ¹¤ÎÃͤϤɤó¤Ê¼ïÊ̤Ǥ⤫¤Þ¤¤¤Þ¤»¤ó
¥¡¼¤ÈÃͤν¸¤Þ¤ê¡£¥¡¼¤Ïʸ»úÎó¤Ç¤¹ - ÃͤϤɤó¤Ê¼ïÊÌ ¤Ç¤â¤«¤Þ¤¤¤Þ¤»¤ó¡£
XML-RPC ¤Ï¡¢Àè¹Ô¤¹¤ëÆó¤Ä¤Î¥×¥í¥È¥³¥ë¤«¤éÃåÁÛ¤òÆÀ¤Æ¤¤¤Þ¤¹¡£¤½ ¤Î°ì¤Ä¤Ï¡¢anonymous RPC ¤Ç¤¢¤ê¡¢¤³¤ì¤Ï Dave Winer ¤Ë¤è¤êÀ߷פµ¤ì¡¢ ²áµî¤Ë DaveNet ¤Ç¤Î¥¨¥Ã¥»¥¤¤È¤·¤ÆÈ¯É½¤µ¤ì¤¿¤â¤Î¤Ç¤¹ (XML-RPC ¥µ¡¼ ¥Ð¤¬ /RPC2 ²¼¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤ë¤³¤È¤¬Â¿¤¤¤Î ¤Ï¤³¤Î¤¿¤á¤Ç¤¹)¡£¤â¤¦°ì¤Ä¤Î¡¢¤è¤ê½ÅÍפÊÃåÁۤϡ¢SOAP ¥×¥í¥È¥³¥ë¤Î½é ´ü¥É¥é¥Õ¥È¤Ë¤è¤ë¤â¤Î¤Ç¤¹¡£
¤è¤ê¾Ü¤·¤¤ XML-RPC ¤ÎÎò»Ë¤È¤¤¤¦Ê¸½ñ¤ò Dave Winer ¤¬Ä󶡤·¤Æ¤¯¤ì¤Æ¤¤ ¤Þ¤¹¡£¤³¤Îʸ½ñ¤Ç¤Ï¡¢XML-RPC ¤È SOAP ¤È¤Î´Ø·¸¤Ë¤Ä¤¤¤Æ¤âÀâÌÀ¤µ¤ì¤Æ¤¤ ¤Þ¤¹¡£