![]() | |
Sun Java System Message Queue 3.5 SP1 °ü¸® ¼³¸í¼ |
1Àå
°³¿äÀÌ Àå¿¡¼´Â Sun Java System Message Queue¸¦ ¼Ò°³ÇÏ¸ç °ü¸®ÀÚ¿Í ÇÁ·Î±×·¡¸Ó°¡ °ü½ÉÀ» °¡Áú ³»¿ëÀ¸·Î ±¸¼ºµË´Ï´Ù.
Sun Java System Message Queue ¼Ò°³Message Queue Á¦Ç°Àº ºÐ»ê ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ ¾ÈÁ¤ÀûÀÎ ºñµ¿±â ¸Þ½Ã¡À» À§ÇÑ Ç¥ÁØ ±â¹Ý ¼Ö·ç¼ÇÀÔ´Ï´Ù. Message Queue´Â JMS (Java Message Service) °³¹æÇü Ç¥ÁØÀ» ±¸ÇöÇÏ´Â ¿£ÅÍÇÁ¶óÀÌÁî ¸Þ½Ã¡ ½Ã½ºÅÛÀ̸ç JMS ÂüÁ¶ ±¸Çö ¿ªÇÒÀ» ÇÕ´Ï´Ù. ÇÏÁö¸¸ Message Queue´Â ¿£ÅÍÇÁ¶óÀÌÁî±Þ ±â´ÉÀ» Á¦°øÇÏ´Â ¿Ïº®ÇÑ ±â´ÉÀÇ JMS °ø±ÞÀÚÀ̱⵵ ÇÕ´Ï´Ù.
JMS »ç¾çÀº ºÐ»ê ȯ°æ¿¡¼ Java ¾ð¾î ÀÀ¿ë ÇÁ·Î±×·¥À¸·Î ¸Þ½ÃÁö¸¦ ÀÛ¼ºÇϰí, Àü¼ÛÇϰí, ¼ö½ÅÇϸç ÀÐÀ» ¼ö ÀÖ´Â °øÅëµÈ ¹æ½ÄÀ» Á¦°øÇÏ´Â ¸Þ½Ã¡ ÀÇ¹Ì¿Í µ¿ÀÛ ¹× ÀÀ¿ë ÇÁ·Î±×·¥ ÇÁ·Î±×·¡¹Ö ÀÎÅÍÆäÀ̽º(API)ÀÇ ÁýÇÕÀ» ¼³¸íÇÕ´Ï´Ù("JMS ÇÁ·Î±×·¡¹Ö ¸ðµ¨" ÂüÁ¶). Java ¸Þ½Ã¡ ÀÀ¿ë ÇÁ·Î±×·¥ Áö¿ø ¿Ü¿¡ Message Queue´Â Message Queue ¼ºñ½º¿¡ C ¾ð¾î ÀÎÅÍÆäÀ̽º(Message Queue C-API)µµ Á¦°øÇÕ´Ï´Ù.
Sun Java System Message Queue ¼ÒÇÁÆ®¿þ¾î¸¦ »ç¿ëÇÏ¸é ¼·Î ´Ù¸¥ Ç÷§Æû°ú ¿î¿µ üÁ¦¿¡¼ ½ÇÇàµÇ´Â ÇÁ·Î¼¼½ºµéÀÌ °øÅëÀÇ Message Queue ¸Þ½ÃÁö ¼ºñ½º("¸Þ½ÃÁö ¼ºñ½º ±¸Á¶" ÂüÁ¶)¿¡ ¿¬°áÇÏ¿© Á¤º¸¸¦ º¸³»°í ¹ÞÀ» ¼ö ÀÖ½À´Ï´Ù. ÀÀ¿ë ÇÁ·Î±×·¥ °³¹ßÀÚµéÀº ³×Æ®¿öÅ©¸¦ ÅëÇÑ ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ ¾ÈÁ¤ÀûÀÎ Åë½Å ¹æ½Ä°ú °ü·ÃµÈ ÇÏÀ§ ¼öÁØÀÇ ¼¼ºÎ »çÇ׺¸´Ù´Â ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ ºñÁî´Ï½º ³í¸®¿¡ Á» ´õ ÁýÁßÇÒ ¼ö ÀÖ½À´Ï´Ù.
Message Queue¿¡´Â JMS »ç¾çÀÇ ÃÖ¼Ò ¿ä±¸ »çÇ×À» ´É°¡ÇÏ´Â ±â´ÉÀÌ ÀÖ½À´Ï´Ù. ´ÙÀ½Àº ±×·¯ÇÑ ±â´ÉÀÇ ¿¹ÀÔ´Ï´Ù.
Áß¾Ó ÁýÁᫎ °ü¸® Message Queue ¼ºñ½º °ü¸®¿Í ´ë»ó, Æ®·£Àè¼Ç, ¿µ±¸ °¡ÀÔ, º¸¾È µî°ú ÀÀ¿ë ÇÁ·Î±×·¥ Á¾¼Ó Ç׸ñÀÇ °ü¸®¸¦ À§ÇÑ ¸í·ÉÁÙ µµ±¸¿Í GUI µµ±¸¸¦ Á¦°øÇÕ´Ï´Ù. Message Queue´Â Message Queue ¼ºñ½ºÀÇ ¿ø°Ý ¸ð´ÏÅ͸µµµ Áö¿øÇÕ´Ï´Ù.
È®Àå °¡´ÉÇÑ ¸Þ½ÃÁö ¼ºñ½º ÅÄ´ýÀ¸·Î ÀÛµ¿ÇÏ´Â ¸¹Àº Message Queue ¸Þ½ÃÁö ¼¹ö ±¸¼º ¿ä¼Ò(ºê·ÎÄ¿), Áï ¸ÖÆ¼ ºê·ÎÄ¿ Ŭ·¯½ºÅÍ °£¿¡ ·Îµå ±ÕÇüÀ» Á¶Á¤ÇÏ¿© ´õ ¸¹Àº ¼öÀÇ Message Queue Ŭ¶óÀ̾ðÆ®(±¸¼º ¿ä¼Ò ¶Ç´Â ÀÀ¿ë ÇÁ·Î±×·¥) ¼ºñ½º¸¦ Á¦°øÇÒ ¼ö ÀÖ½À´Ï´Ù.
Ŭ¶óÀÌ¾ðÆ® ¿¬°á ÆäÀÏ¿À¹ö Message Queue ¸Þ½ÃÁö ¼¹ö¿¡ ´ëÇÑ ½ÇÆÐÇÑ Å¬¶óÀÌ¾ðÆ® ¿¬°áÀ» ÀÚµ¿À¸·Î º¹¿øÇÕ´Ï´Ù.
Á¶Á¤ °¡´ÉÇÑ ¼º´É Àü´Þ ¾ÈÁ¤¼ºÀ» ´õ ³·Ãâ ¼ö ÀÖ´Â °æ¿ì Message Queue ¼ºñ½ºÀÇ ¼º´ÉÀ» ³ôÀÏ ¼ö ÀÖ½À´Ï´Ù.
´ÙÁß Àü¼Û TCP¿Í HTTP µîÀÇ ´Ù¾çÇÑ Àü¼Û ¹æ½ÄÀ» ÅëÇØ ±×¸®°í º¸¾È(SSL) ¿¬°áÀ» »ç¿ëÇÏ¿© Message Queue ¸Þ½ÃÁö ¼¹ö¿Í Åë½ÅÀÌ °¡´ÉÇÑ Message Queue Ŭ¶óÀ̾ðÆ®ÀÇ ±â´ÉÀ» Áö¿øÇÕ´Ï´Ù.
JNDI Áö¿ø JNDI (Java Naming and Directory Interface)¸¦ °´Ã¼ ÀúÀå¼Ò ¹× »ç¿ëÀÚ ÀúÀå¼Ò·Î ±¸ÇöÇÏ´Â ÆÄÀÏ ±â¹Ý ¹× LDAP ¹æ½ÄÀ» ¸ðµÎ Áö¿øÇÕ´Ï´Ù.
SOAP ¸Þ½Ã¡ Áö¿ø JMS ¸Þ½Ã¡À» ÅëÇØ SOAP ¸Þ½ÃÁö, Áï SOAP (Simple Object Access Protocol) »ç¾ç¿¡ ÀÏÄ¡ÇÏ´Â ¸Þ½ÃÁöÀÇ »ý¼º ¹× Àü´ÞÀ» Áö¿øÇÕ´Ï´Ù. SOAPÀ» »ç¿ëÇÏ¸é ºÐ»ê ȯ°æ¿¡¼ ÇÇ¾î °£¿¡ ±¸Á¶ÈµÈ XML µ¥ÀÌÅ͸¦ ±³È¯ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÚ¼¼ÇÑ ³»¿ëÀº Message Queue Java Client Developer's Guide¸¦ ÂüÁ¶ÇϽʽÿÀ.
JMS ȣȯ¼º¿¡ ´ëÇÑ Á¤º¸´Â ºÎ·Ï G, "¼±ÅÃÀû JMS ±â´ÉÀÇ Message Queue ±¸Çö"À» ÂüÁ¶ÇϽʽÿÀ.
Á¦Ç° ÆÇSun Java System Message Queue´Â Ç÷§ÆûÆÇ°ú ¿£ÅÍÇÁ¶óÀÌÁîÆÇÀÇ µÎ ¹öÀüÀ¸·Î Á¦°øµÇ¸ç, ÀÌ ¹öÀüµéÀº ´ÙÀ½°ú °°ÀÌ ±â´É°ú »ç¿ë±Ç ¿ë·®ÀÌ ¼·Î ´Ù¸¨´Ï´Ù(Message Queue¸¦ ´Ù¸¥ ÆÇÀ¸·Î ¾÷±×·¹À̵åÇÏ´Â ¹æ¹ýÀº Message Queue ¼³Ä¡ ¼³¸í¼ ÂüÁ¶).
Ç÷§ÆûÆÇ
ÀÌ ¹öÀüÀº Sun À¥ »çÀÌÆ®¿¡¼ ¹«·á·Î ´Ù¿î·ÎµåÇÒ ¼ö ÀÖÀ¸¸ç Sun Java System Application Server Ç÷§Æû°ú ÇÔ²² Á¦°øµË´Ï´Ù. Ç÷§ÆûÆÇÀÇ °æ¿ì Message Queue ¸Þ½ÃÁö ¼ºñ½º°¡ Áö¿øÇϴ Ŭ¶óÀÌ¾ðÆ® ¿¬°áÀÇ ¼ö¿¡ Á¦ÇÑÀÌ ¾ø½À´Ï´Ù. ¿©±â¿¡´Â ´ÙÀ½°ú °°Àº µÎ °¡Áö »ç¿ë±ÇÀÌ Á¦°øµË´Ï´Ù.
- ±âº» »ç¿ë±Ç ÀÌ »ç¿ë±ÇÀº ±âº»ÀûÀÎ JMS Áö¿ø(Àüü JMS °ø±ÞÀÚ)À» Á¦°øÇÏÁö¸¸ ·Îµå ±ÕÇü Á¶Á¤(¸ÖƼ ºê·ÎÄ¿ ¸Þ½ÃÁö ¼ºñ½º), HTTP/HTTPS ¿¬°á, º¸¾È ¿¬°á ¼ºñ½º, È®Àå °¡´ÉÇÑ ¿¬°á ±â´É, Ŭ¶óÀÌ¾ðÆ® ¿¬°á ÆäÀÏ¿À¹ö, ´ÙÁß »ç¿ëÀÚ·ÎÀÇ ´ë±â¿ Àü´Þ, ¿ø°Ý ¸Þ½ÃÁö ±â¹Ý ¸ð´ÏÅ͸µ, C-API Áö¿ø µî°ú °°Àº ¿£ÅÍÇÁ¶óÀÌÁî ±â´ÉÀº Æ÷ÇÔÇÏÁö ¾Ê½À´Ï´Ù. »ç¿ë±ÇÀº ¹«±âÇÑ »ç¿ëÇÒ ¼ö ÀÖÀ¸¸ç µû¶ó¼ »ý»ê ¿ä±¸°¡ ÀûÀº ȯ°æ¿¡¼ »ç¿ëµË´Ï´Ù.
- 90ÀÏ ½ÃÇè ¿£ÅÍÇÁ¶óÀÌÁî »ç¿ë±Ç ÀÌ »ç¿ë±Ç¿¡´Â ±âº» »ç¿ë±Ç¿¡ Æ÷ÇÔµÇÁö ¾ÊÀº ¸ðµç ¿£ÅÍÇÁ¶óÀÌÁî ±â´É(¸ÖƼ ºê·ÎÄ¿ ¸Þ½ÃÁö ¼ºñ½º Áö¿ø, HTTP/HTTPS ¿¬°á, º¸¾È ¿¬°á ¼ºñ½º, È®Àå °¡´ÉÇÑ ¿¬°á ±â´É, Ŭ¶óÀÌ¾ðÆ® ¿¬°á ÆäÀÏ¿À¹ö, ´ÙÁß »ç¿ëÀÚ·ÎÀÇ ´ë±â¿ Àü´Þ, ¿ø°Ý ¸Þ½ÃÁö ±â¹Ý ¸ð´ÏÅ͸µ, C-API Áö¿ø µî)ÀÌ Æ÷ÇԵ˴ϴÙ. ÇÏÁö¸¸ ¼ÒÇÁÆ®¿þ¾î´Â »ç¿ë±Ç¿¡ 90ÀÏÀÇ Á¦ÇÑÀ» µÎ±â ¶§¹®¿¡ ÇØ´ç Á¦Ç°ÀÇ ¿£ÅÍÇÁ¶óÀÌÁîÆÇ¿¡¼ »ç¿ë °¡´ÉÇÑ ¿£ÅÍÇÁ¶óÀÌÁî ±â´É Æò°¡¿¡ ÀûÇÕÇÕ´Ï´Ù("¿£ÅÍÇÁ¶óÀÌÁîÆÇ" ÂüÁ¶).
ÁÖ
90ÀÏ ½ÃÇè »ç¿ë±ÇÀº "¿£ÅÍÇÁ¶óÀÌÁîÆÇ ½ÃÇè »ç¿ë±ÇÀ¸·Î ºê·ÎÄ¿ ÀνºÅϽº¸¦ ½ÃÀÛÇÏ´Â ¹æ¹ý"¿¡ ¼³¸íµÈ ´ë·Î Message Queue ¸Þ½ÃÁö ¼¹ö(Message Queue ºê·ÎÄ¿ ÀνºÅϽº)¸¦ ½ÃÀÛÇÏ¿© Ȱ¼ºÈÇÒ ¼ö ÀÖ½À´Ï´Ù.
¿£ÅÍÇÁ¶óÀÌÁîÆÇ
ÀÌ ÆÇÀº »ý»ê ȯ°æ¿¡¼ ¸Þ½Ã¡ ÀÀ¿ë ÇÁ·Î±×·¥À» ¹èÆ÷ ¹× ½ÇÇàÇÒ ¶§ »ç¿ëµË´Ï´Ù. ¿©±â¿¡´Â ¸ÖƼ ºê·ÎÄ¿ ¸Þ½ÃÁö ¼ºñ½º Áö¿ø, HTTP/HTTPS ¿¬°á, º¸¾È ¿¬°á ¼ºñ½º, È®Àå °¡´ÉÇÑ ¿¬°á ±â´É, Ŭ¶óÀÌ¾ðÆ® ¿¬°á ÆäÀÏ¿À¹ö, ´ÙÁß »ç¿ëÀÚ·ÎÀÇ ´ë±â¿ Àü´Þ, ¿ø°Ý ¸Þ½ÃÁö ±â¹Ý ¸ð´ÏÅ͸µ, C-API µî¿¡ ´ëÇÑ Áö¿øÀÌ Æ÷ÇԵ˴ϴÙ. ¿£ÅÍÇÁ¶óÀÌÁîÆÇÀº ¸Þ½Ã¡ ÀÀ¿ë ÇÁ·Î±×·¥°ú ±¸¼º ¿ä¼ÒÀÇ °³¹ß, µð¹ö±ë, ·Îµå Å×½ºÆ®¿¡µµ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿£ÅÍÇÁ¶óÀÌÁîÆÇ¿¡´Â ¸ÖƼ ºê·ÎÄ¿ ¸Þ½ÃÁö ¼ºñ½ºÀÇ ºê·ÎÄ¿ ¼ö´Â Á¦ÇÑÇÏÁö ¾ÊÁö¸¸ »ç¿ëµÇ´Â CPUÀÇ ¼ö¸¦ ±â¹ÝÀ¸·Î ÇÏ´Â ¹«±âÇÑ »ç¿ë±ÇÀÌ ÀÖ½À´Ï´Ù.
¿£ÅÍÇÁ¶óÀÌÁî ¸Þ½Ã¡ ½Ã½ºÅÛ¿£ÅÍÇÁ¶óÀÌÁî ¸Þ½Ã¡ ½Ã½ºÅÛ¿¡¼ µ¶¸³ ºÐ»ê ÀÀ¿ë ÇÁ·Î±×·¥À̳ª ÀÀ¿ë ÇÁ·Î±×·¥ ±¸¼º ¿ä¼Ò´Â ¸Þ½ÃÁö¸¦ ÅëÇØ »óÈ£ ÀÛ¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. µ¿ÀÏÇÑ È£½ºÆ®³ª ³×Æ®¿öÅ©¿¡ Àְųª ¶Ç´Â ÀÎÅͳÝÀ» ÅëÇØ ´À½¼ÇÏ°Ô ¿¬°áµÇ¾î ÀÖ´Â ÀÌ ±¸¼º ¿ä¼ÒµéÀº ¸Þ½Ã¡À» »ç¿ëÇÏ¿© µ¥ÀÌÅ͸¦ Àü´ÞÇÏ°í °¢ÀÚÀÇ ±â´ÉÀ» Á¶Á¤ÇÕ´Ï´Ù.
¿£ÅÍÇÁ¶óÀÌÁî ¸Þ½Ã¡ ½Ã½ºÅÛÀÇ ¿ä±¸ »çÇ×
ÀϹÝÀûÀ¸·Î ¿£ÅÍÇÁ¶óÀÌÁî ÀÀ¿ë ÇÁ·Î±×·¥ ½Ã½ºÅÛÀº 24½Ã°£ ¹Ì¼Ç Å©¸®Æ¼Äà ÀÛ¾÷À¸·Î ¹«¼öÈ÷ ¸¹Àº ¸Þ½ÃÁö¸¦ ±³È¯ÇÏ´Â ¸¹Àº ¼öÀÇ ºÐ»ê ±¸¼º ¿ä¼Ò·Î ±¸¼ºµË´Ï´Ù. ±×·¯ÇÑ ½Ã½ºÅÛÀ» Áö¿øÇϱâ À§ÇØ ¿£ÅÍÇÁ¶óÀÌÁî ¸Þ½Ã¡ ½Ã½ºÅÛÀº ÀϹÝÀûÀ¸·Î ´ÙÀ½ ¿ä±¸ »çÇ×À» ¸¸Á·½ÃÄÑ¾ß ÇÕ´Ï´Ù.
¾ÈÁ¤ÀûÀÎ Àü´Þ ±¸¼º ¿ä¼Ò °£¿¡ Àü´ÞµÇ´Â ¸Þ½ÃÁö´Â ³×Æ®¿öÅ©³ª ½Ã½ºÅÛ ¿À·ù·Î ÀÎÇØ ¼Õ½ÇµÇÁö ¾Ê¾Æ¾ß ÇÕ´Ï´Ù. Áï ½Ã½ºÅÛÀº ¸Þ½ÃÁö°¡ ¼º°øÀûÀ¸·Î Àü´ÞµÇµµ·Ï º¸ÀåÇÒ ¼ö ÀÖ¾î¾ß ÇÕ´Ï´Ù.
ºñµ¿±â½Ä Àü´Þ ¸¹Àº ¼öÀÇ ±¸¼º ¿ä¼Ò°¡ µ¿½Ã¿¡ ¸Þ½ÃÁö¸¦ ±³È¯ÇÏ°í °í¿ë·®ÀÇ Ã³¸®·®À» Áö¿øÇϱâ À§Çؼ´Â ¸Þ½ÃÁö ¹ß½ÅÀÌ »ç¿ëÀÚÀÇ Áï½Ã ¼ö½Å °¡´É ¿©ºÎ¿¡ µû¶ó °áÁ¤µÇ¾î¼´Â ¾È µË´Ï´Ù. »ç¿ëÀÚ°¡ ÀÛ¾÷ ÁßÀ̰ųª ¿ÀÇÁ¶óÀÎ »óÅÂÀÎ °æ¿ì, ½Ã½ºÅÛÀº »ç¿ëÀÚ°¡ ¿Â¶óÀÎÀÌ µÉ ¶§ ¸Þ½ÃÁö ¹ß½Å ¹× ¼ö½ÅÀÌ °¡´ÉÇϵµ·Ï ÇØ¾ß ÇÕ´Ï´Ù. À̸¦ ºñµ¿±â½Ä ¸Þ½ÃÁö Àü´ÞÀ̶ó Çϸç, ÀϹÝÀûÀ¸·Î ÀúÀå ¹× Àü´Þ(store-and-forward) ¸Þ½Ã¡À̶ó°í ºÎ¸¨´Ï´Ù.
º¸¾È ¸Þ½Ã¡ ½Ã½ºÅÛÀº »ç¿ëÀÚ ÀÎÁõ, ¸Þ½ÃÁö ¹× ÀÚ¿ø¿¡ ´ëÇÑ ÀÎÁõµÈ ¾×¼¼½º, ȸ¼±À» ÅëÇÑ ¾ÏÈ£È¿Í °°Àº ±âº» º¸¾È ±â´ÉÀ» Áö¿øÇØ¾ß ÇÕ´Ï´Ù.
È®À强 ¸Þ½Ã¡ ½Ã½ºÅÛÀº ¼º´ÉÀ̳ª ¸Þ½ÃÁö 󸮷®ÀÌ ½ÇÁ¦·Î ÀúÇϵÇÁö ¾ÊÀ¸¸é¼ ·Îµå Áõ°¡(»ç¿ëÀÚ ¼ö ¹× ¸Þ½ÃÁö ¼ö Áõ°¡)¸¦ ¼ö¿ëÇÒ ¼ö ÀÖ¾î¾ß ÇÕ´Ï´Ù. ¾÷¹«¿Í ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ ´Ã¾î³ª¸é ÀÌ´Â ¸Å¿ì Áß¿äÇÑ ¿ä±¸ »çÇ×ÀÌ µË´Ï´Ù.
°ü¸®¼º ¸Þ½Ã¡ ½Ã½ºÅÛÀº ¸Þ½ÃÁö Àü´ÞÀ» ¸ð´ÏÅ͸µ ¹× °ü¸®ÇÏ°í ½Ã½ºÅÛ ÀÚ¿øÀ» ÃÖÀûÈÇÏ´Â µµ±¸¸¦ Á¦°øÇØ¾ß ÇÕ´Ï´Ù. ÀÌ·¯ÇÑ µµ±¸´Â ¾ÈÁ¤¼º, º¸¾È ¹× ¼º´ÉÀÇ ÃøÁ¤°ú °ü¸®¸¦ Áö¿øÇÕ´Ï´Ù.
Áß¾Ó ÁýÁᫎ ¸Þ½Ã¡°ú ÇǾî Åõ ÇǾî(Peer to Peer) ¸Þ½Ã¡ ºñ±³
±×¸² 1-1¿¡¼ È®ÀÎÇÒ ¼ö ÀÖµíÀÌ ±âÁ¸ÀÇ ÇǾî Åõ ÇǾî(Peer to Peer) ¸Þ½Ã¡ ½Ã½ºÅÛÀ¸·Î´Â ¿£ÅÍÇÁ¶óÀÌÁî ¸Þ½Ã¡ ½Ã½ºÅÛÀÇ ¿ä±¸ »çÇ×À» ¸¸Á·½ÃŰ±â ¾î·Æ½À´Ï´Ù.
±×¸² 1-1 Áß¾Ó ÁýÁᫎ ¸Þ½Ã¡°ú ÇǾî Åõ ÇǾî(Peer to Peer) ¸Þ½Ã¡ ºñ±³
±×·¯ÇÑ ½Ã½ºÅÛ¿¡¼ ¸ðµç ¸Þ½Ã¡ ±¸¼º ¿ä¼Ò´Â ´Ù¸¥ ¸ðµç ±¸¼º ¿ä¼Ò¿ÍÀÇ ¿¬°áÀ» À¯Áö °ü¸®ÇÕ´Ï´Ù. ÀÌ ¿¬°áÀ» ÅëÇØ ºü¸£°í ¾ÈÁ¤ÀûÀÌ¸ç º¸¾ÈÀÌ À¯ÁöµÈ »óÅ·ΠÀü´ÞÀ» ÇÒ ¼ö ÇÏÁö¸¸, ¾ÈÁ¤¼º°ú º¸¾ÈÀ» Áö¿øÇÏ´Â Äڵ尡 °¢ ±¸¼º ¿ä¼Ò¸¶´Ù Á¸ÀçÇØ¾ß ÇÕ´Ï´Ù. ½Ã½ºÅÛ¿¡ ±¸¼º ¿ä¼Ò°¡ Ãß°¡µÇ¸é¼ ¿¬°á ¼ö´Â ±âÇϱ޼öÀûÀ¸·Î ´Ã¾î³³´Ï´Ù. ±× °á°ú ºñµ¿±â½Ä ¸Þ½ÃÁö Àü´Þ ¹× È®À强À» ±¸ÇöÇϱ⠾î·Á¿öÁý´Ï´Ù. Áß¾Ó ÁýÁᫎ °ü¸®¿¡µµ ¹®Á¦°¡ ÀÖ½À´Ï´Ù.
±×¸² 1-1¿¡¼µµ È®ÀÎÇÒ ¼ö ÀÖµíÀÌ ±ÇÀåµÇ´Â ¿£ÅÍÇÁ¶óÀÌÁî ¸Þ½Ã¡ ¹æ½ÄÀº Áß¾Ó ÁýÁᫎ ¸Þ½Ã¡ ½Ã½ºÅÛÀÔ´Ï´Ù. ÀÌ ¹æ½Ä¿¡¼ °¢ ¸Þ½Ã¡ ±¸¼º ¿ä¼Ò´Â ´ÜÀÏ Áß¾Ó ¸Þ½ÃÁö ¼ºñ½º¿ÍÀÇ ¿¬°áÀ» À¯Áö °ü¸®ÇÕ´Ï´Ù. ÀÌ ¸Þ½ÃÁö ¼ºñ½º´Â ±¸¼º ¿ä¼Ò °£ÀÇ ¸Þ½ÃÁö ¶ó¿ìÆÃ ¹× Àü´ÞÀ» ¼öÇàÇϸç, ¾ÈÁ¤ÀûÀÎ Àü´Þ ¹× º¸¾ÈÀ» Ã¥ÀÓÁý´Ï´Ù.
±¸¼º ¿ä¼Ò´Â Àß Á¤ÀÇµÈ ÇÁ·Î±×·¡¹Ö ÀÎÅÍÆäÀ̽º¸¦ ÅëÇØ ¸Þ½ÃÁö ¼ºñ½º¿Í »óÈ£ ÀÛ¿ëÇÕ´Ï´Ù. ±¸¼º ¿ä¼Ò°¡ ½Ã½ºÅÛ¿¡ Ãß°¡µÇ¸é ÀÏÂ÷ÀûÀ¸·Î ¿¬°á ¼ö¸¸ Áõ°¡µÇ¹Ç·Î, ¸Þ½ÃÁö ¼ºñ½º¸¦ È®ÀåÇÏ¿© ½Ã½ºÅÛÀ» º¸´Ù ½±°Ô È®ÀåÇÒ ¼ö ÀÖ½À´Ï´Ù. ¶ÇÇÑ Áß¾Ó ¸Þ½ÃÁö ¼ºñ½º´Â Áß¾Ó ÁýÁᫎ ½Ã½ºÅÛ °ü¸®¸¦ Áö¿øÇÕ´Ï´Ù.¸Þ½Ã¡ ½Ã½ºÅÛ °³³ä
¿£ÅÍÇÁ¶óÀÌÁî ¸Þ½Ã¡ ½Ã½ºÅÛ¿¡´Â ¸î °¡Áö ±âº» °³³äÀÌ Á¸ÀçÇÕ´Ï´Ù. ¾Æ·¡¿¡¼ ¼³¸íÇÏ´Â ¸Þ½ÃÁö, ¸Þ½ÃÁö ¼ºñ½º ±¸Á¶ ¹× ¸Þ½ÃÁö Àü´Þ ¸ðµ¨µµ ±× ±âº» °³³ä¿¡ Æ÷ÇԵ˴ϴÙ.
¸Þ½ÃÁö
¸Þ½ÃÁö´Â ÀÏÁ¤ Çü½ÄÀÇ µ¥ÀÌÅÍ(¸Þ½ÃÁö º»¹®) ±×¸®°í ´ë»ó, ¼ö¸í ¹× ±× ¹ÛÀÇ ¸Þ½Ã¡ ½Ã½ºÅÛÀÌ °áÁ¤Çϴ Ư¼º µî°ú °°ÀÌ ¸Þ½ÃÁöÀÇ Æ¯¼ºÀ̳ª µî·Ï Á¤º¸¸¦ ¼³¸íÇÏ´Â ¸ÞŸ µ¥ÀÌÅÍ(¸Þ½ÃÁö Çì´õ)·Î ±¸¼ºµË´Ï´Ù.
¸Þ½ÃÁö ¼ºñ½º ±¸Á¶
¸Þ½Ã¡ ½Ã½ºÅÛÀÇ ±âº» ±¸Á¶´Â ±×¸² 1-2¿Í °°½À´Ï´Ù. °øÅë ¸Þ½ÃÁö ¼ºñ½º¸¦ ÅëÇØ ¸Þ½ÃÁö¸¦ ±³È¯ÇÏ´Â ¸Þ½ÃÁö »ý¼ºÀÚ¿Í ¸Þ½ÃÁö »ç¿ëÀÚ·Î ±¸¼ºµË´Ï´Ù. ¸Þ½ÃÁö »ý¼ºÀÚ¿Í »ç¿ëÀÚ´Â ±× ¼öÀÇ Á¦ÇÑ ¾øÀÌ µ¿ÀÏÇÑ ¸Þ½Ã¡ ±¸¼º ¿ä¼Ò(¶Ç´Â ÀÀ¿ë ÇÁ·Î±×·¥)¿¡ À§Ä¡ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¸Þ½ÃÁö »ý¼ºÀÚ°¡ ¸Þ½ÃÁö ¼ºñ½º¿¡ ¸Þ½ÃÁö¸¦ º¸³À´Ï´Ù. ¸Þ½ÃÁö ¼ºñ½º´Â ¸Þ½ÃÁö ¶ó¿ìÆÃ ¹× Àü´Þ ±¸¼º ¿ä¼Ò¸¦ »ç¿ëÇÏ´Â ¹æ½ÄÀ¸·Î ÇØ´ç ¸Þ½ÃÁö¿¡ ´ëÇØ ÀÎÅÍ·¹½ºÆ®¸¦ µî·ÏÇÑ Çϳª ÀÌ»óÀÇ ¸Þ½ÃÁö »ç¿ëÀÚ¿¡°Ô ¸Þ½ÃÁö¸¦ Àü´ÞÇÕ´Ï´Ù. ¸Þ½ÃÁö ¶ó¿ìÆÃ ¹× Àü´Þ ±¸¼º ¿ä¼Ò´Â °ü·ÃµÈ ¸ðµç »ç¿ëÀÚ¿¡°Ô ¸Þ½ÃÁö°¡ Àü´ÞµÇµµ·Ï º¸ÀåÇÏ´Â ¿ªÇÒÀ» ÇÕ´Ï´Ù.
±×¸² 1-2 ¸Þ½ÃÁö ¼ºñ½º ±¸Á¶
¸Þ½ÃÁö Àü´Þ ¸ðµ¨
»ý¼ºÀÚ¿Í »ç¿ëÀÚÀÇ °ü°è´Â ÀÏ´ëÀÏ, ÀÏ´ë´Ù, ´Ù´ë´Ù µî ¿©·¯ Á¾·ù°¡ ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î ´ÙÀ½°ú °°ÀÌ ¸Þ½ÃÁö¸¦ Àü´ÞÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÁÖ·Î ÀÌ °ü°èµéÀº ÁöÁ¡°£(point-to-point) ¹× °Ô½Ã/°¡ÀÔ ¸Þ½Ã¡ÀÇ 2°¡Áö ¸Þ½ÃÁö Àü´Þ ¸ðµ¨·Î Ãà¼ÒµË´Ï´Ù. ÁöÁ¡°£ Àü´Þ ¸ðµ¨Àº ƯÁ¤ »ý¼ºÀÚ°¡ º¸³»°í ƯÁ¤ »ç¿ëÀÚ°¡ ¹Þ´Â ¸Þ½ÃÁö¿¡ ÁßÁ¡À» µÓ´Ï´Ù. °Ô½Ã/°¡ÀÔ Àü´Þ ¸ðµ¨Àº ¿©·¯ »ý¼ºÀÚ°¡ º¸³»°í ¿©·¯ »ç¿ëÀÚ°¡ ¹Þ´Â ¸Þ½ÃÁö¿¡ ÁßÁ¡À» µÓ´Ï´Ù. ÀÌ ¸Þ½ÃÁö Àü´Þ ¸ðµ¨Àº Áߺ¹µÉ ¼ö ÀÖ½À´Ï´Ù.
Áö±Ý±îÁö ¸Þ½Ã¡ ½Ã½ºÅÛÀº ÀÌ 2°¡Áö ¸Þ½ÃÁö Àü´Þ ¸ðµ¨ÀÌ ´Ù¾çÇÏ°Ô °áÇÕµÈ ÇüŸ¦ Áö¿øÇß½À´Ï´Ù. JMS (Java Message Service) »ç¾çÀº Java ÇÁ·Î±×·¡¹Ö¿ë API¸¦ ÅëÇÑ ¸Þ½Ã¡À» À§ÇÑ Ç¥ÁØ Àǹ̸¦ ÀÛ¼ºÇÕ´Ï´Ù. ÀÌ API´Â ÁöÁ¡°£ ¹× °Ô½Ã/°¡ÀÔ ¸Þ½ÃÁö Àü´Þ ¸ðµ¨À» ¸ðµÎ Áö¿øÇÕ´Ï´Ù("ÇÁ·Î±×·¡¹Ö µµ¸ÞÀÎ" ÂüÁ¶).
JMS »ç¾çJMS »ç¾çÀº ¸Þ½Ã¡¿¡ Àû¿ëµÇ´Â ÇÁ·Î±×·¡¹Ö ¸ðµ¨, ¸Þ½ÃÁö ±¸Á¶, API µîÀ» ºñ·ÔÇÑ ±ÔÄ¢°ú ÀǹÌÀÇ ÁýÇÕÀ» ±ÔÁ¤ÇÕ´Ï´Ù. Message Queue´Â JMS ±¸ÇöÀ» Á¦°øÇϱ⠶§¹®¿¡ JMS °³³äÀº Message Queue ¸Þ½Ã¡ ½Ã½ºÅÛÀÇ ÀÛµ¿ ¹æ½ÄÀ» ÀÌÇØÇÏ´Â Åä´ë°¡ µË´Ï´Ù. ÀÌ ¼Ò°³ ºÎºÐ¿¡¼´Â ÀÌ Ã¥ÀÇ ³ª¸ÓÁö ÀåÀ» ÀÌÇØÇÏ´Â µ¥ ÇÊ¿äÇÑ °³³ä ¹× ¿ë¾î¸¦ ¼³¸íÇÕ´Ï´Ù.
JMS ¸Þ½ÃÁö ±¸Á¶
JMS ¸Þ½ÃÁö´Â Çì´õ, µî·Ï Á¤º¸ ¹× º»¹®ÀÇ 3°¡Áö ºÎºÐÀ¸·Î ±¸¼ºµË´Ï´Ù.
Çì´õ Çì´õ´Â ¸Þ½ÃÁöÀÇ JMS Ư¼º, Áï ´ë»ó, Áö¼Ó¼º ¿©ºÎ, ¼ö¸í ¹× ¿ì¼± ¼øÀ§¸¦ ÁöÁ¤ÇÕ´Ï´Ù. ÀÌ·¯ÇÑ Æ¯Â¡Àº ¸Þ½Ã¡ ½Ã½ºÅÛÀÇ ¸Þ½ÃÁö Àü´Þ ¹æ½Ä¿¡ ¿µÇâÀ» ¹ÌĨ´Ï´Ù.
µî·Ï Á¤º¸ µî·Ï Á¤º¸(Çì´õÀÇ È®ÀåÀ¸·Î °£ÁÖÇÒ ¼ö ÀÖÀ½)´Â ¼±Åà »çÇ×À̸ç, ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ ´Ù¾çÇÑ ¼±Åà ±âÁØ¿¡ µû¶ó ¸Þ½ÃÁö¸¦ ÇÊÅ͸µÇÒ ¶§ »ç¿ë °¡´ÉÇÑ °ªÀ» Á¦°øÇÕ´Ï´Ù. µî·Ï Á¤º¸´Â ¼±Åà »çÇ×ÀÔ´Ï´Ù.
¸Þ½ÃÁö º»¹® ¸Þ½ÃÁö º»¹®¿¡´Â ±³È¯ÇÒ ½ÇÁ¦ µ¥ÀÌÅͰ¡ Æ÷ÇԵ˴ϴÙ. JMS´Â 6°¡Áö º»¹® À¯ÇüÀ» Áö¿øÇÕ´Ï´Ù.
JMS ÇÁ·Î±×·¡¹Ö ¸ðµ¨
JMS ÇÁ·Î±×·¡¹Ö ¸ðµ¨¿¡¼ JMS Ŭ¶óÀ̾ðÆ®(±¸¼º ¿ä¼Ò ¶Ç´Â ÀÀ¿ë ÇÁ·Î±×·¥)´Â JMS ¸Þ½ÃÁö ¼ºñ½º¸¦ ÅëÇØ ¸Þ½ÃÁö¸¦ ±³È¯ÇÕ´Ï´Ù. ¸Þ½ÃÁö »ý¼ºÀÚ´Â ¸Þ½ÃÁö ¼ºñ½º·Î ¸Þ½ÃÁö¸¦ º¸³»¸ç, ¸Þ½ÃÁö »ç¿ëÀÚ´Â ¸Þ½ÃÁö ¼ºñ½º·ÎºÎÅÍ ¸Þ½ÃÁö¸¦ ¹Þ½À´Ï´Ù. ÀÌ·¯ÇÑ ¸Þ½Ã¡ ÀÛ¾÷Àº JMS API (Application Programming Interface)¸¦ ±¸ÇöÇÏ´Â °´Ã¼ ÁýÇÕ(JMS °ø±ÞÀÚ°¡ Á¦°ø)À» »ç¿ëÇÏ¿© ¼öÇàµË´Ï´Ù.
ÀÌ Àý¿¡¼´Â JMS API¸¦ ±¸ÇöÇϰí JMS Ŭ¶óÀ̾ðÆ®ÀÇ ¸Þ½ÃÁö Àü´Þ ¼³Á¤¿¡ »ç¿ëµÇ´Â °´Ã¼¸¦ ¼Ò°³ÇÕ´Ï´Ù(ÀÚ¼¼ÇÑ Á¤º¸´Â Message Queue Java Client Developer's Guide ÂüÁ¶). ±×¸² 1-3Àº ¸Þ½ÃÁö Àü´Þ ÇÁ·Î±×·¥¿¡ »ç¿ëµÇ´Â JMS °´Ã¼µéÀÔ´Ï´Ù.
±×¸² 1-3 JMS ÇÁ·Î±×·¡¹Ö °´Ã¼
JMS ÇÁ·Î±×·¡¹Ö ¸ðµ¨¿¡¼ JMS Ŭ¶óÀÌ¾ðÆ®´Â ConnectionFactory °´Ã¼¸¦ »ç¿ëÇÏ¿© ¸Þ½ÃÁö ¼ºñ½º¿Í ¸Þ½ÃÁö¸¦ ¼Û¼ö½ÅÇÒ ¿¬°áÀ» ¸¸µì´Ï´Ù. ConnectionÀº Ŭ¶óÀÌ¾ðÆ®¿Í ¸Þ½ÃÁö ¼ºñ½º °£ÀÇ È°¼º ¿¬°áÀÔ´Ï´Ù. ¿¬°áµÇ¸é Åë½Å ÀÚ¿ø ÇÒ´ç ¹× Å¬¶óÀÌ¾ðÆ® ÀÎÁõÀÌ ÀÌ·ç¾îÁý´Ï´Ù. ÀÌ´Â ºñ±³Àû Áß·®±Þ °´Ã¼À̸ç, ´ëºÎºÐÀÇ Å¬¶óÀÌ¾ðÆ®´Â ´ÜÀÏ ¿¬°áÀ» »ç¿ëÇÏ¿© ¸ðµç ¸Þ½Ã¡À» ¼öÇàÇÕ´Ï´Ù.
¿¬°áÀº ¼¼¼ÇÀ» »ý¼ºÇÒ ¶§ »ç¿ëÇÕ´Ï´Ù. SessionÀº ¸Þ½ÃÁö »ý¼º ¹× »ç¿ëÀ» À§ÇÑ ´ÜÀÏ ½º·¹µå ÄÁÅØ½ºÆ®ÀÔ´Ï´Ù. ¸Þ½ÃÁö¸¦ º¸³»°í ¹Þ´Â ¸Þ½ÃÁö »ý¼ºÀÚ ¹× »ç¿ëÀÚ¸¦ »ý¼ºÇÒ ¶§ »ç¿ëÇϸç, Àü´ÞÇÒ ¸Þ½ÃÁöÀÇ ÀÏ·Ã ¼ø¼¸¦ Á¤ÀÇÇÕ´Ï´Ù. ¼¼¼ÇÀº ¿©·¯ È®ÀÎ ¿É¼ÇÀ̳ª Æ®·£Àè¼ÇÀ» ÅëÇØ ¾ÈÁ¤ÀûÀÎ Àü´ÞÀ» Áö¿øÇÕ´Ï´Ù.
Ŭ¶óÀÌ¾ðÆ®´Â MessageProducer¸¦ »ç¿ëÇÏ¿© API¿¡¼ ´ë»ó ¾ÆÀ̵𠰴ü·Î Ç¥½ÃµÇ´Â ÁöÁ¤µÈ ¹°¸®Àû ´ë»óÀ¸·Î ¸Þ½ÃÁö¸¦ º¸³À´Ï´Ù. ¸Þ½ÃÁö »ý¼ºÀÚ´Â ¹°¸®Àû ´ë»óÀ¸·Î º¸³¾ ¸ðµç ¸Þ½ÃÁö¿¡ Àû¿ëµÇ´Â ±âº» Àü´Þ ¸ðµå(Áö¼Ó¼º ¸Þ½ÃÁö ¹× ºñÁö¼Ó¼º ¸Þ½ÃÁö), ¿ì¼± ¼øÀ§ ¹× ¼ö¸í °ªÀ» ÁöÁ¤ÇÕ´Ï´Ù.
±×¿Í ºñ½ÁÇÏ°Ô Å¬¶óÀÌ¾ðÆ®´Â MessageConsumer¸¦ »ç¿ëÇÏ¿© API¿¡¼ ´ë»ó °´Ã¼·Î Ç¥½ÃµÇ´Â ÁöÁ¤µÈ ¹°¸®Àû ´ë»óÀ¸·ÎºÎÅÍ ¸Þ½ÃÁö¸¦ ¹Þ½À´Ï´Ù. ¸Þ½ÃÁö »ç¿ëÀÚ´Â ¸Þ½ÃÁö ¼±Åñ⸦ »ç¿ëÇÏ¿© ¸Þ½ÃÁö ¼ºñ½º¿¡¼ ¼±Åà ±âÁذú ÀÏÄ¡ÇÏ´Â ¸Þ½ÃÁö »ç¿ëÀÚ¿¡°Ô ÇØ´ç ¸Þ½ÃÁö¸¸À» Àü´ÞÇϵµ·Ï ÇÒ ¼ö ÀÖ½À´Ï´Ù.
¸Þ½ÃÁö »ç¿ëÀÚ´Â µ¿±â½Ä ¶Ç´Â ºñµ¿±â½Ä ¸Þ½ÃÁö »ç¿ëÀ» Áö¿øÇÒ ¼ö ÀÖ½À´Ï´Ù. »ç¿ëÀÚ¿¡°Ô MessageListener¸¦ µî·ÏÇÏ¸é ºñµ¿±â½Ä »ç¿ëÀÌ ÀÌ·ç¾îÁý´Ï´Ù. ¼¼¼Ç ½º·¹µå°¡ MessageListener °´Ã¼ÀÇ onMessage() ¸Þ¼Òµå¸¦ È£ÃâÇϸé Ŭ¶óÀÌ¾ðÆ®°¡ ÇØ´ç ¸Þ½ÃÁö¸¦ »ç¿ëÇÕ´Ï´Ù.
JMS °ü¸® ´ë»ó °´Ã¼
JMS »ç¾çÀº °ø±ÞÀÚº° ±¸¼º Á¤º¸¸¦ ĸ½¶ÈÇÏ´Â °ü¸® ´ë»ó °´Ã¼¸¦ ÁöÁ¤ÇÏ¿© °ø±ÞÀÚ µ¶¸³ Ŭ¶óÀÌ¾ðÆ®¸¦ ¿ëÀÌÇÏ°Ô ÇÕ´Ï´Ù.
"JMS ÇÁ·Î±×·¡¹Ö ¸ðµ¨"¿¡¼ ¼³¸íÇÏ´Â °´Ã¼ Áß 2°¡Áö´Â JMS °ø±ÞÀÚÀÇ JMS ¸Þ½ÃÁö ¼ºñ½º ±¸Çö ¹æ½Ä¿¡ ´ëÇÑ °ÍÀÔ´Ï´Ù. ¿¬°á ÆÑÅ丮 °´Ã¼´Â °ø±ÞÀÚ°¡ ¸Þ½ÃÁö Àü´Þ ½Ã »ç¿ëÇÏ´Â ±âº» ÇÁ·ÎÅäÄÝ ¹× ¸ÞÄ¿´ÏÁò¿¡ µû¶ó ´Ù¸£¸ç, ´ë»ó °´Ã¼´Â °ø±ÞÀÚ°¡ »ç¿ëÇÏ´Â ¹°¸®Àû ´ë»óÀÇ Æ¯Á¤ À̸§ ÁöÁ¤ ±Ô¾à ¹× ±â´É¿¡ µû¶ó ´Ù¸¨´Ï´Ù.
ÀϹÝÀûÀ¸·Î ÀÌ °ø±ÞÀÚº° Ư¼º ¶§¹®¿¡ JMS Ŭ¶óÀÌ¾ðÆ® ÄÚµå´Â ƯÁ¤ JMS ±¸Çö¿¡ Á¾¼ÓµË´Ï´Ù. ±×·¯³ª JMS »ç¾ç¿¡¼´Â Ç¥ÁØÈµÇ°í ƯÁ¤ °ø±ÞÀÚ¿¡ ±¹ÇѵÇÁö ¾Ê´Â ¹æ½ÄÀ¸·Î ¾×¼¼½ºÇÒ ¼ö ÀÖµµ·Ï °ø±ÞÀÚº° ±¸Çö ¹× ±¸¼º Á¤º¸¸¦ ¿¬°á ÆÑÅ丮 ¹× ´ë»ó °´Ã¼·Î ĸ½¶ÈÇØ¾ß ÇÕ´Ï´Ù.
°ü¸® ´ë»ó °´Ã¼´Â °ü¸®ÀÚ°¡ ÀÛ¼º ¹× ±¸¼ºÇϰí À̸§ ¼ºñ½º¿¡¼ ÀúÀåÇϸç Ŭ¶óÀÌ¾ðÆ®°¡ Ç¥ÁØ JNDI (Java Naming and Directory Service) Á¶È¸ Äڵ带 »ç¿ëÇÏ¿© ¾×¼¼½ºÇÕ´Ï´Ù. ÀÌ·¸°Ô °ü¸® ´ë»ó °´Ã¼¸¦ »ç¿ëÇϸé Ŭ¶óÀÌ¾ðÆ® ÄÚµå´Â °ø±ÞÀÚ µ¶¸³¼ºÀ» °®°Ô µË´Ï´Ù.
¿¬°á ÆÑÅ丮¿Í ´ë»óÀ̶ó´Â µÎ °¡Áö °ü¸® °´Ã¼ À¯ÇüÀº °ø±ÞÀÚº° Á¤º¸¸¦ ĸ½¶ÈÇÏÁö¸¸ Ŭ¶óÀÌ¾ðÆ® ³»¿¡¼ ±× ¿ëµµ´Â ¸Å¿ì ´Ù¸¨´Ï´Ù. ¿¬°á ÆÑÅ丮´Â ¸Þ½ÃÁö ¼¹ö¿¡ ¿¬°áÇÏ´Â µ¥ »ç¿ëµÇ°í ´ë»ó °´Ã¼´Â ¹°¸®Àû ´ë»óÀ» ½Äº°ÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù.
JMS/J2EE ÇÁ·Î±×·¡¹Ö: Message-Driven Bean"JMS ÇÁ·Î±×·¡¹Ö ¸ðµ¨"¿¡¼ ¼Ò°³ÇÑ ÀϹÝÀûÀÎ JMS Ŭ¶óÀÌ¾ðÆ® ÇÁ·Î±×·¡¹Ö ¸ðµ¨ ¿Ü¿¡µµ Java 2 Platform, Enterprise Edition (J2EE Ç÷§Æû) ÀÀ¿ë ÇÁ·Î±×·¥ ÄÁÅØ½ºÆ®¿¡¼ »ç¿ëÇÏ´Â, º¸´Ù Ư¼öÈµÈ JMS ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ ÀÖ½À´Ï´Ù. ÀÌ Æ¯¼öÈµÈ JMS Ŭ¶óÀÌ¾ðÆ®¸¦ Message-Driven BeanÀ̶ó°í ºÎ¸£¸ç, EJB 2.0 »ç¾ç(http://java.sun.com/products/ejb/docs.html)¿¡ ÁöÁ¤µÈ EJB (Enterprise JavaBeans) ±¸¼º ¿ä¼Ò Áß ÇϳªÀÔ´Ï´Ù.
Message-Driven BeanÀÌ ÇÊ¿äÇÑ ÀÌÀ¯´Â ´Ù¸¥ EJB ±¸¼º ¿ä¼Ò(Session Bean°ú Entity Bean)µéÀÌ µ¿±â½Ä È£Ã⸸ °¡´ÉÇϱ⠶§¹®ÀÔ´Ï´Ù. ÀÌ EJB ±¸¼º ¿ä¼ÒµéÀº Ç¥ÁØ EJB ÀÎÅÍÆäÀ̽º¸¦ ÅëÇØ¼¸¸ ¾×¼¼½ºÇÒ ¼ö ÀÖÀ¸¹Ç·Î ºñµ¿±â½ÄÀ¸·Î ¸Þ½ÃÁö¸¦ ¼ö½ÅÇÒ ¸ÞÄ¿´ÏÁòÀÌ ¾ø½À´Ï´Ù.
±×·¯³ª ºñµ¿±â½Ä ¸Þ½Ã¡Àº ¸¹Àº ¿£ÅÍÇÁ¶óÀÌÁî ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼ ÇÊ¿äÇÕ´Ï´Ù. ±×·¯ÇÑ ÀÀ¿ë ÇÁ·Î±×·¥ Áß ´ëºÎºÐ¿¡¼´Â ¼¹öÃø ±¸¼º ¿ä¼Ò°¡ ¼¹ö ÀÚ¿øÀ» µ¶Á¡ÇÏÁö ¾ÊÀ¸¸é¼ »óÈ£ Åë½ÅÇϰí ÀÀ´äÇÒ ¼ö ÀÖ¾î¾ß ÇÕ´Ï´Ù. Áï ¸Þ½ÃÁö »ý¼ºÀÚ¿Í ¹ÐÁ¢ÇÏ°Ô ¿¬°áµÇÁö ¾ÊÀ¸¸é¼ ¸Þ½ÃÁö ¼ö½Å ¹× »ç¿ëÀÌ °¡´ÉÇÑ EJB ±¸¼º ¿ä¼Ò°¡ ÇÊ¿äÇÕ´Ï´Ù. ÀÌ ±â´ÉÀº ¼¹öÃø ±¸¼º ¿ä¼Ò°¡ ÀÀ¿ë ÇÁ·Î±×·¥ À̺¥Æ®¿¡ ÀÀ´äÇØ¾ß ÇÏ´Â ¸ðµç ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼ ÇÊ¿äÇÕ´Ï´Ù. ¶ÇÇÑ ¿£ÅÍÇÁ¶óÀÌÁî ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼µµ ·Îµå Áõ°¡¿¡ µû¶ó ÀÌ ±â´ÉÀÌ È®ÀåµÇ¾î¾ß ÇÕ´Ï´Ù.
Message-Driven Bean
MDB (Message-Driven Bean)´Â ƯÁ¤ EJB ÄÁÅ×À̳Ê(Áö¿øÇÏ´Â ±¸¼º ¿ä¼Ò¿¡ ´ëÇØ ºÐ»ê ¼ºñ½º¸¦ Á¦°øÇÏ´Â ¼ÒÇÁÆ®¿þ¾î ȯ°æ)°¡ Áö¿øÇϴ ƯÁ¤ EJB ±¸¼º ¿ä¼ÒÀÔ´Ï´Ù.
Message-Driven Bean MDB´Â JMS MessageListener ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏ´Â JMS ¸Þ½ÃÁö »ç¿ëÀÚÀÔ´Ï´Ù. onMessage ¸Þ¼Òµå(MDB °³¹ßÀÚ°¡ ÀÛ¼º)´Â MDB ÄÁÅ×À̳ʰ¡ ¸Þ½ÃÁö¸¦ ¼ö½ÅÇÒ ¶§ È£ÃâµË´Ï´Ù. ÀÌ onMessage() ¸Þ¼Òµå´Â Ç¥ÁØ MessageListener °´Ã¼ÀÇ onMessage() ¸Þ¼Òµåó·³ ¸Þ½ÃÁö¸¦ »ç¿ëÇÕ´Ï´Ù. ´Ù¸¥ EJB ±¸¼º ¿ä¼Ò¿¡¼Ã³·³ MDB¿¡ ´ëÇØ ¸Þ¼Òµå¸¦ ¿ø°Ý È£ÃâÇÏÁö ¾ÊÀ¸¹Ç·Î MDB¿Í °ü·ÃµÈ Ȩ ¶Ç´Â ¿ø°Ý ÀÎÅÍÆäÀ̽º´Â ¾ø½À´Ï´Ù. MDB´Â ´ÜÀÏ ´ë»óÀ¸·ÎºÎÅÍÀÇ ¸Þ½ÃÁö¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×¸² 1-4¿¡¼ È®ÀÎÇÒ ¼ö ÀÖµíÀÌ µ¶¸³Çü JMS ÀÀ¿ë ÇÁ·Î±×·¥, JMS ±¸¼º ¿ä¼Ò, EJB ±¸¼º ¿ä¼Ò ¶Ç´Â À¥ ±¸¼º ¿ä¼Ò¿¡¼ ¸Þ½ÃÁö¸¦ »ý¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù.
±×¸² 1-4 MDB¿ÍÀÇ ¸Þ½ÃÁö
MDB ÄÁÅ×ÀÌ³Ê MDB ÀνºÅϽº¸¦ »ý¼ºÇÏ°í ºñµ¿±â½ÄÀ¸·Î ¸Þ½ÃÁö¸¦ »ç¿ëÇϵµ·Ï ¼³Á¤ÇÏ´Â ¿ªÇÒÀ» Çϴ Ư¼öÈµÈ EJB ÄÁÅ×À̳ʰ¡ MDB¸¦ Áö¿øÇÕ´Ï´Ù. ¿©±â¿¡´Â ¸Þ½ÃÁö ¼ºñ½º¿ÍÀÇ ¿¬°á ¼³Á¤(ÀÎÁõ Æ÷ÇÔ), ÁöÁ¤µÈ ´ë»ó°úÀÇ ¼¼¼Ç Ç® »ý¼º, ¼¼¼Ç Ç® ¹× °ü·Ã MDB ÀνºÅϽº »çÀÌ¿¡¼ÀÇ ¼ö½Å ¸Þ½ÃÁö ¹èÆ÷ °ü¸®°¡ Æ÷ÇԵ˴ϴÙ. ÀÌ ÄÁÅ×À̳ʴ MDB ÀνºÅϽºÀÇ ¶óÀÌÇÁ»çÀÌŬÀ» Á¦¾îÇϹǷΠMDB ÀνºÅϽº Ç®ÀÌ ¹Þ´Â ¸Þ½ÃÁö ·Îµå¸¦ ¼ö¿ëÇÒ ¼ö ÀÖµµ·Ï °ü¸®ÇÕ´Ï´Ù.
MDB¿Í °ü·Ã ÀÖ´Â ¹èÆ÷ ¼³¸íÀÚ´Â ÄÁÅ×À̳ʰ¡ ¸Þ½ÃÁö »ç¿ë ¼³Á¤ ½Ã »ç¿ëÇÏ´Â °ü¸® ´ë»ó °´Ã¼, Áï ¿¬°á ÆÑÅ丮¿Í ´ë»óÀÇ JNDI Á¶È¸ À̸§À» ÁöÁ¤ÇÕ´Ï´Ù. ¶ÇÇÑ ¹èÄ¡ ¼³¸íÀÚ´Â ¹èÄ¡ µµ±¸°¡ ÄÁÅ×ÀÌ³Ê ±¸¼º ½Ã »ç¿ë °¡´ÉÇÑ ´Ù¸¥ Á¤º¸¸¦ Æ÷ÇÔÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ÄÁÅ×ÀÌ³Ê °¢°¢Àº ´ÜÀÏ MDB·Î¸¸ ÀÌ·ç¾îÁø ÀνºÅϽº¸¦ Áö¿øÇÕ´Ï´Ù.
J2EE Application Server Áö¿ø
J2EE ±¸Á¶(http://java.sun.com/j2ee/download.html#platformspecÀÇ J2EE Ç÷§Æû »ç¾ç ÂüÁ¶)¿¡¼ EJB ÄÁÅ×À̳ʴ J2EE Application Server°¡ È£½ºÆÃÇÕ´Ï´Ù. Application Server´Â Æ®·£Àè¼Ç °ü¸®ÀÚ, Áö¼Ó¼º °ü¸®ÀÚ, À̸§ ¼ºñ½º, JMS °ø±ÞÀÚ(¸Þ½Ã¡ ¹× MDBÀÇ °æ¿ì) µî°ú °°Àº ´Ù¾çÇÑ ÄÁÅ×À̳ʰ¡ ÇÊ¿ä·Î ÇÏ´Â ÀÚ¿øÀ» Á¦°øÇÕ´Ï´Ù.
Sun Java System Application Server¿¡¼ JMS ¸Þ½Ã¡ ÀÚ¿øÀº Sun Java System Message Queue°¡ Á¦°øÇÕ´Ï´Ù.
- Sun Java System Application Server 7.0ÀÇ °æ¿ì Message Queue ¸Þ½Ã¡ ½Ã½ºÅÛÀÌ Application Server¿¡ ¿ø½Ã JMS °ø±ÞÀÚ·Î ÅëÇյǾî ÀÖ½À´Ï´Ù.
- Sun J2EE 1.4 Application ServerÀÇ °æ¿ì Message Queue°¡ Application Server¿¡ ³»Àå JMS ÀÚ¿ø ¾î´ðÅÍ·Î Ç÷¯±× ÀεǾî ÀÖ½À´Ï´Ù(ºÎ·Ï F, "Message Queue ÀÚ¿ø ¾î´ðÅÍ" ÂüÁ¶).
- Application ServerÀÇ ÇâÈÄ ¸±¸®½º¿¡¼´Â Message Queue°¡ Ç¥ÁØ ÀÚ¿ø ¾î´ðÅÍ ¹èÆ÷ ¹× ±¸¼º ¹æ¹ýÀ» »ç¿ëÇÏ´Â Application Server¿¡ Ç÷¯±× Àε˴ϴÙ.
JMS ¸Þ½Ã¡ ¹®Á¦ÀÌ Àý¿¡¼´Â Message Queue ¸Þ½ÃÁö ¼ºñ½ºÀÇ °ü¸®¿¡ ¿µÇâÀ» ¹ÌÄ¡´Â ´Ù¾çÇÑ JMS ÇÁ·Î±×·¡¹Ö ¹®Á¦¸¦ ¼³¸íÇÕ´Ï´Ù. Message Queue °ü¸®ÀÚ°¡ ÇÊ¿ä·Î ÇÏ´Â °³³ä ¹× ¿ë¾î¿¡ ÁßÁ¡À» µÓ´Ï´Ù.
JMS °ø±ÞÀÚ µ¶¸³¼º
JMS´Â ´Ù¸¥ JMS °ø±ÞÀÚ¿¡°Ô ÀÌ½Ä °¡´ÉÇÑ Å¬¶óÀÌ¾ðÆ® ÀÀ¿ë ÇÁ·Î±×·¥ °³¹ßÀ» Áö¿øÇϵµ·Ï °ü¸® ´ë»ó °´Ã¼("JMS °ü¸® ´ë»ó °´Ã¼" ÂüÁ¶)ÀÇ »ç¿ëÀ» ÁöÁ¤ÇÕ´Ï´Ù. °ü¸® ´ë»ó °´Ã¼¸¦ »ç¿ëÇϸé JMS Ŭ¶óÀÌ¾ðÆ®´Â °ø±ÞÀÚº° °´Ã¼¸¦ Á¶È¸Çϰí ÂüÁ¶ÇÒ ¶§ ³í¸®Àû À̸§À» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¸°Ô µÇ¸é Ŭ¶óÀÌ¾ðÆ® ÄÚµå´Â °ø±ÞÀÚ°¡ »ç¿ëÇϴ ƯÁ¤ À̸§ ¶Ç´Â ÁÖ¼Ò ÁöÁ¤ ±¸¹®À̳ª ±¸¼º °¡´ÉÇÑ µî·Ï Á¤º¸¸¦ ¾Ë¾Æ µÑ Çʿ䰡 ¾ø½À´Ï´Ù. µû¶ó¼ ÄÚµå °ø±ÞÀÚ µ¶¸³¼ºÀ» °®°Ô µË´Ï´Ù.
°ü¸® ´ë»ó °´Ã¼´Â Message Queue °ü¸®ÀÚ°¡ ÀÛ¼º ¹× ±¸¼ºÇÏ´Â Message Queue ½Ã½ºÅÛ °´Ã¼ÀÔ´Ï´Ù. ÀÌ °´Ã¼´Â JNDI µð·ºÅ丮 ¼ºñ½º¿¡ À§Ä¡Çϸç, JMS Ŭ¶óÀÌ¾ðÆ®´Â JNDI Á¶È¸¸¦ »ç¿ëÇÏ¿© ÀÌ °´Ã¼¿¡ ¾×¼¼½ºÇÕ´Ï´Ù.
¶ÇÇÑ Message Queue °ü¸® ´ë»ó °´Ã¼´Â JNDI µð·ºÅ丮 ¼ºñ½º¿¡¼ Á¶È¸Çϱ⺸´Ù´Â Ŭ¶óÀÌ¾ðÆ®°¡ ÀνºÅϽºÈÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ °æ¿ì ÀÀ¿ë ÇÁ·Î±×·¥ °³¹ßÀÚ°¡ °ø±ÞÀÚº° API¸¦ »ç¿ëÇØ¾ß ÇÏ´Â ´ÜÁ¡ÀÌ ÀÖ½À´Ï´Ù. ¶ÇÇÑ ÀÌ´Â Message Queue °ü¸®ÀÚ°¡ Message Queue ¸Þ½ÃÁö ¼¹ö¸¦ ¼º°øÀûÀ¸·Î Á¦¾îÇÏ°í °ü¸®ÇÏ´Â ´É·ÂÀ» ÀúÇϽÃŵ´Ï´Ù.
°ü¸® ´ë»ó °´Ã¼¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº "Message Queue °ü¸® ´ë»ó °´Ã¼"¸¦ ÂüÁ¶ÇϽʽÿÀ.
ÇÁ·Î±×·¡¹Ö µµ¸ÞÀÎ
JMS´Â ¼·Î ´Ù¸¥ 2°¡Áö ¸Þ½ÃÁö Àü´Þ ¸ðµ¨ÀÎ ÁöÁ¡°£ ¸ðµ¨°ú °Ô½Ã/°¡ÀÔ ¸ðµ¨À» Áö¿øÇÕ´Ï´Ù.
ÁöÁ¡°£(´ë±â¿ ´ë»ó) ¸Þ½ÃÁö´Â »ý¼ºÀڷκÎÅÍ »ç¿ëÀÚ¿¡°Ô Àü´ÞµË´Ï´Ù. ÀÌ Àü´Þ ¸ðµ¨¿¡¼ ´ë»óÀº ´ë±â¿ÀÔ´Ï´Ù. ¸Þ½ÃÁö´Â ¸ÕÀú ´ë±â¿ ´ë»óÀ¸·Î Àü´ÞµÈ ´ÙÀ½, ´ë±â¿ÀÇ Àü´Þ Á¤Ã¥("´ë±â¿ ´ë»ó" ÂüÁ¶)¿¡ µû¶ó ´ë±â¿·ÎºÎÅÍ ÇØ´ç ´ë±â¿¿¡ µî·ÏµÈ »ç¿ëÀÚ Áß Çϳª¿¡°Ô ÇÑ ¹ø¿¡ Çϳª¾¿ Àü´ÞµË´Ï´Ù. »ý¼ºÀÚ ¼öÀÇ Á¦ÇÑ ¾øÀÌ »ý¼ºÀÚ´Â ´ë±â¿ ´ë»ó¿¡°Ô ¸Þ½ÃÁö¸¦ º¸³¾ ¼ö ÀÖÀ¸¸ç, °¢ ¸Þ½ÃÁö´Â ¹Ýµå½Ã ÇÑ »ç¿ëÀÚ¿¡°Ô¸¸ Àü´ÞµÇ¾î ¼º°øÀûÀ¸·Î »ç¿ëµË´Ï´Ù. ´ë±â¿ ´ë»ó¿¡ µî·ÏµÈ »ç¿ëÀÚ°¡ ¾ø´Â °æ¿ì, ´ë±â¿Àº ¹ÞÀº ¸Þ½ÃÁö¸¦ º¸°üÇß´Ù°¡ »ç¿ëÀÚ°¡ ´ë±â¿¿¡ µî·ÏÇÏ¸é ¸Þ½ÃÁö¸¦ Àü´ÞÇÕ´Ï´Ù.
°Ô½Ã/°¡ÀÔ(ÁÖÁ¦ ´ë»ó) ´ÜÀÏ »ý¼ºÀÚ°¡ »ç¿ëÀÚ ¼öÀÇ Á¦ÇÑ ¾øÀÌ ¸Þ½ÃÁö¸¦ Àü´ÞÇÕ´Ï´Ù. ÀÌ Àü´Þ ¸ðµ¨¿¡¼ ´ë»óÀº ÁÖÁ¦ÀÔ´Ï´Ù. ¸Þ½ÃÁö´Â ¸ÕÀú ÁÖÁ¦ ´ë»óÀ¸·Î Àü´ÞµÈ ´ÙÀ½, ÇØ´ç ÁÖÁ¦¿¡ °¡ÀÔÇÑ ¸ðµç Ȱ¼º »ç¿ëÀÚ¿¡°Ô Àü´ÞµË´Ï´Ù. »ý¼ºÀÚ ¼öÀÇ Á¦ÇÑ ¾øÀÌ »ý¼ºÀÚ´Â ¾î¶² ÁÖÁ¦ ´ë»óÀ¸·Î ¸Þ½ÃÁö¸¦ º¸³¾ ¼ö ÀÖÀ¸¸ç, °¢ ¸Þ½ÃÁö´Â °¡ÀÔÇÑ »ç¿ëÀÚ ¼öÀÇ Á¦ÇÑ ¾øÀÌ Àü´ÞµÉ ¼ö ÀÖ½À´Ï´Ù. ¶ÇÇÑ ÁÖÁ¦ ´ë»óÀº ¿µ±¸ °¡ÀÔÀÇ °³³äÀ» Áö¿øÇÕ´Ï´Ù. ¿µ±¸ °¡ÀÔÀº ÁÖÁ¦ ´ë»ó¿¡ µî·ÏµÇ¾úÁö¸¸ ¸Þ½ÃÁö°¡ Àü´ÞµÇ´Â ½ÃÁ¡¿¡ ºñȰ¼ºÈµÉ ¼ö ÀÖ´Â »ç¿ëÀÚ¸¦ ÀǹÌÇÕ´Ï´Ù. ³ªÁß¿¡ Ȱ¼ºÈµÈ »ç¿ëÀÚ´Â ¸Þ½ÃÁö¸¦ ¼ö½ÅÇÕ´Ï´Ù. ÁÖÁ¦ ´ë»ó¿¡ ´ëÇØ µî·ÏµÈ »ç¿ëÀÚ°¡ ¾ø´Â °æ¿ì, ÇØ´ç ÁÖÁ¦´Â ºñȰ¼º »ç¿ëÀÚ¿¡ ´ëÇØ ¿µ±¸ °¡ÀÔÀÌ ¾ø´Â ÇÑ ¹ÞÀº ¸Þ½ÃÁö¸¦ º¸°üÇÏÁö ¾Ê½À´Ï´Ù.
ÀÌ 2°¡Áö ¸Þ½ÃÁö Àü´Þ ¸ðµ¨Àº Ç¥ 1-1¿¡¼ È®ÀÎÇÒ ¼ö ÀÖµíÀÌ °¢±â ´Ù¸¥ ÇÁ·Î±×·¡¹Ö µµ¸ÞÀÎÀ» ³ªÅ¸³»°í Àǹ̻ó ¾à°£ Â÷À̰¡ ÀÖ´Â ¼·Î ´Ù¸¥ API °´Ã¼¸¦ »ç¿ëÇÏ¿© 󸮵˴ϴÙ.
Ç¥ 1-1 JMS ÇÁ·Î±×·¡¹Ö °´Ã¼
±âº» À¯Çü
(ÅëÇÕ µµ¸ÞÀÎ)ÁöÁ¡°£ µµ¸ÞÀÎ
°Ô½Ã/°¡ÀÔ µµ¸ÞÀÎ
Destination (´ë±â¿ ¶Ç´Â ÁÖÁ¦)1
Queue
Topic
ConnectionFactory
QueueConnectionFactory
TopicConnectionFactory
Connection
QueueConnection
TopicConnection
Session
QueueSession
TopicSession
MessageProducer
QueueSender
TopicPublisher
MessageConsumer
QueueReceiver
TopicSubscriber
1ÇÁ·Î±×·¡¹Ö ¹æ½Ä¿¡ µû¶ó ƯÁ¤ ´ë»ó À¯ÇüÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.
Ç¥ 1-1ÀÇ Ã¹ ¹øÂ° ¿¿¡ Ç¥½ÃµÈ ÅëÇÕ µµ¸ÞÀÎ °´Ã¼¸¦ »ç¿ëÇÏ¿© ÁöÁ¡°£ ¹× °Ô½Ã/°¡ÀÔ ¸Þ½Ã¡À» ¸ðµÎ ÇÁ·Î±×·¡¹ÖÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¹æ¹ýÀÌ ±ÇÀåµË´Ï´Ù. ÀÌÀü JMS 1.02b »ç¾ç¿¡ µû¶ó ÁöÁ¡°£ µµ¸ÞÀÎ °´Ã¼¸¦ »ç¿ëÇÏ¿© ÁöÁ¡°£ ¸Þ½Ã¡À» ÇÁ·Î±×·¡¹ÖÇÏ°í °Ô½Ã/°¡ÀÔ µµ¸ÞÀÎ °´Ã¼¸¦ »ç¿ëÇÏ¿© °Ô½Ã/°¡ÀÔ ¸Þ½Ã¡À» ÇÁ·Î±×·¡¹ÖÇÒ ¼ö ÀÖ½À´Ï´Ù.
Ŭ¶óÀÌ¾ðÆ® ½Äº°ÀÚ
JMS °ø±ÞÀÚ´Â JMS Ŭ¶óÀÌ¾ðÆ®¿Í ¸Þ½ÃÁö ¼ºñ½º °£ÀÇ ¿¬°á¿¡ ÇØ´ç ¸Þ½ÃÁö ¼ºñ½º°¡ Ŭ¶óÀÌ¾ðÆ®¸¦ ´ë½ÅÇÏ¿© À¯Áö °ü¸®ÇÏ´Â »óÅ Á¤º¸¸¦ ¿¬°ü½ÃŰ´Â Ŭ¶óÀÌ¾ðÆ® ½Äº°ÀÚ °³³äÀ» Áö¿øÇØ¾ß ÇÕ´Ï´Ù. Á¤ÀÇ¿¡ µû¶ó Ŭ¶óÀÌ¾ðÆ® ½Äº°ÀÚ´Â °íÀ¯Çϸç ÇÑ ¹ø¿¡ ÇÑ ¸íÀÇ »ç¿ëÀÚ¿¡°Ô¸¸ Àû¿ëµË´Ï´Ù. °¢ ¿µ±¸ °¡ÀÔÀÌ ÇÑ ¸íÀÇ »ç¿ëÀÚ¿¡°Ô¸¸ Àû¿ëµÇµµ·Ï Ŭ¶óÀÌ¾ðÆ® ½Äº°ÀÚ´Â ¿µ±¸ °¡ÀÔ À̸§("°Ô½Ã/°¡ÀÔ(ÁÖÁ¦ ´ë»ó)" ÂüÁ¶)°ú ÇÔ²² »ç¿ëµË´Ï´Ù.
JMS »ç¾ç¿¡¼´Â Ŭ¶óÀÌ¾ðÆ®°¡ API ¸Þ¼Òµå È£ÃâÀ» ÅëÇØ Ŭ¶óÀÌ¾ðÆ® ½Äº°ÀÚ¸¦ ¼³Á¤ÇÒ ¼ö ÀÖÁö¸¸, °ü¸®ÀÚ°¡ ¿¬°á ÆÑÅ丮 °ü¸® ´ë»ó °´Ã¼("JMS °ü¸® ´ë»ó °´Ã¼" ÂüÁ¶)¸¦ »ç¿ëÇÏ¿© ¼³Á¤ÇÏ´Â °ÍÀÌ ÁÁ½À´Ï´Ù. ±×·¯³ª ¿¬°á ÆÑÅ丮¿¡ °íÁ¤µÈ °æ¿ì, °¢ »ç¿ëÀÚ´Â °³º° ¿¬°á ÆÑÅ丮¸¶´Ù °íÀ¯ ¾ÆÀ̵𸦠°¡Á®¾ß ÇÕ´Ï´Ù.
Message Queue¿¡¼´Â ConnectionFactory °´Ã¼¿¡¼ ±¸¼º °¡´ÉÇÑ Æ¯¼ö º¯¼ö ´ëü ±¸¹®À» »ç¿ëÇÏ¿© Ŭ¶óÀÌ¾ðÆ® ½Äº°ÀÚ°¡ ¿¬°á ÆÑÅ丮 ¹× »ç¿ëÀÚ °íÀ¯¼ºÀ» ¸ðµÎ °¡Áú ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¹æ¹ýÀ» »ç¿ëÇÒ °æ¿ì ¿µ±¸ °¡ÀÔÀ» ÀÛ¼ºÇÏ´Â ¿©·¯ »ç¿ëÀÚ°¡ À̸§ ÁöÁ¤ Ãæµ¹À̳ª º¸¾È ¼Õ½Ç¿¡ ´ëÇÑ ¿°·Á ¾øÀÌ ´ÜÀÏ ConnectionFactory °´Ã¼¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. µû¶ó¼ »ç¿ëÀÚÀÇ ¿µ±¸ °¡ÀÔ ½Ã ½Ç¼ö·Î Áö¿öÁö°Å³ª ´Ù¸¥ »ç¿ëÀÚÀÇ À߸øµÈ Ŭ¶óÀÌ¾ðÆ® ½Äº°ÀÚ ¼³Á¤ ¶§¹®¿¡ »ç¿ëÇÒ ¼ö ¾ø°Ô µÇ´Â »óȲÀ» ¸·À» ¼ö ÀÖ½À´Ï´Ù.
ÀÌ Message Queue ±â´É »ç¿ë ¹æ¹ý¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº Message Queue Java Client Developer's Guide Áß ¿¬°á ÆÑÅ丮 ¼Ó¼º ºÎºÐÀ» ÂüÁ¶ÇϽʽÿÀ.
¾î¶² °æ¿ì¶óµµ ¿µ±¸ °¡ÀÔÀ» »ý¼ºÇÏ·Á¸é Ŭ¶óÀÌ¾ðÆ®°¡ JMS API¸¦ »ç¿ëÇÏ¿© ÇÁ·Î±×·¡¹Ö ¹æ½ÄÀ¸·Î Ŭ¶óÀÌ¾ðÆ® ½Äº°ÀÚ¸¦ ¼³Á¤Çϰųª Ŭ¶óÀÌ¾ðÆ®°¡ »ç¿ëÇÏ´Â ConnectionFactory °´Ã¼¿¡ Ŭ¶óÀÌ¾ðÆ® ½Äº°ÀÚ¸¦ ±¸¼ºÇØ¾ß ÇÕ´Ï´Ù.
¾ÈÁ¤ÀûÀÎ ¸Þ½Ã¡
JMS´Â 2°¡Áö Àü´Þ ¸ðµå¸¦ Á¤ÀÇÇÕ´Ï´Ù.
Áö¼Ó¼º ¸Þ½ÃÁö ÀÌ ¸Þ½ÃÁö´Â ´Ü ÇÑ Â÷·Ê Àü´Þ ¹× ¼º°øÀûÀÎ »ç¿ëÀÌ º¸ÀåµË´Ï´Ù. ÀÌ ¸Þ½ÃÁö¿¡¼´Â ¾ÈÁ¤¼ºÀÌ Áß¿äÇÕ´Ï´Ù.
ºñÁö¼Ó¼º ¸Þ½ÃÁö ÀÌ ¸Þ½ÃÁö´Â ÃÖ´ë ÇÑ Â÷·Ê Àü´ÞÀÌ º¸ÀåµË´Ï´Ù. ÀÌ·¯ÇÑ ¸Þ½ÃÁöÀÇ °æ¿ì ¾ÈÁ¤¼ºÀº Áß¿äÇÑ »çÇ×ÀÌ ¾Æ´Õ´Ï´Ù.
Áö¼Ó¼º ¸Þ½ÃÁöÀÇ °æ¿ì ¾ÈÁ¤¼º º¸Àå¿¡´Â 2°¡Áö Ãø¸éÀÌ ÀÖ½À´Ï´Ù. ÇÑ °¡Áö´Â ¸Þ½ÃÁö ¼ºñ½º¿¡¼ ÁÖ°í ¹Þ´Â ¸Þ½ÃÁö°¡ ¼º°øÀûÀ¸·Î Àü´ÞµÇµµ·Ï ÇÏ´Â °ÍÀÔ´Ï´Ù. ´Ù¸¥ Çϳª´Â ¸Þ½ÃÁö ¼ºñ½º°¡ Áö¼Ó¼º ¸Þ½ÃÁö¸¦ »ç¿ëÀÚ¿¡°Ô Àü´ÞÇϱâ Àü¿¡ ±× ¸Þ½ÃÁö¸¦ ÀÒÁö ¾Êµµ·Ï ÇÏ´Â °ÍÀÔ´Ï´Ù.
È®ÀÎ/Æ®·£Àè¼Ç
¾ÈÁ¤ÀûÀÎ ¸Þ½Ã¡Àº ´ë»óÀ» ¿À°¡´Â Áö¼Ó¼º ¸Þ½ÃÁö°¡ ¼º°øÀûÀ¸·Î Àü´ÞµÉ ¼ö ÀÖ´ÂÁö ¿©ºÎ¿¡ µû¶ó °áÁ¤µË´Ï´Ù. ÀÌ´Â Message Queue ¼¼¼ÇÀÌ Áö¿øÇÏ´Â 2°¡Áö ÀÏ¹Ý ¸ÞÄ¿´ÏÁòÀÎ È®ÀÎ ¶Ç´Â Æ®·£Àè¼Ç Áß Çϳª¸¦ »ç¿ëÇÏ¿© ½ÇÇöÇÒ ¼ö ÀÖ½À´Ï´Ù. Æ®·£Àè¼ÇÀÇ °æ¿ì, ·ÎÄà Ʈ·£Àè¼Ç ¶Ç´Â ºÐ»ê Æ®·£Àè¼Ç °ü¸®ÀÚ°¡ Á¦¾îÇÏ´Â ºÐ»ê Æ®·£Àè¼ÇÀÌ ÀÖ½À´Ï´Ù.
È®ÀÎ(Acknowledgement)
È®ÀÎÀ» »ç¿ëÇÏ¿© ¾ÈÁ¤ÀûÀ¸·Î Àü´ÞµÇµµ·Ï ¼¼¼ÇÀ» ±¸¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù.
»ý¼ºÀÚÀÇ °æ¿ì, ÀÌ´Â »ý¼ºÀÚÀÇ send() ¸Þ¼Òµå°¡ ¹ÝȯµÇ±â Àü¿¡ ¸Þ½ÃÁö ¼ºñ½º°¡ ´ë»ó¿¡°Ô Áö¼Ó¼º ¸Þ½ÃÁöÀÇ Àü´ÞÀ» È®ÀÎÇÏ´Â °ÍÀ» ÀǹÌÇÕ´Ï´Ù. »ç¿ëÀÚÀÇ °æ¿ì, ÀÌ´Â ¸Þ½ÃÁö ¼ºñ½º°¡ ´ë»óÀ¸·ÎºÎÅÍ ÇØ´ç ¸Þ½ÃÁö¸¦ »èÁ¦Çϱâ Àü¿¡ Ŭ¶óÀÌ¾ðÆ®°¡ ´ë»ó¿¡°Ô¼ Áö¼Ó¼º ¸Þ½ÃÁöÀÇ Àü´Þ ¹× »ç¿ëÀ» È®ÀÎÇÏ´Â °ÍÀ» ÀǹÌÇÕ´Ï´Ù.
·ÎÄà Ʈ·£Àè¼Ç
¶ÇÇÑ ¼¼¼ÇÀ» Æ®·£Àè¼ÇµÈ °ÍÀ¸·Î ±¸¼ºÇÒ ¼ö Àִµ¥, ÀÌ °æ¿ì Çϳª ÀÌ»óÀÇ ¸Þ½ÃÁö »ý¼º ¹×/¶Ç´Â »ç¿ëÀ» Æ®·£Àè¼ÇÀ̶ó´Â ±âº» ´ÜÀ§·Î ºÐ·ùÇÒ ¼ö ÀÖ½À´Ï´Ù. JMS API´Â Æ®·£Àè¼ÇÀ» ½ÃÀÛ, ¿Ï°á ¶Ç´Â ·Ñ¹éÇÏ´Â ¸Þ¼Òµå¸¦ Á¦°øÇÕ´Ï´Ù.
Æ®·£Àè¼Ç ³»ºÎ¿¡¼ ¸Þ½ÃÁö¸¦ »ý¼ºÇϰųª »ç¿ëÇÏ¸é ºê·ÎÄ¿´Â ´Ù¾çÇÑ ¹ß½Å ¹× ¼ö½ÅÀ» ÃßÀûÇϰí, Ŭ¶óÀÌ¾ðÆ®°¡ Æ®·£Àè¼ÇÀ» ¿Ï°áÇϵµ·Ï È£ÃâÇÑ °æ¿ì¿¡¸¸ ÀÛ¾÷À» ¿Ï·áÇÕ´Ï´Ù. Æ®·£Àè¼Ç ³»ºÎ¿¡¼ ƯÁ¤ ¹ß½Å ¶Ç´Â ¼ö½Å ÀÛ¾÷ÀÌ ½ÇÆÐÇÒ °æ¿ì ¿¹¿Ü°¡ ¹ß»ýÇÕ´Ï´Ù. Ŭ¶óÀÌ¾ðÆ® ÄÚµå´Â ¿¹¿Ü¸¦ ¹«½ÃÇϰųª ÀÛ¾÷À» ´Ù½Ã ½ÃµµÇϰųª Àüü Æ®·£Àè¼ÇÀ» ·Ñ¹éÇÏ´Â ¹æ¹ýÀ¸·Î ¿¹¿Ü¸¦ ó¸®ÇÒ ¼ö ÀÖ½À´Ï´Ù. Æ®·£Àè¼ÇÀÌ ¿Ï°áµÇ¸é ¼º°øÀûÀÎ ÀÛ¾÷ÀÌ ¸ðµÎ ¿Ï·áµË´Ï´Ù. Æ®·£Àè¼ÇÀÌ ·Ñ¹éµÇ¸é ¼º°øÀûÀÎ ÀÛ¾÷ÀÌ ¸ðµÎ Ãë¼ÒµË´Ï´Ù.
·ÎÄà Ʈ·£Àè¼ÇÀÇ ¹üÀ§´Â Ç×»ó ´ÜÀÏ ¼¼¼ÇÀÔ´Ï´Ù. Áï ´ÜÀÏ ¼¼¼Ç ÄÁÅØ½ºÆ®¿¡¼ ¼öÇàµÇ´Â Çϳª ÀÌ»óÀÇ »ý¼ºÀÚ ¶Ç´Â »ç¿ëÀÚ ÀÛ¾÷À» ¹¾î ´ÜÀÏ ·ÎÄà Ʈ·£Àè¼ÇÀ¸·Î ºÐ·ùÇÒ ¼ö ÀÖ½À´Ï´Ù.
Æ®·£Àè¼Ç ¹üÀ§°¡ ´ÜÀÏ ¼¼¼Ç¿¡ ±¹ÇѵǹǷΠ¸Þ½ÃÁö »ý¼º°ú »ç¿ëÀ» ¸ðµÎ ÃѰýÇÏ´Â Á¾´Ü°£ Æ®·£Àè¼ÇÀº ¸¸µé ¼ö ¾ø½À´Ï´Ù. (Áï, ´ë»óÀ¸·Î ¸Þ½ÃÁö¸¦ Àü´ÞÇÏ´Â °Í°ú ³ªÁß¿¡ ¸Þ½ÃÁö¸¦ Ŭ¶óÀÌ¾ðÆ®·Î Àü´ÞÇÏ´Â °ÍÀ» ÇϳªÀÇ Æ®·£Àè¼ÇÀ¸·Î ºÐ·ùÇÒ ¼ö ¾ø½À´Ï´Ù.)
ºÐ»ê Æ®·£Àè¼Ç
¶ÇÇÑ Message Queue´Â ºÐ»ê Æ®·£Àè¼ÇÀ» Áö¿øÇÕ´Ï´Ù. Áï ¸Þ½ÃÁö »ý¼º ¹× »ç¿ëÀº µ¥ÀÌÅͺ£À̽º ½Ã½ºÅÛ°ú °°Àº ´Ù¸¥ ÀÚ¿ø °ü¸®ÀÚ°¡ °ü·ÃµÈ ÀÛ¾÷µéÀ» Æ÷ÇÔÇÏ´Â ´õ Å©°í ºÐ»êµÈ Æ®·£Àè¼ÇÀÇ ÀϺΰ¡ µÉ ¼ö ÀÖ½À´Ï´Ù. ºÐ»ê Æ®·£Àè¼ÇÀÇ °æ¿ì, ºÐ»ê Æ®·£Àè¼Ç °ü¸®ÀÚ´Â JTA (Java Transaction API)ÀÎ XA Resource API »ç¾ç¿¡ Á¤ÀÇµÈ 2´Ü°è ¿Ï°á ÇÁ·ÎÅäÄÝÀ» »ç¿ëÇÏ¿© ¿©·¯ ÀÚ¿ø °ü¸®ÀÚ(¸Þ½ÃÁö ¼ºñ½º, µ¥ÀÌÅͺ£À̽º °ü¸®ÀÚ µî)°¡ ¼öÇàÇÏ´Â ÀÛ¾÷À» ÃßÀûÇÏ°í °ü¸®ÇÕ´Ï´Ù. Java¿¡¼ ÀÚ¿ø °ü¸®ÀÚ ¹× ºÐ»ê Æ®·£Àè¼Ç °ü¸®ÀÚ °£ÀÇ »óÈ£ ÀÛ¿ëÀº JTA »ç¾ç¿¡¼ ¼³¸íÇÕ´Ï´Ù.
ºÐ»ê Æ®·£Àè¼Ç Áö¿øÀº ¸Þ½Ã¡ Ŭ¶óÀÌ¾ðÆ®°¡ JTA¿¡¼ Á¤ÀÇµÈ XA Resource ÀÎÅÍÆäÀ̽º¸¦ ÅëÇØ ºÐ»ê Æ®·£Àè¼Ç¿¡ Âü¿©ÇÒ ¼ö ÀÖÀ½À» ÀǹÌÇÕ´Ï´Ù. ÀÌ ÀÎÅÍÆäÀ̽º´Â 2´Ü°è ¿Ï°áÀ» ±¸ÇöÇÏ´Â ¿©·¯ ¸Þ¼Òµå¸¦ Á¤ÀÇÇÕ´Ï´Ù. Ŭ¶óÀ̾ðÆ®Ãø¿¡¼ API È£ÃâÀÌ ÀÌ·ç¾îÁö´Â µ¿¾È Message Queue ºê·ÎÄ¿´Â ºÐ»ê Æ®·£Àè¼Ç ³»ºÎÀÇ ´Ù¾çÇÑ ¹ß½Å ¹× ¼ö½Å ÀÛ¾÷À» ÃßÀûÇÏ°í Æ®·£Àè¼Ç »óŸ¦ ÃßÀûÇϸç JTS (Java Transaction Service)°¡ Á¦°øÇÏ´Â ºÐ»ê Æ®·£Àè¼Ç °ü¸®ÀÚ¿ÍÀÇ Á¶Á¤À» ÅëÇØ¼¸¸ ¸Þ½Ã¡ ÀÛ¾÷À» ¿Ï·áÇÕ´Ï´Ù.
·ÎÄà Ʈ·£Àè¼Ç°ú ¸¶Âù°¡Áö·Î Ŭ¶óÀÌ¾ðÆ®´Â ¿¹¿Ü¸¦ ¹«½ÃÇϰųª ÀÛ¾÷À» ´Ù½Ã ½ÃµµÇϰųª Àüü ºÐ»ê Æ®·£Àè¼ÇÀ» ·Ñ¹éÇÏ´Â ¹æ¹ýÀ¸·Î ¿¹¿Ü¸¦ ó¸®ÇÒ ¼ö ÀÖ½À´Ï´Ù.
Message Queue´Â XA ¿¬°á ÆÑÅ丮¸¦ ÅëÇØ ºÐ»ê Æ®·£Àè¼Ç Áö¿øÀ» ±¸ÇöÇÕ´Ï´Ù. À̸¦ ÅëÇØ XA ¿¬°áÀ» »ý¼ºÇϰí, XA ¿¬°áÀ» ÅëÇØ XA ¼¼¼ÇÀ» »ý¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù("JMS ÇÁ·Î±×·¡¹Ö ¸ðµ¨" ÂüÁ¶). ¶ÇÇÑ ºÐ»ê Æ®·£Àè¼ÇÀ» Áö¿øÇÏ·Á¸é Ÿ»çÀÇ JTS³ª (JTS¸¦ Á¦°øÇÏ´Â) J2EE ȣȯ Application Server°¡ ÇÊ¿äÇÕ´Ï´Ù.
¿µ±¸ ÀúÀå¼Ò
¾ÈÁ¤¼ºÀÇ ¶Ç ´Ù¸¥ Áß¿äÇÑ Ãø¸éÀº ÀÏ´Ü Áö¼Ó¼º ¸Þ½ÃÁö°¡ ´ë»ó¿¡°Ô Àü´ÞµÇ¾ú´Ù¸é ¸Þ½ÃÁö ¼ºñ½º´Â »ç¿ëÀÚ¿¡°Ô Àü´ÞµÉ ¶§±îÁö ±× ¸Þ½ÃÁö¸¦ ÀÒ¾î¹ö¸®Áö ¾Ê¾Æ¾ß ÇÑ´Ù´Â °ÍÀÔ´Ï´Ù. Áï Áö¼Ó¼º ¸Þ½ÃÁö°¡ ´ë»ó¿¡ Àü´ÞµÇ¸é ¸Þ½ÃÁö ¼ºñ½º´Â À̸¦ ¿µ±¸ µ¥ÀÌÅÍ ÀúÀå¼Ò¿¡ ÀúÀåÇØ¾ß ÇÕ´Ï´Ù("Áö¼Ó¼º °ü¸®ÀÚ" ÂüÁ¶). ¾î¶² ÀÌÀ¯·Î ¸Þ½ÃÁö ¼ºñ½º°¡ ÁߴܵǴ °æ¿ì, ¸Þ½ÃÁö ¼ºñ½º´Â ¸Þ½ÃÁö¸¦ º¹±¸ÇÏ¿© ÇØ´ç »ç¿ëÀÚ¿¡°Ô Àü´ÞÇÒ ¼ö ÀÖ½À´Ï´Ù. ±× °á°ú ¸Þ½ÃÁö Àü´ÞÀÇ ¿À¹öÇìµå°¡ ´Ã¾î³ªÁö¸¸ ¾ÈÁ¤¼ºÀº Áõ°¡ÇÕ´Ï´Ù.
¶ÇÇÑ ¸Þ½ÃÁö ¼ºñ½º´Â ¿µ±¸ °¡ÀÔµµ ÀúÀåÇØ¾ß ÇÕ´Ï´Ù. ÁÖÁ¦ ´ë»óÀÇ °æ¿ì, ¸Þ½ÃÁö Àü´ÞÀ» º¸ÀåÇÏ·Á¸é Áö¼Ó¼º ¸Þ½ÃÁö¸¸ º¹±¸ÇÏ´Â °ÍÀ¸·Î´Â ÃæºÐÇÏÁö ¾Ê±â ¶§¹®ÀÔ´Ï´Ù. ¶ÇÇÑ ¸Þ½ÃÁö ¼ºñ½º´Â ¾î¶² ÁÖÁ¦ÀÇ ¿µ±¸ °¡ÀÔ¿¡ ´ëÇÑ Á¤º¸¸¦ º¹±¸ÇØ¾ß ÇÕ´Ï´Ù. ±×·¸Áö ¾ÊÀ¸¸é ¸Þ½ÃÁö°¡ µµÂøÇßÀ» ½ÃÁ¡¿¡ ºñȰ¼º »óÅ¿´´Ù°¡ ³ªÁß¿¡ Ȱ¼ºÈµÇ´Â °¡ÀÔÀÚ¿¡°Ô ¸Þ½ÃÁö¸¦ Àü´ÞÇÒ ¼ö ¾ø½À´Ï´Ù.
¸Þ½ÃÁö Àü´Þ º¸ÀåÀÌ Áß¿äÇÑ ¸Þ½Ã¡ ÀÀ¿ë ÇÁ·Î±×·¥Àº ¸Þ½ÃÁö°¡ Áö¼Ó¼ºÀ» °®µµ·Ï ÁöÁ¤ÇÏ°í ´ë±â¿ ´ë»óÀ̳ª ÁÖÁ¦ ´ë»ó¿¡ ´ëÇÑ ¿µ±¸ °¡ÀÔ Áß Çϳª¸¦ »ç¿ëÇØ¾ß ÇÕ´Ï´Ù.
¼º´É ±ÕÇü
¸Þ½ÃÁö Àü´ÞÀÇ ¾ÈÁ¤¼ºÀÌ ³ô¾ÆÁú¼ö·Ï À̸¦ ½ÇÇöÇϱâ À§ÇØ ´õ ¸¹Àº ¿À¹öÇìµå¿Í ´ë¿ªÆøÀÌ ÇÊ¿äÇÕ´Ï´Ù. ¾ÈÁ¤¼º°ú ¼º´É °£ÀÇ ±ÕÇüÀº ¼³°è ½Ã °í·ÁÇØ¾ß ÇÒ Áß¿äÇÑ »çÇ×ÀÔ´Ï´Ù. ºñÁö¼Ó¼º ¸Þ½ÃÁö¸¦ »ý¼ºÇÏ°í »ç¿ëÇϵµ·Ï ¼±ÅÃÇÔÀ¸·Î½á ¼º´ÉÀ» ±Ø´ëÈÇÒ ¼ö ÀÖ½À´Ï´Ù. ÇÑÆí Áö¼Ó¼º ¸Þ½ÃÁö¸¦ »ý¼º ¹× »ç¿ëÇÏ°í Æ®·£Àè¼ÇµÈ ¼¼¼ÇÀ» »ç¿ëÇÒ °æ¿ì ¾ÈÁ¤¼ºÀ» ±Ø´ëÈÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ µÑ °£¿¡´Â Message Queueº° ¿¬°á ¹× È®ÀÎ µî·Ï Á¤º¸ÀÇ »ç¿ëÀ» ºñ·ÔÇÏ¿© ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ ÇÊ¿ä »çÇ׿¡ µû¶ó ´Ù¾çÇÑ ¿É¼ÇÀÌ Á¸ÀçÇÕ´Ï´Ù(Message Queue Java Client Developer's Guide ÂüÁ¶). ÀÌ·¯ÇÑ ±ÕÇü¿¡ ´ëÇØ¼´Â "¼º´É¿¡ ¿µÇâÀ» ¹ÌÄ¡´Â ÀÀ¿ë ÇÁ·Î±×·¥ ¼³°è ¿ä¼Ò"¿¡¼ ÀÚ¼¼È÷ ¼³¸íÇÕ´Ï´Ù.
¸Þ½ÃÁö ¼±ÅÃ
JMS´Â ¸Þ½ÃÁö ¼±Åñ⿡ ¼³Á¤µÈ ±âÁØÀ» Åä´ë·Î ¸Þ½ÃÁö ¼ºñ½º°¡ ¸Þ½ÃÁö ÇÊÅ͸µ ¹× ¶ó¿ìÆÃÀ» ¼öÇàÇÒ ¼ö ÀÖ´Â ¸ÞÄ¿´ÏÁòÀ» Á¦°øÇÕ´Ï´Ù. »ý¼ºÀÚ Å¬¶óÀÌ¾ðÆ®´Â ÀÀ¿ë ÇÁ·Î±×·¥º° µî·Ï Á¤º¸¸¦ ¸Þ½ÃÁö¿¡ Æ÷ÇÔ½Ãų ¼ö ÀÖÀ¸¸ç, »ç¿ëÀÚ Å¬¶óÀÌ¾ðÆ®´Â ±×·¯ÇÑ µî·Ï Á¤º¸¿¡ ±â¹ÝÇÑ ¼±Åà ±âÁØÀ» »ç¿ëÇÏ¿© ¸Þ½ÃÁö¿¡ ÀÎÅÍ·¹½ºÆ®¸¦ Ç¥½ÃÇÒ ¼ö ÀÖ½À´Ï´Ù. ±× °á°ú Ŭ¶óÀÌ¾ðÆ® ÀÛ¾÷ÀÌ °£¼Òȵǰí ÇØ´ç ¸Þ½ÃÁö°¡ ÇÊ¿äÇÏÁö ¾ÊÀº Ŭ¶óÀÌ¾ðÆ®·Î ¸Þ½ÃÁö¸¦ Àü´ÞÇÏ´Â ¿À¹öÇìµå°¡ ¾ø¾îÁý´Ï´Ù. ±×·¯³ª ¼±Åà ±âÁØÀ» ó¸®ÇÏ´Â ¿À¹öÇìµå°¡ ¸Þ½ÃÁö ¼ºñ½º¿¡ Ãß°¡µË´Ï´Ù. ¸Þ½ÃÁö ¼±Åñ⠱¸¹®°ú Àǹ̴ JMS »ç¾ç¿¡ ¼³¸íµÇ¾î ÀÖ½À´Ï´Ù.
¸Þ½ÃÁö ¼ø¼ ¹× ¿ì¼± ¼øÀ§
ÀϹÝÀûÀ¸·Î ´ÜÀÏ ¼¼¼ÇÀ» ÅëÇØ ¾î¶² ´ë»óÀ¸·Î º¸³»Áö´Â ¸ðµç ¸Þ½ÃÁö´Â ¹ß½Å ¼ø¼¿¡ µû¶ó »ç¿ëÀÚ¿¡°Ô Àü´ÞµË´Ï´Ù. ±×·¯³ª ´Ù¸¥ ¿ì¼± ¼øÀ§°¡ ÁöÁ¤µÈ °æ¿ì, ¸Þ½Ã¡ ½Ã½ºÅÛÀº ¿ì¼± ¼øÀ§°¡ ³ôÀº ¸Þ½ÃÁö¸¦ ¸ÕÀú Àü´ÞÇÏ·Á°í ÇÕ´Ï´Ù.
±× ¿Ü¿¡ Ŭ¶óÀÌ¾ðÆ® ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ ¸Þ½ÃÁö »ç¿ë ¼ø¼¿Í »ý¼º ¼ø¼ °£ÀÇ °ü°è´Â ´ë·«ÀûÀÎ °Í¿¡ ºÒ°úÇÕ´Ï´Ù. ´ë»óÀ¸·ÎÀÇ ¸Þ½ÃÁö Àü´Þ°ú ´ë»óÀ¸·ÎºÎÅÍÀÇ ¸Þ½ÃÁö Àü´ÞÀº ¸Þ½ÃÁö ¹ß½Å ¼ø¼, ¸Þ½ÃÁö°¡ ¹ß½ÅµÈ ¼¼¼Ç(¿¬°á), ¸Þ½ÃÁöÀÇ Áö¼Ó¼º ¿©ºÎ, ¸Þ½ÃÁöÀÇ ¼ö¸í, ¸Þ½ÃÁö ¿ì¼± ¼øÀ§, ´ë±â¿ ´ë»óÀÇ ¸Þ½ÃÁö Àü´Þ Á¤Ã¥("´ë±â¿ ´ë»ó" ÂüÁ¶) ¹× ¸Þ½ÃÁö ¼ºñ½º °¡¿ë¼º µî ½Ã°£¿¡ ¿µÇâÀ» ¹ÌÄ¡´Â ´Ù¾çÇÑ ¿ä¼Ò¿¡ µû¶ó °áÁ¤µÇ±â ¶§¹®ÀÔ´Ï´Ù.
Message Queue ¸Þ½ÃÁö ¼¹ö°¡ »óÈ£ ¿¬°áµÈ ¿©·¯ ºê·ÎÄ¿¸¦ »ç¿ëÇÏ´Â °æ¿ì("¸ÖƼ ºê·ÎÄ¿ Ŭ·¯½ºÅÍ(¿£ÅÍÇÁ¶óÀÌÁîÆÇ)" ÂüÁ¶), Ŭ¶óÀ̾ðÆ®ÀÇ ¸Þ½ÃÁö »ç¿ë ¼ø¼´Â ´õ º¹ÀâÇØÁö´Âµ¥, ÀÌ´Â ¼·Î ´Ù¸¥ ºê·ÎÄ¿¿¡¼ ´ë»óÀ¸·ÎºÎÅÍÀÇ ¸Þ½ÃÁö Àü´Þ ¼ø¼°¡ ºÒÈ®Á¤ÀûÀ̱⠶§¹®ÀÔ´Ï´Ù. µû¶ó¼ ¾î¶² ºê·ÎÄ¿°¡ Àü´ÞÇÏ´Â ¸Þ½ÃÁö´Â ¸ÕÀú ¸Þ½ÃÁö¸¦ ¼ö½ÅÇÑ ´Ù¸¥ ºê·ÎÄ¿°¡ Àü´ÞÇÏ´Â ¸Þ½ÃÁöº¸´Ù ¸ÕÀú ó¸®µÉ ¼öµµ ÀÖ½À´Ï´Ù.
¾î¶² °æ¿ì¿¡µµ ÇØ´ç »ç¿ëÀÚ¿¡ ´ëÇØ ¿ì¼± ¼øÀ§°¡ ³ôÀº ¸Þ½ÃÁö´Â ¿ì¼± ¼øÀ§°¡ ³·Àº ¸Þ½ÃÁöº¸´Ù ¸ÕÀú 󸮵˴ϴÙ.