|
Facebook Joinc ±×·ì
Joinc QA »çÀÌÆ®
joinc´Â Firefox¿Í chrome¿¡¼ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.
Overview of ACE
ACE(Adaptive Communication Environment)´Â °ø°³ÀûÀ¸·Î °³¹ßµÇ°í ÀÖ´Â °´Ã¼ÁöÇâ ÇÁ·¹ÀÓ¿öÅ©·Î, µ¿½Ã Åë½Å(concurrent communication)À» ´Ù·ç±â À§ÇÑ ¸¹Àº ÆÐÅϵéÀ» Æ÷ÇÔÇϰí ÀÖ´Ù. ACE´Â Àç »ç¿ë°¡´ÉÇÑ c++ Æ÷Àå°ú ¿î¿µÃ¼Á¦¸¦ °¡·ÎÁö¸¦ ¼ö ÀÖ´Â Åë½Å ¼ÒÇÁÆ®¿þ¾îÀÇ °³¹ßÀ» À§ÇÑ ÇÁ·¹ÀÓ¿öÅ© ÄÄÆ÷³ÍÆ®¸¦ Á¦°øÇÑ´Ù. Åë½Å ¼ÒÇÁÆ®¿þ¾îÀÇ Á¦ÀÛÀ» À§Çؼ ACE´Â event demultiplexing, event handler dispatching, ½Ã±×³Î Á¦¾î, ¼ºñ½º ÃʱâÈ, ³»ºÎÅë½Å(IPC), °øÀ¯¸Þ¸ð¸® °ü¸®, ¸Þ½ÃÁö °æ·ÎÁöÁ¤(message routing), µ¿Àû ¼³Á¤, ¹èÆ÷ ¼ºñ½º, µ¿½Ã½ÇÇà°ú µ¿±âÈ µîÀ» Áö¿øÇÑ´Ù.
ACE´Â ³ôÀº ¼º´É°ú ½Ç½Ã°£ Åë½Å ¼ºñ½º¸¦ ÇÊ¿ä·Î ÇÏ´Â ¾ÖÇø®ÄÉÀ̼ÇÀÇ Á¦ÀÛÀ» ¸ñÇ¥·Î ÇÑ´Ù. ACE¸¦ ÀÌ¿ëÇÏ¸é °´Ã¼ÁöÇâÀ» ÁöÇâÇÏ´Â ³×Æ®¿öÅ© ¾ÖÇø®ÄÉÀ̼ǰú ¼ºñ½º¸¦ ½±°Ô °³¹ßÇÒ ¼ö ÀÖ´Ù. ´õºÒ¾î ACE´Â µ¿Àû ¸µÅ© ¼ºñ½º¸¦ ÀÌ¿ëÇØ¼ automate system configuration°ú Àç¼³Á¤(reconfiguration)À» °¡´ÉÇϵµ·Ï ÇÑ´Ù.
ACE´Â ¿ÀǼҽº»óÅ¿¡¼ °³¹ßµÇ°í ÀÖÁö¸¸ Riverace¿Í °°Àº ȸ»ç¸¦ ÅëÇØ¼ »ó¾÷ÀûÁö¿øµµ Çϰí ÀÖ´Ù. ÃÖ±Ù ACEÀÇ ¸¹Àº °³¹ß¸â¹öµéÀº ACE ORBÀÇ ¿Ï¼ºÀ» À§Çؼ µ¿ºÐ¼ÁÖ Çϰí ÀÖ´Ù.
ACE¸¦ ÅëÇØ¼ ¾òÀ» ¼ö ÀÖ´Â ÀÕÁ¡
- °£´ÜÇÔ : ACE ÄÄÆ÷³ÍÆ®¸¦ ÀÌ¿ëÇØ¼ ÀÛ¼ºµÈ ³×Æ®¿öÅ© ÀÀ¿ëÀº ´Ù¸¥ ¿©·¯Á¾·ùÀÇ OS·Î ½±°Ô Æ÷ÆÃ °¡´ÉÇÏ´Ù. ¶ÇÇÑ ¿ÀǼҽº¸¦ ÁöÇâÇϰí Àֱ⠶§¹®¿¡, ACE¸¦ ¾ò°í ÄÄÆÄÀÏÇÏ°í »ç¿ëÇϴµ¥ ÀÖ¾î¼ ¾î¶°ÇÑ Á¦¾àµµ °¡ÇØÁöÁö ¾Ê´Â´Ù.
- ¼ÒÇÁÆ®¿þ¾îÀÇ ÁúÀû Çâ»ó : ACE ÄÄÆ÷³ÍÆ®´Â È®À强, À¯¿¬¼º, °íǰÁú, Àç»ç¿ë, ¸ðµâȸ¦ ¸ñÀûÀ¸·ÎÇÑ ÆÐÅÏÀ» Àû¿ë½ÃÄѼ µðÀÚÀÎ µÇ¾ú´Ù.
- ³ôÀº ¼öÁØÀÇ Ç¥ÁØÀûÀÎ ¹Ìµé¿þ¾î ÀÛ¼º : ACE´Â Àç»ç¿ë °¡´ÉÇÑ ÄÄÆ÷³ÍÆ®¿Í ACE ORB(TAO)ÆÐÅÏÀ» ÀÌ¿ëÇÑ´Ù. TAO´Â ¿ÀǼҽº ±â¹ÝÀÇ Ç¥ÁØÀûÀÎ (³ôÀº ¼º´ÉÀ» À§Çؼ ÃÖÀûȵÈ)CORBAȯ°æÀ» Áö¿øÇÑ´Ù. ÀÌó·³ ACE¿Í TAO¸¦ ÀÌ¿ëÇØ¼ ¹Ìµé¿þ¾î ¼Ö·ù¼ÇÀ» ½±°Ô °³¹ßÇÒ ¼ö ÀÖ´Ù.
ACEÀÇ ±¸Á¶
ACE´Â ´ÙÀ½°ú °°Àº ÄÄÆ÷³ÍÆ®µéÀÇ »ó¼Ó°ú ¿¬°áÀ» ÅëÇØ¼ ÀÌ·ç¾îÁø´Ù.
ACE ¿î¿µÃ¼Á¦ ¾îµªÅÍ °èÃþ
ÀÌ °èÃþÀº native ¿î¿µÃ¼Á¦ APIÀÇ ¹Ù·Î À§¿¡ À§Ä¡Çϸç C·Î ¸¸µé¾îÁ® ÀÖ´Ù. ÀÌ ºÎºÐÀº POSIX¸¦ ÃÖ´ëÇÑ µû¸£µµ·Ï µÇ¾î ÀÖÀ¸¸ç, ACEÀÇ ´Ù¸¥ ÄÄÆ÷³ÍÆ®µé°ú °èÃþÀ» ºÐ¸®½ÃÅ´À¸·Î½á ACE°¡ ¿î¿µÃ¼Á¦¸¦ °¡·ÎÁö¸¦ ¼ö ÀÖµµ·Ï µµ¿ÍÁØ´Ù. ¿©±â¿¡¼´Â ´ÙÀ½°ú °°Àº OS APIµéÀ» °èÃþ ¹Ø¿¡¼ Áö¿øÇÑ´Ù.
- µ¿½Ã¼º°ú µ¿±âÈ : ´ÙÁß ¾²·¹µå, ´ÙÁß ÇÁ·Î¼¼½Ì, µ¿±âÈ¿Í °ü·ÃµÈ OS API¸¦ ĸ½¶È ÇÑ´Ù.
- ³»ºÎÅë½Å(IPC)¿Í °øÀ¯ ¸Þ¸ð¸® : ³»ºÎ Åë½Å°ú °øÀ¯ ¸Þ¸ð¸®¿Í °ü·ÃµÈ OS API¸¦ ĸ½¶È ÇÑ´Ù.
- event demultiplexing mechanisms : µ¿±â, ºñµ¿±â demultiplexing I/O°ü·Ã OS API¸¦ ĸ½¶È ÇÑ´Ù.
- µ¿Àû ¸µÅ© : µ¿Àû¸µÅ©¸¦ À§ÇÑ OS APIÀÇ Ä¸½¶È
- ÆÄÀÏ ½Ã½ºÅÛ : ÆÄÀϰú µð·ºÅ丮ÀÇ Á¦¾î¸¦ À§ÇÑ OS ÆÄÀÏ ½Ã½ºÅÛ APIµé¿¡ ´ëÇÑ Ä¸½¶È
¿î¿µÃ¼Á¦¿Í °¡Àå ¹ÐÁ¢ÇÏ°Ô À§Ä¡Çϰí ÀÖ´Ù´Â °èÃþÀÇ Æ¯¼º ¶§¹®¿¡, ¿î¿µÃ¼Á¦ ¾îµªÅÍ °èÃþÀÌ Áö¿øÇÏ´Â ¿î¿µÃ¼Á¦ÀÇ Á¾·ù°¡ °ð ACE°¡ Áö¿øÇÏ´Â ¿î¿µÃ¼Á¦ÀÇ Á¾·ù°¡ µÈ´Ù. ÇöÀç ACE´Â À©µµ¿ìÁî(WinNT 3.5.x, 4.x, 2000, ÀÓº£µðµå NT, XP, Win95/98, WinCE - MSVC++, Borland C++ Builder, Visual Age), Mac OS X, Solaris, HP-UX, FreeBSD, NetBSD, SCO, UnixWare, AIX 3.x, True64UNIX 3.x, OpenVMS, MVS OpenEdition, CRAY UNICOS, LynxOS, ChorusOS, QnX Neutrino, RT Linux µîÀ» Áö¿øÇϰí ÀÖ´Ù.
¿î¿µÃ¼Á¦ ÀÎÅÍÆäÀ̽º¸¦ À§ÇÑ C++ Æ÷Àå
°³¹ßÀÚ´Â OSÀÇÁ¸ÀûÀÎ Äڵ带 ¸¸µé±â À§Çؼ ½Ã½ºÅÛ ÇÁ·Î±×·¡¹Ö ±â¼úÀ» ³·Àº ¼öÁØ¿¡¼ ÀÌÇØÇÒ ÇÊ¿ä ¾øÀÌ ACEÀÇ OS ¾îµªÅͰèÃþ À§¿¡¼ C++ÀÇ Å¬·¡½º¸¦ »ç¿ëÇÏ¸é µÇ¹Ç·Î °£´ÜÇÏ°Ô ¿øÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÒ ¼ö ÀÖ´Ù. ÀÌ C++Ŭ·¡½º´Â OSÀÇÁ¸ÀûÀÎ Åë½Å, ¸Þ¸ð¸® °ü¸®, À̺¥Æ® Àü´Þ, µ¿Àû¸µÅ© ÆÄÀÏ ½Ã½ºÅÛ APIµéÀ» ĸ½¶È½ÃŲ´Ù. °³¹ßÀÚ´Â ÀÌ·¯ÇÑ Æ÷ÀåÀ¸·Î ºÎÅÍ »ó¼Ó, aggregatine, and/or instantiating ½ÃÅ´À¸·Î½á ÀÀ¿ëÀ» °³¹ßÇÒ ¼ö ÀÖ´Ù. ¿©±â¿¡´Â ´ÙÀ½°ú °°Àº ÄÄÆ÷³ÍÆ®µéÀÌ Æ÷ÇԵȴÙ.
- µ¿½Ã½ÇÇà¹× µ¿±âÈ ÄÄÆ÷³ÍÆ® : ACE´Â ¿î¿µÃ¼Á¦ÀÇ ¹ÂÅØ½º¿Í ¼¼¸¶Æ÷¾î¿Í °°Àº ¸ÖƼ¾²·¹µå/¸ÖƼÇÁ·Î¼¼½º ¸ÞÄ¿´ÏÁòÀ» °´Ã¼ÁöÇâÀûÀ¸·Î ³ôÀº ¼öÁØ¿¡¼ Ãß»óÈ ½ÃŲ´Ù.
- IPC¿Í ÆÄÀϽýºÅÛ ÄÄÆ÷³ÍÆ® : TLI, UNIX FIFO, ÆÄÀÌÇÁ, Win32ÀÇ Named ÆÄÀÌÇÁ¿Í ÆÄÀϽýºÅÛ°ü·Ã APIµéÀ» C++ Æ÷ÀåÀ¸·Î ĸ½¶È ÇÑ´Ù.
- ¸Þ¸ð¸®°ü¸® ÄÄÆ÷³ÍÆ® : ACE´Â À¯¿¬Çϰí È®Àå¼® ³ôÀº ¸Þ¸ð¸® °ü¸® ¹æ¹ýÀ» Á¦°øÇÑ´Ù.¿©±â¿¡´Â µ¿Àû¸Þ¸ð¸® °ü¸®, °øÀ¯¸Þ¸ð¸®, Èü¸Þ¸ð¸® °ü·Ã Ãß»óÀ» Æ÷ÇÔÇÑ´Ù.
ÇÁ·¹ÀÓ¿öÅ©
ACE´Â ³ôÀº ¼öÁØ¿¡¼ÀÇ ³×Æ®¿öÅ© ÇÁ·Î±×·¡¹ÖÀ» Áö¿øÇϱâ À§ÇÑ ÅëÇÕµÈ C++ ÀÎÅÍÆäÀ̽º¸¦ Áö¿øÇÑ´Ù. ÀÌ ÇÁ·¹ÀÓ¿öÅ©´Â ´Ù¾çÇÑ È¯°æÀ¸·ÎÀÇ ¹èÆ÷¸¦ À§ÇÑ µ¿Àû ¼³Á¤À» Áö¿øÇÑ´Ù. ACE ÇÁ·¹ÀÓ¿öÅ©¿¡´Â ´ÙÀ½°ú °°Àº ÄÄÆ÷³ÍÆ®µéÀ» Áö¿øÇÑ´Ù.
- Event demultiplexing ÄÄÆ÷³ÍÆ® : ACE Reactor°ú Proactor·Î I/O±â¹Ý, ½Ã°£±â¹Ý, ½Ã±×³Î ±â¹Ý°ú µ¿±â À̺¥Æ® ±â¹Ýµî ´Ù¾çÇÑ À̺¥Æ® Àü´Þ¹æ½ÄÀ» Áö¿øÇÑ´Ù.
- ¼ºñ½º ÃʱâÈ ÄÄÆ÷³ÍÆ® : The ACE Acceptor and Connector components decouple the active and passive initialization roles, respectively, from application-specific tasks that communication services perform once initialization is complete.
- °èÃþ±¸Á¶ÀÇ ½ºÆ®¸² ÄÄÆ÷³ÍÆ® : ACE ½ºÆ®¸² ÄÄÆ÷³ÍÆ®¸¦ ÀÌ¿ëÇϸé À¯Àú·¹ºô ÇÁ·ÎÅäÄÝ ½ºÅÃÀ» »ç¿ëÇÏ´Â Åë½Å ¾ÖÇø®ÄÉÀ̼ÇÀ» °£´ÜÇÏ°Ô °³¹ßÇÒ ¼ö ÀÖ´Ù.
- ORB ¾îµªÅÍ ÄÄÆ÷³ÍÆ® : ACE´Â ORB ¾îµªÅ͸¦ ÀÌ¿ëÇÏ¸é ´ÜÀÏ/´ÙÁß ¾²·¹µå CORBA¸¦ ÀÌ¿ëÇØ¼ ÅëÇÕµÈ Åë½Åȯ°æÀ» ±¸ÃàÇÒ ¼ö ÀÖ´Ù.
ACE ÇÁ·¹ÀÓ¿öÅ© ÄÄÆ÷³ÍÆ®´Â ¼öÁ¤À̳ª, ÀçÄÄÆÄÀÏ, À縵ũµîÀÌ ÇÊ¿ä ¾øÀÌ ´ÜÁö (°¡²û ¾ÖÇø®ÄÉÀ̼ÇÀ» Àç½ÃÀÛ ½ÃÄÑÁÖ´Â Á¤µµ)·Î Àû¿ë°¡´ÉÇϵµ·Ï ÇØÁØ´Ù. ÀÌ·¯ÇÑ À¯¿¬¼ºÀº C++ÀÇ ÅÛÇø´°ú »ó¼Ó, ´ÙÀ̳ª¹Í ¹ÙÀεù, µðÀÚÀÎ ÆÐÅÏ, Ãß»óµîÀ» ÀÌ¿ëÇÔÀ¸·Î½á °¡´ÉÇØÁø´Ù.
¹èÆ÷¿Í ÄÄÆ÷³ÍÆ®
OS adaptation °èÃþ¿¡¼´Â Æ÷ÇÔµÈ ÄÄÆ÷³ÍÆ®µéÀ» ÆÐŰ¡ÇÏ°í ¹èÆ÷Çϱâ À§ÇÑ Ç¥ÁØ ¶óÀ̺귯¸®¸¦ Á¦°øÇÑ´Ù. À̸¦ À§Çؼ ACE´Â ´ÙÀ½°ú °°Àº µÎ°¡Áö ±ÔÄ¢À» ÅëÇØ¼ ÄÄÆ÷³ÍÆ®¸¦ ÀÛ¼ºÇÏ°í ¹èÆ÷ÇÑ´Ù.
- ¼ºñ½º ÄÄÆ÷³ÍÆ®´Â ÀϹÝÀûÀÎ ¾ÖÇø®ÄÉÀÌ¼Ç ÀÛ¼º½Ã ¿î¿µÃ¼Á¦¿¡ »ó°ü¾øÀÌ µ¿ÀÏÇÑ Äڵ带 À¯ÁöÇÏ°í ¹èÆ÷ÇÒ ¼ö ÀÖµµ·Ï Çϱâ À§Çؼ, À̺¥Æ® Àü´Þ, ·Î±ë, ½Ã°£µ¿±âÈ, ³×Æ®¿öÅ© Àá±Ý°ú °°Àº °øÅë ¶óÀ̺귯¸®¸¦ Àç»ç¿ë °¡´ÉÇϵµ·Ï ÇÑ´Ù.
- ¹èÆ÷ ¼ºñ½º´Â Reactors, Service Configurators, Acceptors, Connectors, Active Objects, IPC(12)¸¦ »ç¿ëÇϱâ À§ÇÑ Æ÷ÀåŬ·¡½º¸¦ Á¦°øÇϸç, °³¹ßÀÚµéÀÌ Åë½Å ¼ÒÇÁÆ®¿þ¾î¸¦ »ç¿ëÇϴµ¥ ÀÖ¾î¼ À§ÀÇ ÀÚ¿øµéÀ» À¯¿¬ÇÏ°Ô È®Àå½ÃÄѼ »ç¿ëÇÒ ¼ö ÀÖµµ·Ï ¸¸µé¾îÁ® ÀÖ´Ù.
³ôÀº ¼öÁØÀÇ ¹Ìµé¿þ¾î ÄÄÆ÷³ÍÆ® Á¦°ø
Developing robust, extensible, and efficient communication applications is challenging, even when using a communication framework like ACE. In particular, developers must still master a number of complex OS and communication concepts such as:
- Network addressing and service identification.
- Presentation conversions, such as encryption, compression, and network byte-ordering conversions between heterogeneous end-systems with alternative processor byte-orderings.
- Process and thread creation and synchronization.
- System call and library routine interfaces to local and remote interprocess communication (IPC) mechanisms.
It is possible to alleviate some of the complexity of developing communication applications by employing higher-level distributed computing middleware, such as CORBA, DCOM, or Java RMI. Higher-level distributed computing middleware resides between clients and servers and automates many tedious and error-prone aspects of distributed application development,
including:
- Authentication, authorization, and data security.
- Service location and binding.
- Service registration and activation.
- Demultiplexing and dispatching in response to events.
- Implementing message framing atop bytestream-oriented communication protocols like TCP.
- Presentation conversion issues involving network byte-ordering and parameter marshaling.
To provide developers of communication software with these features, the following higher-level middleware applications are bundled with the ACE release:
- The ACE ORB (TAO) -- TAO is a real-time implementation of CORBA built using the framework components and patterns provided by ACE. TAO contains the network interface, OS, communication protocol, and CORBA middleware components and features. TAO is based on the standard OMG CORBA reference model, with the enhancements designed to overcome the shortcomings of conventional ORBs for high-performance and real-time applications. TAO, like ACE, is freely available, open source software.
- JAWS -- JAWS is a high-performance, adaptive Web server built using the framework components and patterns provided by ACE. JAWS is structured as a framework of frameworks. The overall JAWS framework contains the following components and frameworks: an Event Dispatcher, Concurrency Strategy, I/O Strategy, Protocol Pipeline, Protocol Handlers, and Cached Virtual Filesystem. Each framework is structured as a set of collaborating objects implemented by combining and extending components in ACE. JAW is also freely available, open-source software.
|
|