æè¿ã
Java EEã«é¢ããŠå€ãã®è©±é¡ããããŸãããæåã¯8çªç®ã®ããŒãžã§ã³ã次ã«Eclipse Foundationãžã®ç§»è¡ãšååã®å€æŽã®ãã¥ãŒã¹ã§ãã ããããå€ãã®ãã¥ãŒã¹ã®è°è«ã¯ãæ°ããååã®EE4Jã«ã€ããŠäººã
ãèãããã®ã«ãŸã§åã³ãŸãã ç§ãã¡ã¯ããã«éå®ããªãããšã«æ±ºãã
Dmitry Alexandrov ïŒT-Systemsã®æåãªãšãã¹ããŒãããã°ã©ããŒïŒã«å°ããŸããã圌ã¯ä»äºã§Java EEãæ±ããEEã³ãã¥ããã£ã§æŽ»åããŠãããäŒè°ã§EEã¬ããŒããäœæããŠããŸãã ããã§ããããªãã®ä»äºãžã®é©çšå¯èœæ§ãã®èŠ³ç¹ãšãã³ãã¥ããã£å
šäœã®èããã®èŠ³ç¹ã®äž¡æ¹ããããããŠå ±åã«ã€ããŠåæã«è³ªåãããŸããã圌ã¯ææ¥
ãžã§ãŒã«ãŒã§ç§ãã¡ãšè©±ããŸãã
-ã©ã®ããã«Java EE 8-ã³ãã¥ããã£ã«ãšã£ãŠå€§èŠæš¡ã§åŸ
æã®ã€ãã³ãã§ãããã©ã®é©æ°ãæ倧ã®å
±é³ŽãåŒãèµ·ãããïŒ
-ç§ã¯äžè¬çã«ã以äžã®ãªã©ã¯ã«ã®å
¬åŒã€ã³ãã©ã°ã©ãã£ãã¯ã«åæããŸãã
ä»æ¥ãRESTãHTTP / 2ãããã³JSONã«é¢é£ãããã¹ãŠã®ãã®ã«å¯Ÿãã倧ããªéèŠããããEEã¯ããã®åŸåã«åŸããŸãã JSON-Bã®å¿
èŠæ§ã¯æããã§ããã誰ããããã«ã€ããŠéåžžã«æºè¶³ããŠãããšæããŸãã ããã«ãããéçºå
šäœã倧å¹
ã«ä¿é²ãããŸãã éåææ§/åå¿æ§ã«å ããŠããã¡ããã»ãã¥ãªãã£ã«ãå€ãã®æ³šæãæãããŠããŸãã ãã¹ãŠã®å€æŽãèæ
®ãããšèšäºå
šäœãæãããŸããããã¡ãããJava EE 8ã®ãªãªãŒã¹ã¯éåžžã«æåŸ
ãããŠããŸããã ä»ã§ã¯ãææ°ã®ãšã³ã¿ãŒãã©ã€ãºéçºã®ããã®ã€ã³ãã©ã¹ãã©ã¯ãã£å
šäœãæäŸããããŸã£ããæ°ãããã©ãããã©ãŒã ã§ãã
-ãããŠãããªãã¯ããªãèªèº«ã®å®éã®ä»äºã«é¢é£ããŠäœãæããŸããïŒ G8ã«ã¯ãT-Systemsãããžã§ã¯ãã§æããã«åœ¹ç«ã€äœãããããŸããïŒ ãããŠãä»äºã®å€åãã©ã®ãããæ©ãæããŸããïŒ
-ããã€ãã®æ°ãããããžã§ã¯ãã§ã¯ãMicroProfile + JSON-Bã¹ã¿ãã¯ããããŠããããMVCã䜿çšããå¿
èŠããããŸãã ç§ãã¡ã«ã¯å€ãã®éåææ§ãšã€ãã³ãããããããã§ITS 8ã¯ç§ãã¡ã®ç掻ã倧å¹
ã«ç°¡çŽ åããŸãã
ãããŠãæéã«ã€ããŠ-T-Systemsã®ãããªå€§ããªãã¬ãŒã€ãŒã§ã¯ããã®ãããªå€åã¯ããã«ã¯æããããŸããã ç§ãã¡ã«ã¯æ°å¹Žåã®å€ãã®ãããžã§ã¯ãããããææ°ã®ãã©ãããã©ãŒã ãžã®ç§»è¡ã¯å¿
ãããå³åº§ã«è¡ãããããã§ã¯ãããŸããã å€ãã®å Žåãããã¯ããªãé·ãããã»ã¹ã§ãããå€ãã®äºåãã§ãã¯ã«é¢é£ä»ãããããµã³ãããã¯ã¹ã§æ©èœããŸãã äœãããå®å®æ§ãšå®å
šæ§ã
ããã«ãããããããç§ãã¡ã¯åžžã«ææ°ã®ãªãªãŒã¹ãé©çšããããåªããŠããŸãããããã¡ãã·ã§ããã«ã ããããšé ãçããŸããã
-ã³ãã¥ããã£ã¯EEããEclipseãžã®ç§»è¡ãã©ã®ããã«è©äŸ¡ããŠããŸããïŒ äž»ã«æè¬ã®èšèã衚瀺ãããŸããããOracleã¯ãã©ã¹ããåãé€ãããªã©ã®æçè«ããããŸããã³ãã¥ããã£ãšããªãã¯ã©ãæããŸããïŒ
-ãã¡ãããããã¯å®å®èŠæš¡ã®ã€ãã³ãã§ãã æ³åããŠã¿ãŠãã ãã-ãã©ãããã©ãŒã ã¯25幎éããã£ã1ã€ã®äŒæ¥ã«ãã£ãŠå¶åŸ¡ãããŠããŸãããããã®å·šå€§ãªéšåã¯ããããè±åŽããç¬ç«ããããã²ãŒã·ã§ã³ã«å
¥ããŸãã ITSã¯éåžžã«åºç¯ã§ãããã³ãã¥ããã£ã¯éåžžã«å€§ãããããäœãèµ·ãã£ãã®ãã¯èªç¶ãªããšã§ãã ããããç§ã¯ãããããã©ã¹ããåãé€ãããšã¯åŒã³ãŸããã ããã§ã¯ããããªãã¯ãã¡ã€ã³ã«ãªã£ãããšãå¬ããæãã ãã§ãã
ç§ã®è¬èãªæèŠã§ã¯ãããã¯é
ããæ©ããèµ·ããããšã§ããã ããããç§ã¯ãããããã«èµ·ãããšã¯æã£ãŠããŸããã§ããããããŠãçŸåšãç§ã¯ããããã¹ãŠãèå³ãæã£ãŠèŠãŠããŸãã
ãæšå¹Žãã³ãã¥ããã£ã¯ãOracleã®ç®¡çäžã§EEã®éçºãé
ããšèŠæ
ãèšããŸããã ããããOracleãŠã€ã³ã°ããªããã°ãããã¯å éãããããã«æžéãããã¹ãŠãè¿ãããã«Oracleã«èŠæ±ããããšãå€æããŸããïŒ :)
ãééããªããã ãã®ã€ãã³ãã¯ãæ¥çã®ããŒãºã«åããããã®ãã©ãããã©ãŒã ã®ããè¿
éãªéçºãä¿é²ãããã®ãšç¢ºä¿¡ããŠããŸãã ããã«ãã¡ã€ã³ãã³ããŒïŒãµãŒããŒéçºè
ïŒãããã«é¢å¿ãæã£ãŠãããããEEã¯ããã«æ±çšæ§ãé«ããããŒã¿ãã«ã«ãªããŸãã ããã§ã圌ãã座ã£ãŠãããæšæºåããæ¹æ³ã«åæããã®ãç°¡åã«ãªããŸãã è¯ãäŸãMicroProfileã§ãã æ°ç€Ÿã®ãµãŒããŒãã³ããŒã座ã£ãŠããã®ãµããããEEãã©ã®ããã«èŠãããã«ã€ããŠåæããäžè¬ã®äººã
ãšçžè«ããŠå®è£
ããŸããã ããã«ãã¹ãŠã®æ¬ ç¹ãè¡šé¢åããå§å¡äŒã¯ããã«åå¿ããŸããã ç§ã«ãšã£ãŠã¯çŽ æŽãããããšã§ãïŒ
-誰ããMicroProfileãæ£ããç¥ã£ãŠããããã§ã¯ãããŸããã T-Systemsã§åœ¹ç«ã€ãšç¢ºä¿¡ããŠããã®ã§ãäžè¶³ããŠãããããžã§ã¯ãã«ã€ããŠäžè¬çã«èª¬æã§ããŸããïŒ ãããŠãMicroProfileãEE4Jã«ç§»è¡ããããšèããŠããä»ãMicroProfileã®èŠéãã¯äœã§ããïŒ
-äžèšã§èšãã°ããã®å€èŠ³ã¯ãã€ã¯ããµãŒãã¹ã®å·šå€§ãªäººæ°ã«ãããã®ã§ãã ããã¯çµ¶å¯Ÿã«ã³ãã¥ããã£ã®ã€ãã·ã¢ããã§ããããšã¯æ³šç®ã«å€ããŸãã ãã®ããã1ã€ã®RESTãšã³ããã€ã³ããäžããããã«ãæ°žç¶æ§ãšJSFãªã©ã®äž¡æ¹ã®EEã€ã³ãã©ã¹ãã©ã¯ãã£å
šäœãäžããå¿
èŠãããå ŽåããããŸããã ç解ããŠãã ãããããã¯ãã¹ãã§ã¯ãããŸããã ãããŠãããã«éããã決å®ãããEEãµãŒããŒã®ãã³ããŒãããã€ããããŸããéå°ãªãã®ã¯ãã¹ãŠæšãŠãŠãJAX-RSãCDIãJSON-Pã®ã¿ãæ®ããŸãããã ããã¯éåžžããã€ã¯ããµãŒãã¹ãå®è¡ããã®ã«ååã§ãïŒãã ããããã¯ãŸã è°è«ã®å¯Ÿè±¡ã§ãïŒã ããã§MicroProfileãã§ããŸããïŒ
åæã«ããµãŒããŒãã£ã¹ããªãã¥ãŒã·ã§ã³èªäœãéåžžã«ã³ã³ãã¯ãã«ãªããå€ãã®å Žå1ã€ã®å®è¡å¯èœjarã«ããã¯ãããŸãã ãã®ãããªèèªã®ç¶ã®ãµã€ãºã¯ãã£ãã«40ã¡ã¬ãã€ããè¶
ããŸããã ç§ãå
±åãªãŒããŒã§ãããã«ã¬ãªã¢ã®JUGã§ã¯ãMicroProfileã®éçºã«ç©æ¥µçã«é¢äžããŠãããç©æ¥µçãªã³ããã¿ãŒãããŸãã ããã«ããã®ãããã¯ã«é¢ããæåã®ãã³ãºãªã³ã©ããäœæããŸãããã¯ãŒã¯ã·ã§ããã§ã¯ãè€æ°ã®ãã€ã¯ããµãŒãã¹ã§æ§æãããWebã¢ããªã±ãŒã·ã§ã³ãäœæããåãã€ã¯ããµãŒãã¹ã¯ãã³ããŒãããµãŒããŒã«ç§»åããŸãã ãããŠãããããã¹ãŠãåäžã®æšæºã§ããããšãèãããšããã¹ãŠãçŽ æŽãããäžç·ã«æ©èœããŸãïŒ ãšãŠã楜ããïŒ
ã¡ãªã¿ã«ãEE4Jãšããååã¯å¥œãã§ã¯ãããŸãããããã®ã€ãã·ã¢ããã¯ééããªãã§ãããã
-Oracleãæåã«Java EEããMVCãããžã§ã¯ããèŠã€ãåºããã³ãã¥ããã£ããããå¥ã®ã¿ã¹ã¯ãšããŠéžæããä»ã§ã¯EE4Jã«ããŒãžãããšãã話ããããŸããã ãªã©ã¯ã«ã¯ã誰ãå¿
èŠãªãããšããçç±ã§æåŠããŸããããããªãã®æ°æã¡ã«ãããšãããã¯ã©ãã»ã©é¢é£æ§ããããé¢é£æ§ããããŸããïŒ ããã«å¯ŸããéèŠã¯ãã³ãã¥ããã£ãå
·äœçã«ã¯ããªãã®äœåã«çŸããŠããŸããïŒ
-ç§ã¯ãããèšãã ããïŒMVCã¯è¯ãã§ãã JSFãå°é£ã§ãæšæºçããããã¿ã¹ã¯ãå€æ°ãããããJSFã«ä»£ãããã®ãæã£ãŠããããšã¯éåžžã«è¯ãããšã§ãã ããã«ããã®ã¢ãã«ã¯Springã§å®èšŒãããŠããŸãã ãããŸã§ã®ãšãããäžè«èª¿æ»ãšäžè¬çãªéšé³ããå€æãããšã人ã
ã¯ãŸã 圌女ã«åœŒå¥³ãæ¬åœã«åãå
¥ããŠããŸããã ããããäžèšã§è¿°ã¹ãããã«ãT-Systemsã§ã¯ããããžã§ã¯ãã®1ã€ã«MVCãé©çšããããšãèããŠããŸãã
-Java EE Guardiansã³ãã¥ããã£ã¯åžžã«EEã«é¢é£ãããã¹ãŠã®ããšã«ã€ããŠå€§å£°ã§è©±ããŸãããåŽããã¯æããã§ã¯ãããŸãããããã¯æ¬åœã«å¿ãåãããã人ã
ã®åŒ·åãªã³ãã¥ããã£ã§ããããããšãæ¬åœã«ãReza Rahmanãšãã以äžã®äººã
ãã§ããã
-Rezaã¯ééããªãEEã®æ±ã®1ã€ã§ãã ã€ãæè¿ãç§ã¯äŒè°ã§åœŒã®å
±åã¹ããŒã«ãŒãåããç§ãã¡ã¯åœŒå¥³ã®å°æ¥ã«ã€ããŠè©±ããŠããŸããã ãããŠãã¬ãŒãã£ã¢ã³ã¯æ°äººã®äººã
ããã¯ã»ã©é ãã EEãµãŒããŒã®äœæè
ã§ããJames Goslingããå§ãŸããå€ãã®JCPãšãã¹ããŒãã§ãããæåŸã«EEã®åçŽãªããŠãŒã¶ãŒãã§çµããåå è
ã®ãªã¹ããã芧ãã ããã å®éãã¬ãŒãã£ã¢ã³ãºã¯ãEEã®åæ»ã«æåã«æ³šæãæãããã®æ·±å»ãã«é¢ããç¥è©±ããææãããåããéå§ããæ¥çã®æ°ããããŒãºãæºãããã©ãããã©ãŒã ã®é²åã«è²¢ç®ããŸããã
-ç¥è©±ã®è³ªåãžã çŸåšããäžè¬çã«èª°ããã®EEãSpringã®æçæã«å¿
èŠãšãããããããªãããšããæ°åããããŸãããããã¯ããã¡ãã·ã§ããã«ã§ã¯ãªããããšãå€æããŸãããEEã§äœæ¥ããŠãã人ã®èŠ³ç¹ããã¯ã©ãã§ããïŒ
-å®éãEEã§å®è¡ã§ããããšã¯ãã¹ãŠãSpringã§å®è¡ã§ããŸãã ããã«ãSpringã«ã¯ããã«å€ãã®ãç ç³ããããããããããã¿ã€ãã³ã°ãäžéšã®è¿
éãªéçºã®ããã«ãå Žåã«ãã£ãŠã¯ãããæãŸããããšããããŸãã ããããããªãã¯ãã®æ±ºå®ã®ã人質ãã«ãªããŸãã ä»ã®ãã®ãžã®ç§»è¡ã¯éåžžã«å°é£ã«ãªããŸãã EEã«ã¯ããã¹ãŠãæ©èœãããµãŒããŒäžã®ä»£æ¿æ段ãåžžã«ãããŸãã ããã«ãäžéšã®EEãã³ããŒã¯ã絶察ã«å¹æµããç ç³ã®ã»ãããæäŸããŠããŸãã
ããããEEããæµè¡é
ããã§ããã°ãããã»ã©äžè¬çã§ã¯ãããŸããã ç§ã¯ãã€ãèšã£ãŠããŸããïŒEEã¯ããã©ãããã©ãŒã ã®å
åŽãšåŽé¢ã®äž¡æ¹ã§ãã€ãŠçºæãããæé«ã®ãã®ã§ãã ãããäŒæ¥ã®æ¬è³ªã§ãããæšæºã«å€ãããã®ã§ãã
-ãžã§ãŒã«ãŒã®éå»ã«ãJava EE 7ããJBatchã«ã€ããŠè©±ããŸããããèªåã§äœ¿çšããŠããŸããïŒ
-ã¢ãããŒãã2å䜿çšããŸãããããã«ãããã¢ãããŒããå¯èœãªéãæšæºã§ãããããäœåãªåŽåã倧å¹
ã«ç¯çŽã§ããŸããã
-ãªãå°ããããã®ãïŒJBatchã¯å€ãã®åŽåãç¯çŽããŠããããã«èŠããŸããããã®åç
§ã¯ã»ãšãã©ãããŸããã ãªããããèµ·ãã£ãŠããã®ã§ããïŒ æ
£æ§ã®äººã
ã¯ãèªè»¢è»ãäžèŠã«ãªã£ããšããŠãèªè»¢è»ãäœããŸããïŒ
-ã¯ããç§èªèº«ã¯JBatchããå¿ããããAPIããšåŒãã§ããŸãã ããããç§ã¯äžèšã®ããã«äººã
ãèªè»¢è»ãçºæããæ¹æ³ãèŠç¶ããŠããŸãã å€ãã®äººã¯ãã¿ã¹ã¯ãéåžžã«åçŽã§ãããšèããŠããã®ã§ããªãèããã®ã§ããããïŒ æ°ãµã€ã¯ã«ãæ¬çªã§æžããŸããã ãããŠãããªãã¯ããªãèªèº«ãç¶ããã®ãç¥ã£ãŠããŸãã ãããŠã䞊åã³ãŒããæžããªããã°ãªããªããšãããã¹ãŠãã§ããã ãæ²ãããªããŸãã ããããã¿ã¹ã¯ãããå°ãè€éã«æããå Žåã¯ããã¡ãããèªå€§åºåããäœããåãåºãã®ãæ
£ç¿ã§ãããããã¯ãã°ãã°äžå¿
èŠãªå°é£ã«ã€ãªãããŸãã JBatchã®æ¬ é¥ã«é¢ããŠãäž»ãªãã®ã¯ãã®äžæçãã§ãã ãããçæ³çãªããŒã«ã§ã¯ãªãããšã¯æããã§ãããåé¡ãé©åã«å®åŒåãããšãæéã倧å¹
ã«ç¯çŽã§ããŸãã ããã«ããã®ãããªAPIã®å¯çšæ§ã«é¢ããç¥èã¯ãç¹å®ã®ã¢ããªã±ãŒã·ã§ã³ã®ã¢ãŒããã¯ãã£èšèšã«åœ¹ç«ã¡ãŸãã
-æåŸã«ãEEãããã¯ããå°ãé¢ããŸãããã次ã®Jokerã§ã¯ããJavaãšGPUã ã«é¢ããã¬ããŒãããããŸããããã¯ãJBatchãšåæ§ããã£ãã«è©±ãããŸããã ãããå人çãªçµéšã«åºã¥ãéå®åã®ããŒãã§ããïŒ
-ç§ã¯ããããçš®é¡ã®ç°åœæ
ç·ã«ã€ããŠè©±ãã®ã奜ãã ãšããããšã«æ°ã¥ããŸãããïŒ ç§ã¯æ°å¹ŽåããGPUã奜ãã§ããŸããããã¯ããå人çãªçµéšã«åºã¥ããŠæããŸãããäŸã¯ããäžè¬çã§ãã ç§ã®ä»¥åã®ä»äºã§ã¯ãã¢ããªã±ãŒã·ã§ã³ã®çŽæ¥çãªçµéšããããŸãããããã§ã¯ãå€ãã®ããŒããããããã°ããã«ãŠã³ãããå¿
èŠããããŸããã ãããŠä»ãT-Systemsã®ã€ãããŒã·ã§ã³ã°ã«ãŒãã§ã¯ãã¯ã©ãŠããªã©ã®ããŒãºã«GPUã䜿çšããå¯èœæ§ãæ€èšããŠããŸãã ãããªã«ãŒãã§ã®ã³ã³ãã¥ãŒãã£ã³ã°ã®æ§è³ªäžãã©ãã§ãã¢ããªã±ãŒã·ã§ã³ã®ç¯å²ãå¶éããããããããããŸãšããŠé©çšããå¿
èŠã¯ãªããšæããŸãã
-ããŠãããã¯çã®ããã§ã¯ãããŸããã ããããä»ã§ã¯Javaã§GPUã䜿çšããã®ã«åœ¹ç«ã€äººãã¡ã¯ä»ã§ã¯ãã°ãã°ããã§ã¯ãªããšããæãããããŸããïŒ
-ç§ã®æèŠã§ã¯ãGPUã¯æå·é貚ã®æ¥éãªæé·ãšãããã¯ãã§ãŒã³ã«é¢é£ãããã¹ãŠãèæ¯ã«ç¹ã«è©äŸ¡ãããŠããŸãã Javaã¯ãéèããã³éè¡æ¥ã§éåžžã«ãã代衚ãããŠããŸãã å®éãããã¯ããã§æ¯é
ããŠããŸãã ãããããã®åéã«ã¯ã倧èŠæš¡äžŠåã¯ã©ã¹ã«é©åããä»ã®å€ãã®ã¿ã¹ã¯ããããGPUã«æé©ã§ãã ããã«ãããã°ã©ããŒãååãšããŠGPUãšéä¿¡ã§ããããã«ãªãããšã¯èå³æ·±ããæçšã§ãããšç¢ºä¿¡ããŠããŸãã æè¿ãç§ã®è¬èãªæèŠã§ã¯ãéçºè
ãšã¢ãŒããã¯ãã¯ãç¹å®ã®ã¿ã¹ã¯ãã©ãã ã䞊ååãããŠããããå€æããããã«åºã¥ããŠæé©ãªããã€ã¹ã«å®è£
ããèœåãå¿
èŠãšããŠããŸãã å人çã«ã¯ãã¿ã¹ã¯ãé©åã§ããããšãããã£ããããã¡ããGPUãé©çšããããšããŸãã ããã«ããã®ãªãœãŒã¹ã¯ãŸããŸãã¢ã¯ã»ã¹ãããããªããŸããã
-ããããšãããžã§ãŒã«ãŒã§ããªããšT-Systemsã®äž¡æ¹ãåŸ
ã£ãŠããŸãã