¡¡
¡¡
¡¡
¡¡
¡¡
¡¡
Java ºÐ»ê ÄÄÇ»ÆÃ ±â¼ú
Java Distributed Computing Technology
¡¡
¡¡
¡¡
¡¡
¡¡
ÇÏ¿µ±¹(Young-Gook Ha)
¡¡
³×Æ®¿öÅ©ÄÄÇ»ÆÃ¿¬±¸ºÎ, ¿¬±¸¿ø
¡¡
¡¡
¡¡
¡¡
¡¡
¡¡
¿ä¾à

³×Æ®¿öÅ©°¡ ÄÄÇ»ÆÃ ȯ°æÀÇ ±â¹ÝÀ» ÀÌ·ç°Ô µÇ¸é¼­ À̱âÁ¾ ÄÄÇ»ÅͰ£ ºÐ»ê ÄÄÇ»ÆÃÀÇ Á߿伺ÀÌ ºÎ°¢µÇ°í ÀÖÀ¸³ª, À̰ÍÀº °¢ ÄÄÇ»ÆÃ ȯ°æÀ» ±¸¼ºÇÏ´Â Ç÷§ÆûÀÇ ´Ù¾ç¼º ¶§¹®¿¡ ¸Å¿ì º¹ÀâÇÏ°í ¾î·Á¿î ÀÛ¾÷ÀÌ´Ù. Java ¿£ÅÍÇÁ¶óÀÌÁî Ç÷§ÆûÀº ºÐ»ê ÄÄÇ»ÆÃÀ» À§ÇÑ ´Ù¾çÇÑ API¸¦ Á¦°øÇÏ¿© ÀÀ¿ëÇÁ·Î±×·¥ÀÇ »ý»ê¼º Çâ»ó ¹× Ç÷§Æû µ¶¸³¼ºÀ» Á¦°øÇÑ´Ù. CORBA¿Í JavaÀÇ ¿¬µ¿À» À§ÇÑ JavaIDL, ¿ø°Ý Java ¸Þ½îµå È£ÃâÀ» À§ÇÑ RMI, °ü°èÇü µ¥ÀÌÅͺ£À̽º¿ÍÀÇ ¿¬°áÀ» À§ÇÑ JDBC µîÀÇ API¸¦ ÀÌ¿ëÇÏ¿© °³¹ßÀÚ´Â Java¶ó´Â ´ÜÀÏ Ç÷§ÆûÇÏ¿¡¼­ ºÐ»ê ÀÀ¿ëÇÁ·Î±×·¥À» ÀÛ¼ºÇÒ ¼ö ÀÖ´Ù. º» °í¿¡¼­´Â Java ºÐ»ê ÄÄÇ»ÆÃ API ¹× °ü·Ã ±â¼ú µ¿Çâ¿¡ ´ëÇØ ¾Ë¾Æº¸°í Java ºÐ»ê ÄÄÇ»ÆÃ ±â¼úÀÇ ¹Ì·¡¿¡ ´ëÇØ Àü¸ÁÇØ º»´Ù.

¡¡

I. Java ºÐ»ê ÄÄÇ»ÆÃ ±â¼úÀÇ °³¿ä

ÀÎÅÍ³Ý ¹× ÀÎÆ®¶ó³ÝÀÇ º¸±ÞÀÌ È®»êµÇ¸é¼­ ³×Æ®¿öÅ©´Â ÄÄÇ»ÆÃ ȯ°æÀÇ ±â¹ÝÀ» ÀÌ·ç°Ô µÇ¾úÀ¸¸ç À̱âÁ¾ ÄÄÇ»ÅͰ£ ºÐ»ê ÄÄÇ»ÆÃÀÇ Á߿伺ÀÌ ºÎ°¢µÇ°í ÀÖ´Ù. ±×·¯³ª À̱âÁ¾ ÄÄÇ»ÅͰ£ÀÇ ºÐ»ê ÄÄÇ»ÆÃÀº °¢ ÄÄÇ»ÆÃ ȯ°æÀ» ±¸¼ºÇÏ´Â Ç÷§ÆûÀÇ ´Ù¾ç¼º ¶§¹®¿¡ ¸Å¿ì º¹ÀâÇÏ°í ¾î·Á¿î ÀÛ¾÷À¸·Î ¿©°ÜÁö°í ÀÖ´Ù. °ü·Ã ¾÷ü ¹× Ç¥ÁØÈ­ ´Üü¿¡¼­ ºÐ»ê ÄÄÇ»ÆÃÀ» À§ÇÑ Ç¥ÁØÀ» Á¦¾ÈÇϰí ÀÖÁö¸¸ ºÐ»ê ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ ¿ä±¸°¡ Á¡Â÷ ´Ù¾çÈ­ µÊ¿¡ µû¶ó º¸´Ù ÀϰüÀûÀ̰í Ç÷§Æû¿¡ µ¶¸³ÀûÀÎ °³¹ß ȯ°æÀ» ÇÊ¿ä·Î ÇÏ°Ô µÇ¾ú´Ù. ½ã¸¶ÀÌÅ©·Î½Ã½ºÅÛÁî(ÀÌÇÏ ½ã)¿¡ ÀÇÇØ °³¹ßµÈ Java°¡ µîÀåÇϸ鼭 ºÐ»ê ÀÀ¿ëÇÁ·Î±×·¥ °³¹ßÀÚµéÀº ÀÌ·¯ÇÑ °³¹ß ȯ°æÀ» Á¦°ø ¹ÞÀ» ¼ö ÀÖ´Â ±âȸ¸¦ °®°Ô µÇ¾ú´Ù. Java°¡ Á¦½ÃÇÏ´Â ¿£ÅÍÇÁ¶óÀÌÁî Ç÷§Æû[4][EJ]Àº ºÐ»ê ÄÄÇ»ÆÃÀ» À§ÇÑ ´Ù¾çÇÑ API(Application Program Interface)¸¦ Á¦°øÇϸç ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ »ý»ê¼º Çâ»ó ¹× Ç÷§Æû µ¶¸³¼ºÀ» Á¦°øÇÑ´Ù(±×¸² 1 ÂüÁ¶).

±×¸² 1 Java ¿£ÅÍÇÁ¶óÀÌÁî Ç÷§Æû

¡¡

1. Java ºÐ»ê ÄÄÇ»ÆÃ API

ºÐ»ê ÄÄÇ»ÆÃ ȯ°æÇÏ¿¡¼­ Java´Â ÀÀ¿ëÇÁ·Î±×·¥ °³¹ßÀÚ¿¡°Ô ¼­¹ö µ¶¸³¼º »Ó ¾Æ´Ï¶ó Æ®·£Àè¼Ç ½Ã½ºÅÛ ¹× µ¥ÀÌÅͺ£À̽º µî ÇϺα¸Á¶¿ÍÀÇ µ¶¸³¼ºÀ» Á¦°øÇÑ´Ù. Java ¿£ÅÍÇÁ¶óÀÌÁî API[EJ]¸¦ ÅëÇÏ¿© °³¹ßÀÚ´Â ±âÁ¸ÀÇ ´Ù¾çÇÑ ºÐ»ê ÄÄÇ»ÆÃ Ç÷§Æû°ú ÇÁ·ÎÅäÄÝÀ» À§ÇÑ ÀϰüµÈ °³¹ß ȯ°æÀ» Á¦°ø ¹Þ´Â´Ù. CORBA(Common Object Request Broker Architecture)[CORBA]¿Í JavaÀÇ ¿¬µ¿À» À§ÇÑ JavaIDL(Java Interface Definition Language)[JIDL], ¿ø°Ý Java ¸Þ½îµå È£ÃâÀ» À§ÇÑ RMI(Remote Method Invocation)[RMI], Java¿Í °ü°èÇü µ¥ÀÌÅͺ£À̽º¿ÍÀÇ ¿¬°áÀ» À§ÇÑ JDBC(Java DataBase Connectivity)[JDBC] µîÀÇ API¸¦ ÀÌ¿ëÇÏ¿© °³¹ßÀÚ´Â Java¶ó´Â ´ÜÀÏ Ç÷§ÆûÇÏ¿¡¼­ ºÐ»ê ÀÀ¿ëÇÁ·Î±×·¥À» ÀÛ¼ºÇÒ ¼ö ÀÖ´Ù. ±×¸² 2´Â Java ºÐ»ê ÄÄÇ»ÆÃ API°£ÀÇ °ü°è¸¦ º¸¿©ÁÖ¸ç, Ç¥ 1Àº °¢ API°£ÀÇ ºñ±³¸¦ ³ªÅ¸³½´Ù.

±×¸² 2 ºÐ»ê ÄÄÇ»ÆÃÀ» À§ÇÑ Java API

¡¡

Ç¥ 1 ºÐ»ê °ËÇ»ÆÃÀ» À§ÇÑ Java APIÀÇ ºñ±³
 
±¸ºÐ
JavaIDL
(Java Interface Definition Language)
RMI
(Remote Method Invocation)
JDBC
(Java DataBase Connectivity)
±â ´É
  • Java¸¦ CORBA¿¡ ¿¬°á
  • À̱âÁ¾ ºÐ»ê ÄÄÇ»ÆÃ ȯ°æ¿¡ ÀûÇÕ
  • Java °£ÀÇ ¿¬°á
  • ¼­·Î ´Ù¸¥ JVM »ó¿¡¼­ ½ÇÇàÁßÀÎ Java¿Í Java°£ÀÇ ¿ø°Ý ¸Þ½îµå È£Ãâ
  • Java¸¦ °ü°èÇü DB¿¡ ¿¬°á
  • °ü°èÇü DB¿¡ ´ëÇÏ¿© ÀϰüµÈ ÀÎÅÍÆäÀ̽º Á¦°ø

  • º¹À⼺
    º¹ÀâÇÔ °£ÆíÇÔ
    • IDL ÆÄÀÏ »ý¼º ÈÄ Å¬¶óÀÌ¾ðÆ® ¹× ¼­¹öÀÇ ·±Å¸ÀÓ »ý¼ºÀÌ ÇÊ¿ä
    ¡¡
    • Ŭ¶óÀÌ¾ðÆ® ¹× ¼­¹öÀÇ ·±Å¸ÀÓÀ» »ý¼ºÇϱâ À§ÇÑ ÀÎÅÍÆäÀ̽º Ŭ·¡½º »ý¼º ÇÊ¿ä
    ¡¡
    • C Library »ç¿ë½Ã¿Í À¯»çÇÑ API »ç¿ë
    ¡¡

    À¯¿¬¼º
    ¸¹À½ ÀûÀ½
    • RMIÀÇ À¯¿¬¼º
    • ¼­¹ö º¯°æ ½Ã ÀÛ¾÷ ºÒÇÊ¿ä
  • ¸Þ½îµå°¡ »èÁ¦µÇÁö ¾Ê´Â ÇÑ Å¬¶óÀÌ¾ðÆ® ÇÁ·Î±×·¥ º¯°æ ºÒÇÊ¿ä
  • ¼­¹ö º¯°æ ½Ã ÀÛ¾÷ ÇÊ¿ä
  • DB »óÀÇ ¸ðµç º¯°æ ¹ß»ý½Ã Ŭ¶óÀÌ¾ðÆ® ÇÁ·Î±×·¥ ÀçÀÛ¼º ¹× ÀçÄÄÆÄÀÏ ÇÊ¿ä
  • ¡¡

    ¡¡

    2. Java ºÐ»ê ÀÀ¿ëÇÁ·Î±×·¥ ¸ðµ¨

    Java ºÐ»ê ÀÀ¿ëÇÁ·Î±×·¥À» ÀÛ¼ºÇϱâ À§ÇÑ ¸ðµ¨·Î´Â ÀϹÝÀûÀΠŬ¶óÀ̾ðÆ®/¼­¹ö ¸ðµ¨·Î ¾Ë·ÁÁ® ÀÖ´Â 2-°èÃþ ±¸Á¶¿Í ¼­¹öÃøÀ» ºñÁî´Ï½º ³í¸® °èÃþ°ú µ¥ÀÌÅͺ£À̽º °èÃþÀ¸·Î ºÐ¸®ÇÑ 3-°èÃþ ±¸Á¶°¡ ÀÖ´Ù[2][6]. ÇöÀç ´ëºÎºÐÀÇ ºÐ»ê ÀÀ¿ëÇÁ·Î±×·¥ÀÌ Ã¤ÅÃÇϰí ÀÖ´Â 2-°èÃþ ±¸Á¶ÀÇ °æ¿ì, ºñÁî´Ï½º ³í¸® °èÃþÀº Ŭ¶óÀ̾ðÆ®Ãø¿¡¼­ ½ÇÇàµÇ´Â ÀÀ¿ëÇÁ·Î±×·¥¿¡ Æ÷ÇԵǾî ÀÖÀ¸¸ç ƯÁ¤ ¾÷¹« ¼öÇàÀ» À§ÇØ ¼­¹öÃø µ¥ÀÌÅͺ£À̽º¿¡ ´ëÇÑ Á¢±Ù ¹× ÀÌÈÄÀÇ Ã³¸®¸¦ ¼öÇàÇÏ°Ô µÈ´Ù. ±×·¯³ª Àüü ½Ã½ºÅÛÀÇ Å©±â°¡ Ä¿Áö°í Ŭ¶óÀ̾ðÆ®ÀÇ ¼ö°¡ ¸¹¾ÆÁö¸é °¢ ÀÀ¿ëÇÁ·Î±×·¥°£¿¡ µ¿ÀÏÇÑ ¿ªÇÒÀ» ¼öÇàÇÏ´Â ºñÁî´Ï½º ³í¸® °èÃþÀ» Æ÷ÇÔÇÏ°Ô µÇ´Â Áߺ¹ ¹®Á¦°¡ ¹ß»ýÇÏ°Ô µÉ °ÍÀÌ´Ù. ¹Ù²Ù¾î ¸»Çؼ­ ºñÁî´Ï½º ³í¸®°¡ ¹Ù²î°Ô µÈ´Ù¸é °ü·ÃµÈ ¸ðµç ÀÀ¿ëÇÁ·Î±×·¥ÀÇ ¼öÁ¤ÀÌ ºÒ°¡ÇÇÇÏ°Ô µÈ´Ù. Àß ¼³°èµÈ 3-°èÃþ ±¸Á¶ ½Ã½ºÅÛÀÇ °æ¿ì ÀÌ¿Í °°Àº Áߺ¹ÀÌ ¹ß»ýÇÏÁö ¾ÊÀ¸¸ç ´Ù¸¥ °èÃþ¿¡ ¿µÇâÀ» ÁÖÁö ¾Ê°í ºñÁî´Ï½º ³í¸® °èÃþÀ» º¯°æÇÒ ¼ö ÀÖ´Ù. Java ºÐ»ê ÄÄÇ»ÆÃ API¸¦ ÀÌ¿ëÇÏ¿© ÀÀ¿ëÇÁ·Î±×·¥À» ÀÛ¼ºÇÒ ¶§´Â ±¸¼ºÇϰíÀÚ ÇÏ´Â ½Ã½ºÅÛ¿¡ ÀûÀýÇÑ ºÐ»ê ÄÄÇ»ÆÃ ¸ðµ¨°ú API¸¦ ¼±ÅÃÇÏ´Â °ÍÀÌ È¿°úÀûÀÎ °á°ú¸¦ ¾òÀ» ¼ö ÀÖ´Â ±âº»ÀÌ µÈ´Ù. ±×¸² 3°ú ±×¸² 4´Â °¢°¢ Java ºÐ»ê ÄÄÇ»ÆÃ API¸¦ ÀÌ¿ëÇÏ¿© ±¸¼º °¡´ÉÇÑ 2-°èÃþ ¹× 3-°èÃþ ½Ã½ºÅÛÀ» º¸¿©ÁØ´Ù.

    ±×¸² 3 2-°èÃþ ½Ã½ºÅÛ

    ¡¡

    ±×¸² 4 3-°èÃþ ½Ã½ºÅÛ

    ¡¡

    º» °íÀÇ ±¸¼ºÀº ´ÙÀ½°ú °°´Ù. II Àå¿¡¼­´Â CORBAÀÇ °³¿ä¿Í JavaIDLÀ» ÀÌ¿ëÇÑ Java-CORBA°£ÀÇ ¿¬µ¿¿¡ ´ëÇØ ¼³¸íÇÑ´Ù. III Àå¿¡´Â RMI¿¡ ´ëÇØ¼­ ¼³¸íÇϰí IV Àå¿¡¼­´Â JDBC¿¡ ´ëÇØ ¾Ë¾Æº¸±â·Î ÇÑ´Ù. ¸¶Áö¸·À¸·Î V Àå¿¡¼­´Â Java ºÐ»êÄÄÇ»ÆÃ ±â¼úÀÇ µ¿Çâ°ú ¾ÕÀ¸·ÎÀÇ Àü¸Á¿¡ ´ëÇØ ¼³¸íÇÑ´Ù.

    ¡¡

    II. CORBA¿ÍÀÇ ¿¬µ¿À» À§ÇÑ JavaIDL

    À̹ø Àå¿¡¼­´Â OMA(Object Management Architecture) ¹× CORBA¿¡ ´ëÇØ ¾Ë¾Æº¸°í Java¿Í ¿¬µ¿Çϱâ À§ÇÑ JavaIDL¿¡ ´ëÇØ¼­ ¼³¸íÇÑ´Ù. ±×¸®°í ÇöÀç ÆÇ¸ÅµÇ°í ÀÖ´Â CORBA-Java »ó¿ë Á¦Ç°µé¿¡ ´ëÇØ¼­ ¾Ë¾Æº¸±â·Î ÇÑ´Ù.

    ¡¡

    1. CORBAÀÇ °³¿ä

    1989³â 4¿ù¿¡ ±âÁ¸ÀÇ ±â¼úÀ» ¹ÙÅÁÀ¸·Î ÀÀ¿ëÇÁ·Î±×·¥µéÀ» °áÇÕÇÑ °´Ã¼ÁöÇâ Ç¥ÁØÀ» Á¦Á¤Çϱâ À§ÇØ OMG(Object Management Group)¶ó´Â ºñ¿µ¸® ´Üü°¡ ź»ýÇß´Ù. Java¸¦ °³¹ßÇÑ ½ãÀº OMGÀÇ Ã¢¸³ ȸ¿øÀ̸ç IDL(Interface Definition Language)°³¹ßÀ» ÁÖµµÇß´Ù. ÇöÀç ¸¶ÀÌÅ©·Î¼ÒÇÁÆ®¸¦ Æ÷ÇÔÇØ 700¿© °³ÀÇ È¸¿ø»ç¸¦ °¡Áö°í ÀÖ´Â OMG´Â 1990³â¿¡ °´Ã¼ÁöÇâ ±â¼úÀ» ±â¹ÝÀ¸·Î À̱âÁ¾ÀÇ ºÐ»ê ȯ°æÇÏ¿¡¼­ ÀÀ¿ëÇÁ·Î±×·¥°£ÀÇ ÅëÇÕÀ» À§ÇÑ Ç¥ÁØ ±â¼úÀÎ OMA[5]¸¦ ¹ßÇ¥Çß´Ù. ±×¸² 5´Â OMAÀÇ ±¸Á¶¸¦ ³ªÅ¸³½´Ù. OMA´Â ºÐ»ê ÀÀ¿ëÇÁ·Î±×·¥°£ÀÇ °áÇÕ, °´Ã¼ÀÇ »ý¼º, ¼Ò¸ê ¹× ÀúÀå, Æ®·£Àè¼Ç ±â´É¿¡ À̸£±â±îÁö ºÐ»ê °´Ã¼ ȯ°æ¿¡¼­ ÇÊ¿äÇÑ ¼­ºñ½º¸¦ Á¦°øÇÑ´Ù. OMAÀÇ ±¸¼º ¿ä¼ÒÁß ÇϳªÀÎ CORBA´Â ¼­·Î ´Ù¸¥ ºÐ»ê ÀÀ¿ëÇÁ·Î±×·¥°£À» ¿¬°áÇÏ´Â ¼ÒÇÁÆ®¿þ¾î ¹ö½ºÀÇ ¿ªÇÒÀ» ÇÏ´Â ¸ðµâ·Î¼­ OMA ȯ°æ¿¡¼­ °¡Àå ÇÙ½ÉÀÌ µÇ´Â ºÎºÐÀ̶ó ÇÒ ¼ö ÀÖÀ¸¸ç ÇöÀç CORBA 2.0ÀÌ ¹ßÇ¥µÇ¾î ÀÖ´Ù. ºÐ»ê ÀÀ¿ëÇÁ·Î±×·¥Àº IDL·Î Á¤ÀÇµÈ ÀÎÅÍÆäÀ̽º¸¦ ÀÌ¿ëÇÏ¿© CORBA¸¦ ÅëÇØ ºÐ»ê °´Ã¼¿¡ Á¢±ÙÇÑ´Ù.

    ±×¸² 5 OMA(Object Management Architecture)

    ¡¡

    °¡. CORBAÀÇ ±¸Á¶

    CORBAÀÇ ±¸Á¶[5][CORBA]´Â ±×¸² 6°ú °°À¸¸ç ±× ±¸¼º ¿ä¼Ò·Î´Â IDL Stub, µ¿Àû È£Ãâ ÀÎÅÍÆäÀ̽º(Dynamic Invocation Interface), ÄÚ¾î¿Í ÀÎÅÍÆäÀ̽º·Î ÀÌ·ç¾îÁø ORB(Object Request Broker), °´Ã¼ ¾î´ðÅÍ(Object Adapter), Skeleton µîÀÌ ÀÖ´Ù. IDL StubÀº Ŭ¶óÀÌ¾ðÆ®·ÎºÎÅÍ ¼ö½ÅµÈ Á¤Àû È£ÃâÀ» ó¸®Çϸç, µ¿Àû È£Ãâ ÀÎÅÍÆäÀ̽º´Â Ŭ¶óÀ̾ðÆ®ÀÇ ½ÇÇàÁß¿¡ ¿øÇÏ´Â ¸Þ½îµå¸¦ È£ÃâÇÒ ¼ö ÀÖ°Ô ÇØÁÖ´Â µ¿Àû È£ÃâÀ» ó¸®ÇÑ´Ù. ORB´Â Ŭ¶óÀ̾ðÆ®ÀÇ È£ÃâÀÌ ¹ß»ýÇϸé Åë½Å ±â´ÉÀ» ÀÌ¿ëÇÏ¿© ±¸Çö °´Ã¼¿¡°Ô Àü´ÞÇÑ´Ù. È£Ãâ¿¡ µû¶ó °´Ã¼ ¾î´ðÅÍ´Â ÇØ´ç °´Ã¼¸¦ È£Ãâ °¡´ÉÇÏ°Ô »ý¼ºÇϰí SkeletonÀ» ÅëÇØ ¿øÇϴ ȣÃâ¿¡ ÇØ´çÇÏ´Â ¸Þ½îµå¸¦ ½ÇÇà½ÃŲ´Ù. ÀÌÈÄ Ã³¸®µÈ °á°ú´Â È£Ãâ°ú ¿ª¼øÀ¸·Î ´Ù½Ã Ŭ¶óÀÌ¾ðÆ®¿¡°Ô ¹ÝȯµÈ´Ù.

    ±×¸² 6 CORBAÀÇ ±¸Á¶

    ¡¡

    ³ª. CORBAÀÇ °´Ã¼ È£Ãâ

    CORBA¿¡¼­ ¼­ºñ½º°¡ È£ÃâµÇ´Â ¿ø¸®´Â ±×¸² 7°ú °°´Ù. ÀϹÝÀûÀÎ °´Ã¼ÁöÇâ Äڵ忡¼­´Â ¸Þ½îµå È£ÃâÀÚ(caller)¿Í ÀÌ¿¡ ´ëÇÑ È£Ãâó¸®ÀÚ(callee)°¡ ÇϳªÀÇ ÇÁ·Î¼¼½º¿¡ Á¸ÀçÇÑ´Ù. ±×·¯³ª CORBA¿Í DCE(Distributed Computing Environment)°°Àº ºÐ»ê °´Ã¼ ȯ°æ ¿¡¼­´Â È£ÃâÀÚ¿Í È£Ãâó¸®ÀÚ°¡ ³×Æ®¿öÅ©¸¦ »çÀÌ¿¡ µÎ°í ºÐ»êµÇ¾î Á¸ÀçÇÑ´Ù. È£ÃâÀÚÀΠŬ¶óÀÌ¾ðÆ® ÂÊ¿¡¼­´Â ³×Æ®¿öÅ©¸¦ ÅëÇØ ¼­ºñ½º¸¦ È£ÃâÇÏ°í ±× °á°ú¸¦ Àü´Þ ¹Þ´Â Äڵ尡 ÇÊ¿äÇѵ¥ À̸¦ Stub ¶ó°í Çϰí, È£Ãâó¸®ÀÚÀÎ ±¸Çö °´Ã¼ ÂÊ¿¡¼­´Â ³×Æ®¿öÅ©¸¦ ÅëÇØ Àü´Þ ¹ÞÀº ¼­ºñ½º È£ÃâÀ» ó¸®ÇÏ°í ±× °á°ú¸¦ ´Ù½Ã Ŭ¶óÀÌ¾ðÆ®¿¡°Ô Àü´ÞÇØ ÁÖ´Â Äڵ尡 ÇÊ¿äÇϸç À̸¦ SkeletonÀ̶ó ÇÑ´Ù. Stub ¹× Skeleton ÄÚµå´Â IDL ÄÄÆÄÀÏ·¯¿¡ ÀÇÇØ »ý¼ºµÇ¸ç ½ÇÇà¿¡ ÇÊ¿äÇÑ ¸ðµç ±â´ÉÀÇ ÄÚµå´Â CORBA¿¡ ÀÇÇØ ÀÚµ¿À¸·Î Á¦°øµÈ´Ù..

    ±×¸² 7 CORBAÀÇ °´Ã¼ È£Ãâ

    ¡¡

    ´Ù. CORBA IDL

    ºÐ»ê ȯ°æÇÏ¿¡¼­ IDL[5]Àº C, C++, Ada µî°ú °°Àº ÇÁ·Î±×·¡¹Ö ¾ð¾î³ª ÄÄÆÄÀÏ·¯¿¡ »ó°ü¾øÀÌ CORBA ÀÀ¿ë ÇÁ·Î±×·¥À» ÀÛ¼ºÇÒ ¼ö ÀÖ°Ô ÇØÁØ´Ù(±×¸² 8 ÂüÁ¶). IDL·Î ÀÛ¼ºµÈ CORBA ÀÀ¿ë ÇÁ·Î±×·¥Àº IDL ÄÄÆÄÀÏ·¯¸¦ ÅëÇØ ¿øÇÏ´Â ÇÁ·Î±×·¡¹Ö ¾ð¾î¿¡ ÀûÇÕÇÑ ÄÚµå·Î º¯È¯µÈ´Ù. °³¹ßÀÚ´Â »ý¼ºµÈ Äڵ带 ÀÌ¿ëÇØ ¿øÇÏ´Â ¾ð¾î·Î ÀÀ¿ë ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¸é µÈ´Ù. IDLÀÇ Æ¯Â¡Àº ƯÁ¤ ¾ð¾î¿Í ÄÄÆÄÀÏ·¯¿¡ µ¶¸³ÀûÀ̰í, ´ÙÁß »ó¼Ó µî ´ëºÎºÐÀÇ °´Ã¼ÁöÇâ °³³äÀ» Áö¿øÇϸç, µ¿Àû È£Ãâ ¸ÞÄ¿´ÏÁòÀ» Á¦°øÇÑ´Ù´Â °ÍÀÌ´Ù. ±×·¯³ª IDLÀº ±¸ÇöÀ» À§ÇÑ ¾ð¾î°¡ ¾Æ´Ï¸ç °´Ã¼ÀÇ ±¸ÇöÀº C, C++ µîÀÇ ÇÁ·Î±×·¡¹Ö ¾ð¾î¸¦ ÅëÇÏ¿© ÀÌ·ç¾îÁø´Ù. ÇöÀç IDLÀº Ç¥ÁØÀ¸·Î C ¾ð¾î·ÎÀÇ ¸ÅÇÎÀ» Áö¿øÇϰí ÀÖÀ¸¸ç Á¦Ç°¿¡ µû¶ó ´Ù¸¥ ¾ð¾îµµ Áö¿øµÈ´Ù. ´ÙÀ½¿¡´Â CORBA¿Í JavaÀÇ ¿¬µ¿°ú IDLÀÇ Java ¸ÅÇο¡ °üÇØ¼­ »ìÆìº¸±â·Î ÇϰڴÙ.

    ±×¸² 8 IDLÀÇ ¿ªÇÒ

    ¡¡

    2. CORBA¿Í JavaÀÇ ¿¬µ¿

    CORBA¿Í JavaÀÇ ¿¬µ¿À» À§Çؼ­´Â CORBAÀÇ IDL¾ð¾î·Î Á¤ÀÇµÈ ¿ø°Ý °´Ã¼ ÀÎÅÍÆäÀ̽º¸¦ Java¾ð¾î·Î ¸ÅÇνÃŰ´Â °úÁ¤ÀÌ ÇÊ¿äÇϸç, ºÐ»ê °´Ã¼¸¦ È£ÃâÇϱâ À§ÇÑ Java ORB Ŭ·¡½º°¡ ÇÊ¿äÇÏ´Ù. ´ÙÀ½¿¡´Â ÀÌ·¯ÇÑ ¸ÅÇÎ °úÁ¤°ú CORBA¿Í JavaÀÇ ¿¬µ¿À» À§ÇÑ JavaIDL ȯ°æ¿¡ ´ëÇØ »ìÆìº¸±â·Î ÇϰڴÙ.

    ¡¡

    °¡. CORBA-Java ¸ÅÇÎ

    CORBA¿Í Java°£ÀÇ ¸ÅÇÎ[2][5][JIDLM]À̶õ CORBA IDL ¾ð¾îÀÇ ÀÚ·áÇü, Modules, Interfaces, Attributes µîÀ» Java ¾ð¾î·Î º¯È¯½ÃŰ´Â °ÍÀ̶ó°í ÇÒ ¼ö ÀÖ´Ù(Ç¥ 2 ÂüÁ¶). ÀÌ¿Í ´õºÒ¾î ORB¿¡¼­ Á¦°øÇÏ´Â ±â´ÉÀ» »ç¿ëÇϱâ À§ÇÑ ±âº»ÀûÀÎ Java Ŭ·¡½ºµéÀÌ Á¦°øµÇ¾î¾ß ÇÑ´Ù. ±×¸² 9´Â ¾çÃø ¸ðµÎ Java·Î ÀÛ¼ºµÈ Ŭ¶óÀ̾ðÆ®/¼­¹ö ¸ðµ¨À» CORBA¿Í Java°£ÀÇ ¸ÅÇÎÀ» ÅëÇØ ±¸ÇöÇÑ ±¸Á¶µµ ÀÌ´Ù. IDL·Î ÀÛ¼ºµÈ Stub ÄÚµå¿Í Skeleton ÄÚµå´Â IDL ÄÄÆÄÀÏ·¯¿¡ ÀÇÇØ Java Ŭ·¡½ºÀÇ ÇüÅ·Πº¯È¯µÈ´Ù. ¾Õ¼­ CORBA¿¡ ´ëÇØ »ìÆìº» ¹Ù¿Í °°ÀÌ Stub ÄÚµåÀÇ ¿ªÇÒÀº Ŭ¶óÀÌ¾ðÆ®¿¡°Ô ¿ø°ÝÁö¿¡ Á¸ÀçÇÏ´Â ±¸Çö °´Ã¼¿¡ ´ëÇÑ ¸Þ½îµå È£ÃâÀ» ÇÒ ¼ö ÀÖµµ·Ï ÇÁ·Ï½Ã °´Ã¼¸¦ Á¦°øÇÏ´Â °ÍÀÌ´Ù. À̸¦ À§ÇÏ¿© Stub ÄÚµå´Â Åë½Å ±â´ÉÀ» Á¦°øÇÏ´Â ORB Ŭ·¡½º¸¦ È£ÃâÇÑ´Ù. Skeleton ÄÚµå´Â ¼­¹ö¿¡ Á¸ÀçÇÏ´Â ±¸Çö °´Ã¼¿Í ORB »çÀÌÀÇ ÀÎÅÍÆäÀ̽º¸¦ Á¦°øÇÏ¸ç ¼­¹ö·Î µé¾î¿À´Â È£Ãâ ¿äû¿¡ µû¶ó ÇØ´ç ±¸Çö °´Ã¼ÀÇ ¸Þ½îµå¸¦ Á÷Á¢ È£ÃâÇÏ´Â ¿ªÇÒÀ» ÇÑ´Ù.

    ±×¸² 9 CORBA-Java Ŭ¶óÀ̾ðÆ®/¼­¹ö ¸ðµ¨

    ¡¡

    Ç¥ 2 JavaIDL 1.1 EA ¹öÀüÀÇ CORBA-Java ¸ÅÇÎ

    ±¸ºÐ
    IDL
    Java
    ±â º» ÀÚ ·á Çü 
    constant
    public static final
    boolean
    boolean
    char, wchar
    char
    octet
    byte
    string, wstring
    java.lang.String
    short, unsigned short
    short
    long, unsigned long
    int
    long long, unsigned long long
    long
    float
    float
    double
    double
    long double
    ÃßÈÄ Áö¿ø
    Ư¼ö ÀÚ·áÇü
    enum, struct, union
    class
    sequence, array
    array
    any
    org.omg.CORBA.Any
    fixed
    java.math.BigDecimal
    ±â Ÿ
    module
    package
    interface
    interface
    attribute
    Accessor ¹× Modifier ¸Þ½îµå
    typedef
    ¿ø·¡ÀÇ ÀÚ·áÇüÀ¸·Î ´ëÄ¡
    exception
    org.omg.CORBA.UserException ¹×
    org.omg.CORBA.SystemException
    ¡¡

    ³ª. JavaIDL ȯ°æ

    ½ãÀº CORBA-Java ¸ÅÇÎÀ» À§ÇÑ °ø°³ ¼ÒÇÁÆ®¿þ¾î·Î JavaIDL[JIDL]À» Á¦°øÇϰí ÀÖ´Ù. JavaIDLÀº IDL Äڵ带 Java ÄÚµå·Î º¯È¯ÇØÁÖ´Â ÄÄÆÄÀÏ·¯ÀÎ idltojava, ORB ·±Å¸ÀÓ(Portable ORB Core), COS(CORBA Object Service) naming ¼­ºñ½º¸¦ À§ÇÑ nameserv µîÀ» Æ÷ÇÔÇϰí ÀÖ´Ù[JIDLG]. ºÐ»ê ÀÀ¿ëÇÁ·Î±×·¥ °³¹ßÀÚ´Â IDL·Î ÀÛ¼ºµÈ Äڵ带 idltojava·Î ÄÄÆÄÀÏÇÏ¿© Java Ŭ¶óÀÌ¾ðÆ® Stub ÄÚµå ¹× ¼­¹ö Skeleton Äڵ带 ¾òÀ» ¼ö ÀÖ´Ù. À̶§ »ý¼ºµÈ Stub ÄÚµå´Â º¹¼ö°³ÀÇ ORB ÇÁ·ÎÅäÄÝÀ» Áö¿øÇϱâ À§ÇØ °³¹ßµÈ Portable ORB Core »ó¿¡¼­ ¼öÇàµÈ´Ù[JIDLA]. ±×¸² 10Àº JavaIDLÀÇ Å¬¶óÀ̾ðÆ®Ãø ½ÇÇà ȯ°æÀ» ³ªÅ¸³½´Ù.

    ±×¸² 10 JavaIDLÀÇ Å¬¶óÀÌ¾ðÆ® È¯°æ

    ¡¡

    ´Ù. JavaIDLÀ» ÀÌ¿ëÇÑ ºÐ»ê ÀÀ¿ëÇÁ·Î±×·¥ °³¹ß

    ¾Õ¿¡¼­ CORBAÀÇ °³¿ä¿Í CORBA-JavaÀÇ ¿¬µ¿ ±â¼ú¿¡ °üÇÏ¿© »ìÆìº¸¾Ò´Ù. ÀÌ¹Ì ±â¼úÇßµíÀÌ CORBA¿Í JavaÀÇ ¿¬µ¿À» À§Çؼ­´Â Java ÀÀ¿ë ÇÁ·Î±×·¥°ú CORBA°£ÀÇ ÀÎÅÍÆäÀ̽º¸¦ Á¦°øÇÏ´Â IDL ÇÁ·Î±×·¡¹ÖÀÌ ÇÊ¿äÇÏ´Ù. °´Ã¼ ÁöÇâ °³³äÀ» ±â¹ÝÀ¸·Î ÇÏ´Â IDLÀº ±× ¹®¹ýµµ C++À̳ª Java¿Í ¸Å¿ì À¯»çÇÏ´Ù. IDL·Î ÀÛ¼ºµÈ ¼­¹ö °´Ã¼¿¡ ´ëÇÑ ÀÎÅÍÆäÀ̽º´Â JavaIDL ÄÄÆÄÀÏ·¯¿¡ ÀÇÇØ Stub ¹× Skeleton ÄÚµå·Î ¸ÅÇεȴÙ. »ý¼ºµÈ Stub °ú Skeleton Äڵ带 ±â¹ÝÀ¸·Î Ŭ¶óÀÌ¾ðÆ®¿Í ¼­¹ö Äڵ带 ÀÛ¼ºÇÑ ÈÄ Java ÄÄÆÄÀÏ·¯¸¦ ÅëÇØ ¹ÙÀÌÆ® ÄÚµå·Î º¯È¯ÇÏ¸é µÈ´Ù. ºÐ»ê ÀÀ¿ë ÇÁ·Î±×·¥À» À§ÇÑ »ó±âÀÇ JavaIDL ÇÁ·Î±×·¡¹Ö °úÁ¤À» Á¤¸®ÇÏ¸é ´ÙÀ½°ú °°´Ù[2][5].

    3. CORBA-Java ¿¬µ¿ »ó¿ë Á¦Ç°

    ÇöÀç CORBA¿Í JavaÀÇ ¿¬µ¿À» À§ÇÑ »ó¿ë Á¦Ç° ½ÃÀåÀº ¾ÆÁ÷ Ãʱ⠴ܰ迡 ÀÖ´Ù. ´ëºÎºÐÀÇ CORBA ¾÷üµéÀº ÀÚ»çÀÇ CORBA-Java ¿¬µ¿ Á¦Ç°À» CORBA 2.0 ¹× ORB °£ÀÇ Åë½Å ÇÁ·ÎÅäÄÝÀÎ IIOP(Internet Inter ORB Protocol) ¸¦ Áö¿øÇϵµ·Ï ¾÷±×·¹À̵åÇϱ⿡ ºÐÁÖÇÏ¸ç ¶ÇÇÑ ¸î¸î ¾÷üµéÀº ÀÚ»ç Á¦Ç°¿¡ Àû¿ëÇϱâ À§ÇØ Á¦Ç° ÃâÇÏ Àü¿¡ OMGÀÇ CORBA-Java ¸ÅÇΠǥÁؾÈÀÌ ³ª¿À±â¸¦ ±â´Ù¸®°í ÀÖ´Ù. µû¶ó¼­ Çö »óȲ¿¡¼­ ¾î¶°ÇÑ Á¦Ç°ÀÌ ½ÃÀåÀ» ¼®±ÇÇÒÁö ¿¹ÃøÇϱâ´Â ¾ÆÁ÷ À̸¥ °¨ÀÌ ÀÖÀ¸¸ç IonaÀÇ OrbixWeb, ½ãÀÇ JOE, VisigenicÀÇ VisiBroker for Java, DigitalÀÇ ObjectBroker, IBMÀÇ SOM, OracleÀÇ Web Request Broker, HPÀÇ ORB Plus µîÀÌ °æÀï¿¡ Âü¿©Çϰí ÀÖ´Ù. ´ÙÀ½¿¡´Â ´ëÇ¥ÀûÀÎ CORBA-Java ¿¬µ¿ Á¦Ç°ÀÎ OrbixWeb, JOE ¹× VisiBroker for Java¿¡ ´ëÇØ »ìÆìº¸°í À̵éÀÇ CORBA Áö¿ø ±â´ÉÀ» ºñ±³ÇØ º¸±â·Î ÇÑ´Ù.

    ¡¡

    °¡. IonaÀÇ OrbixWeb

    CORBA ±â¼úÀÇ ¼±µµ ¾÷üÀÎ IonaÀÇ OrbixWeb[2][OW]Àº Java·Î ±¸ÇöÇÑ Å¬¶óÀ̾ðÆ®ÃøÀÇ CORBA ORB ÀÌ´Ù. À̰ÍÀº ³×Æ®¿öÅ©¸¦ ÅëÇØ ¹ÙÀÌÆ® ÄÚµå ÇüÅ·Π´Ù¿î·Îµå ¹ÞÀ» ¼ö ÀÖ´Â °æ·® ORBÀ̸ç CORBA IIOP ÇÁ·ÎÅäÄÝ ¹× ÀÌÀü ¹öÀüÀÇ Orbix IIOP ÇÁ·ÎÅäÄÝÀ» Áö¿øÇÑ´Ù. µû¶ó¼­ ´Ù¸¥ Ç÷§Æû»óÀÇ IIOP ÇÁ·ÎÅäÄÝ ±â¹Ý ORB¿Í Åë½ÅÀÌ °¡´ÉÇÏ´Ù. OrbixWeb V1¿¡¼­´Â C++·Î ÀÛ¼ºµÈ ¼­¹ö °´Ã¼¸¸À» Áö¿øÇÑ´Ù´Â Á¦¾àÀÌ ÀÖ¾úÀ¸³ª ¼­¹öÃø¿¡¼­ Java¸¦ Áö¿øÇÒ ¼ö ÀÖ°Ô µÈ OrbixWeb V2°¡ ¹ßÇ¥µÇ¸é¼­ ÀÌ·¯ÇÑ Á¦¾àÀº ÇØ°áµÇ¾ú´Ù. ¶ÇÇÑ ´ëºÎºÐÀÇ Java ORB Á¦Ç°ÀÌ ¾÷ü¿¡ µû¶ó ´Ù¸¥ CORBA-Java ¸ÅÇÎ ¹æ½ÄÀ» äÅÃÇϰí Àִµ¥ ¹ÝÇØ OrbixWeb V2´Â OMG¿¡¼­ °ËÅäÁß¿¡ ÀÖ´Â CORBA-Java ¸ÅÇο¡ ´ëÇÑ Ç¥ÁؾÈÀ» ±â¹ÝÀ¸·Î ±¸ÇöÇÏ´Â °ÍÀ» ¸ñÀûÀ¸·Î Çϰí ÀÖ´Ù.

    ¡¡

    ³ª. ½ãÀÇ JOE

    JOE(Java Object Environment)[2][JOE]´Â Ŭ¶óÀÌ¾ðÆ®¸¦ À§ÇÑ Java ORB¸¦ Á¦°øÇÑ´Ù(±×¸² 11 ÂüÁ¶). Ŭ¶óÀ̾ðÆ®Ãø¿¡¼­´Â Java ¾ÖÇø´(Applet)°ú ÇÔ²² JOE ORBletÀ» ´Ù¿î·Îµå ¹Þ¾Æ ºÐ»ê °´Ã¼ ÇϺα¸Á¶¸¦ Á¦°øÇÏ´Â ½ãÀÇ 3-°èÃþ Ŭ¶óÀ̾ðÆ®/¼­¹ö ±¸Á¶ÀÎ NEO[2][NEO]ÀÇ ORB¿Í Åë½ÅÇÏ¿© ¼­¹ö»óÀÇ ±¸Çö °´Ã¼¸¦ È£ÃâÇÑ´Ù. ¹Ýº¹ÀûÀÎ ORBletÀÇ ´Ù¿î·Îµå¸¦ ¸·±âÀ§ÇØ JOE´Â ·ÎÄà ½Ã½ºÅÛ¿¡ ¼³Ä¡µÉ ¼öµµ ÀÖ´Ù. JOE´Â ORB»Ó ¾Æ´Ï¶ó °¢Á¾ °³¹ß µµ±¸¿Í ¶óÀ̺귯¸®, Java·Î ÀÛ¼ºµÈ °ü¸® µµ±¸ ¹× IDL ÄÄÆÄÀÏ·¯µµ Á¦°øÇϴµ¥ JOEÀÇ IDL ÄÄÆÄÀÏ·¯´Â Ç¥ÁØ CORBA IDL ÆÄÀÏÀ» Ŭ¶óÀÌ¾ðÆ® Stub Ŭ·¡½º·Î º¯È¯ÇØÁØ´Ù. JOE 1.0¿¡¼­´Â NEO ORB Ç÷§Æû¸¸À» ¼­¹ö·Î Áö¿øÇÑ´Ù. NEO°¡ ´ÜÁö Soloaris ¿î¿µÃ¼Á¦¸¸À» Áö¿øÇϰí C³ª C++·Î ÀÛ¼ºµÈ ¼­¹ö °´Ã¼¸¸À» Áö¿øÇÑ´Ù´Â °Í ¶§¹®¿¡ ¼­¹ö Ç÷§ÆûÀÇ Á¦¾à°ú ¼­¹öÂÊ¿¡ Java °´Ã¼¸¦ »ç¿ëÇÒ ¼ö ¾ø´Ù´Â °ÍÀÌ JOE 1.0ÀÇ ´ÜÁ¡ À̾ú´Ù. ±×·¯³ª IIOP¸¦ Áö¿øÇÏ´Â JOE 2.0ÀÌ ¹ßÇ¥µÇ¾î ´Ù¸¥ Ç÷§ÆûÀÇ ORB¸¦ Áö¿øÇÏ°Ô µÇ¸é¼­ ÀÌ·¯ÇÑ ¹®Á¦Á¡Àº ´Ù¼Ò ÇØ°áµÇ¾ú´Ù.

    ±×¸² 11 ½ãÀÇ JOE

    ¡¡

    ´Ù. VisigenicÀÇ VisiBroker for Java

    VisiBroker[2][VB]ÀÇ Àü½ÅÀÎ PostModernÀÇ Black Widow ORB´Â Ŭ¶óÀÌ¾ðÆ®¿Í ¼­¹öÃø ¸ðµÎ¿¡ Java °´Ã¼¸¦ Áö¿øÇÏ´Â ÃÖÃÊÀÇ Á¦Ç°À̾ú´Ù(±×¸² 12 ÂüÁ¶). VisiBroker ORB´Â ¿ÏÀüÇÑ Java ÄÚµå·Î µÇ¾î ÀÖ¾î ´Ù¿î·Îµå °¡´ÉÇÑ ORBletÀ» Á¦°øÇÑ´Ù. Netscape»ç´Â ±×µéÀÇ °³¹æÇü ³×Æ®¿öÅ© Ç÷§ÆûÀÎ Netscape ONE(Open Network Environment)¿¡ Java Ŭ¶óÀÌ¾ðÆ®¿Í ¼­¹ö¸¦ ÅëÇÕÇϱâ À§ÇÑ ¹æÆíÀ¸·Î CORBA¸¦ äÅÃÇϰí VisiBroker ORB¸¦ »ç¿ëÇϰí ÀÖ´Ù. VisiBroker ORB´Â ¾ÖÇø´ ºê¶ó¿ìÀúÀÇ Áö¿ø ¿©ºÎ¿¡ µû¶ó Secure Socket Àü¼ÛÀ» »ç¿ëÇÒ ¼ö ÀÖÀ¸¸ç IIOP¸¦ Áö¿øÇÏ´Â À̱âÁ¾ Ç÷§Æû»óÀÇ ORB¿Í Åë½ÅÇÒ ¼ö ÀÖ´Ù. VisiBroker IDL ÄÄÆÄÀÏ·¯´Â Ŭ¶óÀÌ¾ðÆ® Stub°ú ¼­¹ö Skeleton Äڵ带 »ý¼ºÇØÁÖ¸ç, CORBA-Java ¸ÅÇÎÀº ½ãÀÇ IDL ¸í¼¼¿¡ ±â¹ÝÀ» µÎ°í ÀÖÀ¸³ª OMGÀÇ CORBA ¸ÅÇξÈÀÌ ¹ßÇ¥µÇ´Â ´ë·Î À̸¦ Àû¿ëÇÒ ¿¹Á¤ÀÌ´Ù. VisiBrokerÀÇ ¶Ç ´Ù¸¥ Ư¡Àº Caffeine[2]À» Áö¿øÇÑ´Ù´Â °ÍÀε¥ À̸¦ ÅëÇØ IDL ÇÁ·Î±×·¡¹Ö ¾øÀÌ ºÐ»ê °´Ã¼¸¦ È£ÃâÇÒ ¼ö ÀÖ´Ù. Netscape¿Í Visigenic¿¡ ÀÇÇØ °øµ¿ °³¹ßµÈ CaffeineÀº CORBA/IIOP »óÀÇ ¼ø¼ö Java °³¹ß ¼Ö·ç¼ÇÀ¸·Î½á CORBA IDL¿¡ ´ëÇÑ ¿ÏÀüÇÑ Åõ¸í¼ºÀ» Á¦°øÇÔÀ¸·Î½á VisiBrokerÇÏ¿¡¼­ RMI¿Í À¯»çÇÑ ÇÁ·Î±×·¡¹Ö ȯ°æÀ» Á¦°øÇÑ´Ù. CaffeineÀº Java ÀÎÅÍÆäÀ̽º ÆÄÀϷκÎÅÍ IIOP ȣȯ Stub°ú Skeleton Äڵ带 »ý¼ºÇϰųª Java ÄÚµå·ÎºÎÅÍ CORBA IDL Äڵ带 »ý¼ºÇØÁÖ´Â µµ±¸¸¦ Á¦°øÇϸç, URL(Uniform Resource Locator) ±â¹ÝÀÇ CORBA naming ¼­ºñ½º¸¦ Á¦°øÇÑ´Ù.

    ±×¸² 12 VisigenicÀÇ VisiBroker

    ¡¡

    Ç¥ 3Àº ¾Õ¼­ »ìÆìº» OrbixWeb, JOE ¹× VisiBroker for JavaÀÇ CORBA Áö¿ø ±â´ÉÀ» ºñ±³ÇÑ °ÍÀÌ´Ù. Ç¥¿¡¼­ º¸µíÀÌ ÇöÀç VisiBroker for Java°¡ ±â´É»óÀÇ ¿ìÀ§¸¦ ¼±Á¡Çϰí´Â ÀÖÁö¸¸ OrbixWebÀÇ Â÷±â ¹öÀüÀ̳ª ½ãÀÇ JOE 2.0ÀÌ ¹ßÇ¥µÇ°í ³ª¸é °æÀïÀº ´õ¿í Ä¡¿­ÇØÁú Àü¸ÁÀÌ´Ù.

    ¡¡

    Ç¥ 3 ´ëÇ¥ÀûÀÎ CORBA-Java ¿¬µ¿ Á¦Ç°°£ÀÇ ºñ±³
     
    CORBA ±â´É
    OrbixWeb
    JOE
    VisiBroker for Java
    Ŭ¶óÀ̾ðÆ®Ãø Java Áö¿ø
    O
    O
    O
    Á¤Àû ¸Þ½îµå È£Ãâ
    O
    O
    O
    µ¿Àû ¸Þ½îµå È£Ãâ
    O
    X
    O
    ÀÎÅÍÆäÀ̽º ÀúÀå¼Ò
    O
    (Version 2)
    X
    O
    ¼­¹ö Äݹé
    O
    (Version 2)
    O
    O
    IIOP »óÀÇ native Java
    X
    X
    O
    (Caffeine)
    ¼­¹öÃø Java Áö¿ø
    O
    (Version 2)
    X
    O
    Wide market Áö¿ø
    O
    O
    O
    ¡¡

    ¡¡

    III. ¿ø°Ý Java ¸Þ½îµå È£ÃâÀ» À§ÇÑ RMI

    º» Àå¿¡¼­´Â Java °´Ã¼¸¸À¸·Î ±¸¼ºµÈ µ¿Á¾ÀÇ ºÐ»ê ÄÄÇ»ÆÃ ȯ°æÇÏ¿¡¼­ ¿ø°Ý °´Ã¼ È£ÃâÀ» À§ÇÑ ¼ø¼ö Java ȯ°æÀ» Á¦°øÇÏ´Â RMI¿¡ ´ëÇØ »ìÆìº¸±â·Î ÇÑ´Ù.

    ¡¡

    1. RMIÀÇ °³¿ä

    ¾ÕÀå¿¡¼­ »ìÆìº¸¾Ò´ø JavaIDLÀº À̱âÁ¾ ºÐ»ê ÄÄÇ»ÆÃ ȯ°æÀ» Áö¿øÇÏ´Â CORBA¿ÍÀÇ ¿¬µ¿À» À§ÇÑ ±â¼ú·Î¼­ CORBA±â¹Ý ºÐ»ê ÄÄÇ»ÆÃ ȯ°æÇÏ¿¡¼­ ±âÁ¸ ½Ã½ºÅÛÀÇ º¯°æ ¾øÀÌ À¯¿¬ÇÏ°Ô Java ºÐ»ê ÀÀ¿ëÇÁ·Î±×·¥À» ÅëÇÕÇÒ ¼ö ÀÖ°Ô ÇØÁØ´Ù. ±×·¯³ª Java °´Ã¼¸¸À¸·Î ±¸¼ºµÈ µ¿Á¾ÀÇ ºÐ»ê ȯ°æÀ̶ó¸é ORB ¹× °´Ã¼ ¾î´ðÅ͸¦ ÅëÇÑ CORBAÀÇ ¿À¹öÇìµå¸¦ °¨¼öÇØ¾ß ÇÏ´Â JavaIDL º¸´Ù ¼ø¼ö Java °´Ã¼°£ÀÇ ÅëÇÕÀ» ¸ñÇ¥·Î ¼³°èµÇ¾îÁø RMI[6][RMI] ±â¼úÀÌ º¸´Ù ºü¸£°í È¿°úÀûÀÎ ÇØ°áÃ¥À» Á¦°øÇÑ´Ù(±×¸² 13 ÂüÁ¶). RMI¿Í À¯»çÇÑ ±â¼ú·Î½á C ³ª C++ µî ´Ù¸¥ ¾ð¾î¿¡¼­ Á¦°øµÇ´Â ºÐ»ê ÄÄÇ»ÆÃ ±â¼úÀÎ RPC(Remote Procedure Call)°¡ ÀÖ´Ù. RMI¿Í RPCÀÇ ¿ø°Ý °´Ã¼ È£Ãâ ¸ÞÄ¿´ÏÁòÀº È£ÃâÀÚ °´Ã¼°¡ ¿ø°ÝÁö¿¡ Àִ ȣÃâó¸®ÀÚ °´Ã¼¿¡°Ô ¿äûÀ» º¸³»°í ÀÀ´äÀ» ¹Þ´Â´Ù´Â °Í°ú È£Ãâó¸®ÀÚ °´Ã¼°¡ È£ÃâÀü¿¡ ¸ÕÀú »ý¼ºµÇ¾î ½ÇÇàÁßÀ̾î¾ß ÇÑ´Ù´Â °øÅëÁ¡À» °¡Áö°í ÀÖ´Ù.

    ±×¸² 13 RMI(Remote Method Invocation)

    ¡¡

    2. RMIÀÇ ±¸Á¶

    RMIÀÇ ±¸Á¶[3]´Â ±×¸² 14¿Í °°ÀÌ Stub ¹× Skeleton °èÃþ, ¿ø°Ý ÂüÁ¶(Remote Reference) °èÃþ, Àü¼Û(Transport) °èÃþÀ¸·Î ÀÌ·ç¾îÁ® ÀÖ´Ù. RMI¸¦ ±¸¼ºÇÏ´Â ¿ä¼ÒÀÇ Çϳª·Î¼­ Stub °ú Skeleton °èÃþÀº JavaIDLÀÇ ±×°Í°ú À¯»çÇÑ ±â´ÉÀ» Á¦°øÇÑ´Ù. Stub ¹× Skeleton °èÃþ°ú Àü¼Û °èÃþÀ» ¿¬°áÇØÁÖ´Â ¿ø°Ý ÂüÁ¶ °èÃþÀº µÎ °¡Áö ±â´ÉÀ» ¼öÇàÇϴµ¥, ù¹øÂ°´Â Stub°ú Skeleton °èÃþÀ¸·ÎºÎÅÍÀÇ Àü¼Û ¿äûÀ» È£½ºÆ® ½Ã½ºÅÛÀÇ Àü¼Û È£Ãâ·Î º¯È¯ÇØ ÁÖ´Â °ÍÀ̸ç, µÎ ¹øÂ°´Â ¿ø°Ý °´Ã¼¸¦ È£ÃâÇÒ ¼ö ÀÖ°Ô ÇÏ´Â ¿ø°Ý ÂüÁ¶ ÇÁ·ÎÅäÄÝÀ» ¼öÇàÇÏ´Â ±â´ÉÀÌ´Ù. °¡Àå ÇÏ´Ü¿¡ Á¸ÀçÇÏ´Â Àü¼Û °èÃþÀº ¿ø°Ý °´Ã¼°£ÀÇ È£ÃâÀ» À§ÇÑ ¿¬°áÀÇ ¼³Á¤, ÇØÁ¦ ¹× °ü¸®¸¦ ¼öÇàÇÑ´Ù.

    ±×¸² 14 RMIÀÇ ±¸Á¶

    ¡¡

    3. RMI¸¦ ÀÌ¿ëÇÑ ºÐ»ê ÀÀ¿ëÇÁ·Î±×·¥ °³¹ß

    RMI¸¦ ÀÌ¿ëÇÑ ºÐ»ê ÀÀ¿ëÇÁ·Î±×·¥ °³¹ß °úÁ¤Àº JavaIDLÀÇ °³¹ß °úÁ¤°ú ¸Å¿ì À¯»çÇÏ´Ù. ´Ù¸¸ RMIÀÇ °æ¿ì ¿ø°Ý °´Ã¼¸¦ Á¤ÀÇÇÒ ¶§µµ Java ¾ð¾î¸¦ ÀÌ¿ëÇÑ´Ù´Â °ÍÀÌ ¿ø°Ý °´Ã¼ Á¤Àǽà IDLÀ» »ç¿ëÇÏ´Â JavaIDL°ú Å©°Ô ´Ù¸¥ Á¡À̶ó°í ÇÒ ¼ö ÀÖ´Ù. ¿ø°Ý °´Ã¼¸¦ Á¤ÀÇÇÑ ÈÄ RMI ÄÄÆÄÀÏ·¯¸¦ ÅëÇÏ¿© Stub°ú Skeleton Äڵ带 »ý¼ºÇس»´Âµ¥ ÀÌÈÄÀÇ °úÁ¤Àº JavaIDL ÀÀ¿ëÇÁ·Î±×·¥ °³¹ß °úÁ¤°ú µ¿ÀÏÇÏ´Ù. °³¹ßÀÇ Àü °úÁ¤À» Á¤¸®ÇÏ¸é ¾Æ·¡¿Í °°´Ù[3].

    ¡¡

    ¡¡

    IV. µ¥ÀÌÅͺ£À̽º Á¢¼ÓÀ» À§ÇÑ JDBC

    À̹ø Àå¿¡¼­´Â °ü°èÇü µ¥ÀÌÅͺ£À̽º ½Ã½ºÅÛ°ú Java ÀÀ¿ëÇÁ·Î±×·¥°£ÀÇ ¿¬°áÀ» Á¦°øÇÏ´Â JDBC¿¡ ´ëÇØ¼­ ¼³¸íÇϱâ·Î ÇÑ´Ù. JDBC¸¦ ÅëÇÏ¿© ÇÁ·Î±×·¡¸Ó´Â Java ȯ°æÇÏ¿¡¼­ ¿ø°Ý µ¥ÀÌÅͺ£À̽º¿¡ ´ëÇÑ ÁúÀǸ¦ ¼öÇàÇÏ´Â ÀÀ¿ëÇÁ·Î±×·¥À» ÀÛ¼ºÇÒ ¼ö ÀÖ´Ù.

    ¡¡

    1. JDBCÀÇ °³¿ä

    JDBC[3][JDBC]´Â Java Ŭ¶óÀÌ¾ðÆ®¿Í °ü°èÇü µ¥ÀÌÅͺ£À̽º ¼­¹ö¿ÍÀÇ ¿¬µ¿À» À§ÇÑ ÇØ°áÃ¥À» Á¦°øÇÑ´Ù(±×¸² 15 ÂüÁ¶). ´Ù½Ã ¸»Çؼ­ Java¸¦ ÀÌ¿ëÇÑ µ¥ÀÌÅͺ£À̽º Á¢¼Ó°ú SQL(Structured Query Language) ¹®ÀåÀÇ ½ÇÇà ±×¸®°í ½ÇÇà °á°ú·Î ¾ò¾îÁø µ¥ÀÌÅ͸¦ ´Ù·ç´Â ¹æ¹ý°ú ÀýÂ÷¸¦ Á¦°øÇÑ´Ù. JDBCÀÇ Å« Ư¡Àº ÅëÇÕÀûÀÎ SQL µ¥ÀÌÅͺ£À̽º¸¦ ÀÌ¿ëÇÒ ¼ö ÀÖ´Â ÇÁ·¹ÀÓ¿öÅ©·Î¼­ µ¥ÀÌÅͺ£À̽º¿¡ ºñÁ¾¼ÓÀûÀÎ ºÐ»ê ÀÀ¿ëÇÁ·Î±×·¥À» ±¸ÇöÇÒ ¼ö ÀÖµµ·Ï ÇØÁشٴ °ÍÀÌ´Ù. Áï, JDBC¿Í ¿¬µ¿ °¡´ÉÇÑ µå¶óÀ̹ö ¹× ¸ðµâÀ» ¸ðµÎ »ç¿ëÇÏ¿© µ¥ÀÌÅͺ£À̽º¿¡ Á¢±ÙÇÒ ¼ö Àִµ¥, ¼ø¼ö Java·Î ÀÛ¼ºµÈ µå¶óÀ̹ö¿Í È£½ºÆ® ½Ã½ºÅÛ¿¡¼­ Á¦°øÇÏ´Â µå¶óÀ̹ö¸¦ ¸ðµÎ »ç¿ëÇÒ ¼ö ÀÖ´Â °ÍÀÌ´Ù. Java Ŭ·¡½º ÇüÅ·ΠÁ¦°øµÇ´Â JDBC API´Â ODBC(Open DataBase Connectivity)³ª ±âÁ¸ÀÇ µ¥ÀÌÅͺ£À̽º Á¢±ÙÀ» À§ÇÑ ÀÎÅÍÆäÀ̽ºÀÇ »óÀ§ °èÃþÀ» ±¸ÇöÇÒ ¸ñÀûÀ¸·Î °í¾ÈµÇ¾ú´Ù. ¶ÇÇÑ À¥ ºê¶ó¿ìÀú»óÀÇ º¸¾È¿¡ À§¹èµÇÁö ¾Ê´Â Á¶°ÇÇÏ¿¡ ´Ù¾çÇÑ µ¥ÀÌÅͺ£À̽º Á¢±Ù ¹æ½ÄÀ» Á¦°øÇÔÀ¸·Î½á CGI(Common Gateway Interface)¸¦ ÀÌ¿ëÇÑ ¼öµ¿ÀûÀÎ ¹æ½ÄÀ» ¹þ¾î³ª º¸´Ù ´Éµ¿ÀûÀÎ µ¥ÀÌÅͺ£À̽ºÀÇ ÀÌ¿ëÀÌ °¡´ÉÇÏ´Ù.

    ±×¸² 15 JDBC(Java DataBase Connectivity)

    ¡¡

    2. JDBCÀÇ ±¸Á¶

    JDBCÀÇ ±¸Á¶[2]´Â ±×¸² 16¿¡¼­ º¸µíÀÌ JDBC °ü¸®ÀÚ, ÀÀ¿ëÇÁ·Î±×·¥À» À§ÇÑ JDBC API ¹× 3 °¡Áö ÇüÅÂÀÇ JDBC µå¶óÀ̹ö¿Í À̸¦ À§ÇÑ µå¶óÀ̹ö API·Î ÀÌ·ç¾îÁ® ÀÖ´Ù. JDBC µå¶óÀ̹öÀÇ »óÀ§¿¡ ÀÖ´Â JDBC °ü¸®ÀÚ´Â ÀÀ¿ëÇÁ·Î±×·¥ÀÌ ¿ä±¸ÇÏ´Â µ¥ÀÌÅͺ£À̽º¿¡ Á¢±ÙÇϵµ·Ï Çϱâ À§ÇÏ¿© ÀûÀýÇÑ µå¶óÀ̹ö¸¦ ¼±ÅÃÇØÁÖ°í µ¥ÀÌÅͺ£À̽º¿ÍÀÇ ¿¬°áÀ» °ü¸®Çϸç ÀÛ¾÷µµÁß ¹ß»ýÇÏ´Â ¸Þ½ÃÁö ¹× ·Î±×¸¦ °ü¸®ÇÑ´Ù. ƯÁ¤ µ¥ÀÌÅͺ£À̽º¿ÍÀÇ ¿¬°áÀ» À§ÇÑ JDBC µå¶óÀ̹ö¿¡´Â 3 °¡Áö ÇüŰ¡ Àִµ¥, ³×Æ®¿öÅ© ÇÁ·ÎÅäÄÝÀ» ÅëÇØ Á÷Á¢ µ¥ÀÌÅͺ£À̽º¿¡ Á¢¼ÓÇÏ´Â JDBC ³×Æ®¿öÅ© µå¶óÀ̹ö, ODBC¿ÍÀÇ ¿¬µ¿À» Á¦°øÇÏ´Â JDBC-ODBC ºê¸®Áö µå¶óÀ̹ö, µ¥ÀÌÅͺ£À̽º Á¦Á¶ ¾÷ü¿¡¼­ Á¦°øÇÏ´Â Àü¿ë JDBC µå¶óÀ̹ö(Direct JDBC Driver) µîÀÌ ±×°ÍÀÌ´Ù. Java ÀÀ¿ëÇÁ·Î±×·¥¿¡¼­´Â JDBC °ü¸®ÀÚ¿ÍÀÇ ÀÎÅÍÆäÀ̽º¸¦ Á¦°øÇÏ´Â JDBC API¸¦ ÅëÇÏ¿© ¿øÇÏ´Â µå¶óÀ̹ö¸¦ µî·ÏÇÏ°í µ¥ÀÌÅͺ£À̽º¿¡ Á¢¼ÓÇÒ ¼ö ÀÖ´Ù.

    ±×¸² 16 JDBCÀÇ ±¸Á¶

    ¡¡

    3. ±âŸ À¥-µ¥ÀÌÅͺ£À̽º°£ ¿¬µ¿ ±â¼ú

    À¥°ú µ¥ÀÌÅͺ£À̽º¸¦ ¿¬µ¿Çϱâ À§ÇÑ ±â¼ú¿¡´Â JDBCÀ̿ܿ¡µµ CGI[3], À¥ ¼­¹ö API, µ¥ÀÌÅͺ£À̽º Á¢¼ÓÀ» À§ÇÑ ¹Ìµé¿þ¾î(middleware) µîÀ» ÀÌ¿ëÇÏ´Â ¹æ¹ýµéÀÌ ÀÖ´Ù. À¥ÀÇ ÃʱâºÎÅÍ ³Î¸® ¾²¿©Áö´ø CGI´Â °¡Àå ÀϹÝÀûÀÎ ¹æ¹ýÀ¸·Î ¸ðµç À¥ ºê¶ó¿ìÀú¸¦ Áö¿øÇÏ¸ç ºü¸¥ ÇÁ·ÎÅäŸÀÌÇΰú Ç¥ÁØÈ­µÈ ÀÎÅÍÆäÀ̽º¸¦ Á¦°øÇÏÁö¸¸ ´ëÈ­Çü ÇÁ·Î±×·¥ÀÇ ÀÛ¼ºÀÌ ¾î·Æ°í ¼­¹ö ½Ã½ºÅÛÀÇ ¿À¹öÇìµå°¡ Å©¸ç º¸¾ÈÀÌ Ãë¾àÇÏ´Ù´Â ´ÜÁ¡À» °¡Áö°í ÀÖ´Ù. À¥ ¼­¹ö API´Â À¥ ¼­¹ö¸¦ °³¹ßÇÏ´Â ¾÷ü³ª µ¥ÀÌÅͺ£À̽º¸¦ °³¹ßÇÏ´Â ¾÷ü¿¡¼­ ƯÁ¤ÇÑ È¤Àº ÀÚ»çÀÇ µ¥ÀÌÅͺ£À̽º Á¢±ÙÀ» À§ÇØ Á¦°øÇÏ´Â Àü¿ë API ÀÌ´Ù. ÀÌ Àü¿ë API¸¦ ÀÌ¿ëÇÏ¸é °³¹ßÀÌ ¿ëÀÌÇϸç CGIº¸´Ù ÈξÀ ¼­¹öÀÇ ºÎ´ãÀ» ÁÙÀÏ ¼ö ÀÖÀ¸³ª, ƯÁ¤ ¼­¹ö³ª µ¥ÀÌÅͺ£À̽º¿¡ Á¾¼ÓÀûÀ̶ó´Â ¹®Á¦Á¡À» ¾È°í ÀÖ´Ù. Java API³ª CGI ½ºÅ©¸³Æ® ÇüÅ·ΠÁ¦°øµÇ´Â ¹Ìµé¿þ¾î´Â HTML(HyperText Markup Language)¿¡¼­ ¹Ù·Î ÀÌ¿ëÇÒ ¼ö ÀÖÀ¸¸ç ¹Ìµé¿þ¾î°¡ Á¦°øÇÏ´Â OLTP(OnLine Transaction Processing)¼­ºñ½º µîÀ» ¹ÞÀ» ¼ö ÀÖ´Ù´Â ÀåÁ¡À» °¡Áö°í ÀÖ´Ù. ±×·¯³ª °¡°ÝÀÌ ºñ½Î¸ç ȯ°æ ¼³Á¤ ¹× °ü¸®°¡ ¸Å¿ì ±î´Ù·Ó´Ù. ÀÌ¿Í ºñ±³ÇØ JDBCÀÇ °æ¿ì ´Ù¾çÇÑ ½Ã½ºÅÛ ±¸¼ºÀÌ °¡´ÉÇÏ¸ç ¼­¹öÀÇ ºÎ´ãÀ» ´ëÆø ÁÙÀÌ°í °æ·® Ŭ¶óÀ̾ðÆ®ÀÇ ±¸¼ºÀÌ °¡´ÉÇÏ´Ù´Â ÀåÁ¡À» °¡Áö°í ÀÖ´Ù. ¶ÇÇÑ ¾Õ¼­ ¼³¸íÇÑ RMI³ª JavaIDLÀ» ÀÌ¿ëÇÏ¿© 3-°èÃþ ºÐ»ê ½Ã½ºÅÛÀ» ±¸¼ºÇÑ´Ù¸é º¸´Ù È¿°úÀûÀÎ ºÐ»ê ȯ°æÀ» ±¸ÃàÇÒ ¼ö ÀÖ´Ù.

    V. Java ºÐ»ê ÄÄÇ»ÆÃ ±â¼úÀÇ Àü¸Á

    Áö±Ý±îÁö CORBA¿Í Java°£ÀÇ ¿¬µ¿À» À§ÇÑ JavaIDL, JavaÀÇ ¿ø°Ý ¸Þ½îµå È£ÃâÀ» À§ÇÑ RMI, µ¥ÀÌÅͺ£À̽º Á¢¼ÓÀ» À§ÇÑ JDBC µîÀÇ Java ºÐ»ê ÄÄÇ»ÆÃ ±â¼ú¿¡ ´ëÇÏ¿© »ìÆìº¸¾Ò´Ù. ³¡À¸·Î ¾ÕÀ¸·ÎÀÇ ºÐ»ê ÀÀ¿ëÇÁ·Î±×·¥ ȯ°æ¿¡ À־ Java ºÐ»ê ÄÄÇ»ÆÃ ±â¼úÀÌ ¿ì¸®ÀÇ ±â´ë¸¸Å­ÀÇ ¿ªÇÒÀ» ÇØ³¾ °ÍÀÎÁö Á¶½É½º·´°Ô ¿¹ÃøÇÏ¸ç °á·ÐÀ» ¸Î±â·Î ÇϰڴÙ.

    OMG¿¡ ÀÇÇØ °³¹ßµÈ CORBA´Â °´Ã¼ÁöÇâ ±â¼úÀ» ±â¹ÝÀ¸·Î ÇÏ´Â À̱âÁ¾ ºÐ»ê ÄÄÇ»ÆÃ ±¸Á¶ÀÌ´Ù. CORBA¸¦ ÅëÇÏ¿© °³¹ßÀÚµéÀº ¼­·Î ´Ù¸¥ Ç÷§Æû»ó¿¡¼­ ÀÛ¼ºµÈ ºÐ»ê ÀÀ¿ëÇÁ·Î±×·¥À» ÇϳªÀÇ Å¬¶óÀ̾ðÆ®/¼­¹ö ½Ã½ºÅÛÀ¸·Î ÅëÇÕÇÒ ¼ö ÀÖ°Ô µÇ¾úÀ¸¸ç °´Ã¼ÁöÇâ °³³äÀ» ¹ÙÅÁÀ¸·Î ³×Æ®¿öÅ©»ó¿¡ ºÐ»êµÈ ´Ù¾çÇÑ °´Ã¼µéÀ» ¼Õ½±°Ô È£ÃâÇÒ ¼ö ÀÖ°Ô µÇ¾ú´Ù. ÀÌ¿Í °°Àº ÀåÁ¡µé ¶§¹®¿¡ CORBA´Â »ê¾÷°è Ç¥ÁØÀÌ µÇ¾úÀ¸¸ç ´Ù¾çÇÑ CORBA »ó¿ë Á¦Ç°µéÀÌ °³¹ßµÇ¾î °æÀïÇϰí ÀÖ´Ù. À¥ÀÇ µ¹Ç³À» µî¿¡ ¾÷°í Àü¸é¿¡ µîÀåÇÑ °´Ã¼ÁöÇâ ¾ð¾îÀÎ Java´Â Ç÷§Æû µ¶¸³¼ºÀ̶ó´Â Ư¡À» ±â¹ÝÀ¸·Î ´ëÇ¥Àû ³×Æ®¿öÅ© ÇÁ·Î±×·¡¹Ö ¾ð¾î·Î ÀÚ¸®Àâ¾Æ °¡°í ÀÖ´Ù. À̱âÁ¾ ºÐ»ê ÄÄÇ»ÆÃ ȯ°æÀ» Á¦°øÇÏ´Â CORBA¿Í Ç÷§Æû µ¶¸³¼ºÀ» ÁöÇâÇÏ´Â ÀÎÅÍ³Ý ÇÁ·Î±×·¡¹Ö ¾ð¾î Java¸¦ ÅëÇÕÇϱâ À§ÇÑ ±â¼úÀÎ JavaIDLÀ» ÀÌ¿ëÇÏ¿© ÇÁ·Î±×·¡¸Ó´Â ÀÎÅÍ³Ý»ó¿¡ Á¸ÀçÇÏ´Â CORBA ºÐ»ê °´Ã¼µéÀ» ½±°Ô ÅëÇÕÇÒ ¼ö ÀÖÀ¸¸ç, »ç¿ëÀÚ´Â Java ½ÇÇà ȯ°æ¸¸ ±¸ÃàµÈ´Ù¸é UNIX ±â¹ÝÀÇ ¿öÅ©½ºÅ×À̼ǿ¡¼­ºÎÅÍ ½Ç½Ã°£ ¿î¿µÃ¼Á¦¸¦ »ç¿ëÇÏ´Â PDA(Personal Digital Assistant)¿¡ À̸£±â±îÁö Çϵå¿þ¾î ¹× ¿î¿µÃ¼Á¦¿¡ »ó°ü¾øÀÌ CORBA ÀÀ¿ë ÇÁ·Î±×·¥À» ¼öÇàÇÒ ¼ö ÀÖ°Ô µÈ´Ù. ¶ÇÇÑ JavaIDL°ú ´õºÒ¾î µ¿Á¾ÀÇ Java ȯ°æÇÏ¿¡¼­ ¿ø°Ý °´Ã¼ »çÀÌÀÇ ¸Þ½îµå È£ÃâÀ» ÅëÇÑ ºÐ»ê ÄÄÇ»ÆÃ ±â´ÉÀ» Á¦°øÇÏ´Â RMI ±â¼ú°ú ´ÙÁ¾ÀÇ °ü°èÇü µ¥ÀÌÅͺ£À̽º¿ÍÀÇ ¿¬°áÀ» À§ÇÑ JDBC ±â¼úÀº ºÐ»ê ÀÀ¿ëÇÁ·Î±×·¥ÀÌ ¿ä±¸ÇÏ´Â ´Ù¾çÇÑ ±â´ÉÀ» ¸¸Á· ½ÃŰ±â¿¡ ÃæºÐÇÒ °ÍÀÌ´Ù. µû¶ó¼­ Java ºÐ»ê ÄÄÇ»ÆÃ ±â¼úÀº ¾ÕÀ¸·Îµµ ÀÎÅͳÝÀ» ±â¹ÝÀ¸·Î ÇÏ´Â ºÐ»ê ȯ°æÇÏ¿¡¼­ ÃÖÀûÀÇ ºÐ»ê ½Ã½ºÅÛ °³¹ß ±â¼ú·Î ÀÚ¸®¸Å±èÇÒ °ÍÀ¸·Î ¿¹ÃøµÈ´Ù

    ¡¡

    ¡¡

    ¾à¾î ¸ñ·Ï

    API Application Program Interface

    CGI Common Gateway Interface

    CORBA Common Object Request Broker Architecture

    DB DataBase

    HTML HyperText Markup Language

    IDL Interface Definition Language

    IIOP Internet Inter-ORB Protocol

    JavaIDL Java Interface Definition Language

    JDBC Java DataBase Connectivity

    JOE Java Object Environment

    JVM Java Virtual Machine

    ODBC Open DataBase Connectivity

    OLTP OnLine Transaction Processing

    OMA Object Management Architecture

    OMG Object Management Group

    ONE Open Network Environment

    ORB Object Request Broker

    PDA Personal Digital Assistant

    RMI Remote Method Invocation

    RPC Remote Procedure Call

    SQL Structured Query Language

    URL Uniform Resource Locator

    ¡¡

    Âü°í ¹®Çå

    [1] Hughes, M. and Hughes, C., ¡°Java Network Programming¡±, pp. 414~425, Manning Publications Co., 1997.

    [2] Orfali, R. and Harkey, D., ¡°Client/Server Programming with Java and CORBA¡±, pp. 1~64, pp. 239~286, pp. 409~466, Wiley Computer Publishing, 1997.

    [3] Sridharan, P., ¡°Advanced Java Networking¡±, pp. 95~231, Prentice Hall PTR, 1997.

    [4] Sun Microsystems, ¡°Java Enterprise Computing¡±, pp. 2~50, Sun Microsystems, 1997.

    [5] Vogel, A. and Duddy, K., ¡°Java Programming with CORBA¡±, pp. 1~116, pp. 243~307, Wiley Computer Publishing, 1997.

    [6] Wutka, M., ¡°Hacking Java: The Java Professional¡¯s Resource Kit¡±, pp. 281~408, QUE Corporation, 1997.

    ¡¡

    Âü°í »çÀÌÆ®

    [CORBA] CORBA, http://www.omg.org/news/begin.htm

    [EJ] Enterprise Java, http://java.sun.com/marketing/enterprise/index.html

    [JIDL] JavaIDL, http://java.sun.com/products/jdk/idl/index.html

    [JIDLA] JavaIDL API Document, http://java.sun.com/products/jdk/idl/docs/apidocs/packages.html

    [JIDLG] JavaIDL Guide, http://java.sun.com/products/jdk/idl/docs/JavaIDLspecification.html

    [JIDLM] JavaIDL Mapping Specification, http://java.sun.com/products/jdk/idl/docs/idl-java.html

    [JDBC] JDBC, http://java.sun.com/products/jdbc/index.html

    [JOE] JOE, http://www.sun.com/software/neo/joe/index.html

    [NEO] NEO, http://www.sun.com/solaris/neo/index.html

    [OW] OrbixWeb, http://www-usa.iona.com/Products/Orbix/OrbixWeb/index.html

    [RMI] RMI, http://java.sun.com/products/rmi/index.html

    [VBJ] VisiBroker for Java, http://www.visigenic.com/prod/vbrok/vbjDS.html

    ¡¡