XML-RPC´Â HTTP¸¦ ÅëÇÑ °£´ÜÇϰí À̽ļº ³ôÀº ¿ø°Ý ÇÁ·Î½ÃÁ® È£Ãâ ¹æ¹ýÀÌ´Ù. XML-RPC´Â 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"; |
ÀÌ ÇÁ·Î±×·¥À» ½ÇÇàÇϸé, ¿ø°Ý ¼¹ö¿¡ ¿¬°áÇÏ¿© ¹Ì±¹ÀÇ ÁÖ¸í(state name)À» ¾ò¾î Ãâ·ÂÇÑ´Ù. (ÀÌ ¿¹Á¦¿¡¼ 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 WallnoferÀÇ Java ȯ°æ¿¡¼ ÇÑ ¹øÀÇ XML-RPC È£Ãâ ¿Õº¹¿¡ 0.003Ãʰ¡ °É·È´Ù.
XML-RPC´Â ´ÙÀ½°ú °°Àº µ¥ÀÌŸÇüÀ» Áö¿øÇÑ´Ù:
ºÎÈ£ ÀÖ´Â 32ºñÆ® Á¤¼öÇü
NULL ¹ÙÀÌÆ®¸¦ Æ÷ÇÔÇÒ ¼ö ÀÖ´Â ¾Æ½ºÅ° ¹®ÀÚ¿ (XMLÀÇ Æ¯¼º¿¡ ÀÇÇØ ¸î¸îÀÇ XML-RPC ȯ°æ¿¡¼´Â À¯´ÏÄڵ带 Áö¿øÇÔ)
Âü ¶Ç´Â °ÅÁþ
¹èÁ¤µµ ½Ç¼öÇü (ȯ°æ¿¡ µû¶ó Á¦ÇÑ)
³¯Â¥¿Í ½Ã°¢. XML-RPC´Â ŸÀÓÁ¸ÀÇ »ç¿ëÀ» ±ÝÇϱ⠶§¹®¿¡ °ÅÀÇ ¾µ¸ð ¾øÀ½
ÀÓÀÇÀÇ ±æÀ̸¦ °¡Áö´Â Àú¼öÁØ ÀÌÁø µ¥ÀÌŸ. Åë½Å »ó¿¡¼´Â Base64·Î ÀÎÄÚµùµÇ¸ç »ó´çÈ÷ À¯¿ëÇÑ µ¥ÀÌŸÇü (¾î¶² ȯ°æ¿¡¼´Â 0 ¹ÙÀÌÆ®ÀÇ µ¥ÀÌŸ´Â ¼ö½ÅÇÏÁö ¸øÇÏ´Â °æ¿ìµµ ÀÖÀ½)
1Â÷¿ø ¹è¿. ¹è¿°ªÀº ¾î¶°ÇÑ Çüµµ °¡´ÉÇÔ
key-valueÀÇ ½ÖÀ¸·Î ÀÌ·ç¾îÁø »çÀüÇü. key´Â stringÀ̾î¾ß Çϸç value´Â ¾î¶°ÇÑ Çüµµ °¡´ÉÇÔ
XML-RPC´Â ±× ÀÌÀüÀÇ µÎ ÇÁ·ÎÅäÄݷκÎÅÍ ¿µÇâÀ» ¹Þ¾Ò´Ù. ù°´Â Dave Winer¿¡ ÀÇÇØ µðÀÚÀÎµÇ°í ¿¹Àü¿¡ DaveNet¿¡ ¹ßÇ¥µÈ À͸í RPC ÇÁ·ÎÅäÄÝÀÌ´Ù. (ÀÌ ¶§¹®¿¡ Á¾Á¾ XML-RPC ¼¹ö´Â /RPC2¿¡ ¼³Ä¡µÈ´Ù.) ¶ÇÇϳª, ´õ¿í ÁÖ¿äÇϰԴ SOAP ÇÁ·ÎÅäÄÝÀÇ Ãʾȿ¡¼ ±× ¿µÇâÀ» ¹Þ¾Ò´Ù.
XML-RPCÀÇ ¿ª»ç¿¡ °üÇÑ ´õ ÀÚ¼¼ÇÑ ¹®¼·Î´Â Dave Winer°¡ ¾´ ±ÛÀÌ ÀÖ´Ù. ÀÌ ¹®¼´Â XML-RPC¿Í SOAPÀÇ °ü°è¿¡ ´ëÇØ¼µµ ¼³¸íÇϰí ÀÖ´Ù.