µÎ¹øÂ° ¸¶´ç.
°´Ã¼ ÇÁ·¹ÀÓ¿÷(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´Â
ÀÌ·¸°Ô Ŭ¶óÀÌ¾ðÆ®¿Í ±¸Çö °´Ã¼µéÀ» ¿¬°á ½ÃÄÑÁÖ´Â ¿ªÇÒÀ» ÇØÁÜÀ¸·Î
½á Ŭ¶óÀÌ¾ðÆ®´Â ±¸Çö °´Ã¼°¡ ¾îµð¿¡ ÀÖµç »ó°üÇÏÁö ¾Ê°í ´ÜÁö ¿øÇÏ´Â
°´Ã¼ÀÇ ¿ÀÆÛ·¹À̼ÇÀ» °£´ÜÈ÷ È£ÃâÇÒ ¼ö ÀÖ°Ô µÈ´Ù.
°¢ 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
»ý¼ºÀÚ¸¦ À§ÇØ ÀÎÅÍÆäÀ̽º ÀúÀå¼Ò
°´Ã¼ ŸÀÔÀ» »ý¼ºÇÒ ¼ö ÀÖ°Ô ÇØ ÁØ´Ù.
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°£ÀÇ
»óÈ£¿¬µ¿ ±¸Á¶¸¦ Á¤ÀÇÇÏ¿´´Ù.
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°£
»óÈ£¿¬µ¿ ±¸Á¶
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
¼ºñ½ºÀÇ Á¾·ù¿Í ³»¿ëÀº ´ÙÀ½°ú
°°´Ù.
| COSS1 | 1993³â | ¸í¸í ¼ºñ½º , À̺¥Æ® ¼ºñ½º, »ý¸í Áֱ⠼ºñ½º , Áö¼Ó¼º ¼ºñ½º |
| COSS2 | 1994³â | °´Ã¼ °ü°è ¼ºñ½º, µ¿½Ã¼º ¼ºñ½º, Æ®·»Á§¼Ç ¼ºñ½º, ¿ÜÇüÈ ¼ºñ½º |
| COSS3 | 1995³â | º¸¾È ¼ºñ½º, ½Ã°£ ¼ºñ½º. |
| COSS4 | 1995³â | ÁúÀÇ ¼ºñ½º, ¶óÀ̼¾½º ¼ºñ½º, Ư¼º ¼ºñ½º |
| COSS5 | 1996³â | Æ®·¹À̵ù ¼ºñ½º , Ä÷º¼Ç ¼ºñ½º, º¯È °ü¸® ¼ºñ½º |
[
Ç¥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·Î Á¤ÀÇÇÑ ÀÎÅÍÆäÀ̽ºµéÀÌ
½Ã°£¿¡ µû¶ó º¯°æµÉ ¼ö ÀÖÀ¸¸ç °³¹ßµÈ ÄÄÆ÷³ÍÆ®µéÀÌ ½Ã°£¿¡ µû¶ó º¯ÈµÉ
¼ö ÀÖ´Ù. °´Ã¼
º¯È °ü¸® ¼ºñ½º´Â ÀÌµé ¸ðµÎÀÇ ½Ã°£ ÃßÀÌ¿¡ µû¸¥ º¯È¸¦ °ü¸®ÇÑ´Ù.
µû¶ó¼ °´Ã¼ º¯È °ü¸® ¼ºñ½º¸¦
ÀÌ¿ëÇϸé ÇØ´ç °´Ã¼µéÀÇ ¹öÀüÀ» ¾Ë ¼ö ÀÖ´Ù.
ÀÌ ¹öÀü Á¤º¸¸¦ ÀÌ¿ëÇØ ÀÌÀü¿¡
°³¹ßµÈ ±¸Çö °´Ã¼ ¿Ü¿¡ »õ·Ó°Ô °³¹ßµÈ ´Ù¸¥ ¹öÀüÀÇ µ¿ÀÏ °´Ã¼¸¦ ÀÌ¿ëÇÒ
¼ö µµ ÀÖ´Ù.
¾Õ¼ 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À̶ó´Â
¾ð¾î´Â ƯÁ¤ ±¸Çö¾ð¾î¿¡ Á¾¼ÓµÇÁö ¾Ê°í ¿øÇÏ´Â ÀÎÅÍÆäÀ̽º¸¸À» Á¤ÀÇÇÔÀ¸·Î¼
¼Õ½±°Ô ºÐ»ê ȯ°æÇÏ¿¡¼ ½Ã½ºÅÛÀ» ÀÛ¼ºÇÏ°Ô ÇØÁØ´Ù.
[ ´ÙÀ½ | ÀÌÀü ]