¹Ø¼ü´Ê Java RMI ÆóÒµ·Ö²¼Ê½Ó¦ÓÃ
1 ¸ÅÊö
Ëæ×ŵçÁ¦ÆóÒµÐÅÏ¢»¯½¨ÉèµÄ²»¶ÏÉîÈëºÍ·¢Õ¹£¬ÆóÒµÄÚ²¿ºÍÆóÒµÓëÆóÒµÖ®¼ä¶ÔÐÅÏ¢¡¢¶ÔÊý¾ÝµÄ½»»»Á¿´ó´óÔö¼Ó£¬ÕâЩÐÅÏ¢ÓëÊý¾ÝÔ½À´Ô½ÐèÒªÔÚ²»Í¬µÄ¼ÆËã»úÍøÂç¼ä´«Ëͺͽ»Á÷¡£Í¬Ê±£¬ÓÉÓÚ¸÷µ¥Î»¡¢¸÷²¿ÃÅÖ®¼äµÄÏÖ´æµÄ¼ÆËã»úÍøÂçÓ²¼þÉ豸Óë²Ù×÷ϵͳǧ²îÍò±ð£¬Ó¦ÓÃˮƽҲ²Î²î²»Æë£¬Òò´Ë£¬¿ª·¢³ö¿çƽ̨¡¢¿ÉÒÆÖ²¡¢¸ßЧ°²È«µÄÍøÂç·Ö²¼Ê½Ó¦ÓÃÀ´·þÎñÓÚµçÁ¦ÆóÒµ£¬¾ÍÏÔµÃÓÈÎªÖØÒª¡£
ÔÚµ±½ñµÄ±à³ÌÊõÓïÀ·Ö²¼Ê½¼ÆËãÒѾ³ÉΪºÜ³£¼ûµÄ´Ê£¬Ëü½«ÆóÒµµÄÒµÎñÊý¾ÝºÍ³ÌÐò·Ö²¼ÔÚÍøÂçµÄ²»Í¬ÎïÀíλÖÃÉÏ£¬Í¨¹ýµ÷¶¯ÍøÂçÉ϶ą̀¼ÆËã»úµÄ´¦ÀíÄÜÁ¦£¬·¢»ÓÔ¶³Ìµ÷ÓÃÊý¾ÝµÄ¹¦ÄÜ¡£
Ô¶³Ì·½·¨µ÷ÓÃ(Remote Method Invocation ,RMI)£¬¿ÉÒÔÔÚ²»Í¬µÄJavaÐéÄâ»ú(JVM)Ö®¼äʵÏÖ¶ÔÏóÓë¶ÔÏóµÄͨÐÅ¡£JVM¿ÉÒÔλÓÚÏàͬ»ò²»Í¬¼ÆËã»úÉÏ£¬ÔÚ¶à¸öJVMÖУ¬Ò»¸öJVM¿ÉÒÔµ÷Óô洢ÔÚÆäËüJVMµÄ¶ÔÏóµÄ·½·¨¡£
±¾ÎÄÖ÷Òª½éÉÜRMIµÄÌØµã£¬·ÖÎöÓ¦ÓÃRMI½øÐÐÆóÒµ·Ö²¼Ê½¼ÆËãµÄÔÀí£¬ÒÔ¼°ÀûÓÃRMIʵÏÖ»ùÓÚJavaµÄÆóÒµ·Ö²¼Ê½Ó¦ÓõľßÌå²½Öè¡£
2 Ô¶³Ì·½·¨µ÷ÓÃ(RMI)µÄÌØµã
2.1 TCP±à³ÌµÄȱµã
ÓÉÓÚJava±à³ÌÓïÑÔÉè¼ÆÖ®³õ¾ÍÊÇÃæÏò¶ÔÏóºÍÖ§³ÖÍøÂçµÄ£¬Òò´Ë£¬»ùÓÚ¶ÔÏóµÄRMI»úÖÆÒѾÄÚÖÃÔÚJavaƽ̨ÖС£
ÎÒÃǾ³£»áÔÚÍøÂ翪·¢ÖÐʹÓÃTCP/IP±à³Ì£¬ÕâÑù£¬×ÔÈ»¶øÈ»µØ¾Í»áÉæ¼°µ½Socket£¨Ì×½Ó×Ö£©±à³Ì¡£µ«ÊÇ£¬Ê¹ÓÃSocket±à³ÌÐèÒª´óÁ¿Öظ´±àÂ룬ÔÚ¸´ÔÓ·Ö²¼Ê½²Ù×÷ʱÏԵ÷dz£Âé·³£¬¶øÇÒÒ×ÓÚ³ö´í¡£Òò´Ë£¬ÈçºÎ¿ìËÙ¡¢¸ßЧ¡¢°²È«¡¢¿ÉÀ©Õ¹µØ½øÐÐÍøÂç·Ö²¼Ê½¼ÆË㣬ÊÇ¿ª·¢ÕßÃÇÒ»¹á×·ÇóºÍ³«µ¼µÄÖ÷Ìâ¡£Ö±µ½RMIµÄ³öÏÖ£¬ÕâÖÖ·±ÔÓ¡¢µÍЧµÄ¿ª·¢Çé¿ö²ÅÓкܴó¸Ä¹Û¡£
2.2 RMI±à³ÌµÄÌØµã
µ±ÎÒÃÇÀûÓöÔÏóÐòÁл¯ÔÚÍøÂçÉÏ·ÖÅä¶ÔÏóʱ£¬RMIÌṩÁË·ÇJavaƽ̨ÎÞ·¨Æ¥µÐµÄ¶ÀÌØ¶øÇ¿´óµÄ·Ö²¼Ê½¼ÆËãÄ£ÐÍ£¬RMIÖ÷ÒªÓÐÒÔÏÂÌØµã£º
? ¿Í»§»ú¿ÉÒÔÏò±¾µØ·½·¨Ò»Ñùµ÷ÓÃÔ¶³Ì·þÎñÆ÷Éϵķ½·¨£»
? ¿ÉÒÔ¸ù¾Ý½Ó¿ÚÖ¸¶¨¿Í»§»ú/·þÎñÆ÷±à³ÌºÏÔ¼£»
? ¿ÉÒÔ´Ó·þÎñÆ÷¶ÔÏóȱʡ¶þ½øÖÆÀàÎļþ£¬×Ô¶¯Éú³Éµ÷¶¯/·´µ÷¶¯´úÂ룻
? ½«Java±à³ÌÄ£ÐÍÀ©Õ¹µ½»úÆ÷±ß½ç(ºÍJavaÐéÄâ»ú(JVM)±ß½çÖ®Íâ)£¬²»ÐèÒªÈκÎÌØÊâÓï·¨£»
? »¹¿ÉÒÔºÍÒ»¸öÔ¶³Ì·½·¨µ÷ÓÃÖеÄÊý¾Ýͬʱ´«ÊäÐÐΪ(´úÂë)¡£
¾¡¹ÜRMI²»ÊÇΨһµÄÆóÒµ¼¶Ô¶³Ì¶ÔÏó·ÃÎÊ·½°¸£¬µ«ËüÈ´ÊÇ×îÈÝÒ×ʵÏֵġ£
2.3 RMIÓëCORBA
×÷Ϊ·Ö²¼Ê½Ó¦ÓóÌÐò¿ò¼ÜµÄ¹æ·¶£¬COBRAÊ×µ±Æä³å£¬ËüÊÇÓɶÔÏó¹ÜÀí×éÖ¯(OMG)¿ª·¢µÄ¡£ÓëCORBA²»Í¬µÄÊÇ£¬CORBAÄܹ»ÀûÓò»Í¬±à³ÌÓïÑÔ£¨ÀýÈçC/C++¡¢BasicµÈ£©¿ª·¢ÊµÏÖ·Ö²¼Ê½Ó¦Ó㬶øRMIÊÇÒ»ÖÖ´¿Java½â¾ö·½°¸¡£ÔÚRMIÖУ¬³ÌÐòµÄËùÓв¿·Ö¶¼ÓÉJavaÓïÑÔ±àд£¬ÕâÑù£¬¿ª·¢³öÀ´µÄ³ÌÐòÍêÈ«·ûºÏJava¹æ·¶£¬±ãÓÚʵÏÖ¿çÆ½Ì¨·ÃÎÊ¡¢À©Õ¹ºÍÒÆÖ²¡£°´ÕÕ±ÊÕßËùÔÚÎ÷±±µçÁ¦½¨É輯ÍŹ«Ë¾µÄÇé¿ö¿´£¬·þÎñÆ÷²Ù×÷ϵͳÖ÷ÒªÓÐLinuxºÍWindows2000 Server£¬·Ö±ð´æÔÚÓÚ¹«Ë¾ºÍ²¿Ãŵ±ÖУ¬ËüÃÇÊDz»Í¬µÄϵͳƽ̨£»Í¬Ê±£¬¹«Ë¾ÏÂÊô¸÷¸ö¹¤³ÌÏîÄ¿²¿ÓÖ¾àÀëºÜÔ¶£¬½üµÄ¼¸Ê®¹«ÀԶÔò´ïµ½ÉÏǧ¹«ÀïÉõÖÁλÓÚ¹úÍ⣬Òò´Ë¿çƽ̨ºÍÔ¶³Ì·ÃÎÊÕâÁ½´ó¹¦ÄÜÔÚ¿ª·¢ÆóÒµÓ¦ÓÃϵͳʱ¾Í±ØÐ뿼ÂÇ£¬¶øRMIǡǡÄܹ»ÓÃËüµÄ×ÔÉíÌØµãÀ´Âú×ã±à³ÌÐèÒª¡£