| Ganymede½ÃÀÛÇϱâ(Bundle status)(2008/9/23) | ![]() |
JLab Çã¿øÁø
¡¡
º¸Åë »çÀÌŬÀ» °¡Áö´Â ÀÚ¹Ù ¾îÇø®ÄÉÀ̼ÇÀ» ¼³¸í ÇÒ ¶§ ¿¡Çø´ÀÇ ¿¹¸¦ ¸¹ÀÌ »ç¿ëÇϴµ¥ ¹øµéÀÇ °æ¿ì´Â ¿¡Çø´°ú´Â ¼ºÁúÀÌ ¸Å¿ì ´Ù¸£´Ù. ¾÷µ¥ÀÌÆ®¿Í ÀÇÁ¸¼º¿¡ ÀÇÇÑ lazy&smart mechanismÀ» ÀÌ¿ëÇÑ ·Îµùµî ¸Å¿ì ´Ù¸£´Ù. À̹ø ±â»ç¿¡¼´Â ¹øµéÀÇ ½ºÅ×ÀÌÆ® º¯È¿¡ ÁßÁ¡À» µÎ¾î ±â¼úÇÏ¿´´Ù.
Status Summary
¾ÆÁ÷ osgi¿Í bundle¿¡¼µµ Àͼ÷ÇÏÁö ¾ÊÀº »óÅ¿¡¼ »çÀÌŬ°ú °¢ »óÅ º°·Î ÀÚ¼¼ÇÑ ¼³¸íÀ» ¹Ù·Î µé¾î°¡±â´Â ¾î·Á¿ì´Ï state¿¡ ´ëÇØ¼ °¢·«ÇÏ°Ô º¸°í ³Ñ¾î°¡ÀÚ. º¸Åë ¿ì¸®°¡ Computing ÇÏ´Â ÀýÂ÷´Â ¸ÅÀåÀ̳ª ¶óÀ̼¾½º¸¦ ÅëÇØ ¼ÒÇÁÆ®¿þ¾î¸¦ ±¸ÀÔÇÑÈÄ¿¡ ½ºÅ丮Áö(ÇÏµå µð½ºÅ©µî) ¿¡ ¼³Ä¡ ÇÑ ÈÄ ¼ÒÇÁÆ®¿þ¾î¸¦ ½ÇÇàÇÑ´Ù. bundleÀº ±× ¼ÒÇÁÆ®¿þ¾îÀÇ ¿ªÇÒÀ» ÇÑ´Ù. Áï ¹øµéÀº OSGi Frameworkȯ°æ¿¡¼ ½ÇÇàµÇ´Â ¼ÒÇÁÆ®¿þ¾î ÀÌ´Ù. ¶ÇÇÑ ¾Õ ¼± ¿¹¿Í °°ÀÌ ÀÏÁ¤ÇÑ ÀýÂ÷¿Í »çÀÌŬÀ» °®´Â´Ù.
OSGi java doc
À§´Â osgiÀÇ bundle ºÎºÐ java docÀÌ´Ù. 6°³ÀÇ »óŸ¦ °¡Áö°í ÀÖ´Ù.
¡¡
OSGi configuraion
installed resolved starting active stopping uninstalled À§´Â ÀϹÝÀûÀÎ ¹øµéÀÇ »çÀÌŬ ÀÌ´Ù. ÀÌ»çÀÌŬÀÇ ½ÃÀÛÀº OSGi configuraionÀÌ´Ù.
#This configuration file was written by: org.eclipse.equinox.internal.frameworkadmin.equinox.EquinoxFwConfigFileParser
#Tue Jun 17 22:38:44 EDT 2008
org.eclipse.update.reconcile=false
osgi.launcherPath=.
eclipse.p2.profile=SDKProfile
osgi.instance.area.default=@user.home/workspace
osgi.framework=file\:plugins/org.eclipse.osgi_3.4.0.v20080605-1900.jar
eclipse.buildId=I20080617-2000
osgi.bundles=reference\:file\:org.eclipse.equinox.simpleconfigurator_1.0.0.v20080604.jar@1\:start
org.eclipse.equinox.simpleconfigurator.configUrl=file\:org.eclipse.equinox.simpleconfigurator/bundles.info
eclipse.product=org.eclipse.sdk.ide
osgi.splashPath=platform\:/base/plugins/org.eclipse.platform
osgi.launcherIni=eclipse
eclipse.p2.data.area=@config.dir/../p2
osgi.bundles.defaultStartLevel=4config.ini
ÀÌ configÆÄÀÏÀº ¿©·¯ºÐÀÌ ¼³Ä¡ÇÑ ÀÌŬ¸³½º Æú´õ ³»¿¡ configuration¿¡¼ ãÀ» ¼ö ÀÖ´Ù. ÀÌ °ÍÀº 3.4 ganymedeÀÇ configurationÀ¸·Î osgi platform ½ÃÀ۵ɶ§ ÇØ¼® µÈ´Ù. º¸¸é ¾Ë°ÚÁö¸¸ osgi·Î½ÃÀÛ µÇ´Â ÇÁ·ÎÆÛƼ¿Í org.eclipse·Î ½ÃÀÛ µÇ´Â ÇÁ·ÎÆÛƼ°¡ ¼¯¿©ÀÖ´Ù. ÀÌ Àü ±â»ç¿¡¼ ¼³¸íÇÑ ¹øµéÀÇ manifest ÆÄÀÏ Ã³·³ ±âº»ÀûÀÎ ÇÁ·ÎÆÛƼ ¿Ü¿¡´Â ¹«½ÃµÈ´Ù. À̸¦ ÀÌ¿ë º°µµÀÇ ÇÁ·ÎÆÛƼ¸¦ µÎ¾î osgiÇÁ·¹ÀÓ¿öÅ©¸¦ È®ÀåÇÏ¿© equinox¸¦ ¸¸µç °ÍÀÌ´Ù. ¾ÆÁ÷ equinox¿Í osgi framework°£ÀÇ °ü°è°¡ °¨ÀÌ ¾È¿À´Â µ¶ÀÚ´Â ÀÌÀü ±â»ç¿Í °ü·Ã±ÛÀ» ´õ º¸±â ¹Ù¶õ´Ù. org.eclipse.ÀÇ ÇÁ·ÎÆÛƼ´Â ¸Å¿ì ÀÚÁÖ ¹Ù²î´Ï ³Ê¹« ÇÁ·ÎÆÛƼ ³»¿ë¿¡ ½Å°æ ¾²Áö ¾Ê±â¸¦ ¹Ù¶õ´Ù. ´ÙÀ½Àº 3.1 callistoÀÇ configurationÀÌ´Ù. 3.4ÀÇ ´Ù¼Ò º¹ÀâÇÑ ÇÁ·ÎÆÛƼ º¸´Ù´Â ÁÖ¼®°ú °£°áÇÔÀ¸·Î ÀÌÇØ°¡ ÆíÇÒ °ÍÀÌ´Ù.
# The comma-separated list of bundles which are automatically installed and optionally started
# once the system is up and running. Each entry if of the form
# <URL | simple bundle location>[@ [< startlevel >] [":start"]]
# If the startlevel is omitted then the framework will use the default start level for the bundle.
# If the "start" tag is added then the bundle will be marked as started after being installed.
# Simple bundle locations are interepreted as relative to the framework's parent directory.
# The startlevel indicates the OSGi start level at which the bundle should run.
# If this value is not set, the system computes an appropriate default.
osgi.bundles =org.eclipse.equinox.common@2:start, org.eclipse.update.configurator@3:start, org.eclipse.core.runtime@start
# The product to run. A given Eclipse configuration may contain many products.
# The product identified will supply the branding (window icons, title bar text) etc
# as well as define the default application to run.
eclipse.product = org.eclipse.sdk.ide
osgi³ª equinoxÀÇ ½ÃÀÛ ¸¸À¸·Î ÇÒ ¼ö Àִ°ÍÀÌ ¾ø´Ù. ´Ü¼øÈ÷ ȯ°æ¸¸ Á¦°øÇÒ »ÓÀÌ´Ù ½ÇÁúÀûÀ¸·Î ¹«¾ùÀΰ¡¸¦ ¼öÇàÇÒ ¼ÒÇÁÆ®¿þ¾î°¡ ½ÇÇàµÇÁö ¾Ê´Â´Ù. ÆÄ¶û»ö ºÎºÐÀÌ Ç÷§Æû ·Îµù ÀÌÈÄ ¹«¾ùÀΰ¡¸¦ ¼öÇàÇÒ ÃÖÃÊÀÇ ¼ÒÇÁÆ®¿þ¾î°¡ µÈ´Ù. ganymedeÀÇ configration¿¡´Â equinoxÀÇ ½ÃÀÛÀ» ¼¼úÇϰí ÀÖ´Ù. µû¶ó¼ ganymedeÀÇ ½ÇÇàÀº ´ÙÀ½°ú °°´Ù.
1.OSGi Platform ½ÃÀÛ
2.config.ini ÀÇ osgi. ÇÁ·ÎÆÛƼ ÇØ¼®/½ÇÇà
3.Equinox Platfrom ½ÃÀÛ
4.config.ini ÀÇ org.eclipse. ÇÁ·ÎÆÛƼ ÇØ¼®/½ÇÇà
´õ¿í´õ configuration¿¡ ÀÚ¼¼È÷ ¾Ë °í ½ÍÀº µ¶ÀÚ´Â ´ÙÀ½ ¹®¼¸¦ Âü°íÇÑ´Ù.
http://www.eclipse.org/equinox/documents/quickstart.php
http://help.eclipse.org/help32/index.jsp?topic=/org.eclipse.platform.doc.isv/reference/misc/runtime-options.html
¿©·¯ºÐÀÌ °³¹ßÇÑ ¹øµéÀÌ OSGi¸¸À» ÀÌ¿ëÇÑ °ÍÀ̸é config´Â ¾Æ·¡¿Í °°Àº ¸ð½ÀÀÌ µÈ´Ù.
osgi.bundles=reference\:file\:myBundle.jar@1:start
ganymedeÀÇ equinox¸¦ ÀÌ¿ëÇÑ Ç÷¯±×ÀÎ À̶ó¸é ¾Æ·¡¿Í °°Àº ¸ð½ÀÀÌ µÈ´Ù.
osgi.bundles=reference\:file\:org.eclipse.equinox.simpleconfigurator_1.0.0.v20080604.jar@1:start, myBundle.jar@start
configuration ÀÌÈÄÀÇ »çÀÌŬÀº ¹øµé°ú osgi Äֿܼ¡ÀÇÇØ Á¿ìµÈ´Ù. ÀÌ Àü ±â»çÀÇ ¹æ¹ýÀ¸·Î ÄܼÖâÀ» ¿¬ ÈÄ ÄÜ¼Ö ¸í·ÉÀ» »ç¿ëÇÏ¸é ¹øµéÀÇ »óŸ¦ ¹Ù²Ü ¼ö ÀÖ´Ù. ÄܼÖÀ» ÀÌ¿ëÇÒ‹š ÁÖÀÇ ÇÒÁ¡Àº Äɽ¬µ¥ÀÌÅ͸¦ ¸®¼ÂÇÏÁö ¾ÊÀ¸¸é ¹øµéµéÀÇ »óŰ¡ ¸Å ½ÃÀ۽à À¯ÁöµÈ´Ù. ¿¹¸¦µé¾î ÀÚ½ÅÀÌ ¹øµé A¸¦ ÄÜ¼Ö ¸í·ÉÀ» ÅëÇØ¼ ½ÃÀÛÇß´Ù¸é osgiÀç½ÃÀÛ ÈÄ¿¡µµ ¹øµé A´Â ÀÚµ¿À¸·Î ½ÃÀ۵ȴÙ.
¾Æ·¡´Â ¸î°¡Áö ÀÚÁÖ ¾²ÀÌ´Â ÄÜ¼Ö ¸í·ÉÀÌ´Ù Çѹø¾¿ ÇØº¸±æ ¹Ù¶õ´Ù.
- install <bundle URL> - Installs the bundle from the given URL
- start <bundle # or bundle name> - Starts the bundle with the given numeric or symbolic id
- stop <bundle # or bundle name> - Stops the bundle with the given numeric or symbolic id
- ss - Reports a summary status of all installed bundles
- diag <bundle # or bundle name> - Reports any resolution problems for the bundle with the given numeric or symbolic id
Dependency & Import package
ÄܼÖÀ» ÅëÇØ ¸î°¡Áö ½Ç½ÀÀ» ÇØº» µ¶ÀÚ¶ó¸é ÀÚ½ÅÀÌ start½ÃŰÁö ¾Ê¾Ò´Âµ¥ start·Î »óŰ¡ ¹Ù²ï ¹øµéÀ» ¹ß°ßÇßÀ» °ÍÀÌ´Ù. À̰ÍÀÌ ±Ã±Ý ÇÒ °ÍÀÌ´Ù. osgi ¼ÒÇÁÆ®¿þ¾î´Â bundleÀ» ´ÜÀ§·Î Çϰí ÀÖ´Ù. ÀÌ ¹øµé¿¡´Â ÀÚ¹Ù ÄÚµå »Ó¸¸¾Æ´Ï¶ó JNI C¹ÙÀ̳ʸ®³ª ¼ø¼öÇÑ ³×ÀÌÆ¼ºê ÄÚµå, ¸®¼Ò½º(À̹ÌÁö,¼Ò¸® µî)µîÀ» Æ÷ÇÔ ÇÒ ¼ö ÀÖ´Ù. ´Ù¸¥ ¹øµé¿¡¼ ÀÌ ÀÚ¹ÙÄڵ峪 ¸®¼Ò½º¿¡ ¾ï¼¼½º ÇÏ¸é ¾î¶»°Ô µÉ±î? ¿ì¼± osgi¿Í equinox¿¡¼ ´Ù¸¥ ¹øµéÀÇ ÀÚ¹ÙÄڵ带 Á¢±ÙÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ¼ ¾Ë¾Æº¸ÀÚ. ´Ù¸¥ ¹øµé¿¡¼ ÀÚ¹ÙÄڵ忡 ¾ï¼¼½º Çϱâ À§Çؼ´Â ´ÙÀ½°ú °°Àº Á¶°ÇÀÌ ÇÊ¿äÇÏ´Ù.
A case
¾ï¼¼½ºÇϰíÀÚ Çϴ Ŭ·¡½º¸¦ Æ÷ÇÔÇÑ ÆÐŰÁö°¡ exported ¼±¾ð µÇ¾î ÀÖ´Ù.
¾ï¼¼½º Çϴ Ŭ·¡½º¸¦ Æ÷ÇÔÇÏ´Â ¹øµé¿¡¼ dependency¸¦ ±â¼ú Çß´Ù.
B case
¾ï¼¼½ºÇϰíÀÚ Çϴ Ŭ·¡½º¸¦ Æ÷ÇÔÇÑ ÆÐŰÁö°¡ exported ¼±¾ð µÇ¾î ÀÖ´Ù.
¾ï¼¼½º Çϴ Ŭ·¡½º¸¦ Æ÷ÇÔÇÑ ¹øµé¿¡¼ import¸¦ ±â¼ú Çß´Ù.
°£´ÜÇÑ ¿¹¸¦ µé¾îº¸ÀÚ A¹øµéÀÌ A1À̶ó´Â Ŭ·¡½º¸¦ °¡Áö°í ÀÖ°í B¹øµéÀº B1À̶ó´Â Ŭ·¡½º¸¦ °¡Áö°í ÀÖ´Ù. B1ÀÇ ½ÇÇà¿¡´Â A¹øµéÀÇ A1Ŭ·¡½º°¡ ÇÊ¿äÇÏ´Ù. A case·Î »ìÆìº¸¸é.
A¹øµéÀÇ A1 Ŭ·¡½º°¡ Æ÷ÇÔÇÑ ÆÐŰÁö°¡ exported ¼±¾ð µÇ¾î ÀÖ´Ù.
B¹øµé¿¡¼ A¹øµé dependency¸¦ ±â¼ú Çß´Ù.
ÀÌ °ÍÀ» º¸¸é ´Ü¼øÈ÷ B¹øµéÀÌ A¹øµéÀ» ÇÊ¿äÇÏ´Ù°í ±â¼úÇÑ´Ù°í ÇØ¼ A¹øµéÀÇ Å¬·¡½º¸¦ Á¢±Ù ÇÒ ¼ö Àִ°ÍÀÌ ¾Æ´Ï¶ó A¹øµé¿¡¼ ÇØ´Ü Ŭ·¡½º¸¦ Æ÷ÇÔÇÑ ÆÐŰÁö¸¦ °ø°³ÇؾßÇѴٴ°ÍÀ» ¾Ë ¼ö ÀÖ´Ù. ¹øµéÀÇ ¸ðµç Ŭ·¡½º°¡ ¿ÜºÎ¿¡ ³ëÃâ µÇÁö ¾Êµµ·Ï º¸È£ Çϴ°ÍÀÌ´Ù. ±×·¸´Ù¸é A,B caseÀÇ Â÷ÀÌ´Â ¹«¾ùÀϱî. B case°æ¿ì Eclipse 2.0½ÃÀý ±îÁö Á¸ÀçÇÏ´Â ´Ù¸¥ ¹øµé¿¡ ¾ï¼¼½º ÇÒ ¼ö ÀÖ´Â ¹æ¹ý À̾ú´Ù. °á°úÀûÀ¸·Î´Â A, B case ¸ðµÎ A¹øµéÀÇ A1 Ŭ·¡½º¿¡ Á¢±Ù ÇÒ ¼ö ÀÖ´Â °ÍÀº °°Áö¸¸ °æ¿ì¿¡ µû¶ó¼´Â ´Ù¸£´Ù. A caseÀÇ °æ¿ì B¹øµé¿¡¼ B1Ŭ·¡½º°¡ ½ÇÇàµÉ ¶§ A¹øµéÀ» resolved »óÅ·Π¸¸µé ¼ö ¾ø´Ù¸é B¹øµéÀÇ B1Ŭ·¡½º´Â ½ÇÇà µÇÁö ¾Ê´Â´Ù. Áï A¹øµé »Ó¸¸ ¾Æ´Ï¶ó A°¡ ÀÇÁ¸¼ºÀ» °¡Áö´Â ¸ðµç ¹øµéÀÇ ÀÌ»óÀÌ ¾ø¾î¾ßÁö¸¸ B¹øµéÀÇ B1 Ŭ·¡½º°¡ ½ÇÇàÀÌ µÈ´Ù. B caseÀÇ °æ¿ì Class Not Found ¿¹¿Ü´Â ¹ß»ýÇϰÚÁö¸¸ ÀÏ´Ü ÇØ´ç ÄÚµå´Â ½ÇÇàµÈ´Ù. eclipse.org¿¡¼´Â B caseÀÇ ¹æ¹ýÀ» À¯¿¬ÇÏ´Ù°í Ç¥ÇöÇϰí ÀÖÁö¸¸ ÇÊÀÚ´Â ÄÄÆ÷³ÍÆ® ±â¹ÝÀÇ °³¹ß ȯ°æ¿¡ ¾È ¸Â´Â ¹æ¹ýÀ̶ó°í »ý°¢ÇÑ´Ù. 2.0 Eclipse Platform¿¡¼ 3.0 Equinox·Î ³Ñ¾î ¿À¸é¼ ÀÌÀü¿¡ Á¸ÀçÇÏ´Â ¸¹À½ Ç÷¯±×ÀÎÀÇ migration cost ¹®Á¦·Î Á¸ÀçÇÏ´Â ¹æ¹ýÀ̶ó »ý°¢ÇÑ´Ù.
°á±¹ Componenet Based Programming¿¡¼´Â ÄÄÆ÷³ÍÆ®°£ÀÇ °ü°è·Î ¼ÒÇÁÆ®¿þ¾î°¡ Á¤ÀÇ µÈ´Ù. ¹øµé¾È¿¡ ƯÁ¤ ÀÛ¾÷À» Çϴ Ŭ·¡½º º¸´Ù´Â ¹øµé°£ÀÇ °ü°è·Î Àüü¸¦ ¹Ù¶óº¸´Â ½À°üÀÌ Áß¿äÇÏ´Ù.
´ÙÀ½ ±â»ç¿¡¼´Â Áö±Ý ±îÁöÀÇ ³»¿ëÀ» ¹ÙÅÁÀ¸·Î ganymede¸¦ ÀÌ¿ëÇØ ¹øµéÀ» ¸¸µé¾î º¸°Ú´Ù. ÆíÁýÁß¿¡ ¼³¸íÀ» À§ÇÑ ¼³¸íÀ» ¾²°í Áö¿ì°í¸¦ ¹Ýº¹Çß´Ù, ¼¼¹Ì³ª¿¡¼µµ ¸¶¶¥È÷ ¸íÈ®È÷ ¼³¸íÇÒ ¹æ¹ýÀÌ ¶°¿À¸£Áö ¾Ê¾Æ ¹ö¹÷¿´´Âµ¥ Àǹ®Á¡Àº Á¦ÀÌ·¦ °Ô½ÃÆÇ¿¡ ³²°Ü ÁÖ¸é ¿½ÉÈ÷ ´äº¯ÇØ º¸°Ú´Ù.
| ÂüÁ¶ | |
| Á¦¸ñ | http://www.eclipse.org/equinox/documents/quickstart.php |
| http://help.eclipse.org/help32/index.jsp?topic=/org.eclipse.platform.doc.isv/reference/misc/runtime-options.html | |
| °ü·Ã Á¦ÀÌ·¦ ±â»ç | |
| OSGi À̾߱â | http://www.jlab.net/news/20050303/news.htm |
| Ganymede | http://www.jlab.net/news/20080825/news.htm |
| Ganymede ½ÃÀÛÇϱâ(OSGiÀÇ ÀÌÇØ¿Í ½ÃÀÛ) | http://www.jlab.net/news/20080912/news.htm |
About Author
Çã¿øÁø
Á¦ÀÌ·¦ ´ëÇ¥ ¿î¿µÀÚ, Total Eclipse ´ëÇ¥ ÀúÀÚ, Eclipse Consultant, Juliet Scandal Project Leader. ÀÌŬ¸³½º ÇÁ·ÎÁ§Æ®µéÀ» Àû±Ø ÀÌ¿ëÇØ¼ Àúºñ¿ëÀ¸·Î Äè¼Ó°³¹ßÀ» Çϴµ¥ °ü½ÉÀÌ ¸¹´Ù. Contact
www.jlab.net
ÀÌ ÄÁÅÙÃ÷´Â JPL¿¡ ÀÇÇØ¼ º¸È£ ¹Þ½À´Ï´Ù. ¿ÀÅ» ÀÚ³ª °ÇÀÇ´Â À̰÷¿¡ ÇØÁֽʽÿÀ
¡¡