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=4

config.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´Â ÀÚµ¿À¸·Î ½ÃÀ۵ȴÙ.

¾Æ·¡´Â ¸î°¡Áö ÀÚÁÖ ¾²ÀÌ´Â ÄÜ¼Ö ¸í·ÉÀÌ´Ù Çѹø¾¿ ÇØº¸±æ ¹Ù¶õ´Ù.

 

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¿¡ ÀÇÇØ¼­ º¸È£ ¹Þ½À´Ï´Ù. ¿ÀÅ» ÀÚ³ª °ÇÀÇ´Â À̰÷¿¡ ÇØÁֽʽÿÀ

¡¡