Langphilia! / Study / Programming Languages for Distributed Applications

ʬ»¶¥¢¥×¥ê¥±¡¼¥·¥ç¥óÍÑ¤Î¥×¥í¥°¥é¥ß¥ó¥°¸À¸ì


About

{Seif Haridi, Peter Van Roy, Per Brand, Christian Schulte}, Programming Languages for Distributed Applications, Invited paper for New Generation Computing, 1998-03-08.

¤³¤Î¥Ú¡¼¥¸¤Ï¡¢¾åµ­¤ÎÏÀʸ¤ÎÁ°È¾¤ò¤Æ¤­¤È¡¼¤ËÆüËܸìÌõ¤·¤¿¤â¤Î¤Ç¤¹¡£ ¸¶Ê¸¤ÎÃøºî¸¢¤Ï¸¶Ãø¼Ô¤Ë¤¢¤ê¤Þ¤¹¡£ ¤³¤Î¥Ú¡¼¥¸¤ÎÃøºî¸¢¤Ï»ä¤Ë¤¢¤ê¤Þ¤¹¡£ ËÝÌõµö²Ä¤Ï¤â¤é¤Ã¤Æ¤¤¤Þ¤»¤ó¡£


Ìõ¸ìÂоÈɽ

°ÂÁ´À­ (safety)
1µé (first-class) ¥³¡¼¥É¤Î¤è¤¦¤Ë¼Â¹Ô¤¹¤ë¤À¤±¤Ç¤Ê¤¯¡¢ ¥Ç¡¼¥¿¤Î¤è¤¦¤Ë¤¤¤¸¤¯¤Ã¤ÆÍ·¤Ù¤ë¤â¤Î¡£
¥¦¥©¥Ã¥Á¥ã (watcher)
¥ª¡¼¥×¥ó¥³¥ó¥Ô¥å¡¼¥Æ¥£¥ó¥° (open computing)
²èÁü (graphic)
²èÌÌ (display)
µ¡Æ°À­ (mobility)
µ¡Ç½ (functionality)
¥µ¥¤¥È (site)
»ñ¸»À©¸æ (resource control)
¼ºÇÔÂÑÀ­ (fault torelance)
½¸Ãæ (centralized) <-> ʬ»¶
¾Ã¶ËŪ (lazy) <-> ÀѶËŪ
¾õÂÖ´¶ÃÎ (state-aware)
ÀѶËŪ (eager) <-> ¾Ã¶ËŪ
¥Í¥Ã¥È¥ï¡¼¥¯Æ©ÌÀ (network-transparent) <-> ¥Í¥Ã¥È¥ï¡¼¥¯´¶ÃÎ
¥Í¥Ã¥È¥ï¡¼¥¯´¶ÃÎ (network-aware) <-> ¥Í¥Ã¥È¥ï¡¼¥¯Æ©ÌÀ
¥Ï¥ó¥É¥é (handler)
ʬ»¶ (distributed) <-> ½¸Ãæ
ʬ»¶¹½Â¤ (distribution structure)
ʬ»¶·×»» (distributed computing)
ÊÝ°ÂÀ­ (security)


³µÍ× (Abstract)

ʬ»¶·×»»¤Ï¡¢Ê¬»¶¹½Â¤¡¢¥ª¡¼¥×¥ó¥³¥ó¥Ô¥å¡¼¥Æ¥£¥ó¥°¡¢ ¼ºÇÔÂÑÀ­¡¢ÊÝ°ÂÀ­¤ÎÎΰè¤ÇÂ礭¤¯¹­¤¬¤Ã¤Æ¤­¤¿¡£ ¤·¤«¤·¡¢Ê¬»¶¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ò½ñ¤¯¤Î¤¬¤Þ¤ÀÆñ¤·¤¤¤Î¤Ï¡¢¤³¤ì¤é¤Î Îΰè¤Î¥â¥Ç¥ë¤ò¥×¥í¥°¥é¥Þ¤¬ÌÀ¼¨Åª¤Ë´ÉÍý¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤«¤é¤À¡£ Â礭¤ÊÄ©Àï¤Ï¡¢4¤Ä¤Î¥â¥Ç¥ë¤ò1¤Ä¤Î³«È¯´Ä¶­¤ØÅý¹ç¤¹¤ë¤³¤È¤Ç¤¢¤ë¡£ ¤½¤Î´Ä¶­¤Ï¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Îµ¡Ç½¤È¾¤Î4¤Ä¤Î´ØÏ¢Îΰè¤ò ¤­¤ì¤¤¤Ëʬ¤±¤ë¤³¤È¤¬¤Ç¤­¤ë¤Ù¤­¤Ç¤¢¤ë¡£ ʹÔÀ©Ìó¥×¥í¥°¥é¥ß¥ó¥°¤ÏʹÔÏÀÍý¥×¥í¥°¥é¥ß¥ó¥°¤ÎȯŸ¤Ç¤¢¤ê¡¢ ¤³¤ÎÅý¹ç¤ò»î¤ß¤ë¤Î¤ËɬÍפÊɽ¸½ÎϤȷÁ¼°Åª¤Ê´ðÁäò»ý¤Ã¤Æ¤¤¤ë¡£ ¤Þ¤º¡¢²æ¡¹¤Ï¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Îµ¡Ç½¤Èʬ»¶¹½Â¤¤òʬ¤±¤ë´Ä¶­¤ò À߷פ·¡¢ºî¤ê¾å¤²¤¿¡£ ¤Þ¤¿¡¢¤³¤Î´Ä¶­¤Ç¶¨Ä´¤¹¤ë¥Ä¡¼¥ë¤ò¤¤¤¯¤Ä¤«¥×¥í¥È¥¿¥¤¥×¤·¤¿¡£ ¤½¤ÎÃæ¤Ë¤Ï¡¢¾ÜºÙ¤ËÀ߷פ·¤¿¶¦Í­²èÁü¥¨¥Ç¥£¥¿¤â´Þ¤Þ¤ì¤ë¡£ ¤³¤Î´Ä¶­¤Ç¼ÂÁõ¤·¤¿Distributed Oz¤Ï¡¢Ê¬»¶¹½Â¤¤òɽ¸½¤¹¤ë¹½Â¤ÂÎ¤È ¡Ð¥ª¡¼¥×¥ó¥³¥ó¥Ô¥å¡¼¥Æ¥£¥ó¥°¡¢¼ºÇÔÂÑÀ­¡¢»ñ¸»À©¸æ¡Ñ¤Î¤¿¤á¤Î ´ðËÜ¥×¥ê¥ß¥Æ¥£¥Ö¤ò¤â¤Ä¡¢Oz¤Î³ÈÄ¥¤Ç¤¢¤ë¡£ Oz¤Ï¡¢¥Ç¡¼¥¿¥Õ¥í¡¼¤Ë¤è¤êƱ´ü¤ò¹Ô¤Ê¤¦Ê¹ԥª¥Ö¥¸¥§¥¯¥È»Ø¸þ¸À¸ì¤Ç¤¢¤ë¡£ Oz¤Ï¡¢¹â³¬¡¢¾õÂÖ´¶ÃΡ¢Ê¹ÔÀ©Ìó·×»»¥â¥Ç¥ë¤Ë´ð¤Å¤¯¡£



1 ƳÆþ (Introduction)

²æ¡¹¤Î¼Ò²ñ¤Ï¡¢¥³¥ó¥Ô¥å¡¼¥¿¥Í¥Ã¥È¥ï¡¼¥¯¤òÄ̤¸¤Æ¡¢¤Þ¤¹¤Þ¤¹ ¤Ä¤Ê¤¬¤ê¤ò¶¯¤á¤Æ¤¤¤¯¡£À¤³¦Ãæ¤Ç¾ðÊ󤬹Ԥ­¸ò¤¦¤³¤È¤ÏÉáÄ̤ˤʤä¿¡£ TCP/IP¥×¥í¥È¥³¥ë²¤ÎĺÅÀ¤Ë·ú¤Ä¥¤¥ó¥¿¡¼¥Í¥Ã¥È¤Ï¡¢1981ǯ°ÊÍè Ëèǯ¥Û¥¹¥È¿ô¤¬Çܤˤʤꡢ1997ǯ¤Ë¤Ï2ÀéËü¤ò±Û¤¨¤¿¡£ ¤³¤Î¿·¤·¤¤¹­°èÁÈ¿¥¤ÇÍ¥°Ì¤ËΩ¤Ä¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¡¢ ¥­¥Î¥³¤Î¤è¤¦¤ËÁ᤯Áý¿£¤¹¤ë¡£ ÅŻҥ᡼¥ë¤È¥Í¥Ã¥È¥Ë¥å¡¼¥¹¤Ç»Ï¤Þ¤Ã¤¿¶¨Ä´ºî¶È¤Ï¡¢ ¥ï¡¼¥¯¥Õ¥í¡¼¤È¿¿¤Îʬ»¶´Ä¶­[16, 4]¤Ø¤ÈÊÑËƤò¿ë¤²¤¿¡£ ¥Ø¥Æ¥í¤ÇʪÍýŪ¤Ëʬ¤«¤ì¤¿¾ðÊ󸻤¬·ë¤Ó¤Ä¤±¤é¤ì¤Æ¤¤¤ë¡£ ¥¿¥¹¥¯¤Ï¥¨¡¼¥¸¥§¥ó¥È[17]¤Î¼êË¡¤Ë¤è¤Ã¤Æ ¥Í¥Ã¥È¥ï¡¼¥¯±Û¤·¤Ë°ÍÍꤵ¤ì¤ë¡£ ÅŻҾ¦¼è¤ê°ú¤­¤Ï°ÂÁ´¤Ê¥×¥í¥È¥³¥ë¤Ç¹Ô¤Ê¤¦¤³¤È¤¬¤Ç¤­¤ë¡£

¤·¤«¤·¡¢¤³¤ÎÇúȯŪ¤ÊÀ®Ä¹¤Ë¤â´Ø¤ï¤é¤º¡¢ ʬ»¶·×»»¤Ë¤ÏÂ礭¤ÊÄ©À郎»Ä¤Ã¤Æ¤¤¤ë¡£¤½¤ì¤Ï¤Ê¤¼¤«¡© ʬ»¶¥·¥¹¥Æ¥à¤ÏÇüÂç¤Ê¿ô¤Î¥×¥í¥»¥¹¤Î½¸¹ç¤Ç¤¢¤ê¡¢ ¥Í¥Ã¥È¥ï¡¼¥¯¤Ç·ë¤Ó¤Ä¤±¤é¤ì¤Æ¤¤¤ë[36, 20, 6]¡£ ¤³¤ì¤é¤Î¥×¥í¥»¥¹¤ÏƱ°ì¤Î¥Þ¥·¥ó¾å¤Ë¤¢¤ëɬÍפ¬¤Ê¤¤¤³¤È¤ò ¶¯Ä´¤¹¤ë¤¿¤á¤Ë¡¢¥µ¥¤¥È¤È¸Æ¤Ö¡£ ¤³¤Î¤è¤¦¤Ê¥·¥¹¥Æ¥à¤Ï¡¢Ã±°ì¤Î¥×¥í¥»¥¹¤È¤Ïº¬ËÜŪ¤Ë¤³¤È¤Ê¤ë¡£ ʬ»¶¥·¥¹¥Æ¥à¤ÏËܼÁŪ¤ËʹԤ«¤ÄÈó·èÄêŪ¤Ç¤¢¤ë¡£ ¥°¥í¡¼¥Ð¥ë¤Ê¾ðÊó¤â¥°¥í¡¼¥Ð¥ë¤Ê»þ´Ö¤â¸ºß¤·¤Ê¤¤¡£ ¥×¥í¥»¥¹´ÖÄÌ¿®¤ÎÃÙ±ä»þ´Ö¤Ïͽ¬ÉÔ²Äǽ¤Ç¤¢¤ë¡£ ¶É½ê²½¤µ¤ì¤¿¼ºÇÔ¤¬µ¯¤­¤ë²ÄǽÀ­¤Ï¹â¤¤¡£ ¥·¥¹¥Æ¥à¤¬¶¦Í­¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢¥æ¡¼¥¶¤Ï¾¤Î¥æ¡¼¥¶¤ä ·×»»¥¨¡¼¥¸¥§¥ó¥È¤«¤é¼é¤é¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£


1.1 ÌäÂêÅÀ¤ÎÆÃÄê (Identifying the issues)

ʬ»¶¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¡¢²¼¤Ë¤¢¤ë¥·¥¹¥Æ¥à¤ÎÀ䤨´Ö¤Ê¤¤ÊѲ½¤Ë ´Ø¤ï¤é¤º¡¢Îɤ¯ÃΤé¤ì¤¿¹ÔÆ°¤ò¤¹¤ë¤Ù¤­¤Ç¤¢¤ë¡£ ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¸úΨ¤¬Îɤ¯¡¢¿®Íê¤Ç¤­¡¢ ¾¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÈÍưפ˥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ò¤È¤ì¤ë¤Ù¤­¤Ç¤¢¤ë¡£ ¤É¤¦¤¹¤ì¤Ð¤³¤ÎÌÜɸ¤òãÀ®¤Ç¤­¤ë¤Î¤«¡©

¸½ºß¤Îµ»½Ñ¤Ç¤Ï¡¢¤³¤ì¤é¤ÎÀ­¼Á¤ò»ý¤Äʬ»¶¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ò ³«È¯¤¹¤ë¤Ë¤Ï¡¢Ã±°ì¥Þ¥·¥ó¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ò³«È¯¤¹¤ë¤Î¤ËɬÍ×¤Ê Ã챤ò±Û¤¨¤ëÀìÌçŪ¤ÊÃ챤¬É¬ÍפǤ¢¤ë¡£ Î㤨¤Ð¡¢¿·¤·¤¤¥¯¥é¥¤¥¢¥ó¥È-¥µ¡¼¥Ð¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÏJava RMI [23, 24]¤Ç½ñ¤¯¤³¤È¤¬¤Ç¤­¤ë¡£ ´û¸¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÏCORBA¤Î¼ÂÁõ¡ÊÎ㤨¤ÐOrbix¡Ë [27]¤Ë¤è¤Ã¤Æ¾¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ë·Ò¤²¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ ¤·¤«¤·¡¢¤¤¤º¤ì¤Î¾ì¹ç¤â¥Ä¡¼¥ë¤Ï½½Ê¬¤Ç¤Ê¤¤¡£ Î㤨¤Ð¡¢Ê¬»¶¹½Â¤¤ò¹½À®¤·¤Ê¤ª¤¹¤Ë¤Ï¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ò½ñ¤­Ä¾¤¹É¬Íפ¬¤¢¤ë¡£ ¤µ¤é¤Ë¡¢Ê¬»¶¹½Â¤¤ÎÀ߷פ伺ÇÔÂÑÀ­¤ÎÅÙ¹ç¤Î¤è¤¦¤Ê¿·¤·¤¤ÌäÂ꤬µ¯¤­¤ë¤¿¤Ó¤Ë¡¢ ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÎÊ£»¨¤µ¤¬Áý¤·¤Æ¤¤¤¯¡£ ¤½¤ì¤¾¤ì¤ÎÌäÂê¤ËÂн褹¤ë¤¿¤á¤Ë¡¢³«È¯¼Ô¤Ï´ûÃΤδĶ­¤Ë²Ã¤¨¤Æ Ê£»¨¤Ê¿·¤·¤¤¥Ä¡¼¥ë¤ò³Ø¤Ð¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ ½¸Ã楷¥¹¥Æ¥à¤·¤«·Ð¸³¤·¤¿¤³¤È¤Î¤Ê¤¤³«È¯¼Ô¤Ï½àÈ÷¤¬¤Ç¤­¤Æ¤¤¤Ê¤¤¡£

²æ¡¹¤Ïʬ»¶·×»»¤Ë¤ª¤±¤ë4¤Ä¤ÎÂ礭¤ÊÌäÂêÎΰè¤òÆÃÄꤷ¤¿¡£ ¤¹¤Ê¤ï¤Á¡¢Ê¬»¶¹½Â¤¡¢¥ª¡¼¥×¥ó¥³¥ó¥Ô¥å¡¼¥Æ¥£¥ó¥°¡¢¼ºÇÔÂÑÀ­¡¢ÊÝ°ÂÀ­¤Ç¤¢¤ë¡£ ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Îµ¡Ç½¤ò´Þ¤á¤ë¤È¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥óÀß·×¼Ô¤Ï 5¤Ä¤ÎÌäÂêÎΰè¤ò»ý¤Ä¤³¤È¤Ë¤Ê¤ë¡§

¿Þ1¡§Ä©Àʬ»¶¥×¥í¥°¥é¥ß¥ó¥°¤Îñ½ã²½
¸ß¤¤¤Ë±Æ¶Á¤òµÚ¤Ü¤·¹ç¤¦5¤Ä¤Î¥â¥Ç¥ë ¢ª 1¤Ä¤Î¥â¥Ç¥ë¤Ë»ÅÍͤòÉÕ¤±²Ã¤¨¤ë ¡ÊÉÕ¤±²Ã¤¨¤¿»ÅÍͤϡ¢µ¡Ç½¤Ë±Æ¶Á¤òµÚ¤Ü¤µ¤Ê¤¤¡Ë

¹Í¤¨¤é¤ì¤ë¥¢¥×¥í¡¼¥Á¤Ïµ¡Ç½¤È¾¤Î4¤Ä¤ÎÎΰè¤òʬ¤±¤ë¤â¤Î¤Ç¤¢¤ë¡Ê¿Þ1¤ò¸«¤è¡Ë¡£ ¤¹¤Ê¤ï¤Á¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î¥³¡¼¥É¤ÎÂçÉôʬ¤¬¡¢ µ¡Ç½¤ò¼Â¸½¤¹¤ë¤¿¤á¤Î¤â¤Î¤Ç¤¢¤Ã¤ÆÍߤ·¤¤¡£ ¾¤Î4¤Ä¤Î¥â¥Ç¥ë¤Ï¡¢Ä¾¸ò¤·¤¿¾®¤µ¤ÊÄɲäǤ¢¤ë¤Ù¤­¤À¡£ ¤³¤Î¥¢¥×¥í¡¼¥Á¤Ï¤¦¤Þ¤¯¤¤¤¯¤Î¤«¡© ¤³¤ì¤ÏÆñ¤·¤¤Ì䤤¤Ç¤¢¤ê¡¢²æ¡¹¤Ï¤Þ¤À´°Á´¤ÊÅú¤òÆÀ¤Æ¤¤¤Ê¤¤¡£ ¤·¤«¤·¡¢¤¢¤ëÄøÅ٤Τ³¤È¤Ï¸À¤¦¤³¤È¤¬¤Ç¤­¤ë¡£

Âè1Êâ¤Ï¡¢µ¡Ç½¤Èʬ»¶¹½Â¤¤òʬ¤±¤ë¤³¤È¤Ç¤¢¤ë¡£ ʬ»¶¥·¥¹¥Æ¥à¤Ï¡¢¥Í¥Ã¥È¥ï¡¼¥¯Æ©ÌÀ¤Ç¤¢¤ê¡¢ ¥Í¥Ã¥È¥ï¡¼¥¯´¶ÃΤâ¤Ç¤­¤ë¤Ù¤­¤Ç¤¢¤ë¡£ ¥·¥¹¥Æ¥à¤¬¥Í¥Ã¥È¥ï¡¼¥¯Æ©ÌÀ¤Ç¤¢¤ë¤È¤Ï¡¢ ʬ»¶¹½Â¤¤ÈÆÈΩ¤Ê¾ì¹ç¤ÈƱ¤¸¤è¤¦¤Ë·×»»¤¬¹Ô¤Ê¤ï¤ì¤ë¤³¤È¤Ç¤¢¤ë¡£ ¥Í¥Ã¥È¥ï¡¼¥¯¤ò°Õ¼±¤»¤º¤Ë¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î ¤Û¤È¤ó¤ÉÁ´¤Æ¤ò¥×¥í¥°¥é¥à¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ ¥·¥¹¥Æ¥à¤¬¥Í¥Ã¥È¥ï¡¼¥¯´¶ÃΤǤ­¤ë¤È¤Ï¡¢ ¥×¥í¥°¥é¥Þ¤¬·×»»¤Î¶É½ê²½¤È¥Í¥Ã¥È¥ï¡¼¥¯¤ÎÄÌ¿®¥Ñ¥¿¡¼¥ó¤ò ´°Á´¤ËÀ©¸æ¤Ç¤­¤ë¤³¤È¤Ç¤¢¤ë¡£ ¥×¥í¥°¥é¥Þ¤Ï·×»»¤¬¤É¤³¤Ç¹Ô¤Ê¤ï¤ì¤ë¤Î¤«¤ò·è¤á¡¢ ¥Ç¡¼¥¿¤È¥³¡¼¥É¤Îµ¡Æ°À­¤ÈºÆ¸½À­¤òÀ©¸æ¤¹¤ë¡£ ¤³¤Î¤³¤È¤Ë¤è¤Ã¤Æ¡¢¹â¤¤¸úΨ¤òÆÀ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£


1.2 ȯŸ¡§Distributed Oz (Work in Progress: Distributed Oz)

Distributed Oz·×²è¤Ë¤ª¤¤¤ÆÀ߷ס¢¼ÂÁõ¤·¤¿¸À¸ì¤Ï¡¢ Âè1Êâ¤ò¼ÂÁõ¤¹¤ë¡¢¤¹¤Ê¤ï¤Áµ¡Ç½¤Èʬ»¶¹½Â¤¤ò´°Á´¤Ëʬ¤±¤ë¤â¤Î¤À¤Ã¤¿¡£ ¤µ¤é¤Ê¤ëȯŸ¤Ï¡¢Â¾¤Î3¤Ä¤Î¥â¥Ç¥ë¤òÀÚ¤êÎ¥¤¹¤³¤È¤Ç¤¢¤ë¡£ ·ë²Ì¤È¤·¤ÆÆÀ¤é¤ì¤ë¸À¸ìDistributed Oz¤Ï¡¢ ´û¸¤Î½¸Ãæ¸À¸ìOz¤ËÂФ¹¤ëÊݼéŪ¤Ê³ÈÄ¥¤Ç¤¢¤ë¡£ ´û¸¤ÎOz¥×¥í¥°¥é¥à¤Ï¡¢¤Û¤È¤ó¤É¤½¤Î¤Þ¤ÞDistributed Oz¤Ë°Ü¿¢¤Ç¤­¤ë¡£ Distributed Oz¤ÏOz¤Î´ðËܸÀ¸ì°ÕÌ£ÏÀ¡ÊÂè3Àá ¤ò¸«¤è¡Ë¤Ë²Ã¤¨¤Æ¡¢4¤Ä¤Î³ÈÄ¥µ¡Ç½¤òÄ󶡤·¤Æ¤¤¤ë¡§

Distributed Oz¤Ç¤Ï¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î³«È¯¤Ï2¤Ä¤ÎÆÈΩ¤ÊÉôʬ¤ËÂçÊ̤Ǥ­¤ë¡£ Âè1¤Ë¡¢¥¿¥¹¥¯¤ÎÏÀÍý¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Î¤ß¤ò¹Í¤¨¤ë¡£ ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÏOz¤Ç½ñ¤«¤ì¡¢Ê£¿ô¥µ¥¤¥È¤ËÅϤë·×»»¤Îʬ»¶¤ÏÌÀµ­¤µ¤ì¤Ê¤¤¡£ Oz¤Ï¥×¥í¥°¥é¥Þ¤«¤é¸«¤Æ¡¢¥Ç¡¼¥¿¥Õ¥í¡¼Æ±´ü¤Ë´ð¤Å¤¯ ʹԥª¥Ö¥¸¥§¥¯¥È»Ø¸þ¸À¸ì¤Ç¤¢¤ë[9]¡£ ¥×¥í¥°¥é¥Þ¤Ï¡¢1¤Ä¤Î¥µ¥¤¥È¤ÇÆ°¤¯¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î °ÂÁ´À­¤ÈÀ¸Â¸À­¡ÊÃí1¡Ë¤ò¸¡¾Ú¤¹¤ë¡£ Âè2¤Ë¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î¸úΨ¤ò¾å¤²¤ë¤¿¤á¤Ë¡¢ ¥Í¥Ã¥È¥ï¡¼¥¯¤Ë¤ª¤±¤ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î³Æ¼ÂÂΤιÔÆ°¤ò·è¤á¤ë¡£ Æäˡ¢¼ÂÂΡʥª¥Ö¥¸¥§¥¯¥È¡Ë¤Îµ¡Æ°À­¤ò·è¤á¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ Î㤨¤Ð¡¢ÆÃÄê¤Î¥µ¥¤¥È¤Ëα¤Þ¤ë¥ª¥Ö¥¸¥§¥¯¥È¤¬¤¢¤êÆÀ¤ë¤·¡¢ ¾¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Ï¡Ê¾õÂÖ¥­¥ã¥Ã¥·¥å¤Î¤è¤¦¤Ê¡Ë ¤¢¤ëÄøÅ٤ε¡Æ°À­¤òÍ¿¤¨¤é¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£

Ãí1¡§¥ê¥¢¥¯¥Æ¥£¥Ö¤Ç¤Ê¤¤¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÎÀµÅöÀ­¤ÈÄä»ßÀ­°Ê¾å¤Ë½ÅÍפǤ¢¤ë¡£

Distributed Oz¤Î¼ÂÁõ¤Ï¡¢ 4¤Ä¤Î½ÅÍפÊʬ»¶¥¢¥ë¥´¥ê¥º¥à¤ò³ÈÄ¥¤·¤¿Oz¤Î¼ÂÁõ¤Ç¤¢¤ë¡£ ¤½¤ÎÆâ¤Î3¤Ä¤Ï»ÅÍ͸À¸ì¤Î¼ÂÂÎÍѤËÀ߷פ·¤¿¤â¤Î¡¢ ¤¹¤Ê¤ï¤ÁÊÑ¿ô¡¢¥ª¥Ö¥¸¥§¥¯¥È¥ì¥³¡¼¥É¡¢¥ª¥Ö¥¸¥§¥¯¥È¾õÂ֤Ǥ¢¤ë¡£ ÊÑ¿ô¤ÏÊÑ¿ôºï½ü¥×¥í¥È¥³¥ë¤ò»È¤¦ ¡ÊÂè4.2Àá¤ò¸«¤è¡Ë¡£ ¥ª¥Ö¥¸¥§¥¯¥È¥ì¥³¡¼¥É¤Ï¾Ã¶ËºÆ¸½¥×¥í¥È¥³¥ë¤ò»È¤¦ ¡ÊÂè4.3Àá¤ò¸«¤è¡Ë¡£ ¥ª¥Ö¥¸¥§¥¯¥È¾õÂ֤ϵ¡Æ°¾õÂÖ¥×¥í¥È¥³¥ë¤ò»È¤¦ ¡ÊÂè4.4Àá¤ò¸«¤è¡Ë¡£ 4¤ÄÌܤΥץí¥È¥³¥ë¤Ï¡¢¥¯¥ì¥¸¥Ã¥Èµ¡¹½¤ò»È¤Ã¤¿Ê¬»¶¥´¥ß½¸¤á¥¢¥ë¥´¥ê¥º¥à¤Ç¤¢¤ë ¡ÊÂè4.5Àá¤ò¸«¤è¡Ë¡£ ¥´¥ß½¸¤á¤Ï¶¦Í­¼ÂÂδÉÍý¤Î°ìÉô¤Ê¤Î¤Ç¡¢Â¾¤Î3¤Ä¤Î¥×¥í¥È¥³¥ë¤Î²¼¤Ë¤¢¤ë¡£


1.3 ÏÀʸ¤Î³µÎ¬

ËÜÏÀʸ¤Î»Ä¤ê¤Ï6¤Ä¤ÎÉôʬ¤«¤é¤Ê¤ë¡£ Âè2Àá¤Ç¡¢Distributed Oz¤Ë¤è¤ë¶¦Í­²èÁü¥¨¥Ç¥£¥¿¤ÎÀ߷פò¼¨¤¹¡£ ¤³¤ÎÀá¤Ç¡¢¼ÂºÝ¤Ëµ¡Ç½¤Èʬ»¶ºî¶È¤Îʬ¤±Êý¤¬¸«¤¨¤ë¤À¤í¤¦¡£ Âè3Àá¤Ç¡¢Oz¸À¸ì¤È¤½¤Î¼Â¹Ô¥â¥Ç¥ë¤ò³µ´Ñ¤¹¤ë¡£ Oz¤Ï¡¢ÏÀÍý¥×¥í¥°¥é¥ß¥ó¥°¤ÈʹÔÏÀÍý¥×¥í¥°¥é¥ß¥ó¥°¤Î¥³¥ß¥å¥Ë¥Æ¥£¤Ë¿¼¤¯Í³Í褹¤ë¡£ ¤³¤ÎÀá¤Ç¡¢¤½¤Î¤Ä¤Ê¤¬¤ê¤¬¤Ï¤Ã¤­¤ê¤¹¤ë¤À¤í¤¦¡£ Âè4Àá¤Ç¡¢Distributed Oz¤È¤½¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤òÄ󼨤·¡¢ µ¡Ç½¤Èʬ»¶¹½Â¤¤Îʬ¤±Êý¤òÀâÌÀ¤¹¤ë¡£ 4¤Ä¤Î¥×¥í¥È¥³¥ë¤Ë¾ÇÅÀ¤òÅö¤Æ¤ë¡£ ¤¹¤Ê¤ï¤Á¡¢Ê¬»¶ÏÀÍýÊÑ¿ô¡¢¥ª¥Ö¥¸¥§¥¯¥È¥ì¥³¡¼¥É¤Î¾Ã¶ËºÆ¸½¡¢ ¥ª¥Ö¥¸¥§¥¯¥È¾õÂ֤ε¡Æ°À­¡¢Ê¬»¶¥´¥ß½¸¤á¤Ç¤¢¤ë¡£ ºÇ¸å¤ËÂè5, 6, 7Àá¤Ç¡¢¥ª¡¼¥×¥ó¥³¥ó¥Ô¥å¡¼¥Æ¥£¥ó¥°¡¢¼ºÇÔÂÑÀ­¡¢ »ñ¸»À©¸æ¤ÈÊÝ°ÂÀ­¤òµÄÏÀ¤¹¤ë¡£ ¤³¤Î3¤Ä¤ÎÀá¤Ï¾¤ÎÀá¤è¤ê¤â»×º÷Ū¤Ç¤¢¤ë¡£ ¤Ê¤¼¤Ê¤é¡¢¥·¥¹¥Æ¥à¤Î¤Þ¤ÀȯŸ¤·Â³¤±¤Æ¤¤¤ëÉôʬ¤òµ­½Ò¤·¤Æ¤¤¤ë¤Î¤À¤«¤é¡£



2 ¶¦Í­²èÁü¥¨¥Ç¥£¥¿ (Shared graphic editor)

¿Þ2¡§¶¦Í­²èÁü¥¨¥Ç¥£¥¿
Èó·Á¼°Åª¤Ê»ÅÍÍ¡§

µ¡Ç½¤Èʬ»¶¹½Â¤¤òʬ¤±¤ë¤È¡¢ ¸úΨŪ¤Êʬ»¶¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ò½ñ¤¯¤Î¤ÏÈó¾ï¤Ëñ½ã¤Ë¤Ê¤ë¡£ ²æ¡¹¤Ï¤³¤Î¼çÄ¥¤ò¼Â¾Ú¤¹¤ë¤¿¤á¤Ë¡¢¶¨Ä´ºî¶È´Ä¶­¤ÇÌòΩ¤Ä ¶¦Í­²èÁü¥¨¥Ç¥£¥¿¤Î¥×¥í¥È¥¿¥¤¥×¤òÀ߷ס¢¼ÂÁõ¤·¤¿¡£ ¤³¤Î¥¨¥Ç¥£¥¿¤Ï¡¢Ç¤°Õ¤Î¿ô¤Î¥æ¡¼¥¶¤«¤é¸«¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ ²æ¡¹¤Ï¡¢¤³¤Î¥¨¥Ç¥£¥¿¤¬1¤Ä¤Î¶¦Í­²¾Á۴Ķ­¤È¤·¤Æ¿¶¤ëÉñ¤¦¤³¤È¤ò˾¤à¡£ ¤³¤Î¤¿¤á¡¢¼¡¤Î¤è¤¦¤ÊÍ׵᤬¤¢¤ë¡Ê¿Þ2¤ò¸«¤è¡Ë¡£ ¡¦Á´¤Æ¤Î¥æ¡¼¥¶¤Ï¡¢¤¤¤Ä¤Ç¤â¿Þ¤ò¹¹¿·¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ ¡¦³Æ¥æ¡¼¥¶¤Ï¡¢¼«Ê¬¤Î¹¹¿··ë²Ì¤òµ¤¤Ë¤¹¤ëÄø¤ÎÃÙ±ä»þ´Ö¤Ê¤·¤Ë¸«¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ ¡¦¹¹¿·¤Ï¡¢Á´¤Æ¤Î¥æ¡¼¥¶¤¬¥ê¥¢¥ë¥¿¥¤¥à¤Ç¸«¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ ¡¦¤µ¤é¤Ë¡¢Æ±¤¸²èÁü¤Î¼ÂÂΤòÊ£¿ô¤Î¥æ¡¼¥¶¤¬¹¹¿·¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ ¤³¤ì¤Ï¶¨Ä´CAD´Ä¶­¤ÇÊ£»¨¤Ê²èÁü¥Ç¥¶¥¤¥ó¤ò¹Ô¤Ê¤¦¤Î¤ËÌòΩ¤Ä¡£ ¡¦ºÇ¸å¤Ë¡¢Á´¤Æ¤Î¹¹¿·¤Ï»þ·ÏÎó¤Î°ì´ÓÀ­¤¬¤¢¤Ã¤Æ¡¢ ³Æ¥æ¡¼¥¶¤ÏÀµ³Î¤ËƱ¤¸¿Þ¤ò¸«¤ë¤³¤È¤Ë¤Ê¤ë¡£ ºÇ¸å¤Î2¤Ä¤ÎÍ×µá¤Ï¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤òÌÌÇò¤¯¤¹¤ë¤â¤Î¤Ç¤¢¤ë¡£ Î㤨¤ÐLBL Whiteboard¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¡ÊÃí2¡Ë¤Ç»È¤ï¤ì¤Æ¤¤¤ë¡¢ ³Æ¥æ¡¼¥¶¤Î²èÌ̤ËÂФ¹¤ë¹¹¿·¤ò¥Þ¥ë¥Á¥­¥ã¥¹¥È¤¹¤ë¼êË¡¤Ç¤Ï¡¢ ºÇ¸å¤Î2¤Ä¤ÎÍ×µá¤òËþ¤¿¤¹¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£

Ãí2¡§ http://mice.ed.ac.uk/mice/archive ¤Ë¤¢¤ë¡£

2.1 ÏÀÍý¥¢¡¼¥­¥Æ¥¯¥Á¥ã (Logical architecture)

¿Þ3¡§²èÁü¥¨¥Ç¥£¥¿¤ÎÏÀÍý¥¢¡¼¥­¥Æ¥¯¥Á¥ã

¿Þ3¤Ï¡¢¥×¥í¥È¥¿¥¤¥×¤ÎÏÀÍý¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤¢¤ë¡£ ʬ»¶¹½Â¤¤Ë¤Ä¤¤¤Æ¤Î²¾Äê¤ÏÁ´¤¯¤Ê¤¤¡£ ¿Þ¤Î¾õÂ֤ϡ¢¥ª¥Ö¥¸¥§¥¯¥È¤Î½¸¹ç¤È¤·¤Æɽ¤µ¤ì¤ë¡£ ¥ª¥Ö¥¸¥§¥¯¥È¤Ï¡¢¿Þ·Á¤ä¼«Í³¶ÊÀþ¤Î¤è¤¦¤Ê²èÁü¤Î¼ÂÂΤòɽ¤¹¡£ ¥æ¡¼¥¶¤¬¿Þ¤ò¹¹¿·¤¹¤ë¤È¡¢¿·¤·¤¤¥ª¥Ö¥¸¥§¥¯¥È¤¬À¸À®¤µ¤ì¤ë¤«¡¢ ´û¸¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Ë¾õÂÖ¤òÊѹ¹¤¹¤ë¥á¥Ã¥»¡¼¥¸¤¬Á÷¤é¤ì¤ë¡£ ¤½¤Î¸å¡¢¥ª¥Ö¥¸¥§¥¯¥È¤Ï²èÌÌ¥Ö¥í¡¼¥É¥­¥ã¥¹¥¿¤Ë¹¹¿·¤òÅÁ¤¨¤ë¡£ ¥Ö¥í¡¼¥É¥­¥ã¥¹¥¿¤ÏÁ´¤Æ¤Î¥æ¡¼¥¶¤Ë¹¹¿·¤òÅÁ¤¨¡¢²èÌ̤ò¹¹¿·¤¹¤ë¡£ ¥æ¡¼¥¶¤ÎÆþÎϤ«¤é²èÌ̤ι¹¿·¤Þ¤Ç¤Î¼Â¹Ô·ÐÏ©¤Ïñ½ã¤Ç¤Ï¤Ê¤¤¡£ ¥æ¡¼¥¶¤Ï¶¦Í­¥¹¥È¥ê¡¼¥à¤ò¸«¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢ »þ·ÏÎó¤Î°ì´ÓÀ­¤òÊݾڤµ¤ì¤Æ¤¤¤ë¡£

¿·¤·¤¤¥æ¡¼¥¶¤Ï¡¢Distributed Oz¤Î¥ª¡¼¥×¥ó¥³¥ó¥Ô¥å¡¼¥Æ¥£¥ó¥° µ¡Ç½¤ò»È¤Ã¤Æ¡¢¤¤¤Ä¤Ç¤â¥¨¥Ç¥£¥¿¤Ë¤Ä¤Ê¤¬¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ ¤³¤Î»ÅÁȤߤϡ¢¥Á¥±¥Ã¥È¤È¸Æ¤Ð¤ì¤ëñ½ã¤Êʸ»úÎó¤Ë´ð¤Å¤¯ ¡ÊÂè5Àá¤ò¸«¤è¡Ë¡£ ¥Á¥±¥Ã¥È¤òÍý²ò¤¹¤ëOz¥×¥í¥»¥¹¤Ï¡¢¸À¸ì¤Î¼ÂÂΤؤλ²¾È¤òÆÀ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ ²èÁü¥¨¥Ç¥£¥¿¤Ï¡¢¥æ¡¼¥¶´ÉÍý¥ª¥Ö¥¸¥§¥¯¥È¤ËÂФ¹¤ë¥Á¥±¥Ã¥È¤ò ȯ¹Ô¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢¿·¤·¤¤¥æ¡¼¥¶¤ò²Ã¤¨¤ëÀÕǤ¤ò»ý¤Ä¡£ ¿·¤·¤¤¥æ¡¼¥¶¤¬²Ã¤ï¤ë¤Ë¤Ï¡¢¥Á¥±¥Ã¥È¤ò»È¤Ã¤Æ¥æ¡¼¥¶´ÉÍý¤Ø¤Î»²¾È¤òÆÀ¤ë¡£ ¤³¤Î2¤Ä¤Î·×»»¤ÏƱ¤¸¥ª¥Ö¥¸¥§¥¯¥È¤ò»²¾È¤¹¤ë¡£ ¤³¤Î2¤Ä¤Î·×»»¤Ë¤è¤Ã¤Æ¡¢2¤Ä¤Î¥µ¥¤¥È´Ö¤ËÆ©ÌÀ¤Ê¤Ä¤Ê¤¬¤ê¤¬¤Ç¤­¤ë¡£ ¤³¤Î¤¿¤á¡¢·×»»¶õ´Ö¤Ï¶¦Í­¤µ¤ì¤Æ¤¤¤ë¡£ ·×»»Ãæ¤Ë2¤Ä¤Î¥µ¥¤¥È´Ö¤Î»²¾È¤¬¤Ê¤¯¤Ê¤Ã¤¿¤é¡¢ ¤½¤Î¥µ¥¤¥È´Ö¤Î¤Ä¤Ê¤¬¤ê¤Ï¥´¥ß½¸¤á¤Ë¤è¤Ã¤Æ¾Ã¤µ¤ì¤ë¡£ ¤³¤¦¤·¤Æ¡¢·×»»Ãæ¤Î¤Ä¤Ê¤¬¤ê¤ÎÀ¸À®¡¢¾ÃÌǤϡ¢ ¤Ä¤Ê¤®Ìܤò°Õ¼±¤µ¤»¤º¤Ë¹Ô¤Ê¤ï¤ì¤ë¡£


2.2 ¥¯¥é¥¤¥¢¥ó¥È-¥µ¡¼¥Ð¹½Â¤ (Client-server structure)

¿Þ4¡§¥¯¥é¥¤¥¢¥ó¥È-¥µ¡¼¥Ð¹½Â¤¤ò»ý¤Ä¥¨¥Ç¥£¥¿

À߷פ˸½¼ÂÌ£¤ò»ý¤¿¤»¤ë¤¿¤á¤Ë¡¢Ê¬»¶¹½Â¤¤òÄêµÁ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ ¿Þ4¤Ïʬ»¶¹½Â¤¤Î°ìÎã¡¢¥¯¥é¥¤¥¢¥ó¥È-¥µ¡¼¥Ð¹½Â¤¤Ç¤¢¤ë¡£ Á´¤Æ¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Ï°ÜÆ°¤·¤Ê¤¤¡£ ¥ª¥Ö¥¸¥§¥¯¥È¤Ï¡¢¥µ¡¼¥Ð¥µ¥¤¥È¤È³Æ¥æ¡¼¥¶¤Î¥µ¥¤¥È¤Ëʬ»¶¤·¤Æ¤¤¤ë¡£ ¤³¤ì¤Ï¸úΨ°Ê³°¤ÎÍ×µá¤òÁ´¤ÆËþ¤¿¤¹¡£ LAN¤Î¤è¤¦¤ËÃÙ±ä»þ´Ö¤¬Ã»¤¤¥Í¥Ã¥È¥ï¡¼¥¯¤Ç¤Ï¤¦¤Þ¤¯Æ°¤¯¤¬¡¢ Î㤨¤Ð¥¹¥¦¥§¡¼¥Ç¥ó¤ÈÆüËܤΤ褦¤Ë±ó¤¯Î¥¤ì¤¿¥æ¡¼¥¶¤¬ ¼«Í³¶ÊÀþ¤ä¡¢À䤨¤º¥Õ¥£¡¼¥É¥Ð¥Ã¥¯¤òɬÍפȤ¹¤ë ²èÁü¤Î¼ÂÂΤòÉÁ¤³¤¦¤È¤¹¤ë¤È¸úΨ¤¬°­¤¤¡£ ¤³¤ì¤Ï¡¢¼«Í³¶ÊÀþ¤¬Ã»»þ´Ö¤Ë¿¤¯¤Î¾®Àþʬ¤òÉÁ¤¯¤¿¤á¤Ç¤¢¤ë¡£ ²æ¡¹¤Î¼ÂÁõ¤Ç¤Ï¡¢ËèÉÃ30¸Ä¤Þ¤Ç¤Î¥¤¥Ù¥ó¥È¤¬ ²èÁü¥µ¥Ö¥·¥¹¥Æ¥à¤«¤éOz¥×¥í¥»¥¹¤ËÁ÷¤é¤ì¤ë¡£ ³ÆÀþʬ¤Ï¡¢ÉÁ²èÎΰè¤Î¾õÂÖ¹¹¿·¤ÈÁ´¤Æ¤Î¥æ¡¼¥¶¤Ë¹¹¿·¤òÅÁ¤¨¤ë¤³¤È¤òɬÍפȤ¹¤ë¡£ ÉÁ²èÎΰè¤Î¾õÂÖ¤¬±ó³Ö¤Ë¤¢¤ë¤È¡¢ 1²ó¤Î¹¹¿·¤Ë¿ôÉ´¥ß¥êÉðʾå¤È¤¤¤¦µö¤»¤Ê¤¤»þ´Ö¤¬¤«¤«¤ë¡£


2.3 ²èÁü¾õÂ֤Υ­¥ã¥Ã¥·¥å (Cached graphic state)

¿Þ5¡§²èÁü¾õÂÖ¤ò¥­¥ã¥Ã¥·¥å¤¹¤ë¥¨¥Ç¥£¥¿

ÃÙ±ä»þ´Ö¤ÎÌäÂê¤ò²ò·è¤¹¤ë¤¿¤á¤Ë¡¢Ê¬»¶¹½Â¤¤òÊѹ¹¤¹¤ë¡Ê¿Þ5¤ò¸«¤è¡Ë¡£ À߷פòÀöÎý¤·¤Æ¡¢²èÁü¾õÂ֤ȲèÌÌ¥Ö¥í¡¼¥É¥­¥ã¥¹¥¿¤ò °ÜÆ°¤·¤Ê¤¤¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤Ï¤Ê¤¯¡¢¼«Í³¤Êµ¡Æ°À­¤ò»ý¤Ä ¡Ê¡Ö¥­¥ã¥Ã¥·¥å¤µ¤ì¤ë¡×¡Ë¥ª¥Ö¥¸¥§¥¯¥È¤È¤·¤Æɽ¤¹¡£ ÀöÎý¤Î·ë²Ì¡¢²èÁü¾õÂÖ¤ÎÉôʬ¤Ï¡¢ ¤½¤Î¾õÂÖ¤òÊѹ¹¤¹¤ë¥µ¥¤¥È¤Ë¥­¥ã¥Ã¥·¥å¤µ¤ì¤ë¡£ ¼ÂÁõ¤Ë¤Ï¡¢¿·¤·¤¤¥ª¥Ö¥¸¥§¥¯¥È¤òÀ¸À®¤¹¤ë¸Æ¤Ó½Ð¤·¤ò ¤¤¤¯¤é¤«Êѹ¹¤¹¤ëɬÍפ¬¤¢¤ë¡£ 500¹ÔĶ¤Î¥³¡¼¥É¤ÎÆâ10¹Ô­¤é¤º¤òÊѹ¹¤¹¤ì¤ÐÎɤ¤¡£ ¤³¤ÎÊѹ¹¤Ë¤è¤Ã¤Æ¡¢¼«Í³¶ÊÀþ¤Ç¥í¡¼¥«¥ë¤Ê²èÌ̤ò¹¹¿·¤¹¤ë¤Î¤Ë ¥Í¥Ã¥È¥ï¡¼¥¯¾å¤ÎÁàºî¤ÏÉÔÍפȤʤꡢ¸úΨ¤ÏËþ­¤Ç¤­¤ë¤â¤Î¤È¤Ê¤Ã¤¿¡£ ±ó³Ö¤Î¥æ¡¼¥¶¤Ï¡¢¥Í¥Ã¥È¥ï¡¼¥¯¤ÎÃÙ±ä»þ´Ö¸å¤Ë ¥ê¥¢¥ë¥¿¥¤¥à¤Ç¼«Í³¶ÊÀþ¤ò¸«¤ë¤³¤È¤¬¤Ç¤­¤ë¡£


2.4 ¥×¥Ã¥·¥å¥ª¥Ö¥¸¥§¥¯¥È¤È¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¥ª¥Ö¥¸¥§¥¯¥È (Push Objects and transaction objects)

¥¨¥Ç¥£¥¿¤ÎÀ߷פò¤â¤Ã¤ÈÀöÎý¤·¤Æ¡¢ ¥ª¥Ö¥¸¥§¥¯¥È¤Îʬ»¶¶ñ¹ç¤¤¤ò¤â¤Ã¤ÈÎɤ¯¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ Î㤨¤Ð¡¢¥ª¥Ö¥¸¥§¥¯¥È¤ò¥­¥ã¥Ã¥·¥å¤¹¤ëÀ߷פˤÏ2¤Ä¤ÎÌäÂ꤬¤¢¤ë¡§

¥×¥Ã¥·¥å¥ª¥Ö¥¸¥§¥¯¥È¤â¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¥ª¥Ö¥¸¥§¥¯¥È¤â¡¢ ¥ª¥Ö¥¸¥§¥¯¥È¹¹¿·¤Î°ì´ÓÀ­¤òÊݤġ§ ¤É¤Á¤é¤Î¥ª¥Ö¥¸¥§¥¯¥È¤â¾õÂÖÎó¤Ë¤è¤Ã¤ÆÄêµÁ¤µ¤ì¤ë¡£ 1¤Ä¤Î²èÁü¾õÂ֤Ȥ½¤Î¹¹¿·¤Ï»þ·ÏÎó¤Î°ì´ÓÀ­¤òÊݤ俤ޤޤǤ¢¤ë¡£ ½¾¤Ã¤Æ¡¢¥¨¥Ç¥£¥¿¤â¤Þ¤À¶¨Ä´À߷פò¥µ¥Ý¡¼¥È¤¹¤ë¡£ Êѹ¹¤µ¤ì¤¿¤Î¤Ï¡¢¾õÂÖÎó¤Î¸«¤¨Êý¡¢ºî¤é¤ìÊý¤Ç¤¢¤ë¡£

¤¤¤º¤ì¤«¤Þ¤¿¤ÏξÊý¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤è¤ë¥¨¥Ç¥£¥¿¤ÎÊѹ¹¤Ï¡¢ »ÅÍͤ«ÏÀÍý¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤ÎÊѹ¹¤òɬÍפȤ¹¤ë¤«¤âÃΤì¤Ê¤¤¡£ Î㤨¤Ð¡¢»ÅÍͤò´Ë¤á¤Æ¡¢ ¤ï¤º¤«¤ËÉÔÀµ¤Ê²èÌ̤òµö¤¹¤è¤¦¤Ë¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤«¤â¤·¤ì¤Ê¤¤¡£ ¤³¤ì¤Ï¥Í¥Ã¥È¥ï¡¼¥¯Æ©ÌÀ¤Ê¥×¥í¥°¥é¥ß¥ó¥°¤Î¸Â³¦¤ò¼¨¤·¤Æ¤¤¤ë¡£ »ÅÍͤÈÏÀÍý¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤òÍ¿¤¨¤é¤ì¤Æ¡¢Ê¬»¶¹½Â¤¤ÎÊѹ¹¤Ë¤è¤Ã¤Æ ¸úΨ¤ò̵À©¸Â¤Ë¾å¤²¤ë¤³¤È¤Ï¡¢°ìÈ̤ˤÏÉÔ²Äǽ¤Ç¤¢¤ë¡£ ¤¤¤¯¤Ä¤«¤ÎÅÀ¤Ç¡¢»ÅÍͤȥ¢¡¼¥­¥Æ¥¯¥Á¥ã¤Î¤¤¤º¤ì¤« ¤Þ¤¿¤ÏξÊý¤òÊѹ¹¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£


2.5 ºÇ¸å¤Î¥³¥á¥ó¥È (Final comments)

¶¦Í­²èÁü¥¨¥Ç¥£¥¿¤ÎÀ߷פˤè¤Ã¤Æ¡¢Distributed Oz¤Ç ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤òÁȤßΩ¤Æ¤ë¥¢¥×¥í¡¼¥Á¤Î2¤Ä¤ÎÉôʬ¤ò¼¨¤·¤¿¡£ Âè1¤Ë¡¢°ÜÆ°¤·¤Ê¤¤¥ª¥Ö¥¸¥§¥¯¥È¤ò»È¤Ã¤Æ ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤òÁȤßΩ¤Æ¡¢¥Æ¥¹¥È¤¹¤ë¡£ Âè2¤Ë¡¢Ãí°Õ¿¼¤¯¤¤¤¯¤Ä¤«¤Î¥ª¥Ö¥¸¥§¥¯¥È¤òÁª¤Ó¡¢ µ¡Æ°À­¤òÊѹ¹¤¹¤ë¤³¤È¤Ë¤è¤Ã¤ÆÃÙ±ä»þ´Ö¤ò¸º¤é¤¹¡£ Æ©ÌÀÀ­¤Î¤ª¤«¤²¤Ç¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥³¡¼¥É¼«ÂΤÏÈó¾ï¤Ë¾®¤µ¤ÊÊѹ¹¤ÇºÑ¤à¡£ ¤³¤Î¤³¤È¤Ï¿¤¯¤Î¾ì¹ç¡¢Îɤ¤·ë²Ì¤ò¤â¤¿¤é¤¹¡£ ¤·¤«¤·¡¢Èó¾ï¤Ë¹â¤¤¸úΨ¤òÆÀ¤ë¤Ë¤Ï¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î »ÅÍͤ䥢¡¼¥­¥Æ¥¯¥Á¥ã¤òÊѹ¹¤¹¤ëɬÍפ¬¤¢¤ë¤«¤âÃΤì¤Ê¤¤¡£

°ÜÆ°¤·¤Ê¤¤À߷פǤⵡưÀ­¤ò»ý¤ÄÀ߷פǤ⡢ ¼ºÇÔÂÑÀ­¤ÏÍۤ˹ͤ¨¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤Ê̤ÎÌäÂê¤Ç¤¢¤ë¡£ Á´¤Æ¤Î²èÌÌ¥¤¥Ù¥ó¥È¤Î¥í¥°¤ò¡¢¿®Íê¤Ç¤­¤ë¥µ¥¤¥È¤Ëµ­Ï¿¤¹¤ì¤ÐÎɤ¤¤À¤í¤¦¡£ ²õ¤ì¤¿¥æ¡¼¥¶¤ò¾Ã¤·¡¢¿·¤·¤¤¥æ¡¼¥¶¤Ë¥í¥°¤ò°µ½Ì¤·¤ÆÁ÷¤ì¤ÐÎɤ¤¡£ ¼ºÇÔÂÑÀ­ÍѤΥץê¥ß¥Æ¥£¥Ö¤Ï¡¢Âè6Àá¤ÇÄ󼨤¹¤ë¡£

°ìÈ̤ˡ¢µ¡Æ°À­¤ò»ý¤Ä¥ª¥Ö¥¸¥§¥¯¥È¤Ï¡¢ ÈùγÅ٤ε¡Æ°À­¡Ê¥ª¥Ö¥¸¥§¥¯¥È¾õÂ֤Υ­¥ã¥Ã¥·¥å¡Ë¤Ë¤â¡¢ ÁÆγÅ٤ε¡Æ°À­¡Ê¥ª¥Ö¥¸¥§¥¯¥È¥°¥ë¡¼¥×¤ÎÌÀ¼¨Åª¤Ê°ÜÁ÷¡Ë¤Ë¤âÌòΩ¤Ä¡£ ¥·¥¹¥Æ¥à¤¬Ä󶡤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¥­¡¼¤È¤Ê¤ëµ¡Ç½¤Ï¡¢ µ¡Æ°À­¤ÎÆ©ÌÀ¤ÊÀ©¸æ¡¢¤¹¤Ê¤ï¤Á¥ª¥Ö¥¸¥§¥¯¥È¤Îµ¡Ç½¤ÈÆÈΩ¤ÊÀ©¸æ¤Ç¤¢¤ë¡£ Âè3.2Àá¤ÈÂè4Àá¤Ç¤Ï¡¢Distributed Oz¤Ç ¤³¤ì¤¬¤É¤¦¹Ô¤Ê¤ï¤ì¤Æ¤¤¤ë¤«¤ò¾¯¤·ÀâÌÀ¤¹¤ë¡£



3 Oz

Oz¤Ï¡¢¶¯ÎϤʳµÇ°¤Î¾®¤µ¤Ê½¸¹ç¤«¤é¤Ê¤ë¸À¸ì¤Ç¤¢¤ë¡£ ¤³¤ÎÀá¤Ç¤Ï¡¢Oz¤ÎÍÍ¡¹¤Ê¦Ì̤ÎÀâÌÀ¤ò»î¤ß¤ë¡£ Oz¤Î¥×¥í¥°¥é¥ß¥ó¥°¥â¥Ç¥ë¤ò¤Þ¤È¤á¡¢ Prolog¤äʹÔÏÀÍý¸À¸ì¤È¤ÎÈæ³Ó¤ò¹Ô¤Ê¤¦¡£

Oz¤Ï¡¢Ê¹ԡ¿À©ÌóÏÀÍý¥×¥í¥°¥é¥ß¥ó¥°¤ËͳÍ褹¤ë¡£ Oz·×²è¤ÎÌÜɸ¤Ï¡¢Àë¸ÀŪ¤ÊÉôʬ½¸¹ç¤À¤±¤Ç¤Ê¤¯¡¢ ·×»»¤ÎÁ´¤Æ¤Î¦Ì̤ËÂФ·¤Æ¶¯¸Ç¤Ê´ðÁäòÄ󶡤¹¤ë¤³¤È¤Ç¤¢¤ë¡£ ¤½¤Î°ÕÌ£ÏÀ¤Ï´°Á´¤ËÄêµÁ¤µ¤ì¡¢ÁàºîŪ¤Ê¦Ì̤ò¥ª¡¼¥×¥ó¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£ Î㤨¤Ð¡¢Ê¹ÔÀ­¤Èʸ¤Î¼Â¹Ô¤Ë¤è¤Ã¤Æ¡¢ ³°³¦¤ËÈ¿±þ¤¹¤ë¥×¥í¥°¥é¥à¤ò½ñ¤­¤ä¤¹¤¯¤Ê¤ë[11]¡£ ¿¿¤Î¹â³¬À­¤Î·ë²Ì¡¢¥³¥ó¥Ñ¥¯¥È¤Ç¥â¥¸¥å¡¼¥ë²½¤µ¤ì¤¿¥×¥í¥°¥é¥à¤¬ÆÀ¤é¤ì¤ë¡£ 1µé·×»»¶õ´Ö¤Ï¡¢¥×¥í¥°¥é¥à¤¬¥·¥¹¥Æ¥àÆâÉô¤Î¥¨¥ó¥¸¥ó¤Ë´³¾Ä¤¹¤ë¤³¤È¤òµö¤¹¡£ Î㤨¤Ð¡¢Æȼ«¤Î¸¡º÷Àïά¤ò»ý¤Ä¡¢Ê£¿ô¤ÎʹÔ1µéProlog¥È¥Ã¥×¥ì¥Ù¥ë¤ò ´Êñ¤Ë¥×¥í¥°¥é¥à¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë[31]¡£

Âè3.1Àá¤Ç¡¢³Ë¸À¸ì¤È¤½¤Î¾å¤Ëºî¤ê¾å¤²¤¿Ãê¾Ý¤ò´Þ¤á¡¢ Oz¤Î¥×¥í¥°¥é¥ß¥ó¥°¥â¥Ç¥ë¤Ë¤Ä¤¤¤Æ¤Þ¤È¤á¤ë¡£ Âè3.2Àá¤Ç¤Ï¡¢Oz¤òʬ¤«¤ê¤ä¤¹¤¯¤¹¤ë¤¿¤á¤Ë°ÕÌ£¤Î¤¢¤ëÎã¡¢ ¤¹¤Ê¤ï¤Á±ó³Ö¥á¥½¥Ã¥É¸Æ¤Ó½Ð¤·¤ò¼è¤ê¾å¤²¤ë¡£ Âè3.3Àá¤Ç¤Ï¡¢Oz¤ÈProlog¤òÈæ³Ó¤¹¤ë¡£ ºÇ¸å¤ËÂè3.4Àá¤Ç¡¢Ê¹ÔÏÀÍý¥×¥í¥°¥é¥ß¥ó¥°¤Î ´ÑÅÀ¤«¤éOz¤ÎÎò»Ë¤òį¤á¤ë¡£


3.1 Oz¥×¥í¥°¥é¥ß¥ó¥°¥â¥Ç¥ë (The Oz programming model)

¿Þ6¡§OPM¤Î·×»»¥â¥Ç¥ë
¥Ç¡¼¥¿¥Õ¥í¡¼¥¹¥ì¥Ã¥É Ãê¾Ýµ­²±

´ðËÜ·×»»¥â¥Ç¥ë¤Ï¡¢¥Ç¡¼¥¿¥Õ¥í¡¼¥¹¥ì¥Ã¥É¤«¤é ¸«¤é¤ì¤ëÃê¾Ýµ­²±¤Ç¤¢¤ë¡Ê¿Þ6¤ò¸«¤è¡Ë¡£ ¥¹¥ì¥Ã¥É¤Ïʸ¤ÎÎó¤ò¼Â¹Ô¤·¡¢¥Ç¡¼¥¿¤ÎÍ­¸úÀ­¤Ë¤è¤Ã¤Æ¥Ö¥í¥Ã¥¯¤µ¤ì¤ë¡£ Ãê¾Ýµ­²±¤ÏʪÍý¥á¥â¥ê¤Ç¤Ï¤Ê¤¤¡£ ÆâÉô¤Î¼ÂÂΤËÂФ·¤Æ¹çË¡¤ÊÁàºî¤Î¤ß¤¬µö¤µ¤ì¡¢ ·¿ÊÑ´¹¤ä¥¢¥É¥ì¥¹·×»»¤Ï¤Ê¤¤¡£ Ãê¾Ýµ­²±¤Ï3¤Ä¤ÎÉôʬ¤«¤é¤Ê¤ë¡§ À©Ìóµ­²±¤ÏÊÑ¿ô¤È«Çû¤ò´Þ¤ß»ý¤Á¡¢ ¼ê³¤­µ­²±¤Ï¼ê³¤­¤ÎÄêµÁ¤ò´Þ¤ß»ý¤Á¡¢ ¥»¥ëµ­²±¤ÏÊѹ¹²Äǽ¤Ê¥Ý¥¤¥ó¥¿¡Ê¡Ö¥»¥ë¡×¡Ë¤òÊÝ»ý¤¹¤ë¡£ À©Ìóµ­²±¤È¼ê³¤­µ­²±¤ÏÊѲ½¤Ë˳¤·¤¯¡¢ ¾ðÊ󤬲äï¤ë¤À¤±¤ÇÊѹ¹¤·¤¿¤ê¾Ã¤¨¤¿¤ê¤Ï¤·¤Ê¤¤¡£ ¥¹¥ì¥Ã¥É¤Ï¡¢À©Ìóµ­²±Æâ¤Î¥Ç¡¼¥¿¤ÎÍ­¸úÀ­¤Ë¤è¤Ã¤Æ¥Ö¥í¥Ã¥¯¤µ¤ì¤ë¡£

¿Þ7¡§OPM¤Î³Ë¸À¸ì
S ::= 5¤Ä¤Î¸À¸ì¼ÂÂÎ
local X in S end                        ̤«ÇûÊÑ¿ô
X = f(l1: Y1 ... ln: Yn)                ¥ì¥³¡¼¥É¡¢¿ô¡¢¤Ê¤É
proc{X Y1 ... Yn} S end | {X Y1 ... Yn} ¼ê³¤­
{NewCell Y X} | {Exchange X Y Z}        ÌÀ¼¨¾õÂÖ
thread S end                            ¥¹¥ì¥Ã¥É
À©¸æ¥Õ¥í¡¼
case X==Y then S1 else S2 end            ¾ò·ïʸ
try S1 catch X then S2 end | raise X end Îã³°½èÍý

¥¹¥ì¥Ã¥É¤Ï¡¢Oz¥×¥í¥°¥é¥ß¥ó¥°¥â¥Ç¥ë (OPM) ¤È¤¤¤¦³Ë¸À¸ì ¡Ê¿Þ7[34]¤ò¸«¤è¡Ë¤ò¼Â¹Ô¤¹¤ë¡£ ¿ÞÃæ¤Î¹½Â¤¤ò´Êñ¤ËÀâÌÀ¤¹¤ë¡£ Á´¤Æ¤ÎÊÑ¿ô¤ÏÏÀÍýÊÑ¿ô¤Ç¤¢¤ê¡¢ local¹½Â¤¤Ë¤è¤Ã¤ÆÄêµÁ¤µ¤ì¤¿ÌÀ¼¨Åª¤Ê¥¹¥³¡¼¥×¤ÎÃæ¤ÇÀë¸À¤µ¤ì¤ë¡£ Ã͡ʥ쥳¡¼¥É¡¢¿ô¡¢¤Ê¤É¡Ë¤ÏÌÀ¼¨Åª¤ËƳÆþ¤µ¤ì¡¢ÊÑ¿ô¤ËÂåÆþ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ ¼ê³¤­¤Ïproc¹½Â¤¤Ë¤è¤Ã¤Æ¼Â¹Ô»þ¤ËÄêµÁ¤µ¤ì¡¢ÊÑ¿ô¤«¤é»²¾È¤µ¤ì¤ë¡£ ºÇ½é¤Î¼Â°ú¿ô¤¬¼ê³¤­¤ò»Ø¤¹¤Þ¤Ç¡¢¼ê³¤­¤ÎŬÍѤϥ֥í¥Ã¥¯¤µ¤ì¤ë¡£ ¾õÂÖ¤òÌÀ¼¨Åª¤ËÀ¸À®¤¹¤ëNewCell¤Ï¥»¥ë¡¢¤¹¤Ê¤ï¤Á ¡ÐÀ©Ìóµ­²±Æâ¤ò»Ø¤¹Êѹ¹²Äǽ¤Ê¥Ý¥¤¥ó¥¿¡Ñ¤òÀ¸À®¤¹¤ë¡£ ¥»¥ë¤ÏExchange¤Ë¤è¤Ã¤ÆÆɤޤ줿¤êÊѹ¹¤µ¤ì¤¿¤ê¤¹¤ë¡£ ¥¹¥ì¥Ã¥É¤Ïthread¹½Â¤¤Ë¤è¤Ã¤ÆÌÀ¼¨Åª¤ËÀ¸À®¤µ¤ì¤ë¡£ ¾ò·ïʸ¤Ïcase¥­¡¼¥ï¡¼¥É¤ò»È¤¤¡¢ À©Ìóµ­²±Æâ¤Î¾ò·ï¤¬¿¿¤Þ¤¿¤Ïµ¶¤Ë¤Ê¤ë¤Þ¤Ç¥Ö¥í¥Ã¥¯¤µ¤ì¤ë¡ÊÃí3¡Ë¡£ Îã³°½èÍý¤ÏưŪ¤Ê¥¹¥³¡¼¥×¤ò»ý¤Á¡¢try¹½Â¤¤Èraise¹½Â¤¤ò»È¤¦¡£

Ãí3¡§if¥­¡¼¥ï¡¼¥É¤Ï¡¢À©Ì󥢥ץꥱ¡¼¥·¥ç¥ó¤Î¤¿¤á¤ËͽÌ󤵤ì¤Æ¤¤¤ë¡£

´°Á´¤ÊOz¤Ï¡¢Á´¤Æ¤Îʸ¤ò¤³¤Î´ðËÜ¥â¥Ç¥ë¤ËÊÑ´¹¤¹¤ë¤³¤È¤Ë¤è¤Ã¤ÆÄêµÁ¤µ¤ì¤ë¡£ ´°Á´¤ÊOz¤Ï¡¢¥ª¥Ö¥¸¥§¥¯¥È¡¢¥¯¥é¥¹¡¢Ê£¿ô¼Â¹Ô²Äǽ¤Ê¥í¥Ã¥¯¡¢¥Ý¡¼¥È¤Ê¤É¤Î ɽ¸½¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë[34, 40]¡£ ¥·¥¹¥Æ¥à¤Ï¤³¤ì¤é¤ò¸úΨŪ¤Ë¼ÂÁõ¤¹¤ë¤³¤È¤¬¡¢¤½¤ÎÄêµÁ¤«¤é´üÂÔ¤µ¤ì¤Æ¤¤¤ë¡£ ¼¡¤Ë¤³¤ì¤é¤Îɽ¸½¤Î³µÍפòÄêµÁ¤¹¤ë¡£ ÌÀ³Î¤Ë¤¹¤ë¤¿¤á¤Ë¡¢³µÇ°Åª¤Êñ½ã²½¤ò¾¯¤·¹Ô¤Ê¤Ã¤¿¡£ ´°Á´¤ÊÄêµÁ¤Ï¡¢[9]¤Ë¸«¤é¤ì¤ë¡£


3.2 ¼ÂÎã¤Ë¤è¤ëOz (Oz by example)

¤³¤Îµ­»ö¤ÎÌÜŪ¤Ï¡¢Oz¤ò´°Á´¤ËÀâÌÀ¤¹¤ë¤³¤È¤Ç¤Ï¤Ê¤¤¡£ ¤½¤ÎÂå¤ï¤ê¡¢ÌÌÇò¤¯¤Æ°ÕÌ£¤Î¤¢¤ë¥×¥í¥°¥é¥à¤ÎÎã¤Ë¤è¤Ã¤ÆOz¤òÀâÌÀ¤¹¤ë¡£ Oz¤Ç³èÀ­¥ª¥Ö¥¸¥§¥¯¥È¤ò¼ÂÁõ¤¹¤ëÊýË¡¤ò¼¨¤·¡¢¤µ¤é¤Ë¡¢Æ±¤¸¥×¥í¥°¥é¥à¤¬ Distributed Oz¤Î±ó³Ö¥á¥½¥Ã¥É¸Æ¤Ó½Ð¤·¤ò¼ÂÁõ¤¹¤ë¤³¤È¤ò¼¨¤¹¡£ ³èÀ­¥ª¥Ö¥¸¥§¥¯¥È¤Ï¡¢¥¹¥ì¥Ã¥É¡Ê¤Þ¤¿¤Ï¥×¥í¥»¥¹¡Ë¤ò´ØÏ¢¤Å¤±¤é¤ì¤¿ ¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤¢¤ê¡¢¥¢¥¯¥¿¤äʹÔÏÀÍý¥×¥í¥»¥¹¤ËÎɤ¯»÷¤Æ¤¤¤ë¡£ ³èÀ­¥ª¥Ö¥¸¥§¥¯¥ÈÆâ¤Î¥á¥½¥Ã¥É¸Æ¤Ó½Ð¤·¤Ï¡¢ ÌÀ¼¨Åª¤Ë´ØÏ¢¥¹¥ì¥Ã¥É¤Ø¥á¥Ã¥»¡¼¥¸¤òÁ÷¤ë¤³¤È¤Ë¤è¤Ã¤Æ¹Ô¤Ê¤ï¤ì¤ë¡£ ¸å¤Ç¸«¤ë¤è¤¦¤Ë¡¢¤³¤Î¼ï¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ÏDistributed Oz¤Ç ¤­¤Á¤ó¤ÈÄêµÁ¤µ¤ì¤¿Ê¬»¶¹ÔÆ°¤ò»ý¤Ä¡£ Distributed Oz¤Î¥¹¥ì¥Ã¥É¤Ï°ÜÆ°¤·¤Ê¤¤¤Î¤Ç¡¢ ³èÀ­¥ª¥Ö¥¸¥§¥¯¥È¤â°ÜÆ°¤»¤º¡¢À¸À®¤µ¤ì¤¿¥µ¥¤¥È¤Ëα¤Þ¤ë¡£ ±ó³Ö¥µ¥¤¥È¤«¤é¤Î¥ª¥Ö¥¸¥§¥¯¥È¸Æ¤Ó½Ð¤·¤Ï¡¢ ±ó³Ö¥á¥½¥Ã¥É¸Æ¤Ó½Ð¤·¤ÎÎɤ¯ÃΤé¤ì¤¿¥Ñ¥é¥À¥¤¥à¤òƳ¤¯¡£

¤¢¤ë¥ª¥Ö¥¸¥§¥¯¥È¤¬¡¢Í¿¤¨¤é¤ì¤¿¥µ¥¤¥È¾å¤Î ¥¹¥ì¥Ã¥É¤«¤é¸Æ¤Ó½Ð¤µ¤ì¤¿¤â¤Î¤È¤¹¤ë¡£ ¤³¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Ï¡¢¤É¤³¤Ç¼Â¹Ô¤µ¤ì¤ë¤Î¤«¡© ¥Í¥Ã¥È¥ï¡¼¥¯Æ©ÌÀ¤Ê¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¤³¤Î¼ÁÌä¤ËÂФ·¤Æ¤¤¤¯¤Ä¤«¤ÎÅú¤¬¤¢¤êÆÀ¤ë¡£ Distributed Oz¤Ç¤Ï¡¢¥ª¥Ö¥¸¥§¥¯¥È¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç µ¡Æ°À­¤ò»ý¤Á¡¢¸Æ¤Ó½Ð¤·¤¿¥µ¥¤¥È¤Ç¼Â¹Ô¤µ¤ì¤ë¡£ ¥ª¥Ö¥¸¥§¥¯¥È¤Ï¡¢¸Æ¤Ó½Ð¤·¤¿¥¹¥ì¥Ã¥É¤ÎÆâÉô¤Ç¼Â¹Ô¤µ¤ì¤ë¡£ ¤³¤ì¤Ï·ÚÎ̵¡Æ°¥×¥í¥È¥³¥ë¤Ë¤è¤ê¡¢¥ª¥Ö¥¸¥§¥¯¥È¤Î¾õÂ֥ݥ¤¥ó¥¿¤Î ·ÐÏ©¤ò¸Æ¤Ó½Ð¤·¤¿¥µ¥¤¥È´Ö¤ÇľÎ󲽤¹¤ë¤³¤È¤Ç¼ÂÁõ¤µ¤ì¤ë ¡ÊÂè4Àá¤ò¸«¤è¡Ë¡£

¿Þ8¡§RMIÂè1Éô¡§Ç¤°Õ¤Î¥¯¥é¥¹¤«¤é¡¢°ÜÆ°¤·¤Ê¤¤¥ª¥Ö¥¸¥§¥¯¥È¤òÀ¸À®¤¹¤ë
proc {NewStationary Class Init ?StatObj}
  Obj = {New Class Init}
  S P = {NewPort S}
  N = {NewName}
in
  thread
    {ForAll S
     proc {$ M#R}
       thread
         try {Obj M} R=N
         catch E then R=E end
       end
     end}
  end
  proc {StatObj M}
    R in
    {Send P M#R}
    case R==N then skip
    else raise R end
    end
  end
end

Á´¤Æ¤Î¥á¥½¥Ã¥É¤¬¤¢¤ë¥µ¥¤¥È¤Ç¼Â¹Ô¤µ¤ì¤ë¤è¤¦¤Ê¡¢ °ÜÆ°¤·¤Ê¤¤¥ª¥Ö¥¸¥§¥¯¥È¤òÄêµÁ¤¹¤ë¤³¤È¤Ï²Äǽ¤Ç¤¢¤ë¡£ ¿Þ8¤Ï¡¢¼ê³¤­NewStationary¤òÄêµÁ¤¹¤ë¡£ ¥¯¥é¥¹Class¤È½é´ü²½¥á¥Ã¥»¡¼¥¸Init¤ò¼õ¤±¤È¤ê¡¢¼ê³¤­StatObj¤òÊÖ¤¹¡£ ¡Ö?¡×¤Ï½ÐÎÏ°ú¿ô¤òɽ¤¹¥³¥á¥ó¥È¤Ç¤¢¤ë¡£ NewStationaryÆâÉô¤Ç¤Ï¡¢¥ª¥Ö¥¸¥§¥¯¥ÈObj¡¢ ¥Ý¡¼¥ÈP¤È¤½¤ì¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿¥¹¥È¥ê¡¼¥àS¤¬À¸À®¤µ¤ì¤ë¡£ S¤Ë¥á¥Ã¥»¡¼¥¸¤¬¸½¤ì¤ë¤¿¤Ó¤Ë¡¢¥µ¡¼¥Ó¥¹¤ò¹Ô¤Ê¤¦¥¹¥ì¥Ã¥É¤¬À¸À®¤µ¤ì¤ë¡£ ¤³¤ì¤ò¹Ô¤Ê¤¦¤¿¤á¤Ë¡¢¹â³¬¼ê³¤­ {ForAll S Proc} ¤¬»È¤ï¤ì¤Æ¤¤¤ë¡£ Proc¤Ï1°ú¿ô¼ê³¤­¤Ç¤¢¤ë¡£ ¤³¤Î¥¹¥ì¥Ã¥É¤¬¡¢¥¹¥È¥ê¡¼¥àS¤Ë¥á¥Ã¥»¡¼¥¸X¤¬¸½¤ì¤ë¤Þ¤ÇÂÔ¤Á¡¢ ¼ê³¤­¸Æ¤Ó½Ð¤· {Proc X} ¤ò¼Â¹Ô¤¹¤ë¤³¤È¤ËÃí°Õ¤»¤è¡£ ¤³¤Î¼ê³¤­¤Ï¡¢M#R¤ÎÂФò´üÂÔ¤·¤Æ¤¤¤ë¡£ ¥¹¥ì¥Ã¥É¤¬µ¯Æ°¤·¤Æ¡¢{Obj M} ¤Ë¤è¤Ã¤Æ¥ª¥Ö¥¸¥§¥¯¥È¤ò¸Æ¤Ó½Ð¤·¡¢ Àµ¾ï¼Â¹Ô¤òɽ¤¹Ìµ½ÅÊ£¤Î̾Á°N¤Ë¡¢¤Þ¤¿¤ÏÎã³°E¤ËR¤ò«Çû¤¹¤ë¡£ ¥×¥í¥°¥é¥à¥¹¥³¡¼¥×¤ò»ý¤Ä¿·¤·¤¤Ì¾Á°N¤ò»È¤¦¤³¤È¤Ë¤è¤Ã¤Æ¡¢ Îã³°¤Èº®Æ±¤¬µ¯¤­¤Ê¤¤¤³¤È¤¬Êݾڤµ¤ì¤ë¤Î¤ËÃí°Õ¤»¤è¡£ º£Å٤ϼ곤­StatObj¤ò¹Í¤¨¤è¤¦¡£ StatObj¤ò¼Â¹Ô¤¹¤ë¥¹¥ì¥Ã¥É¤Ï¡¢¥Ý¡¼¥ÈP¤ËÂÐM#R¤òÁ÷¤ë¡£ M¤Ï¥á¥Ã¥»¡¼¥¸¡¢R¤ÏÅú¤òÆÀ¤ëÏÀÍýÊÑ¿ô¤Ç¤¢¤ë¡£ Âбþ¤¹¤ë¥á¥½¥Ã¥É¤Î¼Â¹Ô¤¬Àµ¾ï½ªÎ»¤¹¤ë¤«Îã³°¤¬ÊÖ¤ë¤Þ¤Ç¡¢ ¥¹¥ì¥Ã¥É¤ÏR¤òÂԤäÆÃæÃǤ¹¤ë¡£ ¸å¼Ô¤Î¾ì¹ç¡¢StatObj¤ò¼Â¹Ô¤·¤¿¥¹¥ì¥Ã¥É¤ËÎã³°¤¬Åꤲľ¤µ¤ì¤ë¡£

Oz¤Ë¤è¤Ã¤Æ¡¢¥×¥í¥°¥é¥Þ¤¬¼ÂÁõ¤Ë´Ø¤ï¤é¤º¤Ë»È¤¨¤ë ÈÆÍÑÃê¾Ý¤òÄ󶡤Ǥ­¤ë¤³¤È¤ò¸«¤è¤¦¡£ NewStationary¤ò»È¤¦¤¿¤á¤ËÍý²ò¤¹¤ëɬÍפϤʤ¤¡£ ¤³¤ì¤Ï¡¢NewStationary¤Ë¤è¤Ã¤ÆÀ¸À®¤µ¤ì¤¿¥ª¥Ö¥¸¥§¥¯¥È¤¬ ɸ½à¼ê³¤­New¤Ë¤è¤Ã¤ÆÀ¸À®¤µ¤ì¤¿¤Î¤ÈƱ¤¸Oz¤Î°ÕÌ£ÏÀ¤ò»ý¤Ä¤¿¤á¤Ç¤¢¤ë¡£

¿Þ9¡§RMIÂè2Éô¡§°ÜÆ°¤·¤Ê¤¤·×¿ô¥ª¥Ö¥¸¥§¥¯¥È
class Counter
  attr i
  meth init i<-0 end
  meth inc i<- @i+1 end
  meth get(X) X=@i end
  meth error raise some_error end end
end

Obj = {NewStationary Counter init}
{Obj inc}
{Obj inc}
{Print {Obj get($)}}
try {Obj error} catch X then {Print X} end

¿Þ9¤ÇÄêµÁ¤µ¤ì¤ëCounter¥¯¥é¥¹¤Ï¡¢°ÜÆ°¤·¤Ê¤¤¼ÂÂÎObj¤òÀ¸À®¤·¡¢ ¤¤¤¯¤Ä¤«¤Î¥á¥Ã¥»¡¼¥¸¤òObj¤ØÁ÷¤ë¡£ Obj¤¬NewStationary¤«New¤Î¤É¤Á¤é¤ÇÀ¸À®¤µ¤ì¤¿¤â¤Î¤Ç¤â¡¢ ¸À¸ì¾å¤Î¹ÔÆ°¤ÏƱ¤¸¤Ç¤¢¤ë¡£ Counter¥¯¥é¥¹¤Ï»Ò¹¤ò»ý¤¿¤Ê¤¤¤Î¤Ç¡¢·Ñ¾µÀë¸À¤Ï¸½¤ì¤Ê¤¤¡£ Counter¤Î³Æ¼ÂÂΤϡ¢Â°À­i¤È4¤Ä¤Î¥á¥½¥Ã¥É¤ò»ý¤Ä¡£ °À­¤Ï¡¢¥á¥½¥Ã¥É¤ÎÃ椫¤é¥¢¥¯¥»¥¹¡¢Êѹ¹¤Ç¤­¤ë¼ÂÂΤǤ¢¤ë¡£ ¥á¥½¥Ã¥É¤ÎÄêµÁ¤Ï¡¢¡Ê°ìÈ̤ˡ˥쥳¡¼¥É¤Ç¤¢¤ë¥á¥½¥Ã¥ÉƬÉô¤È¡¢ self¤Ë¤è¤ëưŪ«Çû¤¬²Äǽ¤Êʸ¤Ç¤¢¤ë¥á¥½¥Ã¥ÉËÜÂΤ«¤é¤Ê¤ë¡£ °À­ÃͤؤΥ¢¥¯¥»¥¹¤Ï¡¢±é»»»Ò¡Ö@¡×¤Ë¤è¤Ã¤Æ¹Ô¤Ê¤ï¤ì¤ë¡£ °À­¤Ë¿·¤·¤¤ÃͤòÂåÆþ¤¹¤ë¤Ë¤Ï¡¢±é»»»Ò¡Ö<-¡×¤ò»È¤¦¡£ ½¾¤Ã¤Æ¡¢¥á¥½¥Ã¥Éinit¤Ïi¤ò0¤Ë½é´ü²½¤·¡¢¥á¥½¥Ã¥Éinc¤Ïi¤òÁýʬ¤·¡¢ ¥á¥½¥Ã¥Éget¤Ïi¤Î¸½ÃͤòÆÀ¡¢¥á¥½¥Ã¥Éerror¤Ï²¿¤«ÊѤÊÎã³°some_error¤òÅꤲ¤ë¡£ Oz¤Î¹½Ê¸¤Ï¡¢¼°¤Ëʸ¤òËä¤á¹þ¤à¤³¤È¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£ ʸ¤ò¼°¤È¤·¤Æ»È¤¦¤Ë¤Ï¡¢·ë²Ì¤Ë¡Ö$¡×¤È°õ¤òÉÕ¤±¤ë¡£ ½¾¤Ã¤Æ¡¢{Print {Obj get($)}} ¤Ï¡¢ local X in {Obj get(X)} {Print X} end ¤ÈÅù²Á¤Ç¤¢¤ë¡£


3.3 Oz¤ÈProlog (Oz and Prolog)

ɽ1¡§Oz¤ÈProlog
SICStus Prolog Oz
À©Ìó Áýʬ²ò·è¤ÎÅú Áýʬ²ò·è¤ËÂФ¹¤ë¼ÁÌä¤ÈÅú
À©¸æ ¸åÌá¤ê¤È¥³¥ë¡¼¥Á¥ó ÌÀ¼¨Åª¤Ê¥Ç¡¼¥¿¥Õ¥í¡¼¥¹¥ì¥Ã¥É¡¢¥«¥×¥»¥ë²½¤µ¤ì¤¿¸¡º÷
¹â³¬ ¸Æ¤Ó½Ð¤·¡¢¸ÀÌÀ ¥×¥í¥°¥é¥à¥¹¥³¡¼¥×¤ò»ý¤Ä1µé¼ê³¤­
¾õÂÖ ¥ª¥Ö¥¸¥§¥¯¥È¡¢Êѹ¹²ÄǽÊÑ¿ô¡¢¸ÀÌÀ ¥ª¥Ö¥¸¥§¥¯¥È¡¢¥»¥ë

Oz¤ÏProlog¤Î»Ò¹¤Ç¤¢¤ë¤È¤¤¤¦´¶¤¸¤¬¶¯¤¤¡Êɽ1¤ò¸«¤è¡Ë¡£ Prolog¤äʹÔÏÀÍý¥×¥í¥°¥é¥ß¥ó¥°¤¬º£Æü»È¤ï¤ì¤Æ¤¤¤ë¿¤¯¤Î¥¿¥¹¥¯¤Ë¡¢ Oz¥·¥¹¥Æ¥à¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë[22, 31, 12, 35]¡£ PrologƱÍÍ¡¢Oz¤ÏÀë¸ÀŪ¤ÊÉôʬ½¸¹ç¤ò»ý¤Ä¡£ PrologƱÍÍ¡¢Oz¤ÏǤ°Õ¤ÎÀ©Ìó¥·¥¹¥Æ¥à¡Ê¸½ºß¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¤Î¤Ï Í­¸ÂÎΰè¤È¡¢»ÅÍͤΥª¡¼¥×¥ó¤Ê¹½Â¤¤Ç¤¢¤ë¡Ë¤Ë°ìÈ̲½¤µ¤ì¤¿¡£ ¸å½Ò¤¹¤ë¤è¤¦¤Ë¡¢Oz¤ÏProlog¤ÎÌäÂê¤Î¿¤¯¤ò²ò·è¤¹¤ë¡£ Oz¤Ï´°Á´¤ËÄêµÁ¤µ¤ì¤Æ¤ª¤ê¡¢ ºÇ¹â¤ÎProlog¥·¥¹¥Æ¥à¤ËɤŨ¤¹¤ë¸úΨŪ¤Ê¼ÂÁõ¤¬¹Ô¤Ê¤ï¤ì¤Æ¤¤¤ë [11, 25, 38]¡£ ¤·¤«¤·¡¢Oz¤ÏProlog¤È¿¤¯¤Î¶¦ÄÌÅÀ¤ò»ý¤Ä¡¢Prolog¤ÎÊñ´Þ½¸¹ç¤Ç¤¢¤ë¡£ Oz¤Ï¡¢Prolog¤ÎÈ¿¼Í¹½Ê¸¤È¡¢¡Êcall/1, assert/1¤Î¤è¤¦¤Ê¡Ë¥á¥¿ ¥×¥í¥°¥é¥ß¥ó¥°µ¡Ç½¤ä¥æ¡¼¥¶ÄêµÁ¹½Ê¸¡Ê±é»»»ÒÀë¸À¡Ë¤ò»ý¤¿¤Ê¤¤¡£

Prolog¤¬À®¸ù¤·¤¿´ðÁäϡ¢Àë¸ÀŪ¤ÊÉôʬ½¸¹ç¤Î¹âµé¤ÊÃê¾Ý²½¡¢ ¤¹¤Ê¤ï¤Á1³¬¥Û¡¼¥óÀáÏÀÍý¤ÈSLDNF²òË¡¤Ë¤è¤ë[19]¡£ Prolog¤ËÉÔ­¤·¤Æ¤¤¤¿¤Î¤Ï¡¢Àë¸ÀŪ¤ÊÉôʬ½¸¹ç¤Î³°Éô¤Ë Ʊ¤¸´ðÁäòÍ¿¤¨¤è¤¦¤È¤¤¤¦»î¤ß¤Ç¤¢¤ë¡£ 20ǯ´Ö¤Î¸¦µæ¤Î·ë²Ì¡¢Àë¸ÀŪ¤ÊÉôʬ½¸¹ç¤Ï¶¯¤¤Íý²ò¤òÆÀ¤¿¤¬¡¢ ¤½¤ì°Ê³°¤ÎÉôʬ¤ÏÉôʬŪ¤Ë¤·¤«Íý²ò¤Ç¤­¤Æ¤¤¤Ê¤¤¡ÊÃí4¡Ë¡£ ¤³¤Î·ë²Ì¡¢Prolog¤Ë2¤Ä¤Î¼çή¤¬À¸¤Þ¤ì¤¿¡£ Âè1¤Ë¡¢ÁàºîŪ¤Ê¦Ì̤ÏÀë¸ÀŪ¤Ê¦Ì̤Ȥ¢¤Þ¤ê¤Ë¿¼¤¯·ë¤ÓÉÕ¤¤¤Æ¤¤¤ë¤È¤¤¤¦¤â¤Î¡£ À©¸æ¤Ïñ½ã¡Ê¿¼¤µÍ¥Àèõº÷¡Ë¤Ç¡¢ÀѶËŪ¤Ç¤¢¤ë¡£ È¿±þ¤¬ÆÀ¤é¤ì¤ë¥È¥Ã¥×¥ì¥Ù¥ë¤ÏÆÃÊ̤ʾõÂÖ¤ò»ý¤Ä¡§ ¥È¥Ã¥×¥ì¥Ù¥ë¤Ï¾Ã¶ËŪ¤Ç¥×¥í¥°¥é¥à¤«¤é¥¢¥¯¥»¥¹¤Ç¤­¤Ê¤¤¡£ Âè2¤Ë¡¢Àë¸ÀŪ¤ÊÉôʬ½¸¹ç¤«¤é³°¤ì¤¿¤â¤Î¤òɽ¸½¤¹¤ë¤Ë¤Ï¡¢ ¾ï¤ËÀµ¤·¤¤¤³¤È¤ò¤¹¤ë¤È¤Ï¸Â¤é¤Ê¤¤À©¸Â¤µ¤ì¤¿ ¥¢¥É¥Û¥Ã¥¯¤Ê¥×¥ê¥ß¥Æ¥£¥Ö¤ò»È¤¦É¬Íפ¬¤¢¤ë¤È¤¤¤¦¤â¤Î¡£ freeze/2¤Ï¡¢À©¸Â¤µ¤ì¤¿Ê¹ÔÀ­¤ò»ý¤Ä¥³¥ë¡¼¥Á¥ó¤òÄ󶡤¹¤ë¡£ call/1¤Èsetof/3¤Ï¡¢À©¸Â¤µ¤ì¤¿¹â³¬À­¤òÄ󶡤¹¤ë¡£ ¤³¤ì¤é¤ÎÌäÂê¤ÏÁ´¤Æ¡¢Oz¤Ç²ò·è¤µ¤ì¤Æ¤¤¤ë¡£

Ãí4¡§Àë¸ÀŪ¤Ç¤Ê¤¤Â¦Ì̤ËÂФ¹¤ë´Ø¿´¤Ï¡¢Î㤨¤Ð[26, 29, 3]¤Ë¸«¤é¤ì¤ë¡£

3.4 Oz¤ÈʹÔÏÀÍý¥×¥í¥°¥é¥ß¥ó¥° (Oz and concurrent logic programming)

ɽ2¡§Oz¤ÈʹÔÏÀÍý¥×¥í¥°¥é¥ß¥ó¥°
ʹÔÏÀÍý¥×¥í¥°¥é¥ß¥ó¥° Oz
À©Ìó AKL°Ê³°¤Ï¡¢¤Ê¤¤ Áýʬ²ò·è¤ËÂФ¹¤ë¼ÁÌä¤ÈÅú
À©¸æ ÈùγÅÙ¤ÎʹÔÀ­ ÌÀ¼¨Åª¤Ê¥Ç¡¼¥¿¥Õ¥í¡¼¥¹¥ì¥Ã¥É¡¢¥«¥×¥»¥ë²½¤µ¤ì¤¿¸¡º÷
¹â³¬ ¸ÂÄꤵ¤ì¤Æ¤¤¤ë ¥×¥í¥°¥é¥à¥¹¥³¡¼¥×¤ò»ý¤Ä1µé¼ê³¤­
¾õÂÖ ¥¹¥È¥ê¡¼¥à¤Ë´ð¤Å¤¯¥ª¥Ö¥¸¥§¥¯¥È ¥ª¥Ö¥¸¥§¥¯¥È¡¢¥»¥ë

Oz¤ÏŤ¤Îò»Ë¤ò»ý¤ÄʹÔÏÀÍý¸À¸ì¤Î¤¦¤ÁºÇ¿·¤Î¤â¤Î¤Ç¤¢¤ë¡£ ɽ2¤Ï¡¢Oz¤ÈʹÔÏÀÍý¥×¥í¥°¥é¥ß¥ó¥°¸À¸ì¤ÎÈæ³Ó¤Ç¤¢¤ë¡£ ʹÔÀ­¤òºÇ½é¤Ë¼Â¸³¤·¤¿·É¤¦¤Ù¤­IC-Prolog¥·¥¹¥Æ¥à¤Ï¡¢ ¥³¥ë¡¼¥Á¥ó¤ò»È¤Ã¤ÆÊÂ¹Ô¥×¥í¥»¥¹¤ò¥·¥ß¥å¥ì¡¼¥È¤·¤¿¡£ ¤³¤³¤«¤é¡¢Parlog¸À¸ì¤ÈConcurrent Prolog¤¬À¸¤Þ¤ì¤¿¡£ GHC¤ÎÅоì¤Ë¤è¤Ã¤ÆÉÔ³èÀ­¥¬¡¼¥É¤Î³µÇ°¤¬Æ³Æþ¤µ¤ì¡¢ ʹÔÏÀÍý¥×¥í¥°¥é¥ß¥ó¥°¤Ï¤«¤Ê¤êñ½ã²½¤µ¤ì¤¿¡£ ¥´¡¼¥ë¤Ë¥Þ¥Ã¥Á¤¹¤ëÀ᤬¼Â¹Ô¤µ¤ì¤ë¤Î¤Ï¡¢ ¤½¤Î¥¬¡¼¥É¤¬À©Ìóµ­²±¤Ë´Þ¤Þ¤ì¤ë¤È¤­¤Î¤ß¤Ç¤¢¤ë¡£ ¤³¤ÎÄê¼°²½¤ÈÍýÏÀŪ¤Ê»Ù¤¨¤Ï¡¢Maher¤ÈSaraswat¤Ë¤è¤Ã¤Æ³«Â󤵤졢 ʹÔÏÀÍý¥×¥í¥°¥é¥ß¥ó¥°¤Î¶¯¸Ç¤Ê´ðÁäȤʤä¿ [21, 30]¡£ ¼ÂÍÑÌ̤Ǥϡ¢Concurrent Prolog¤ÈGHC¤Î¥Õ¥é¥Ã¥ÈÈǤ¬¡¢¤½¤ì¤¾¤ìFCP¡¢ FGHC¤È¸Æ¤Ð¤ì¡¢Â¿¤¯¤ÎÀ®²Ì¤Î¾ÇÅÀ¤È¤Ê¤Ã¤¿[33]¡£ KL1¸À¸ì¤ÏFGHC¤«¤éÇÉÀ¸¤·¡¢¸úΨ¤ÎÎɤ¤KLIC¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ¼ÂÁõ¤µ¤ì¤¿¡£ ¤³¤Î¥·¥¹¥Æ¥à¤Ï¡¢Ã༡¡¢ÊÂÎó¡¢Ê¬»¶¥Þ¥·¥ó¾å¤ÇÆ°¤¯[8]¡£ ¸½ºßDistributed Oz¥·¥¹¥Æ¥à¤Î¼ÂÁõµ»½Ñ¤Î¿¤¯¡¢ ÆäËʬ»¶¥´¥ß½¸¤á¥¢¥ë¥´¥ê¥º¥à¤Ï¡¢KLIC¤«¤é¼Ú¤ê¤¿¤â¤Î¤Ç¤¢¤ë¡£

¤½¤Î¸å¤Î½ÅÍפÊȯŸ¤ÏAKL (Andorra Kernel Language) [14]¤Ç¡¢¥Ý¡¼¥È·Á¼°¤ÎÌÀ¼¨¾õÂÖ¤ò²Ã¤¨¡¢ ʹԡ¿À©ÌóÏÀÍý¥×¥í¥°¥é¥ß¥ó¥°¤òºÇ½é¤Ë¹çÀ®¤·¤¿¡£ AKL¤Ï¡¢¥Í¥¹¥È¤µ¤ì¤¿·×»»¶õ´Ö¤ò»È¤Ã¤Æ¸¡º÷¤ò¥«¥×¥»¥ë²½¤·¤¿¡£ ·×»»¶õ´Ö¤Ï¡¢¥´¡¼¥ë¤ò´ØÏ¢¤Å¤±¤é¤ì¤¿À©Ìóµ­²±¤Ç¤¢¤ë¡£ ¼ê³¤­¤¬ÃΤ俤³¤Ã¤Á¤ã¤Ê¤¤¥¬¡¼¥ÉÀá¤ÎÎó¤òÄêµÁ¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢ ¸¡º÷¤¬¹Ô¤ï¤ì¤ë¡£ ¶É½êÅÁÇŤ¬Àá¤òÁª¤Ù¤Ê¤¤¤È¤­¡¢¥×¥í¥°¥é¥à¤Ï·×»»¶õ´Ö¤Î ¥¯¥í¡¼¥ó¤òºî¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢¼«Í³¤Ë»î¹Ô¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ ½é´ü¤ÎOz¥·¥¹¥Æ¥à¡¢Oz 1¤ÏÂ礭¤¯AKL¤Ë¤è¤Ã¤Æ¤¤¤¿¤¬¡¢ ¹â³¬¼ê³¤­¤Î³µÇ°¡¢1µé·×»»¶õ´Ö¤Ë¤è¤Ã¤Æ¤â¤Ã¤ÈÀ©¸æ²Äǽ¤Ê¸¡º÷¡¢ Ê£¹ç¹½Ê¸¡¢Êѹ¹²Äǽ¾õÂÖÍѤΥ»¥ë¥×¥ê¥ß¥Æ¥£¥Ö¤¬²Ã¤¨¤é¤ì¤Æ¤¤¤¿¡£ Oz 1¤ÎʹÔÀ­¤ÏÈùγÅ٤Ǥ¢¤ë¡£ ÃæÃǤ·¤¿Ê¸¤Ï¥¹¥ì¥Ã¥É¤ò¥Õ¥©¡¼¥¯¤·¡¢ ¥á¥¤¥ó¥¹¥ì¥Ã¥É¤Î·×»»¤Ï¼«Æ°Åª¤Ë¼¡¤Îʸ¤Î¼Â¹Ô¤ò³¤±¤ë¡£

Oz 1°ÊÁ°¤ÎʹÔÏÀÍý¸À¸ì¤ÏÁ´¤Æ¡¢ÈùγÅÙ¤ÎʹÔÀ­¤È °ÅÌÛ¤ÎÊÂÎóÍøÍѤòÌÜɸ¤ËÀ߷פµ¤ì¤¿¡£ ¸½ºß¤ÎOz¸À¸ì¡¢Oz 2¤Ï¤³¤Î¥â¥Ç¥ë¤ò¼Î¤Æ¡¢ ¥¹¥ì¥Ã¥ÉÀ¸À®¹½Â¤¤Ë¤è¤Ã¤ÆʹÔÀ­¤òÌÀ¼¨Åª¤ËÀ©¸æ¤¹¤ë¤³¤È¤òÁª¤ó¤À¡£ ¥¹¥ì¥Ã¥É¤ÎÃæÃǤȺƳ«¤Ï¤Þ¤À¡¢ ÏÀÍýÊÑ¿ô¤ò»È¤Ã¤¿¥Ç¡¼¥¿¥Õ¥í¡¼¤Ë´ð¤Å¤¤¤Æ¤¤¤ë¡£ ²æ¡¹¤Î¼Â¸³¤Ë¤è¤Ã¤Æ¡¢Ê¹ÔÀ­¤ÎÌÀ¼¨¤Ç¥æ¡¼¥¶¤¬ ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó»ñ¸»¤òÀ©¸æ¤·¤ä¤¹¤¯¤Ê¤ë¤³¤È¤¬Ê¬¤«¤Ã¤¿¡£ ¤³¤Î¤¿¤á¡¢¸À¸ì¤Ï¥á¥½¥Ã¥ÉÄêµÁ¤ÎÃæ¤ÇÃ༡¾õÂ֤Υ¹¥ì¥Ã¥É¤òºî¤é¤º¤Ë¡¢ ¸úΨŪ¤Çɽ¸½ÎϤΤ¢¤ë¥ª¥Ö¥¸¥§¥¯¥È»Ø¸þ¥â¥Ç¥ë¤ò»ý¤Ä¡£ ¤Þ¤¿¡¢ÅÁÅýŪ¤ÊÎã³°½èÍý¹½Â¤¤È¡¢ºÇ¿·¤À¤¬ºÇ¾®¤Ç¤Ê¤¤ ñ½ã¤Ê¥Ç¥Ð¥Ã¥°¥â¥Ç¥ë¤ò¸À¸ì¤Ë´Êñ¤Ë²Ã¤¨¤ë¤³¤È¤¬¤Ç¤­¤¿¡£ ¸½ºß¤ÎOz¥·¥¹¥Æ¥à¤ÎʹÔÀ­¤Ï¡¢¤Û¤È¤ó¤É¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÎÏÀÍýŪʹÔÀ­¤ò ¥â¥Ç¥ë²½¤¹¤ë¤Î¤Ë»È¤ï¤ì¡¢ÀøºßŪʹÔÀ­¤òÁý¤ä¤¹¤¿¤á¤Ë¤Ï»È¤ï¤ì¤Ê¤¤¡£



4 Distributed Oz

ɽ3¡§Distributed Oz¤Î°ÕÌ£ÏÀ
¼ÂÂΤμïÎà ¥×¥í¥È¥³¥ë ¼ÂÂÎ
¾õÂ֤ʤ· ºÆ¸½À­ ÀѶËŪ
¾Ã¶ËŪ
¥ì¥³¡¼¥É¡¢¼ê³¤­¡¢¥¯¥é¥¹
¥ª¥Ö¥¸¥§¥¯¥È¥ì¥³¡¼¥É
ñ°ìÂåÆþ ºï½ü ÀѶËŪ
¾Ã¶ËŪ
ÏÀÍýÊÑ¿ô
ÏÀÍýÊÑ¿ô
¾õÂÖÊѲ½¤¹¤ë ¶É½ê²½ µ¡Æ°À­¤ò»ý¤Ä
°ÜÆ°¤·¤Ê¤¤
¥»¥ë¡¢¥ª¥Ö¥¸¥§¥¯¥È¾õÂÖ
¥Ý¡¼¥È¡¢¥¹¥ì¥Ã¥É

Distributed Oz¤Ï¡¢Oz¤ÈƱ¤¸¸À¸ì°ÕÌ£ÏÀ¤ò»ý¤Ä¡£ Distributed Oz¤Ï¸À¸ì¤Î¼ÂÂÎÁ´¤Æ¤Ëʬ»¶°ÕÌ£ÏÀ¤òÄêµÁ¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢ ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Îµ¡Ç½¤Èʬ»¶¹½Â¤¤òʬ¤±¤ë¡£ ʬ»¶°ÕÌ£ÏÀ¤Ï¡¢¥µ¥¤¥È¤Î³µÇ°¤ò¹Íθ¤·¤¿¸À¸ì°ÕÌ£ÏÀ¤Î³ÈÄ¥¤Ç¤¢¤ë¡£ ʬ»¶°ÕÌ£ÏÀ¤ÎÄêµÁ¤Ï¡¢·×»»¤¬Ê£¿ô¥µ¥¤¥È¤Ëʬ³ä¤µ¤ì¤¿¤È¤­ ¥Í¥Ã¥È¥ï¡¼¥¯Áàºî¤ò¸Æ¤Ó½Ð¤¹¤â¤Î¤Ç¤¢¤ë¡£ ¸À¸ì¤Î¼ÂÂΤϡ¢´ðËÜŪ¤Ê3¼ïÎà¤ËʬÎह¤ë¤³¤È¤¬¤Ç¤­¤ë¡Êɽ3¤ò¸«¤è¡Ë¡§

³Æ¼ÂÂΤËÂФ¹¤ë¥Í¥Ã¥È¥ï¡¼¥¯Áàºî¤Ïͽ¬²Äǽ¤Ç¡ÊÃí5¡Ë¡¢ ¥×¥í¥°¥é¥Þ¤Ë¥Í¥Ã¥È¥ï¡¼¥¯ÄÌ¿®¤ò´ÉÍý¤¹¤ëǽÎϤòÍ¿¤¨¤ë¡£ ¤³¤ÎÀá¤Î»Ä¤ê¤Ç¤Ï¡¢¸À¸ì¼ÂÂΤò¼ÂÁõ¤¹¤ë¤Î¤Ë»È¤ï¤ì¤ë 4¼ï¤Îʬ»¶¥¢¥ë¥´¥ê¥º¥à¤òÄ󼨤¹¤ë¡£ Âè4.1Àá¤Ç¤Ï¥¢¥¯¥»¥¹¹½Â¤¤Î³µÇ°¤òƳÆþ¤·¡¢ Ê£¿ô¥µ¥¤¥È¤«¤é¥¢¥¯¥»¥¹²Äǽ¤Ê¸À¸ì¼ÂÂΤò¥â¥Ç¥ë²½¤¹¤ë¡£ ¸À¸ì¼ÂÂΤÎʬ»¶¹ÔÆ°¤Ï¡¢¤½¤Î¥¢¥¯¥»¥¹¹½Â¤¤Î¥Î¡¼¥É´Ö¤Î ¥×¥í¥È¥³¥ë¡¢¤¹¤Ê¤ï¤Áʬ»¶¥¢¥ë¥´¥ê¥º¥à¤È¤·¤ÆÄêµÁ¤µ¤ì¤ë¡£ Âè4.2Àá¤Ç¤Ïʬ»¶ÏÀÍýÊÑ¿ô¤ÎĹ½ê¤òÀâÌÀ¤·¡¢ ÊÑ¿ôºï½ü¥×¥í¥È¥³¥ë¤Ë¤è¤ë¼ÂÁõ¤ò¼¨¤¹¡£ Âè4.3Àá¤ÈÂè4.4Àá¤Ç¤Ï¡¢¥ª¥Ö¥¸¥§¥¯¥È¥ì¥³¡¼¥ÉÍѤξö˺Ƹ½ ¥×¥í¥È¥³¥ë¡ÊÂè4.3Àá¤Ç½Ò¤Ù¤ë¡Ë¤È¥ª¥Ö¥¸¥§¥¯¥È¾õÂÖÍѤε¡Æ°¾õÂÖ ¥×¥í¥È¥³¥ë¡ÊÂè4.4Àá¤Ç½Ò¤Ù¤ë¡Ë¤ò»È¤Ã¤Æ¡¢Í½Â¬²Äǽ¤Ê¥Í¥Ã¥È¥ï¡¼¥¯ ¹ÔÆ°¤ò¤È¤ëµ¡Æ°¥ª¥Ö¥¸¥§¥¯¥È¤òºî¤ëÊýË¡¤ò¼¨¤¹¡£ ÏÀÍýÊÑ¿ô¤È¥ª¥Ö¥¸¥§¥¯¥È¤Î¥Í¥Ã¥È¥ï¡¼¥¯¹ÔÆ°¤Ï¡¢ Distributed Oz¤ÎÀ߷ץݥꥷ¡¼¤òºÇ¤âÌÀ³Î¤Ëɽ¤¹¡£ ºÇ¸å¤ËÂè4.5Àá¤Ç¡¢¥¢¥¯¥»¥¹¹½Â¤´ÉÍý¤Î²¼¤Ë¤¢¤ë ʬ»¶¥´¥ß½¸¤á¥¢¥ë¥´¥ê¥º¥à¤ò½Ò¤Ù¤ë¡£ ¤â¤Ã¤È¾Ü¤·¤¤¾ðÊó¤Ï¡¢[40, 39, 10]¤ò»²¾È¤·¤ÆÍߤ·¤¤¡£

Ãí5¡§¥Í¥Ã¥È¥ï¡¼¥¯¤Î¥Û¥Ã¥×¿ô¤Ë¤è¤Ã¤Æ¡£

4.1 ʬ»¶¥°¥é¥Õ (The distribution graph)

¿Þ10¡§¸À¸ì¼ÂÂΤòɽ¤¹¥°¥é¥ÕÃæ¤Î¥Î¡¼¥É
ÊÑ¿ô¡Ê̤«Çû¡Ë ¥ì¥³¡¼¥É¡Ê¤È¥Õ¥£¡¼¥ë¥É¡Ë ¥¹¥ì¥Ã¥É¡Ê¤È»²¾È¡Ë
¥»¥ë¡Ê¾õÂ֥ݥ¤¥ó¥¿¡Ë ¼ê³¤­¡Ê¤È³°Éô»²¾È¡Ë

ʬ»¶¥°¥é¥Õ¤Î³µÇ°¤ò»È¤Ã¤Æ¡¢ ñ½ã¤À¤¬¸·Ì©¤Ëʬ»¶¼Â¹Ô¤ò¥â¥Ç¥ë²½¤¹¤ë¡£ ¤³¤ÎÀá¤ÎÀâÌÀ¤Ï¡¢Ëܵ­»ö¤òÍý²ò¤¹¤ë¤Î¤Ë½½Ê¬´°Á´¤Ç¤¢¤ë¡£ ¥·¥¹¥Æ¥à¤ÎǤ°Õ¤Î¼Â¹Ô¾õÂÖ¤«¤é¡¢2¤Ä¤ÎÃʳ¬¤ò·Ð¤Æʬ»¶¥°¥é¥Õ¤òÆÀ¤ë¡£ Âè1Êâ¤Ïʬ»¶¤È¤ÏÆÈΩ¤Ç¤¢¤ë¡£ ¼Â¹Ô¾õÂÖ¤ò¥â¥Ç¥ë²½¤·¤¿¥°¥é¥Õ¡¢¤¹¤Ê¤ï¤Á¸À¸ì¥°¥é¥Õ¤ÎÃæ¤Ç¤Ï¡¢ ¥ª¥Ö¥¸¥§¥¯¥È¤ò½ü¤¯³Æ¸À¸ì¼ÂÂΤÏ1¤Ä¤Î¥Î¡¼¥É¤ËÁêÅö¤¹¤ë¡Ê¿Þ10¤ò¸«¤è¡Ë¡£ ¥ª¥Ö¥¸¥§¥¯¥È¤ÏÊ£¹ç¼ÂÂΤǤ¢¤ê¡¢Âè4.3Àá¤ÇÀâÌÀ¤¹¤ë¡£

¿Þ11¡§Ê¬»¶¥°¥é¥ÕÃæ¤Î¥¢¥¯¥»¥¹¹½Â¤
¸À¸ì¥°¥é¥Õ¢«¢ªÊ¬»¶¥°¥é¥Õ

Âè2Êâ¤Ç¤Ï¡¢¥µ¥¤¥È¤Î³µÇ°¤òƳÆþ¤¹¤ë¡£ ¥µ¥¤¥È¤ÎÍ­¸Â½¸¹ç¤ò¹Í¤¨¡¢³Æ¥Î¡¼¥É¤ò¥µ¥¤¥È¤Ë²Ã¤¨¤Æ¤ß¤è¤¦¡Ê¿Þ11¤ò¸«¤è¡Ë¡£ ¤¢¤ë¥Î¡¼¥É¡¢Î㤨¤ÐN2¤¬¾¯¤Ê¤¯¤È¤â1¤Ä°Ê¾å¤Î ¾¥µ¥¤¥È¥Î¡¼¥É¤«¤é»²¾È¤µ¤ì¤Æ¤¤¤¿¤é¡¢ N2¤Ï¥Î¡¼¥É¤Î½¸¹ç¡¢Î㤨¤Ð {P1,P2,P3,M} ¤Ë¼ÌÁü¤µ¤ì¤ë¡£ ¤³¤Î½¸¹ç¤ò¡¢¸µ¤Î¥Î¡¼¥É¤Î¥¢¥¯¥»¥¹¹½Â¤¤È¸Æ¤Ö¡£ ¥¢¥¯¥»¥¹¹½Â¤¤Ï¡¢ ¸µ¤Î¥Î¡¼¥É¤ò»²¾È¤¹¤ë¥µ¥¤¥ÈËè¤Ë1¤Ä¤¢¤ë¥×¥í¥¯¥·¥Î¡¼¥ÉPi¤È¡¢ ¹½Â¤Á´ÂΤδÉÍý¥Î¡¼¥ÉM¤¬1¤Ä¡¢¤«¤é¤Ê¤ë¡£ ¤½¤Î·ë²ÌÆÀ¤é¤ì¤ë¡¢¥í¡¼¥«¥ë¥Î¡¼¥É¤ÈɬÍפ˱þ¤¸¤Æ ¥¢¥¯¥»¥¹¹½Â¤¤ò´Þ¤à¥°¥é¥Õ¤ò¡¢Ê¬»¶¥°¥é¥Õ¤È¸Æ¤Ö¡£ Ëܵ­»ö¤Î¥×¥í¥È¥³¥ë¼Â¹Ô¤Î¤Û¤È¤ó¤É¤Ï¡¢¤³¤Îµ­Ë¡¤ò»È¤¦¡£

³Æ¥¢¥¯¥»¥¹¹½Â¤¤Ï¡¢¥·¥¹¥Æ¥àÁ´ÂΤǽÅÊ£¤·¤Ê¤¤Á´°è¥¢¥É¥ì¥¹¤ò¤â¤é¤¦¡£ Á´°è¥¢¥É¥ì¥¹¤Ï´ÉÍý¥µ¥¤¥È¤ò¥¨¥ó¥³¡¼¥É¤·¤¿¤â¤Î¤Ç¡¢ ÂСÊÁ´°è¥¢¥É¥ì¥¹¡¢¥µ¥¤¥È¡Ë¤¬¥×¥í¥¯¥·¥Î¡¼¥É¤ò¼±Ê̤¹¤ë¤¿¤á¤Ë»È¤ï¤ì¤ë¡£ ³Æ¥µ¥¤¥È¤Ç¡¢¥×¥í¥¯¥·¤ò»²¾È¤¹¤ëɽ¤ò°ú¤¯¤Î¤ËÁ´°è¥¢¥É¥ì¥¹¤¬»È¤ï¤ì¤ë¡£ ¤³¤Î¤¿¤á¡¢³Æ¥µ¥¤¥È¤ÏºÇÂç1¤Ä¤Î¥×¥í¥¯¥·¤ò»ý¤Ä¤È¤¤¤¦ÉÔÊѾò·ï¤ò»ý¤Ä¤³¤È¤¬¤Ç¤­¤ë¡£ ¥¢¥¯¥»¥¹¹½Â¤¤Î¥Î¡¼¥É´Ö¤Ç¤Ï¡¢¥á¥Ã¥»¡¼¥¸¤¬Á÷¤é¤ì¤ë¡£ ¥µ¥¤¥È¤Ë¤è¤Ã¤Æ¡¢Á÷¿®¥µ¥¤¥È¤«¤é¼õ¿®¥µ¥¤¥È¤Ø¥á¥Ã¥»¡¼¥¸¤¬Á÷¤é¤ì¤ë¡£ ¥á¥Ã¥»¡¼¥¸ËÜÂÎÃæ¤ÎÁ´¤Æ¤Î»²¾È¤Ï¡¢¼õ¿®¥µ¥¤¥È¾å¤Î¥Î¡¼¥É¤Ø¤Î»²¾È¤Ç¤¢¤ë¡£ ¼õ¿®¥Î¡¼¥É¤Ï¡¢¥¢¥¯¥»¥¹¹½Â¤¤ÎÁ´°è¥¢¥É¥ì¥¹¤Ë¤è¤Ã¤Æ¼±Ê̤µ¤ì¤ë¡£ ¥á¥Ã¥»¡¼¥¸¤¬ÅþÃ夹¤ë¤È¡¢¼õ¿®¥Î¡¼¥É¤Ï¥µ¥¤¥È¤Îɽ¤Ë¤è¤Ã¤Æ°ú¤«¤ì¤ë¡£

¼ê³¤­¤È¤½¤Î¾¤ÎÃ͡ʥ쥳¡¼¥É¡¢¿ô¡¢¤Ê¤É¡Ë¤ÏÀѶËŪ¤Ë¥³¥Ô¡¼¤µ¤ì¡¢ ¥¢¥¯¥»¥¹¹½Â¤¤òÀ¸¤¸¤ë¤³¤È¤Ï¤Ê¤¤¡ÊÃí6¡Ë¡£ ¼ê³¤­¤Ï1ÅÙ¤À¤±¥µ¥¤¥È¤ËÁ÷¤é¤ì¡ÊÃí7¡Ë¡¢¥µ¥¤¥È¾å¤Î¥³¥Ô¡¼¤Ï1¤Ä¤Ç¤¢¤ë¡£ ¼ê³¤­¤ÏÊÄÊñ¤È¥³¡¼¥É¥Ö¥í¥Ã¥¯¤«¤é¤Ê¤ê¡¢ ¤½¤ì¤¾¤ìÁ´°è¥¢¥É¥ì¥¹¤ò1¤Ä¤â¤é¤¦¡£ ¥á¥Ã¥»¡¼¥¸¤ÏÁ´°è¥¢¥É¥ì¥¹¤À¤±¤ò´Þ¤ß»ý¤Á¡¢ ÅþÃ夹¤ë¤È¤¹¤°¤Ë­¤ê¤Ê¤¤¥³¡¼¥É¥Ö¥í¥Ã¥¯¤ÈÊÄÊñ¤òÍ׵᤹¤ë¡£

Ãí6¡§[40]¤ÎÊѼï¤Ç¤Ï¡¢ ¥ª¥Ö¥¸¥§¥¯¥È¤Ï¼ê³¤­¤Ç¤¢¤ê¡¢Á´¤Æ¤Î¼ê³¤­¤¬¾Ã¶ËŪ¤Ë¥³¥Ô¡¼¤µ¤ì¤ë¡£
Ãí7¡§¥´¥ß½¸¤á¤Ç¾Ã¤µ¤ì¤Ê¤¤¸Â¤ê¡£

4.2 ʬ»¶ÏÀÍýÊÑ¿ô (Distributed logic variables)

ÏÀÍýÊÑ¿ô¤Ï¡¢¼Â¹Ô½ç½ø¤ò¶¯À©¤¹¤ë¤³¤È¤Ê¤¯·×»»¤Î°Í¸À­¤òɽ¤¹¡£ ¤³¤ÎÀ­¼Á¤Ï¡¢Ê¬»¶·×»»¤Ë¤ª¤±¤ëÍøÅÀ¤Ç¤¢¤ë¡§

¤³¤Î¤è¤¦¤ÊÍøÅÀ¤ò¸½¼Â²½¤¹¤ë¼ÂÁ©Ê¬»¶¥¢¥ë¥´¥ê¥º¥à¡¢¤¹¤Ê¤ï¤Á Í­ÍýÌÚ¤Îñ°ì²½¤ÏÏÀÍýÊÑ¿ô¤Î«Çû¤Ë»È¤ï¤ì¤ë[10]¡£ ¤³¤Î¥¢¥ë¥´¥ê¥º¥à¤Ï¡¢Distributed Oz¤Î2¤Ä¤ÎÉôʬ¤Ë¸úΨŪ¤Ë¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡§ ¥í¡¼¥«¥ë¥¢¥ë¥´¥ê¥º¥à¤Èʬ»¶¥¢¥ë¥´¥ê¥º¥à¤Ë¡£ ¤Û¤È¤ó¤É¤Îñ°ì²½¤Ï¥í¡¼¥«¥ë¤Ë¹Ô¤Ê¤ï¤ì¤ë¡£ ʬ»¶¥¢¥ë¥´¥ê¥º¥à¤ÏÊÑ¿ôºï½ü¡¢¤¹¤Ê¤ï¤Á«Çû¤Î¤ß¤ËÍѤ¤¤é¤ì¤ë¡£ ¤³¤³¤Ç´Êñ¤ËÀâÌÀ¤¹¤ë¡£

ÏÀÍýÊÑ¿ô¤ËÂФ¹¤ë2¤Ä¤Î´ðËÜÁàºî¤Ï«Çû¤È¡¢Â«Çû¤µ¤ì¤ë¤Þ¤ÇÂԤĤ³¤È¤Ç¤¢¤ë¡£ ÏÀÍýÊÑ¿ôX¤Ï¡¢¥Ç¡¼¥¿¹½Â¤¤«Â¾¤ÎÊÑ¿ô¤Ë«Çû¤µ¤ì¤ë¡£ ¥¢¥ë¥´¥ê¥º¥à¤Ï¡¢¤É¤Á¤é¤Î¾ì¹ç¤âƱ¤¸¤Ç¤¢¤ë¡£ X¤ËÂФ·¤Æ¿¤¯¤Î«Çû¤¬¡Ê1¤Ä¤Þ¤¿¤ÏÊ£¿ô¤Î¥µ¥¤¥È¤«¤é¡ËʹԤ˻Ϥޤë¤È¡¢ 1¤Ä¤À¤±¤¬À®¸ù¤¹¤ë¡£ ¤½¤Î¸å¡¢X¤¬Â«Çû¤µ¤ì¤¿¼ÂÂΤËÂФ·¤Æ¾¤Î«Çû¤ò»î¤ß¤ë¡£ ¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢Â«Çû¤ÏÀѶËŪ¤Ë¹Ô¤Ê¤¦¡£ ¤Ä¤Þ¤ê¡¢X¤òÃΤäƤ¤¤ëÁ´¤Æ¤Î¥µ¥¤¥È¤Ë¡¢¿·¤·¤¤Ãͤ¬¤¹¤°¤µ¤ÞÁ÷¤é¤ì¤ë¡£ ¤³¤Î¤¿¤á¡¢Â«Çû¤µ¤ì¤¿ÊÑ¿ô¤Ï¥·¥¹¥Æ¥à¤«¤é¾Ã¤¨¤Æ¤âÎɤ¤¤³¤È¤¬Êݾڤµ¤ì¤Æ¤¤¤ë¡£

¿Þ12¡§ÏÀÍýÊÑ¿ô¤Î«Çû
  1. ¥¹¥ì¥Ã¥É¤¬Â«Çû¤ò»Ï¤á¤Æ¡¢¥Ö¥í¥Ã¥¯¤µ¤ì¤ë
  2. ¥×¥í¥¯¥·¥Î¡¼¥É¤Ï«Çû¤òÍ׵᤹¤ë
  3. ´ÉÍý¥Î¡¼¥É¤Ï«Çû¤ò¾µÂú¤·¡¢Á´¤Æ¤Î¥×¥í¥¯¥·¤Ë¥Þ¥ë¥Á¥­¥ã¥¹¥È¤¹¤ë
  4. ¥×¥í¥¯¥·¥Î¡¼¥É¤¬¥¹¥ì¥Ã¥É¤Ë·Ñ³µö²Ä¤òÍ¿¤¨¤ë

Îã¤òµó¤²¤Æ«Çû¥¢¥ë¥´¥ê¥º¥à¤òÀâÌÀ¤¹¤ë¡£ ʬ»¶¥°¥é¥Õ¤Ë¤ª¤¤¤Æ¡¢ÏÀÍýÊÑ¿ô¤Ï¥¢¥¯¥»¥¹¹½Â¤¤Çɽ¤µ¤ì¤ë¡£ ¿Þ12¤Ç¤Ï¡¢¤¢¤ëÊÑ¿ô¤¬3¤Ä¤Î¥µ¥¤¥È¤Ë¸ºß¤·¤Æ¤¤¤ë¡£ ¥µ¥¤¥È2¤Î¥¹¥ì¥Ã¥É¤¬¡¢ÊÑ¿ô¤Î¥×¥í¥¯¥·¤Ë«Çû¤ò¶µ¤¨¡Ê¥á¥Ã¥»¡¼¥¸1¡Ë¡¢ ¥Ö¥í¥Ã¥¯¤µ¤ì¤ë¡£ ¥×¥í¥¯¥·¥Î¡¼¥É¤Ï¡¢´ÉÍý¥Î¡¼¥É¤ËÊÑ¿ô¤Î«Çû¤òÍê¤à¡Ê¥á¥Ã¥»¡¼¥¸2¡Ë¡£ ´ÉÍý¥Î¡¼¥É¤Ï¡¢Á´¤Æ¤Î¥×¥í¥¯¥·¤Ë«Çû¤ò¶µ¤¨¤ë¡Ê¥á¥Ã¥»¡¼¥¸3¡Ë¡¢ ¤¹¤Ê¤ï¤ÁÀѶËŪ¤ËÊÑ¿ô¤òºï½ü¤¹¤ë¡£ ¥×¥í¥¯¥·¤Ï«Çû¤ò¼õ¤±¤È¤ë¤È¡¢Á´¤Æ¤ÎÂÔ¤Á¥¹¥ì¥Ã¥É¤Ë¶µ¤¨¤ë¡Ê¥á¥Ã¥»¡¼¥¸4¡Ë¡£ ¤¹¤ë¤È¡¢¥¹¥ì¥Ã¥É¤Ï¼Â¹Ô¤ò³¤±¤ë¡£

¿Þ13¡§Ê¬»¶Ã±°ì²½¤ÎÎ㡧½é´ü¹½À®
½¸Ã梫¢ªÊ¬»¶

ÏÀÍýÊÑ¿ô¤òɽ¤¹¤Î¤Ë¥¢¥¯¥»¥¹¹½Â¤¤ò»ý¤Á½Ð¤¹É¬ÍפϤʤ¤¡£ ¤â¤Ã¤È¹âµé¤Ê¡¢Åù¼°¤Èµ­²±¤Î³µÇ°¤ò»È¤¦Êý¤¬¤º¤Ã¤ÈÍý²ò¤·¤ä¤¹¤¤¡£ ¿Þ13¤Îº¸È¾Ê¬¤Ï½¸Ãæ¹½À®¤òɽ¤·¡¢±¦È¾Ê¬¤Ïʬ»¶¹½À®¤Î°ìÎã¤òɽ¤·¤Æ¤¤¤ë¡£ ³Æ¹½À®¤Ï¡¢Åù¼°¤Î½¸¹ç¤Èµ­²±¤ò»ý¤Ä¡£ Åù¼°¤Ï«Çû¤Î¼Â¹Ô¤òÍ׵᤹¤ë¡£ µ­²±¤ÏÊÑ¿ô¤È¡¢¤â¤·¤¢¤ì¤Ð¤½¤Î«Çû¤òÊÝ»ý¤¹¤ë¡£ ʬ»¶¤Î¾ì¹ç¡¢³Æ¥µ¥¤¥È¤ÏÅù¼°¤Î½¸¹ç¤Èµ­²±¤ò»ý¤Ä¡£ ¥µ¥¤¥È¤¬1¤Ä¤Î¾ì¹ç¡¢Ê¬»¶¥¢¥ë¥´¥ê¥º¥à¤Ï½¸Ã楢¥ë¥´¥ê¥º¥à¤ÈÅù²Á¤Ç¤¢¤ë¡£ ÊÑ¿ô¤Ï¡¢1¤Ä°Ê¾å¤Î¥µ¥¤¥È¤Ë¸ºß¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ ³Æ¥µ¥¤¥È¾å¤Î½Ð¸½¤Ï¡¢¡Ö¥×¥í¥¯¥·¡×¤È¸Æ¤Ð¤ì¤ë¡£ ÊÑ¿ô¤¬Â«Çû¤µ¤ì¤ë¤È¡¢³Æ¥×¥í¥¯¥·¤ÏƱ¤¸Â«Çû¤ò»ý¤Ä¡£ ¿Þ13¤Ë¤ª¤¤¤Æ¡¢ÊÑ¿ôY¤Ï¥µ¥¤¥È2, 3¤Çf(Y1)¤Ë«Çû¤µ¤ì¤ë¡£

¥¢¥ë¥´¥ê¥º¥à¤Ï¡¢¥¢¥È¥ß¥Ã¥¯¤ÊÃʳ¬¤ò·Ð¤Æ¼Â¹Ô¤µ¤ì¤ë¡£ ³ÆÃʳ¬¤Ç¡¢Åù¼°¤¬¥¢¥ë¥´¥ê¥º¥à¤ò»Ï¤á¤ë¡¢¤Þ¤¿¤ÏÆâÉôÃʳ¬¤¬¹Ô¤Ê¤ï¤ì¤ë¡£ ÆâÉôÃʳ¬¤Ç¤Ï¡¢¤¢¤ë¥µ¥¤¥È¤Î¾õÂÖ¤¬ÊѤï¤ë¤«¡¢ ¥µ¥¤¥È´Ö¤Ç¥á¥Ã¥»¡¼¥¸¤¬Á÷¼õ¤µ¤ì¤ë¡£ 1¤Ä¤Î«Çû¤ò´°À®¤¹¤ë¤Ë¤Ï¡¢Â¿¤¯¤ÎÃʳ¬¤¬É¬Íפʾì¹ç¤â¤¢¤ë¡£ ¤¢¤é¤æ¤ë¼ÂÂΤϡ¢´°À®¤Þ¤Ç¤ÎÃʳ¬¤Ç¿¤¯¤Î«Çû¤òɬÍפȤ¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£

¿Þ14¡§Åù¼°Y1=3¤ò¼Â¹Ô¤·¤¿¸å¤Î¹½À®

ʬ»¶Áàºî¤Î´ðËܤϡ¢Á´¤Æ¤Î¥×¥í¥¯¥·¤Ë«Çû¤òÁ÷¤ë¤³¤È¤Ç¤¢¤ë¡£ Î㤨¤Ð¡¢Y1=3¤È¤¤¤¦Â«Çû¤Ï¡¢Y1¤ÎÁ´¤Æ¤Î¥×¥í¥¯¥·¤Ë3¤òÁ÷¤ë¡£ ¤³¤Î·ë²Ì¡¢Á´¤Æ¤Î¥µ¥¤¥È¤Ç«ÇûY1¢«3¤¬À¸¤¸¤ë¡Ê¿Þ14¤ò¸«¤è¡Ë¡£ ¤³¤ì¤Ï¡¢1¤Ä¤Î¥µ¥¤¥È¤òÊÑ¿ô¤Î¡Ö½êÍ­¼Ô¡×¤È¤¹¤ë¤³¤È¤Ç¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ ½êÍ­¼Ô¤Ï¡¢¥×¥í¥¯¥·¤«¤é«ÇûÍ×µá¤ò¼õ¤±¤È¤ë¡£ ½êÍ­¼Ô¤ÏºÇ½é¤ÎÍ×µá¤ò¾µÂú¤·¡¢¤½¤ÎÃͤòÁ´¤Æ¤Î¥×¥í¥¯¥·¤ËÁ÷¤ë¡£ ¾¤ÎÍ×µá¤Ï̵»ë¤µ¤ì¤ë¡£

ÏÀÍýÊÑ¿ô¤Ï°Û¤Ê¤ëʬ»¶¹ÔÆ°¤ò¼è¤ë¤³¤È¤â¤Ç¤­¤ë¤¬¡¢ ¤½¤Î¾ì¹ç¤Ç¤â¥Í¥Ã¥È¥ï¡¼¥¯Æ©ÌÀÀ­¤ÏËþ¤¿¤·¤Æ¤¤¤ë¡£ ¾å½Ò¤·¤¿¤è¤¦¤Ë¡¢ÏÀÍýÊÑ¿ô¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç¤ÏÀѶËŪ¤Ç¤¢¤ë¡£ ¤³¤ì¤Ï¡¢ÃÙ±äÂÑÀ­¤È¥µ¡¼¥É¥Ñ¡¼¥Æ¥£¤ÎÆÈΩ¤ò¶ËÂç²½¤¹¤ë¡£ ¤·¤«¤·¡¢Â«Çû¤òÉÔÍפʥµ¥¤¥È¤ËÁ÷¤Ã¤Æ¤·¤Þ¤¦²ÄǽÀ­¤¬¤¢¤ë¡£ ÏÀÍýÊÑ¿ô¤¬¾Ã¶ËŪ¤Ç¤¢¤ë¤È¤Ï¡¢¥µ¥¤¥È¤ËÍ׵ᤵ¤ì¤¿»þ¤Ë ¡Ê¤Ä¤Þ¤ê¡¢¥¹¥ì¥Ã¥É¤¬ÃͤòɬÍפȤ·¤¿»þ¤Ë¡Ë¤Î¤ß¡¢ÃͤòÁ÷¤ë¤³¤È¤Ç¤¢¤ë¡£ ¾Ã¶ËÊÑ¿ô¤Ï¥á¥Ã¥»¡¼¥¸¤ÎÊ£»¨¤µ¤¬·Ú¤¯¡¢¥á¥Ã¥»¡¼¥¸¤Î¿ô¤¬¾¯¤Ê¤¯¤ÆºÑ¤à¡£ ¤¤¤¯¤Ä¤«¤Î¾ì¹ç¡¢Î㤨¤ÐûÍíµ»Ë¡¤ò»È¤Ã¤¿¥Ð¥ê¥¢Æ±´ü¤Ç¤Ï¡¢¾Ã¶ËÊÑ¿ô¤¬¹¥¤Þ¤·¤¤¡£ ÀѶËÊÑ¿ô¤È¾Ã¶ËÊÑ¿ô¤ÏƱ¤¸Ê¬»¶Ã±°ì²½¥¢¥ë¥´¥ê¥º¥à¤Ë½¾¤¤¡¢ ¤¿¤À1¤Ä¡¢¤¢¤ë´ÊÌó¥ë¡¼¥ë¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤¬°Û¤Ê¤ë[10]¡£ ¸½ºßDistributed Oz¤Ï¡¢ÀѶËÊÑ¿ô¤·¤«Ä󶡤·¤Æ¤¤¤Ê¤¤¡£ ξÊý¤òÄ󶡤¹¤ë¤Ë¤Ï¡¢¾®¤µ¤ÊÊѹ¹¤¬É¬ÍפǤ¢¤ë¡£ ¤½¤¦¤¹¤ì¤Ð¡¢¥×¥í¥°¥é¥Þ¤ÎÃíµ­¤Ë¤è¤Ã¤Æ¡¢ ÊÑ¿ô¤¬ÀѶËŪ¤«¾Ã¶ËŪ¤«·è¤á¤ë¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¡£


4.3 µ¡Æ°¥ª¥Ö¥¸¥§¥¯¥È (Mobile objects)

Distributed Oz¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Ï¡¢·ÚÎÌ¥ª¥Ö¥¸¥§¥¯¥È°Üž¥×¥í¥È¥³¥ë¤Ë½¾¤¤¡¢ ½¸Ã楪¥Ö¥¸¥§¥¯¥È¤Î°ÕÌ£ÏÀ¤òÊݤäƤ¤¤ë¤Î¤Ç¡¢ ¥Í¥Ã¥È¥ï¡¼¥¯¤Î¿¶¤ëÉñ¤¤¤òÀµ³Î¤Ëͽ¬¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ µ¡Æ°¥ª¥Ö¥¸¥§¥¯¥È¤ò»ý¤Ä´û¸¤Î¥·¥¹¥Æ¥à¤Ï¡¢¤³¤Î¤è¤¦¤Ê¥¢¥ë¥´¥ê¥º¥à¤ò»È¤Ã¤Æ¤¤¤Ê¤¤¡£ Á°Êý»²¾È¤ÎÏ¢º¿¤Ë¤è¤Ã¤Æ¥ª¥Ö¥¸¥§¥¯¥È¤ò°ÜÆ°¤·¤Æ¤¤¤ë [24, 15, 5]¡£ ¥á¥Ã¥»¡¼¥¸¤¬Á÷¤é¤ì¤ë¤«¡¢½êÄê»þ´Ö¤¬²á¤®¤ë¤È¡¢¤³¤ÎÏ¢º¿¤ÏûÍí¤µ¤ì¤ë¡£ ¤³¤ÎÊýË¡¤Ç¥ª¥Ö¥¸¥§¥¯¥È¤ò°ÜÆ°¤¹¤ë¤È¡¢Ê¿¶Ñ¤Ï¥Í¥Ã¥È¥ï¡¼¥¯¥Û¥Ã¥×¿ô¤ÇÎɤ¤¤¬¡¢ ºÇ°­¤Î¾ì¹ç¥Û¥Ã¥×¿ô¤ÇÈó¾ï¤Ë°­¤¤ (?? This gives good average-case number of network hops when moving an object, but very bad worst-case number of hops. ??)¡£ Distributed Oz¤ÎÀß·×Êý¿Ë¤Ï¡¢¥µ¡¼¥É¥Ñ¡¼¥Æ¥£°Í¸¤ò¤Ê¤¯¤¹¤³¤È¤Ç¤¢¤ë¡£ ¤³¤Î¤¿¤á¡¢Á°Êý»²¾È¤ÎÏ¢º¿¤Ï¾µÂú¤Ç¤­¤Ê¤¤¡£ ¤½¤ÎÂå¤ï¤ê¤Ë²æ¡¹¤¬À߷פ·¤¿°Ê²¼¤Îµ¡Æ°¥×¥í¥È¥³¥ë¤Ï¡¢ ºÇ°­¤Î¾ì¹ç¤Î¿¶¤ëÉñ¤¤¤òÂ礭¤¯²þÁ±¤¹¤ë¡£

¿Þ15¡§1¤Ä¤Î°À­¤È2¤Ä¤Î¥á¥½¥Ã¥É¤ò»ý¤Ä¥ª¥Ö¥¸¥§¥¯¥È
class Account
  attr bal:0
  meth trans(Amt)
    bal<- @bal+Amt
  end
  meth getBal(B)
    B = @bal
  end
end

A={New Account Trans(100)}

ʬ»¶¥°¥é¥Õ¤Ë¤ª¤¤¤Æ¥ª¥Ö¥¸¥§¥¯¥È¤Ï¡¢¥ª¥Ö¥¸¥§¥¯¥È¥ì¥³¡¼¥É¡¢ ¼ê³¤­¡Ê¥á¥½¥Ã¥É¡Ë¤òÊÝ»ý¤¹¤ë¥¯¥é¥¹¥ì¥³¡¼¥É¡¢¥»¥ë¡Ê¾õÂ֥ݥ¤¥ó¥¿¤òÊÝ»ý¤¹¤ë¡Ë¡¢ ¥ª¥Ö¥¸¥§¥¯¥È¤Î¾õÂÖ¤òÊÝ»ý¤¹¤ë¥ì¥³¡¼¥É¤«¤é¤Ê¤ëÊ£¹ç¼ÂÂΤȤ·¤Æɽ¤µ¤ì¤ë¡£ ¥ª¥Ö¥¸¥§¥¯¥È¤Îʬ»¶¹ÔÆ°¤Ï¡¢¤³¤ì¤é¤ÎÉôʬ¤Î¹ÔÆ°¤«¤é¤Ê¤ë¡£ ¿Þ15¤Ï¡¢1¤Ä¤Î°À­bal¤È2¤Ä¤Î¥á¥½¥Ã¥Étrans, getBal¤ò»ý¤Ä¥ª¥Ö¥¸¥§¥¯¥ÈA¤Ç¤¢¤ë¡£ ¥ª¥Ö¥¸¥§¥¯¥È¤Ï¡¢3¤Ä¤Î¥Õ¥£¡¼¥ë¥É¤ò»ý¤Ä¥ª¥Ö¥¸¥§¥¯¥È¥ì¥³¡¼¥É¤È¤·¤Æɽ¤µ¤ì¤ë¡£ st¥Õ¥£¡¼¥ë¥É¤Ï¾õÂ֥ݥ¤¥ó¥¿¤òÊÝ»ý¤·¡¢¥ª¥Ö¥¸¥§¥¯¥È¤Î¾õÂ֥쥳¡¼¥É¤ò»Ø¤¹¡£ cl¥Õ¥£¡¼¥ë¥É¤¬ÊÝ»ý¤¹¤ë¥¯¥é¥¹¥ì¥³¡¼¥É¤Ï¡¢ ¥á¥½¥Ã¥É¤ò¼ÂÁõ¤¹¤ë¼ê³¤­trans, getBal¤òÊÝ»ý¤¹¤ë¡£ id¥Õ¥£¡¼¥ë¥É¤Ï¡¢¥ª¥Ö¥¸¥§¥¯¥È¤Î½ÅÊ£¤·¤Ê¤¤¼±ÊÌ»ÒtheName¤òÊÝ»ý¤¹¤ë¡£ ¥ª¥Ö¥¸¥§¥¯¥È¥ì¥³¡¼¥É¤È¥¯¥é¥¹¥ì¥³¡¼¥É¤ÏÊѹ¹¤Ç¤­¤Ê¤¤¡£ ¤·¤«¤·¡¢¾õÂ֥ݥ¤¥ó¥¿¤ÎÆâÍƤòÊѤ¨¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢¾õÂ֥쥳¡¼¥É¤ÏÊѹ¹¤Ç¤­¤ë¡£

¿Þ16¡§¥í¡¼¥«¥ë¥ª¥Ö¥¸¥§¥¯¥È
¿Þ17¡§±ó³Ö»²¾È¤ò1¤Ä»ý¤Ä¥°¥í¡¼¥Ð¥ë¥ª¥Ö¥¸¥§¥¯¥È

¿Þ16¤Ï¡¢¥µ¥¤¥È1¥í¡¼¥«¥ë¤Ê¥ª¥Ö¥¸¥§¥¯¥ÈA¤Ç¤¢¤ë¡£ ¾¥µ¥¤¥È¤«¤éA¤Ø¤Î»²¾È¤Ï¤Ê¤¤¡£ ¿Þ17¤Ï¡¢±ó³Ö»²¾È¤ò1¤Ä»ý¤Ä¥ª¥Ö¥¸¥§¥¯¥ÈA¤Ç¤¢¤ë¡£ ¥ª¥Ö¥¸¥§¥¯¥È¤Ï¥¢¥¯¥»¥¹¹½Â¤¤Î°ìÉô¤È¤Ê¤ê¡¢ ´ÉÍý¥Î¡¼¥É¤¬¥µ¥¤¥È1¤Ë¡¢¥×¥í¥¯¥·¥Î¡¼¥É¤¬¥µ¥¤¥È2¤Ë¤¢¤ë¡£ A¤ò»²¾È¤¹¤ë¥á¥Ã¥»¡¼¥¸¤¬¥µ¥¤¥È1¤«¤é½Ð¤Æ¤¤¤¯¤È¡¢¥í¡¼¥«¥ë¥ª¥Ö¥¸¥§¥¯¥ÈA¤Ï ¥°¥í¡¼¥Ð¥ë¡Ê¤Ä¤Þ¤ê¡¢±ó³Ö»²¾È¤µ¤ì¤¿¡Ë¥ª¥Ö¥¸¥§¥¯¥È¤ËÊÑ·Á¤µ¤ì¤ë¡£ ¥á¥Ã¥»¡¼¥¸¤¬½Ð¤Æ¤¤¤¯»þ¤Ë¡¢´ÉÍý¥Î¡¼¥ÉMa¤¬À¸À®¤µ¤ì¤ë¡£ A¤ò»²¾È¤¹¤ë¥á¥Ã¥»¡¼¥¸¤¬¥µ¥¤¥È2¤ËÃ夯¤È¡¢ ¤½¤³¤Ç¥×¥í¥¯¥·¥Î¡¼¥ÉPa2¤¬À¸À®¤µ¤ì¤ë¡£

¿Þ18¡§¥ª¥Ö¥¸¥§¥¯¥È¤Î±ó³Ö¸Æ¤Ó½Ð¤· (1)

¿Þ18¤Ï¡¢¥¹¥ì¥Ã¥ÉT¤¬¥µ¥¤¥È2¤«¤éA¤ò¸Æ¤Ó½Ð¤·¤¿¤È¤³¤í¤Ç¤¢¤ë¡£ ºÇ½é¥µ¥¤¥È2¤Ë¤¢¤ë¤Î¤Ï¥×¥í¥¯¥·Pa2¤À¤±¤Ç¡¢¥ª¥Ö¥¸¥§¥¯¥È¼«ÂΤϤʤ¤¡£ ¥×¥í¥¯¥·¤Ï¡¢´ÉÍý¥Î¡¼¥É¤Ë¥ª¥Ö¥¸¥§¥¯¥È¥ì¥³¡¼¥É¤Î¥³¥Ô¡¼¤òÍê¤à¡£ ¤¹¤ë¤È¡¢´ÉÍý¥Î¡¼¥ÉMc¤È¥×¥í¥¯¥·Pc1¤ò»ý¤Ä¡¢¥»¥ë¤Î¥¢¥¯¥»¥¹¹½Â¤¤¬À¸À®¤µ¤ì¤ë¡£ ¥¯¥é¥¹¥ì¥³¡¼¥É¤ÏÀѶËŪ¤Ë¥³¥Ô¡¼¤µ¤ì¡¢Ìµ½ÅÊ£¤ÎÁ´°è¥¢¥É¥ì¥¹¤ò»ý¤¿¤Ê¤¤¡£ ¥¯¥é¥¹¥ì¥³¡¼¥É¤È¥»¥ë¥×¥í¥¯¥·¤òÊÝ»ý¤·¤¿¥á¥Ã¥»¡¼¥¸¤¬¡¢¥µ¥¤¥È2¤ËÁ÷¤é¤ì¤ë¡£ ¥ª¥Ö¥¸¥§¥¯¥È¤Î¾õÂ֤ϡ¢¥µ¥¤¥È1¤Ë»Ä¤ë¡£

¿Þ19¡§¥ª¥Ö¥¸¥§¥¯¥È¤Î±ó³Ö¸Æ¤Ó½Ð¤· (2)

¿Þ19¤Ï¡¢¥á¥Ã¥»¡¼¥¸¤¬Ã夤¤¿¤È¤³¤í¤Ç¤¢¤ë¡£ ¥»¥ë¤Î2ÈÖÌÜ¤Î¥×¥í¥¯¥·Pc2¤¬À¸À®¤µ¤ì¤ë¡£ ¥¯¥é¥¹¥ì¥³¡¼¥É¤¬¥µ¥¤¥È2¤Ë¥³¥Ô¡¼¤µ¤ì¡¢¥×¥í¥¯¥·Pa2¤Ï¥ª¥Ö¥¸¥§¥¯¥È¥ì¥³¡¼¥ÉA¤Ë¤Ê¤ë¡£ ¥µ¥¤¥Èɽ¤¬»²¾È¤¹¤ë¤Î¤Ï¥ª¥Ö¥¸¥§¥¯¥È¥ì¥³¡¼¥É¤Ë¤Ê¤ë¡£ ¤¹¤ë¤Èµ¡Æ°¾õÂÖ¥×¥í¥È¥³¥ë¡ÊÂè4.4Àá¤ò¸«¤è¡Ë¤Ï¡¢ ¼«Æ°Åª¤Ë¥»¥ë¤ò¥µ¥¤¥È2¤Ë±¿¤Ö¡£ ¥µ¥¤¥Èɽ¤Î¤ª¤«¤²¤Ç¡¢¥Í¥Ã¥È¥ï¡¼¥¯Áàºî¤Ï¤³¤ì¤À¤±¤Ç¤¢¤ê¡¢ °Ê¹ß¡¢¥ª¥Ö¥¸¥§¥¯¥È¤ò»²¾È¤¹¤ë¥µ¥¤¥È2¤Ø¤Î¥á¥Ã¥»¡¼¥¸¤Ï ¥ª¥Ö¥¸¥§¥¯¥È¥ì¥³¡¼¥É¤Î¥í¡¼¥«¥ë¥³¥Ô¡¼¤òľÀÜ»²¾È¤¹¤ë¡£

¿Þ20¡§¥ª¥Ö¥¸¥§¥¯¥È¤Î±ó³Ö¸Æ¤Ó½Ð¤· (3)

¿Þ20¤Ï¡¢¥»¥ë¤¬¥µ¥¤¥È2¤Ø±¿¤Ð¤ì¤¿¸å¤Ç¤¢¤ë¡£ ¥µ¥¤¥È2¤Ç¿·¤·¤¤¾õÂÖState2¤¬À¸À®¤µ¤ì¡¢ ¥á¥½¥Ã¥É¤¬½ª¤ï¤ë¤È¥ª¥Ö¥¸¥§¥¯¥È¤Î¾õÂÖ¤¬¹¹¿·¤µ¤ì¤ë¡£ ¸Å¤¤¾õÂÖState1¤Ï¥µ¥¤¥È1¤Ë¸ºß¤·Â³¤±¤ë¤¬¡¢¤â¤¦¥»¥ë¤Ë»Ø¤µ¤ì¤Æ¤¤¤Ê¤¤¡£

¿Þ21¡§¥ª¥Ö¥¸¥§¥¯¥È¤¬¥µ¥¤¥È1¤Ëµ¢¤ë

¿Þ21¤Ï¡¢¥µ¥¤¥È1¤¬ºÆ¤Ó¥ª¥Ö¥¸¥§¥¯¥È¤ò¸Æ¤ó¤À¤È¤³¤í¤Ç¤¢¤ë¡£ ¥»¥ë¤Ï¥µ¥¤¥È1¤Ëµ¢¤ë¡£ ¥µ¥¤¥È1¤Ç¿·¤·¤¤¾õÂÖState3¤¬À¸À®¤µ¤ì¡¢ ¥á¥½¥Ã¥É¤¬½ª¤ï¤ë¤È¥ª¥Ö¥¸¥§¥¯¥È¤Î¾õÂÖ¤¬¹¹¿·¤µ¤ì¤ë¡£ ¸Å¤¤¾õÂÖState2¤Ï¥µ¥¤¥È2¤Ë¸ºß¤·Â³¤±¤ë¤¬¡¢¤â¤¦¥»¥ë¤Ë»Ø¤µ¤ì¤Æ¤¤¤Ê¤¤¡£

¤³¤³¤Þ¤Ç¤ËÌÌÇò¤¤¤³¤È¤¬¤¤¤¯¤Ä¤«¤¢¤Ã¤¿¡£ Âè1¤Ë¡¢¥ª¥Ö¥¸¥§¥¯¥È¤Ï¤¤¤Ä¤â¥í¡¼¥«¥ë¤Ë¼Â¹Ô¤µ¤ì¤ë¡£ ¥»¥ë¤Ï¤¤¤Ä¤â¥á¥½¥Ã¥É¤¬¼Â¹Ô¤ò»Ï¤á¤ëÁ°¤Ë¥í¡¼¥«¥ë¤Ë°Ü¤µ¤ì¡¢ ¥ª¥Ö¥¸¥§¥¯¥È¤¬¥í¥Ã¥¯¤µ¤ì¥á¥½¥Ã¥É¤ò¼Â¹Ô¤·¤Æ¤¤¤ë´Ö¡¢ ¥í¡¼¥«¥ë¤Ëα¤Þ¤ë¤³¤È¤¬Êݾڤµ¤ì¤Æ¤¤¤ë¡£ Âè2¤Ë¡¢¥¯¥é¥¹¥³¡¼¥É¤Ï1¤Ä¤Î¥µ¥¤¥È¤Ë1ÅÙ¤·¤«±¿¤Ð¤ì¤Ê¤¤¡£ ¥»¥ë¤À¤±¤¬¡¢ºÇ½é¤Î°ÜÆ°¤Î¸å¤âÆ°¤­²ó¤ë¡£ ¤³¤Î¤¿¤á¡¢¥ª¥Ö¥¸¥§¥¯¥È¤Îµ¡Æ°¤ÏÈó¾ï¤Ë·ÚÎ̤ˤʤäƤ¤¤ë¡£ Âè3¤Ë¡¢¥ª¥Ö¥¸¥§¥¯¥È¤ËÂФ¹¤ëÁ´¤Æ¤ÎÍ×µá¤Ï¡¢¥»¥ë¤Î´ÉÍý¥Î¡¼¥É¤Ë¤è¤Ã¤ÆľÎ󲽤µ¤ì¤ë¡£ ¤³¤Î¤¿¤á¥×¥í¥È¥³¥ë¤Ïñ½ã²½¤µ¤ì¤¿¤¬¡¢´ÉÍý¥µ¥¤¥È°Í¸¤¬À¸¤¸¤ë¡£ ¤â¤Ã¤ÈÊ£»¨¤Ê¥×¥í¥È¥³¥ë¡Ê¤³¤³¤Ç¤Ïµó¤²¤Ê¤¤¡Ë¤Ê¤é¡¢ ¤³¤Î°Í¸À­¤ò¤Ê¤¯¤¹¤³¤È¤¬¤Ç¤­¤ë[40]¡£


4.4 µ¡Æ°¾õÂÖ (Mobile state)

Âè4.3Àá¤Ç¼¨¤·¤¿¼«Í³µ¡Æ°¥ª¥Ö¥¸¥§¥¯¥È¤Ï¡¢ ¤¤¤¯¤Ä¤«¤Îʬ»¶¥¢¥ë¥´¥ê¥º¥à¤ò»È¤¦Ê£¹ç¼ÂÂΤÀ¤Ã¤¿¡£ ¥ª¥Ö¥¸¥§¥¯¥È¥ì¥³¡¼¥É¤Ï1ÅÙ¤À¤±¾Ã¶ËŪ¤Ë ¡Ê¥ª¥Ö¥¸¥§¥¯¥È¤¬ºÇ½é¤Ë¸Æ¤Ó½Ð¤µ¤ì¤¿»þ¤Ë¡Ë¥³¥Ô¡¼¤µ¤ì¡¢ ¥á¥½¥Ã¥É¤â¤½¤ì¤Ë¤·¤¿¤¬¤Ã¤Æ¥³¥Ô¡¼¤µ¤ì¡¢ ¥ª¥Ö¥¸¥§¥¯¥È¤Î¾õÂ֥ݥ¤¥ó¥¿¤ÏÍ׵ᤵ¤ì¤¿¥µ¥¤¥È´Ö¤òÆ°¤­²ó¤ë¡£ ¥ª¥Ö¥¸¥§¥¯¥È¤Î¥»¥ë¥¢¥¯¥»¥¹¹½Â¤¤Î¾õÂ֥ݥ¤¥ó¥¿¤Ï¤¤¤Ä¤Ç¤â¡¢ 1¤Ä¤Î¥×¥í¥¯¥·¤Ë¤¢¤ë¤«¡¢2¤Ä¤Î¥×¥í¥¯¥·´Ö¤ò°ÜÆ°Ã椫¤Ç¤¢¤ë¡£ ¾õÂ֥ݥ¤¥ó¥¿¤òÆ°¤«¤¹¥×¥í¥È¥³¥ë¡¢¤¹¤Ê¤ï¤Áµ¡Æ°¾õÂÖ¥×¥í¥È¥³¥ë¤ÏÆäËÌÌÇò¤¤¡£ ¤³¤Î¥×¥í¥È¥³¥ë¤Ï¡¢¾õÂ֤νç½ø¤Î°ì´ÓÀ­¤òÊݾڤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ Ϣ³¤·¤¿¾õÂÖ¤¬°Û¤Ê¤ë¥µ¥¤¥È¤Ë¤¢¤ì¤Ð¡¢ ¾õÂ֥ݥ¤¥ó¥¿¤ò¥µ¥¤¥È´Ö¤Ç¥¢¥È¥ß¥Ã¥¯¤Ë±¿¤ÖɬÍפ¬¤¢¤ë¡£ ¾õÂ֥ݥ¤¥ó¥¿¤òɬÍפȤ¹¤ë¥µ¥¤¥È¤Ï¾õÂ֥ݥ¤¥ó¥¿¤Î´ÉÍý¥Î¡¼¥É¤ËÍ׵ᤷ¡¢ ´ÉÍý¥Î¡¼¥É¤Ï¾õÂ֥ݥ¤¥ó¥¿¤ò»ý¤Ä¥µ¥¤¥È¤Ë¥³¥Þ¥ó¥É¤òÁ÷¤ë¡£ ¤³¤Î¤¿¤á¡¢´ÉÍý¥Î¡¼¥É¤Ï¾®¤µ¤Ê¾ðÊ󡢤¹¤Ê¤ï¤Á¾õÂ֥ݥ¤¥ó¥¿¤òÊÝ»ý¤¹¤ë¥µ¥¤¥È ¤ò³Ð¤¨¤Æ¤ª¤¯É¬Íפ¬¤¢¤ë[40]¡£

¿Þ22¡§2¤Ä¤Î¥µ¥¤¥È¤«¤é»²¾È¤µ¤ì¤Æ¤¤¤ë¥»¥ë

¿Þ22¤Ï¡¢2¤Ä¤Î¥µ¥¤¥È¤«¤é»²¾È¤µ¤ì¤Æ¤¤¤ë¥»¥ëC¤Ç¤¢¤ë¡£ ¥»¥ë¤Î¾õÂ֥ݥ¤¥ó¥¿¤Ï¥µ¥¤¥È1¤Ë¤¢¤ë¤¬¡¢ ¥¹¥ì¥Ã¥ÉT¤¬Áàºî {Exchange C X Y} ¤ò¹Ô¤Ê¤¦¤È¡¢¥µ¥¤¥È2¤¬¾õÂ֥ݥ¤¥ó¥¿¤òÍ׵᤹¤ë¡£ ¤³¤Î¤³¤È¤«¤éʬ¤«¤ë¤è¤¦¤Ë¡¢¸ò´¹¤Ï¥¢¥È¥ß¥Ã¥¯¤Ë¹Ô¤Ê¤ï¤ì¡¢ Y¤Ë¿·¤·¤¤Ã͡ʤ¹¤Ê¤ï¤ÁState2¡Ë¤òÆþ¤ì¡¢X¤ò¸Å¤¤¾õÂÖState1¤Ë«Çû¤¹¤ë¡£

¿Þ23¡§ (a) ¥µ¥¤¥È2¤¬¾õÂ֥ݥ¤¥ó¥¿¤òÍ׵᤹¤ë (b) ¥µ¥¤¥È1¤Ï¤½¤ÎÍ×µá¤ò¥Õ¥©¥ï¡¼¥É¤¹¤ë

¿Þ23¤Ç¤Ï¡¢(a) ¥×¥í¥¯¥·Pc2¤¬¾õÂ֥ݥ¤¥ó¥¿¤òÍ׵ᤷ¤Æ ´ÉÍý¥Î¡¼¥ÉMc¤ËGet¥á¥Ã¥»¡¼¥¸¤òÁ÷¤ê¡¢(b) ´ÉÍý¥Î¡¼¥É¤¬ ¾õÂ֥ݥ¤¥ó¥¿¤ò»ý¤Ä¡Ê¤³¤È¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡Ë¥×¥í¥¯¥·Pc1¤Ë Forward¥á¥Ã¥»¡¼¥¸¤òÁ÷¤Ã¤Æ¤¤¤ë¡£ ¤³¤Î¤¿¤á¡¢´ÉÍý¥Î¡¼¥É¤Ï¤¹¤°¤Ë¾¤ÎÍ×µá¤ò¼õ¤±ÉÕ¤±¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ ¾õÂ֥ݥ¤¥ó¥¿¤Î°ÜÁ÷¤¬½ª¤ï¤ë¤Þ¤ÇÂÔ¤ÄɬÍפϤʤ¤¡£

¿Þ24¡§¥µ¥¤¥È1¤¬¥µ¥¤¥È2¤Ë¾õÂ֥ݥ¤¥ó¥¿¤òÁ÷¤Ã¤¿¤È¤³¤í
¿Þ25¡§¥µ¥¤¥È2¤¬¾õÂ֥ݥ¤¥ó¥¿¤ò»ý¤Ä

¿Þ24¤Ï¡¢Pc1¤¬Pc2¤Ë¸Å¤¤¾õÂÖState1¤òÊÝ»ý¤·¤Æ¤¤¤ë Content¥á¥Ã¥»¡¼¥¸¤òÁ÷¤Ã¤¿¤È¤³¤í¤Ç¤¢¤ë¡£ ¸Å¤¤¾õÂ֤ϤޤÀ¥µ¥¤¥È1¤Ë¸ºß¤·¤Æ¤¤¤ë¤¬¡¢¤â¤¦Pc1¤Ë»Ø¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ ¿Þ25¤ÏºÇ¸å¤Î¾õ¶·¤Ç¤¢¤ë¡£ Pc2¤Ï¾õÂ֥ݥ¤¥ó¥¿¤ò»ý¤Á¡¢State2¤ò»Ø¤·¤Æ¤¤¤ë¡£ X¤ÏState1¤Ë«Çû¤µ¤ì¤ë¡£

¤³¤Î¥×¥í¥È¥³¥ë¤Ë¤è¤Ã¤Æ¡¢¥Í¥Ã¥È¥ï¡¼¥¯¤Î¿¶¤ëÉñ¤¤¤òͽ¬¤Ç¤­¤ë¡£ ¾õÂ֥ݥ¤¥ó¥¿¤¬¥µ¥¤¥È¤òÅϤë¤Ë¤Ï¡¢ºÇÂç3¥Í¥Ã¥È¥ï¡¼¥¯¥Û¥Ã¥×¤¢¤ì¤ÐÎɤ¤¡£ ´ÉÍý¥Î¡¼¥É¤¬Á÷¿®¸µ¤Þ¤¿¤Ï¼õ¿®À襵¥¤¥È¤Ë¤¢¤ì¤Ð¡¢2¤ÇºÑ¤à¡£ ¾õÂ֥ݥ¤¥ó¥¿¤¬Í׵᥵¥¤¥È¤Ë¤¢¤ì¤Ð¡¢0¤Ç¤¢¤ë¡£ ¥×¥í¥È¥³¥ë¤Ï»þ·ÏÎó¤Î°ì´ÓÀ­¤òÊݤäƤª¤ê¡¢ ¥»¥ë¸ò´¹¡Ê¾õÂ֥ݥ¤¥ó¥¿¤Î¹¹¿·¡Ë¤ÏÁ´°è¤Ç°ì´Ó¤·¤¿½ç½ø¤Ç¹Ô¤Ê¤ï¤ì¤ë¡£


4.5 ʬ»¶¥´¥ß½¸¤á (Distributed garbage collection)

¸À¸ì¼ÂÂΤ¬±ó³Ö»²¾È¤µ¤ì¤ë¤È¡¢¥¢¥¯¥»¥¹¹½Â¤¤¬¼«Æ°Åª¤ËÀ¸À®¡¢´ÉÍý¤µ¤ì¤ë¡£ °Û¤Ê¤ë¥µ¥¤¥È¾å¤Î¥Î¡¼¥É´Ö¤Ç¤ä¤ê¤È¤ê¤µ¤ì¤¿¥á¥Ã¥»¡¼¥¸¤¬ ¾¥Î¡¼¥É¤Ø¤Î»²¾È¤òÊÝ»ý¤·¤Æ¤¤¤ì¤Ð¤¤¤Ä¤Ç¤â¡¢¤³¤¦¤·¤¿¤³¤È¤¬µ¯¤³¤ë¡£ ¥í¡¼¥«¥ë¥Î¡¼¥É¤Ø¤Î»²¾È¤¬¤¢¤ë¤È¡¢ ¥á¥â¥ê´ÉÍýÁØ¤Ï¥í¡¼¥«¥ë¥Î¡¼¥É¤ò¥¢¥¯¥»¥¹¹½Â¤¤ËÊÑ´¹¤¹¤ë¡£ ¤³¤ì¤ò¡¢¥í¡¼¥«¥ë¥Î¡¼¥É¤¬Á´°è²½¤µ¤ì¤¿¤È¤¤¤¦¡£ ¥á¥Ã¥»¡¼¥¸¤¬¥Í¥Ã¥È¥ï¡¼¥¯¾å¤Ë¤¢¤ë´Ö¡¢ ¥¢¥¯¥»¥¹¹½Â¤¤Ï1¤Ä¤Î´ÉÍý¥Î¡¼¥É¤È1¤Ä¤Î¥×¥í¥¯¥·¤«¤é¤Ê¤ë¡£ ¥á¥Ã¥»¡¼¥¸¤¬¼õ¿®À襵¥¤¥È¤ËÃ夯¤È¡¢¤½¤³¤Ë¿·¤·¤¤¥×¥í¥¯¥·¤¬À¸À®¤µ¤ì¤ë¡£ ¥¢¥¯¥»¥¹¹½Â¤¤Ï¡¢¥´¥ß½¸¤á¤Ë¤è¤Ã¤Æ¾®¤µ¤¯¤Ê¤Ã¤¿¤ê´°Á´¤Ë¾Ã¤¨¤¿¤ê¤¹¤ë¡£

ʬ»¶¥´¥ß½¸¤á¤Ï¡¢¶¨Ä´¤¹¤ë2¤Ä¤Îµ¡¹½¤Ë¤è¤Ã¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡§ ³Æ¥µ¥¤¥È¤Î¶É½ê¥´¥ß½¸¤á¤È¡¢Á´°è¥¢¥É¥ì¥¹¤òÊֵѤµ¤»¤ëʬ»¶¥¯¥ì¥¸¥Ã¥Èµ¡¹½¤Ç¤¢¤ë¡£ ¤¢¤ë¥Î¡¼¥É¤¬¥µ¥¤¥È¾å¤Ç»²¾È¤µ¤ì¤Ê¤¯¤Ê¤ë¤È¡¢ ¶É½ê¥´¥ß½¸¤á¤¬¥¯¥ì¥¸¥Ã¥Èµ¡¹½¤Ë¶µ¤¨¤ë¡£ µÕ¤Ë¡¢¤¢¤ë¥Î¡¼¥É¤¬±ó³Ö»²¾È¤µ¤ì¤Ê¤¯¤Ê¤ë¤È¡¢ ¥¯¥ì¥¸¥Ã¥Èµ¡¹½¤¬¶É½ê¥´¥ß½¸¤á¤Ë¶µ¤¨¤ë¡£ ¶É½ê¥´¥ß½¸¤á¤Ï¡¢Â¾¥µ¥¤¥È¤Ë°Í¸¤»¤º¤¤¤Ä¤Ç¤â¸Æ¤Ó½Ð¤¹¤³¤È¤¬¤Ç¤­¤ë¡£ ¶É½ê¥´¥ß½¸¤á¤Ï¡¢ÃæÃǤ·¤Æ¤¤¤Ê¤¤¥¹¥ì¥Ã¥É¥Î¡¼¥É¤«¤éÅþã²Äǽ¤Ê¥Î¡¼¥É¤ä¡¢ ±ó³Ö»²¾È¤µ¤ì¤¿¥Î¡¼¥É¤òº¬¤È¤¹¤ë¡£

¥Î¡¼¥É¤¬±ó³Ö»²¾È¤µ¤ì¤Ê¤¯¤Ê¤ë¤È¡¢Á´°è¥¢¥É¥ì¥¹¤¬ÊֵѤµ¤ì¤ë¡£ ¤³¤ì¤Ï¡¢¥¯¥ì¥¸¥Ã¥Èµ¡¹½¤¬¶É½ê¥´¥ß½¸¤á¤Ë¶µ¤¨¤Æ¤â¤é¤¦¤³¤È¤Ç¹Ô¤Ê¤ï¤ì¤ë¡£ ¤³¤Î¥¹¥­¡¼¥à¤Ï¡¢¥µ¥¤¥È´Ö¤ËÅϤ륵¥¤¥¯¥ë¤Ç¼Î¤Æ¤é¤ì¤¿¥´¥ß¤ò²óÉü¤¹¤ë¡£ ²æ¡¹¤Î¥·¥¹¥Æ¥à¤Ç¡¢°Û¤Ê¤ë¥ª¥Ö¥¸¥§¥¯¥È¤ä¥»¥ë¤Î´Ö¤Ë½Ð¸½¤¹¤ë¤Î¤Ï ¥µ¥¤¥È´Ö¤ËÅϤ륵¥¤¥¯¥ë¤Î¤ß¤Ç¤¢¤ë¡£ ¥ì¥³¡¼¥É¤È¼ê³¤­¤Ï¶¦¤ËºÆ¸½²Äǽ¤Ê¤Î¤Ç¡¢ ¤½¤Î´Ö¤Î¥µ¥¤¥¯¥ë¤Ï1¤Ä¤Î¥µ¥¤¥È¤Ë¶É½ê²½¤µ¤ì¤Æ¤¤¤ë¡£ ¥¯¥ì¥¸¥Ã¥Èµ¡¹½¤Ï¡¢Á°½Ò¤Î»²¾È¿ô¥¹¥­¡¼¥à[28]¤Î ¥á¥â¥ê¡¢¥Í¥Ã¥È¥ï¡¼¥¯¸úΨ¤Î°­¤µ¤ËǺ¤Þ¤µ¤ì¤Ê¤¤¡£

¥¯¥ì¥¸¥Ã¥Èµ¡¹½¤Î´ðËÜŪ¤Ê¥¢¥¤¥Ç¥¢¤ò´Êñ¤Ë¤Þ¤È¤á¤ë¡£ ³ÆÁ´°è¥¢¥É¥ì¥¹¤òºî¤ëÀ°¿ô¡ÊÂߤ·¿ô¡Ë¤Ï¡¢ ¥¯¥ì¥¸¥Ã¥ÈÈÖ¹æ¤òɽ¤·¡¢Â¾¥µ¥¤¥È¤ä¥á¥Ã¥»¡¼¥¸¤Ë¸ø³«¤µ¤ì¤ë¡£ Á´°è¥¢¥É¥ì¥¹¤òÊÝ»ý¤¹¤ë¥µ¥¤¥È¤ä¥á¥Ã¥»¡¼¥¸¤Ï¡¢ ºÇÄã1¤ÄÁ´°è¥¢¥É¥ì¥¹¤Î¥¯¥ì¥¸¥Ã¥È¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ À¸À®¥µ¥¤¥È¤Ï½êÍ­¼Ô¤È¸Æ¤Ð¤ì¤ë¡£ ¾¥µ¥¤¥È¤Ï¼Ú¤ê¼ê¤È¸Æ¤Ð¤ì¤ë¡£ ¤¢¤ë¥Î¡¼¥É¤¬±ó³Ö»²¾È¤µ¤ì¤Æ¤¤¤ë¤Î¤Ï¡¢Âߤ·¿ô¤¬Îí¤Ç¤Ê¤¤»þ¤Ç¤¢¤ë¡£

ºÇ½é¤Ï¼Ú¤ê¼ê¤¬¤¤¤Ê¤¤¤Î¤Ç¡¢½êÍ­¼Ô¤ÎÂߤ·¿ô¤ÏÎí¤Ç¤¢¤ë¡£ ½êÍ­¼Ô¤Ï¤½¤Î¥Î¡¼¥É¤ò»²¾È¤¹¤ë¥µ¥¤¥È¤ä¥á¥Ã¥»¡¼¥¸¤Ë¥¯¥ì¥¸¥Ã¥È¤òÂߤ·¡¢ Âߤ·¤¿¥¯¥ì¥¸¥Ã¥È¤Î¸Ä¿ôʬ¤À¤±Âߤ·¿ô¤òÁý¤ä¤¹¡£ ¥á¥Ã¥»¡¼¥¸¤¬¼Ú¤ê¼ê¤ËÆϤ¯¤È¡¢¤½¤Î¥¯¥ì¥¸¥Ã¥È¤¬´û¸¤Î¥¯¥ì¥¸¥Ã¥È¤Ë²Ã¤¨¤é¤ì¤ë¡£ ¥á¥Ã¥»¡¼¥¸¤¬½êÍ­¼Ô¤ËÆϤ¯¤È¡¢¤½¤Î¥¯¥ì¥¸¥Ã¥È¤¬½êÍ­¼Ô¤ÎÂߤ·¿ô¤«¤é°ú¤«¤ì¤ë¡£ ¼Ú¤ê¼ê¤¬¥Î¡¼¥É¤ò¶É½ê»²¾È¤·¤Ê¤¯¤Ê¤ë¤È¡¢Á´¤Æ¤Î¥¯¥ì¥¸¥Ã¥È¤¬½êÍ­¼Ô¤ËÊÖ¤µ¤ì¤ë¡£ ¤³¤ì¤Ï¡¢¶É½ê¥´¥ß½¸¤á¤Ë¤è¤Ã¤Æ¹Ô¤Ê¤ï¤ì¤ë¡£ ½êÍ­¼Ô¤ÎÂߤ·¿ô¤¬Îí¤Ë¤Ê¤ë¤È¡¢ ¤½¤Î¥Î¡¼¥É¤Ï¶É½ê»²¾È¤·¤«¤µ¤ì¤Æ¤¤¤Ê¤¤¤Î¤Ç¡¢Á´°è¥¢¥É¥ì¥¹¤¬ÊֵѤµ¤ì¤ë¡£

¥»¥ë¥¢¥¯¥»¥¹¹½Â¤¤Î¾ì¹ç¤ò¹Í¤¨¤è¤¦¡£ ´ÉÍý¥µ¥¤¥È¤Ï½êÍ­¼Ô¤Ç¤¢¤ê¡¢¥»¥ë¥×¥í¥¯¥·¤ò»ý¤Ä¾¤ÎÁ´¥µ¥¤¥È¤Ï¼Ú¤ê¼ê¤Ç¤¢¤ë¡£ ¥×¥í¥¯¥·¤Ï¡¢¶É½ê»²¾È¤µ¤ì¤Ê¤¯¤Ê¤ë¤È¾Ã¤¨¤ë¡£ ¤½¤·¤Æ¡¢¤½¤Î¥¯¥ì¥¸¥Ã¥È¤¬´ÉÍý¼Ô¤ËÊÖ¤µ¤ì¤ë¡£ ¤½¤Î¥×¥í¥¯¥·¤¬¾õÂ֥ݥ¤¥ó¥¿¤òÊÝ»ý¤·¤Æ¤¤¤¿¤é¡¢ ¾õÂ֥ݥ¤¥ó¥¿¤â´ÉÍý¥µ¥¤¥È¤ËÊÖ¤µ¤ì¤ë¡£ ¥»¥ë¥¢¥¯¥»¥¹¹½Â¤Ãæ¤Î¥µ¥¤¥È´Ö¥µ¥¤¥¯¥ë¤¬¾Ã¤¨¤ë¤³¤È¤ËÃí°Õ¤»¤è¡£ ´ÉÍý¼Ô¤¬Á´¤Æ¤Î¥¯¥ì¥¸¥Ã¥È¤òÊֵѤ¹¤ë¤È¡¢¥»¥ë¤Ï¶É½ê¥»¥ë¤ËÌá¤ë¡£ ¶É½ê¥»¥ë¤Ï¡¢¶É½ê»²¾È¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤ÐÊֵѤµ¤ì¤ë¡£ ¶É½ê¥»¥ë¤¬¡Ê¤½¤Î¥»¥ë¤ò»²¾È¤¹¤ë¥á¥Ã¥»¡¼¥¸¤¬¥Í¥Ã¥È¥ï¡¼¥¯¤òÅÏ¤Ã¤Æ¡Ë Á´°è¥»¥ë¤ËÌá¤ë¤È¡¢ÊֵѤ·¤¿¤â¤Î¤È̵´Ø·¸¤Ë¿·¤·¤¤´ÉÍý¥Î¡¼¥É¤¬À¸À®¤µ¤ì¤ë¡£


5 ¥ª¡¼¥×¥ó¥³¥ó¥Ô¥å¡¼¥Æ¥£¥ó¥° (Open computing)

ʬ»¶¥·¥¹¥Æ¥à¤¬¥ª¡¼¥×¥ó¤Ç¤¢¤ë¤È¤Ï¡¢ÆÈΩ¤Ë¼Â¹ÔÃæ¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬ ÌÌÇò¤¤ÊýË¡¤ÇÁê¸ß¤Ë´³¾Ä¤Ç¤­¤ë¤³¤È¤Ç¤¢¤ë[7]¡£ ¤³¤ì¤Ï°ìÈ̤ˡ¢¥·¥¹¥Æ¥à¤¬¶¦ÄÌ´ðÈפò¶¦Ä̤Υե졼¥à¥ï¡¼¥¯¤ä¸À¸ì¤Î·Á¤ÇÄ󶡤·¡¢ ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬¤½¤ì¤ò»È¤Ã¤Æ´³¾Ä¤Ç¤­¤ë¤³¤È¤Ç¤¢¤ë¡£ ŵ·¿Åª¤ÊÎã¤Ï¡¢¾ðÊó¸ò´¹ÍѤζ¦Ä̾ðÊó¥Õ¥©¡¼¥Þ¥Ã¥È¤ä¡¢ ÅŻҾ¦¼è¤ê°ú¤­ÍѤζ¦ÄÌ¥×¥í¥È¥³¥ë¤Ê¤É¤Ç¤¢¤ë¡£ Âè1¤ÎÍ×µá¤Ï¡¢¥Í¥Ã¥È´Ö¤ÇÆÈΩ¤Ë¼Â¹Ô¤ò»Ï¤á¤¿¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬ Àܳ¤ò³ÎΩ¤¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ Âè2¤ÎÍ×µá¤Ï¡¢ ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬¿·¤·¤¯Ê¬»¶·×»»¤ò»Ï¤á¤ë¤³¤È¤¬¤Ç¤­¤ë¤Ù¤­¤Ç¤¢¤ë¡£


5.1 Àܳ¤È¥Á¥±¥Ã¥È (Connections and tickets)


Copyright 1998, Seif Haridi, Peter Van Roy, Per Brand, and Christian Schulte.
2000, TAKAGI Yusuke.