4. XML-RPCÀÇ °øÅë ÀÎÅÍÆäÀ̽º

¸î¸îÀÇ XML-RPC ¼­¹ö´Â ³»Àå ¸Þ½îµå¸¦ Á¦°øÇϰí ÀÖ´Ù. ±×°ÍÀº XML-RPC ÀÚüÀÇ ºÎºÐÀº ¾Æ´Ï°í Á÷Á¢ ¸¸µé¾î Ãß°¡ÇÑ °ÍÀÌ´Ù.

4.1. Introspection: ¼­¹ö API ã±â

Edd Dumbill´Â ´ÙÀ½°ú °°Àº ¸Þ½îµå¸¦ Á¦¾ÈÇß´Ù.:

array system.listMethods ()
string system.methodHelp (string methodName)
array system.methodSignature (string methodName)

¸¸¾à ¼­¹ö°¡ À§ÀÇ ¸Þ½îµå¸¦ Áö¿øÇÑ´Ù¸é »ç¿ëÀÚ´Â ±×°ÍÀ» ÁúÀÇÇÏ°í °á°ú¸¦ Ãâ·ÂÇÒ ¼ö ÀÖ´Ù.

import xmlrpclib
server = xmlrpclib.Server("http://xmlrpc-c.sourceforge.net/api/sample.php")
for method in server.system.listMethods():
    print method
    print server.system.methodHelp(method)
    print

À§ÀÇ ¸Þ½îµåµéÀº ÇöÀç ¼­¹ö»ó(http://xmlrpc-c.sourceforge.net)¿¡¼­ PHP, C ±×¸®°í Microsoft .NETÀÇ ÇüÅ·ΠÁ¦°øµÇ°í ÀÖ´Ù. ÃÖ±Ù¿¡ UserLand Frontier°¡ ºÎºÐÀûÀ¸·Î introspectionÀ» Áö¿øÇϵµ·Ï ¾÷µ¥ÀÌÆ® µÇ¾ú´Ù. Perl, Python°ú JavaÀÇ Introspection Áö¿ø¿¡ ´ëÇØ¼­´Â XML-RPC Hacks ÆäÀÌÁö¸¦ Âü°íÇ϶ó. ´Ù¸¥ XML-RPC ¼­¹ö¿¡¼­µµ ¸¶À½´ë·Î introspectionÀ» Áö¿øÇصµ ÁÁ´Ù(±ÇÀåÇÑ´Ù)!

´Ù¾çÇÑ Å¬¶óÀÌ¾ðÆ® Åø(¹®¼­ »ý¼º±â, ·¡ÆÛ »ý¼º±â µîµî)µµ XML-RPC Hacks ÆäÀÌÁö¿¡¼­ ãÀ» ¼ö ÀÖ´Ù.

4.2. Boxcarring: ´Ù¼öÀÇ ÁúÀǸ¦ µ¿½Ã¿¡ º¸³»±â

¸¸¾à ÀÛÀº ÇÔ¼ö¸¦ È£ÃâÇÏ´Â ·çƾÀ» ¸¹ÀÌ °¡Áö´Â XML-RPC Ŭ¶óÀÌ¾ðÆ®¸¦ ¸¸µç´Ù¸é, ÀÎÅÍ³Ý backbone latency¸¦ ÀÌ¿ëÇÏ¿© ÁúÀÇ/ÀÀ´äÀÇ ¿Õº¹ ½Ã°£À» ÁÙÀÌ´Â ¹æ¹ýÀ» ãÀ» ¼ö ÀÖ´Ù. ¸î¸îÀÇ ¼­¹ö´Â ´ÙÀ½ÀÇ ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© ´Ù¼öÀÇ ÁúÀǸ¦ Çϳª·Î ¹­¾î º¸³¾ ¼ö ÀÖµµ·Ï ÇÑ´Ù:

array system.multicall (array calls)

»ó¼¼ÇÑ Á¤º¸´Â system.multicall RFC¿¡¼­ ãÀ» ¼ö ÀÖ´Ù.

ÀÌ ¸Þ½îµå´Â ÇöÀç C¿Í UserLand Frontier·Î ÀÛ¼ºµÈ ¼­¹öµéÀÌ Áö¿øÇϰí ÀÖ´Ù. Python°ú Perl·Î ÀÛ¼ºµÈ ¼­¹ö´Â XML-RPC Hacks ÆäÀÌÁö¿¡ ÀÖ´Â Äڵ带 »ç¿ëÇÒ ¼ö ÀÖ´Ù.