ç§ãã¡ã®å€ãã¯ãããŸããŸãªçš®é¡ã®ãåºãäœåºŠãæžããŠããŸãã ããããæ¥éã«æé·ããçºå±ããŠããäŒç€Ÿã®å€§èŠæš¡ãªeã³ããŒã¹ãããžã§ã¯ãã¯ããŸãã«ããéçºããå¿ èŠããããŸããã ãã®ãããªæ±ºå®ã«ã¯ãæ§æå¯èœæ§ãå€æŽãžã®é©å¿æ§ãä»ã®ã·ã¹ãã ãžã®çµ±åæ©èœãªã©ãè¿œå ã®èŠä»¶ããããŸãã Netcrackerã¯ãLiferayããŒã¿ã«ãã¬ãŒã ã¯ãŒã¯ã䜿çšããŠãã®ãããªãœãªã¥ãŒã·ã§ã³ãäœæããŸããã ãã®çµæãååãªå©ç¹ãåŸãããŸããããåé¡ããªãããã§ã¯ãããŸããã§ããã
ææŠãã
ç§ãå€åããŠããäŒç€Ÿã®Netcrackerã¯ãã°ããŒãã«ãªãã¬ãªãã¬ãŒã¿ããã³ãã¬ã³ã ãªãã¬ãŒã¿åãã®çµ±åãœãããŠã§ã¢ãœãªã¥ãŒã·ã§ã³ãéçºããŠããŸãã ãã®ãããªäŒæ¥ã®ããžãã¹ã¯ããåãã®ããã«é »ç¹ã«å€åãããã¯ãããžãŒã®éçºã«å€§ããäŸåããŠãããæ¥çã®æšæºçãªã¿ã¹ã¯ã解決ããã¢ãããŒãã«å€§ãã圱é¿ããŸãã
ã¿ã¹ã¯ãèŠçŽããããšãããšã次ã®ããã«èãããŸããçŽ1,000äžäººã®ã¢ã¯ãã£ããªå å ¥è ã察象ãšãããæ倧ã®å€åœéä¿¡éä¿¡äºæ¥è ã®1ã€ã®äŒæ¥Webãµã€ãïŒä»¥äžãWebãµã€ããšåŒã³ãŸãïŒãäœæããå¿ èŠããããŸãã
ãµã€ãã¯ãæäŸããããµãŒãã¹ã®ã«ã¿ãã°ãç°ãªãå°åã§ã®ãµãŒãã¹ãšãã®å¯çšæ§ã«é¢ããæ å ±ã衚瀺ããæ©èœãæäŸãããããã®ãããããããã«è³Œå ¥ãã説æã«åŸã£ãŠæ§æã§ããããã«ããå¿ èŠããããŸãã ããã«ããµã€ãã®æãéèŠãªæ©èœã®1ã€ã¯ãååŸãããµãŒãã¹ã管çããæ§æãå€æŽããã³ãŒã«ã»ã³ã¿ãŒã«é£çµ¡ããããšãªããããªããæãããããããšãå®è¡ã§ãããŠãŒã¶ãŒã®æ§ææžã¿å人ã¢ã«ãŠã³ãã§ãã ãŸããå°æ¥ãçµ±åã®è©³çŽ°ãããŒã¿ååŸãããã³ã³ãŒãã£ã³ã°æ¹æ³ã«ç ©ããããããšãªãããµã€ãã€ã³ã¿ãŒãã§ã€ã¹ãç°¡åã«æ¡åŒµããã³å€æŽã§ããæ©äŒãå®çŸããå¿ èŠããããŸãã
ãµãŒãã¹ãäŸ¡æ Œãè³Œå ¥ååŒãããã³å€æŽã«é¢ãããã¹ãŠã®ããŒã¿ã¯ããã©ãããã©ãŒã -Netcracker Frameworkã«åºã¥ããŠæ§ç¯ãããNetcracker補åã©ã€ã³ã¢ãžã¥ãŒã«ã«ãã£ãŠæäŸãããŸãã ãã®ããŒã¿ã¯ããããã®ã¢ãžã¥ãŒã«ãæäŸããREST APIãä»ããŠç°¡åã«ååŸã§ããŸãã
ããŒã¿ãååŸããå¯èœãªéããã¹ãŠããã£ãã·ã¥ãããµã€ãã«è¡šç€ºãããµã€ããçŸãããã¶ã€ã³ããŠèµ·åããã ãã§ãã
ããããè¿œå ã®èŠä»¶ãå€æ°ãããããæ©èœããªããŠãŒã¹ã±ãŒã¹ã«ã€ããŠèããå¿ èŠããããŸãã ããšãã°ã顧客ã«ã¯æ¬¡ã®ãã®ãå¿ èŠã§ãã
- å®æçã«ããã¢ãŒã·ã§ã³ãéå¬ããå²åŒãè¡ããæ°ãããµãŒãã¹ãå°å ¥ããŸãã
- ããŒãžããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹èŠçŽ ã®ãã¶ã€ã³ãå®æçã«å€æŽããŸãã ããšãã°ãæ°å¹Žãšãã©ãã¯ãã©ã€ããŒã®ãµã€ããæ©æ¥ã«èšèšããŸãã
- è«è² æ¥è ãæäŸãããµã€ãã«ã³ã³ãã³ãã衚瀺ã§ããããã«ããŸãã
- ãªãã¬ãŒã¿ãŒã®å ±éããŒã¿ã«ã®åããŒãžã«ã«ãŒããçµ±åããŸãã
- 1è¡ã®ã³ãŒããªãã§ãæ¢åã®ã¿ã€ãã®æ°ãããµãŒãã¹ãšæ°ããã¿ã€ãã®ãµãŒãã¹ãè¿œå ã§ããããã«ããããã
æè¡ã®éžæ
LiferayããŒã¿ã«ã¯ããœãªã¥ãŒã·ã§ã³ãäœæããããã®ãã©ãããã©ãŒã ãšããŠéžæãããŸãã-ããã¯ãæ¡åŒµå¯èœã§ã管çãããæ§æå¯èœãªã¢ããªã±ãŒã·ã§ã³ãããã«æ§ç¯ã§ããããŸããŸãªã¢ãžã¥ãŒã«ãå«ãã JSR-168ããã³JSR-286 ïŒããŒãã¬ããä»æ§ïŒä»æ§ããµããŒãããããŒã¿ã«ãœãªã¥ãŒã·ã§ã³ã§ãã ãšããããLiferay PortalïŒä»¥éLiferayïŒã«ã¯ãå®å šãªCMSããœãŒã·ã£ã«ãããã¯ãŒã¯ãšã®çµ±åããã©ãŒã©ã ããã£ãããªã©ãå«ãŸããŠããŸãã Liferayã䜿çšãããšãããŒãã¬ãããšåŒã°ãããã¥ãŒãããããŒãžãæ§ç¯ã§ããŸããããã¯ããœãªã¥ãŒã·ã§ã³éçºè èªèº«ãšJSR-286ä»æ§ã䜿çšãããµãŒãããŒãã£äŒæ¥ã®äž¡æ¹ã§äœæã§ããŸãã
Liferayã¯ããšã³ã¿ãŒãã©ã€ãºããŒã¿ã«ããã³å ±æããŒã¿ã«ãæ§ç¯ããããã®æã人æ°ã®ããç¡æãœãªã¥ãŒã·ã§ã³ã®1ã€ã§ãã ããšãã°ãå€ãã®Javaéçºè ã«ããç¥ãããŠããJUG.ru㯠ã ãã®äžã«æ§ç¯ãããŠããŸãã
LiferayãæäŸããã¢ãŒããã¯ãã£ã®ãããã§ãã³ãŒããèšè¿°ããªãæ§æã¯ãå¿ èŠãªãããã¯ïŒããŒãã¬ããïŒãããŒãžã«ã¹ããŒãããã©ã¡ãŒã¿ãŒãèšå®ãããããã®ã¢ã¯ã»ã¹æš©/衚瀺暩ã«éå®ãããŸãã
ããã«ãLiferayã¯ãCMSããœãŒã·ã£ã«ãããã¯ãŒã¯ãšã®çµ±åãæ€çŽ¢ãšã³ãžã³ã®æé©åãã·ã³ã°ã«ãµã€ã³ãªã³ã·ã¹ãã ãšãµãŒãããŒãã£ã®åæãµãŒãã¹ãšã®çµ±åãªã©ãããã«äœ¿çšã§ããéåžžã«åªããã¢ãžã¥ãŒã«ã»ãããæäŸããŸãã
å®è£ æ©èœ
ã¿ã¹ã¯1ããã³2ïŒäžèšïŒãæ€èšãããšã顧客èªèº«ãåããŒãã¬ããããã³ãµã€ãå šäœã®è¡šç€ºã«çŽæ¥åœ±é¿ãäžããããšãã§ããããšãå¿ èŠã§ããããšãããããŸããã ããã«ããµãŒããŒããªãããŒãããŠãµã€ãã®èªèãåäžãããããã«ãå€ãã®æäœãéåæã§åçã«ãããã£ãã®ã§ãã ãã®ããããããžã§ã¯ãã¯Google Closure Templatesãã³ãã¬ãŒããšã³ãžã³ã®äœ¿çšãéå§ããŸããã
ãã®ãšã³ãžã³ã«ãããäžåºŠäœæãããã³ãã¬ãŒãããµãŒããŒãšã¯ã©ã€ã¢ã³ãã®äž¡æ¹ã§ç°¡åã«äœ¿çšã§ããŸãã ããã«ãããŒã«ãªãŒãŒã·ã§ã³ãåœéåããµããã¿ãŒã³ãžã®å解ãªã©ãéåžžã«å®æ§çã«èããããŠããŸãã æãç°¡æœã§ããã³ãã¬ãŒãã®ããžãã¯ãé¿ããå€ãã®ã¿ã€ãã®æšæºãšã©ãŒïŒãšã¹ã±ãŒããªã©ïŒãåãé€ããŸãã ãŸãããã³ãã¬ãŒãã¯ã³ã³ãã€ã«ããããšã³ãã£ãã£ã§ããããµãŒããŒãšã¯ã©ã€ã¢ã³ãã®äž¡æ¹ã§ããã©ãŒãã³ã¹ãå€§å¹ ã«åäžã§ããããšãæ°ã«å ¥ã£ãŠããŸãã
顧客ããã®è£éã§ããŒãã¬ããïŒããŒãžãã¥ãŒãïŒã®ãã³ãã¬ãŒããåžžã«åŸ®èª¿æŽã§ããããšã確èªããããšã«ããŸããã ããŒã¿ã«ã®äžè¬çãªãã¥ãŒã¯ãããŒããã³ãã¬ãŒãã§ç·šéã§ããŸãã
éçºã®å©äŸ¿æ§ã®ããã«ãSpring MVCããã³Google Closure Templatesããã¥ãŒãšããŠäœ¿çšããŠåããŒãã¬ãããäœæã§ãããã€ã¯ããã¬ãŒã ã¯ãŒã¯ãšãããèªäœãã«ãã»ã«åããå°ããªJavaScriptã¯ã©ã¹ãäœæã§ããããã«ããŸããã ãããŒãã¬ããã®DOMã³ã³ãããžã®ã¢ã¯ã»ã¹ãªã©ã ãã®ããŒãã¬ããããã³ããŒãã¬ããèªäœã®ãã€ããã¯ã¹ãæ åœããJSã¯ã©ã¹ããã€ã³ãããæ©èœãè¿œå ãããŸããã
ããã«ãããéçºè ã¯ãã³ãã¬ãŒããã³ã³ãã€ã«ããå¿ èŠããããšããäºå®ãèãããSpringãHTMLãJavaScriptã§éåžžã®ã³ãŒããèšè¿°ããŸãã
çµæ
LiferayããŒã¿ã«ã¯ãããªãå®å®ããããŒã¿ã«ã§ããããšãå€æããŸããã 圌ã¯ãæ°Žå¹³ã¹ã±ãŒãªã³ã°ãJava APIãšæ¡åŒµãã€ã³ãã®ããŒãã®ååšã«æåããçŠç¹ãåœãŠãŠãããã»ãšãã©äœã§ãå€æŽã§ããããšã«æºè¶³ããŠããŸããã ãŸããå€æ°ã®æ§æããããã£ã«éåžžã«æºè¶³ããŠããããã®å€æŽã«ãããé«åºŠã«æé©åãããããŒãžã³ãŒããšéçããããããã°ãã¯ããã«ç°¡åãªéçºè æ§æã«ãã°ããåãæ¿ããããšãã§ããŸããã äžè¬çã«ããã©ãããã©ãŒã ã¯ããã°ã©ããŒã®ããã«ããã°ã©ããŒã®ããã«äœæãããããã§ãïŒ
Google Closure Templatesã¯ãã¹ãŠã®æåŸ ã«å¿ããŸããã ä»ãããã¯ãã³ãã¬ãŒããšã³ãžã³ã®äžã§ç§ã®ãæ°ã«å ¥ãã§ãïŒ
äºãã«çŽæ¥æ¥ç¶ãããŠããªãããã€ãã³ããã¹ãä»ããŠã®ã¿éä¿¡ãããã¥ãŒããããµã€ãã®ããŒãžãæ§ç¯ããæ©èœã¯ãæ¬åœã«çŽ æŽãããã§ãã ã³ãŒãã¯é©åã«æ§é åãããŠãããè«çéšåã«åå²ãããŠããŸãã åæã«ãè¿œå ã®å©ç¹ããããŸãïŒ ã³ãŒãã®åäžè¡ãªãã§ç°ãªãããŒãžã§ç°ãªãå€èŠ³ã®åãããŒãã¬ããã䜿çšã§ããããšãããŒãžäžã®ãããã¯ã®ç°¡åãªïŒãã©ãã°ã¢ã³ãããããïŒç§»åã«ããããŒãžã®å€èŠ³ã®å€æŽã®åçŽããç¹å®ã®ããŒãã¬ããã®å¥å šæ§ããã®ããŒãžå šäœã®ç¬ç«æ§ã
åé¡ãšè§£æ±ºç
ç§ãã¡ãçŽé¢ããäž»ãªåé¡ã¯ãŸã çŸãã解決ãããŠããŸããããLiferayã®æ§æã§ãã å®éã«ã¯ããµã€ãããµã€ããšåŒã¶ããšãã§ããã»ãšãã©ãã¹ãŠãä¿åããŸããCMSã®ã³ã³ãã³ããããŒãžã«ã¢ã¿ãããããåããŒãã¬ããã®èšå®ãããŒãžããŒããã¬ã€ã¢ãŠããªã©ã§ãã ãããã£ãŠããã®æ§æãããå Žæããå¥ã®å Žæã«è»¢éã§ããããã«ããå¿ èŠããããŸãã ããã«ããã®æ§æãä¿åããŠããŒãžã§ã³ç®¡çããå¿ èŠããããŸãã ããã«ãéçºäžã«ãæ§æã®å€æŽãé ãããããšæã£ãŠããŸãã ãããŸã§ã®ãšãããèšå®ãLiferayã«è»¢éãã2ã€ã®æ¹æ³ããããŸãã
- æåã®æ¹æ³ã¯ã¹ããŒãžã³ã°ç°å¢ã§ããããã®æ¬è³ªã¯2ã€ã®Liferayã€ã³ã¹ã¿ã³ã¹ãã€ã³ã¹ããŒã«ãããŠããããšã§ãã1ã€ã¯å€æŽãŠã£ã¶ãŒãã§ã2ã€ç®ã¯æ¬çªã§ãã æåã«ããã¹ãŠã®å€æŽãè¡ããããããæ©èœããããšã確èªããŠããã[é©çš]ãã¿ã³ãã¯ãªãã¯ããŸãã ãã®åŸããã¹ãŠã®å€æŽãæ¬çªãµãŒããŒã«å¥è·¡çã«è»¢éãããŸãã ããããæ®å¿µãªããããã®ã¢ãããŒãã¯äžèšã®èŠä»¶ã®å€ããæºãããŠããŸããã
- 2çªç®ã®æ¹æ³-ãšã¯ã¹ããŒã/ã€ã³ããŒã-ã¯çæ³çã§æ£ããããšã®ããã«æããŸãããããã§ãé©ãããããŸããã ãšã¯ã¹ããŒãã¯ãç¹å¥ãªLAR圢åŒã§å®è¡ãããŸããããã¯ãXMLãæããéåžžã®zipã§ãã ãããŠåé¡ã¯ããããã®XMLã§ããžãã¯ã芳å¯ãããªãããšã§ãã åã¿ã€ãã®æ§æãåã¿ã€ãã®ããŒã¿ãªã©ã¯ãç¬èªã®æ¹æ³ã§ XML ã«å€æãããŸãïŒ ããã«ããã®XMLã§ã¯ã絶ããå€åããç°å¢äŸåã®ãªãŒããŒãããæ å ±ãéåžžã«å€ãããããããã®ããŒãžã¯åã«äžå¯èœã§ãã ãããã£ãŠã2ã€ã®ç°ãªããµãŒããŒããåãæ§æãã€ã³ããŒããããšãçµæã¯90ïŒ ç°ãªããŸãã
Liferayæ§æã®åé¡ã¯ããããŸã§ã®ãšãããå®æããLARãã¡ã€ã«ãä¿åããã ãã§è§£æ±ºãããŠããŸãã å¶åŸ¡ããããšã¯ã§ããŸããããå°ãªããšãå€æŽãããŒãžã§ã³ç®¡çããŠæ°åã§ããŒã«ããã¯ã§ããŸãã
ç¹å®ã®å°é£ã¯ãããŒãã¬ãããã¯ãããžãŒã§å€§ããªãã©ã¹ãšèãããããã®ã«ãã£ãŠåŒãèµ·ããããŸãã å®éãLiferayèªäœã¯å¥åã®Java Webã¢ããªã±ãŒã·ã§ã³ã§ãã ãŸãããã¹ãŠã®ããŒãã¬ããã¯ãå¥ã®å¥åã®Webã¢ããªã±ãŒã·ã§ã³ãšããŠèšèšããå¿ èŠããããŸãã ããã¯ã ç°ãªãã³ã³ããã¹ããã¯ã©ã¹ããŒããŒãã»ãã·ã§ã³ããªã¯ãšã¹ããªã©ãããããšãæå³ããŸãã ããã¯ãSpringã䜿çšããå Žåãšããã¹ãŠã®ããŒãã¬ããã§äœ¿çšã§ããåºæ¬çãªããšãå®è¡ããããšããå Žåã®äž¡æ¹ã§ãå€ãã®åé¡ã«ã€ãªãããŸãã Liferayã¯ãŸãããã©ãã¯ããžãã¯ïŒã¯ã©ã¹ããŒããŒã®å®æ°çœ®æïŒãè¿œå ããããšã«ããããã®åé¡ãè€éã«ããŸããã¢ããªã±ãŒã·ã§ã³ããã¢ããªã±ãŒã·ã§ã³ã«ãªã¯ãšã¹ãããã³ã»ãã·ã§ã³ãã©ã¡ãŒã¿ãã³ããŒãããããªãããããã³ãããã€äžã«ããŒãã¬ããã³ãŒããå€æŽããŸãã
äžè¬ã«ãLiferayã¯å€ãã®åéºãæºåããŸããããæäŸãããæ¡åŒµãã€ã³ããšãã©ãããã©ãŒã åšèŸºã®å€§èŠæš¡ãªã³ãã¥ããã£ã«ããããããã®ã»ãšãã©ã¯è§£æ±ºããããšãã§ããŸããã
çµè«
Liferayã®ãœãªã¥ãŒã·ã§ã³ã¯ãŸã å®å šãªçç£ã«ã¯è³ã£ãŠããŸããããããã€ãã®çµè«ãåŒãåºãããšãã§ããŸãã
- Liferayã¯ãå éšããŒã¿ã«ãšãã¹ããŒã¿ã«ã®äž¡æ¹ãæ§ç¯ããããã®åŒ·åãªããŒã«ã§ãã
- Liferayã«ããããèªè»¢è»ãã®éçºã«è¿œå ã®èšåæè³ãããããšãªããã¿ã¹ã¯ã解決ã§ããŸããã
- Liferayã¯ãå®å šã§ããŒããããæ©èœè±å¯ãªãœãªã¥ãŒã·ã§ã³ãå¯èœãªéãæè»ã«äœæã§ããã·ã¹ãã ã§ãã
ããããã¹ãŠã«ãããããããæ¹åãã¹ãããšããããŸãã è¿ãå°æ¥ãåãã¯ã©ã¹ã®ä»ã®ãœãªã¥ãŒã·ã§ã³ãåé¡ãããç°¡åã«/ããæ£ç¢ºã«è§£æ±ºããã®ã«åœ¹ç«ã€ãã©ãããç¥ãããã«ãåŸãããçµéšããã£ããã«èª¿æ»ãè¡ãäºå®ã§ãã ãªãã·ã§ã³ãããå Žå-ã³ã¡ã³ãããŠãã ãããç§ãã¡ã¯æè¬ããŸãã
æåŸãŸã§èšäºãèªãã§ãããŠããããšãã 圌女ãååã«é¢çœãããšãé¡ã£ãŠããŸãã