¹æ¸í·Ï ¿¡ ¼Ò°¨À» ³²°ÜÁֽʽÿä.
¿©·¯ºÐÀÇ ÀǰßÀÌ Ã¥ÀÇ ³»¿ëÀ» ´õ¿í dzºÎÇÏ°Ô ¸¸µé °Í ÀÔ´Ï´Ù.

ÄÚ¾Æ ÄÚ¹ÙÀÇ ¸ðµç ³»¿ëÀº º» ÀúÀÚ¿Í ¿µÇÑ ÃâÆÇ»ç ±×¸®µµ ¿©·¯ ȸ»çµé¿¡ ÀÇÇØ¼­ ¼ÒÀ¯µÇ¾î ÀÖÀ¾´Ï´Ù. º» ÀúÀÚÀÇ Çã¶ô¾øÀÌ ¹«´Ü º¹»ç ¹× ÀοëÀ» ±ÝÇÕ´Ï´Ù. ÀÌ »çÇ×À» À§¹Ý½Ã ¸ðµç ¹ýÀûÀΠåÀÓÀ» Áö¼Å¾ß ÇÕ´Ï´Ù.
[ ´ÙÀ½ | ÀÌÀü ]

µÎ¹øÂ° ¸¶´ç. °´Ã¼ ÇÁ·¹ÀÓ¿÷(CORBA)ÀÇ ÀÌÇØ

3¸· CORBA Ç¥ÁØ ÀÌÇØ

1Àå OMG¿Í OMA, CORBA

1.1 ºÐ»ê °´Ã¼ ½Ã½ºÅÛÀÇ Åµ¿ ¹è°æ

»ç¿ëÀÚµéÀº »ý»ê¼ºÀÖ´Â ÀÀ¿ë ÇÁ·Î±×·¥À» ¿øÇÒ »Ó¸¸ ¾Æ´Ï¶ó ÆÄÀÏÀ̳ª µ¥ÀÌÅͺ£À̽ºÃ³·³ ´Ù¾çÇÑ µ¥ÀÌÅÍ ÀúÀå°ø°£À¸·Î ºÎÅÍ Á¤º¸¸¦ ¾ò±æ ¿øÇÑ´Ù. »Ó¸¸ ¾Æ´Ï¶ó ´Ù¸¥ »ç¿ëÀÚµé°ú ÀڷḦ °øÀ¯ÇÏ°í ¼­·Î Åë½ÅÇÏ±æ ¿øÇϰí ÀÖ´Ù. ÀÌ·¸µí ´Ù¾çÇÑ ¿ä±¸»çÇ×À» ¸¸Á·½ÃŰ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇϱâ À§Çؼ­´Â ¼­·Î ´Ù¸¥ ¿î¿µÃ¼Á¦¿Í ³×Æ®¿÷ ȯ°æ µî ÀÌÁ¾ÀÇ È¯°æÇÏ¿¡¼­ ÀÛµ¿°¡´ÉÇÑ Å¬¶óÀ̾ðÆ®/¼­¹ö ¼ÒÇÁÆ®¿þ¾î¸¦ °³¹ßÇØ¾ß ÇÒ »Ó¸¸ ¾Æ´Ï¶ó °³¹ßµÈ ¼ÒÇÁÆ®¿þ¾î´Â ºÐ»ê ȯ°æ¿¡¼­ ¼­·Î ´Ù¸¥ ½Ã½ºÅÛ°úµµ ½±°Ô ÅëÇÕÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù. ±×·¯³ª ÀÌ·¯ÇÑ ¿ä±¸»çÇ×À» ¸¸Á·½ÃŰ´Â ¼ÒÇÁÆ®¿þ¾î¸¦ ÀÛ¼ºÇϱâ¶õ °áÄÚ ½±Áö ¾Ê´Ù. ƯÈ÷, ÀÌÁ¾ÀÇ ºÐ»ê ȯ°æ¿¡¼­ ¿©·¯ Á¾·ùÀÇ ÀÀ¿ë ÇÁ·Î±×·¥À» ÅëÇÕÇϱâ À§ÇÑ °áÇÕ ¹æ½ÄÀ» ÇÊ¿ä·Î ÇÑ´Ù.

¿ì¸®´Â Áö±Ý±îÁö ÀÌ·¯ÇÑ ¹®Á¦¸¦ ÇØ°áÇÏ´Â °í±Þ ¹æ¹ýÀ¸·Î ±âÁ¸ÀÇ RPC(Remote Procedure Call)¹æ½ÄÀ̳ª ¸¶ÀÌÅ©·Î¼ÒÇÁÆ®ÀÇ OLE(Object Linking and Embedding)°°Àº ¹æ½ÄÀ» »ç¿ëÇØ¿Ô´Ù. ±×·¯³ª RPCÀÇ °æ¿ì ±âÁ¸ÀÇ ±¸Á¶Àû ÆÐ·¯´ÙÀÓÀ» ±â¹ÝÀ¸·Î Çϱ⠶§¹®¿¡ ¾ÆÁÖ º¹ÀâÇÏ°í ±Ô¸ð°¡ Å« ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ´Â µ¥ ÀÖ¾î ¸¹Àº ÇѰ谡 ÀÖ´Ù. ¶ÇÇÑ OLEÀÇ °æ¿ì¿¡µµ À©µµ¿ì °´Ã¼µé¸¸ÀÇ È£È¯À» Áö¿øÇϱ⠶§¹®¿¡ ÁøÁ¤ÇÑ ºÐ»ê ½Ã½ºÅÛ Ç¥ÁØÀ̶ó°í ¸»ÇÏ±â ¾î·Æ´Ù. ±×·¯³ª ÀÌ·¯ÇÑ ¹®Á¦µéÀ» ÇØ°áÇÒ ¼ö ÀÖ´Â ¹æ½ÄÀ¸·Î ´ëµÎµÈ °ÍÀÌ OMG(Object Management Group)¿¡¼­ Á¦Á¤ÇÑ CORBA(Common Object Request Broker Architecture) Ç¥ÁؾÈÀÌ´Ù.

1.2 OMG˂ 页
OMG´Â 1¸· 2Àå¿¡¼­ ¾ð±ÞÇÑ °Í ó·³ 1984³â ¼³¸³µÈ ÄÄÇ»ÆÃ °ü·Ã ȸ»çµéÀÇ ÄÁ¼Ò½Ã¾öÀÌ´Ù. ÇöÀç 700¿© °³ÀÇ ¾÷üµéÀÌ Âü°¡ÇÏ¿© CORBAÇ¥ÁØÀ» È®Àå Áß¿¡ ÀÖ´Ù. »ç½Ç ¾ö¹ÐÈ÷ ¸»ÇØ, CORBA´Â OMG¿¡¼­ Á¦¾ÈÇÑ OMA(Object Management Architecture)Ç¥ÁØÀÇ ÀϺÎÀÌ´Ù. OMA´Â ºÐ»ê ȯ°æÇÏ¿¡¼­ ÇÊ¿ä·Î ÇÏ´Â Àü¹ÝÀûÀÎ °´Ã¼ ¼Ö·ç¼ÇÀ» Á¦°øÇÑ´Ù. ÀÌ¿¡ ¹ÝÇØ CORBA´Â OMAÀÇ ÀϺκÐÀ¸·Î¼­ ÁÖ·Î ºÐ»ê ȯ°æÇÏ¿¡¼­ °´Ã¼°£ÀÇ Åë½Å ±â´É°ú À̸¦ Á¶ÀÛÇÏ´Â µ¥ ÇÊ¿äÇÑ ±â´ÉµéÀ» ÁÖ·Î ¾ð±ÞÇϰí ÀÖ´Ù. ¸¶Âù°¡Áö·Î ORB´Â CORBA Ç¥Áؾȿ¡¼­ ÁÖ·Î Åë½Å ºÎºÐ¸¸À» ´ã´çÇϰí ÀÖ´Ù. [ ±×¸²3-1 ] Àº OMG ¿¡¼­ ¹ßÇ¥ÇÑ OMA ¿Í CORBA , ORB»çÀÌÀÇ °ü°è¸¦ Ç¥½ÃÇÑ °ÍÀÌ´Ù. ½ÇÁ¦ ±×¸²¿¡¼­ ó·³ CORBA ´Â OMAÀÇ ÇÑ ºÎºÐÀ̰í ORB´Â CORBA ÀÇ Çٽɱâ¼úÀ» ¸»ÇÏ´Â °ÍÀÌ´Ù. µû¶ó¼­ ORB´Â CORBA Ŭ¶óÀÌ¾ðÆ®¿Í ±¸Çö °´Ã¼(Object Implementation)»çÀÌÀÇ Åë½Å ¿ªÇÒÀ» ´ã´çÇÑ´Ù. OMG¿Í CORBA, ORB¿¡ ´ëÇØ¼­´Â µÚ¿¡¼­ ÀÚ¼¼È÷ »ìÆìº»´Ù. ÇöÀç OMG´Â 1990³â OMA¸¦ ¹ßÇ¥ÇÑ ÀÌ·¡ Áö±Ý±îÁö CORBA2.0 ¸í¼¼¸¦ ¹ßÇ¥ÇÏ¿´À¸¸ç 3.0 ¸í¼¼¸¦ ³íÀÇ Áß¿¡ ÀÖ´Ù.


[ ±×¸²3-1 ] OMG , OMA , CORBAÀÇ °ü°è

´Ù½Ã OMG¿¡ ´ëÇØ °ü½ÉÀ» µ¹·Áº¸ÀÚ. OMG´Â ƯÁ¤ Ç¥ÁØÀ» Á¦Á¤Çϰųª ¼ÒÇÁÆ®¿þ¾î¸¦ °³¹ßÇϴ ȸ»ç°¡ ¾Æ´Ï¶ó ÄÁ¼Ò½Ã¾ö¿¡ °¡ÀÔÇÑ È¸»çµéÀÌ Á¦ÃâÇÑ ¸í¼¼¸¦ °ü¸®Çϰí ó¸®ÇÏ´Â ¿ªÇÒ¸¸À» ¼öÇàÇÑ´Ù. µû¶ó¼­ OMG´Â ´Ù¾çÇÑ ±â¼ú ¹®Á¦¸¦ ¼Õ½±°Ô Á¦ÃâÇÏ°í °ü¸®Çϱâ À§ÇÑ Á¶Á÷À» °®°í ÀÖ´Ù. ÇöÀç OMGÀÇ Á¶Á÷ ±¸¼ºÀº [ ±×¸²3-2 ] °ú °°´Ù. ÀÌ ±×¸²¿¡¼­ OMGÀÇ °¢ ±â¼ú À§¿øÈ¸´Â ÇØ´ç ±â¼ú ¸í¼¼¸¦ ¾ÆÅ°ÅØÃÄ º¸µå(AB)¿¡ Á¦ÃâÇÑ´Ù. AB´Â µÎ°³ÀÇ ±â¼ú À§¿øÈ¸ÀÎ Ç÷§Æû ±â¼ú À§¿øÈ¸(PTC)¿Í µµ¸ÞÀÎ ±â¼ú À§¿øÈ¸(DTC) ¿Í °ü½É»çÇ× ±×·ì(SIGs)À¸·Î ÀÌ·ç¾îÁ® ÀÖ´Ù. °¢ À§¿øÈ¸¿¡¼­ ¼öÇàÇÏ´Â ÀϵéÀº ´ÙÀ½°ú °°´Ù.

PTC´Â CORBAÀÚüÀÇ ÇϺΠ±â¼úµé¿¡ ´ëÇÑ Ç¥ÁØ ¸í¼¼¸¦ ÀÛ¼ºÇÏ´Â ÀÏÀ» ÁøÇàÇÑ´Ù. ¿©±â¼­ ÁøÇàÇÏ´Â Àϰú ÇÏÀ§ ±×·ìµéÀº ´ÙÀ½°ú °°´Ù.

ORB/Object Service Task Force(OSTF)

Common Facilities Task Force(CFTF)

Object Analysis and Design Task Force(OADTF)

Internet Special Interest Group(ISIG)

Japan Special Interest Group(JSIG)

Real-Time Special Interest Group(RTSIG)

DTC´Â ´Ù¾çÇÑ Çö½Ç ¼¼°è¿¡¼­ CORBA¸¦ ±â¹ÝÀ¸·Î ÇÏ´Â ÀÀ¿ë ºÐ¾ß¿¡ ´ëÇÑ ¸í¼¼¸¦ ÀÛ¼ºÇÏ´Â ÀÏÀ» ÁøÇàÇÑ´Ù. ¿©±â¼­ ÁøÇàÇÏ´Â Àϰú ÇÏÀ§ ±×·ìµéÀº ´ÙÀ½°ú °°´Ù.

- CORBAmed Task Force : ÀÇ·á ºÐ¾ß¿¡ ´ëÇÑ ¼Ö·ç¼Ç

- Telecommunications Task Force(CORBAtel) : Åë½ÅºÐ¾ß¿¡ ´ëÇÑ ¼Ö·ç¼Ç

- Manufacturing Domain Task Force(CORBA manufacturing) : °øÀå Á¦¾î ºÐ¾ß¿¡ ´ëÇÑ ¼Ö·ç¼Ç

- Financial Domain Task Force(CORBA financial) : ÀºÇà ºÐ¾ß¿¡ ´ëÇÑ ¼Ö·ç¼Ç

- Interactive Multimedia & Electronic Commerce Domain Task Force : ¸ÖƼ¹Ìµð¾î ¼­ºñ½º¿¡ ´ëÇÑ ÀüÀÚ ÁöºÒ, »ç¿ë ±ÇÇÑ, ·Î¾âƼ µî¿¡ ´ëÇÑ ¼Ö·ç¼Ç

- Business Objects Domain Task Force(BODTF) : ¿÷Ç÷οì, ¹®¼­ 󸮸¦ Æ÷ÇÔÇÏ¿© °æ¿µ ¾÷¹« Àü¹Ý¿¡ °üÇÑ ¼Ö·ç¼Ç

- Transportation Special Interest Group(TSIG) : ¼ö¼Û »ê¾÷¿¡ ´ëÇÑ ¼Ö·ç¼Ç

°ü½É»çÇ× ±×·ì(General Special Interest Group)Àº OMG Àü¹Ý¿¡ °ÉÃÄ ¿¬°üµÈ ¸í¼¼¿¡ ´ëÇØ ¿¬±¸ÇÏ´Â ±×·ìÀ¸·Î¼­ AB¿¡ Á÷Á¢ ¸í¼¼¸¦ º¸°íÇÑ´Ù. ¿©±â¼­ ÁøÇàÇÏ´Â Àϰú ÇÏÀ§ ±×·ìµéÀº ´ÙÀ½°ú °°´Ù.



[ ±×¸² 3-2 ] OMGÀÇ Á¶Á÷ ±¸¼º

1.3 OMA

1.3.1 CORBA °´Ã¼ ¸ðµ¨

¸ÕÀú OMA¸¦ ÀÌÇØÇÏ´Â µ¥ ÀÖ¾î °¡Àå ±âº»ÀÌ µÇ´Â °ÍÀº ¹Ù·Î °´Ã¼ÁöÇâ °³³äÀÌ´Ù. ¿Ö³ÄÇϸé OMA°¡ Á¦°øÇÏ´Â ¸ðµç ¼­ºñ½º´Â °´Ã¼°³³äÀ» ±â¹ÝÀ¸·Î Çϱ⠶§¹®ÀÌ´Ù. ´ÙÀ½Àº OMAÀÇ ÄÚ¾Æ °´Ã¼ ¸ðµ¨À» Á¤¸®ÇÑ °ÍÀÌ´Ù. ÀÎÅÍÆäÀ̽º °°Àº ºÎºÐÀ» Á¦¿ÜÇϰí´Â 1¸·¿¡¼­ »ìÆìº» °´Ã¼ÁöÇâ °³³ä°ú µ¿ÀÏÇÏ´Ù.

- °´Ã¼ = ¾ÖÆ®¸®ºäÆ® + ¸Þ¼Òµå

°´Ã¼´Â ÇÁ·Î±×·¥¿¡¼­ µ¥ÀÌÅÍ ÇüÀ» °®´Â º¯¼ö°°Àº ¾ÖÆ®¸®ºäÆ®(»óÅÂ)¿Í ÇÔ¼ö°°Àº ¸Þ¼Òµå(Çൿ)·Î ±¸¼ºµÈ ÀÏ·ÃÀÇ Äڵ带 ÀǹÌÇÑ´Ù. ¿¹¸¦ µé¾î , ÀÚµ¿Â÷¶õ °´Ã¼´Â ¹ÙÄû¿Í ÇÚµé µîÀÇ ¾ÖÆ®¸®ºäÆ®¸¦ °®À» »Ó¸¸ ¾Æ´Ï¶ó ÀüÁøÀ̳ª ÈÄÁø µîÀÇ ¸Þ¼Òµåµµ Æ÷ÇÔÇϰí ÀÖ´Ù.

- °¸½¶È­(Encapsulation)

°¸½¶È­´Â °´Ã¼¸¦ ±¸¼ºÇÒ ¶§ ¾ÖÆ®¸®ºäÆ®¿Í ¸Þ¼Òµå¸¦ ÇÔ²² Æ÷ÀåÇÑ ÈÄ °´Ã¼ÀÇ ¾ÖÆ®¸®ºäÆ®¿¡ Á¢±ÙÇϱâ À§Çؼ­´Â ÇØ´ç °´Ã¼ÀÇ ¸Þ¼Òµå¸¸À» ÅëÇØ¼­ °¡´ÉÇÏ°Ô ÇÑ´Ù. ÀÌ Ä¸½¶È­´Â ´Ù¸¥ °´Ã¼¿Í ÇØ´ç °´Ã¼¸¦ Ãß»óÀûÀ¸·Î ±¸ºÐÇÒ ¼ö ÀÖ°Ô ÇØÁØ´Ù. µû¶ó¼­ °íµµÀÇ ¸ðµâÈ­°¡ °¡´ÉÇÏ´Ù.

- ´ÙÁß¼º(Polymorphism)

´ÙÁß¼ºÀ̶õ ÇϳªÀÇ ¸Þ¼Òµå À̸§À¸·Î ¿©·¯ °³ÀÇ ¼­·Î ´Ù¸¥ ±â´ÉÀ» Á¦°øÇÏ´Â ¸Þ¼Òµå¸¦ ¸¸µé ¼ö ÀÖ´Â ±â´ÉÀ» ÀǹÌÇÑ´Ù. ¿¹¸¦ µé¾î , Insert( int ) , Insert( char* ) ó·³ °°Àº À̸§À¸·Î ¼­·Î ´Ù¸¥ ±â´ÉÀ» ÇÏ´Â ¸Þ¼Òµå¸¦ ÀÛ¼ºÇÒ ¼ö ÀÖ´Ù.

- »ó¼Ó , »óÀ§ Ŭ·¡½º , ÇÏÀ§ Ŭ·¡½º

»ó¼ÓÀ̶õ ÇÑ Å¬·¡½º°¡ °®°í ÀÖ´Â ¾ÖÆ®¸®ºäÆ®¿Í ¸Þ¼Òµå¸¦ ƯÁ¤ Ŭ·¡½º°¡ ¹°·Á¹Þ´Â °ü°è¸¦ ¸»Çϸç À̶§ ¹°·ÁÁִ Ŭ·¡½º¸¦ »óÀ§ Ŭ·¡½º , ¹°·Á¹Þ´Â ´ë»óÀÌ µÇ´Â Ŭ·¡½º¸¦ ÇÏÀ§ Ŭ·¡½º¶ó°í ÇÑ´Ù. ¿¹¸¦ µé¾î , Æ®·°°°Àº Ŭ·¡½º´Â ÀÚµ¿Â÷ Ŭ·¡½ºÀÇ ¾ÖÅ©¸®ºäÆ®¿Í ¸Þ¼Òµå¸¦ »ó¼Ó¹ÞÀ» ¼ö ÀÖ´Ù. ¿Ö³ÄÇϸé ÀÚµ¿Â÷´Â Æ®·°¿¡ ÇÊ¿äÇÑ ¾ÖÆ®¸®ºäÆ®¿Í ¸Þ¼Òµå¸¦ Æ÷ÇÔÇϰí Àֱ⠶§¹®ÀÌ´Ù. À̶§ ÀÚµ¿Â÷ Ŭ·¡½º¸¦ »óÀ§ Ŭ·¡½º , Æ®·° Ŭ·¡½º¸¦ ÇÏÀ§ Ŭ·¡½º¶ó°í ÇÑ´Ù.

- ÀÎÅÍÆäÀ̽º

ÀÎÅÍÆäÀ̽º´Â C++¿¡¼­ Ŭ·¡½º¿Í À¯»çÇÑ °ÍÀÌ´Ù. ÇÏÁö¸¸ ÀÎÅÍÆäÀ̽º´Â Ŭ·¡½º¿Í ´Þ¸® ƯÁ¤ °´Ã¼¸¦ »ý¼ºÇÏÁö ¸øÇÑ´Ù. ´Ù½Ã ¸»ÇØ, ÀÎÅÍÆäÀ̽º´Â ´ÜÁö Ŭ¶óÀÌ¾ðÆ®¿Í ±¸Çö °´Ã¼»çÀÌÀÇ ÀÎÅÍÆäÀ̽º Á¤ÀǸ¸À» Æ÷ÇÔÇÑ´Ù. µû¶ó¼­ ½ÇÁ¦ ±¸Çö Äڵ带 °®Áö ¾Ê´Â´Ù. ÀÌ Á¡À» Á¦¿ÜÇϰí´Â C++ÀÇ Å¬·¡½º¿Í µ¿ÀÏÇÏ´Ù. ÀÎÅÍÆäÀ̽º¿¡ ´ëÇØ¼­´Â IDLÀ» ´Ù·ç´Â ´ÙÀ½ ¸·¿¡¼­ º¸´Ù ÀÚ¼¼È÷ ´Ù·é´Ù.

1.3.2 OMA

ÀÌ¹Ì ¾î´À Á¤µµ ÀÌÇØÇϰÚÁö¸¸ CORBA´Â ³×Æ®¿÷»ó¿¡ À§Ä¡ÇÑ Å¬¶óÀÌ¾ðÆ® °´Ã¼¿Í ±¸Çö °´Ã¼»çÀÌÀÇ Åë½ÅÀ» ´ã´çÇÏ´Â ¿ªÇÒÀ» ÇÑ´Ù. ÀÌ ¿ªÇÒ¸¸À¸·Î´Â ½ÇÁ¦ ¾÷¹«¿¡¼­ ÇÊ¿ä·Î ÇÏ´Â ¸ðµç ±â´ÉÀ» Á¦°øÇÏÁö ¸øÇÑ´Ù. ÀÌ¿¡ ¹ÝÇØ OMA´Â CORBAÀÇ ±â´ÉÀ» Æ÷ÇÔÇÏ¿© ½ÇÁ¦ ¾÷¹«¿¡¼­ ÇÊ¿ä·Î ÇÏ´Â ¸ðµç °´Ã¼ ±â¼úÀ» ÇϳªÀÇ ÇÁ·¹ÀÓ¿÷À¸·Î Á¦°øÇÑ´Ù. ½ÇÁ¦, ÀÌ ÇÁ·¹ÀÓ¿÷ÀÌ ¹Ù·Î OMG¿¡¼­ ¸ñÇ¥·Î Çϰí ÀÖ´Â ÇöÁ¸ÇÏ´Â ¸ðµç °´Ã¼ ±â¼úÀ» ±â¹ÝÀ¸·Î ÇÑ ÅëÇÕ ±â¼úÀÌÀÚ OMG°¡ ÁöÇâÇϰí ÀÖ´Â °´Ã¼ ±â¼ú¿¡ ´ëÇÑ ¹Ì·¡ÀÌ´Ù. OMA´Â [±×¸²3-3]°ú °°Àº ±¸Á¶·Î ÀÌ·ç¾îÁ® ÀÖ´Ù: °´Ã¼°£ÀÇ Åë½ÅÀ» ´ã´çÇÏ´Â CORBA¸¦ Áß½ÉÀ¸·Î ½Ã½ºÅÛÀ» ±¸ÃàÇÒ ¶§ ÇÊ¿ä·Î ÇÏ´Â ¸ðµç ±â´ÉµéÀ» Á¦°øÇÏ´Â CORBA ¼­ºñ½º(Services) °èÃþ°ú ÀºÇàÀ̳ª Ç×°ø ºÐ¾ß µî ƯÁ¤ µµ¸ÞÀλ󿡼­ ½Ã½ºÅÛÀ» ±¸ÃàÇÒ ¶§ ÇÊ¿ä·Î ÇÏ´Â ±â´ÉµéÀ» Á¦°øÇÏ´Â CORBA Áö¿ø(facility) °èÃþÀ¸·Î ³ª´¶´Ù( °è¼ÓÇØ¼­ CORBA ¼­ºñ½º¿Í Áö¿ø ±â´É¿¡ ´ëÇØ¼­ ÀÚ¼¼È÷ ´Ù·é´Ù). ±×¸®°í ¸¶Áö¸·À¸·Î ÃÖÁ¾ »ç¿ëÀÚµéÀÌ ÀÌ¿ëÇÏ°Ô µÉ ÀÀ¿ë ÇÁ·Î±×·¥ °´Ã¼µéÀÌ À§Ä¡ÇÑ´Ù. ÇöÀç CORBA¿¡ ´ëÇÑ Ç¥ÁØÀº »ç½Ç»ó ¸¶¹«¸®µÈ »óÅÂÀÌ´Ù. ÇÏÁö¸¸ CORBA ¼­ºñ½º¿Í CORBA Áö¿ø ±â´ÉµéÀº °è¼ÓÇØ¼­ Ãß°¡µÇ°í ÀÖ´Â »óȲÀÌ´Ù. CORBA ¼­ºñ½ºÀÇ °æ¿ì CORBA °ø±Þ¾÷ü³ª Á¦3ÀÇ ¾÷ü¿¡ ÀÇÇØ¼­ °³¹ßµÇ°í ÀÖÀ¸¸ç CORBA Áö¿ø ±â´ÉÀÇ °æ¿ì OMGÀÇ µµ¸ÞÀÎ ±â¼ú À§¿øÈ¸(DTC)¿¡¼­ ÇØ´ç ºÐ¾ß¿¡ ´ëÇÑ ¹æ¹ý·ÐÀ» ÀÛ¼ºÇϰí ÀÖ´Ù. OMAÀÇ °¢ ºÎºÐ¿¡ ´ëÇØ¼­´Â µÚ¿¡¼­ º¸´Ù ÀÚ¼¼È÷ ´Ù·çµµ·Ï ÇÑ´Ù.

[ ±×¸²3-3 ] OMA(Object Management Architecture)

2Àå. CORBA 2.0ÀÇ ÀÌÇØ

2.1. ORB(Object Request Broker) ±¸Á¶ ÀÌÇØ

ORB´Â [±×¸²3-4]¿¡¼­ ó·³ Ŭ¶óÀÌ¾ðÆ®¿Í ±¸Çö °´Ã¼»çÀÌÀÇ Áß°èÀÚ ¿ªÇÒÀ» ¼öÇàÇÏ´Â ¿©·¯ °¡Áö ÄÄÆ÷³ÍÆ®¿Í ÀÎÅÍÆäÀ̽º·Î ±¸¼ºµÇ¾î ÀÖ´Ù. ORB¸¦ ´ÜÁ¤ÀûÀ¸·Î ¸»ÇÑ´Ù¸é ºÐ»êµÈ °´Ã¼µéÀ» Ŭ¶óÀ̾ðÆ®/¼­¹ö °ü°è·Î ¸¸µé¾î ÁÖ´Â ÇÙ½ÉÀûÀÎ °´Ã¼ ¹Ìµé¿þ¾î¶ó°í ÇÒ ¼ö ÀÖ´Ù. ORB´Â Ŭ¶óÀÌ¾ðÆ® °´Ã¼°¡ ±¸Çö °´Ã¼ÀÇ ¿ÀÆÛ·¹À̼ÇÀ» È£ÃâÇÒ ¶§ ORB´Â Ŭ¶óÀ̾ðÆ®ÀÇ È£ÃâÀ» ¹Þ¾Æ ÀÚ½ÅÀÌ °¡Áö°í ÀÖ´Â ±¸Çö °´Ã¼µéÀÇ Á¤º¸¸¦ ÂüÁ¶ÇÏ¿© Ŭ¶óÀÌ¾ðÆ®°¡ ¿øÇÏ´Â ±¸Çö °´Ã¼¸¦ ã°í Ŭ¶óÀÌ¾ðÆ®¿¡¼­ º¸³» ÁØ ¼­ºñ½º ¿äû Á¤º¸¸¦ ÇØ´ç ±¸Çö °´Ã¼¿¡°Ô Àü´ÞÇÏ¿© ÇØ´ç °´Ã¼·Î ÇÏ¿©±Ý ±× ÀÛ¾÷À» ¼öÇàÇÏ°Ô ÇÑ´Ù. ±×¸®°í ÀÛ¾÷ÀÌ ¿Ï·áµÇ¸é ORB´Â ¿ªÀ¸·Î ±× °á°ú °ªÀ» ¹Þ¾Æ Ŭ¶óÀÌ¾ðÆ®¿¡°Ô Àü´ÞÇÏ´Â ¿ªÇÒÀ» ¼öÇàÇÑ´Ù.

ORB´Â ÀÌ·¸°Ô Ŭ¶óÀÌ¾ðÆ®¿Í ±¸Çö °´Ã¼µéÀ» ¿¬°á ½ÃÄÑÁÖ´Â ¿ªÇÒÀ» ÇØÁÜÀ¸·Î ½á Ŭ¶óÀÌ¾ðÆ®´Â ±¸Çö °´Ã¼°¡ ¾îµð¿¡ ÀÖµç »ó°üÇÏÁö ¾Ê°í ´ÜÁö ¿øÇÏ´Â °´Ã¼ÀÇ ¿ÀÆÛ·¹À̼ÇÀ» °£´ÜÈ÷ È£ÃâÇÒ ¼ö ÀÖ°Ô µÈ´Ù.

[ ±×¸²3-4 ] ORB ±¸Á¶

°¢ ORB ±¸¼º ¿ä¼ÒµéÀÇ ±â´ÉµéÀº ´ÙÀ½°ú °°´Ù.

CORBA °´Ã¼¸¦ »ý¼ºÇÒ ¶§ °¡Àå ÃÖÃÊÀÇ ÀÛ¾÷Àº Ŭ¶óÀÌ¾ðÆ®¿Í ±¸Çö °´Ã¼ »çÀÌÀÇ ÀÎÅÍÆäÀ̽º¸¦ IDLÀ̶ó´Â ¾ð¾î·Î Á¤ÀÇÇÏ´Â °ÍÀÌ´Ù. ±×·± ´ÙÀ½, ÇØ´ç ÀÎÅÍÆäÀ̽ºµéÀ» IDL ÄÄÆÄÀÏ·¯¸¦ »ç¿ëÇÏ¿© ÄÄÆÄÀÏÇÑ´Ù. IDL ÄÄÆÄÀÏ·¯´Â IDL ÀÎÅÍÆäÀ̽ºµéÀ» C, C++, ÀÚ¹Ù, ½º¸ôÅå, ÄÚº¼ °°Àº ±¸Çö ¾ð¾î·Î º¯È¯ÇÏ¿© Ŭ¶óÀÌ¾ðÆ®¿¡´Â ½ºÅͺ긦, ±¸Çö °´Ã¼¿¡´Â ½ºÄÌ·ÎÅÏÀ̶ó´Â Åë½Å Äڵ带 ÀÚµ¿À¸·Î »ý¼ºÇØ ³½´Ù. ¿©·¯ºÐÀº ÀÌµé ½ºÅͺê¿Í ½ºÄÌ·ÎÅÏÀ» Ŭ¶óÀÌ¾ðÆ®¿Í ±¸Çö °´Ã¼°¡ Åë½ÅÀ» Çϱâ À§ÇÑ ÇÁ·Î±×·¥ ÄÚµå¶ó°í »ý°¢ÇÏ¸é µÈ´Ù. ÀÌ ÄÚµå´Â ÄÄÆÄÀϽà Ŭ¶óÀÌ¾ðÆ®¿Í ±¸Çö °´Ã¼»çÀÌÀÇ Åë½Å ±â´ÉÀÌ È®Á¤µÇ±â ¶§¹®¿¡ À̸¦ Á¤Àû IDL ½ºÅͺê/½ºÄÌ·ÎÅÏÀ̶ó ÇÑ´Ù. Ŭ¶óÀÌ¾ðÆ®´Â ½ºÅͺ긦 ÀÌ¿ëÇÏ¿© ORB¿Í Åë½ÅÀ» ÇÏ¸ç ¼­¹ö´Â ½ºÄÌ·ÎÅÏÀ» °æÀ¯ÇÏ¿© ORB¿Í Åë½ÅÀ» ÇÑ ÈÄ Å¬¶óÀÌ¾ðÆ®¿¡¼­ º¸³»¿Â ¼­ºñ½º ¿äûÀ» ¹Þ¾ÆµéÀÌ°Ô µÈ´Ù. ÀÌ ¶§, ¼­·Î ´Ù¸¥ ¿î¿µÃ¼Á¦ ÇÏ¿¡¼­ ¹ß»ýÇÏ´Â µ¥ÀÌŸ ÇüÀÇ ºÒÀÏÄ¡ µîÀº ÀÚµ¿À¸·Î ½ºÅͺê¿Í ½ºÄÌ·ÎÅÏ¿¡ ÀÇÇØ¼­ 󸮵ȴÙ. CORBA ÇÁ·Î±×·¡¸Ó´Â ÀÌ °úÁ¤¿¡ ½Å°æÀ» ¾µ Çʿ䰡 ¾ø´Ù.

Á¤Àû IDL ½ºÅͺê¿Í ½ºÄÌ·ÎÅÏÀ» ÀÌ¿ëÇÏ¿© ÄÄÆÄÀϽà Ŭ¶óÀÌ¾ðÆ®¿Í ±¸Çö °´Ã¼»çÀÌÀÇ È£ÃâÀÌ °áÁ¤µÇ´Â °Í°ú ´Þ¸® CORBA´Â ÇÁ·Î±×·¥ÀÌ ½ÇÇà ÁßÀÌ´õ¶óµµ È£ÃâÇϰíÀÚ ÇÏ´Â ±¸Çö °´Ã¼ÀÇ ¿ÀÆÛ·¹À̼ÇÀ» ã°í À̸¦ È£ÃâÇÒ ¼ö ÀÖ´Â µ¿Àû È£Ãâ ÀÎÅÍÆäÀ̽º¸¦ Á¤ÀÇÇØ ³õ¾Ò´Ù. Á¤Àû IDL ½ºÅͺ긦 ÅëÇÏ¿© ±¸Çö °´Ã¼¸¦ È£ÃâÇÏ´Â °ÍÀº ÀÌ¹Ì ÄÄÆÄÀϽà ÇÁ·Î±×·¥³»¿¡ Á¤ÀÇÇØ ³õÀº °ÍÀ» »ç¿ëÇÏÁö¸¸ , µ¿Àû È£ÃâÀº Ŭ¶óÀÌ¾ðÆ®°¡ Á÷Á¢ ÇÊ¿äÇÑ °´Ã¼ÀÇ ¸Þ¼ÒµåÀ» ÀÎÅÍÆäÀ̽º ÀúÀå¼Ò(Interface Repository)¿¡¼­ ã¾Æ ÇØ´ç °´Ã¼¿¡°Ô ¿øÇÏ´Â ¼­ºñ½º¸¦ ¿äûÇÒ ¼ö ÀÖ´Ù. Á¤Àû È£Ãâ°ú µ¿Àû È£Ãâ¿¡ ´ëÇØ¼­´Â µÞ Àå¿¡¼­ º¸´Ù ÀÚ¼¼È÷ ´Ù·é´Ù.

ORB ÀÎÅÍÆäÀ̽º´Â Ŭ¶óÀÌ¾ðÆ®³ª ±¸Çö °´Ã¼¿¡¼­ ORB¿¡¼­ Á¦°øÇÏ´Â ¿ÀÆÛ·¹À̼ÇÀ» Á÷Á¢ È£ÃâÇϰíÀÚ ÇÒ ¶§ ½ºÅͺ곪 ½ºÄÌ·ÎÅÏ µîÀÇ ÀÎÅÍÆäÀ̽º¸¦ ÅëÇÏÁö ¾Ê°í Á÷Á¢ ORB¿¡ Á¢±ÙÇϱâ À§ÇÏ¿© Á¦°øµÈ ÀÎÅÍÆäÀ̽ºÀÌ´Ù.

µ¿Àû ½ºÄÌ·ÎÅÏ ÀÎÅÍÆäÀ̽º´Â ½ºÄÌ·ÎÅϰú ½ºÅͺ긦 °®°í ÀÖÁö ¾ÊÀº ´Ù¸¥ ¿ÜºÎ °´Ã¼ÀÇ ¸Þ¼Òµå¸¦ È£ÃâÇϰíÀÚ ÇÏ´Â ±¸Çö °´Ã¼µéÀ» À§ÇØ Á¦°øµÇ´Â ¸ÞÄ¿´ÏÁòÀ̸ç Ŭ¶óÀÌ¾ðÆ®¿¡¼­ ÀÌ¿ëÇÏ´Â µ¿Àû È£Ãâ°ú À¯»çÇÑ ÀÎÅÍÆäÀ̽ºÀÌ´Ù. DSI´Â ÇØ´ç ¸Þ¼¼ÁöÀÇ ¸Å°³º¯¼ö¸¦ ÅëÇØ ÇØ´ç °´Ã¼³ª ¸Þ¼Òµå¸¦ ã´Â´Ù. ÀÌ ¸ÞÄ¿´ÏÁòÀº ORB¿Í ORBÀÇ »çÀÌÀÇ ¿¬°á ¸ðµâ(ºê¸®Áö)À» ±¸ÇöÇϰųª COM°°Àº ´Ù¸¥ ¿ÜºÎ ¸ðµâ°úÀÇ ¿¬°á ¸ðµâ(°ÔÀÌÆ®¿þÀÌ)À» ±¸ÇöÇϴµ¥ ¸Å¿ì À¯¿ëÇÏ´Ù.

ORB ÇÙ½É Åë½Å ¼­ºñ½º À§¿¡ À§Ä¡Çϰí ÀÖÀ¸¸ç, ±¸Çö °´Ã¼ ´ë½Å¿¡ Ŭ¶óÀÌ¾ðÆ® °´Ã¼ÀÇ ¼­ºñ½º ¿äûÀ» ¹Þ¾Æ µéÀδÙ. ¿äûÀ» ¹Þ¾Æ µéÀÎ °´Ã¼ ¾Æ´äÅÍ Àº ÇØ´ç ±¸Çö °´Ã¼¿¡ °´Ã¼ ÂüÁ¶ÀÚ(object reference)¸¦ ºÎ¿©Çϰí Ȱ¼ºÈ­ ½Ã۸ç, ½ºÄÌ·ÎÅÏÀ» ÅëÇØ ÇØ´ç ¸Þ¼Òµå¸¦ È£ÃâÇÑ´Ù. CORBA Ç¥ÁØÀ» ÁؼöÇÏ´ÂORBµéÀº ¹Ýµå½Ã À§ÀÇ ±â´ÉÀ» Áö¿øÇÏ´Â ±âº» °´Ã¼ ¾Æ´äÅÍ ( BOA , Basic Object Adapter )¸¦ Áö¿øÇØ¾ß ÇÑ´Ù.

[±×¸²3-4]¿¡¼­´Â º¸¿©ÁöÁö ¾ÊÁö¸¸ CORBA´Â µÎ°³ÀÇ ÀÚü µ¥ÀÌŸº£À̽º¸¦ °®´Â´Ù. Çϳª´Â ÀÎÅÍÆäÀ̽º¿¡ ´ëÇÑ Á¤º¸¸¦ ÀúÀåÇÏ´Â ÀÎÅÍÆäÀ̽º ÀúÀå¼Ò¶ó´Â µ¥ÀÌŸº£À̽ºÀÌ°í ´Ù¸¥ Çϳª´Â ±¸Çö °´Ã¼ÀÇ Á¤º¸¸¦ ÀúÀåÇÏ´Â ±¸Çö ÀúÀå¼Ò µ¥ÀÌŸº£À̽ºÀÌ´Ù. ¸ÕÀú, ÀÎÅÍÆäÀ̽º ÀúÀå¼Ò¸¦ »ìÆìº¸ÀÚ.

CORBA IDL ·Î ÀÛ¼ºµÈ ¸ðµç ÀÎÅÍÆäÀ̽º Á¤º¸´Â ÀÎÅÍÆäÀ̽º ÀúÀå¼Ò¿¡ ÀúÀåµÈ´Ù. À̰÷¿¡ ÀúÀåµÈ Á¤º¸¸¦ »ç¿ëÇÏ¿© Ŭ¶óÀÌ¾ðÆ® °´Ã¼°¡ Á¦ÃâÇÑ ¼­ºñ½º ¿äû¿¡ ´ëÇÑ ÀÎÅÍÆäÀ̽º Á¤º¸¸¦ Á¶È¸ÇÒ ¼ö ÀÖÀ¸¸ç ÇØ´ç ¿äûÀÌ Á¤´çÇÑÁö °Ë»çÇÒ ¼ö ÀÖ´Ù. ( ½ÇÁ¦ Ŭ¶óÀÌ¾ðÆ® °´Ã¼ÀÇ ¼­ºñ½º ¿äûÀº ¾Õ¼­ »ìÆìº» °Íó·³ ¿øÇÏ´Â °´Ã¼ÀÇ ¸Þ¼Òµå È£ÃâÀ» ÀǹÌÇÑ´Ù. µû¶ó¼­ ÀÌ ¸Þ¼Òµå È£Ãâ½Ã Àü´ÞµÇ´Â ÆÄ¶ó¸ÞÅÍÀÇ Å¸ÀÔÀÌ Á¤È®ÇÑÁö °Ë»çÇÒ ¶§ ÀÎÅÍÆäÀ̽º ÀúÀå¼Ò¸¦ ÀÌ¿ëÇÑ´Ù. )

ÀÎÅÍÆäÀ̽º ÀúÀå¼Ò´Â ´ÙÀ½ÀÇ [±×¸²3-5]°ú °°Àº ±¸Á¶·Î ÀÎÅÍÆäÀ̽º Á¤º¸¸¦ °ü¸®ÇÑ´Ù.



[ ±×¸²3-5 ] ÀÎÅÍÆäÀ̽º ÀúÀå¼ÒÀÇ ±¸Á¶

ÀÎÅÍÆäÀ̽º Á¤º¸¿Í ¸¶Âù°¡Áö·Î ±¸Çö °´Ã¼ÀÇ Á¤º¸µµ ±¸Çö ÀúÀå¼Ò¿¡ ÀúÀåµÈ´Ù. ÀúÀåµÇ´Â Á¤º¸µé·Î´Â ±¸Çö °´Ã¼ÀÇ ¹°¸®ÀûÀÎ À§Ä¡³ª ¼­¹ö ±¸µ¿ ¹æ½Ä, »ç¿ë ÇÁ·ÎÅäÄÝ µî °´Ã¼ ¾Æ´äÅÍ ÀÌ ±¸Çö °´Ã¼¸¦ ±¸µ¿½Ã۴µ¥ ÇÊ¿äÇÑ °ÍµéÀÌ´Ù. ÀÌ Á¤º¸µéÀº ÇØ´ç ¼­ºñ½º¿¡ ÇÕ´çÇÑ ±¸Çö °´Ã¼¸¦ ±¸µ¿½Ã۴µ¥ »ç¿ëµÈ´Ù. ´ÙÀ½ [±×¸²3-6]Àº IDL·Î ÀÛ¼ºµÈ ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼­ ÀÎÅÍÆäÀ̽º ÀúÀå¼Ò¿Í ±¸Çö ÀúÀå¼Ò°¡ »ç¿ëµÇ´Â ¿¹ÀÌ´Ù. IDL·Î ÀÛ¼ºµÈ ÀÎÅÍÆäÀ̽º´Â IDL ÄÄÆÄÀÏ·¯¸¦ ÅëÇØ ÄÄÆÄÀϽà ÀÎÅÍÆäÀ̽º Á¤º¸°¡ ÀÎÅÍÆäÀ̽º ÀúÀå¼Ò¿¡ ÀúÀåµÈ´Ù. ¶ÇÇÑ ÃÖÁ¾ ÀÛ¼ºµÈ ±¸Çö °´Ã¼¿¡ ´ëÇÑ Á¤º¸´Â ±¸Çö ÀúÀå¼Ò¿¡ ÀúÀåµÈ´Ù. ÀÌ·¸°Ô ÀúÀåµÈ Á¤º¸´Â °¢±â Ŭ¶óÀÌ¾ðÆ®¿Í ±¸Çö °´Ã¼°¡ ½ÇÇàµÉ ¶§ ÀÌ¿ëµÈ´Ù.


[ ±×¸²3-6 ] IDL °ú ÀÎÅÍÆäÀ̽º ÀúÀå¼Ò,±¸Çö ÀúÀå¼Ò

2.2 CORBA È£Ãâ ¿ø¸® ÀÌÇØ

CORBA¸¦ ÀÌÇØÇÏ´Â µ¥ ÀÖ¾î °´Ã¼ÁöÇâ °³³äÀÌ °¡Àå ±âº»ÀÌ µÊÀ» °­Á¶ÇÑ ¹Ù ÀÖ´Ù. ¶Ç Çϳª Á¤È®È÷ ÀÌÇØÇØ¾ß ÇÒ °ÍÀÌ CORBAÀÇ È£Ãâ ¿ø¸®¸¦ ÀÌÇØÇÏ´Â °ÍÀÌ´Ù. ¸ÕÀú CORBA ¿¡¼­ ¼­ºñ½º°¡ È£ÃâµÇ´Â ¿ø¸®´Â [±×¸²3-7]¿Í °°´Ù. ±âÁ¸ÀÇ °´Ã¼ÁöÇâ Äڵ忡¼­´Â ¸Þ¼ÒµåÀÇ È£ÃâÀÚ¿Í ÀÌ¿¡ ´ëÇÑ È£Ãâ ó¸®ÀÚ°¡ ÇϳªÀÇ ÇÁ·Î¼¼½º·Î Á¸ÀçÇÑ´Ù. ±×·¯³ª ¸¸¾à ¸Þ¼ÒµåÀÇ È£Ãâ°ú ÀÌ¿¡ ´ëÇÑ Ã³¸®°¡ ³×Æ®¿÷À» ±âÁØÀ¸·Î ¾çºÐµÈ´Ù¸é ¾î¶»°Ô µÉ±î? ½ÇÁ¦ ÀÌ¿¡ ´ëÇÑ ´ë´äÀº °£´ÜÇÏ´Ù. ¸ÕÀú È£ÃâÇÏ´Â ÂÊ , Ŭ¶óÀÌ¾ðÆ®¿¡´Â ³×Æ®¿÷À» ÅëÇØ ¼­ºñ½º¸¦ È£ÃâÇϰí ÀÌ¿¡ ´ëÇÑ °á°ú¸¦ Àü´Þ¹Þ´Â Äڵ带 ÀÛ¼ºÇØ ÁÖ°í È£Ãâ ó¸®ÀÚ Ãø , ±¸Çö °´Ã¼ÂÊ¿¡¼­´Â ³×Æ®¿÷»óÀ¸·Î Àü´ÞµÇ´Â ¼­ºñ½º È£ÃâÀ» ¹Þ°í À̸¦ ó¸®ÇÑ ÈÄ ´Ù½Ã Ŭ¶óÀÌ¾ðÆ®¿¡°Ô Àü´ÞÇØÁÖ´Â Äڵ带 ÀÛ¼ºÇØ ÁÖ¸é µÈ´Ù. ÀÌ·¯ÇÑ ±â´ÉÀ» ¼öÇàÇÏ´Â Äڵ带 ÀüÀÚ´Â ½ºÅͺê(Stub) , ÈÄÀÚ´Â ½ºÄÌ·ÎÅÏ(Skeleton)À̶ó ÇÑ´Ù.

¿¹¸¦ µé¾î, ¸¸¾à ±¸Çö °´Ã¼·Î PersonÀ̶ó´Â Ŭ·¡½º¸¦ ÀÛ¼ºÇß´Ù°í °¡Á¤ÇÏÀÚ. ¸¸¾à Ŭ¶óÀÌ¾ðÆ®°¡ PersonŬ·¡½ºÀÇ getAge()¶ó´Â ¸Þ¼Òµå¸¦ È£ÃâÇÒ ¶§ ÀÌ È£ÃâÀº Ŭ¶óÀ̾ðÆ®Ãø getAge() ½ºÅͺ긦 ÅëÇØ ¿ø°ÝÁöÀÇ ½ºÄÌ·ÎÅÏÀ¸·Î Àü´ÞµÈ´Ù. ÀÌ °úÁ¤¿¡¼­ ½ºÅͺê´Â ÇØ´ç ¸Þ¼ÒµåÀÇ È£Ãâ¿¡ ÇÊ¿äÇÑ °¢Á¾ Á¤º¸¸¦ ³×Æ®¿÷À¸·Î Àü´ÞÇϱâ À§ÇØ Æ÷Àå(¸¶¼£¸µ, Marshall) À» ÇØ¾ß ÇÑ´Ù. ÀÌ Æ÷ÀåµÈ Á¤º¸´Â getAge()ÀÇ ½ºÄÌ·ÎÅÏ¿¡ ÀÇÇØ¼­ Æ÷ÀåÀÌ Ç®·ÁÁö°í(¾ð¸¶¼£, Unmarshall) È£ÃâµÈ´Ù. ó¸®µÈ getAge()ÀÇ °á°ú´Â ´Ù½Ã ³×Æ®¿÷À» ÅëÇØ Ŭ¶óÀÌ¾ðÆ® ½ºÅͺ꿡°Ô Àü´ÞµÇ±â À§ÇØ Æ÷ÀåµÇ°í Àü´ÞµÈ´Ù. Ŭ¶óÀ̾ðÆ®ÂÊÀÇ getAge() ½ºÅͺê´Â ½ºÄÌ·ÎÅÏÀ» ÅëÇØ ³Ñ°Ü¹ÞÀº °á°úÀÇ Æ÷ÀåÀ» Ç®°í ÇØ´ç °á°ú°ªÀ» ó¸®ÇÑ´Ù.

½ÇÁ¦ ÀÌ·¯ÇÑ °úÁ¤À» ÅëÇØ CORBA °´Ã¼ÀÇ È£ÃâÀÌ ÀÌ·ç¾îÁø´Ù. À̶§ ½ºÅͺê¿Í ½ºÄÌ·ÎÅÏÀ» À§ÇØ ÇÊ¿äÇÑ ¸ðµç ±â´ÉÀÇ ÄÚµå´Â CORBA¿¡ ÀÇÇØ¼­ ÀÚµ¿ÀûÀ¸·Î Á¦°øµÈ´Ù.


[ ±×¸²3-7 ] CORBA È£Ãâ ¿ø¸®

Ŭ¶óÀÌ¾ðÆ® °´Ã¼´Â À§ÀÇ È£Ãâ °úÁ¤À» ÅëÇØ ÇØ´ç ±¸Çö °´Ã¼¿¡°Ô ¼­ºñ½º(¸Þ¼Òµå)¸¦ ¿äû(request)ÇÑ´Ù. ÀÌ ¶§, [±×¸²3-8] ó·³ Ŭ¶óÀ̾ðÆ®ÀÇ ¿äû¿¡´Â ±¸Çö °´Ã¼¿Í ÇØ´ç ¸Þ¼Òµå, °¢Á¾ ÆÄ¶ó¸ÞÅÍ, ±×¸®°í Çʿ信 µû¶ó ÄÁÅØ½º(context) °´Ã¼¶ó´Â °ÍÀ» º¸³½´Ù. ÇöÀç ·Î¼­ ¿©·¯ºÐÀº ÄÁÅØ½º °´Ã¼´Â ¿äûµÈ °á°ú¸¦ ´Ù¸¥ ¿ëµµ·Î ÀÌ¿ëÇϱâ À§ÇÑ °´Ã¼¶ó°í ÀÌÇØÇÏ¸é µÈ´Ù. 4¸·¿¡¼­ ÄÁÅØ½º °´Ã¼¿¡ ´ëÇØ ÀÚ¼¼È÷ ´Ù·é´Ù.


[ ±×¸²3-8 ] CORBA Ŭ¶óÀÌ¾ðÆ®¿Í °´Ã¼ ±¸Çö»çÀÌÀÇ Åë½Å

2.3 CORBA ±¸¼º ¿ä¼Ò ÀÌÇØ

ÀÚ! ÀÌÁ¦ Àü¹ÝÀûÀ¸·Î ORB¿Í CORBAÀÇ ÀÛµ¿¿ø¸®¿¡ ´ëÇØ ÀÌÇØÇß´Ù¸é °¢°¢ÀÇ CORBA ±¸¼º¿ä¼Òµé¿¡ ´ëÇØ º¸´Ù ÀÚ¼¼È÷ »ìÆìº¸ÀÚ.

2.3.1 CORBA Ŭ¶óÀÌ¾ðÆ® ºÎºÐ°ú ±¸µ¿ °úÁ¤

CORBA Ŭ¶óÀÌ¾ðÆ®´Â ±¸Çö °´Ã¼¿¡ ¼­ºñ½º ¿äûÀ» ´ã´çÇÑ´Ù. À̶§ [±×¸²3-9]¿¡¼­ ó·³ CORBA Ŭ¶óÀÌ¾ðÆ®´Â Á¤ÀûÀΠȣÃâ ¹æ¹ýÀÎ ½ºÅͺ긦 »ç¿ëÇϰųª µ¿Àû È£Ãâ ÀÎÅÍÆäÀ̽º¸¦ ÀÌ¿ëÇÒ ¼ö ÀÖ´Ù. ¶ÇÇÑ ORB¿¡¼­ Á¦°øÇÏ´Â ±â´ÉÀ» Á÷Á¢ ÀÌ¿ëÇϱ⵵ ÇÑ´Ù.




[ ±×¸²3-9 ] CORBAÀÇ Å¬¶óÀÌ¾ðÆ® ºÎºÐ

´ÙÀ½Àº °¢°¢ÀÇ ºÎºÐ¿¡ ´ëÇÑ ¼³¸íÀÌ´Ù.

Ŭ¶óÀÌ¾ðÆ® ½ºÅͺê´Â Á¤Àû È£ÃâÀ̶ó°íµµ ÇÑ´Ù. ¿Ö³ÄÇÏ¸é ¸Þ¼Òµå È£ÃâÀÌ ÄÄÆÄÀϽà ½ºÅͺ꿡 ÀÇÇØ¼­ ¹Ì¸® °áÁ¤µÇ±â ¶§¹®ÀÌ´Ù.

µ¿Àû È£ÃâÀº ½ÇÇàÁß¿¡ ¿øÇÏ´Â ¸Þ¼Òµå¸¦ µ¿ÀûÀ¸·Î È£ÃâÇÒ ¼ö ÀÖ´Â ±â´ÉÀ» ¸»ÇÑ´Ù. À̸¦ À§ÇØ CORBA´Â ÀÎÅÍÆäÀ̽º ÀúÀå¼Ò¶ó´Â µ¥ÀÌÅͺ£À̽º¿¡ ÇØ´ç Ŭ·¡½ºÀÇ ¸ðµç ÀÎÅÍÆäÀ̽º¸¦ ÀúÀåÇØ µÎ°í µ¿Àû È£Ãâ½Ã À̸¦ ÂüÁ¶ÇÏ¿© ÇØ´ç ¸Þ¼Òµå¸¦ ¼öÇàÇÑ´Ù. ´ÙÀ½Àº Ŭ¶óÀÌ¾ðÆ® °´Ã¼ÀÇ µ¿Àû È£Ãâ °úÁ¤°ú ÀÌ ¶§ ÀÌ¿ëÇÏ´Â ÀÎÅÍÆäÀ̽ºµéÀÌ´Ù.

ÀÌ °úÁ¤Àº ¿øÇÏ´Â °´Ã¼¸¦ ¼±¾ðÇÏ´Â °ÍÀÌ´Ù.

ÀÌ °úÁ¤Àº ORBÀÇ get_interface¶ó´Â ¸Þ¼Òµå¸¦ »ç¿ëÇÏ¿© ÇØ´ç ±¸Çö °´Ã¼ÀÇ °´Ã¼

ÂüÁ¶ÀÚ¸¦ ¾ò¾î¿À´Â °ÍÀÌ´Ù.

CORBA´Â ¸Å°³º¯¼ö¸¦ Àü´ÞÇϱâ À§ÇØ Æ¯º°ÇÑ ÇüÅÂÀÇ ÀÚ·á ±¸Á¶¸¦ ÀÌ¿ëÇÑ´Ù.

À̸¦ NVList(NamedValue list)¶ó ºÎ¸¥´Ù.

typedef unsigned long Flags;

struct NamedValue {

Identifier name; // ¸Å°³º¯¼ö À̸§

any argument; // ¸Å°³º¯¼ö

long len; // ¸Å°³º¯¼ö °ªÀÇ ±æÀÌ¿Í °³¼ö

Flags arg_modes; // Àü´ÞÀÎÀÚ ¸ðµå Ç÷¡±×

};

create_list¸¦ »ç¿ëÇÏ¿© NVList¸¦ ÀÛ¼ºÇÑ´Ù.

ORBStatus create_list(

in long count;

out NVList new_list;

);

ORBStatus create_request(

in Context ctx; // ÄÁÅØ½º °´Ã¼

in Identifier operation; // ¸Þ¼Òµå

in NVList arg_list; // ¸Þ¼ÒµåÀÇ ¸Å°³º¯¼ö

inout NamedValue result; // ¸Þ¼Òµå °á°ú

out Request; // »õ·Ó°Ô »ý¼ºµÈ request

in Flags req_flags; // request Ç÷¡½º

);

invoke¸¦ »ç¿ëÇÏ°í ¼­ºñ½º¸¦ ¿äûÇÏ°í °á°ú¸¦ ¾ò¾î¿Â´Ù.

send¸¦ »ç¿ëÇÏ¿© ÇØ´ç ¼­ºñ½º¸¦ ¿äûÇÑ ÈÄ ´Ù½Ã º»·¡ÀÇ ÇÁ·Î±×·¥¿¡ º¹±ÍÇÑ´Ù. °á°ú´Â ³ªÁß¿¡ get_response³ª get_next_response¸¦ »ç¿ëÇÏ¿© ¾ò¾î¿Â´Ù. CORBA´Â send/get_response¿Ü¿¡ oneway¶ó´Â Ư¼öÇÑ ºñµ¿±â È£Ãâ ¹æ½ÄÀ» »ç¿ëÇÑ´Ù. ÀÌ ¹æ½ÄÀº ¸Þ¼Òµå ¼±¾ð½Ã oneway Ű¿öµå¸¦ »ç¿ëÇÔÀ¸·Î¼­ °á°ú¸¦ ÇÊ¿ä·Î ÇÏÁö ¾Ê´Â ¸Þ¼ÒµåÀÓÀ» ³ªÅ¸³½´Ù.

Interface Request{

status add_arg( in identifier name,

in identifier name,

in TypeCode arg_type,

in void* value,

in long len,

in Flags arg_flags);

status invoke( in Flags invoke_flags);

status delete();

status send( in Flags invoke_flags);

status get_response( in Flags response_flags);

};

½ÇÁ¦ CORBA ÇÁ·Î±×·¡¸Ó´Â ÀÌ µÎ ¹æ¹ýÀ» Àß ÀÌÇØÇϰí ÀÖ¾î¾ß Çϸç ÀûÀýÇÏ°Ô »ç¿ëÇØ¾ß ÇÑ´Ù. ¿Ö³ÄÇÏ¸é ½Ã½ºÅÛÀÇ ¼º´É¿¡ ¾ÆÁÖ Å« ¿µÇâÀ» ¹ÌÄ¡±â ¶§¹®ÀÌ´Ù. ´ÙÀ½Àº Á¤Àû ÀÎÅÍÆäÀ̽º¿Í µ¿Àû È£Ãâ ÀÎÅÍÆäÀ̽º¸¦ ºñ±³ÇÑ Ç¥ÀÌ´Ù. ¸ÕÀú Á¤ÀûÀΠȣÃâ ¹æ¹ýÀº ORB¿¡¼­ Á¦°øÇÏ´Â ±âº» API±â´ÉÀ» ÀÌ¿ëÇÏ¿© ¼­ºñ½º¸¦ ¿äûÇÏ´Â °ÍÀÌ´Ù. µû¶ó¼­ °¡Àå ¼Õ½±°Ô CORBA ÇÁ·Î±×·¥À» ÀÛ¼ºÇÒ ¼ö ÀÖ´Ù. ±×·¯³ª ¸¶¿ì½º ÇÁ·Î±×·¡¹Öó·³ ÇÁ·Î±×·¥ÀÌ ¼öÇà Áß¿¡ ƯÁ¤ÇÑ ¼­ºñ½ºÀÇ È£ÃâÀÌ ÇÊ¿äÇÒ °æ¿ì Á¤ÀûÀÎ ¹æ¹ýÀ¸·Î´Â ºÒ°¡´ÉÇÏ´Ù. µû¶ó¼­ ÀÌ·¯ÇÑ »óȲ¿¡¼­´Â µ¿Àû È£Ãâ ÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÇÑ´Ù. Ŭ¶óÀÌ¾ðÆ®´Â µ¿Àû ÀÎÅÍÆäÀ̽º È£Ãâ ¹æ¹ýÀ» ÀÌ¿ëÇÏ¿© ´ÙÀ½°ú °°Àº ÀÏÀ» ÇÒ ¼ö ÀÖ´Ù.

- ÇÁ·Î±×·¥ ½ÇÇà Áß¿¡ ¿øÇÏ´Â °´Ã¼¸¦ ã´Â´Ù.

- ÇÁ·Î±×·¥ ½ÇÇà Áß¿¡ ¿øÇÏ´Â °´Ã¼ÀÇ ÀÎÅÍÆäÀ̽º¸¦ ã´Â´Ù.

- ÇÁ·Î±×·¥ ½ÇÇà Áß¿¡ ¿øÇÏ´Â ¼­ºñ½º¸¦ »ý¼ºÇÑ´Ù.

- ÇÁ·Î±×·¥ ½ÇÇà Áß¿¡ ¿øÇÏ´Â ¼­ºñ½º¸¦ ¿äûÇÑ´Ù.

- ÇÁ·Î±×·¥ ½ÇÇà Áß¿¡ ¿øÇÏ´Â ¼­ºñ½ºÀÇ °á°ú¸¦ ¹Þ´Â´Ù.

ÀÌ »Ó¸¸ ¾Æ´Ï¶ó µ¿Àû ÀÎÅÍÆäÀ̽º È£ÃâÀº µ¿±âÈ­ È£Ãâ ¹æ½Ä°ú ºñµ¿±â È£Ãâ ¹æ½Ä ¸ðµÎ¸¦ Áö¿øÇÑ´Ù. µû¶ó¼­ »ç¿ëÀÚ´Â ´Ù¾çÇÑ ÀÀ¿ë ÇÁ·Î±×·¥À» ÀÛ¼ºÇÒ ¼ö ÀÖ´Ù. ´ÜÁ¡À¸·Î´Â ÇÁ·Î±×·¥½Ã ¸¹Àº Á¤Àû È£Ãâ¿¡ ºñÇØ ¸¹Àº ÄÚµå¿Í ³ë·ÂÀÌ ÇÊ¿äÇÏ´Ù´Â °ÍÀÌ´Ù.

[ Ç¥3-1 ] µ¿Àû È£Ãâ ´ë Á¤Àû È£Ãâ

Åë½Å ±â´É°ú ¸Þ¼Òµå È£Ãâ µî ORBÀÇ ±âº»±â´ÉÀ» Á¦°øÇÑ´Ù. ÀÌ ±â´ÉÀº Ŭ¶óÀÌ¾ðÆ® °´Ã¼¿Í ±¸Çö °´Ã¼ ¸ðµÎ¿¡ Àû¿ëµÈ´Ù.

Áö±Ý±îÁöÀÇ °úÁ¤À» Á¤¸®ÇÏ´Â Â÷¿ø¿¡¼­ [ ±×¸²3-10 ]À» ÂüÁ¶Çϸ鼭 Ŭ¶óÀÌ¾ðÆ® °´Ã¼°¡ ±¸µ¿µÇ´Â °úÁ¤À» »ìÆìº¸ÀÚ.

´Ü°è1) ¸ÕÀú , Ŭ¶óÀÌ¾ðÆ® °´Ã¼¸¦ Çϳª »ý¼ºÇϰí ÇØ´ç °´Ã¼ÀÇ À̸§À» ¾ò¾î ¿Â´Ù.

´Ü°è2) string_to_object()À» »ç¿ëÇÏ¿© ¹®ÀÚ¿­ ÇüÅÂÀÇ À̸§À» ½ÇÁ¦ °´Ã¼ ÂüÁ¶ÀÚ·Î ¹Ù²Û´Ù.

´Ü°è3) Á¤Àû È£ÃâÀ̳ª µ¿Àû È£Ãâ ¹æ¹ýÀ» »ç¿ëÇÏ¿© ÇØ´ç °´Ã¼ÀÇ ¸Þ¼Òµå¸¦ È£ÃâÇÑ´Ù.

´Ü°è4) ¿¹¿Ü »óȲÀ» °Ë»çÇϰí,

´Ü°è5) ÀÌ»óÀÌ ¾øÀ¸¸é ÇØ´ç °á°ú¸¦ Ȱ¿ëÇÑ ÈÄ,

´Ü°è6) ¸¶Áö¸·¿¡ ORBFree()¸¦ »ç¿ëÇÏ¿© Ŭ¶óÀÌ¾ðÆ®¿Í ORB»çÀÌÀÇ ¿¬°áÀ» Á¾·áÇÑ´Ù.

[ ±×¸²3-10 ] Ŭ¶óÀÌ¾ðÆ® ±¸µ¿ °úÁ¤

2.3.2 CORBA ±¸Çö °´Ã¼ ºÎºÐ ¹× ±¸µ¿ °úÁ¤

±¸Çö °´Ã¼´Â ½ºÄÌ·ÎÅÏÀ» ÅëÇØ Ŭ¶óÀ̾ðÆ®ÀÇ ¼­ºñ½º ¿äûÀ» ó¸®ÇÑ´Ù. CORBA ±¸Çö ºÎºÐÀº ÀÌ ±â´ÉÀ» ¼öÇàÇϱâ À§ÇØ [±×¸²3-11]ó·³ ±¸Çö ½ºÄÌ·ÎÅÏ , °´Ã¼ ¾Æ´äÅÍ , ORB ÀÎÅÍÆäÀ̽º·Î ±¸¼ºµÇ¾î ÀÖ´Ù. °¢°¢ÀÇ ±â´ÉÀº ´ÙÀ½°ú °°´Ù.


[ ±×¸²3-11 ] CORBAÀÇ ±¸Çö °´Ã¼ ºÎºÐ

±¸Çö ½ºÄÌ·ÎÅÏÀº Ŭ¶óÀ̾ðÆ®ÀÇ ¼­ºñ½º ¿äû¿¡ ´ëÇÑ ±¸Çö °´Ã¼¸¦ Á÷Á¢ È£ÃâÇÏ´Â ¿ªÇÒÀ» ÇÑ´Ù. À̶§ ¼­ºñ½º ¿äûÀÌ Á¦°øµÇ´Â Á¤º¸¸¦ ÇØ¼®Çϰí À̸¦ ÅëÇØ ±¸Çö °´Ã¼¿¡ Àü´ÞÇϸç ó¸®µÈ °á°ú¸¦ Æ÷ÀåÇÏ¿© ³×Æ®¿÷À» ÅëÇØ Ŭ¶óÀÌ¾ðÆ®¿¡°Ô Àü´ÞÇÑ´Ù.

°´Ã¼ ¾Æ´äÅÍ´Â CORBA¸¦ Àû¿ëÇÏ·Á´Â ºÐ¾ß¿¡ µû¶ó ´Ù¾çÇÏ°Ô ¼±ÅÃµÇ¾î »ç¿ëµÇ¾î Áú ¼ö ÀÖ´Ù. °¡·É, µ¥ÀÌÅͺ£À̽º°¡ ÇÊ¿äÇÏ´Ù¸é µ¥ÀÌÅͺ£À̽º ¾Æ´äÅ͸¦ »ç¿ëÇÒ ¼öµµ ÀÖ´Ù. ±×·¯³ª CORBA1.1¿¡¼­´Â ±âº»ÀûÀÎ °´Ã¼ ¾Æ´äÅÍ(BOA , Basic Object Adapter) ¸¸À» Á¤ÀÇÇϰí ÀÖ´Ù.

°´Ã¼ ¾Æ´äÅÍ ÀÇ ¿ªÇÒÀ» ´Ü°èº°·Î »ìÆìº¸¸é ´ÙÀ½°ú °°´Ù.

1) ¸ÕÀú, ±¸Çö °´Ã¼¸¦ ±¸Çö ÀúÀå¼Ò¿¡ µî·ÏÇÑ´Ù.

2) ±×·± ´ÙÀ½, ÇÁ·Î±×·¥ ¼öÇà Áß¿¡ »õ·Î¿î ±¸Çö °´Ã¼ÀÇ ÀνºÅϽº¸¦ »ý¼ºÇÑ´Ù.

»õ·Ó°Ô »ý¼ºµÈ ±¸Çö °´Ã¼¿¡ À¯ÀÏÇÑ °´Ã¼ ½Äº°ÀÚ¸¦ ºÎ¿©Çϰí À̸¦ Áߺ¹µÇÁö ¾Ê°Ô °ü¸®ÇÑ´Ù.

3) ±×·± ´ÙÀ½ ORB¿¡°Ô »õ·Î¿î ±¸Çö °´Ã¼°¡ »ý¼ºµÇ¾úÀ½À» ¾Ë¸°´Ù.

4) ORB¸¦ ÅëÇØ Àü´ÞµÈ Ŭ¶óÀÌ¾ðÆ® °´Ã¼ÀÇ ¼­ºñ½º ¿äûÀ» ¹Þ°í À̸¦ ½ºÄÌ·ÎÅÏÀ» ÅëÇØ ±¸Çö °´Ã¼¿¡°Ô Àü´Þ(Up-call)Çϸç ÀûÇÕÇÑ ¸Þ¼Òµå¸¦ È£ÃâÇÑ´Ù. ÀÌ ¶§, ½ºÄÌ·ÎÅÏÀº Àü´ÞµÈ ÆÄ¶ó¸ÞÅ͸¦ ÀûÀýÇÏ°Ô ÇØ¼®ÇØ ÁØ´Ù.

°´Ã¼ ¾Æ´äÅÍ Àº ÇØ´ç ±¸Çö °´Ã¼¸¦ È£ÃâÇϱâ À§ÇØ ±¸Çö ÀúÀå¼Ò(Implementation Repository)¸¦ ÂüÁ¶ÇÑ´Ù. µû¶ó¼­ ÂüÁ¶Çϱâ Àü¿¡ ¸ðµç ±¸Çö °´Ã¼¿¡ ´ëÇÑ Á¤º¸´Â ¹Ì¸® ÀúÀåµÇ¾î ÀÖ¾î¾ß ÇÑ´Ù. ÀúÀåµÇ´Â Á¤º¸·Î´Â ±¸Çö °´Ã¼ÀÇ ¹°¸®ÀûÀÎ À§Ä¡, À̸§, Ȱ¼ºÈ­ Á¤Ã¥, »ç¿ë ÇÁ·ÎÅäÄÝ µî ´Ù¾çÇÏ´Ù. ÀÌ Áß¿¡¼­ Ȱ¼ºÈ­ Á¤º¸´Â °´Ã¼ ¾Æ´äÅͰ¡ ±¸Çö °´Ã¼¸¦ Ȱ¼ºÈ­½Ãų ¶§ ÀÌ¿ëµÈ´Ù. ÀϹÝÀûÀ¸·Î ±âº» °´Ã¼ ¾Æ´äÅÍ¿¡¼­ ±¸Çö °´Ã¼¸¦ Ȱ¼ºÈ­½ÃŰ´Â Á¤Ã¥µéÀº ´ÙÀ½ÀÇ 4°¡Áö°¡ ÀÖ´Ù.

BOA°¡ ÀÚµ¿ÀûÀ¸·Î Ȱ¼ºÈ­½ÃŰ°í ¿©·¯ °³ÀÇ ±¸Çö °´Ã¼¸¦ Æ÷ÇÔÇϰí ÀÖ´Ù.

BOA°¡ Ȱ¼ºÈ­½ÃŰÁö ¾Ê°í »ç¿ëÀÚ°¡ ¼Õ¼ö ¼­¹ö¸¦ ±¸µ¿½ÃŲ´Ù. ±â´ÉÀº shared¿Í µ¿ÀÏÇÏ´Ù.

BOA°¡ Ȱ¼ºÈ­ ½ÃŲ´Ù. ´Ü ¿ÀÁ÷ ÇÑ ¼­¹ö¿¡ ÇϳªÀÇ ±¸Çö °´Ã¼¸¸ÀÌ Á¸ÀçÇÑ´Ù.

Ŭ¶óÀÌ¾ðÆ® °´Ã¼°¡ ¸Þ¼Òµå¸¦ È£ÃâÇÒ ¶§ ¸¶´Ù BOA°¡ ÇØ´ç ±¸Çö °´Ã¼¸¦ Çϳª¾¿ »ý¼ºÇÑ´Ù. ÇØ´ç ¸Þ¼Òµå¸¦ ¼öÇà ÈÄ ÇØ´ç ±¸Çö °´Ã¼¸¦ Á¾·áÇÑ´Ù.

½ÇÁ¦ ¾î¶² Á¤Ã¥À» »ç¿ëÇÒ °ÍÀΰ¡¿¡ µû¶ó ¼º´É»óÀÇ ¿µÇâÀ» ¹Þ±â ¶§¹®¿¡ ½Ã½ºÅÛÀÇ »óȲ¿¡ ÀûÇÕÇÑ Á¤Ã¥À» °áÁ¤ÇØ¾ß ÇÑ´Ù. ÀϹÝÀûÀÎ »óȲ¿¡¼­ ¾î¶² ¹æ¹ýÀÌ °¡Àå ÁÁ´Ù¶ó°í °áÁ¤Çϱâ´Â ¾î·Æ´Ù.

Ŭ¶óÀÌ¾ðÆ® ºÎºÐ¿¡¼­ ó·³ Åë½Å ±â´É°ú ¸Þ¼Òµå È£Ãâ µî ORBÀÇ ±âº» ±â´ÉÀ» Á¦°øÇÑ´Ù.

¾Õ¼­¿Í ¸¶Âù°¡Áö·Î [±×¸²3-12]À» ÂüÁ¶Çϸ鼭 ±¸Çö °´Ã¼°¡ ±¸µ¿µÇ´Â °úÁ¤À» »ìÆìº¸ÀÚ.

´Ü°è1) ORB´Â Ŭ¶óÀÌ¾ðÆ® °´Ã¼ÀÇ ¼­ºñ½º È£Ãâ ¿äûÀ» ¹Þ°í ±¸Çö ÀúÀå¼Ò¸¦ ÂüÁ¶ÇÑ ÈÄ ±¸Çö °´Ã¼ÀÇ È°¼º ¿©ºÎ¸¦ °Ë»çÇÑ´Ù.

´Ü°è2) ±¸Çö °´Ã¼°¡ Ȱ¼ºÁßÀÌÁö ¾ÊÀ» °æ¿ì Ȱ¼ºÈ­(Activate)½ÃŲ´Ù. ÀÌ ¶§, ±¸Çö °´Ã¼¿¡°Ô´Â BOA¿Í Åë½ÅÇÏ´Â µ¥ ÇÊ¿äÇÑ Á¤º¸¸¦ Àü´Þ¹Þ´Â´Ù.

´Ü°è3) ±¸Çö °´Ã¼´Â impl_is_ready ¸Þ¼Òµå¸¦ È£ÃâÇÏ¿© BOA¿¡°Ô ÀÚ½ÅÀÇ Á¸À縦 µî·ÏÇÑ´Ù.

´Ü°è4) BOA´Â ´Ü°è3¿¡¼­ µî·ÏµÈ ±¸Çö °´Ã¼¸¦ Ȱ¼ºÈ­½ÃŲ´Ù.

´Ü°è5) BOA´Â ½ºÄÌ·ÎÅÏÀ» ÅëÇØ Ŭ¶óÀÌ¾ðÆ®°¡ ¿äûÇÑ ¸Þ¼Òµå¸¦ È£ÃâÇÑ´Ù.

´Ü°è6) ±¸Çö °´Ã¼¿¡ ´ëÇÑ ¸ðµç ÀÌ¿ëÀÌ ³¡³ª¸é BOA¿¡¼­ Á¦°øÇÏ´Â deactivate_impl ¸Þ¼Òµå¸¦ È£ÃâÇÏ¿© ±¸Çö °´Ã¼¸¦ ºñȰ¼ºÈ­½ÃŲ´Ù.

[ ±×¸²3-12 ] ±¸Çö °´Ã¼ ±¸µ¿ ¹æ¹ý

2.3.3 ÀÎÅÍÆäÀ̽º Á¤ÀǾî

IDLÀº C³ª C++ , ½º¸ôÅå°°Àº ±¸Çö ¾ð¾î´Â ¾Æ´Ï´Ù. ´ÜÁö, °´Ã¼ÁöÇâ °³³äÀ» ±â¹ÝÀ¸·Î ÇÑ ÀÎÅÍÆäÀ̽º Á¤ÀǾîÀÌ´Ù. µû¶ó¼­ IDLÀ» »ç¿ëÇÏ¸é ±¸Çö¾ð¾îÀÇ ÄÄÆÄÀÏ·¯¿¡ »ó°ü¾øÀÌ CORBA ÀÀ¿ë ÇÁ·Î±×·¥À» ÀÛ¼ºÇÒ ¼ö ÀÖ´Ù. ´Ù½Ã ¸»ÇØ, ÀÏ´Ü ÀÛ¼ºµÈ IDL ÀÀ¿ë ÇÁ·Î±×·¥Àº IDLÄÄÆÄÀÏ·¯¸¦ ÅëÇØ ÀÚµ¿À¸·Î ºÐ»ê ȯ°æÇÏ¿¡¼­ ÀÛµ¿µÇ´Â ƯÁ¤ ÇÁ·Î±×·¡¹Ö ¾ð¾îÀÇ ÄÚµå·Î º¯È¯µÈ´Ù. »ç¿ëÀÚ´Â ÀÌ Äڵ带 ÀÌ¿ëÇÏ¿© ¿øÇÏ´Â ÀÀ¿ë ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¸é µÈ´Ù. ´ÙÀ½ [±×¸²3-13]Àº IDLÀÇ ¿ªÇÒÀ» Àß ³ªÅ¸³» ÁÖ°í ÀÖ´Ù. ÇöÀç IDLÀº Ç¥ÁØÀ¸·Î C , C++ ¾ð¾î·ÎÀÇ ¸ÅÇÎÀ» Áö¿øÇϰí ÀÖÀ¸³ª ¸¹Àº Á¦Ç°µéÀº ÀÚ¹Ù³ª ½º¸ôÅå, Ada, ÄÚº¼ °°Àº ¾ð¾î·ÎÀÇ ¸ÅÇεµ Áö¿øÇϰí ÀÖ´Ù. ´ÙÀ½Àº IDLÀÇ Æ¯Â¡À» Á¤¸®ÇÑ °ÍÀÌ´Ù.

- ƯÁ¤ ÇÁ·Î±×·¥ ¾ð¾î¿Í ÄÄÆÄÀÏ·¯¿¡ µ¶¸³ÀûÀÌ´Ù.

- ´ÙÁß »ó¼ÓÀ» Áö¿øÇÏ´Â µî ´ëºÎºÐÀÇ °´Ã¼ÁöÇâ °³³äÀ» Áö¿øÇÑ´Ù.

- ±¸ÇöÀ» À§ÇÑ ¾ð¾î°¡ ¾Æ´Ï´Ù. Áï, ÇÁ·Î±×·¡¹Ö ¾ð¾î°¡ ¾Æ´Ï´Ù.

- µ¿Àû È£Ãâ ¸ÞÄ¿´ÏÁòÀ» Á¦°øÇÑ´Ù.


[±×¸²3-13 ] IDL ÀÇ ¿ªÇÒ

½Ç ¿¹·Î ´ÙÀ½Àº IDL·Î ÀºÇà°èÁ¤ Ŭ·¡½º¸¦ Á¤ÀÇÇÑ °ÍÀÌ´Ù. IDL¾ð¾î´Â ½ÇÁ¦ C++ó·³ ¿øÇϴ Ŭ·¡½º¸¦ interface¶ó´Â Ű¿öµå¸¦ »ç¿ëÇØ¼­ ¼±¾ðÇÒ ¼öµµ ÀÖÀ¸¸ç ÀÌ interface¾È¿¡ ¾ÖÆ®¸®ºäÆ®¿Í ¸Þ¼Òµå¸¦ ¼±¾ðÇÒ ¼öµµ ÀÖ´Ù. ¾Æ¿ï·¯ °¢Á¾ µ¥ÀÌÅÍ Å¸ÀÔµµ Á¸ÀçÇÑ´Ù.

interface account {

readonly attribute float balance;

readonly attribute string name;

void make_lodgement(in float f);

void make_withdrawal(in float f);

; };

<¿¹Á¦3-1> IDL·Î ÀÛ¼ºµÈ account ÀÎÅÍÆäÀ̽º

½ÇÁ¦ IDL¿¡¼­ °¡Àå ±âº»ÀÌ µÇ´Â ´ÜÀ§´Â ÀÎÅÍÆäÀ̽º ÀÌ´Ù. ÀÌ ÀÎÅÍÆäÀ̽º´Â ¾ÖÆ®¸®ºäÆ®¿Í ¸Þ¼Òµå·Î ±¸¼ºµÈ´Ù. ´ÙÀ½Àº IDLÀÇ »ç¿ë¹®¹ýÀ» °£´ÜÇÏ°Ô Á¤¸®ÇÑ °ÍÀÌ´Ù. ´ëºÎºÐÀÇ ¹®¹ýÀº C++ÀÇ °Í°ú ºñ½ÁÇÏ´Ù. ±×·¯³ª ÆÄ¶ó¸ÞÅÍ_ŸÀÔÀÇ °æ¿ì Ŭ¶óÀÌ¾ðÆ®¿Í ±¸Çö °´Ã¼ »çÀÌ·ÎÀÇ À̵¿ ¹æÇâ¿¡ µû¶ó in , out , inoutÀ¸·Î ¼±¾ðÇÒ ¼ö ÀÖ´Ù. inÀÇ °æ¿ì Ŭ¶óÀÌ¾ðÆ®¿¡¼­ ±¸Çö °´Ã¼·Î , outÀº ±¸Çö °´Ã¼¿¡¼­ Ŭ¶óÀÌ¾ðÆ®·Î , inoutÀº ¾ç¹æÇâÀ¸·Î À̵¿ÀÌ °¡´ÉÇÑ ÆÄ¶ó¸ÞÅ͸¦ ÀǹÌÇÑ´Ù.

ÀÎÅÍÆäÀ̽º := INTERFACE ¸Þ¼Òµå | ¾ÖÆ®¸®ºäÆ®

¸Þ¼Òµå := ¸®ÅÏŸÀÔ ¸Þ¼Òµå À̸§ ( ÆÄ¶ó¸ÞÅÍ_ŸÀÔ ÆÄ¶ó¸ÞÅÍ)

¸®ÅÏŸÀÔ := void | boolean | ...

¸Þ¼Òµå À̸§ := ¹®ÀÚ¿­

ÆÄ¶ó¸ÞÅÍ_ŸÀÔ := in | out | inout

type := int | boolean | float | ...

ÆÄ¶ó¸ÞÅÍ := ¹®ÀÚ¿­

¾ÖÆ®¸®ºäÆ® := [readonly] ATTRIBUTE ¸®ÅÏŸÀÔ ¾ÖÆ®¸®ºäÆ®_À̸§

¾ÖÆ®¸®ºäÆ®_À̸§ := ¹®ÀÚ¿­

[Ç¥ 3-2 ] IDL »ç¿ë¹®¹ý

ÀÎÅÍÆäÀ̽º¸¦ ¼±¾ðÇϱâ À§ÇÑ ¹®¹ý»Ó¸¸ ¾Æ´Ï¶ó IDLÀº ±âº» ÀÚ·áÇüÀ» Á¦°øÇÑ´Ù. ´ÙÀ½Àº IDL·Î »ç¿ë°¡´ÉÇÑ ±âº» ÀÚ·áÇüµéÀÌ´Ù. ÀÌ ±âº» ÀÚ·áÇüÀ» »ç¿ëÇÏ¿© ÀÛ¼ºµÈ ÀÎÅÍÆäÀ̽º¸¦ »õ·Î¿î ÀÚ·áÇüÀ¸·Î »ç¿ëÇÒ ¼ö ÀÖ´Ù.

short, long, unsigned short, unsigned long, float, double, char,

boolean, octet, any, string, constant, struct, typedef, sequence,

arrays, exceptions, enum, union, contexts

[ ±×¸²3-14 ] IDL ÀÚ·áÇü

´ÙÀ½ ¸·¿¡¼­ IDL¿¡ ´ëÇØ º¸´Ù ÀÚ¼¼È÷ ´Ù·ê °ÍÀÌ´Ù.

2.4. CORBAÀÇ ¿©·¯ °¡Áö ±¸¼º¹æ¹ý

CORBA´Â Ŭ¶óÀÌ¾ðÆ®¿Í ±¸Çö °´Ã¼, ±×¸®°í ORBÀÇ ¹èÄ¡¿¡ µû¶ó ¿©·¯ ±¸¼º ¹æ¹ýÀ» °®´Â´Ù. ÀϹÝÀûÀ¸·Î [±×¸²3-15] ¿¡¼­ ó·³ Å©°Ô 3°¡Áö ¹æ¹ýÀÌ Á¸ÀçÇÑ´Ù.

1) ´ÜÀÏ ÇÁ·Î¼¼½º ¶óÀ̺귯¸® ÇüÅÂ(Single-Process Library Resident)

´ÜÀÏ ÇÁ·Î¼¼½º ³»ºÎ¿¡¼­ ¶óÀ̺귯¸®¸¦ ÅëÇØ Ŭ¶óÀÌ¾ðÆ®¿Í ±¸Çö °´Ã¼»çÀÌÀÇ ¼­ºñ½º°¡ ÁøÇàµÇ´Â ¹æ¹ýÀÌ´Ù. ÀÌ ¹æ¹ýÀº ºÐ»êµÈ ȯ°æ¿¡ ÀûÇÕÇÏÁö ¾Ê´Ù.

2) Ŭ¶óÀÌ¾ðÆ®¿Í ±¸Çö °´Ã¼ ¶óÀ̺귯¸® ÇüÅÂ(Client & Implementation Resident)

¶Ç ÇϳªÀÇ ¹æ¹ýÀº ºÐ»ê °´Ã¼ ½Ã½ºÅÛ¿¡¼­ Á¦°øÇÏ´Â ±â´ÉÀÌ Å¬¶óÀÌ¾ðÆ®¿ë ¶óÀ̺귯¸®¿Í ±¸Çö °´Ã¼¿ë ¶óÀ̺귯¸® ÇüÅ·ΠÁ¸ÀçÇϰí À̸¦ ÀÌ¿ëÇÏ¿© ºÐ»êµÈ ȯ°æ¿¡¼­ ÀÀ¿ë ÇÁ·Î±×·¥À» ÀÛ¼ºÇÑ´Ù. ÀÛ¼ºµÈ ÇÁ·Î±×·¥Àº º°µµÀÇ ÇÁ·Î¼¼½º·Î Á¸ÀçÇÑ´Ù.

3) ¼­¹ö ¶Ç´Â ¿î¿µÃ¼Á¦ ÇüÅÂ(Server or Operating-System Based)

¸¶Áö¸·À¸·Î ±âÁ¸ÀÇ ¿î¿µÃ¼Á¦¿¡ ºÐ»ê °´Ã¼ ±â´ÉÀ» Ãß°¡Çϰųª º°µµÀÇ ºÐ»ê °´Ã¼ µ¥¸ó ÇÁ·Î±×·¥ÀÌ Á¸ÀçÇÏ¿© Ŭ¶óÀÌ¾ðÆ®¿Í ºÐ»ê °´Ã¼»çÀÌÀÇ ¼­ºñ½º¸¦ ÁÖ°üÇÏ´Â ¹æ¹ýÀÌ ÀÖ´Ù.

ÇöÀç ´ë´Ù¼öÀÇ CORBA ±¸Çö Á¦Ç°Àº µÎ ¹øÂ°¿Í ¼¼ ¹øÂ° ¹æ¹ýÀ» »ç¿ëÇÏ¿© ºÐ»ê °´Ã¼ ½Ã½ºÅÛÀ» °³¹ßÇϰí ÀÖ´Ù.


[ ±×¸² 3-15 ] CORBAÀÇ ¿©·¯ °¡Áö ±¸Á¶

2.5. CORBA V1.2 ´ë V2.0

Áö±Ý±îÁö »ìÆìº» CORBAÀÇ ±â´ÉµéÀº ´ëºÎºÐ 1.2¸¦ ±âÁØÀ¸·Î ÇÏ´Â °ÍµéÀÌ´Ù. ±×·¯³ª ÇöÀç CORBA´Â 2.0 ¾ÈÀÌ È®Á¤µÇ¾úÀ¸¸ç 3.0À» ÁغñÇϰí ÀÖ´Â ½ÇÁ¤ÀÌ´Ù. °ú¿¬ CORBA2.0¿¡ ¾î¶² ±â´ÉµéÀÌ °­È­µÇ¾ú´ÂÁö Á¤¸®ÇØ º¸ÀÚ.

CORBA2.0¿¡¼­ °­È­µÈ ºÎºÐÀº Å©°Ô ´ÙÀ½°ú °°´Ù.

ÀúÀå¼Ò

°¢ ºÎºÐ¿¡ ´ëÇØ Á» ´õ ÀÚ¼¼È÷ »ìÆìº¸ÀÚ.

2.5.1 CORBA 2.0 ÄÚ¾î

CORBA 1.2 Ç¥ÁؾÈÀÇ °¡Àå Å« ´ÜÁ¡Àº ´Ù¸¥ CORBA Á¦Ç°°ú ȣȯÀÌ µÇÁö ¾Ê´Â´Ù´Â °ÍÀÌ´Ù. °¡·É, A»ç¿¡¼­ °ø±ÞÇÏ´Â CORBA Á¦Ç°°ú B»çÀÇ Á¦Ç°Àº ȣȯÀÌ µÇÁö ¾Ê´Â´Ù. ¿Ö³ÄÇÏ¸é °¢ »ç¿¡¼­ °´Ã¼¸¦ ÀνÄÇÏ´Â ¹æ¹ýÀÌ Æ²¸®±â ¶§¹®ÀÌ´Ù. ÀÌ·¯ÇÑ ¹®Á¦Á¡¸¦ ÇØ°áÇÏ´Â µ¥ ÁßÁ¡À» µÐ °ÍÀÌ CORBA 2.0 Ç¥ÁؾÈÀÌ´Ù. µû¶ó¼­ CORBA 2.0Àº ±âÁ¸ÀÇ CORBA 1.2ÀÇ ±â´É¿¡ ´ÙÀ½ÀÇ ±â´ÉµéÀ» Ãß°¡ÇÏ¿´´Ù.

CORBA 2,0¿¡¼­´Â ±¸Çö °´Ã¼°¡ ½ÇÇà ½Ã°£¿¡ ¿äûµÈ ¼­ºñ½ºÀÇ ÆÄ¶ó¸ÞÅ͸¦ ÇØ¼®ÇÏ¿© ´Ù¸¥ ±¸Çö °´Ã¼ÀÇ ¸Þ¼Òµå¸¦ È£ÃâÇÏ´Â µ¿Àû ½ºÄÌ·ÎÅÏ ÀÎÅÍÆäÀ̽º ¹æ½ÄÀ» Ãß°¡ÇÏ¿´´Ù. ƯÈ÷ ÀÌ ±â´ÉÀº ´Ù¸¥ ORBµé »çÀÌÀÇ ¼­ºñ½º ±³È¯½Ã À¯¿ëÇÑ ±â´ÉÀÌ´Ù. ƯÈ÷, µ¿Àû ½ºÄÌ·ÎÅÏ ÀÎÅÍÆäÀ̽º¸¦ ÀÌ¿ëÇÏ¸é ¸¶ÀÌÅ©·Î¼ÒÇÁÆ®ÀÇ COM/OLE¿Í °°Àº ´Ù¸¥ °´Ã¼¿¡ ´ëÇÑ °ÔÀÌÆ®¿þÀ̸¦ »ý¼ºÇÒ ¼ö ÀÖÀ» »Ó¸¸ ¾Æ´Ï¶ó ´Ù¸¥ ORB»çÀÌ¿¡¼­µµ Ưº°ÇÑ ±â´ÉÀÇ °ÔÀÌÆ®¿þÀ̸¦ ¸¸µé ¼ö ÀÖ´Ù.

ÃʱâÈ­´Â ±âÁ¸ÀÇ CORBA 1.2 Áö¿ø Á¦Ç°¿¡¼­ ORB¸¦ ÃʱâÈ­ÇÏ´Â °úÁ¤À» Ç¥ÁØÈ­Çϱâ À§ÇÑ ÀÎÅÍÆäÀ̽ºÀÌ´Ù. ¿©±â¿¡´Â ORB¸¦ ÃʱâÈ­ Çϰí ORB¿¡ ´ëÇÑ °´Ã¼ ÂüÁ¶ÀÚ¸¦ ¾ò±â À§ÇÑ ÀÎÅÍÆäÀ̽º·Î ORB_init°ú BOA¸¦ ÃʱâÈ­Çϰí BOA¿¡ ´ëÇÑ °´Ã¼ ÂüÁ¶ÀÚ¸¦ ¾ò±â À§ÇÑ BOA_init ÀÎÅÍÆäÀ̽º, ÃÖÃÊ ¿øÇÏ´Â °´Ã¼¸¦ ã´Â µ¥ »ç¿ëÇÏ´Â ÀÎÅÍÆäÀ̽º·Î ±¸Çö °´Ã¼ÀÇ ¸ñ·ÏÀ» Á¦°øÇØÁÖ´Â list_initial_services , ÇØ´ç ±¸Çö °´Ã¼ÀÇ °´Ã¼ ÂüÁ¶ÀÚ¸¦ ÇØ¼®ÇØÁÖ´Â resolve_initial_reference µî ÀÌ ÀÖ´Ù. °¢ ´Ü°èº° ÀýÂ÷¿Í ÀÎÅÍÆäÀ̽ºµéÀÇ ¸í¼¼´Â ´ÙÀ½°ú °°´Ù.

1´Ü°è) ORB¸¦ ÃʱâÈ­Çϰí ÇØ´ç ORB¸¦ »ç¿ëÇϱâ À§ÇÑ ÂüÁ¶ÀÚ¸¦ ¾ò¾î¿Â´Ù.

typedef string ORBid;

typedef sequence<string> arg_list;

ORB ORB_init(inout arg_list argv , in ORBid orb_identifier);

2´Ü°è) BOA¸¦ ÃʱâÈ­Çϰí ÇØ´ç BOAÀÇ ÂüÁ¶ÀÚ¸¦ ¾ò¾î¿Â´Ù.

BOA BOA_init(inout arg_list argv, in BOAid boaidentifier);

3´Ü°è) ¿øÇÏ´Â Ãʱ⠼­ºñ½ºµé¿¡ ´ëÇÑ ¸ñ·ÏÀ» ¾ò¾î¿Â´Ù.

typedef string ObjectId;

typedef sequence<ObjectId> ObjectIdList;

ObjectIdList list_initial_services();

4´Ü°è) ¿øÇÏ´Â ¼­ºñ½ºÀÇ °´Ã¼ ÂüÁ¶ÀÚ¸¦ ¾ò¾î¿À°í À̸¦ ÅëÇØ ¿øÇÏ´Â ÀÛ¾÷À» ÁøÇàÇÑ´Ù.

Object resolve_initial_reference(in ObjectId identifier) raises(LnvalidName);

¾Õ¼­ ¼³¸íÇÑ °Íó·³ ÀÎÅÍÆäÀ̽º ÀúÀå¼Ò´Â ±¸Çö °´Ã¼¿¡ ´ëÇÑ µ¿Àû È£Ãâ½Ã ÇØ´ç ÀÎÅÍÆäÀ̽º¿¡ ´ëÇÑ Å¸ÀÔ °Ë»ç¸¦ ºñ·ÔÇÏ¿© CORBA °´Ã¼¸¦ ¿î¿µÇÏ´Â µ¥ ÇÊ¿äÇÑ ¸ðµç ÀÎÅÍÆäÀ̽º Á¤º¸¸¦ ÀúÀåÇϰí ÀÖ´Ù. ¼­·Î ´Ù¸¥ ORB °´Ã¼µé »çÀÌÀÇ È£È¯À» À§Çؼ­´Â ÀÌ µé, ÀÎÅÍÆäÀ̽º ÀúÀå¼Ò¿¡ ÀÖ´Â Á¤º¸µéÀ» ÀÌ¿ëÇÒ Çʿ䰡 ÀÖ´Ù. À̸¦ À§ÇØ CORBA2.0¿¡¼­´Â ±âÁ¸ÀÇ CORBA 1.2¿¡ Á¤ÀǵǾî ÀÖ´ø Repository ÀÎÅÍÆäÀ̽º¸¦ È®ÀåÇϰí ÀúÀå¼Ò¿¡ ´ëÇÑ °»½Å(updates) ±â´ÉÀ» Áö¿øÇÑ´Ù. »Ó¸¸ ¾Æ´Ï¶ó new ¸Þ¼Òµå¸¦ ÅëÇØ IR°´Ã¼¸¦ »ý¼ºÇϰí À̸¦ ÇÁ·Î±×·¥ ½ÇÇà Áß¿¡ Á¢±ÙÇÒ ¼ö ÀÖ°Ô ÇØ ÁØ´Ù. ´Ù½Ã ¸»ÇÏÀÚ¸é ¸ðµç IDL »ý¼ºÀÚ¸¦ À§ÇØ ÀÎÅÍÆäÀ̽º ÀúÀå¼Ò °´Ã¼ ŸÀÔÀ» »ý¼ºÇÒ ¼ö ÀÖ°Ô ÇØ ÁØ´Ù.

  1. CORBA »óÈ£ ¿¬µ¿

CORBA2.0¿¡¼­´Â ORB»çÀÌÀÇ È£È¯À» À§ÇØ [±×¸²3-16]°ú °°Àº ÇÁ·ÎÅäÄÝ ±¸Á¶¸¦ Á¦¾ÈÇÏ¿´´Ù. ÀÌ ±¸Á¶¿¡¼­ º¸¸é Å©°Ô ÇʼöÀûÀÎ ¿ä±¸»çÇ×À¸·Î GIOP(General Inter-ORB Protocol)¿Í À̸¦ TCP/IP»ó¿¡ ±¸ÇöÇÑ °ÍÀÌ ÀÖ´Ù. ¿É¼Ç »çÇ×À¸·Î´Â ESIOP(Environment-Specific Inter-ORB Protocols)°¡ ÀÖ´Ù. ÀÚ¼¼ÇÑ ³»¿ëÀº 2.6Àý¿¡¼­ ÀÚ¼¼È÷ ¼³¸íÇÑ´Ù.


[ ±×¸²3-16 ] ORB°£ ȣȯ ±¸Á¶

2.5.3 IDL-C++, ½º¸ôÅå ¹ÙÀεù Áö¿ø

Ãʱâ CORBA 1.2 Ç¥ÁØ¿¡¼­´Â IDL ¾ð¾î¸¦ C¾ð¾î·Î ¸ÅÇνÃŰ´Â °Í¸¸À» ±ÔÁ¤Çß¾ú´Ù. ±×·¯³ª 2.0¿¡¼­´Â IDL¾ð¾î¸¦ C++¿Í ½º¸ôÅå ¾ð¾î(½º¸ôÅå80, ½º¸ôÅå Portability)·Î ¸ÅÇÎÇϱâ À§ÇÑ ¸í¼¼¸¦ Æ÷ÇÔ½ÃÄ×´Ù. ƯÈ÷ , C++ ¹ÙÀεùÂÊ¿¡¼­´Â C++°ú ÇÔ²² C Äڵ带 »ç¿ëÇÒ ¶§ ÇÊ¿äÇÑ »õ·Î¿î C ¹ÙÀεù ±ÔÄ¢µµ Áö¿øÇÑ´Ù. À̸¦ ÅëÇØ, CORBA »ç¿ëÀÚ´Â °°Àº ÇÁ·Î¼¼½º³»¿¡¼­ C¿Í C++À» ÇÔ²² »ç¿ëÇÒ ¼ö ÀÖÀ¸¸ç ÄÄÆÄÀÏ Ç÷¡±× ¿É¼ÇÀ¸·Î ±âÁ¸ÀÇ C¸ÅÇÎÀ» Æ÷ÇÔÇÏ¿© ¿øÇÏ´Â ¹æ¹ýÀ» ¼±ÅÃÀûÀ¸·Î »ç¿ëÇÒ ¼ö ÀÖ´Ù.

½º¸ôÅåÀÇ °æ¿ì, ÀÚ¹Ù ¾ð¾îó·³ »ç¿ëÇÑ ¸Þ¸ð¸®¸¦ ÀÚµ¿ÀûÀ¸·Î ó¸®ÇØ ÁÖ´Â °¡º£Áö Ä÷º¼Ç(garbage collection) ±â´ÉÀÌ Æ÷ÇԵǾî Àֱ⠶§¹®¿¡ CORBA ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ ¸Þ¸ð¸®¸¦ Á÷Á¢ °ü¸®ÇÒ Çʿ䰡 ¾ø´Ù. ´ÙÀ½Àº Âü°í·Î ½º¸ôÅå ¸ÅÇÎ ±ÔÄ¢À» ¿ä¾àÇÑ °ÍÀÌ´Ù. ½º¸ôÅå ¾ð¾î¸¦ °æÇèÇÑ ºÐÀ̶ó¸é ÀÌÇØÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.

- Operation & attribute -> ½º¸ôÅå ¸Þ¼¼Áö

- Object reference -> ¸ðµç ½º¸ôÅå °´Ã¼°¡ Á¢±Ù°¡´ÉÇÑ °´Ã¼

- enumeration -> smalltalk CORBAenum ÇÁ·ÎÅäÄÝ

- struct -> smalltalk Dictionary

- union -> smalltalk CORBAunion ÇÁ·ÎÅäÄÝ

- sequence -> smalltalk OrderedCollection

- array -> smalltalk Array

- exception -> Dictionary Ŭ·¡½º

2.6 CORBA »óÈ£¿¬µ¿ ¸ÞÄ¿´ÏÁò, IIOP

ºñ·Ï CORBA ±× ÀÚü´Â 700¿© °³°¡ ³Ñ´Â ȸ»çµéÀÇ ÇÕÀÇ¿¡ ÀÇÇÑ Ç¥ÁØ ½Ã½ºÅÛ ÅëÇÕ ±â¼úÀÌÁö¸¸ ÀÌ Ç¥ÁØÀ» ±¸ÇöÇÑ Á¦Ç°µéÀº °¢±â ´Ù¸¥ ±¸Çö ¹æ¹ýÀ» »ç¿ëÇÑ´Ù. »Ó¸¸ ¾Æ´Ï¶ó ½ÇÁ¦ CORBA¸¦ ´Ù¾çÇÑ ºÐ¾ß¿¡¼­ »ç¿ëÇÒ °æ¿ì ¿©·¯ Á¾·ùÀÇ CORBAÁ¦Ç°À» »ç¿ëÇÒ ¼öµµ ÀÖ´Ù. ÀÌ·± »óȲ¿¡¼­ °¡Àå ÇÊ¿äÇÑ ±â¼úÀº ¼­·Î ´Ù¸¥ CORBAÁ¦Ç°µé °£ÀÇ »óÈ£¿¬µ¿°ú ´Ù¸¥ ¿ÜºÎ ¼­ºñ½ºµé°úÀÇ »óÈ£ ¿¬µ¿ ±â¼úÀÌ´Ù. CORBA ½Ã½ºÅÛ°ú ´Ù¸¥ ¼­ºñ½º¿ÍÀÇ ¿¬µ¿Àº 5¸·¿¡¼­ ´Ù·ç´Â ÁÖÁ¦ÀÌ´Ù. ÀÌ Àå¿¡¼­´Â CORBA ½Ã½ºÅÛÀÇ »óÈ£¿¬µ¿ ¹æ¹ýµé¿¡ ´ëÇØ¼­ Á¤¸®ÇØ º»´Ù.

2.6.1 CORBA »óÈ£¿¬µ¿ ¹æ¹ý·Ð

CORBA »óÈ£¿¬µ¿À̶õ [±×¸²3-17]ó·³ Ŭ¶óÀÌ¾ðÆ® °´Ã¼°¡ ORBÀÇ Á¾·ù³ª ÇÁ·ÎÅäÄÝ¿¡ »ó°ü¾øÀÌ ¸ðµç ±¸Çö °´Ã¼¸¦ ÀÌ¿ëÇÒ ¼ö ÀÖ°Ô ÇØÁÖ´Â ±â´ÉÀ» ¸»ÇÑ´Ù. ¿¹¸¦ µé¸é, ORB A»ó¿¡ Á¸ÀçÇϴ Ŭ¶óÀÌ¾ðÆ® °´Ã¼´Â ORB A¿¡ Á¸ÀçÇÏ´Â ±¸Çö °´Ã¼ ¿Ü¿¡ ORB B¿¡ Á¸ÀçÇÏ´Â ±¸Çö °´Ã¼ÀÇ ¸Þ¼Òµåµµ È£ÃâÇÒ ¼ö ÀÖ´Ù. ¹Ý´ë·Î ORB B»óÀÇ Å¬¶óÀÌ¾ðÆ® °´Ã¼µµ ORB AÀÇ ±¸Çö °´Ã¼¸¦ È£ÃâÇÒ ¼ö ÀÖ´Ù. ÀÌ ±â´ÉÀ» Áö¿øÇϱâ À§Çؼ­´Â ¸ÕÀú Ç¥ÁØÈ­µÈ ÇÁ·ÎÅäÄݰú ORB ÃʱâÈ­ ¹æ¾È µî ¸¹Àº ±â´ÉÀ» ÇÊ¿ä·Î ÇÑ´Ù.

[±×¸²3-17] CORBA »óÈ£¿¬µ¿

CORBA »óÈ£¿¬µ¿À» À§ÇØ CORBA2.0 ¸í¼¼´Â [±×¸²3-16]ó·³ ORB°£ »óÈ£¿¬µ¿À» À§ÇÑ ÇÁ·ÎÅäÄÝ ±¸Á¶¿Í ORB°£ÀÇ »óÈ£¿¬µ¿ ±¸Á¶¸¦ Á¤ÀÇÇÏ¿´´Ù.

  1. ORB°£ »óÈ£ ¿¬µ¿À» À§ÇÑ ÇÁ·ÎÅäÄÝ ±¸Á¶

ORB°£ »óÈ£¿¬µ¿À» À§ÇÑ ÇÁ·ÎÅäÄÝ ±¸Á¶´Â ¸ðµç ORBÁ¦Ç°µéÀÌ Áö¿øÇØ¾ß ¸¸ ÇÏ´Â ºÎºÐÀ¸·Î¼­ GIOP(General Inter ORB Protocol )¿Í À̸¦ TCP/IP»ó¿¡ ±¸ÇöÇÑ IIOP(Internet Inter-ORB Protocol)°¡ ÀÖ´Ù.

¸ÕÀú, GIOP´Â ORBµé »çÀÌÀÇ Åë½ÅÀ» À§ÇÑ ÀÏ·ÃÀÇ ¸Þ½ÃÁö ÇüÅÂ¿Í °øÅëÀÇ µ¥ÀÌŸ Ç¥ÇöÀ» ¸í½ÃÇÑ´Ù. GIOP·Î ¸í½ÃµÈ Ŭ¶óÀ̾ðÆ®ÀÇ ¿ä±¸»çÇ×Àº TCP/IP¸¦ ºñ·ÔÇÏ¿© ÀÏ·ÃÀÇ ³×Æ®¿÷À» °øÀ¯ÇÏ¿© ´Ù¸¥ ORB¿¡°Ô ¹Ù·Î Àü´ÞµÈ´Ù. À̶§ IDL·Î Á¤ÀÇµÈ µ¥ÀÌÅÍ Å¸ÀÔÀ» ³×Æ®¿÷ ¸Þ½ÃÁö ÇüÅ·Πº¯È¯Çϱâ À§ÇØ CDR(Common Data Format)À̶ó´Â Ç¥Çö ¹æ¹ýÀ» »ç¿ëÇÑ´Ù. ´ÙÀ½Àº GIOP¿¡¼­ »ç¿ëÇÏ´Â ¸Þ¼¼Áö ÇüÅÂÀÌ´Ù.

* Ŭ¶óÀÌ¾ðÆ® °´Ã¼ÀÇ ¸Þ¼¼Áö Çü½Ä: Request, CancelRequest, LocateRequest

* ±¸Çö °´Ã¼ÀÇ ¸Þ¼¼Áö Çü½Ä : Reply, LocateReply, CloseConnection

* ¾çÂÊ¿¡ °øÅëÀûÀÎ ¸Þ¼¼Áö Çü½Ä : MessageError

GIOP´Â ¿¬°áÁöÇâ ÇÁ·ÎÅäÄÝ(connection-oriented protocol)·Î¼­ TCP/IP¸¦ ±â¹ÝÀ¸·Î Çϱ⠶§¹®¿¡ Àü¼Û»óÀÇ ½Å·Ú¼ºÀ» º¸ÀåÇÑ´Ù. GIOPµîÀÇ CORBA Ç¥ÁØ ÇÁ·ÎÅäÄÝÀ» »ç¿ëÇÒ ¶§ ¶Ç Çϳª °í¹ÎÇØ¾ß ÇÒ ºÎºÐÀº ¼­·Î ´Ù¸¥ ORBµé»ó¿¡¼­ »ý¼ºµÈ °´Ã¼¸¦ ¾î¶»°Ô Ç¥ÁØÈ­½Ãų °ÍÀΰ¡ ÇÏ´Â °ÍÀÌ´Ù ¾Õ¼­µµ Àá½Ã ¾ð±ÞÇßµíÀÌ ORBµéÀº ÀÚüÀûÀ¸·Î °íÀ¯ÇÑ °´Ã¼ Ç¥Çö ¹æ½ÄÀ» »ç¿ëÇÑ´Ù. µû¶ó¼­ ÀÌ ¹®Á¦·Î ÀÎÇØ CORBA V1.2¿¡¼­´Â ORB°£ÀÇ »óÈ£¿¬µ¿ÀÌ ºÒ°¡´ÉÇß¾ú´Ù. À̸¦ ÇØ°áÇϱâ À§ÇØ CORBA2.0¿¡¼­´Â Ç¥ÁØ °´Ã¼ ÂüÁ¶ÀÚ ¾ç½ÄÀ¸·Î IOR(Inter-operable Object Reference)À» Á¤ÀÇÇÏ¿´´Ù. IOR¿¡´Â ´ÙÀ½ÀÇ Á¤º¸µéÀÌ Ç¥ÇöµÈ´Ù.

°´Ã¼ ŸÀÔ , ÇÁ·ÎÅäÄÝ , À̿밡´ÉÇÑ ORB ¼­ºñ½º, °´Ã¼ ÂüÁ¶ÀÚÀÇ ³Î °ª À¯/¹Â

Á¤¸®Çϸé, IOR¿¡´Â ¿ø°ÝÁö»óÀÇ ORB¸¦ ÅëÇØ ÇØ´ç °´Ã¼ÀÇ ¼­ºñ½º¸¦ È£ÃâÇÏ´Â µ¥ ÇÊ¿äÇÑ ¸ðµç Á¤º¸°¡ Æ÷ÇԵȴÙ. ´ÙÀ½ [±×¸²3-17]Àº IORÀ» »ç¿ëÇÏ´Â ½Ã³ª¸®¿À¸¦ ´Ü°èº°·Î º¸¿©ÁØ´Ù.


[ ±×¸²3-17] IOR »ç¿ë ½Ã³ª¸®¿À

CORBA 2.0¿¡¼­ Á¤ÀÇÇÑ GIOP¸¦ TCP/IP»ó¿¡¼­ ±¸ÇöÇÑ °ÍÀ» IIOP(Internet Inter-ORB Protocol)¶ó°íµµ Çϴµ¥ ¿©±â¼­´Â GIOP·Î Á¤ÀÇµÈ ¸Þ¼¼Áö°¡ TCP/IP»ó¿¡¼­ ¾î¶»°Ô ±¸ÇöµÇ´Â °¡¸¦ Á¤ÀÇÇϰí ÀÖ´Ù. IIOPÀÇ Áß¿äÇÑ ÀÇ¹Ì Áß Çϳª´Â º°µµÀÇ ³ë·Â¾øÀÌ ÀÎÅͳݻ󿡼­ CORBA ÀÀ¿ë ½Ã½ºÅÛÀ» °³¹ßÇÒ ¼ö ÀÖ°Ô ÇØÁØ´Ù¶ó´Â °ÍÀÌ´Ù. ¿Ö³ÄÇϸé ÀÎÅͳÝÀÇ ±âº» ÇÁ·ÎÅäÄÝÀÌ TCP/IPÀ̱⠶§¹®ÀÌ´Ù. µû¶ó¼­ TCP/IP»ó¿¡ ¸¸µé¾îÁø °´Ã¼°£ Åë½Å ÇÁ·ÎÅäÄÝÀÎ IIOP´Â ÀÚ¿¬½º·´°Ô ÀÎÅͳݻ󿡼­ °´Ã¼°£ÀÇ Åë½ÅÀ» º¸ÀåÇØ ÁØ´Ù. °á±¹ CORBA 2.0 À» Áö¿øÇÑ´Ù´Â ¸»Àº TCP/IP »ó¿¡¼­ GIOP¸¦ »ç¿ëÇÏ¿© ¼­·Î ´Ù¸¥ ORBµé »çÀÌÀÇ ¸Þ¼Òµå È£ÃâÀ» Áö¿øÇÑ´Ù´Â ¸»ÀÌ´Ù.

GIOP¿Í IIOP°¡ ÇʼöÀûÀÎ ¿ä±¸ »çÇ×Àε¥ ¹ÝÇØ ESIOP(Environment-Specific Inter-ORB Protocol)´Â ¿É¼Ç»çÇ×À¸·Î¼­ DCEó·³ ƯÁ¤ÇÑ ºÐ»ê ¼­ºñ½º ½Ã½ºÅÛµé°úÀÇ È£È¯À» À§ÇØ ¼³Á¤µÈ´Ù. ÇöÀç DCE°¡ ±× ù¹øÂ° ȣȯ ´ë»óÀ¸·Î¼­ Á¤ÀǵǾî ÀÖ´Ù. DCE/ESIOP¿¡ µû¸£¸é GIOPÀÇ CDR·Î Ç¥ÇöµÈ ¸Þ½ÃÁö´Â DCE¿¡¼­ ÇØ¼®ÀÌ °¡´ÉÇϵµ·Ï º¯È¯µÇ¾î Áø´Ù. µû¶ó¼­ ESIOP¸¦ »ç¿ëÇÏ¸é º¸¾È±â´ÉÀ̳ª µð·ºÅ丮 ¼­ºñ½º µî DCE¿¡¼­ Á¦°øÇÏ´Â Ãß°¡ÀûÀÎ ±â´ÉÀ» ÀÌ¿ëÇÒ ¼ö ÀÖ´Ù.

2.6.3 ORB°£ »óÈ£¿¬µ¿ ±¸Á¶

  1. ORB°£ ºê¸®Áö(bridge) ±¸Çö ¹æ¹ý

ORB ºê¸®Áö¶õ ¸» ±×´ë·Î ORB»çÀÌÀÇ ±³·® ¿ªÇÒÀ» ÇØÁÖ´Â ¸ðµâÀ» ¸»ÇÑ´Ù. µû¶ó¼­ ºê¸®Áö¸¦ ±¸¼ºÇϸé ORB°£¿¡ »óÈ£¿¬µ¿ÀÌ °¡´ÉÇØÁø´Ù. ÇöÀç ºê¸®Áö´Â [±×¸²3-18]ó·³ µÎ°¡Áö ¹æ¹ýÀ¸·Î ±¸ÇöÇÒ ¼ö ÀÖ´Ù-ÀÎ-¶óÀÎ ºê¸®Áö( In-line bridge) , ¿äû-¼öÁØ ºê¸®Áö( Request-level bridge ).

ÀÎ-¶óÀÎ ºê¶óÁö

ÀÎ-¶óÀÎ ºê¸®ÁöÀÇ °æ¿ì ORB³»ºÎ¿¡ Á÷Á¢ Àü¼Û ¸ðµâÀ» Ãß°¡ÇÏ¿©ORB°£ÀÇ Á÷Á¢ÀûÀÎ Åë½ÅÀ» Áö¿øÇÑ´Ù.

¿äû-¼öÁØ ºê¸®Áö

¿äû-¼öÁØ ºê¸®Áö´Â ORB¿¡¼­ Á¦°øÇÏ´Â API¸¦ »ç¿ëÇÏ¿© ORB°£ÀÇ Åë½ÅÀÌ ÀÌ·ç¾îÁø´Ù. Ŭ¶óÀÌ¾ðÆ®´Â ½ºÅͺ곪 DII¸¦ »ç¿ëÇÏ¿© ´Ù¸¥ ORB »óÀÇ ±¸Çö °´Ã¼¸¦ ¸¶Ä¡ ÀÚ½ÅÀÇ ORB»ó¿¡ ÀÖ´Â ±¸Çö °´Ã¼Ã³·³ È£ÃâÇÑ´Ù. ÀÌ È£ÃâÀº DSI¸¦ »ç¿ëÇÏ´Â ¾çÂÊ ORB»çÀÌÀÇ ºê¸®Áö¸¦ ÅëÇØ Àü´ÞµÈ´Ù. ¿ø°ÝÁö»óÀÇ ORB´Â ÀÌ ¿äûÀ» ¹Þ°í ó¸®ÇÑ´Ù.

[ ±×¸² 3-18a ] ÀÎ-¶óÀÎ ºê¸®Áö

[ ±×¸² 3-18b ] ¿äû-¼öÁØ ºê¸®Áö

2.6.3.2 ORB°£ ºê¸®Áö ±¸¼º ¹æ¹ý

ºê¸®Áö¸¦ ÅëÇØ ´Ù¾çÇÑ ±Ô¸ðÀÇ CORBA ÀÀ¿ë ½Ã½ºÅÛÀ» ±¸ÃàÇÒ ¼ö ÀÖ´Ù. CORBA¿¡¼­´Â À̸¦ À§ÇØ CORBA µµ¸ÞÀÎÀ̶õ °³³äÀ» Á¦°øÇÑ´Ù. CORBA µµ¸ÞÀÎÀº ´Ù¾çÇÑ ¿ëµµ¿Í ¸ñÀû¿¡ ÀÇÇØ ±¸ºÐµÇ´Â ³í¸®ÀûÀÎ °³³äÀÇ °ø°£ÀÌ´Ù. ¿¹¸¦ µé¸é, ¿©·¯ºÐÀº °ü¸® Â÷¿øÀ̳ª ORBÁ¾·ù, ³×Æ®¿÷ ÇÁ·ÎÅäÄÝ, ¼­ºñ½º º°·Î µµ¸ÞÀÎÀ» ±¸¼ºÇÒ ¼ö ÀÖ´Ù. µû¶ó¼­ ÀÌ·¯ÇÑ µµ¸ÞÀÎÀ» ±¸¼ºÇÏ·Á¸é ºê¸®Áö¸¦ »ç¿ëÇÏ¿© ORB ½Ã½ºÅ۵鰣¿¡ ³×Æ®¿÷À» ±¸¼ºÇØ¾ß ÇÑ´Ù.

ºê¸®Áö´Â ÇÁ·ÎÅäÄÝ¿¡ µû¶ó Ç®-ºê¸®Áö(Full Bridge)¿Í ÇØÇÁ(Hald Bridge)-ºê¸®Áö·Î ³ª´¶´Ù. Ç®-ºê¸®Áö´Â µÎ°³ÀÇ µµ¸ÞÀÎÀ» Á÷Á¢ ¿¬°áÇØÁÖ´Â ¿ªÇÒÀ» ÇÑ´Ù. ´Ù½Ã ¸»ÇØ, °øÅëÀÇ ÇÁ·ÎÅäÄÝÀ» »ç¿ëÇÑ´Ù. ÀÌ¿¡ ¹ÝÇØ ÇØÇÁ-ºê¸®Áö´Â ¼­·Î ´Ù¸¥ µµ¸ÞÀÎÀ» »ç¿ëÇÏ´Â µÎ°³ÀÇ µµ¸ÞÀÎÀ» ¿¬°áÇØÁÖ´Â ¿ªÇÒÀ» ÇÑ´Ù. ¼º´É¸é¿¡¼­´Â Ç®-ºê¸®Áö°¡ ÇØÇÁ-ºê¸®Áöº¸´Ù À¯¸®ÇÏ´Ù. ¿Ö³ÄÇϸé ÇØÇÁ-ºê¸®ÁöÀÇ °æ¿ì ¼­·Î ´Ù¸¥ ÇÁ·ÎÅäÄÝ»çÀÌ¿¡¼­ ¸Þ¼¼Áö ÇüŸ¦ ¸ÂÃß±â À§ÇØ ´Ù¾çÇÑ º¯È¯ ÀÛ¾÷À» ¼öÇàÇØ¾ß Çϱ⠶§¹®ÀÌ´Ù.

ÀÌµé ºê¸®Áö¸¦ ÀÌ¿ëÇÏ¿© ´Ù¾çÇÑ µµ¸ÞÀÎÀ» ±¸¼ºÇϰí ÀÌ µé µµ¸ÞÀÎÀ» ¹­¾î ³¾ ¼ö ÀÖ´Ù. CORBA Ç¥ÁØ¿¡¼­´Â µÎ°¡Áö ¹­´Â ¹æ¹ýÀ» Á¦°øÇÑ´Ù-Á÷Á¢ ºê¸®Â¡(Immediate Bridging) , Áß°£ ºê¸®Â¡(Mediate Bridging) ¶Ç´Â ¹éº» ºê¸®Â¡(Backbone Bridging). Á÷Á¢ ºê¸®Â¡ÀÇ °æ¿ì [±×¸² 3-19a]ó·³ °¢ ÇÁ·ÎÅäÄÝÀ» ±×¹°Ã³·³ ¿¬°áÇÑ´Ù. ±×·¯³ª Áß°£ ºê¸®Â¡Àº [±×¸²3-19b]ó·³ Áß°£¿¡ ÅëÀÏµÈ ¹éº» ÇÁ·ÎÅäÄÝÀ» À§Ä¡½ÃÄÑ ¿¬°áºÎ¸¦ ´Ü¼øÈ­ ½ÃŰ´Ù.




[ ±×¸²3-19a ] Á÷Á¢ ºê¸®Â¡


[ ±×¸²3-19a ] Áß°£ ºê¸®Â¡

3Àå. CORBA ¼­ºñ½ºµé

3.1 CORBA ¼­ºñ½º¶õ?

CORBA ¼­ºñ½º´Â ±ÝÀ¶À̳ª Åë½Å µî ƯÁ¤ ºÐ¾ß¿¡ ±¹ÇѵÇÁö ¾Ê°í ±¤¹üÀ§ÇÏ°Ô CORBA °´Ã¼¸¦ Á¶ÀÛÇÏ´Â µ¥ ÇÊ¿äÇÑ ¸ðµç ¼­ºñ½ºµéÀ» Áö¿øÇϱâ À§ÇÑ ÀÎÅÍÆäÀ̽º ¸í¼¼ÀÌ´Ù. [±×¸² 3-20]¿¡¼­ ó·³ CORBA ¼­ºñ½º´Â OMAÀÇ Çϴܺο¡ À§Ä¡ÇÑ´Ù. À§Ä¡°¡ »ó¡ÇϵíÀÌ CORBA ÀÀ¿ë ÇÁ·Î±×·¥µéÀº ÀÌ ±â´ÉµéÀ» ÀÌ¿ëÇÏ¿© ¿øÇÏ´Â ÀÛ¾÷À» ¼öÇàÇÑ´Ù.

CORBA ¼­ºñ½º´Â °è¼ÓÇØ¼­ ÁøÇàµÇ°í ÀÖ´Â CORBA Ç¥ÁØÀÌ´Ù. µû¶ó¼­ Çʿ信 µû¶ó Ãß°¡µÉ ¼ö ÀÖ´Ù. [±×¸² 3-20]¿¡¼­ ó·³ CORBA¼­ºñ½º´Â 1993³â COSS1(Common Object Service Specification 1) ¸í¼¼ºÎÅÍ 1996³â COSS5±îÁö °è¼ÓÇØ¼­ ÁøÇàµÇ°í ÀÖ´Ù(Âü°í·Î Ãʱâ CORBA service¶ó´Â À̸§Àº COSS·Î ºÒ¸®¿ö Á³¾ú´Ù).


[±×¸² 3-20] OMA¿¡¼­ CORBA ¼­ºñ½º

°¢ CORBA ¼­ºñ½ºÀÇ Á¾·ù¿Í ³»¿ëÀº ´ÙÀ½°ú °°´Ù.
COSS11993³â ¸í¸í ¼­ºñ½º , À̺¥Æ® ¼­ºñ½º, »ý¸í Áֱ⠼­ºñ½º , Áö¼Ó¼º ¼­ºñ½º
COSS21994³â °´Ã¼ °ü°è ¼­ºñ½º, µ¿½Ã¼º ¼­ºñ½º, Æ®·»Á§¼Ç ¼­ºñ½º, ¿ÜÇüÈ­ ¼­ºñ½º
COSS31995³â º¸¾È ¼­ºñ½º, ½Ã°£ ¼­ºñ½º.
COSS41995³â ÁúÀÇ ¼­ºñ½º, ¶óÀ̼¾½º ¼­ºñ½º, Ư¼º ¼­ºñ½º
COSS51996³â Æ®·¹À̵ù ¼­ºñ½º , Ä÷º¼Ç ¼­ºñ½º, º¯È­ °ü¸® ¼­ºñ½º

[ Ç¥3-3 ] CORBA ¼­ºñ½ºÀÇ Á¾·ù¿Í ³»¿ë

3.2 CORBA ¼­ºñ½ºÀÇ Á¾·ù¿Í ³»¿ë

3.2.1 COSS1

¸ðµç °´Ã¼´Â Ãʱ⠻ý¼º¿¡¼­ ºÎÅÍ ¼Ò¸êµÇ´Â ½ÃÁ¡±îÁö ÀÏ·ÃÀÇ »ý¸íÁֱ⸦ °®´Â´Ù. ¶ÇÇÑ ÇÑ °´Ã¼¸¦ º¹»ç,»èÁ¦ ÇÏ´Â µî ´Ù¾çÇÑ Á¶ÀÛ ±â´ÉÀ» °®´Â´Ù. ÀÌ·¯ÇÑ ¼­ºñ½º¸¦ Á¦°øÇÏ´Â ±â´ÉÀÌ »ý¸í Áֱ⠼­ºñ½ºÀÌ´Ù. »ý¸í Áֱ⠼­ºñ½º¸¦ À§ÇØ CORBA´Â 3°³ÀÇ ÀÎÅÍÆäÀ̽º¸¦ Á¦°øÇÑ´Ù-FactoryFinder , GenericFactory , LifeCycleObject.

°¢ ÀÎÅÍÆäÀ̽º°¡ Á¦°øÇÏ´Â ±â´ÉÀº ´ÙÀ½°ú °°´Ù.

CORBA¿¡¼­ ¸ðµç °´Ã¼´Â Factory¶ó´Â À̸§ÀÇ ÀÎÅÍÆäÀ̽º¸¦ ÅëÇØ¼­ »ý¼ºµÈ´Ù. GenericFactory ÀÎÅÍÆäÀ̽º´Â create_object¶ó´Â ¸Þ¼Òµå¸¦ ÅëÇØ »õ·Î¿î °´Ã¼¸¦ »ý¼ºÇس½´Ù.

¸ðµç °´Ã¼´Â ¼­·Î ´Ù¸¥ Å©±â¿Í ŸÀÔÀ» °®À¸¸ç °¢±â ¿î¿µ ȯ°æ¿¡ µû¶ó ´Ù¸£°Ô »ý¼ºµÇ±â ¶§¹®¿¡ °øÅëÀÇ Factory¸¦ °®À» ¼ö ¾ø´Ù. µû¶ó¼­ FactoryFinder ÀÎÅÍÆäÀ̽º¿¡¼­ Á¦°øÇÏ´Â find_factories ¶ó´Â ¸Þ¼Òµå¸¦ ÅëÇØ ÇØ´ç Factory ÀÎÅÍÆäÀ̽º¸¦ ã´Â´Ù.

ÀÏ´Ü »ý¼ºµÈ °´Ã¼´Â º¹»ç,À̵¿,Á¦°Å µî ´Ù¾çÇÏ°Ô Á¶À۵ȴÙ, À̸¦ À§ÇØ CORBA´Â LifeCycleObject ¶ó´Â ÀÎÅÍÆäÀ̽º¸¦ Á¦°øÇÑ´Ù. LifeCycleObject´Â ÇØ´ç °´Ã¼ÀÇ º¹»ç¸¦ À§ÇØ copy ¸Þ¼Òµå¸¦ , À̵¿À» À§ÇØ move ¸Þ¼Òµå¸¦ , Á¦°Å¸¦ À§ÇØ remove ¸Þ¼Òµå¸¦ Á¦°øÇÑ´Ù. Copy ¸Þ¼ÒµåÀÇ °æ¿ì ÇØ´ç °´Ã¼¸¦ º¹»çÇÏ°í º¹»çÇÑ °´Ã¼ÀÇ °´Ã¼ ÂüÁ¶ÀÚ¸¦ ¹ÝȯÇÑ´Ù. ÀÌ¿¡ ¹ÝÇØ move ¸Þ¼Òµå´Â FactoryFinder°¡ Á¸ÀçÇÏ´Â ¹üÀ§³»¿¡¼­ ÇÑ °´Ã¼¸¦ ´Ù¸¥ °÷À¸·Î À̵¿½ÃŲ´Ù.

º¹ÀâÇÑ ½Ã½ºÅÛÀ» µðÀÚÀÎÇÒ °æ¿ì, ƯÁ¤ °´Ã¼¿¡°Ô À̺¥Æ®¸¦ Àü´ÞÇÏ¿© »õ·Î¿î ¼­ºñ½º¸¦ ¿ä±¸Çϰųª ¼öÇà½Ã۱â À§ÇÑ ¼­ºñ½º°¡ ÇÊ¿äÇÏ´Ù. ÀÌ·¯ÇÑ ±â´ÉÀ» Á¦°øÇÏ´Â °ÍÀÌ À̺¥Æ® ¼­ºñ½ºÀÌ´Ù. CORBA À̺¥Æ® ¼­ºñ½º´Â ¸ÖƼij½ºÆ® ±â´ÉÀ» Á¦°øÇÑ´Ù. ´Ù½Ã ¸»ÇØ, º¹¼ö À̺¥Æ® Á¦°øÀÚµé°ú ¼ö¿ëÀÚµéÀ» Áö¿øÇÑ´Ù´Â °ÍÀÌ´Ù. ÀÌ·¯ÇÑ ±â´ÉµéÀ» À§ÇØ CORBA À̺¥Æ® ¼­ºñ½º´Â °´Ã¼°£ÀÇ »óÈ£ÀÛ¿ëÀ» À§ÇØ µÎ°¡Áö ½ºÅ¸ÀÏÀÇ À̺¥Æ® ¸ðµ¨À» Á¦°øÇÑ´Ù-Push ½ºÅ¸ÀÏ, Pull ½ºÅ¸ÀÏ.

[±×¸² 3-21]Àº CORBA À̺¥Æ® ¼­ºñ½º ¸ðµ¨ÀÌ´Ù. ÀÌ ¸ðµ¨À» º¸¸é Å©°Ô À̺¥Æ®¸¦ Á¦°øÇÏ´Â °ø±ÞÀÚ ÀÀ¿ë °´Ã¼¿Í À̸¦ ¼ÒºñÇÏ´Â ¼ÒºñÀÚ ÀÀ¿ë °´Ã¼°¡ Á¸ÀçÇÑ´Ù. ÀÌµé »çÀÌ¿¡´Â À̺¥Æ®¸¦ Àü´ÞÇØ Áִ ä³ÎÀÎ À̺¥Æ® ä³Î °´Ã¼°¡ Á¸ÀçÇÑ´Ù. À̺¥Æ® ä³Î °´Ã¼´Â À̺¥Æ® ÆÑÅ丮 ÀÎÅÍÆäÀ̽º¸¦ ÅëÇØ »ý¼ºµÈ´Ù. ¼ÒºñÀÚ´Â °ø±ÞÀÚ°¡ »ý¼ºÇÑ À̺¥Æ® ä³ÎÀ» ÅëÇØ À̺¥Æ®¸¦ Àü´Þ¹Þ´Â´Ù. ÀÌ °úÁ¤¿¡¼­ Push ¸ðµ¨Àº À̺¥Æ® °ø±ÞÀÚ°¡ ÁÖµµÀûÀ¸·Î ¼ÒºñÀÚ¿¡°Ô À̺¥Æ®¸¦ Àü´ÞÇÏ´Â ¹æ½ÄÀ̰í Pull ¸ðµ¨Àº ¼ÒºñÀÚ°¡ ÁÖµµÀûÀ¸·Î °ø±ÞÀÚÀÇ À̺¥Æ®¸¦ ÀÌ¿ëÇÏ´Â ¹æ½ÄÀÌ´Ù.


[±×¸²3-21] À̺¥Æ® ¼­ºñ½º ¸ðµ¨

»ç¿ëÀÚµéÀº CORBA°´Ã¼¸¦ ÀÌ¿ëÇÒ ¶§ ¹®ÀÚ¿­ ÇüÅÂÀÇ °´Ã¼ À̸§À» »ç¿ëÇÑ´Ù. ±×·¯³ª ½ÇÁ¦ CORBA°´Ã¼¸¦ Á¶ÀÛÇϱâ À§Çؼ­´Â »ç¶÷À» À¯ÀÏÇÏ°Ô ½Äº°ÇØÁÖ´Â Áֹεî·Ï¹øÈ£°°ÀÌ °´Ã¼¿¡°Ô À¯ÀÏÇÑ À̸§ÀÎ °´Ã¼ ÂüÁ¶ÀÚ¸¦ ÀÌ¿ëÇØ¾ß¸¸ ÇÑ´Ù. ±×·¯³ª °´Ã¼ ÂüÁ¶ÀÚ´Â ¹®ÀÚ¿­ À̸§Ã³·³ ½±°Ô ÀÌ¿ëÇÒ ¼ö ÀÖ´Â °ÍÀÌ ¾Æ´Ï´Ù. µû¶ó¼­ CORBA´Â »ç¿ëÀÚµéÀÌ ÀÌ¿ëÇÏ´Â ¹®ÀÚ¿­ ÇüÅÂÀÇ °´Ã¼ À̸§À» ½ÇÁ¦ °´Ã¼ÀÇ À̸§ÀÎ °´Ã¼ ÂüÁ¶ÀÚ·Î ¸ÅÇνÃÄÑ ÁÖ´Â ¼­ºñ½º¸¦ Á¦°øÇÑ´Ù. ÀÌ·¯ÇÑ ¼­ºñ½º°¡ ¸í¸í ¼­ºñ½ºÀÌ´Ù. ¸í¸í ¼­ºñ½º´Â [±×¸²3-22]ó·³ µð·ºÅ丮 ±¸Á¶ÀÇ ¸í¸í ±ÔÄ¢À» Áö¿øÇÑ´Ù. ÀÌ ±×¸²À» º¸¸é Àß Â¥¿©Áø µð·ºÅ丮 ±¸Á¶¸¦ º¼ ¼ö ÀÖ´Ù. °¡Àå ÇÏÀ§ ·¹º§ÀÇ a2´Â sys¿Í bin À̶ó´Â ¸í¸í ÄÁÅØ½º (Naming Context)¾Æ·¡ À§Ä¡ÇÑ´Ù. À̸¦ sys::bin::a2¶ó´Â ¹æ½ÄÀ¸·Î ±¸º°ÇÑ´Ù. ¸í¸í ÄÁÅØ½º´Â À̸§µéÀÇ ¹üÀ§¸¦ Á¤ÀÇÇÑ´Ù.

¸í¸í ¼­ºñ½º¿¡¼­ Á¦°øÇÏ´Â ÁÖ¿ä ¸Þ¼Òµå´Â ´ÙÀ½°ú °°´Ù.


[ ±×¸²3-22 ] µð·ºÅ丮 ±¸Á¶ÀÇ ¸í¸í ¼­ºñ½º

ÆÄÀÏÀ̳ª µ¥ÀÌŸº£À̽º¿¡ ÀڷḦ ÀúÀåÇÏÁö ¾Ê´Â ÇÑ ÇÁ·Î±×·¥Áß¿¡ »ý¼ºµÈ ¸ðµç °´Ã¼´Â ÇÁ·Î±×·¥ÀÇ Á¾·á¿Í ´õºÒ¾î Á¤º¸¸¦ ÀÒ¾î¹ö¸®°í ¸¶´Â ÀϽüº °´Ã¼ÀÌ´Ù. µû¶ó¼­ Áö¼ÓÀûÀ¸·Î Á¤º¸¸¦ ÀúÀåÇÏ°í ½ÍÀº °æ¿ì ÀϽüº °´Ã¼¿Í ´Þ¸® ¿øÇÏ´Â Á¤º¸¸¦ Áö¼ÓÀûÀ¸·Î ÀúÀåÇØÁÖ´Â °´Ã¼¸¦ »ý¼ºÇØ¾ß ÇÑ´Ù. ÀÌ·¯ÇÑ °´Ã¼¸¦ Áö¼Ó¼º °´Ã¼¶ó Çϸç CORBA Áö¼Ó¼º ¼­ºñ½º´Â ÀÌ·¯ÇÑ Áö¼Ó¼º °´Ã¼¸¦ »ý¼ºÇØ ÁØ´Ù.

[±×¸² 3-33]Àº Áö¼Ó¼º ¼­ºñ½º ¸ðµ¨ÀÇ ±¸Á¶¸¦ º¸¿© ÁØ´Ù. Ŭ¶óÀÌ¾ðÆ®¿¡°Ô Á¦°øµÇ´Â Áö¼Ó¼º °´Ã¼(PO , Persistent Object)´Â Áö¼Ó¼º ÇÁ·ÎÅäÄÝÀ» ÅëÇØ Áö¼Ó¼º µ¥ÀÌŸ ¼­ºñ½º¸¦ ÀÌ¿ëÇÏ¿© µ¥ÀÌŸ½ºÅä¾î¿¡ Á¤º¸¸¦ ÀúÀåÇÑ´Ù. µ¥ÀÌŸ½ºÅä¾î´Â °´Ã¼ÁöÇâ µ¥ÀÌŸº£À̽º³ª °ü°èÇü µ¥ÀÌŸº£À̽º ¶Ç´Â ÆÄÀÏ ½Ã½ºÅÛÀÌ µÉ ¼ö ÀÖ´Ù. Áö¼Ó¼º µ¥ÀÌŸ ¼­ºñ½º´Â °¢ µ¥ÀÌŸ½ºÅä¾î Ư¼º¿¡ ¸Â°Ô Áö¼Ó¼º °´Ã¼¸¦ Á¶ÀÛÇÏ´Â ±â´ÉÀ» ´ã´çÇÑ´Ù. ¿¹¸¦ µé¾î, µ¥ÀÌŸ ½ºÅä¾î°¡ °´Ã¼ÁöÇâ µ¥ÀÌŸº£À̽ºÀÎ °æ¿ì °´Ã¼ÁöÇâ µ¥ÀÌŸº£À̽º Ç¥ÁØÀÎ ODMG93(Object Database Management System)¸í¼¼¸¦ ÅëÇØ Áö¼Ó¼º °´Ã¼¸¦ Á¶ÀÛÇÏ¸ç °ü°èÇü µ¥ÀÌŸº£À̽ºÀÇ °æ¿ì µ¿Àû µ¥ÀÌŸ °´Ã¼ ÇÁ·ÎÅäÄÝÀ» »ç¿ëÇÏ¿© Á¶ÀÛÇÑ´Ù. ¶ÇÇÑ Á÷Á¢ Á¢±Ù(Direct Access) ÇÁ·ÎÅäÄÝÀ» »ç¿ëÇÏ¿© ÆÄÀÏ ½Ã½ºÅÛ°°Àº µ¥ÀÌŸ½ºÅä¾î¸¦ ÀÌ¿ëÇÒ ¼ö ÀÖ´Ù. ÀÌ·¯ÇÑ Áö¼Ó¼º ÇÁ·ÎÅäÄÝÀº Áö¼Ó¼º µ¥ÀÌŸ °ü¸®ÀÚ¿¡ ÀÇÇØ¼­ °ü¸®µÇ¸ç Ŭ¶óÀÌ¾ðÆ®¿¡°Ô ´ÜÀÏÇÏ°Ô º¸¿©Áö°í Á¦°øµÈ´Ù. CORBA Áö¼Ó¼º ¼­ºñ½º´Â ÀÌ·¯ÇÑ ±â´ÉÀ» Á¦°øÇϱâ À§ÇØ POÀÎÅÍÆäÀ̽º¸¦ Á¦°øÇÑ´Ù.


[ ±×¸²3-33 ] Áö¼Ó¼º ¼­ºñ½º ¸ðµ¨

Âü°í·Î Á÷Á¢ Á¢±Ù ÇÁ·ÎÅäÄÝÀº ¼±¼ÒÇÁÆ®¿¡¼­ Á¦¾ÈÇÑ ÇÁ·ÎÅäÄÝ·Î IDL°°Àº µ¥ÀÌŸ Á¤ÀǾ »ç¿ëÇÏ¿© Áö¼Ó¼º °´Ã¼¿¡ Á÷Á¢ Á¢±ÙÇÏ¿© ÀÌ¿ëÇÒ ¼ö ÀÖ°Ô ÇØ ÁØ´Ù. ÀÌ¿¡ ¹ÝÇØ, µ¿Àû µ¥ÀÌŸ °´Ã¼ ÇÁ·ÎÅäÄÝÀº IBM¿¡¼­ Á¦¾ÈÇÑ ÇÁ·ÎÅäÄÝ·Î IDL¾øÀÌ »ç¿ëÀÚ°¡ µ¿ÀûÀ¸·Î SQL ÁúÀǸ¦ ÀÛ¼ºÇÏ¿© Áö¼Ó¼º °´Ã¼¸¦ ´Ù·ç°Ô ÇØÁØ´Ù. ¸¶Áö¸·À¸·Î ODMG93Àº C++¸¦ »ç¿ëÇÏ¿© µ¥ÀÌŸ °´Ã¼¸¦ Á¶ÀÛÇÏ°Ô ÇØÁÖ´Â ¸í¼¼ÀÌ´Ù.

3.2.2 COSS2

ÀϹÝÀûÀ¸·Î µ¥ÀÌŸ¸¦ À̵¿½Ãų °æ¿ì ½ºÆ®¸²À̶ó´Â ±â¼úÀ» »ç¿ëÇÑ´Ù. ¿¹¸¦ µé¸é À¯´Ð½º³ª µµ½º»ó¿¡¼­ ÆÄÀÌÇÁ¶óÀÎ(|)°°Àº ¸í·É¾î¸¦ »ç¿ëÇÏ¿© µÎ°³ÀÇ ¸í·É¾î¸¦ °áÇÕÇÏ¸é ¾ÕÀÇ ¸í·É¾î¸¦ ¼öÇàÇÑ °á°ú¸¦ µÚÀÇ ¸í·É¾î°¡ ¿¬¼ÓÀûÀ¸·Î ¹Þ¾Æ¼­ ÀÌ¿ëÇÒ ¼ö ÀÖ´Ù. ÀÌ·± °Íó·³ µ¥ÀÌŸ¸¦ ½ºÆ®¸²À̶ó´Â ¿¬¼ÓÈ­µÈ °³³äÀ¸·Î Ãß»óÈ­Çϰí À̰ÍÀ» ³×Æ®¿÷À̳ª ÇÁ·Î¼¼½º¿¡ »ó°ü¾øÀÌ À̵¿½Ãų ¼ö ÀÖ´Ù. ÀÌó·³ °´Ã¼ÀÇ ¿ÜÇüÈ­¶õ ÀÏ·ÃÀÇ °´Ã¼¸¦ ½ºÆ®¸² ÇüÅ·Πó¸®ÇÏ¿© ÆÄÀÏÀ̳ª µ¥ÀÌŸº£À̽ºÃ³·³ ´Ù¸¥ ÇüÅÂÀÇ °´Ã¼·Î ¹Ù²Ù´Â °ÍÀ» °´Ã¼ ¿ÜÇüÈ­ ¼­ºñ½º¶ó°í ÇÑ´Ù.

°´Ã¼ ¿ÜÇüÈ­ ¼­ºñ½º¿¡´Â °´Ã¼¸¦ ¸Þ¸ð¸®³ª µð½ºÅ© ¶Ç´Â ³×Æ®¿÷»óÀÇ ´Ù¸¥ °÷À¸·Î º¯ÇüÇÏ´Â ¿ÜÇüÈ­¿Í ´Ù½Ã °´Ã¼ ÇüÅ·Π¹Ù²Ù´Â ³»ÇüÈ­¸¦ ¸ðµÎ Æ÷ÇÔÇϰí ÀÖ´Ù. °¡·É, ¿©·¯ºÐÀº ¿ÜÇüÈ­¸¦ ÅëÇØ °´Ã¼¸¦ ÀüÀÚ¿ìÆí ÇüÅ·Π¹Ù²Ù¾î »ç¿ëÇÒ ¼ö µµ ÀÖÀ¸¸ç ¼ö½ÅÇÑ ÀüÀÚ¿ìÆíÀ» ³»ÇüÈ­ÇÏ¿© ´Ù½Ã °´Ã¼·Î º¯°æÇÒ ¼ö ÀÖ´Ù.

°´Ã¼ ¿ÜÇüÈ­ ¼­ºñ½º¸¦ Áö¿øÇϱâ À§ÇØ CORBA´Â ¿©·¯ ÇüÅÂÀÇ ½ºÆ®¸² ÀÎÅÍÆäÀ̽º¸¦ Á¤ÀÇÇϰí ÀÖ´Ù. ÇâÈÄ °´Ã¼ ¿ÜÇüÈ­ ¼­ºñ½º´Â µ¥ÀÌŸ°£ÀÇ ±³È¯ ±â´ÉÀ» Á¦°øÇÒ ¿¹Á¤ÀÌ´Ù.

Çö½Ç ¼¼°èÀÇ ¸ðµç »ç¶÷µéÀÌ ºÎ¸ð³ª ÇüÁ¦, Ä£±¸Ã³·³ ´Ù¸¥ »ç¶÷µé°ú ÀÏÁ¤ÇÑ °ü°è¸¦ °®´Â °Íó·³ °´Ã¼µé°£¿¡µµ ÀÏÁ¤ÇÑ °ü°è°¡ ¹ß»ýÇÑ´Ù. ¿¹¸¦ µé¸é, 1¸·¿¡¼­ »ìÆìº» °Íó·³ ºÎ¸ð Ŭ·¡½º¿Í ÀÚ½Ä Å¬·¡½º´Â ºÎÀÚÁö°£À̶ó´Â °ü°è¸¦ °®À¸¸ç C++¿¡¼­´Â »ó¼ÓÀ̶ó´Â ±â´ÉÀ» ÀÌ¿ëÇÏ¿© Ç¥ÇöÇÏ¿´´Ù. ÀÌó·³ °´Ã¼µé »çÀÌ¿¡¼­ ¹ß»ýÇÏ´Â ´Ù¾çÇÑ °ü°èµéÀ» Á¤ÀÇÇÏ°Ô ÇØÁÖ´Â ¼­ºñ½º°¡ °´Ã¼ °ü°è ¼­ºñ½ºÀÌ´Ù.

[±×¸² 3-34]´Â °´Ã¼µé °£ÀÇ °ü°è¸¦ Àß Ç¥ÇöÇØ ÁÖ°í ÀÖ´Ù. ¾Æ·¡ ±×¸²¿¡¼­ jhparkÀ̶ó´Â °´Ã¼´Â ¼ÒÀ¯ÀÚ¶ó´Â ¿ªÇÒÀ» ºÎ¿©¹ÞÀ¸¸ç ¿¤¶õÆ®¶ó °´Ã¼´Â ¼ÒÀ¯´çÇÏ´Â ¹°°ÇÀ̶ó´Â ¿ªÇÒÀ» °®´Â´Ù. ÀÌµé »çÀÌ¿¡´Â ¼ÒÀ¯¶ó´Â °ü°è°¡ ¹ß»ýÇÑ´Ù. ÀÌ·¯ÇÑ °ü°è´Â [±×¸² 3-34]¿Í °°Àº ±×¸²À¸·Î Ç¥ÇöµÇ¸ç ±×·¡ÇÁ ±¸Á¶¸¦ °®°Ô µÈ´Ù. ½ÇÁ¦ °´Ã¼µé »çÀÌÀÇ °ü°è¸¦ ¸ðµ¨¸µÇÏ´Â ºÐ¾ß´Â °´Ã¼ÁöÇ⠺м®°ú µðÀÚÀÎÀÌ´Ù. ¸¸¾à, ¿©·¯ºÐµéÀÌ ÀÌ ºÐ¾ß¿¡ °ü½ÉÀÌ ÀÖ´Ù¸é ±×·¡µð ºÎÄ¡ÀÇ "°´Ã¼ÁöÇ⠺м®°ú µðÀÚÀÎ"ó·³ ÇØ´ç ºÐ¾ß¿¡ ´ëÇÑ Àü¹®¼­¸¦ ÂüÁ¶Çϱ⠹ٶõ´Ù.


[ ±×¸² 3-34 ] °´Ã¼ °ü°è ¼­ºñ½º

°´Ã¼ °ü°è ¼­ºñ½º´Â µÑ ¶Ç´Â ±× ÀÌ»óÀÇ °´Ã¼µé »çÀÌÀÇ ¿¬°ü¼ºÀ» Ç¥ÇöÇϰí ÀÌµé ¿¬°ü¼ºÀ» Ç¥Áعæ¹ýÀ» ÅëÇØ ´Ù¸¥ ÀÀ¿ë ÇÁ·Î±×·¥¿¡ ÀÇÇØ¼­ Á¢±ÙÇϰí À¯ÁöÇÒ ¼ö ÀÖ°Ô ÇØÁØ´Ù. À̸¦ ÅëÇØ CORBA ÀÀ¿ë ½Ã½ºÅÛÀº °´Ã¼µé °£ÀÇ °ü°è¸¦ ´Ù¾çÇÏ°Ô Á¶ÀÛÇÒ ¼ö ÀÖ´Ù.

Æ®·»Á§¼ÇÀº ´õ ÀÌ»ó ³ª´©¾î ÁöÁö ¾Ê´Â ÇϳªÀÇ ÀÛ¾÷ ´ÜÀ§ÀÌ´Ù. °¡·É, ƯÁ¤ °ªÀ» Àаųª °»½ÅÇÏ´Â °Í µîÀº ÇϳªÀÇ ÀÛ¾÷ ´ÜÀ§ÀÌ´Ù. ÀÌ·¯ÇÑ Æ®·»Á§¼ÇÀº ACID¶ó´Â ´ÙÀ½ÀÇ Æ¯¼ºÀ» ¸¸Á·ÇØ¾ß ÇÑ´Ù.

Æ®·»Á§¼Ç¿¡ ÀÇÇÑ ¸ðµç º¯È­´Â ¿ÏÀüÈ÷ ¼öÇàµÇ°Å³ª(commit)³ª ¿ÏÀüÈ÷ ÀÌÀü »óÅ·ΠµÇµ¹¾Æ°£´Ù(commit).

Æ®·»Á§¼Ç¿¡ ÀÇÇØ º¯È­µÈ ºÎºÐÀº º¯ÇÏÁö ¾Ê´Â´Ù.

ÇÑ Æ®·»Á§¼Ç¿¡ ÀÇÇÑ º¯È­´Â ´Ù¸¥ Æ®·»Á§¼Ç¿¡ ÀÇÇØ¼­ ¿µÇâÀ» ¹ÞÁö ¾Ê´Â´Ù.

Á¤»óÀûÀ¸·Î ¼öÇàµÈ Æ®·»Á§¼Ç¿¡ ÀÇÇÑ º¯È­´Â º¯ÇÏÁö ¾Ê´Â´Ù.

ÀÌ·¯ÇÑ Æ®·»Á§¼ÇÀº °ÅÀÇ ¸ðµç ÀÀ¿ë ½Ã½ºÅÛ¿¡¼­ ÇʼöÀûÀ¸·Î »ç¿ëµÇ´Â ±â´ÉÀÌ´Ù. À̸¦ Áö¿øÇϱâ À§ÇØ CORBA´Â °´Ã¼ Æ®·»Á§¼Ç ¼­ºñ½º(OTS)¶ó´Â ¸í¼¼¸¦ Áö¿øÇÑ´Ù. OTS´Â CORBAÀÀ¿ë ½Ã½ºÅÛ °³¹ß¿¡ ÀÖ¾î °¡Àå ÇʼöÀûÀÎ ±â´É Áß ÇϳªÀÌ´Ù.

OTS°¡ Á¦°øÇÏ´Â ±â´ÉµéÀº ´ÙÀ½°ú °°´Ù.

°¡Àå ±âº»ÀûÀÎ Æ®·»Á§¼Ç ¸ðµ¨Àº Æ®·»Á§¼ÇÀÇ ½ÃÀÛ(begin_transaction)°ú Á¤»óÀûÀÎ Á¾·á³ª(commit_transaction) , ºñ Á¤»óÀûÀÎ Á¾·á(abort_transaction)·Î ³¡³­´Ù. ÀÌ·¯ÇÑ Æ®·»Á§¼ÇÀ» Ç÷§ Æ®·»Á§¼ÇÀ̶ó°í ÇÑ´Ù.

Ç÷¿ Æ®·»Á§¼Ç : begin_transaction

~ // ½ÇÁ¦ ¼öÇà ÀÛ¾÷

commit_transaction // Á¤»óÀûÀÎ Á¾·á

begin_transaction

~ // ½ÇÁ¦ ¼öÇà ÀÛ¾÷

abort_transaction // ºñÁ¤»óÀûÀÎ Á¾·á

Ç÷§ Æ®·»Á§¼Ç¿Ü¿¡ °£È¤ ÇÑ Æ®·»Á§¼Ç³»¿¡ ´Ù¸¥ Æ®·»Á§¼ÇÀ» ÁßÃ¸ÇØ¼­ »ç¿ëÇÒ °æ¿ì°¡ ÀÖ´Ù. ÀÌ °æ¿ìÀÇ Æ®·»Á§¼ÇÀ» ÁßøµÈ Æ®·»Á§¼ÇÀ̶ó°í ÇÑ´Ù.

ÁßøµÈ Æ®·»Á§¼Ç : begin_transaction begin_transaction

~ // ½ÇÁ¦ ¼öÇà ÀÛ¾÷

commit_transaction commit_transaction // Á¤»óÀûÀÎ Á¾·á

begin_transaction begin_transaction

~ // ½ÇÁ¦ ¼öÇà ÀÛ¾÷

commit_transaction abort_transaction // ºñÁ¤»óÀûÀÎ Á¾·á

OTS´Â Ç÷§ Æ®·»Á§¼Ç°ú ÁßøµÈ Æ®·»Á§¼Ç ¸ðµÎ¸¦ Áö¿øÇÑ´Ù.

OTS´Â ¾Æ·¡ ±×¸²°ú °°Àº ¼­ºñ½º ¸ðµ¨À» °®´Â´Ù. ÀÌ ¸ðµ¨ÀÇ ÁÖ¿ä ±¸¼º ¿ä¼Ò´Â ´ÙÀ½°ú °°´Ù.

Æ®·»Á§¼Ç Ŭ¶óÀÌ¾ðÆ®´Â begin°ú end·Î ¸¶Å©µÇ´Â ºí·°³»¿¡¼­ ÀÏ·ÃÀÇ ¸Þ¼Òµå¸¦ È£ÃâÇϴ Ŭ¶óÀÌ¾ðÆ® °´Ã¼ÀÌ´Ù. ÀÏ´Ü Æ®·»Á§¼Ç Ŭ¶óÀÌ¾ðÆ® °´Ã¼¿¡ ÀÇÇÑ È£ÃâÀº ORB¸¦ °ÅÃÄ Æ®·»Á§¼Ç ¼­ºñ½º¿¡°Ô·Î Àü´ÞµÈ´Ù. ¿©±â¼­ Æ®·»Á§¼Ç ¼­ºñ½º´Â Æ®·»Á§¼Ç ÄÁÅÙÆ®¶ó´Â ¾²·¹µå¸¦ »ý¼ºÇÏ¿© Æ®·»Á§¼Ç Ŭ¶óÀÌ¾ðÆ®¿¡°Ô ÇÒ´çÇÑ´Ù. ¾²·¹µå¸¦ ÇÒ´ç¹ÞÀº Æ®·»Á§¼Ç Ŭ¶óÀÌ¾ðÆ®´Â ¿øÇÏ´Â Æ®·»Á§¼Ç ¸Þ¼Òµå¸¦ È£ÃâÇÑ´Ù. ÀÌ È£ÃâÀº ÇØ´ç Æ®·»Á§¼Ç¿¡ Âü¿©ÇÑ ´Ù¸¥ ¸ðµç °´Ã¼µé¿¡°Ôµµ Àü´ÞµÈ´Ù. Æ®·»Á§¼Ç Ŭ¶óÀÌ¾ðÆ®´Â ¸Þ¼Òµå È£ÃâÀ» ¸¶Ä£ ÈÄ commitÀ̳ª rollbackÀ» È£ÃâÇÏ¿© ÇØ´ç Æ®·»Á§¼ÇÀ» Á¾·áÇÑ´Ù.

Æ®·»Á§¼Ç ¼­¹ö´Â Æ®·»Á§¼Ç¿¡ ¿µÇâÀ» ¹ÌÄ¡´Â °´Ã¼µéÀÇ ÁýÇÕÀÌ´Ù. ±×·¯³ª ÀÌ µé °´Ã¼´Â ³»ºÎ¿¡ µ¥ÀÌŸ¸¦ °®°í ÀÖ°Ô ¾Ê´Ù. µû¶ó¼­ Æ®·»Á§¼Ç¿¡ ¿µÇâÀ» ¹ÌÄ¥ »ÓÀÌÁö ½Ã½ºÅÛ ºØ±«Ã³·³ À¯»ç½Ã ¹ß»ýÇÏ´Â ¹®Á¦·Î ÀÎÇØ ÇØ´ç °ªÀ» ÀÌÀü °ªÀ¸·Î ȸº¹ÇÒ Çʿ䰡 ¾ø´Ù. µû¶ó¼­ Æ®·»Á§¼Ç ¼­¹ö´Â Æ®·»Á§¼ÇÀÇ ¼öÇà¿¡ °ü¿©ÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó ORB¸¦ ÅëÇØ ȸº¹°¡´ÉÇÑ ¼­¹ö¸¦ È£ÃâÇÏ´Â ¿ªÇÒÀ» ¼öÇàÇÑ´Ù. ´Ü, Æ®·»Á§¼ÇÀ» ½ÃÀÛ ÀÌÀü´Ü°è·Î µÇµ¹¸®´Â ·Ñ¹é(roll-back) ÀÛ¾÷Àº ¼öÇàÇÒ ¼ö ÀÖ´Ù.

ȸº¹°¡´ÉÇÑ ¼­¹ö´Â Æ®·»Á§¼ÇÀÇ ¼º°øÀûÀÎ ¼öÇà(commit)À̳ª ÀÌÀüÀ¸·Î º¹±Í(roll-back)¿¡ ÀÇÇØ¼­ ¿µÇâÀ» ¹Þ´Â µ¥ÀÌŸ¸¦ °®´Â °´Ã¼µéÀÇ ÁýÇÕÀÌ´Ù. µ¥ÀÌŸº£À̽º³ª Æ®·»Á§¼Ç ÆÄÀϵéÀº ´ëÇ¥ÀûÀΠȸº¹°¡´ÉÇÑ ¼­¹öÀÌ´Ù.

[ ±×¸² 3-35 ] °´Ã¼ Æ®·»Á§¼Ç ¼­ºñ½º ¸ðµ¨

µµ¼­°ü¿¡ ÀÖ´Â Á¤º¸µéÀº ÇÑ ¸íÀÌ µ¶Á¡ÇÒ ¼ö ÀÖ´Â °ÍÀÌ ¾Æ´Ï¶ó ¿©·¯ »ç¶÷¿¡ ÀÇÇØ¼­ °øÀ¯µÇ´Â °ÍÀÌ´Ù. ¸¸¾à, ÇÑ ¸íÀÌ ÀÌ Á¤º¸¸¦ µ¶Á¡ÇÑ´Ù¸é ´Ù¸¥ »ç¶÷µéÀº À̸¦ ÀÌ¿ëÇÒ ¼ö ¾ø´Ù. ¶ÇÇÑ ´Ù¸¥ »ç¶÷ÀÌ ÀÌ¿ëÇÏ´Â Áß°£¿¡ ÇØ´ç Á¤º¸¿¡ º¯°æÀ» °¡ÇÑ´Ù¸é ±â´ëÄ¡ ¾ÊÀº ºÎÁ¤È®ÇÑ Á¤º¸¸¦ ¾òÀ» ¼ö ÀÖ´Ù. ¸¶Âù°¡Áö·Î CORBA ÀÀ¿ë ½Ã½ºÅÛ¿¡¼­ Çϳª ¶Ç´Â ±× ÀÌ»óÀÇ °´Ã¼µéÀÌ µ¿½Ã¿¡ ƯÁ¤ ÀÚ¿øÀ» ÀÌ¿ëÇÒ Çʿ䰡 ÀÖÀ» °æ¿ì, ÇÑ °´Ã¼¿¡ ÀÇÇØ¼­ µ¶Á¡µÇÁö ¾Êµµ·Ï À̸¦ Á¦¾îÇØ¾ß ÇÑ´Ù. ¶ÇÇÑ ´Ù¸¥ °´Ã¼µéÀÌ ÀÚ¿øÀ» ÀÌ¿ëÇϰí ÀÖÀ» ¶§ ÀÌ °´Ã¼¿¡ º¯°æÀ» °¡ÇÏÁö ¸øÇϵµ·Ï ÇØ¾ß ÇÑ´Ù. ÀÌ·¯ÇÑ ±â´ÉÀÌ µ¿½Ã¼º Á¦¾î ¼­ºñ½ºÀÌ´Ù. ÀϹÝÀûÀ¸·Î µ¿½Ã¼º Á¦¾î ¼­ºñ½º´Â ¾Õ¼­ ¼³¸íÇÑ Æ®·»Á§¼Ç ¼­ºñ½º¿Í ¸Â¹°·Á ¾ð±ÞµÇ°Å³ª »ç¿ëµÇ¾î Áø´Ù.

µ¿½Ã¼º Á¦¾î ¼­ºñ½º API´Â µ¿½Ã¿¡ ¿©·¯ °´Ã¼µéÀÌ Æ¯Á¤ ÀÚ¿ø¿¡ Á¢±ÙÇÒ ¶§ ¶ô(Lock)À» ÅëÇØ ¿øÀÚ¼ºÀ» º¸ÀåÇØÁØ´Ù. ¿©±â¼­ ¶ôÀ̶õ ±Ý°íÀÇ ¿­¼è¸¦ ä¿ì´Â °Íó·³ ´Ù¸¥ °´Ã¼°¡ ÇØ´ç ÀÚ¿ø¿¡ Á¢±ÙÇÏÁö ¸øÇϵµ·Ï ÇÏ´Â ±â´ÉÀ» ¸»ÇÑ´Ù. À̸¦ ÀÌ¿ëÇØ ÇØ´ç ÀÚ¿øÀÇ ¾ÈÁ¤¼º°ú µ¶Á¡À» Á¦¾îÇÒ ¼ö ÀÖ´Ù.

µ¿½Ã¼º Á¦¾î ¼­ºñ½º¿¡¼­ Á¦°øÇÏ´Â ¶ô ¸ðµå´Â ´ÙÀ½°ú °°´Ù:

read, write, intension read, intension write, upgrade

ÀÌµé ¶ô¸ðµå´Â ÇÑ °´Ã¼¿¡ ¼³Á¤µÇ´Â ¶ôÁýÇÕ(lockset)À» ÅëÇØ¼­ »ç¿ëµÈ´Ù. ¶ôÁýÇÕÀº ƯÁ¤ ÀÚ¿ø¿¡ ¿¬°üµÇ¾î ÀÖ´Â ¶ôµéÀÇ ÁýÇÕ´Ï´Ù. ¿©±â¼­ ÀÚ¿øÀ̶õ º¯È­µÇ´Â µ¥ÀÌŸ¸¦ °®´Â °´Ã¼¸¦ ÀǹÌÇÑ´Ù. ¸¸ÀÏ, ƯÁ¤ °´Ã¼°¡ Æ®·»Á§¼ÇÀÇ ¿µÇâÀ» ¹Þ°í À̸¦ º¸È£Çϱâ À§ÇØ ¶ôÀ» »ç¿ëÇÑ´Ù¸é ¸ÕÀú ÇØ´ç °´Ã¼ÀÇ ¶ôÁýÇÕÀ» »ý¼ºÇØ¾ß ÇÑ´Ù. ¿Ö³ÄÇÏ¸é ¸ðµç ¶ôµéÀº ¶ôÁýÇÕÀ» ÅëÇØ ¾ò¾îÁö±â ¶§¹®ÀÌ´Ù. CORBA µ¿½Ã¼º Á¦¾î ¼­ºñ½º´Â ÀÌ·¯ÇÑ ¶ôÁýÇÕÀ» Á¦¾îÇϱâ À§ÇØ ¶ôÁ¶Á¤ÀÚ(lock coordinator)¸¦ Á¦°øÇÑ´Ù. ¶ôÁ¶Á¤ÀÚ´Â commitÀ̳ª rollbackÀ» ÅëÇØ Æ®·»Á§¼ÇÀÌ ¿Ï¼öµÇ¸é ÇØ´ç ¶ôµéÀ» Ç®¾îÁÖ´Â ¿ªÇÒÀ» ¼öÇàÇÑ´Ù. À̸¦ À§ÇØ µ¿½Ã¼º Á¦¾î ¼­ºñ½º´Â ´ÙÀ½ÀÇ ÀÎÅÍÆäÀ̽º¸¦ Á¦°øÇÑ´Ù - LockSetFactory , LockSet , TransactionalLockSet, , lockCoordinator .

3.2.3 COSS3

³×Æ®¿÷À» ±â¹ÝÀ¸·Î ÇÑ ºÐ»ê ȯ°æÇÏ¿¡¼­ ¿î¿µµÇ´Â ½Ã½ºÅÛµéÀÇ °ñÄ¡°Å¸® Áß Çϳª´Â º¸¾È ¹®Á¦ÀÌ´Ù. ¿ÜºÎ·Î ºÎÅÍÀÇ ºÒ¹ýÀûÀΠħÀÔÀº Àüü ½Ã½ºÅÛÀÇ ¿î¿µ°ú ¹«°á¼º¿¡ Ä¡¸íÀûÀÎ ¹®Á¦¸¦ ÀÏÀ¸Å²´Ù. ƯÈ÷, ºÐ»ê °´Ã¼ ½Ã½ºÅÛÀº ±âÁ¸ÀÇ ´Ù¸¥ ºÐ»ê ½Ã½ºÅÛ°ú ´Þ¸® ±¸¼º Ãø¸é¿¡¼­ µ¿ÀûÀ¸·Î ±Ô¸ð Á¶Á¤°¡´ÉÇϸç Ŭ¶óÀ̾ðÆ®ÀÎ µ¿½Ã¿¡ ¼­¹ö ¿ªÇÒÀ» ¼öÇàÇϱ⠶§¹®¿¡ º¸¾È»óÀÇ ¸¹Àº °í·Á»çÇ×ÀÌ Á¸ÀçÇÑ´Ù.

ÀÌ·¯ÇÑ º¸¾È»óÀÇ ¹®Á¦¸¦ ÇØ°áÇϰíÀÚ Á¦¾ÈµÈ ¼­ºñ½º°¡ °´Ã¼º¸¾È ¼­ºñ½ºÀÌ´Ù. °´Ã¼ º¸¾È ¼­ºñ½º´Â OMA ¾ÆÅ°ÅØÃÄ¿¡ Àüü¿¡ °ÉÃÄ Àû¿ëµÇ¸ç ¹«°á¼º°ú ½Å·Ú¼º µî ´Ù¸¥ ±â´Éµé°ú ¹ÐÁ¢ÇÏ°Ô ¿¬°üµÇ¾î ÀÖ´Ù. ÇöÀç °´Ã¼ º¸¾È ¼­ºñ½º´Â ORB¿¡ ±â¹ÝÇÑ º¸¾È ¸ÞÄ¿´ÏÁòÀ» Á¦°øÇÑ´Ù. ´Ù½Ã ¸»ÇØ , º°µµÀÇ º¸¾È ¸ðµâ¾øÀÌ ORB ÀÚü¿¡¼­ º¸¾È ±â´ÉÀ» ´ã´çÇÏ´Â °ÍÀÌ´Ù. ÀÌ·¯ÇÑ ¹æ¹ýÀº º¸¾È ¸ÞÄ¿´ÏÁòÀ¸·Î ÀÎÇØ ¹ß»ýÇÏ´Â ¼º´É ÀúÇÏ ¹®Á¦¸¦ ÃÖ¼ÒÈ­ ½Ãų ¼ö ÀÖ´Ù.

´ÙÀ½Àº °´Ã¼ º¸¾È ¼­ºñ½º¿¡¼­ Á¦°øÇÏ´Â ORB±â¹ÝÀÇ º¸¾È ¸ðµ¨ÀÌ´Ù. ÀÌ ¸ðµ¨Àº C2 Â÷¿øÀÇ º¸¾È ±â´ÉÀ» Á¦°øÇÑ´Ù. C2´Â ¹ÌÁ¤ºÎ°¡ Á¦Á¤ÇÑ º¸¾È Ç¥ÁØ µî±ÞÀ¸·Î ¿î¿µÃ¼Á¦µî¿¡ Á¢±ÙÇϱâ À§ÇØ »ç¿ëÀÚID¿Í ¾ÏÈ£ µîÀÇ ÀÎÁõ(Authentication) ÀýÂ÷¸¦ °ÅÄ¡µµ·Ï ÇÑ °ÍÀ» ¸»ÇÑ´Ù. ÀϹÝÀûÀ¸·Î ¿î¿µÃ¼Á¦ÀÇ °æ¿ì, ÆÐ½º¿öµå¸¦ ±â¹ÝÀ¸·Î ÇÑ ÀÎÁõ ¸ÞÄ¿´ÏÁòÀ» »ç¿ëÇÑ´Ù. ±×·¯³ª ÆÐ½º¿öµå Áß½ÉÀÇ ÀÎÁõ ¸ÞÄ¿´ÏÁòÀº ÇØÄ¿°°Àº ¿ÜºÎÀÇ °ø°ÝÀÚ·Î ºÎÅÍ ½±°Ô °ø·«µÈ´Ù. ÀÌ·¯ÇÑ ¹®Á¦¸¦ ¹Ì¿¬¿¡ ¹æÁöÇϰíÀÚ CORBA º¸¾È ¼­ºñ½º´Â Ä¿¹ö·Î½º°°Àº Á¦3ÀÇ ÀÎÁõ ¼­¹ö¿¡ ÀÇÇÑ ÀÎÁõ ¸ÞÄ¿´ÏÁòÀ» Á¦°øÇÑ´Ù. ´ÙÀ½ ±×¸²Àº °´Ã¼ º¸¾È ¼­ºñ½º ¸ðµ¨ÀÌ´Ù. ÀÌ ¸ðµ¨ÀÇ Æ¯Â¡Àº ¸ðµç º¸¾È ¸ÞÄ¿´ÏÁòÀÌ ORB³»ºÎ¿¡ À§Ä¡ÇÑ´Ù´Â °ÍÀÌ´Ù. ¶ÇÇÑ CORBA ¼­ºñ½º¸¦ ÀÌ¿ëÇϴ Ŭ¶óÀÌ¾ðÆ® °´Ã¼´Â ORB³»ºÎ¿¡¼­ Á¦°øÇÏ´Â ÀÎÁõ ¼­¹ö¸¦ ÅëÇØ À¯ÀÏÇÑ ÀÎÁõID¸¦ Á¦°ø¹Þ°í À̸¦ ÅëÇØ ¾ÈÀüÇÏ°Ô ¼­ºñ½º¸¦ ÀÌ¿ëÇÒ ¼ö ÀÖ´Ù´Â °ÍÀÌ´Ù. ÀÎÁõID´Â ¿ÀÁ÷ ORB³»ºÎ¿¡ ÀÖ´Â ÀÎÁõ ¼­¹ö¸¦ ÅëÇØ¼­¸¸ °ü¸®µÇ°í º¯°æµÈ´Ù. Ŭ¶óÀÌ¾ðÆ®´Â ÀÎÁõID¸¦ ¹ÞÀº ÈÄ ¿øÇÏ´Â ±¸Çö °´Ã¼¿Í Åë½ÅÇϱâ À§ÇÑ º¸¾È ÅäÅ«À» Àü´Þ¹Þ´Â´Ù. ÀÌ ÅäÅ«À» °®°í ±¸Çö °´Ã¼¿Í Åë½ÅÀ» ÇÏ¸ç ¼­ºñ½º¸¦ ÀÌ¿ëÇÒ ¼ö ÀÖ´Ù.

[ ±×¸² 3-36 ] °´Ã¼ º¸¾È ¼­ºñ½º ¸ðµ¨

Ŭ¶óÀÌ¾ðÆ® °´Ã¼°¡ ºÎ¿©¹ÞÀº ÀÎÁõID´Â ORB¸¦ ÅëÇØ ±¸Çö °´Ã¼¿¡°Ô ÀÚµ¿ÀûÀ¸·Î ¾Ë·ÁÁø´Ù. ±¸Çö °´Ã¼´Â ÇØ´ç ÀÚ¿ø¿¡ ´ëÇÑ Å¬¶óÀ̾ðÆ®ÀÇ Á¢±Ù ½É»ç¸¦ ¼öÇàÇÑ´Ù. ÀÌ °úÁ¤À» Àΰ¡(Authorization)°úÁ¤À̶ó ÇÑ´Ù. ÀÌ Àΰ¡ °úÁ¤Àº Á¢±Ù Á¶Á¤ ¸ñ·Ï(ACL,Access Control List)À» ÂüÁ¶ÇÏ¿© ÀÌ·ç¾î Áø´Ù. ACLÀ» ÅëÇØ Ŭ¶óÀ̾ðÆ®ÀÇ Á¢±Ù ÀÚ°ÝÀÌ ÀûÇÕÇÏ¸é ±¸Çö °´Ã¼´Â ¼­ºñ½º¸¦ Á¦°øÇÑ´Ù. ÀÌ·¯ÇÑ ÀÎÁõ ¹× Àΰ¡ °úÁ¤ ¿Ü¿¡ °´Ã¼ º¸¾È ¼­ºñ½º´Â ORB»óÀÇ À̺¥Æ®¸¦ °ü¸®ÇÏ°í ¸ð´ÏÅ͸µÇϱâ À§ÇØ °¨»ç(Audit) ±â´ÉÀ» Á¦°øÇÑ´Ù.

¹Ì±¹°°ÀÌ ¾ÆÁÖ ³ÐÀº ³ª¶ó¿¡¼­´Â ÁÖ¸¶´Ù ½Ã°£ÀÇ Â÷À̰¡ ¹ß»ýÇÑ´Ù. µû¶ó¼­ °¢ Áö¿ª¿¡ ÇØ´çÇÏ´Â ½Ã°£ Â÷À̸¦ ÀÎÁöÇÏÁö ¸øÇÑ´Ù¸é ¾à¼ÓÀ̳ª ½Ã°£º° °èȹÀº ¹«»êµÇ°í ¸» °ÍÀÌ´Ù. ¸¶Âù°¡Áö·Î ½Ã°£Àº ÇÁ·Î±×·¥¸¶´Ù ´Ù¸£°Ô Ç¥ÇöµÇ°í ÄÄÇ»Å͸¶´Ù ´Ù¸£´Ù. ¿¹¸¦ µé¾î, X/Open DCEÀÇ ½Ã°£ ¼­ºñ½º´Â Àý´ë½Ã°£À» 3ÀÚ¸®ÀÇ ÀÌÁø¼ö·Î Ç¥ÇöÇÑ´Ù.

°á±¹, ORB¸¦ ±â¹ÝÀ¸·Î ÇÑ ºÐ»ê ȯ°æÇÏ¿¡¼­ ƯÁ¤ ½Ã°£ ¼ø¼­¿¡ µû¸¥ À̺¥Æ®¸¦ ó¸®Çϱâ À§Çؼ­´Â ÀÌµé ½Ã°£À» µ¿±âÈ­½ÃŰ´Â ¼­ºñ½º°¡ ÇÊ¿äÇÏ´Ù. ¹Ù·Î ÀÌ ¼­ºñ½º°¡ ½Ã°£ ¼­ºñ½ºÀÌ´Ù. CORBA ½Ã°£ ¼­ºñ½º´Â DCE ½Ã°£ ¼­ºñ½º°¡ »ç¿ëÇÏ´Â °Í°ú µ¿ÀÏÇÑ ½Ã°£ Ç¥Çö ¹æ¹ýÀÎ UTC(Universal Time Coordinated)¸¦ »ç¿ëÇÑ´Ù. UTC´Â Ç×»ó ±×¸®´ÏÄ¡ ½Ã°£ Áö¿ªÀ» ÂüÁ¶ÇÑ´Ù.

3.2.4 COSS4

ÀüÈ­·á³ª TV½Ãû·á¸¦ ³»´Â °Íó·³ ƯÁ¤ ¼­ºñ½º¸¦ ÀÌ¿ëÇϰí ÀÌ¿ë·á¸¦ ³»´Â °ÍÀº ´ç¿¬ÇÑ ÀÌÄ¡ÀÌ´Ù. ¼­ºñ½º Á¦°ø¾÷ÀÚ°¡ Á¦°øÇÑ ¼­ºñ½º¿¡ ºÎÀÀÇÏ´Â ´ë°¡¸¦ ¹ÞÁö ¸øÇÑ´Ù¸é ¾î¶»°Ô µÉ±î? ¸¶Âù°¡Áö·Î ÀÎÅͳݰ°Àº ³×Æ®¿÷»ó¿¡¼­µµ ¿©·¯ ¼­ºñ½ºµéÀÇ »ç¿ë·á¸¦ ¹Þ±â À§ÇÑ ¹æ¹ýµéÀÌ ÇÊ¿äÇÏ´Ù. ÀÌ·± ¸ñÀû¿¡¼­ ¸¸µé¾îÁø ¼­ºñ½º°¡ ¶óÀ̼¾½º ¼­ºñ½ºÀÌ´Ù. ¶óÀ̼¾½º ¼­ºñ½º´Â º»·¡ IBM, µðÁöÅ», ±×·¹µð¾ðÆ®»ç¿¡¼­ Á¦¾ÈÇÏ¿´´Ù. CORBA ¶óÀ̼¾½º ¼­ºñ½º´Â ORB¸¦ ±â¹ÝÀ¸·Î ÇÑ ÄÄÆ÷³ÍÆ®µéÀÇ »ç¿ë¿¡ ´ëÇÑ ¶óÀ̼¾½º¸¦ °ü¸®Çϴµ¥ °ü½ÉÀ» µÐ´Ù.

¶óÀ̼¾½º ¼­ºñ½º´Â ÄÄÆ÷³ÍÆ®µé¿¡ ´ëÇÑ ¶óÀ̼¾½º¸¦ °ü¸®Çϱâ À§ÇØ µÎ°³ÀÇ ÀÎÅÍÆäÀ̽º¸¦ Á¦°øÇÑ´Ù-LicenseServiceManager , ProducerSpecificLicenseService. LicenseServiceManager´Â ¿©·¯ºÐÀÇ ÄÄÆ÷³ÍÆ®¿¡ ÀûÇÕÇÏ°Ô ÀÛ¼ºµÈ ƯÁ¤ÇÑ ¶óÀ̼¾½º ¼­ºñ½º¸¦ ÀÌ¿ëÇÏ°Ô ÇØÁÖ¸ç ProducerSpecificLicenseService´Â ÄÄÆ÷³ÍÆ®°¡ »ç¿ëµÇ¾î Áú ¶§ »ç¿ëÀÚ¿¡ ´ëÇÑ Á¤º¸¸¦ Àü´Þ¹Þ´Â ±â´É(start_use)°ú »ç¿ëÀ» ¸¶ÃÆÀ» ¶§ ¼­ºñ½º¸¦ Á¾·áÇÏ´Â ±â´É(end_use), ±×¸®°í ÁÖ±âÀûÀ¸·Î ¼­ºñ½ºÀÇ »ç¿ëÀ» °Ë»çÇÏ´Â ±â´É(check_use)À» Á¦°øÇÑ´Ù.

CORBA¿¡¼­ ¸ðµç °´Ã¼´Â IDLÀ» ÅëÇØ Á¤ÀǵǴ Á¤ÀûÀÎ ¼Ó¼º¸¸À» °®´Â´Ù. ±×·¯³ª ºÐ»ê ȯ°æÇÏ¿¡¼­ °´Ã¼¸¦ Á¶ÀÛÇÏ´Ù º¸¸é ÀÌ¿Í ´Þ¸® µ¿ÀûÀ¸·Î ƯÁ¤ °´Ã¼¿¡ »õ·Î¿î ¼Ó¼ºÀ» Á¤ÀÇÇÒ Çʿ䰡 ÀÖ´Ù. ¹Ù·Î ÀÌ·± ±â´ÉÀ» Á¦°øÇÏ´Â °ÍÀÌ Æ¯¼º ¼­ºñ½ºÀÌ´Ù.

Ư¼º ¼­ºñ½º´Â µ¿ÀûÀ¸·Î ƯÁ¤ °´Ã¼¿Í °ü·ÃµÈ ¼Ó¼ºÀ» Ãß°¡ÇÒ ¼ö ÀÖ´Â ±â´ÉÀ» Á¦°øÇÑ´Ù. ´Ù¸¥ Ç¥ÇöÀ¸·Î ¸»ÇÏÀÚ¸é, ÇÁ·Î±×·¥ ¼öÇàÁß¿¡ »õ·Î¿î µ¥ÀÌŸ ¸â¹ö¸¦ Ŭ·¡½º¿¡ Ãß°¡ÇÏ°Ô ÇØÁÖ´Â ±â´ÉÀÌ´Ù.

Ư¼º ¼­ºñ½º¸¦ Á¦°øÇϱâ À§ÇØ CORBA´Â µ¿ÀûÀ¸·Î ÀÛ¼ºµÇ´Â ¼Ó¼ºÀÇ ÀÚ·áÇüÀ¸·Î any ŸÀÔÀ» »ç¿ëÇÑ´Ù. any·Î ÀÛ¼ºµÈ ¼Ó¼ºÀº ÇÁ·Î±×·¥ ¼öÇàÁß¿¡ ¾î¶² ÀÚ·áÇüÀ¸·Îµµ º¯È¯µÇ¾î »ç¿ëµÉ ¼ö ÀÖ´Ù. ¶ÇÇÑ PropertySet°ú PropertySetDef¶ó´Â ÀÎÅÍÆäÀ̽º¸¦ Á¦°øÇÑ´Ù. PropertySetÀº °´Ã¼ÀÇ Æ¯¼ºµé¿¡ ´ëÇÑ °Ë»ç³ª »èÁ¦, Ư¼º Á¤ÀÇ µîÀ» Áö¿øÇϸç PropertySetDet´Â PropertySerÀ» »ó¼Ó¹Þ¾Æ Ư¼ºµéÀÇ ¸ðµå¸¦ º¯°æÇϰí Á¦¾îÇÏ´Â ¿ªÇÒÀ» ÇÑ´Ù.

ÇöÀç °¡Àå ÀϹÝÀûÀ¸·Î ÀÌ¿ëµÇ´Â µ¥ÀÌŸº£À̽º´Â º¸Åë °ü°èÇü µ¥ÀÌŸº£À̽º ½Ã½ºÅÛÀÌ´Ù. ÀÌ µé ½Ã½ºÅÛÀÌ °¢±¤¹Þ´Â ÀÌÀ¯ Áß Çϳª´Â SQL(Structured Query Language)À̶ó´Â ÁúÀǾ Á¦°øÇϱ⠶§¹®ÀÌ´Ù. ¸¹Àº »ç¶÷µéÀÌ Ç¥ÁØÈ­µÈ SQLÀ» »ç¿ëÇÏ¿© ¼Õ½±°Ô ¿øÇÏ´Â µ¥ÀÌŸ¸¦ ÀúÀåÇϰí ÃßÃâÇÒ ¼ö ÀÖ´Ù. ¸¶Âù°¡Áö·Î °´Ã¼ÁöÇ⠽ýºÅÛ¿¡¼­µµ ÀÌ¿Í À¯»çÇÑ ¹æ¹ýµéÀ» ÇÊ¿ä·Î ÇÑ´Ù. ÇöÀç °´Ã¼ÁöÇâ µ¥ÀÌŸº£À̽ºÀÇ Ç¥ÁØÈ­¸¦ ÁøÇàÇϰí ÀÖ´Â ODMG´Â °´Ã¼ÁöÇâ Ç¥ÁØ ÁúÀǾî·Î OQL(Object Query Language)À» Á¦¾ÈÇÏ¿´´Ù. ÇöÀç OMG´Â À̵é Ç¥ÁØÈ­ °úÁ¤¿¡ Âü¿©Çϰí ÀÖ´Ù.

ÀÌ·¯ÇÑ ³ë·ÂµéÀÇ ÀÏȯÀ¸·Î IBMÀ» ºñ·ÔÇÏ¿© »çÀ̺£À̽º, ¼±¼ÒÇÁÆ® , ÅŸ®ÀüÆ® µî ¿©·¯ °ü·Ã ȸ»çµé(Tailgent,Itasca,Objectivity,Obtos,O2)ÀÌ CORBA ÁúÀÇ ¼­ºñ½º¸¦ ÀÛ¼ºÇÏ¿´´Ù. ¿©·¯ºÐÀÌ ÀÌ ÁúÀÇ ¼­ºñ½º¸¦ ÀÌ¿ëÇÏ¿© ¿øÇÏ´Â ÁúÀǸ¦ ¼öÇàÇÏ¸é ±× °á°ú·Î¼­ Ä÷º¼Ç(collection) ÇüÅÂÀÇ °á°ú¸¦ µÇµ¹·Á ¹Þ´Â´Ù. µÚ¿¡¼­ ¼³¸íÇϰÚÁö¸¸ Ä÷º¼ÇÀº ÀÏ·ÃÀÇ °´Ã¼µéÀÇ ¹­À½ÀÌ´Ù. µû¶ó¼­ ÁúÀÇ ¼­ºñ½º´Â Ä÷º¼Ç ¼­ºñ½º¿Í ¹ÐÁ¢ÇÏ°Ô ¿¬°üµÇ¾î ÀÖ´Ù.

ÇöÀç ÁúÀÇ ¼­ºñ½º´Â Å©°Ô Ä÷º¼Ç ÀÎÅÍÆäÀ̽º¿Í ÁúÀÇ ÀÎÅÍÆäÀ̽º·Î Á¦°øµÈ´Ù. Ä÷º¼Ç ÀÎÅÍÆäÀ̽ºÀÇ °æ¿ì »õ·Î¿î Ä÷º¼ÇÀ» »ý¼ºÇØ ÁÖ´Â CollectionFactory¿Í »ý¼ºµÈ Ä÷º¼Ç¿¡ ¿øÇÏ´Â °´Ã¼µéÀ» Ãß°¡(add_element)Çϰųª »èÁ¦(remove_element)ÇÏ´Â µîÀÇ ±â´ÉµéÀ» Á¦°øÇÏ´Â Collection ÀÎÅÍÆäÀ̽º, Ä÷º¼Ç»óÀÇ °´Ã¼µéÀ» ã±â À§ÇØ ¾Õ,µÚ·Î Ä÷º¼Ç»óÀÇ À§Ä¡¸¦ À̵¿½ÃÄÑ ÁÖ´Â Iterator °¡ ÀÖ´Ù.

ÁúÀÇ °ü·Ã ÀÎÅÍÆäÀ̽º´Â ½ÇÁ¦ ÁúÀǸ¦ ÀÛ¼ºÇϰí À̸¦ ¼öÇàÇÏ¸ç ¼öÇà °á°ú¸¦ Ä÷º¼ÇÀ¸·Î Á¦°øÇØÁÖ´Â ¿ªÇÒÀ» ÇÑ´Ù. ÇØ´ç ÀÎÅÍÆäÀ̽º·Î´Â »ç¿ëÀÚ°¡ ¸í½ÃÇÑ ÁúÀÇÀÇ Á¤´ç¼ºÀ» Æò°¡ÇÏ°í ¼öÇàÇØ ÁÖ´Â ¿ªÇÒÀ» ÇÏ´Â QueryEvaluator¿Í »ç¿ëÀÚÀÇ ÁúÀǸ¦ ±¸¼ºÇØÁÖ´Â QueryÀÎÅÍÆäÀ̽º, ±×¸®°í Query°´Ã¼¸¦ »ý¼ºÇϰí QueryEvaluator¸¦ °ü¸®ÇÏ´Â QueryManagerÀÎÅÍÆäÀ̽º°¡ ÀÖ´Ù. ¸¶Áö¸·À¸·Î´Â QueryEvaluator¿Í Collection ÀÎÅÍÆäÀ̽º¸¦ »ó¼Ó¹Þ¾Æ ƯÁ¤ Ä÷º¼Ç °´Ã¼¿¡ ´ëÇÑ ÁúÀǸ¦ ¼öÇàÇÏ°Ô ÇØÁÖ´Â QueryableCollection ÀÎÅÍÆäÀ̽º°¡ ÀÖ´Ù.

3.2.5 COSS5

ÀüÈ­ ¹øÈ£¸¦ Á¶È¸Çϱâ À§ÇØ °¡Àå ¼Õ½±°Ô ÀÌ¿ëÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀº 114 ÀüÈ­ ¾È³»¸¦ ÀÌ¿ëÇÏ´Â °ÍÀÌ´Ù. ¿øÇÏ´Â ÀθíÀ̳ª »óÈ£ µîÀ» ¾Ë·ÁÁÖ¸é ÇØ´ç ÀüÈ­¹øÈ£¸¦ ¾Ë ¼ö ÀÖ´Ù. CORBA¿¡¼­ Æ®·¹À̵ù ¼­ºñ½º´Â ¹Ù·Î 114 ÀüÈ­ ¾È³»°°Àº ¼­ºñ½ºÀÌ´Ù. ¸¸ÀÏ CORBA¸¦ ÀÌ¿ëÇÏ¿© »õ·Î¿î ±¸Çö °´Ã¼¸¦ ±¸ÇöÇß´Ù°í ÇÏÀÚ. ÀÌ ±¸Çö °´Ã¼¸¦ ÀÌ¿ëÇϱâ À§Çؼ­´Â ¹Ì¸® ¾î¶² ¼­ºñ½º¸¦ ÀÌ¿ëÇÒ ¼ö ÀÖ°í ÀÌ ¼­ºñ½º¸¦ ÀÌ¿ëÇϱâÀ§Çؼ­´Â ¹Ì¸® ÇÁ·Î±×·¥ ÀÛ¼º Áß¿¡ ¹«½¼ ÀÎÅÍÆäÀ̽º°¡ ÇÊ¿äÇÑ Áö ¾Ë¾Æ¾ß ¸¸ ÇÑ´Ù. ±×·¯³ª ÀÌ ±¸Çö °´Ã¼¸¦ Æ®·¹À̵ù ¼­ºñ½º¸¦ ÅëÇØ µî·ÏÇϸé ÇÁ·Î±×·¥ ¼öÇà Áß¿¡ ±¸Çö °´Ã¼¸¦ ÀÌ¿ëÇÒ ¼ö ÀÖ´Ù. ¸¶Ä¡ 114 µ¥ÀÌŸº£À̽º¿¡ »õ·Î¿î ÀθíÀ̳ª »óÈ£¸¦ µî·ÏÇϰí À̸¦ ÀÌ¿ëÇÏ´Â °Í°ú °°´Ù. Ŭ¶óÀÌ¾ðÆ® °´Ã¼´Â ÇÁ·Î±×·¥ ¼öÇà Áß Æ®·¹À̵ù ¼­ºñ½º¸¦ ÅëÇØ ¿øÇÏ´Â ¼­ºñ½º¸¦ Á¦°øÇÏ´Â ±¸Çö °´Ã¼¸¦ ã°í µ¿Àû È£Ãâ ±â´ÉÀ» »ç¿ëÇÏ¿© ¿øÇÏ´Â ¼­ºñ½º¸¦ È£ÃâÇÒ ¼ö ÀÖ´Ù.

Ä÷º¼ÇÀ̶õ °´Ã¼µéÀ» ÀÏ·ÃÀÇ ¹­À½À¸·Î ¸¸µé¾î ÁÖ´Â ¿ªÇÒÀ» Á¦°øÇÑ´Ù. ¿¹¸¦ µé¾î, ¿©·¯ºÐÀº µ¿ÀÏÇÑ °´Ã¼µéÀ» ÀÏ·Ä·Î ¹­°Å³ª(list) , ¼­·Î ´Ù¸¥ °´Ã¼µéÀÇ ²Ù·¯¹Ì(bag)·Î ¸¸µé Çʿ䰡 ÀÖ´Ù. ÀÌ·¯ÇÑ ±â´ÉÀ» Á¦°øÇÏ´Â °ÍÀÌ Ä÷º¼Ç ¼­ºñ½ºÀÌ´Ù. ÀϹÝÀûÀ¸·Î Ä÷º¼Ç¿¡´Â ¸®½ºÆ®(list), ½ºÅÃ(stack), ¹é(bag), Å¥(queue), ¹è¿­(array), Æ®¸®(tree) °´Ã¼µéÀÌ Æ÷ÇԵȴÙ.

À̵é Ä÷º¼Ç °´Ã¼µéÀº ³»ºÎ¿¡ °´Ã¼¸¦ Ãß°¡Çϰųª(add) »èÁ¦(delete)ÇÏ´Â µî ´Ù¾çÇÑ ¸Þ¼Òµå¸¦ Á¦°øÇÑ´Ù. ƯÈ÷, ÀÌ µé Ä÷º¼Ç °´Ã¼´Â ÁÖ·Î ÁúÀÇ ¼­ºñ½º¿Í ÇÔ²² »ç¿ëµÈ´Ù.

°£È¤ ÇÁ·Î±×·¥À» ÀÌ¿ëÇϰųª °³¹ßÇÏ´Ù º¸¸é ¹öÀü(version)À̶ó´Â ¿ë¾î¸¦ ÀÚÁÖ µè´Â´Ù. ¹öÀüÀº ½Ã°£ÀÇ ÁøÇà¿¡ µû¸¥ ÇÁ·Î±×·¥ÀÇ º¯È­ Á¤µµ¸¦ ÀǹÌÇÑ´Ù. ´Ù½Ã ¸»ÇØ, ¹öÀüÀÌ ³ôÀ» ¼ö·Ï °¡Àå ÃÖ±Ù¿¡ °³¹ßµÈ °ÍÀ» ÀǹÌÇÑ´Ù. ÀÌ¿Í À¯»çÇÏ°Ô °´Ã¼ º¯È­ °ü¸®¶õ ½Ã°£¿¡ µû¸¥ °´Ã¼ÀÇ º¯È­ÃßÀ̸¦ °ü¸®ÇÏ´Â °ÍÀ» ¸»ÇÑ´Ù. °´Ã¼ º¯È­ °ü¸®¸¦ ´Ù¸¥ ¸»·Î´Â ¹öÀü °ü¸®¶ó°íµµ ÇÑ´Ù.

CORBA °´Ã¼µéÀº µÎ°³ÀÇ °üÁ¡¿¡¼­ ½Ã°£Àû º¯È­¸¦ °®´Â´Ù. ¸ÕÀú, IDL·Î Á¤ÀÇÇÑ ÀÎÅÍÆäÀ̽ºµéÀÌ ½Ã°£¿¡ µû¶ó º¯°æµÉ ¼ö ÀÖÀ¸¸ç °³¹ßµÈ ÄÄÆ÷³ÍÆ®µéÀÌ ½Ã°£¿¡ µû¶ó º¯È­µÉ ¼ö ÀÖ´Ù. °´Ã¼ º¯È­ °ü¸® ¼­ºñ½º´Â ÀÌµé ¸ðµÎÀÇ ½Ã°£ ÃßÀÌ¿¡ µû¸¥ º¯È­¸¦ °ü¸®ÇÑ´Ù. µû¶ó¼­ °´Ã¼ º¯È­ °ü¸® ¼­ºñ½º¸¦ ÀÌ¿ëÇϸé ÇØ´ç °´Ã¼µéÀÇ ¹öÀüÀ» ¾Ë ¼ö ÀÖ´Ù. ÀÌ ¹öÀü Á¤º¸¸¦ ÀÌ¿ëÇØ ÀÌÀü¿¡ °³¹ßµÈ ±¸Çö °´Ã¼ ¿Ü¿¡ »õ·Ó°Ô °³¹ßµÈ ´Ù¸¥ ¹öÀüÀÇ µ¿ÀÏ °´Ã¼¸¦ ÀÌ¿ëÇÒ ¼ö µµ ÀÖ´Ù.

  1. ±âŸ COSS ¼­ºñ½ºµé

¾Õ¼­ COSS1¿¡¼­ COSS5 ±îÁö CORBA ¼­ºñ½º·Î ±ÔÁ¤µÈ ¼­ºñ½ºµé¿¡ ´ëÇØ »ìÆìº¸¾Ò´Ù. ÀÌµé ±â´É ¿Ü¿¡ ÀÖ´Â »õ·Ó°Ô Á¦¾ÈµÇ°í ÀÖ´Â ¼­ºñ½ºµéÀÌ ÀÖ¾î °£·«ÇÏ°Ô ¼Ò°³Çϵµ·Ï ÇÑ´Ù.

°´Ã¼ ±âµ¿ ¼­ºñ½º´Â ½Ã½ºÅÛ ÆÄ±«³ª ¿Àµ¿À۽à °´Ã¼¿Í Æ®·»Á§¼ÇÀÇ »óŸ¦ ¿ø»óÅ·Πȸº¹½ÃŰ´Â ±â´ÉÀ» ¸»ÇÑ´Ù. ÀϹÝÀûÀ¸·Î DBMS¿¡¼­´Â ȸº¹(recovery) ±â´ÉÀ̶ó°í ¸»ÇÑ´Ù.

¸Þ¼¼Â¡ ¼­ºñ½º´Â °´Ã¼°£¿¡ ÁÖ°í¹Þ´Â ¸Þ¼¼ÁöµéÀÇ Æ®·¡ÇÈÀ» º¸´Ù ½Å·Ú¼ºÀÖ°í ºñµ¿±âÀûÀ¸·Î Àü¼ÛÇÏ´Â ¼­ºñ½º¸¦ ¸»ÇÑ´Ù.

4Àå.CORBA Áö¿ø ±â´Éµé(Common Facility)

¾Õ¼­ »ìÆìº» CORBA ¼­ºñ½ºµéÀº ½ÇÁ¦ CORBA °ø±Þ¾÷ü³ª Á¦3ÀÇ ¼­ºñ½º °³¹ß ȸ»ç¿¡¼­ ÀÛ¼ºÇÏ¿© °ø±ÞÇÏ´Â °ÍÀÌ´Ù. µû¶ó¼­ ÀÏ¹Ý »ç¿ëÀÚ³ª ÇÁ·Î±×·¡¸Ó´Â ÀÌµé ¼­ºñ½ºÀÇ ±¸Çö¿¡ ´ëÇØ ÀÚ¼¼È÷ ¾Ë Çʿ䰡 ¾ø´Ù. ´Ü, ¾î¶² ±â´ÉÀ» Á¦°øÇÏ´Â °ÍÀÎÁö´Â ¸íÈ®È÷ ÀÌÇØÇØ¾ß ÇÑ´Ù. CORBA ¼­ºñ½º ¿Ü¿¡ OMA´Â CORBA¸¦ Àû¿ëÇÏ¿© ½Ã½ºÅÛÀ» ±¸ÃàÇÒ ¶§ ƯÁ¤ µµ¸ÞÀο¡ ÇÊ¿äÇÑ °øÅëÀÇ ±â´ÉµéÀ» Á¦°øÇÑ´Ù. ¿¹¸¦ µé¸é, ÀºÇàÀº ÀºÇà ³ª¸§´ë·ÎÀÇ, Åë½ÅÀº Åë½ÅºÐ¾ß ³ª¸§´ë·ÎÀÇ Æ¯¼º¿¡ ¸Â´Â ±â´ÉµéÀ» ÇÊ¿ä·Î ÇÑ´Ù. ÀÌ·¯ÇÑ µµ¸ÞÀκ° °øÅë ±â´ÉµéÀ» CORBA Áö¿ø ±â´Éµé(CORBA Facility)À̶ó ÇÑ´Ù. ´ÙÀ½ [±×¸²3-37]Àº OMA»ó¿¡¼­ CORBA Áö¿ø ±â´ÉµéÀ» º¸¿©ÁØ´Ù. CORBA Áö¿ø ±â´ÉµéÀº OMGÀÇ DTC(Domain Technology Committee)¿¡¼­ ÀÛ¼ºÇßÀ¸¸ç ÇöÀçµµ °è¼ÓÇØ¼­ Ãß°¡Çϰí ÀÖ´Ù.

À̹ø Àå¿¡´Â CORBA Áö¿ø ±â´ÉµéÀ» ÀÚ¼¼È÷ »ìÆìº¸µµ·Ï ÇÑ´Ù. ¸¸¾à ¿©·¯ºÐÀÌ CORBA¸¦ ½ÇÁ¦ Àû¿ëÇÏ´Â µ¥ °ü½ÉÀÌ ÀÖ´Ù¸é ÁÖÀDZí°Ô »ìÆìºÁ¾ß ÇÒ °ÍÀÌ´Ù.


[ ±×¸²3-37 ] CORBA Áö¿ø ±â´Éµé

4.1 CORBA Áö¿ø ±â´É(facility)À̶õ?

CORBA Áö¿ø ±â´ÉÀº CORBA ¼­ºñ½º¿Í ´Þ¸® ¾ÆÁÖ »óÀ§ Â÷¿øÀÇ ¼­ºñ½ºµéÀÌ´Ù. ´Ù½Ã ¸»ÇØ, CORBA ½Ã½ºÅÛ¿¡¼­ Á¦°øÇÏ´Â ½Ã½ºÅÛ ±â´ÉÀ̶ó±â º¸´Ù »ç¿ëÀÚÃø¸é¿¡¼­ Á¦°øµÇ´Â ¼­ºñ½ºµéÀÌ´Ù. ¿¹¸¦ µé¸é, »ç¿ëÀÚ ÀÎÅÍÆäÀ̽º ±â´ÉÀ» °­Á¶ÇÏ´Â ÄÄÆ÷³ÍÆ® Ç¥Çö ±â´É(Compound Presentation Facility , RFP1)À̳ª ½Ã½ºÅÛ °ü¸® ±â´É(System Management Facility, RFC1)µéÀÌ ÀÌ¿¡ ÇØ´çµÈ´Ù.

¶ÇÇÑ CORBA Áö¿ø ±â´ÉÀº ½Ã½ºÅÛ Â÷¿øÀÌ ¾Æ´Ï¶ó ÀÀ¿ë ÇÁ·Î±×·¥ Â÷¿øÀÇ »óÈ£ ¿¬µ¿ ¼­ºñ½ºÀÌ´Ù. ¿¹¸¦ µé¸é, µ¥ÀÌŸ ±³È¯ ±â´É(Data Interchange Facility , RFP3)À̳ª º¹ÇÕ ¹®¼­ ±³È¯ ±â´É(Compound Interchange Facility, RFP1)Àº CORBA¸¦ ±â¹ÝÀ¸·Î ÇÏ¿© °³¹ßµÈ ÀÀ¿ë ÇÁ·Î±×·¥µé °£ÀÇ »óÈ£ ¿¬µ¿À» °¡´ÉÇÏ°Ô ÇØÁØ´Ù.

¾Æ¿ï·¯ CORBA Áö¿ø ±â´ÉÀº ºñÁö´Ï½º ºÐ¾ß³ª ÀºÇà, º¸Çè µî ´Ù¾çÇÑ Çö½Ç ¼¼°èÀÇ µµ¸ÞÀο¡¼­ »ç¿ëµÉ ¼ö ÀÖ´Â ÀÎÅÍÆäÀ̽ºµéÀ» Áö¿øÇÑ´Ù. ¿¹¸¦ µé¸é, ºñÁö´Ï½º °´Ã¼ ÇÁ·¹ÀÓ¿÷ (Business Object Framework Facility,RFP4)°ú ±ÝÀ¶ ¼­ºñ½º( Financial Service) µîÀº ºñÁö´Ï½º ºÐ¾ß¿Í ±ÝÀ¶ ºÐ¾ß¿¡¼­ ÇÊ¿äÇÑ ´Ù¾çÇÑ ±â´ÉµéÀ» Á¦°øÇÑ´Ù.

ÇöÀç CORBA Áö¿ø ±â´ÉÀºOMG¿¡¼­ ÁøÇàÁßÀΠǥÁؾÈÀ¸·Î¼­ Å©°Ô ¼öÆò Áö¿ø ±â´É(Horizontal Facility)°ú ¼öÁ÷ Áö¿ø ±â´É(Vertical Facility)À¸·Î ³ª´¶´Ù. ¼öÆò Áö¿ø ±â´ÉÀº °ÅÀÇ ¸ðµç µµ¸ÞÀο¡¼­ °øÅëÀûÀ¸·Î ÇÊ¿äÇÑ ±â´ÉµéÀ» Á¦°øÇÑ´Ù - º¹ÇÕ ¹®¼­(compound document), µµ¿ò ±â´É(Help Facility), ½Ã½ºÅÛ °ü¸® ±â´É µîÀÌ ÀÌ¿¡ ÇØ´çÇÑ´Ù. ÀÌ¿¡ ¹ÝÇØ ¼öÁ÷ Áö¿ø ±â´ÉÀº º¸Çè, Åë½Å, ±ÝÀ¶ ºÐ¾ßó·³ ƯÁ¤ ºÐ¾ßÀÇ ÀÀ¿ë ½Ã½ºÅÛÀ» ±¸¼ºÇÏ´Â µ¥ ÇÊ¿äÇÑ ±â´ÉµéÀ» Á¦°øÇÑ´Ù. ÀÌ·¯ÇÑ ±â´ÉµéÀº OMGÀÇ DTC¿¡¼­ Á¦Á¤µÈ´Ù.

4.2 CORBA Áö¿ø ±â´É°ú ¼­ºñ½º¿ÍÀÇ Â÷ÀÌÁ¡Àº ?

½ÇÁ¦ OMA¿¡´Â CORBA ¼­ºñ½ºµé°ú Áö¿ø ±â´ÉµéÀ» ºÐ¸íÇÏ°Ô ±¸ºÐÇÏÁö´Â ¾Ê´Â´Ù. ±×·¯³ª :

4.3 CORBA ¼öÆò Áö¿ø ±â´Éµé

CORBA ¼öÆò Áö¿ø ±â´ÉµéÀº Å©°Ô 4°³ÀÇ ºÐ¾ß·Î ³ª´µ¾îÁ® ÀÖ´Ù. °¢°¢ÀÇ ºÐ¾ß´Â ´ÙÀ½°ú °°´Ù.

»ç¿ëÀÚ ÀÎÅÍÆäÀ̽º´Â »ç¿ëÀÚ¿¡°Ô ÇØ´ç Á¤º¸ ½Ã½ºÅÛ¿¡ Á¢±ÙÇÏ°Ô ÇØÁÖ¸ç »ç¿ëÀÚÀÇ

¿ä±¸¿¡ ´ëÇÑ °á°ú¸¦ Á¦°øÇÑ´Ù.

Áö¿ø ±â´Éµé :
À̸§
¼³ ¸í
·»´õ¸µ °ü¸® ÇÁ¸°ÆÃÀ̳ª È­¸é Ãâ·Â°°ÀÌ °´Ã¼µéÀ» Ç¥ÇöÇÏ´Â µ¥ ÇÊ¿äÇÑ ÀϹÝÀûÀÎ ±â´ÉµéÀ» Áö¿øÇÑ´Ù.
º¹ÇÕ Ç¥Çö °ü¸® ÇÑ ¹®¼­³»¿¡ ´Ù¸¥ ÇüÅÂÀÇ °´Ã¼¸¦ »ðÀÔÇÏ´Â °Íó·³ º¹ÇÕ ¹®¼­³»¿¡¼­ °´Ã¼µéÀÇ Ç¥ÇöÀ» Áö¿øÇÑ´Ù.
»ç¿ëÀÚ Áö¿ø µµ¿ò¸» ±â´ÉÀ̳ª öÀÚ °Ë»çó·³ »ç¿ëÀÚµéÀÌ ÀϹÝÀûÀ¸·Î ÇÊ¿ä·Î ÇÏ´Â ±â´ÉÀ» Áö¿øÇÑ´Ù.
µ¥½ºÅ© ž °ü¸® ÃÖÁ¾ »ç¿ëÀÚ°¡ »ç¿ëÇÏ´Â µ¥½ºÅ©Å¾¿¡¼­ ÇÊ¿ä·Î ÇÏ´Â ±â´É µîÀ» Áö¿øÇÑ´Ù.
½ºÅ©¸³ÆÃ ÀÚµ¿È­ ½ºÅ©¸³Æ®¸¦ ¼Õ½±°Ô ÀÛ¼ºÇÏ°Ô ÇØÁØ´Ù

Á¤º¸ °ü¸®´Â Á¤º¸ÀÇ ¸ðµ¨¸µ¿¡¼­ ºÎÅÍ Á¤ÀÇ, ÀúÀå, ÃßÃâ, °ü¸®, ±³È¯¿¡ À̸£±â±îÁö

Á¤º¸¸¦ ó¸®ÇÏ´Â µ¥ ÇÊ¿äÇÑ ¸ðµç ±â´ÉÀ» Á¦°øÇÑ´Ù.

Áö¿ø ±â´Éµé :
À̸§
¼³ ¸í
Á¤º¸ ¸ðµ¨¸µ Á¤º¸ ¸ðµ¨¸µ°ú ½ºÅ°¸¶ ÀÛ¼ºÀ» Áö¿øÇÑ´Ù.
Á¤º¸ ÀúÀå°ú ÃßÃâ Á¤º¸ÀÇ Áö¼ÓÀû ÀúÀå°ú ÃßÃâÀ» Áö¿øÇÑ´Ù.
º¹ÇÕ ¹®¼­ ±³È¯ º¹ÇÕ ¹®¼­³»ÀÇ µ¥ÀÌŸ ±³È¯À» Áö¿øÇÑ´Ù.
µ¥ÀÌŸ ±³È¯ µ¥ÀÌŸ°£ÀÇ ÀϹÝÀûÀÎ ±³È¯À» Áö¿øÇÑ´Ù.
Á¤º¸ ±³È¯ Á¤º¸°£ÀÇ ±³È¯À» Áö¿øÇÑ´Ù.
µ¥ÀÌŸ ÀÎÄÚµù°ú Ç¥Çö µ¥ÀÌŸ ÇüŰ£ÀÇ ±³È¯°ú ÀÎÄÚµùÀ» Áö¿øÇÑ´Ù.
½Ã°£ ¿¬»ê ´Þ·Â µ¥ÀÌŸ¿Í ½Ã°£ µ¥ÀÌŸÀÇ Á¶ÀÛÀ» Áö¿øÇÑ´Ù.

¼­ºñ½º Á¦°øÀÚµéÀÇ º¹ÀâÇÑ Á¤º¸ ½Ã½ºÅÛµéÀ» °ü¸®ÇÏ´Â µ¥ ÇÊ¿äÇÑ ±â´ÉÀ» Á¦°øÇÑ´Ù.

Áö¿ø ±â´Éµé :
À̸§
¼³ ¸í
°ü¸® µµ±¸µé °ü¸® µµ±¸µé°ú Ä÷º¼Ç °ü¸® ±â´É»çÀÌÀÇ »óÈ£ ȣȯÀ» Áö¿øÇÑ´Ù.
Ä÷º¼Ç °ü¸® Ä÷º¼Ç °ü¸® ±â´É°ú °ü¸®µÇ´Â °´Ã¼µé »çÀÌÀÇ ÅëÇÕÀ» Áö¿øÇÑ´Ù.
Á¶Á¤(control) ½Ã½ºÅÛ ÀÚ¿øµé°ú °ü¸®µÇ´Â °´Ã¼µé »çÀÌÀÇ Á¶Á¤À» Áö¿øÇÑ´Ù.

¿÷ÇÃ·Î¿ì ½Ã½ºÅÛó·³ ÀÛ¾÷ÀÇ ÀÚµ¿È­¸¦ Á¦°øÇÑ´Ù. ÀÌ Áö¿ø ±â´É¿¡´Â ½Ã½ºÅÛ¿¡ Âü¿©Çϰí ÀÖ´Â »ç¿ëÀÚ ÇÁ·Î¼¼½º¿Í ½Ã½ºÅÛ ÇÁ·Î¼¼½º ¸ðµÎÀÇ ÀÚµ¿È­¸¦ Áö¿øÇÑ´Ù.

Áö¿ø ±â´Éµé :
À̸§
¼³ ¸í
¿¡ÀÌÁ¯Æ® ÁöÁ¤ÇÑ ¸í·ÉÀ» ÀÚµ¿À¸·Î ¼öÇàÇÏ´Â ¿¡ÀÌÀüÆ®¸¦ µ¿Àû°ú Á¤Àû ÇüÅ ¸ðµÎ Áö¿øÇÑ´Ù.
·ê °ü¸® Áö´ÉÇü ¿¡ÀÌÁ¯Æ® ó·³ ±ÔÄ¢¿¡ ±â¹ÝÇÑ °´Ã¼µéÀÇ ½ÇÇà ¹× °ü¸® ±â´ÉÀ» Áö¿øÇÑ´Ù. ¿©±â¼­ ·êÀ̶õ ƯÁ¤ À̺¥Æ®½Ã ¹ß»ýÇÏ´Â ÇൿÀ» ¸»ÇÑ´Ù.
ÀÚµ¿È­ ƯÁ¤ °´Ã¼ÀÇ ÁÖ¿ä ±â´Éµé¿¡ ´Ù¸¥ °´Ã¼µéÀÌ Á¢±ÙÇÒ ¼ö ÀÖ°Ô ÇØÁØ´Ù.
¿÷ Ç÷οì ÀÛ¾÷ °úÁ¤ÀÇ ÀϺÎÀÎ °´Ã¼µéÀÇ °ü¸®¿Í Á¶Á¤ ±â´ÉÀ» Áö¿øÇÑ´Ù.


4.4 CORBA ¼öÁ÷ Áö¿ø ±â´Éµé

CORBA ¼öÁ÷ Áö¿ø ±â´ÉµéÀº ƯÁ¤ ºÐ¾ß¿¡¼­ °øÅëÀûÀ¸·Î ÇÊ¿äÇÑ ±â´ÉµéÀ» Á¤ÀÇÇÑ´Ù. ´ÙÀ½Àº ÇØ´ç Áö¿ø ±â´ÉµéÀÌ´Ù.
À̸§
¼³ ¸í
À̹ÌÁö À̹ÌÁö °´Ã¼µéÀ̳ª À̹ÌÁö¿Í ¿¬°üµÈ Á¤º¸, À̹ÌÁö ÀÀ¿ë ¼­ºñ½ºµé »çÀÌÀÇ »óÈ£ ¿¬µ¿À» Áö¿øÇÑ´Ù.
Á¤º¸ Ãʰí¼Óµµ·Î ÀÎÅͳÝÀ̳ª WAN ȯ°æÇÏ¿¡¼­ º¹¼ö »ç¿ëÀÚ¿¡ ´ëÇÑ

ÀÀ¿ë ¼­ºñ½º¸¦ Áö¿øÇÑ´Ù.

Á¦Á¶ Á¦Á¶ °´Ã¼µé »çÀÌÀÇ »óÈ£ ¿¬µ¿À» Áö¿øÇÑ´Ù.
ºÐ»ê ½Ã¹Ä·¹ÀÌ¼Ç °¡»óÀÇ È¯°æÇÏ¿¡¼­ ¿©·¯ °´Ã¼µé°£ÀÇ ½Ã¹Ä·¹À̼ÇÀ» Áö¿øÇÑ´Ù.
Á¤À¯ ¹× °¡½º »ý»ê ¹× °³¹ß ¼®À¯ »ê¾÷¿¡ °ü·ÃµÈ ½Ã½ºÅÛ¿¡¼­ ÇÊ¿äÇÑ ±â´ÉÀ» Áö¿øÇÑ´Ù.
°èÁ¤ ÀºÇà °°Àº °÷ÀÇ »ó¿ë Æ®·»Á§¼ÇÀ» Áö¿øÇÑ´Ù.
ÀÀ¿ë ÇÁ·Î±×·¥ °³¹ß ÀÀ¿ë °´Ã¼µé°£ÀÇ »óÈ£ ȣȯÀ» Áö¿øÇÑ´Ù.
¸ÅÇÎ ¼­·Î ¸ÅÇÎ(¿¬°á)µÇ´Â °´Ã¼µé »çÀÌÀÇ »óÈ£ ¿¬µ¿À» Áö¿ø

ÇÑ´Ù.

:

4.5 CORBA Áö¿ø ±â´ÉÀÇ ¹ßÀü °úÁ¤

ÇöÀç CORBA Áö¿ø ±â´ÉÀº OMGÀÇ DTC¿¡ ÀÇÇØ¼­ °è¼Ó È®Àå Áß¿¡ ÀÖ´Ù. ´ÙÀ½Àº DTC¿¡ ÀÇÇØ¼­ Á¦ÃâµÈ ±â´ÉµéÀ» Á¤¸®ÇÑ °ÍÀÌ´Ù. Âü°í·Î RFP¶õ Request for Proposal ÀÇ ¾àÀÚ·Î ÇØ´ç ±â´ÉÀ» Ç¥ÁØÀ¸·Î °ËÅäÇØ ´Þ¶ó´Â Àǹ̿¡¼­ Á¦ÃâµÈ ¹®°ÇÀ» ÀǹÌÇÑ´Ù.

RFP1

µ¥½ºÅ©Å¾¿¡ Ç¥ÇöµÈ º¹ÇÕ ¹®¼­¸¦ °ü¸®Çϱâ À§ÇØ ÇÊ¿äÇÑ ±â´ÉÀ» Áö¿øÇÑ´Ù.

Ŭ¸³º¸µå³ª ²ø¾î´Ù³õ±â, ¹®¼­°£ ¿¬°á ±â´Éó·³ º¹ÇÕ ¹®¼­ÀÇ °¢ ºÎºÐ°£ÀÇ »óÈ£ ȣȯÀ»

À§ÇÑ ±â´ÉÀ» Áö¿øÇÑ´Ù.

³ëº§, IBM, Apple, CI labs ¿¡¼­ Âü¿©ÇÏ¿© CORBA±â¹ÝÀÇ º¹ÇÕ ¹®¼­¸¦ ±¸ÇöÇÏ¿´´Ù. ÀÌ º¹ÇÕ

¹®¼­´Â ´Ù¾çÇÑ Ç÷§Æû»ó¿¡¼­ ¼öÇàµÇ¸ç ¸¶ÀÌÅ©·Î¼ÒÇÁÆ®ÀÇ OLE/COM°ú ¿ÏÀüÈ÷ ȣȯµÈ´Ù.

RFP2

°¢ ³ª¶óÀÇ ¾ð¾î¿¡ ¸Â´Â ·ÎÄÃÈ­( localization )¿Í ´Ù±¹¾î Áö¿ø ¹× º¯È¯À» À§ÇØ ÇÊ¿äÇÑ ±â´É

À» Áö¿øÇÑ´Ù.

½Ã°£ °´Ã¼, time µ¥ÀÌŸ ŸÀÔ , time ¸Þ¼Òµåµé, ±×¸®°í ½Ã°£ º¯È¯À» Áö¿øÇÑ´Ù.

RFP3

°´Ã¼µé »çÀÌÀÇ µ¥ÀÌŸ Àü¼Û°ú ÀÀ¿ë ÇÁ·Î±×·¥ ¼öÁØÀÇ »óÈ£ ȣȯÀ» À§ÇÑ Åä´ë¸¦ Á¦°øÇÑ´Ù.

°´Ã¼ÀÇ µ¿ÀûÀÎ À̵¿ ±â´É(mobility)°ú À¯¿ë¼ºÀ» Áö¿øÇϱâ À§ÇÑ Åä´ë¸¦ Á¦°øÇÑ´Ù.

RFP4

°´Ã¼µé »çÀÌÀÇ µ¥ÀÌŸ Àü¼Û°ú ÀÀ¿ë ÇÁ·Î±×·¥ ¼öÁØÀÇ »óÈ£ ȣȯÀ» Áö¿øÇϱâ À§ÇÑ Åä´ë¸¦

Á¦°øÇÑ´Ù.

ƯÁ¤ ºÐ¾ßÀÇ ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼­ ÇÊ¿ä·Î ÇÏ´Â °øÅëÀûÀÎ ºñÁö´Ï½º °´Ã¼µéÀ» ÀÌ¿ëÇϱâ À§ÇÑ

Åä´ë¸¦ Á¦°øÇÑ´Ù.

ÀÌ»óÀÇ ±â´Éµé ¿Ü¿¡µµ °´Ã¼µé ÀÚü¿¡ ´ëÇÑ Á¤º¸¸¦ °ü¸®Çϱâ À§ÇÑ ¸ÞŸ °´Ã¼ Áö¿ø ±â´É( RFP5 , Meta Object Facility)°ú ÇÁ¸°Æ® Áö¿ø ±â´É(RFP6) , ±×¸®°í ¿ì¸®³ª¶ó³ª Áß±¹Ã³·³ 2¹ÙÀÌÆ® ¹®ÀÚ¸¦ »ç¿ëÇÏ´Â ¾Æ½Ã¾Æ ³ª¶óµéÀÇ ¾ð¾î ¹®Á¦¸¦ ó¸®Çϱâ À§ÇÑ ¾Æ½Ã¾È ÀÔ·Â Áö¿ø ±â´É(RFP7)ÀÌ °è¼Ó ¹ßÇ¥µÇ°í ÀÖ´Ù.

3¸·À» ¸¶Ä¡¸ç

Áö±Ý±îÁö ½Ã½ºÅÛ ÅëÇÕÀ» À§ÇÑ °´Ã¼ ÇÁ·¹ÀÓ¿÷À¸·Î¼­ OMA¿¡ ´ëÇØ ÀÚ¼¼È÷ »ìÆìº¸¾Ò´Ù. 3¸·¿¡¼­ »ìÆìº» ³»¿ëÀº ´ÙÀ½°ú °°´Ù.

CORBA´Â OMG¿¡¼­ Á¦Á¤ÇÑ °´Ã¼¸¦ ±â¹ÝÀ¸·Î ÇÑ ½Ã½ºÅÛ ÅëÇÕ ±â¼úÀÌ´Ù. OMG´Â ÇöÁ¸ÇÏ´Â °´Ã¼±â¼ú¿¡ ±â¹ÝÇÑ ÇÁ·¹ÀÓ¿÷À¸·Î¼­ OMA¸¦ Á¦Á¤ÇÏ¿´´Ù. OMA´Â ºÐ»êµÈ ȯ°æÇÏ¿¡¼­ °´Ã¼°£ÀÇ Åë½ÅÀ» ´ã´çÇÏ´Â CORBA¿Í CORBA¸¦ ±â¹ÝÀ¸·Î ÇÑ °´Ã¼ ÀÀ¿ë ½Ã½ºÅÛ¿¡¼­ ÇÊ¿ä·Î ÇÏ´Â ±â´ÉµéÀÎ CORBA ¼­ºñ½º, ±×¸®°í CORBA¸¦ ƯÁ¤ ºÐ¾ß¿¡ Àû¿ëÇÏ´Â µ¥ ÀÖ¾î °øÅëÀûÀ¸·Î ÇÊ¿äÇÑ ±â´ÉµéÀ» Áö¿øÇϱâ À§ÇÑ CORBA Áö¿ø ±â´Éµé·Î ±¸¼ºµÈ´Ù.

ƯÈ÷, ÀÌ·¯ÇÑ ±â´ÉµéÀ» ÀÌ¿ëÇϱâ À§ÇØ »ç¿ëÇÏ´Â IDLÀ̶ó´Â ¾ð¾î´Â ƯÁ¤ ±¸Çö¾ð¾î¿¡ Á¾¼ÓµÇÁö ¾Ê°í ¿øÇÏ´Â ÀÎÅÍÆäÀ̽º¸¸À» Á¤ÀÇÇÔÀ¸·Î¼­ ¼Õ½±°Ô ºÐ»ê ȯ°æÇÏ¿¡¼­ ½Ã½ºÅÛÀ» ÀÛ¼ºÇÏ°Ô ÇØÁØ´Ù.

[ ´ÙÀ½ | ÀÌÀü ]