[Áöµð³ÝÄÚ¸®¾Æ]ÃÖ±Ù ¼ÒÇÁÆ®¿þ¾î °³¹ß ȯ°æÀº ±â¼úÀÇ º¹ÀâÈ, ¼ºñ½º ȯ°æÀÇ ´Ù¾çÈ, ±Þ°ÝÇÑ ±â¼úÀÇ º¯È·Î ÀÎÇØ À̽ļº(Portability) ºÎÁ·À̳ª »óÈ£¿î¿ë¼º(Interoperability)ÀÇ °á¿©¿Í °°Àº ¸¹Àº ¾î·Á¿òÀ» °Þ°í ÀÖ´Ù. ±â¾÷µéÀº CMM(Capability Maturity Model) ·¹º§ ȹµæÀ» À§ÇØ Á¶Á÷À» °³¼±Çϰí, PMµé¿¡°Ô´Â Àü¹®ÀûÀÎ PM ±â¼ú ½ÀµæÀ» °¿äÇϸç, XP, RUP°¡ ³ì¾Æ ÀÖ´Â CBD ¹æ¹ý·ÐÀ» ºñ·ÔÇØ MDA, PBD¿Í °°Àº °¢Á¾ ¹æ¹ý·ÐÀÌ µµÀԵǰí, ´Ù¾çÇÑ ¼³°è ÆÐÅÏ¿¡ ±â¹ÝÇÑ ÇÁ·¹ÀÓ¿öÅ©°¡ ȸ»ç¸¶´Ù °æÀïÀûÀ¸·Î °³¹ßµÇ´Â ¿äÁò °³¹ßÀÚµéÀº ³¯·Î ´Ã¾î°¡´Â ÇнÀ¿¡ ´ëÇÑ ºÎ´ã°ú ¸ÅÀϰ°ÀÌ À̾îÁö´Â ¾ß°£ Àܾ÷À¸·Î ÇѼûÀÌ ³ª¿Ã ¹ýµµ ÇÏ´Ù.
ÇÏÁö¸¸ ÇÊÀÚ´Â ÀÌ·¯ÇÑ º¯È¸¦ Áñ°Ì°Ô ¹Þ¾ÆµéÀ̰í ÀÖ´Ù. ¿ì¼± ¿ì¸®³× ¼ÒÇÁÆ®¿þ¾î »ê¾÷ÀÌ ¼ÓµÈ ¸»·Î ¡®³ë°¡´Ù¡¯·Î ºÒ¸®´Â ¡®»ç¶÷ Àå»ç¡¯¸¦ ¹þ¾î³ª ¼ÒÇÁÆ®¿þ¾î °øÇп¡ ±â¹ÝÇÑ Á¦´ë·Î µÈ ¼ºÀå ±â¹ÝÀ» ¼¼È÷ °®Ãç°¡´Â °ÍÀ» ÁöÄѺ¸´Â °ÍÀÌ Áñ°Ì°í, ÀÌ °íÅ뽺·¯¿î ÁøÈÀÇ ½Ã±â¸¦ ´ç´çÈ÷ À̰ܳ»°í ³ª¸é ¿½ÉÈ÷ ³ë·ÂÇß´ø °³¹ßÀÚµéÀÌ ±×¿¡ ÀûÇÕÇÑ ´ë¿ì¸¦ ¹Þ°í ´õ ÇູÇÏ°Ô ÀÏÇÒ ¼ö ÀÖ´Â ³¯ÀÌ ¹Ýµå½Ã µµ·¡Çϸ®¶ó´Â È®½ÅÀÌ Àֱ⠶§¹®ÀÌ´Ù. ÀÌ ±Û¿¡¼´Â ±×·¯ÇÑ º¯È¸¦ ´À³¥ ¼ö ÀÖ´Â ´ëÇ¥Àû ¿ÀǼҽºÀÇ ÇϳªÀÎ EJOSA¿¡ ´ëÇØ ¼Ò°³ÇϰíÀÚ ÇÑ´Ù. EJOSA´Â ÃÖ±Ù ¼ÒÇÁÆ®¿þ¾î ºÐ¾ß¿¡¼ ÀϾ´Â ¸¹Àº º¯È¸¦ Á÷Á¢ üÇèÇÒ ¼ö ÀÖ´Â Àç¹ÌÀÖ´Â °øºÎ²¨¸®°¡ Á¦¹ý dzºÎÇÏ°Ô Æ÷ÇԵǾî ÀÖ´Ù.
EJOSA¶õ ¹«¾ùÀΰ¡?
EJOSA(Enterprise Java Open Source Architecture)´Â ¿ÀǼҽº¸¸À» ÀÌ¿ëÇØ¼ ±¸ÇöµÈ J2EE ±â¹ÝÀÇ ¿£ÅÍÇÁ¶óÀÌÁî¿ë ¾ÆÅ°ÅØÃ³ÀÌ´Ù. Lofi Dewanto¿Í Torsten MenzelÀ» ºñ·ÔÇÑ 6¸íÀÇ °³¹ßÀÚ°¡ ¼Ò½ºÆ÷Áö ³»ÀÇ ¿ÀǼҽº ÇüÅ·Π°³¹ßÀ» ÁøÇàÇϰí ÀÖ´Ù. <±×¸² 1>Àº EJOSAÀÇ ±¸¼ºÀ» º¸¿©Áִµ¥, Enhydra°¡ À¥ ÄÁÅ×À̳ʷΠ»ç¿ëµÇ¸ç, EJB ÄÁÅ×À̳ʷδ JOnAs°¡ »ç¿ëµÈ´Ù. ±×¹Û¿¡ DBMS¸¦ ºñ·ÔÇÑ ¸ðµç ±¸¼ºÀÌ ¿ÏÀüÇÑ ¿ÀǼҽº·Î¸¸ ÀÌ·ç¾îÁ® ÀÖÀ½À» È®ÀÎÇÒ ¼ö ÀÖ´Ù. ±×·± Àǹ̷ΠEJOSA´Â Enhydra and JOnAS ApplicationÀÇ ¾à¾î·Î Á¤ÀǵDZ⵵ ÇÑ´Ù. ÇÏÁö¸¸ ±×°ÍÀÌ EJOSA°¡ Enhydra³ª JOnAs¿¡ ÀÇÁ¸ÀûÀÎ ¾àÁ¡À» °®°í ÀÖ´Ù´Â °ÍÀ» ÀǹÌÇÏÁö´Â ¾Ê´Â´Ù. EJOSA ÀÚü´Â ÅèĹÀ̳ª JBoss¿Í °°Àº ´Ù¸¥ ÇüÅÂÀÇ WAS¿¡¼µµ »ç¿ëµÉ ¼ö ÀÖµµ·Ï È®Àå °¡´ÉÇϱ⠶§¹®ÀÌ´Ù.
 |
| <±×¸² 1> EJOSAÀÇ ±¸¼ºµµ |
ÇöÀç±îÁö ¹ßÇ¥µÈ EJOSAÀÇ ÃֽйöÀüÀº EJOSA 2.0 Revolutions·Î ¼Ò½ºÆ÷Áö¿¡¼ °ü·Ã ÀڷḦ ´Ù¿î¹Þ¾Æ Ant¿ë ºôµå ÆÄÀÏ(build-all-components.xml)À» ½ÇÇàÇÏ´Â °Í¸¸À¸·Î °£´ÜÈ÷ ¼³Ä¡ÇÒ ¼ö ÀÖ´Ù.
MDA Àû¿ëÀ» À§ÇÑ »ç·Ê¸¦ º¸¿©ÁÖ´Â EJOSA
MDA(Model-Driven Architecture)´Â OMG¿¡¼ Á¦¾ÈÇÑ ¼ÒÇÁÆ®¿þ¾î ÅëÇÕ¿¡ ´ëÇÑ Á¢±Ù ¹æ¹ýÀ¸·Î OMG°¡ Áö¼ÓÀûÀ¸·Î ÀÛ¾÷ÇØ¿Â ¸ðµ¨¸µ °ü·Ã Ç¥ÁØÈ ÀÛ¾÷ÀÇ ¼º°ú¸¦ ¹ÙÅÁÀ¸·Î ¸ðµ¨ Áß½ÉÀÇ ½Ã½ºÅÛ ±¸ÇöÀ» À§ÇÑ ±â¼ú ±¸Á¶¸¦ Á¤ÀÇÇÑ °ÍÀÌ´Ù. MDAÀÇ ÇÙ½ÉÀº ½Ã½ºÅÛÀÇ ¼³°è ¹× ¸í¼¼¸¦ ±¸Çö ±â¼ú¿¡ µ¶¸³ÀûÀÎ ¸ðµ¨(PIM, Parameterized Ionospheric Model )·Î ±â¼úÇϰí, À̸¦ ÀÚµ¿À¸·Î ½ÇÁ¦ ±¸Çö ȯ°æ¿¡ ¸Â´Â Ç÷§Æû ÀÇÁ¸ÀûÀÎ »ó¼¼ ¸ðµ¨(PSM, Platform Specific Model)·Î ¸ÊÇÎÇÑ ´ÙÀ½ °¢ Ç÷§Æû¿¡ ÀûÇÕÇÑ ±â¼ú·Î »ý¼ºÇÏ´Â ±â¼úÀÌ´Ù.
 |
| <±×¸² 2> MDA·Î ÀÎÇÑ °³¹ß °úÁ¤ÀÇ º¯È |
MDA´Â °´Ã¼ ¹× ÄÄÆ÷³ÍÆ® ½Ã½ºÅÛÀ» Ç¥ÇöÇϱâ À§ÇÑ Ç¥ÁØ ¾ð¾î·Î »ç¿ëµÇ´Â UML, ¸ðµ¨ Á¤º¸¿¡ ´ëÇÑ Ç¥ÁØÀûÀÎ ÀúÀå¼Ò¸¦ Á¦°øÇϰí Ç¥ÁØÈµÈ ¹æ½ÄÀ¸·Î ¸ðµ¨ Á¤º¸¸¦ Á¢±ÙÇÏ´Â ±¸Á¶¸¦ Á¤ÀÇÇϱâ À§ÇÑ MOF(Meta Object Facility), µ¥ÀÌÅÍ ÀúÀå¼Ò ÅëÇÕ¿¡ ´ëÇÑ Ç¥ÁØÀ» Á¤ÀÇÇÏ°í µ¥ÀÌÅͺ£À̽º ¸ðµ¨°ú ½ºÅ°¸¶ º¯È¯ ¸ðµ¨, OLAP, µ¥ÀÌÅÍ ¸¶ÀÌ´× ¸ðµ¨¿¡ ´ëÇÑ Ç¥ÁØÈµÈ Ç¥Çö ¹æ¹ýÀ» Á¦°øÇÏ´Â CWM(Common Warehouse Metamodel), UML·Î ±â¼úµÈ ¸ðµ¨ Á¤º¸¸¦ ±³È¯Çϱâ À§ÇÑ XML ¹æ½ÄÀÇ Ç¥ÁØ ¹æ½ÄÀÎ XMI(XML Metadata Interchange)°¡ »ç¿ëµÈ´Ù. ƯÈ÷ PIM°ú PSMÀ» Ç¥ÇöÇÏ´Â UMLÀ» Ç¥ÁØ XMLÀ» ÅëÇØ ±â¼úÇÏ´Â XMI¿¡ ´ëÇÑ ¾÷°èÀÇ Áö¿øÀº »ó´ç ºÎºÐ ÁøÃ´µÈ »óÅ·Π·¡¼î³¯ ·ÎÁî, º¼·£µå Åõ°Ô´õ¸¦ ºñ·ÔÇÏ¿© ±¹³»ÀÇ Plastic, NetBeans¸¦ À§ÇÑ SDE µî ´ëºÎºÐÀÇ ¸ðµ¨¸µ µµ±¸°¡ ¸ðµÎ Áö¿øÇϰí ÀÖ´Ù.
´ëºÎºÐÀÇ ¸ðµ¨¸µ ÅøµéÀÌ UML·Î PIMÀ» °øµé¿© ÀÛ¼ºÇÏ´Â ¼ö°íÀÇ ´ë°¡·Î PSMÀ» ÀÚµ¿À¸·Î ¾ò°í À̷κÎÅÍ ´Ù½Ã ¼Ò½ºÄÚµå, ¹®¼ µîÀÇ ¸¹Àº »êÃâ¹°À» ¾ò°Ô µÇ´Â °Í¿¡ ÁýÁßÇϰí ÀÖ´Â µ¥ ¹ÝÇØ EJOSA´Â ±× ¸ðµ¨ÀÌ ¾î¶»°Ô Àß Á¤ÀÇµÈ ¾ÆÅ°ÅØÃ³ »ó¿¡¼ ½ÇÁ¦ ¾ÖÇø®ÄÉÀ̼ÇÀ¸·Î µ¿ÀÛÇÒ ¼ö ÀÖ´ÂÁö¸¦ º¸¿©ÁÖ°í ÀÖ´Ù. ¸ðµ¨¸µ ÅøÀÌ PIMÀ» ÅëÇØ ÀÚµ¿À¸·Î »ý¼ºÇØÁִ Ŭ·¡½º ·¹ÆÛ·±½º ¸Å´º¾ó, µµ¿ò¸» ÆÄÀÏ, Ŭ·¡½º Á¤ÀÇ ¼Ò½ºÄÚµå, Ŭ·¡½º ±¸Á¶¿¡ µû¸¥ DTD ȤÀº XML ½ºÅ°¸¶, À¥ ¼ºñ½º¸¦ À§ÇÑ WSDL, ¸ðµ¨ Á¤º¸¿¡ ´ëÇÑ Åë°è ÀÚ·á µîÀÇ ¼ö¸¹Àº Á¤º¸¸¦ Æò°¡ÀýÇÏÇÏ·Á´Â Àǵµ´Â ¾Æ´Ï´Ù. EJOSA°¡ MDA·Î ³ª¾Æ°¡´Â µ¥ ÀÖ¾î µµ¿òÀ» ÁÖ´Â ¹æÇâÀÌ ¸ðµ¨¸µ ÅøÀÇ ±×°Í°ú ´Ù¸£´Ù´Â °ÍÀÌ´Ù.
EJOSAÀÇ ÇÙ½É, EJOSA ÅÛÇø´
EJOSA´Â ¾Õ¿¡¼ ¾ð±ÞÇÑ ÇÁ·¹ÀÓ¿öÅ©ÀÇ ¹üÀ§¸¦ ³Ñ¾î ¿ÀǼҽº ±â¼úÀÇ ÁýÇÕü¿Í °°Àº ¼º°ÝÀ» Áö´Ñ´Ù. ±×·¡¼ EJOSA ³»¿¡ Æ÷ÇԵǾî ÀÖ´Â J2EE °³¹ßÀ» À§ÇÑ ÇÁ·¹ÀÓ¿öÅ©¸¦ µû·Î EJOSA ÅÛÇø´À̶ó´Â ¿ë¾î·Î ±¸º°ÇÏ¿© ºÎ¸£°í ÀÖ´Ù. <±×¸² 3>Àº EJOSA ÅÛÇø´ÀÇ µð·ºÅ丮 ±¸Á¶¸¦ º¸¿©ÁØ´Ù.
 |
| <±×¸² 3> EJOSA ÅÛÇø´ÀÇ µð·ºÅ丮 ±¸Á¶ º¯È |
EJOSA ÅÛÇø´ÀÇ Æ¯Â¡ÀûÀÎ ¿ä¼Ò¸¦ Á¤¸®ÇÏ¸é ´ÙÀ½°ú °°´Ù.
¡ß EJOSA ÅÛÇø´Àº MDA¿Í SCD(Sourcecode Centric Development)°¡ °áÇÕµÈ ¸ðµ¨À» °¡Áö°í ÀÖ´Ù.
¡ß EJOSA ÅÛÇø´Àº ¾î¶² IDEµµ »ç¿ëÇÏÁö ¾Ê´Â´Ù. À̰ÍÀº EJOSA¸¦ ÀÌ¿ëÇØ¼ J2EE ¾ÖÇø®ÄÉÀ̼ÇÀ» °³¹ßÇϱâ À§Çؼ´Â ¹Ýµå½Ã Àüü ÇÁ·Î¼¼½º¸¦ ÀÌÇØÇϰí ÀÖ¾î¾ß¸¸ ÇÑ´Ù´Â »ç½ÇÀ» ÀǹÌÇÔ°ú µ¿½Ã¿¡ °³¹ß »ý»ê¼ºÀ» ³ôÀ̱â À§ÇØ ¾î¶² IDEµç »ç¿ëÇÒ ¼ö ÀÖ´Â ÀÚÀ¯¸¦ °¡Áø´Ù´Â Àǹ̸¦ ³»Æ÷ÇÑ´Ù.
¡ß ±âº»ÀûÀ¸·Î EJOSA ÅÛÇø´À» ÀÌ¿ëÇÑ ¸ðµç °³¹ß °úÁ¤Àº Ant¸¦ ÀÌ¿ëÇØ¼ ÀÚµ¿ÈµÇ¾î ÀÖ´Ù.
¡ß EJOSA ÅÛÇø´¿¡ ÇÊ¿äÇÑ ¸ðµç ¶óÀ̺귯¸®´Â ¿ÀǼҽº·Î ±¸¼ºµÇ¾î ÀÖÀ¸¸ç, µû·Î ´Ù¿î·ÎµåÇÒ ÇÊ¿ä ¾øÀÌ ¹Ì¸® ¼³Á¤µÈ ÇüÅ·Πµé¾î°¡ ÀÖ´Ù.
EJOSA ÅÛÇø´ÀÇ ·çÆ® µð·ºÅ丮´Â EJOSA 2.0 RevolutionsÀÇ ¾Õ ±ÛÀÚ¸¦ µû¼ ejosa-revo¶õ À̸§À» °¡Áø´Ù.
ext-libs µð·ºÅ丮
ext-libs¿¡´Â EJOSA¿¡¼ »ç¿ëµÇ´Â ¸ðµç ¿ÀǼҽº ¶óÀ̺귯¸®µéÀÌ µé¾î ÀÖ´Ù. EJOSA¿¡´Â WAS¸¦ ±¸¼ºÇÏ´Â Enhydra°¡ Æ÷ÇÔµÈ JOnAs¿Í DBMSÀÎ HSQLDB, ÀÚµ¿ÈµÈ ºôµå¸¦ À§ÇÑ Ant, XML 󸮸¦ À§ÇÑ JDOM, ºä 󸮸¦ À§ÇÑ Velocity, Swing L&FÀ» ¼ö·ÁÇÏ°Ô µµ¿ÍÁÖ´Â SkinLF, °Ë»ö¿£ÁøÀÎ Lucene, À¯´Ö Å×½ºÆ®¸¦ À§ÇÑ JUnit, JUnitEE, ÄÚµå ÀÚµ¿ »ý¼ºÀ» À§ÇÑ Xdoctlet, MDA Áö¿øÀ» À§ÇÑ AndroMDA µî ¼ö¾øÀÌ ¸¹Àº ¿ÀǼҽº ¼ÒÇÁÆ®¿þ¾îµéÀÌ ³»ÀåµÇ¾î ÀÖ´Ù.
dev-framework µð·ºÅ丮
dev-frameworkÀº ¶óÀ̺귯¸®¿Í ¿¬µ¿µÇ´Â ÇÁ·¹ÀÓ¿öÅ©ÀÇ ÇÙ½É ÄÚµåµéÀÌ µé¾î ÀÖ´Â EJOSA ÅÛÇø´ÀÇ ÇÙ½É ¿µ¿ªÀÌ´Ù. ÇÁ·¹ÀÓ¿öÅ©´Â Å©°Ô ºñÁî´Ï½º ·ÎÁ÷À» ´ã´çÇÏ´Â Business¿Í ÇÁ¸®Á¨Å×ÀÌ¼Ç ºÎºÐÀ» ´ã´çÇÒ Presentation, ±×¸®°í °¢Á¾ À¯Æ¿¸®Æ¼ ¹À½ÀÎ Utility·Î ³ª´µ¸ç °¢ ºÎºÐ¿¡ ´ëÇÑ ¹®¼°¡ ´ã°Ü ÀÖ´Â Document µð·ºÅ丮°¡ Æ÷ÇԵǾî ÀÖ´Ù. ±âº»ÀûÀ¸·Î ºñÁî´Ï½º ·ÎÁ÷Àº EJB·Î °³¹ßµÇ¾î JOnAs°¡ ´ã´çÇϸç, ÇÁ¸®Á¨Å×À̼ÇÀº Servlet/JSP·Î °³¹ßµÇ¾î Enhydra¿¡¼ 󸮵ȴÙ.
dev-cartridges µð·ºÅ丮
dev-cartridges´Â MDA Áö¿øÀ» À§ÇÑ ¿µ¿ªÀÌ´Ù. EJOSA ÅÛÇø´Àº MDA ±â´ÉÀ» AndroMDA¸¦ ºô¾î ó¸®ÇÑ´Ù. ¿©±â¿¡ ¼Ò°³µÇ´Â ¸ðµç ÄÁ¼ÁÀº AndroMDA¿¡ µû¸¥ °ÍÀÌ´Ù. EJOSA ÅÛÇø´Àº ¸ðµÎ 4°³ÀÇ Ä«Æ®¸®Áö°¡ »ç¿ëµÇ´Âµ¥, Model, Presentation, Business, SpecificationÀÌ ±×°ÍÀÌ´Ù. Model¿¡´Â JMI ÀÎÅÍÆäÀ̽º¸¦ ÀÌ¿ëÇØ¼ ¸ðµ¨ º¯È¯À» ¼öÇàÇÏ´Â º¯È¯±â°¡ µé¾î ÀÖ´Ù. Presentation¿¡´Â À¥ ÄÁÅ×À̳ÊÀÎ Enhydra°¡ Á¦°øÇÏ´Â EAF(Enhydra Application Framework)¿¡ µû¶ó À¥ ¾ÖÇø®ÄÉÀ̼ÇÀ» °³¹ßÇϱâ À§ÇÑ ÅÛÇø´ÀÌ Æ÷ÇԵȴÙ. Business¿¡´Â ·ÎÁ÷ 󸮸¦ À§ÇØ AndroMDA¿¡¼ Á¦°øÇÏ´Â ±âº» ÅÛÇø´ 2°¡Áö°¡ Æ÷ÇԵǾî Àִµ¥, °¢°¢ÀÇ Ä«Æ®¸®Áö´Â ¹«»óÅ ¼¼¼Çºó°ú ¿£Æ¼Æ¼ºóÀÇ °áÇÕ ÇüÅÂ, ¹«»óÅ ¼¼¼Çºó°ú HibernateÀÇ °áÇÕ ÇüŸ¦ Áö´Ï°í ÀÖ´Ù. ¸¶Áö¸·À¸·Î SpecificationÀº UML·Î Á¤ÀÇµÈ ¸ðµ¨À» ÅëÇØ EJBÀÇ È¨°ú ¸®¸ðÆ® ÀÎÅÍÆäÀ̽º¿Í °°Àº ÀÎÅÍÆäÀ̽º¸¦ ÀÚµ¿ »ý¼ºÇϱâ À§ÇÑ ÆÑÅ丮°¡ µé¾î ÀÖ´Ù.
dev-templates µð·ºÅ丮
dev-templates´Â EJOSA ÅÛÇø´À» ÀÌ¿ëÇÑ ¾ÖÇø®ÄÉÀÌ¼Ç °³¹ß¿¡ »ç¿ëµÇ´Â ´ÜÀÏ ÄÄÆ÷³ÍÆ®ÀÇ ±¸Á¶¸¦ º¸¿©ÁÖ´Â °÷ÀÌ´Ù. EJOSA¿¡¼ µ¿ÀÛÇÏ´Â ¾ÖÇø®ÄÉÀ̼ÇÀº ÀÌ·¯ÇÑ ±¸Á¶ÀÇ ÄÄÆ÷³ÍÆ®°¡ ¿©·¯ °³ °áÇÕÇØ¼ ÀÌ·ç¾îÁø´Ù. EJOSA ÅÛÇø´ÀÇ ÄÄÆ÷³ÍÆ®´Â application, business, data, documentation, model, presentation, specification, testÀÇ 8°³ µð·ºÅ丮·Î ±¸¼ºµÇ¸ç, °¢ µð·ºÅ丮¿¡´Â bin, build, resource, src µð·ºÅ丮°¡ ±âº»À¸·Î Æ÷ÇԵȴÙ. ¶ÇÇÑ °³¹ß ¹× ¹èÆ÷ °úÁ¤¿¡¼ °¢ µð·ºÅ丮º°·Î src-generated, classes, deploy Æú´õ°¡ »ý¼ºµÈ´Ù.
EJOSA ÅÛÇø´ÀÇ ÄÄÆ÷³ÍÆ® ±¸Á¶
<±×¸² 4>´Â ÄÄÆ÷³ÍÆ®¸¦ ±¸¼ºÇÏ´Â °¢ µð·ºÅ丮 »çÀÌÀÇ °ü°è¸¦ º¸¿©ÁØ´Ù.
 |
| <±×¸² 4> ÄÄÆ÷³ÍÆ®¸¦ ±¸¼ºÇÏ´Â °¢ µð·ºÅ丮ÀÇ ÀÇÁ¸ °ü°è |
°¢ µð·ºÅ丮ÀÇ °ü°è´Â EJOSA ÅÛÇø´¿¡¼ÀÇ °³¹ß °úÁ¤À» À¯ÃßÇϵµ·Ï µµ¿ÍÁØ´Ù. EJOSA ÅÛÇø´¿¡¼ µ¿ÀÛÇÏ´Â ¾ÖÇø®ÄÉÀ̼ÇÀ» °³¹ßÇϱâ À§Çؼ´Â UMLÀÇ ¾²ÀÓ»õ ´ÙÀ̾î±×·¥À̳ª Ŭ·¡½º ´ÙÀ̾î±×·¥ µîÀ¸·Î PIMÀ» ¿ì¼± ÀÛ¼ºÇØ¾ß ÇÑ´Ù. ±×·± ´ÙÀ½ °³¹ßÇÒ Ç÷§Æû¿¡ ¸Â´Â PSMÀ» Ãß°¡·Î ÀÛ¼ºÇÑ´Ù. ±×·¸°Ô ÀÛ¼ºÇÑ ´ÙÀ̾î±×·¥À» ÅøÀÇ ±â´ÉÀ» Ȱ¿ëÇØ¼ XMI·Î º¯È¯ÇÑ´Ù. XMI·Î ±â¼úµÈ ¸ðµ¨·ÎºÎÅÍ ÇÁ¸®Á¨Å×ÀÌ¼Ç ÄÚµå¿Í ºñÁî´Ï½º ·ÎÁ÷ Äڵ尡 ÀÚµ¿ »ý¼ºµÇ¸ç, ÇÁ¸®Á¨Å×À̼ǰú ºñÁî´Ï½º ·ÎÁ÷À» À̾îÁÖ´Â ¸í¼¼ ¿ª½Ã ÀÚµ¿ »ý¼ºµÈ´Ù. ºñÁî´Ï½º ·ÎÁ÷Àº Á¤ÀÇµÈ µ¥ÀÌÅÍ Ã³¸® ¹æ¹ý¿¡ µû¶ó ·ÎÁ÷À» ¼öÇàÇϸç, ¸ðµç °úÁ¤Àº JUnit, JUnitEE µîÀ» ÀÌ¿ëÇØ¼ Å×½ºÆ®µÈ´Ù. ÀÌ·¯ÇÑ ÄÄÆ÷³ÍÆ®µéÀ» ÀûÀýÈ÷ ±¸¼ºÇÔÀ¸·Î½á ¾ÖÇø®ÄÉÀ̼ÇÀÌ ¿Ï¼ºµÇ°í, °¢ ÄÄÆ÷³ÍÆ® º°·Î »ý¼ºµÈ API¸¦ Æ÷ÇÔÇÑ ¹®¼ Á¤º¸°¡ ±â·ÏµÈ´Ù.
EJOSA ±â¹Ý ¾ÖÇø®ÄÉÀÌ¼Ç °³¹ß
EJOSA ÅÛÇø´À» ÀÌ¿ëÇÑ °³¹ß ÇÁ·Î¼¼½º´Â ¸ðµÎ 7´Ü°è·Î ³ª´¶´Ù. ¿ì¼± ¿ä±¸ ºÐ¼®À» Çϰí, ¼öÁýµÈ ¿ä±¸ »çÇ׿¡ µû¸¥ ¹®Á¦ ºÐ¼® °á°ú¸¦ UML·Î ±â¼úÇÑ´Ù. ±×·± ´ÙÀ½ ¸í¼¼ °³¹ß °úÁ¤À» ÅëÇØ API¸¦ °áÁ¤ÇÑ´Ù. ¸í¼¼ °³¹ßÀÌ ³¡³ª¸é, ºñÁî´Ï½º ·¹À̾î, µ¥ÀÌÅÍ ·¹À̾î, ÇÁ¸®Á¨Å×ÀÌ¼Ç ·¹À̾ ±¸ÇöÇϰí Áö¼ÓÀûÀ¸·Î °¢ ·¹À̾ ¼ÓÇÑ ÄÄÆ÷³ÍÆ®µéÀ» Å×½ºÆ®ÇÑ´Ù. ÄÄÆ÷³ÍÆ® °³¹ßÀÌ ³¡³ª¸é ¼ÒÇÁÆ®¿þ¾î¸¦ ÅëÇÕÇÏ°í ¹èÆ÷ÇÑ´Ù. °¢ °úÁ¤ÀÇ °á°ú´Â EJOSA ÅÛÇø´ÀÇ ÄÄÆ÷³ÍÆ® ±Ô¾à¿¡ ¸í½ÃµÈ µð·ºÅ丮¿¡ ÀúÀåÇØ¼ °ü¸®ÇÑ´Ù.
 |
| <±×¸² 5> EJOSA ÅÛÇø´À» ÀÌ¿ëÇÑ °³¹ß ÇÁ·Î¼¼½º |
EJOSA 2.0 Revolutions ³»¿¡´Â ÀÌ·¯ÇÑ °³¹ß °úÁ¤À» µû¸£´Â µÅÁöÀú±ÝÅë(Piggy Bank)À̶ó´Â »ùÇà ¾ÖÇø®ÄÉÀ̼ÇÀÌ Æ÷ÇԵǾî ÀÖ´Ù. ¸í¼¼ ÀÛ¼º¿¡´Â ¾²ÀÓ»õ ¸ðµ¨°ú ºñÁî´Ï½º ÄÁ¼Á ¸ðµ¨(BCM)ÀÌ »ç¿ëµÈ´Ù. À̸¦ ÅëÇØ ±â¼úµÈ ÀÎÅÍÆäÀ̽º¸¦ ÅëÇØ ¸í¼¼°¡ ÀÚµ¿ »ý¼ºµÇ´Â °ÍÀÌ´Ù. µÅÁöÀú±ÝÅë ¿¹Á¦ÀÇ ¸í¼¼´Â ¾²ÀÓ»õ ´ÙÀ̾î±×·¥°ú ºñÁî´Ï½º ÄÁ¼Á ´ÙÀ̾î±×·¥ÀÌ PIMÀ¸·Î, Ŭ·¡½º ´ÙÀ̾î±×·¥ÀÌ PSMÀ¸·Î »ç¿ëµÈ´Ù. ¿¹Á¦¿¡ Æ÷ÇÔµÈ ¸ðµ¨¸µ Á¤º¸ ¹× º¯È¯µÈ XMI ÆÄÀÏÀº Poseidon fot UMLÀ» ÀÌ¿ëÇØ¼ È®ÀÎÇÒ ¼ö ÀÖ´Ù.
ÀÌ Á¤º¸¸¦ ÅëÇØ »ý¼ºµÈ ¸í¼¼´Â specification Æú´õ ³»¿¡ µé¾î°¡ ÀÖ´Ù. ¸í¼¼ÀÇ ±¸ÇöÀÌ ³¡³ª¸é ±× ¸í¼¼¸¦ µû¸£´Â ºñÁî´Ï½º ·ÎÁ÷À» ±¸ÇöÇϰí, ±¸ÇöµÈ ·ÎÁ÷À» ÀÌ¿ëÇÏ´Â ÇÁ¸®Á¨Å×ÀÌ¼Ç Äڵ带 ÀÛ¼ºÇØ¾ß ÇÑ´Ù. EJOSAÀÇ ºñÁî´Ï½º ·ÎÁ÷Àº ¼ø¼öÇÑ ·ÎÁ÷ ±¸ÇöÀ» À§ÇÑ ¼¼¼Ç ŸÀÔ°ú ¿µ¼Ó¼º ÀÖ´Â µ¥ÀÌÅÍ Ã³¸®¸¦ À§ÇÑ ¿£Æ¼Æ¼ ŸÀÔÀÌ ´Ù´ë ´Ù °ü°è¸¦ ÀÌ·ç¸ç JOnAS¿¡¼ µ¿ÀÛÇÑ´Ù. EJOSAÀÇ ÇÁ¸®Á¨Å×ÀÌ¼Ç Å¸ÀÔÀº ¾î¶² ÇÁ·¹ÀÓ¿öÅ©¸¦ »ç¿ëÇÏ´À³Ä¿¡ µû¶ó °¢±â ´Ù¸¥ ºä ŸÀÔ(View Type)À» Áö¿øÇϴµ¥, µÅÁöÀú±ÝÅë ¿¹Á¦´Â Enhydra¸¦ ±âº» WAS·Î ±ÇÀåÇϰí Àֱ⠶§¹®¿¡ EAF(Enhydra Application Framework)¿¡ µû¶ó ¸í·É ÆÐÅÏ(command pattern)¿¡ ±â¹ÝÇÑ ¾×¼Ç °´Ã¼(action object)¸¦ ÅëÇØ Á¦¾î¸¦ °áÁ¤Çϰí, XMLC¸¦ ÀÌ¿ëÇØ¼ ºä¸¦ Á¦¾îÇϵµ·Ï ÀÛ¼ºµÇ¾î ÀÖ´Ù.
µÅÁöÀú±ÝÅë ¿¹Á¦¸¦ ÄÄÆÄÀÏÇÏ°í ½ÇÇàÇÏ´Â °úÁ¤Àº EJOSA°¡ ¸ðµç °úÁ¤À» Ant·Î ÀÚµ¿ÈÇϱ⠶§¹®¿¡ ¾ÆÁÖ °£´ÜÇÏ´Ù. ÇÊÀÚ´Â EJB¿Í Hibernate¸¦ ÀÌ¿ëÇØ¼ ±¸ÇöµÈ ¿¹Á¦¸¦ NetBeans IDE¿¡¼ Å×½ºÆ®Çß´Ù. ¿ì¼± NetBeansÀÇ ÆÄÀÏ ¸Þ´º¿¡ ÀÖ´Â Mount Filesystem ±â´ÉÀ» ÀÌ¿ëÇØ¼ ejosa-revo µð·ºÅ丮¸¦ ¸¶¿îÆ®½ÃŲ´Ù. NetBeans¿¡´Â Ant°¡ ÀÚü ³»ÀåµÇ¾î ÀÖÀ¸¹Ç·Î ÇØ´ç ºôµå ÆÄÀÏÀ» ¼±ÅÃÇϰí F6 ¹öưÀ» ´©¸£´Â °Í¸¸À¸·Î °£´ÜÈ÷ ºôµåÇÒ ¼ö ÀÖ´Ù. Âü°í·Î ÀÌ ¿¹Á¦¿¡¼´Â °¢ ¿µ¿ªÀÇ ±¸ÇöÀ» À§ÇØ ´ÙÀ½°ú °°Àº ±â¼úÀÌ »ç¿ëµÇ¾ú´Ù.
¡ß Model : ½ºÆ®·¹¿À ŸÀÔ°ú ű׸¦ ÀÌ¿ëÇØ¼ È®ÀåÇÑ PIM(Platform Independent Model)
¡ß Specification : ÆÑÅ丮 Ŭ·¡½º·Î ±¸ÇöµÈ ¼ø¼ö ÀÚ¹Ù ÀÎÅÍÆäÀ̽º
¡ß Business : EJB ¼¼¼Çºó°ú Hibernate
¡ß Data : HSQLDB
¡ß Presentation : Enhydra EAF ÇÁ·¹ÀÓ¿öÅ©¿Í XMLC, ±×¸®°í Swing
ÀÌÁ¦ ¿¹Á¦ µð·ºÅ丮·Î À̵¿Çؼ ´ÙÀ½°ú °°Àº ¼ø¼·Î ºôµåÇÑ´Ù.
[1] model/build/build-andromda.xml : ¸ðµ¨À» ±â¹ÝÀ¸·Î AndroMDA¸¦ ÀÌ¿ëÇÑ ÄÚµå »ý¼º
[2] specification/build/build.xml : »ý¼ºµÈ ¸í¼¼¸¦ ÄÄÆÄÀÏ
[3] specification/build/build-deploy.xml : ÄÄÆÄÀÏµÈ ¸í¼¼¸¦ ¹èÆ÷
[4] business/build/ejb/build-ejb.xml : XDoctletÀ¸·Î EJB ÄÚµå »ý¼º
[5] business/build/hibernate/build-hibernate.xml : XDoctletÀ¸·Î Hibernate ÄÚµå »ý¼º
[6] business/build/common/build.xml : »ý¼ºµÈ ºñÁî´Ï½º ÄÚµå ÄÄÆÄÀÏ
[7] business/build/ejb/build-deploy.xml : ÄÁÅ×ÀÌ³Ê µ¶¸³ÀûÀÎ ÄÚµå ¹èÆ÷
[8] business/build/jonas/build-jonas.xml : GenlC¸¦ ÀÌ¿ëÇÑ JOnAs¿ë ÄÚµå »ý¼º
[9] business/build/jonas/build-deploy.xml : JOnAs¿¡ EJB ¹èÆ÷
[10]business/bin/jonas/jonas-bin.xml : JOnAs ½ÇÇà, Enhydra°¡ Æ÷ÇԵǾî ÀÖÀ½
[11]presentation/build/enhydra/build-enhydra.xml : XMLC¸¦ ÀÌ¿ëÇØ HTML »ý¼º
[12]presentation/build/common/build.xml : ÇÁ¸®Á¨Å×ÀÌ¼Ç ÄÚµå ÄÄÆÄÀÏ
[13]presentation/bin/enhydra/jclient-bin.xml : ÇÁ¸®Á¨Å×ÀÌ¼Ç ÄÚµå ½ÇÇà
¸ðµç ºôµå °úÁ¤ÀÌ ¼º°øÀûÀ¸·Î ³¡³µ´Ù¸é http://localhost:9000¹øÀ¸·Î Á¢¼ÓÇØ¼ Å×½ºÆ®ÇÑ´Ù. EJOSA¸¦ ÀÌ¿ëÇÑ »ùÇà ¾ÖÇø®ÄÉÀ̼ÇÀº µÅÁöÀú±ÝÅë ¿Ü¿¡µµ Âü°íÀÚ·á[5]¿¡ ¸¹ÀÌ ¼Ò°³µÇ¾î ÀÖ´Ù. ±× Áß¿¡¼ ƯÈ÷ ´ëÇÐÇàÁ¤Áö¿ø ½Ã½ºÅÛÀÎ OpenUSS(University Support System)´Â ¼Ò½ºÆ÷Áö ³»ÀÇ ¶Ç ´Ù¸¥ ¿ÀǼҽº ÇÁ·ÎÁ§Æ®·Î ÁøÇàµÇ°í ÀÖÀ» ¸¸Å ±Ô¸ð°¡ Å©´Ù. °ü½É ÀÖ´Â µ¶ÀÚ´Â ²À Çѹø µé·¯º¸±â ¹Ù¶õ´Ù.
MDA¸¦ Áö¿øÇÏ´Â ÃÖÃÊÀÇ ¿ÀǼҽº ÇÁ·¹ÀÓ¿öÅ©
EJOSA´Â ¿©·¯ À§´ëÇÑ ¿ÀǼҽº ±â¼úÀÇ ÀåÁ¡À» °áÇÕÇØ¼ MDA¸¦ Áö¿øÇϰíÀÚ ½ÃµµÇÑ ÃÖÃÊÀÇ ¿ÀǼҽº ÇÁ·¹ÀÓ¿öÅ©ÀÌ´Ù. EJOSAÀÇ Æ¯Â¡ÀûÀÎ ¸éÀ» ¿ä¾àÇØ¼ Á¤¸®ÇÏ·Á°í ½ÃµµÇßÁö¸¸, ÇÒ´çµÈ Áö¸éÀÌ ºÎÁ·Çؼ ¼³¸íÀÌ °ÅÄ¥°Ô µÈ °Í °°¾Æ Á˼ÛÇÒ µû¸§ÀÌ´Ù. Á» ´õ ÀÚ¼¼ÇÑ ¼³¸íÀÌ ÇÊ¿äÇÑ µ¶ÀÚ´Â ÇÊÀÚ°¡ ¿î¿µÇÏ´Â Æ÷·³(Âü°íÀÚ·á 6)¿¡ ¹æ¹®Çؼ °ü·Ã ÀڷḦ ´Ù¿î¹Þ±â ¹Ù¶õ´Ù. ÇÁ·¹ÀÓ¿öÅ©´Â ¾ÆÅ°ÅØÃ³ÀÇ ±¸ÇöÀÌ´Ù. ¹ß¹®¿¡ ¼Ò°³ÇÑ ¾ÆÅ°ÅØÃ³¿¡ °üÇÑ ±ÛÀº ¡¸Evaluating Software Architectures¡¹¸¦ Á¤¸®ÇÑ Á¶³²±Ô ´ÔÀÇ ±ÛÀ» ºô¸° °ÍÀÌ´Ù. ±× ±Û¿¡ ³ª¿Í ÀÖ´Â °Íó·³ ¾ÆÅ°ÅØÃ³¶õ °³¹ßÀÚÀÇ ½É¹Ì¾ÈÀû ½Ã°¢¿¡¼ ¹Ù¶óº¼ ¶§ ¾Æ¸§´Ù¿ö¾ß¸¸ ÇÑ´Ù. EJOSA ÅÛÇø´Àº ¿ÏÀüÇÏÁø ¾ÊÁö¸¸ ÀϹÝÀûÀÎ ÇÁ·¹ÀÓ¿öÅ©¿Í´Â Â÷º°ÈµÈ µ¶Æ¯ÇÑ ¾Æ¸§´Ù¿òÀ» °®°í Àֱ⠶§¹®¿¡ °³¹ßÀÚ¶ó¸é µµÀüÇÒ ÃæºÐÇÑ °¡Ä¡¸¦ Áö´Ï°í ÀÖ´Ù°í »ý°¢ÇÑ´Ù.
ÃÖ±Ù µé¾î ÀÚÁÖ °Þ°Ô µÇ´Â ¿äûÀÌ ÀÖ´Ù. DBMS´Â ¾î¿ ¼ö ¾ø´Ù°í ÇÏ´õ¶óµµ °ªºñ½Ñ WAS¿Í °¢Á¾ °³¹ß Åø·Î ÀÎÇØ µé¾î°¡´Â ºñ¿ëÀ» ¾î¶»°Ô ÁÙÀÏ ¼ö ¾ø´À³Ä´Â °ÍÀÌ´Ù. ÀÌ·¯ÇÑ ¿äûÀº ƯÈ÷ SMB ½ÃÀå¿¡¼ °ÇÏ°Ô ¹ß»ýÇÑ´Ù. Áö±Ý ¼¼»ó¿¡´Â À̹ø¿¡ ¼Ò°³ÇÑ EJOSA¸¦ ºñ·ÔÇØ¼ ³Ê¹«³ª ÈǸ¢ÇÑ ¿ÀǼҽº ¼ÒÇÁÆ®¿þ¾îµéÀÌ ¸¹ÀÌ Á¸ÀçÇÑ´Ù. ÇÏÁö¸¸ ¿ÀǼҽº¿¡ ´ëÇÑ ½Å·Ú ºÎÁ·, ºÎÁ¤Àû °ßÇØ, °³¹ßÀÚ ºÎÁ· µîÀ» ÀÌÀ¯·Î ±×·¯ÇÑ ¿ÀǼҽº ¼ÒÇÁÆ®¿þ¾îµéÀÌ Á¦´ë·Î Ȱ¿ëµÇ°í ÀÖÁö ¸øÇϰí ÀÖ´Â °ÍÀÌ ¶ÇÇÑ Çö½ÇÀÌ´Ù. ÇÊÀÚ´Â ´ÙÀ½ ´ÞºÎÅÍ ¡¸¿ÀǼҽº¸¦ Ȱ¿ëÇÑ ½Ã½ºÅÛ ÅëÇÕ¡¹À̶ó´Â ÁÖÁ¦·Î »õ·Î¿î ¿¬À縦 ½ÃÀÛÇÒ ¿¹Á¤ÀÌ´Ù. ±× ¿¬À縦 ÅëÇØ ÀÚ¹Ù Áø¿µ ¿ÀǼҽº¸¦ ÀÌ¿ëÇØ ½ÇÁúÀûÀÎ eºñÁî´Ï½º ½Ã½ºÅÛÀÌ ±¸ÃàµÇ¾î °¡´Â °úÁ¤À» ´Ü°èº°·Î º¸¿©ÁÜÀ¸·Î½á ¿ÀǼҽº ¸¶´Ï¾ÆµéÀÌ ¸¹ÀÌ »ý°Ü³ª±â¸¦ ±â´ëÇØ º»´Ù. °á±¹ ÀÚ¹Ù¿Í ´å³ÝÀÇ ¿À·£ ÀüÀïÀº SMB ½ÃÀåÀ» ´©°¡ Àå¾ÇÇÏ´À³Ä¿¡ µû¶ó ½ÂÀÚ°¡ °áÁ¤µÇÁö ¾ÊÀ»±î? @