Ç÷¯±×ÀÎÀ» Áö¿øÇÏ´Â ±â¼úÀº OSGi ÇÁ·¹ÀÓ¿öÅ©¸¦ »ç¿ëÇÏ¿© ±¸ÇöµË´Ï´Ù. ÀÌ °üÁ¡¿¡¼ Ç÷¯±×ÀÎÀº OSGi ¹øµé°ú µ¿ÀÏÇÕ´Ï´Ù. ¹øµé ¹× ¿¬°üµÈ Ŭ·¡½º´Â Java Ŭ·¡½º ·Îµù, ÇʼöÁ¶°Ç °ü¸® ¹× ¹øµéÀÇ ¶óÀÌÇÁ »çÀÌŬ¿¡ ´ëÇÑ ÇÁ·Î¼¼½º¸¦ ÁöÁ¤ÇÏ°í ±¸ÇöÇÕ´Ï´Ù. ÀÌ ¼³¸íÀÇ ³ª¸ÓÁö ºÎºÐ¿¡¼´Â ÇÁ·¹ÀÓ¿öÅ©ÀÇ Æ¯Á¤ Ŭ·¡½º¸¦ ¾ð±ÞÇÏÁö ¾Ê´Â ÇÑ Ç÷¯±×ÀÎ ¹× ¹øµéÀ̶ó´Â ¿ë¾î¸¦ °°Àº Àǹ̷Π»ç¿ëÇÕ´Ï´Ù.
Ç÷¯±×ÀΠŬ·¡½º´Â Ç÷§Æû¿¡¼ ½ÇÇà ÁßÀÎ Ç÷¯±×ÀÎÀ» Ç¥½ÃÇÕ´Ï´Ù. ÀÌ Å¬·¡½º´Â Ç÷¯±×Àο¡ ´ëÇÑ ¶óÀÌÇÁ »çÀÌŬ Ãø¸é ¹× Àüü Àǹ̸¦ ÅëÇÕÇÏ´Â Æí¸®ÇÑ À§Ä¡ÀÔ´Ï´Ù. Ç÷¯±×ÀÎÀº ¶óÀÌÇÁ »çÀÌŬÀÇ ½ÃÀÛ ¹× ÁßÁö Ãø¸é¿¡ ´ëÇÑ Æ¯¼öÈµÈ ±â´ÉÀ» ±¸ÇöÇÒ ¼ö ÀÖ½À´Ï´Ù. °¢ ¶óÀÌÇÁ »çÀÌŬ ¸Þ¼Òµå¿¡´Â Ãß°¡ Á¤º¸¸¦ Á¦°øÇÒ ¼ö ÀÖ´Â BundleContext¿¡ ´ëÇÑ ÂüÁ¶°¡ Æ÷ÇԵǾî ÀÖ½À´Ï´Ù.
¶óÀÌÇÁ »çÀÌŬÀÇ ½ÃÀÛ ºÎºÐÀº Ưº°ÇÑ ¼³¸íÀÇ °¡Ä¡°¡ ÀÖ½À´Ï´Ù. Ç÷¯±×ÀÎÀÇ Äڵ带 ÀÏü ½ÇÇàÇÏÁö ¾Ê°í Ç÷¯±×Àο¡ ´ëÇÑ Á¤º¸¸¦ Ç÷¯±×ÀÎ Manifest ÆÄÀÏ¿¡¼ °¡Á®¿Ã ¼ö ÀÖÀ½À» ÀÌ¹Ì È®ÀÎÇß½À´Ï´Ù. ÀϹÝÀûÀ¸·Î WorkbenchÀÇ ÀϺΠ»ç¿ëÀÚ Á¶Ä¡´Â Ç÷¯±×ÀÎÀÇ ½ÃÀÛÀ» ÇÊ¿ä·Î ÇÏ´Â ÀÏ·ÃÀÇ À̺¥Æ®¸¦ ¹ß»ý½Ãŵ´Ï´Ù. ±¸Çö Ãø¸é¿¡¼ Ç÷¯±×ÀÎÀº ÇØ´ç Ç÷¯±×Àο¡ Æ÷ÇԵǾî Àִ Ŭ·¡½º¸¦ ·ÎµåÇϱâ Àü¿¡´Â Àý´ë ½ÃÀÛµÇÁö ¾Ê½À´Ï´Ù.
start ¸Þ¼Òµå´Â Ç÷¯±×ÀÎÀÇ ÃʱâÈ ¹× µî·Ï ÀÛµ¿À» ±¸ÇöÇϱâ À§ÇÑ Æí¸®ÇÑ À§Ä¡ÀÔ´Ï´Ù. ±×·¯³ª Ç÷¯±×ÀÎÀ» ´Ù¸¥ ¿©·¯ ȯ°æ¿¡¼µµ ½ÃÀÛÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿ÀºêÁ§Æ®¸¦ µ¥ÄÚ·¹ÀÌÆ®ÇÏ´Â ¾ÆÀÌÄÜÀ» ¾ò´Â °Í¸¸Å ´Ü¼øÇÑ ÀÛ¾÷À¸·Î Ç÷¯±×ÀÎÀÇ Å¬·¡½º Áß Çϳª¸¦ ·ÎµåÇÒ ¼ö ÀÖÀ¸¹Ç·Î, Ç÷¯±×ÀÎÀ» ½ÃÀÛÇÒ ¼ö ÀÖ½À´Ï´Ù. ÃʱâȰ¡ Áö³ªÄ¡¸é ÃʱâȰ¡ ÇÊ¿äÇϱ⠿À·¡ Àü¿¡ Ç÷¯±×ÀÎ ÄÚµå ¹× µ¥ÀÌÅͰ¡ ·ÎµåµÉ ¼ö ÀÖ½À´Ï´Ù. µû¶ó¼ Ç÷¯±×ÀÎÀÇ ÃʱâÈ Å¸½ºÅ©¸¦ ÀÚ¼¼È÷ »ìÆì º¸°í ½ÃÀÛ ½Ã ÃʱâÈ ¼öÇà¿¡ ´ëÇÑ ´ëü ¹æ¹ýÀ» °í·ÁÇÏ´Â °ÍÀÌ Áß¿äÇÕ´Ï´Ù.
¶óÀÌÇÁ »çÀÌŬ °ü¸®´Â OSGi "¹øµé" ¿ë¾î ¹× Ç÷§ÆûÀÇ "Ç÷¯±×ÀÎ" ¿ë¾î°¡ ÀÏÄ¡ÇÏ´Â À§Ä¡ÀÔ´Ï´Ù. Ç÷¯±×ÀÎÀÌ ½ÃÀ۵Ǹé Ç÷¯±×Àΰú °ü·ÃµÈ Á¤º¸¸¦ ¾òÀ» ¼ö ÀÖ´Â BundleContext¿¡ ´ëÇÑ ÂüÁ¶°¡ Á¦°øµË´Ï´Ù. BundleContext´Â ½Ã½ºÅÛÀÇ ´Ù¸¥ ¹øµé/Ç÷¯±×ÀÎÀ» ã´Â µ¥¿¡µµ »ç¿ëµÉ ¼ö ÀÖ½À´Ï´Ù.
BundleContext.getBundles()´Â ½Ã½ºÅÛÀÇ ¸ðµç ¹øµé¿¡ ´ëÇÑ ¹è¿À» ¾ò´Â µ¥ »ç¿ëµÉ ¼ö ÀÖ½À´Ï´Ù. ´Ù¸¥ ¹øµéÀÇ ¶óÀÌÇÁ »çÀÌŬ »óŰ¡ º¯°æµÇ´Â ½Ã±â¸¦ Ç÷¯±×ÀÎÀÌ ¾Ë ¼ö ÀÖµµ·Ï BundleEventÀÇ ¸®½º³Ê¸¦ µî·ÏÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÚ¼¼ÇÑ Á¤º¸´Â BundleContext ¹× BundleEventÀÇ javadocÀ» ÂüÁ¶ÇϽʽÿÀ.
3.0 ÀÌÀü¿¡´Â À¯»çÇÑ Á¤º¸¸¦ Á¦°øÇϱâ À§ÇØ Ç÷¯±×ÀÎ ·¹Áö½ºÆ®¸®(IPluginRegistry)°¡ Á¦°øµÇ¾ú½À´Ï´Ù. ¿¹¸¦ µé¾î ½Ã½ºÅÛÀÇ ¸ðµç Ç÷¯±×Àο¡ ´ëÇÑ Ç÷¯±×ÀÎ ¼³¸íÀÚ¿¡¼ ÀÌ ·¹Áö½ºÆ®¸®¸¦ Á¶È¸ÇÒ ¼ö ÀÖ¾ú½À´Ï´Ù. ÀÌÁ¦ ÀÌ ·¹Áö½ºÆ®¸®´Â »ç¿ëµÇÁö ¾ÊÀ¸¸ç ÀÌ ¸ñÀûÀ¸·Î´Â BundleContext¸¦ »ç¿ëÇØ¾ß ÇÕ´Ï´Ù. Ç÷§Æû ·¹Áö½ºÆ®¸®´Â ÀÌÁ¦ È®Àå ¹× È®ÀåÁ¡¿¡ ´ëÇÑ Á¤º¸¿ëÀ¸·Î µ¶Á¡ÀûÀ¸·Î »ç¿ëµË´Ï´Ù.
BundleActivator ÀÎÅÍÆäÀ̽º´Â Ç÷¯±×Àο¡ ±¸ÇöµÇ´Â ½ÃÀÛ ¹× ÁßÁö ÀÛµ¿À» Á¤ÀÇÇÕ´Ï´Ù. Ç÷¯±×ÀΠŬ·¡½º°¡ ÀÌ ±â´ÉÀ» ±¸ÇöÇϱâ À§ÇÑ Æí¸®ÇÑ À§Ä¡À̱ä ÇÏÁö¸¸ Ç÷¯±×ÀÎ °³¹ßÀÚ´Â Ç÷¯±×ÀÎ µðÀÚÀο¡ ÀûÀýÇÑ ¸ðµç Ŭ·¡½º¿¡ BundleActivatorÀÇ ÀÎÅÍÆäÀ̽º¸¦ ÀÚÀ¯·Ó°Ô ±¸ÇöÇÒ ¼ö ÀÖ½À´Ï´Ù. ½ÇÁ¦·Î Ç÷¯±×Àο¡ ƯÁ¤ ¶óÀÌÇÁ »çÀÌŬ °ü¸®°¡ ÇÊ¿äÇÏÁö ¾ÊÀ» °æ¿ì ÀÌ ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÒ Çʿ䰡 ÀüÇô ¾ø½À´Ï´Ù.
¸ðµç Ç÷¯±×ÀÎ ¾Æ·¡¿¡´Â ÇÁ·¹ÀÓ¿öÅ©¿¡¼ °ü¸®ÇÏ´Â OSGi ¹øµéÀÌ ÀÖ½À´Ï´Ù. ¹øµéÀº ¸ðµâ ¹æ½ÄÀÇ OSGi ÀåÄ¡ÀÔ´Ï´Ù. ±âº»ÀûÀ¸·Î ¹øµéÀº ´Ü¼øÈ÷ Ç÷§Æû¿¡ ¼³Ä¡µÈ ÆÄÀÏ(ÀÚ¿ø ¹× ÄÚµå)ÀÇ ÄÝ·º¼ÇÀÔ´Ï´Ù. °¢ ¹øµé¿¡´Â °íÀ¯ Java Ŭ·¡½º ·Î´õ°¡ ÀÖÀ¸¸ç, ¹øµé ÀÚü¸¦ ½ÃÀÛ, ÁßÁö ¹× ¼³Ä¡ Á¦°ÅÇÏ´Â ÇÁ·ÎÅäÄÝÀÌ Æ÷ÇԵǾî ÀÖ½À´Ï´Ù. Eclipse Ç÷§Æû Ãø¸é¿¡¼ ¹øµéÀº ´Ü¼øÈ÷ ±¸Çö Ŭ·¡½ºÀÔ´Ï´Ù. Ç÷¯±×ÀÎ °³¹ßÀÚ´Â ¹øµé Ŭ·¡½º¸¦ È®ÀåÇÏÁö´Â ¾ÊÁö¸¸ Ç÷¯±×ÀÎ ¶Ç´Â ±âŸ BundleActivator ±¸ÇöÀ» »ç¿ëÇÏ¿© Ç÷¯±×ÀÎÀ» Ç¥½ÃÇÕ´Ï´Ù.