ãããžã§ã¯ãéå§
ãã®ãã³ãããŒã¯ãããžã§ã¯ãã¯ãGeeksWithBlogs.netã®èšäºã .NET v.2ã®ã·ãªã¢ã©ã€ã¶ãŒãããå§ãŸããŸããã èšäºã¯ã.NETã·ãªã¢ã©ã€ã¶ã®ããã«ã»ãšãã©å©çšã§ãããšèããããŸããã ãããããã®èšäºãšå¯Ÿå¿ããã³ãŒããå®éã®ãã³ãããŒã¯ã«å€ããã«ã¯ãããã€ãã®æ¹åãå¿ èŠã§ããã
ãŸããã·ãªã¢ã©ã€ã¶ãŒã¯ããã€ãã®ã¿ã€ãã®ããŒã¿ã§ãã¹ãããå¿ èŠããããŸããã ãŠãããŒãµã«ã·ãªã¢ã©ã€ã¶ããããããã«ç¹åãããŸãã ç¹æ®ãªãã®ã¯ãã»ãã®æ°çš®é¡ã®ããŒã¿ã§éåžžã«ããŸãæ©èœããŸãããä»ã®ããŒã¿ã§ã¯ãæ©èœãã¯ããã«æªããªããããŸã£ããæ©èœããŸããã ç§ãã¡ã¯ãå°æ¥çã«æã£ãŠãããšç¢ºä¿¡ããŸããã
第äºã«ãã·ãªã¢ã©ã€ã¶ã¯ãã€ã³ã¿ãŒãã§ã€ã¹äžã§ç°ãªããŸãã ç§ãã¡ã®ãã³ãããŒã¯ã¯ãåœç€Ÿã®ã·ãªã¢ã©ã€ã¶ã€ã³ã¿ãã§ãŒã¹ã«åŸãããã«éžæãè¡ãã¹ãã§ã¯ãããŸããã ããã©ãããããã³ãããŒã¯ã¯éåžžã«æè»ã§ãªããã°ãªããããã¹ãŠã®ã·ãªã¢ã©ã€ã¶ãããã«æé©ãªã€ã³ã¿ãŒãã§ã€ã¹ã䜿çšã§ããŸãã ã€ãŸãããã³ãããŒã¯ã®ç¹å®ã®ã·ãªã¢ã©ã€ã¶ã«è¿œå ã®ãã©ã¡ãŒã¿ãæž¡ãå¿ èŠããããŸãã
ã·ãªã¢ã©ã€ã¶ãŒã®1人ã®èè ã¯ãæ¹åããããã¹ããè¡ãããšãææ¡ããŠã èšäºã®èè ã«é ŒããŸããã èè ã®ã·ãªã¢ã©ã€ã¶ã¯ ããã®ãããžã§ã¯ãã®åµå§ã ã£ãã圌ã¯ãªãŒãéçºè ã§ããããŸããã ã»ã«ã²ã€ã¯ãå šäœã®Webãããžã§ã¯ãã®éçºè ããã¹ãŠã®å倧ãªã¬ããŒãã§ããã ãã³ãããŒã¯ã®ãã©ãããã©ãŒã ãšããŠNFXã䜿çšããããããèšç»ããããã¹ãŠã®ïŒããã³ãã¯ããã«ïŒãéåžžã«è¿ éã«è¡ãããšãã§ããŸããã NFXã¯ãã®ãããªèšäºãäœçŸãå©çšããŠããŸãã圌ãããªãã®èå³ãåŒãããšãé¡ã£ãŠããŸãã
è©Šéšçµæã®çºè¡š
éå§ããã«ã¯ãç§ã¯ç¹å¥ãªæ³šæãå¿ èŠãšããäºå®ã«ãçµæã®æ瀺ã«å°ãçŠç¹ãåœãŠãŸãã
äŸãšããŠããã¹ãã®1ã€ã®æŠèŠæ å ±ãèŠãŠã¿ãŸãããã
å·ŠåŽã«ã¯ã2ã€ã®æãéèŠãªã«ããŽãªã§ãã3ã€ã®åè ã衚瀺ãããŸããé床ãšã·ãªã¢ã«åãããããŒã¿ã®éã§ãã ããã«ç§ã¯ãåè³è ãããå€ãã®ãã¹ãŠã®ã·ãªã¢ã©ã€ã¶ã¯ãéãç·ãšãããå°ãªãçšåºŠã«ãèè¶è²ã®ã«ããŽãªã®äžã«éã蟌ããåè ãšèããããšãã§ããŸãããããšãã§ãããšããããšããèšããŸãã ã°ã¬ãŒã«ããŽãª - ã·ãªã¢ã©ã€ã¶ã¯ããã®ãã¹ãã«åæ ŒããŠããŸããã
ã³ã©ã é床ã¯ãããªãã¯ãã·ãªã¢ã©ã€ã¶ã®ååãã¯ãªãã¯ãããšãã·ãªã¢ã«åããã³éã·ãªã¢ã«åã®ããã«å¥ã ã®çªå·ã解èªé床ãåŸãããšãã§ããŸãã
ã·ãªã¢ã«åãšéã·ãªã¢ã«åããã®ææªã®é床ãäž»ãªãã®ãšèŠãªãããŸãã ã·ã¹ãã å šäœã®ããã©ãŒãã³ã¹ãéèŠã§ãããã·ãªã¢ã«åã®ã¿ãŸãã¯ãã·ãªã¢ã«åã®ã¿ã®ããã©ãŒãã³ã¹ã§ã¯ãªãããšãåæãšããŠããŸãã ã±ãŒã¹ãç°ãªãå Žåããããããå¥ã®æäœã®é床ã现ãæ£ã§ãã£ãŒãã«ç€ºãããŸãã
äœãæ¢ãããã«ïŒ
- ã·ãªã¢ã©ã€ã¶ã§ãã¹ãã«åæ ŒããŠããŸããã
äžéšã®ãã¹ãã§ã¯ããã¹ãããã»ãšãã©ã®ã·ãªã¢ã©ã€ã¶ãŒãããŒã¿ã倱ããŸããã ä»äºã«ãé«éãã·ãªã¢ã©ã€ã¶ãéžæãããããããŒã¿ãå°ç¡ãã«ããå Žåãããã¯æ³åã§ããææªã®äºæ ã§ãã æªãã ããŒã¿ã®çç±ãç解ããããšãããšãå€ãã®æéãè²»ããããšã«ãªããŸãã ããªããéçºäžã§ã¯ãªããçç£ã«ããã«ã€ãŸããå Žåãããªãã¯å¹žéã ããã
- è©Šéšã«ããã°ãããªãã®ããŒã¿ãæºããããã«ïŒ
æšå¥šäºé ïŒãã³ãããŒã¯ã³ãŒããããŠã³ããŒããããã¹ãããŒã¿ãå€æŽããããããŒã¿ãè¿œå ããŠå床ãã¹ãããŸãã ããªãã®çŽèŠ³ã決ããŠä¿¡çšãããå€æ¿ãä¿¡çšããªãã§ãã ããã äºå®äžãã·ãªã¢ã©ã€ã¶ãŒã¯ç¹å®ã®ããŒã¿ãµã€ãºã«åé¡ãããŸãã ãªããããã¹ãã¯å®è¡ããŸããã§ãããããŒã¿ã«ã€ããŠã¯èªåã§å®è¡ããŠãã ããã éåžžã«å°æ°ã®ã·ãªã¢ã©ã€ã¶ã¯ããã¹ãŠã®æã ã®ãã¹ãã«åæ ŒããŸããã
泚æïŒ
ãŸããæ¬æäžã«ãããªãã¯åžžã«ãããã°ãã°ããªã©ãéåžžãã®èšèã«çŽé¢ããããšã«ãªããŸã ç§ã¯ããã«ã€ããŠè¬çœªããããã«ãããã¹ãçµæãå°ãææ§ã«ãªãããšãç解ããŠããŸãã ãŸãããã¹ãçµæã«æé«ã®ã·ãªã¢ã©ã€ã¶ãŒã衚瀺ãããªãããšãç解ããŠããã ããããšæããŸãã ãããã¯ãåºç€ãšããŠäœ¿çšããå¿ èŠãããã·ãªã¢ã©ã€ã¶ãŒã®ã°ã«ãŒãã®ã¿ãå¶éããŸãã ããªãã¯ã·ãªã¢ã©ã€ã¶ã®ããã«ããªãã®ããŒã¿ã䜿çšããŸãã ãããã£ãŠãç¹ã«ãã®ããŒã¿ããã¹ãã§äœ¿çšããããŒã¿ãšå€§ããç°ãªãå Žåã¯ãYOURããŒã¿ã§ãã¹ããå®è¡ããåŸã«æçµæ±ºå®ãè¡ãå¿ èŠããããŸãã
泚æãæã£ãŠããªããã®ïŒ
- ãã¹ãã¯æ°åã®æ°ã®å·®ã瀺ããå Žåã¯ãéå©ã®éãã«æ³šæãæã£ãŠããŸããã ããã¯ç¡æå³ã§ãªããééã£ãŠããªãã ãã§ãã ãã¹ãããŒã¿ããããã«å€æŽããããšã§ãé床ããµã€ãºã®ããããªå€åãç°¡åã«æªããããšãã§ããŸãã
è©ŠéšããŒã¿
ç§ãã¡ã¯ãæã䜿çšãããã¢ããªã±ãŒã·ã§ã³ã®ããã®ããŒã¿ãæäŸããããšãè©Šã¿ãŸããã ç§ãã¡ã¯èªåèªèº«ã®çµéšã«åºã¥ããŠããŒã¿ãéžæããããã«ãæã ã¯ãã·ãªã¢ã©ã€ã¶ã®äœ¿çšã«ã¯äœã®çµ±èšæ å ±ãæã£ãŠããŸããã éèŠãªãã®ãèŠéããŠããããšãããã£ãå Žåã¯ããç¥ããããã ããããã¹ãããŒã¿ãSerbenchã«è¿œå ããŠãã ããã
æã ã¯ããã€ãã®åéã§èŠå žåçãªã¢ããªã±ãŒã·ã§ã³ïŒ
- åæ£ãç¬ç«ããã·ã¹ãã ïŒåæ£ã·ã¹ãã ïŒã ããã°ã©ã ã¯ãç°ãªãããã»ã¹ããŸãã¯ç°ãªããã·ã³ãããã³äº€æããŒã¿ã«ç¬ç«ããŠåäœããŸãã ããã°ã©ã ã¯ãå¥çŽã®ã€ã³ã¿ãŒãã§ãŒã¹ã亀æããŸãã ç§ã®ã¡ãã»ãŒãžã³ã°ã·ã¹ãã ïŒã¡ãã»ãŒãžã³ã°ïŒã®ãã®ã¿ã€ãã®äžã§ã
ããŒã¿ã¯ããã®ã¿ã€ãã«é¢é£ããïŒä»£è¡šçãªäººããã¬ã¡ããªãEDIããããã
- åæ£ãããã匷ãã·ã¹ãã ãçµåã ã·ã¹ãã ã¯å¥çŽã ãã§ãªããå³æžé€šã ãã§ãªãéä¿¡ã§ããããšãã以åã®å Žåãšã¯ç°ãªãã ã»ãšãã©ã®å Žåããããã®é¢é£ã·ã¹ãã ã¯ãäžã€ã®å Žæã«èšèšãããŠããŸãã ç§ã®RPCïŒãªã¢ãŒãããã·ãŒãžã£ã³ãŒã«ïŒã·ã¹ãã ã®ãã®ã¿ã€ãã®äžã§ã
å žåçãªäººããããåŠçããªããžã§ã¯ãã°ã©ãïŒãã®ã¿ã€ãã«é¢é£ããããŒã¿ã
- ã¹ãã¬ãŒãžã·ã¹ãã ã ããŒã¿ã¯ãããã°ã©ã ãããŒã¿ã¹ãã¢éã§è»¢éãããŸãã 以åã®ã±ãŒã¹ãšã®éãã¯ãã·ãªã¢ã«åãšéã·ãªã¢ã«åã®ãµã€ã¯ã«ããã€ã¯ãç§ãŸãã¯ç§ä»¥å ã«çºçããªãããšã§ãã ããŒã¿ã¯å¹Žéä¿åããããšãã§ããŸãã ä¿ç®¡å¥çŽã®æéäžã«é »ç¹ã«ããŒãžã§ã³ç®¡çããŒã¿ã®åé¡ãçãããããå€æŽããŸãã ç§ãã¡ã¯ããŒãžã§ã³ã§åäœããã·ãªã¢ã©ã€ã¶ããã¹ãããŠããŸããã§ããã å¯èœãªè©ŠéšããŒã¿ã®ä»»æã®ã¹ãã¬ãŒãžã»ã·ã¹ãã ãšé£æºããããšãã§ããŸãã ããããã·ãªã¢ã©ã€ã¶ã¯ããµããŒãããŒã¿ã®ããŒãžã§ã³ç®¡çããããšãããã®å Žåã¯ãããé©åã§ãã
å žåçãªäºº
ããã§ã¯åçŽãªã¯ã©ã¹ã¯ãã€ã³ã¿ãã§ãŒã¹ãªããšç¶æ¿ãªãã§ãã ã»ãšãã©ãã¹ãŠã®ã·ãªã¢ã©ã€ã¶ã¯ããã®ãã¹ãã«åæ ŒããŸãã
ãã¬ã¡ããªãŒ
åæ§ã®ããŒã¿ãIoTãïŒã¢ãã®ã€ã³ã¿ãŒãããïŒã®ããã€ã¹ãçæããŠããŸãã ãããã®éãã¯ãæ°å€æ å ±ãã¿ã€ã ã¹ã¿ã³ããããã³ããã€ãã®èå¥åã®å¯çšæ§ã§ãã æã«ã¯ãããŒã¿ã¯éåžžã«çããäžã®ä»¥äžã®çªå·ã«è»¢éããå Žåã æã æ°åã倧éã«éããŸããã ã·ã³ãã«ãªããŒã¿æ§é ã ããã§ã¯ãé床ãéèŠã§ãããããŒã¿ã®å å¡«å¯åºŠã
ãšãã£
EDIïŒé»åããŒã¿äº€æïŒããŒã¿ã¯ããã¥ã¡ã³ããšåçã§ãã 圌ãã¯ãè€éãªéå±€æ§é ãšãã¹ããããã¯ã©ã¹ã«ãã£ãŠç¹åŸŽã¥ããããŸãã ã¯ã©ã¹ã®ã³ã¬ã¯ã·ã§ã³ããããŸãã
ãªããžã§ã¯ãã°ã©ã
ãªããžã§ã¯ãæåéçºã䜿çšããå Žåãããããåæ§ã®ã¯ã©ã¹ãåŠçããå¿ èŠããããŸããã ãããã¯ãã¯ã©ã¹éã®è€éãªé¢ä¿ã«ãã£ãŠç¹åŸŽä»ããããŸãã ã€ãã³ãã®ã³ã¬ã¯ã·ã§ã³ãæã€Conferenceã¯ã©ã¹ããã¹ãããŠããŸãã ã€ãã³ãã«ã¯ãè€æ°ã®åå è ãšè€æ°ã®äŒè°ãããã¯ãå«ããããšãã§ããŸãã
èå³æ·±ãã®ã¯ãåå è ãçžæã«åç §ãããããã€ãã®ãªã³ã¯ïŒãªã¬ãŒã·ã§ã³ã·ããïŒããæã£ãŠãããããããªããšããããšã§ãã çµæã¯ããµã€ã¯ãªãã¯éä¿¡ã§ãã ããã¯æ£åžžã§ãããããã¯éåžžã«å°æ°ã®ã·ãªã¢ã©ã€ã¶ã¯ãç°ç¶æ¥ç¶ã§äœæ¥ããããšãã§ãå€æããŸãã
ãããåŠç
ããªãã¯ããªããžã§ã¯ãã®è€æ°ã®ã³ããŒãéä¿¡ããå¿ èŠãããç¶æ³ãæ³åããŠã¿ãŠãã ããã ããã¯ãåæ£ã·ã¹ãã ã«ãããå žåçãªç¶æ³ã§ãã ããã€ãã®ããŒã¿èŠçŽ ã1ã€ã®ãã±ããã«çµåããããšã«ããããã±ããã¯1ã¹ãããã§ãããã¯ãŒã¯ãä»ããŠéä¿¡ããã転éãå€§å¹ ã«é«éåã§ããŸãã ããã±ãŒãžã¯ããããšåŒã°ãããããååã¯ãããã§ãã
éåžžãæã ã¯æ瀺çã«ç¹å¥ãªã¯ã©ã¹ã®ãšã³ãããŒãïŒå°çïŒã®ããŒã¿èŠçŽ ãå ¥ããŠãããã±ãŒãžãäœæããå¿ èŠããããŸãã ããã€ãã®ã·ãªã¢ã©ã€ã¶ãå€§å¹ ã«éçºãç°¡çŽ åãããšã³ãããŒãã®æé€ãå¯èœã«ããŸãã
ãã¹ãããã»ã¹
ããã§ã¯ãã¹ãŠãç°¡åã§ãã 1ã€ã®ãã¹ããµã€ã¯ã«ã§ã1ã€ã®ãªããžã§ã¯ããŸãã¯ãããã®å Žåã¯å€æ°ã®ãªããžã§ã¯ããã·ãªã¢ã«åããããã«ãããéã·ãªã¢ã«åããŸãã æçµãœãŒã¹ãªããžã§ã¯ããšãã°ãåãé€ãããã«æ¯èŒã æ¯èŒã¯ãç¹å®ã®éã§ãé«éã«å®è¡ãããŸãã å®å šãªæ¯èŒã¯è¡ããŸããããå®å šãªæ¯èŒã®ããã®ãã¹ãŠã®ã€ã³ã¿ãŒãã§ã€ã¹ãå©çšå¯èœã§ãã
ããã€ãã®ãã¹ããµã€ã¯ã«ã1åã®å®è¡ã«ãŸãšããããæåã«ãã¹ãããŒã¿ãçæãããŸãã
ããã€ãã®ãã¹ããé çªã«çµã¿åããããæåã®ãã¹ãã¯ãŠã©ãŒã ã¢ãããã¹ãã§ãã ãã®ãã¹ãã¯éåžžââ1ãµã€ã¯ã«ã§æ§æããããã®ç®çã¯ãã®ã·ãªã¢ã©ã€ã¶ãŒã«å¿ èŠãªãã¹ãŠã®ãªããžã§ã¯ããåæåããããšã§ãã
äžéšã®ã·ãªã¢ã©ã€ã¶ãŒã¯ããã«åæåãããŸããããã£ãããšã·ãªã¢ã«åãããéããŸãåæ§ã§ãã ã·ãªã¢ã©ã€ã¶ã1å䜿çšããå¿ èŠãããå Žåã¯ããŠã©ãŒã ã¢ãããã¹ãã®çµæãç¡èŠããªãã§ãã ããããããäž»èŠãªãã¹ãã§ããããã§ãã
ç§ãã¡ã¯éåžžãæåã«åäžã®ãªããžã§ã¯ãããã®åŸããªããžã§ã¯ãã®ã³ã¬ã¯ã·ã§ã³ããã¹ãããŸããã ãããå€æããããã«ãã·ãªã¢ã©ã€ã¶ã¯ãã³ã¬ã¯ã·ã§ã³ã§åäœããããã«æé©åããããšãã§ããŸãã ãã®åŸã圌ãã¯ãªãŒããŒã§å€éšããæãåºãããšãã§ããŸãã
ä»»æã®ããŒã¿ã¯ãéåžžããã¯ãã³ã¬ã¯ã·ã§ã³ã¯ããšã©ãŒã®ãžã§ãã·ãªã¢ã©ã€ã¶ãŸãã¯çµæã®æ¥æ¿ãªæžéã«ã€ãªããå¯èœæ§ããããéåžžã«å€§ãããªãå¯èœæ§ããããŸãã ããã€ãã®ã±ãŒã¹ã§ã¯ãäžå¿«ãªã·ãªã¢ã©ã€ã¶ã¯ãåã«ã·ã¹ãã ãåããŸããã
è©Šéšçµæ
ç§ãã¡ã¯ããã¹ãã§ãã¹ãŠã®ãã¹ãã®åèšã®ã¿ãåè³è ããªã¹ãã¢ããã åã ã®ãã¹ãã®åè ã¯ã ãµã€ãã®ãã¹ãçµæããŒãžã«éåžžã«ããè¡šãããŠããŸã ã ããã§ã¯ãããã€ãã®çµè«ãåºããŸãã ç§ãã¡ã¯ç©¶æ¥µã®çå®ã䞻匵ãããæ°åã«ã€ããŠã®ã¿ã³ã¡ã³ããããšããäºå®ã«ããªãã®æ³šæãéäžããŸãã æ°åã¯ãä»åŸã®ãã¹ãã®ã¢ããããŒãã§åçã«å€åããããšãã§ããŸãã
å žåçãªäºº
ãã¹ãçµæ ã
ãã®ãã¹ãã§ã¯ãç§ã¯è©³çŽ°ã«èª¬æããŸãã ãã®ä»ã®æ€æ» - å¯äžã®ã°ã©ã³ãã€ã³ã
ãã¹ãŠã®ãã¹ã
ããProtobufãNFXã¹ãªã ãMsgPackãNetSerializerïŒã»ãŒãã¹ãŠã®ãã¹ãã¯ãåãæéã®ã·ãªã¢ã©ã€ã¶ãæããã«ããŸããã ãŠã©ãŒã ã¢ããã®ãã¹ãã¯ãéåžžã«å€§ããªé床ã®åºãããäžããŠããŸãã Microsoft BinaryFormatterã¯ãã³ã¬ã¯ã·ã§ã³ã§åªããããã±ãŒãžã³ã°ã瀺ãã1ã€ã®ãµã€ãã§ææªã®ããã±ãŒãžã³ã°ã瀺ããŸããã æ®å¿µãªãããJson.Netã¯ã©ã®ãã¹ãã§ããªãŒããç ŽããŸããã§ããã
ãŠã©ãŒã ã¢ãããã¹ãïŒãŠã©ãŒã ã¢ããïŒ
ã¹ããŒã
é©ãã¹ãé床ã®åºããããããŸãã NFX Slimã¯äœåãã®æäœãå®è¡ããŸããããšãã°ãJilã¯1ç§éã«1ã€ã®æäœã®ã¿ãå®è¡ããŸãã ã·ãªã¢ã©ã€ã¶ã®ãã«ã¯ã¯ãæ¯ç§äžã€ãŸãã¯äºã€ããŒã¹æäœãæã«ã¯æ°åãè¡ããŸãã ããã«é©ãã¹ãããšã«ãNFX Slimã¯çŽ4äž5å人ãçç£ããŠããŸãïŒ ç§ãããã®ãã·ãªã¢ã©ã€ãºã ããããæã ã¯ãæçœãªçç±ã®ããã«ãå¯äžã®æãé ãæäœãèããŸãã
梱å
ã¹ãã¬ããã¯ãé床ã»ã©å€§ãããããŸããã ããã€ãã®åè³è ã¯ã»ãŒåãçµæã瀺ããJSONã·ãªã¢ã©ã€ã¶ãŒã¯èªç¶ã«åæ§ã®çµæã瀺ããŸãã æã ã¯ãå ·äœçJSONã·ãªã¢ã©ã€ã¶ïŒNFX JSONïŒã®ããããã®2ã€ã®ãã¹ããè¡ããŸããã ãã¹ãã®äžã€ã¯ããã¹ãŠã®ã€ã³ãã³ããšæ¹è¡ãããã³æžåŒèšå®ã®ãªãä»ã®ãã¹ãåºåãJSONã§ãçŽ æµãªåœ¢åŒã®JSONããã¹ããæäŸããŸãã ã芧ã®ãšãããäž¡æ¹ã®ã±ãŒã¹ã®ãµã€ãºã¯äºãã«å€§ããç°ãªããŸãã
ãã£ã³ãã«å ã®ã·ãªã¢ã©ã€ãºãããããŒã¿ããã©ãŒãããããããšã¯ãããŸãã ïŒãã®çµæã¯ãããäžåºŠãããç¥ãããã«ãŒã«ã確èªããŸãïŒ å¯äžã®ãã¬ãŒã³ããŒã·ã§ã³ãšæ±ºããŠã®æžåŒè¡ã-転éããŒã¿ã«ã
ãããåŠç
è©Šéšçµæ
ProtoBufãMicrosoft BinaryFormatterãããã³NFX Slimã®ã¿ãã·ãªã¢ã«åãã·ãªã¢ã«åã§ããŸãã ãã®å Žåã¯ãã¹ãªã ã¯ãç¹æ®ãªãããåŠçã¢ãŒããæã£ãŠããŸãã
ããã§ã¯ãããŸããŸãªçš®é¡ã®ããŒã¿ã®ã¬ãŒãã®å€§ããªå€åããããŸãã åè ã¯ããã¬ãŒãã£ã³ã°ããã³EDIã¯ã©ã¹ã®ProtoBufãããRPCããã³ããŒãœãã«ã¯ã©ã¹ã®SlimãŸã§ããŸããŸã§ãã åæã«ãProtoBufã¯ããªããžã§ã¯ã[]ãã£ãŒã«ããæ€åºãããRPCã¯ã©ã¹ãã·ãªã¢ã«åã§ããŸããã§ããã ç§ãã¡ã¯ããã€ã¯ããœããã«BinaryFormatterãšNFXã¹ãªã ã«æåãããã®è©Šéšã«åæ ŒããããšããŸãšããããšãã§ããŸãã ãã€ã¯ããœããã«BinaryFormatterã¯ããã€ãã®ããã«ã圌ã¯ãšã©ãŒãªãã§åããŠãããšããäºå®ãæãªããªãããã±ãŒãžã«ãŠã©ãŒã ã¢ãããšãã¹ãã®äžè²«è²§ããçµæã«å€§ããªçµæã瀺ããŸããã
ãªããžã§ã¯ãã°ã©ã
ãã¹ãçµæ ã
ãã®ãã¹ãã¯ãã·ãªã¢ã«åãæãé£ããããšãå€æããŸããã å€ãã®ã·ãªã¢ã©ã€ã¶ã¯ãããã«åæ ŒããŠããŸããã å€ãã¯åæ Œããããããã¯æãããã¹ããŒããšããã±ãŒãžã³ã°ã瀺ããŸããã ObjectGraphè©Šéšã§ãžã«ã¯ãäŸãã°ïŒäŒè°ïŒ1ã åå è ïŒ250; ã€ãã³ãïŒ2.6 MWã§10ããã¯ãããããŒã¿ãããã³ãã100å¹³æ¹ã¡ãŒãã«ããå°ãã§ããã¯ãããããŒã¿ã®æå°è ãã¡ã¯ãããã26åå°ãªãã¡ã¢ãªãè²»ãããŠããŸããã
ãã®ãã¹ãã§ã¯ãæã ã¯éåžžã«å€§ããªããŒãžã³ã§åã£ãŠããå°æ°ã®æå°è ãã¡ãèŠãããšãã§ããŸãã ãããã¯ãProtoBufãšNFX Slimã§ãã ãã€ã¯ããœããã«BinaryFormatterã¯ãçªç¶ã®å è£ ã®çšåºŠã®æå°è ãã¡ã®éã§ç»å ŽããŸããã
EDI X12
ãã¹ãçµæ ã
èå³æ·±ãã®ã¯ãé©åã«ä»äºãçµããããã®ããŒã¿ããã·ãªã¢ã©ã€ã¶ã®å®¹ç©ã®å¢å ãšæ¹æ³ã§ããã
ãŠã©ãŒã ã¢ãããã¹ãã§ã¯ãã€ãã®ããã«ããªãŒããŒã¯NFX Slimã§ãã
ããã±ãŒãžã³ã°ã®ãªãŒããŒã§ããProtoBufãMsgPackãNetSerializerãNFX Slimã¯ããã®ãããªå Žåã«ç¹å¥ãªããã±ãŒãžã³ã°æ¹æ³ã䜿çšããŠããããããã®æ¹æ³ã¯éåžžã«ããŸãæ©èœããŠããããã§ãã
EDIããã¥ã¡ã³ãã®ã·ãªã¢ã«åãšåŠçã«ãã䜿çšãããXMLããXmlSerializerã®æ åœè ã«ãã·ãªã¢ã«åãããããŒã¿ã«8ã9åã®ã¹ããŒã¹ã䜿çšããŠãããã±ãŒãžã³ã°ã®çµæãããããããããšããäºå®ã«æ³šç®ããŸãã
ã·ãªã¢ã©ã€ã¶ãéžæããŸã
ãªãç§ãã¡ã¯ãã·ãªã¢ã©ã€ã¶ãéžæããå¿ èŠããããŸããïŒ .NET Frameworkã®ã·ãªã¢ã©ã€ã¶ãŒã䜿çšããŠååŸã§ããªãã®ã¯ãªãã§ããïŒ ïŒMicrosoftã¯ãBondãAvroãªã©ãæè¿ç»å Žããããã€ãã®ã·ãªã¢ã©ã€ã¶ãŒãæäŸããŠããŸããïŒ
ã·ãªã¢ã©ã€ã¶ã¯ãåæ£ã·ã¹ãã ã®ãŸããŸãéèŠãªèŠçŽ ã«ãªã£ãŠããŠãããšããäºå®ã äœéã®ã·ãªã¢ã©ã€ã¶ãŒã¯æ倧ã®ããã©ãŒãã³ã¹ã劚ããå¯èœæ§ããããé«éã®ã·ãªã¢ã©ã€ã¶ãŒã¯ç«¶åä»ç€Ÿãããã·ã¹ãã ãæ¹åããå¯èœæ§ããããŸãã .NETã®ããã®æ°ããã·ãªã¢ã©ã€ã¶ã¯ä»ããããŸããæåžžã§ç»å ŽããŸãã ãããã®ããããã¯ãæéãšããŠããŠã¯ããããŠããŸãã 蚌æ ãšããŠäœæè ã¯ãã¹ãããªãŒãããŠããŸãã
æã ã¯ç¬èªã®ãã¹ãã·ã¹ãã ãéçºããç¬ç«ããç 究ãè¡ã£ãŠããŸããã 次ã«ãæ å ±ã«åºã¥ããŠã·ãªã¢ã©ã€ã¶ãéžæããã®ã«åœ¹ç«ã€åºæºã«ã€ããŠèª¬æããŸãã éžæã®åºæºã¯ããã¹ãã®çµæã«åºã¥ããŠããŸãã
ä¿¡é Œæ§ã®ã·ãªã¢ã©ã€ãº
ç§ãã¡ã¯å€ãã®ã·ãªã¢ã©ã€ã¶ã¯ãåºæ¬çãªãã¹ãã«åæ ŒããŠããªãããšãèŠã€ããããã«é©ããŸããã æé«ã§ãæã ã¯ææªã®å ŽåãããŒã¿ã¯ç¡æéã«ä»»æã®èŠåãŸãã¯Windowsã®ãã³ã°ããã«å€±ãããããã°ã©ã ã«ãšã©ãŒãçºçããŸãã äžéã±ãŒã¹å ã®ãªããžã§ã¯ããæªãã
æ éã«æã ã®ãã¹ãã®çµæãèªã¿åããŸãã ãããã®çµæã¯ãããŒã¿ã«å€§ããäŸåããŠããŸãã ããŒã¿ã®æ§é ãåçŽãªå Žåãã»ãšãã©ãã¹ãŠã®ã·ãªã¢ã©ã€ã¶ãŒãä»äºãããããšãã§ããŸãã ããŒã¿ã®ãµã€ãºãè€éãŸãã¯å€§ããå Žåãæ²ããããªãããã¯ããŸããããªãã§ãã
é床ãšããŒã¿ã®å å¡«å¯åºŠã¯ã倱ãããããŒã¿ãã·ã¹ãã ã®å¿çåæ¢ã®ããã«èšãèš³ããããšã¯ã»ãšãã©ãããŸããã®ã§ãç§ã¯ãä¿¡é Œæ§ã®å¿å
確ãã«ãæãä¿¡é Œæ§ã®é«ãã·ãªã¢ã©ã€ã¶ã¯ãããã€ã¯ããœããã«BinaryFormatter ã 圌ã¯æéã®äžäººã§ã¯ãããŸããããããã«ã¯éèŠãªçç±ããããŸãã 圌ã¯ããšã©ãŒãªãã§ã»ãšãã©ãã¹ãŠãã·ãªã¢ã©ã€ãºããŸãã
ããªãã¯ããŒã¿ã®åœ¢åŒãéžæãããã©ããïŒ
ããšãã°ãXML圢åŒã®ããŒãããŒããããŒã¿ãååŸããããªããXMLã§äœæ¥ããå¿ èŠããããŸãã ããªãã¯ãã®ãããªç¶æ³ãå€æŽããæ¹æ³ããããŸããã ãã®å Žåãããªãã®éžæè¢ã¯éãããXmlSerializerãJson.NetãããŠããŸãã
ããªããä»ã®äººã®ã·ã¹ãã ã䜿çšããŠã·ã¹ãã ãçµ±åããå Žåã¯ã次ã®éžæãããªãã®ããã«äœããããããªãã¯ãããã2ã€ã®æšæºçãªåœ¢åŒã®ããããã䜿çšããå¿ èŠããããŸãïŒXMLãJSONãã ãŸããªã±ãŒã¹ã§ã¯ãCSV圢åŒãŸãã¯ç¹å®ã®ã·ã¹ãã ã®ãã©ãŒããããšä»äºãããªããã°ãªããŸããã éå»å幎ã®ã·ã¹ãã ãšçµ±åãããšãã«æãé »ç¹ã«èµ·ãããŸãã
ããªãã¯ããã®ãããªintåãããã«ãããŒã«ãªã©ã®åçŽãª.NETã®åããã·ãªã¢ã©ã€ãºããå¿ èŠãããå Žåã¯ãååãªåºæ¬ã®ToStringïŒïŒé¢æ°ãæã£ãŠããŸãã
ã·ãªã¢ã©ã€ã¶ã¯ãJSON圢åŒã§ã®äœæ¥ãããäžè¬çã§ãã JSONã¯XMLãããã¯ããã«åçŽã§ãããã»ãšãã©ã®å Žåãããã¯å©ç¹ã§ãã
å€ãã®ã·ãªã¢ã©ã€ã¶ã¯ãç¬èªã®ãã€ããªåœ¢åŒã§ããŒã¿ãããã¯ã JSON圢åŒã¯ãéåžžãã¯ããã«ã³ã³ãã¯ããªXMLãè¶ ããŠããŸãã ãã€ããªãã©ãŒãããã¯éåžžãJSONãããã³ã³ãã¯ãã§ãã
ããªãèªèº«ãããŒã¿åœ¢åŒãéžæã§ããå Žåããã€ããªã»ãã©ãŒãããã¯ãæè¯ã®éžæã§ããå¯èœæ§ãé«ãã§ãã ãã ãããã®å Žåãã·ãªã¢ã«åãšéã·ãªã¢ã«åã®äž¡æ¹ã«åãã·ãªã¢ã©ã€ã¶ãŒã䜿çšããå¿ èŠãããããšã«æ³šæããŠãã ããã çŸæç¹ã§ã¯ããã¹ãŠã®ãã€ããªåœ¢åŒã¯äžæã§ãããããããæšæºåãããŠããŸããã
ããŒã¿ãããã³ã°å¯åºŠ
ããã«éèŠãªã®ã¯ãã·ãªã¢ã«åãšéã·ãªã¢ã«åã®é床ãŸãã¯ããŒã¿ã®ãããã³ã°å¯åºŠã§ããïŒ
éåžžãã·ãªã¢ã«åãããããŒã¿ã®ãµã€ãºã¯ãã·ãªã¢ã«å-éã·ãªã¢ã«åããã»ã¹ã®é床ãããéèŠã§ãã ããã¯ãããã»ããµã®é床ïŒã·ãªã¢ã«åãšéã·ãªã¢ã«åã決å®ããé床ïŒããããã¯ãŒã¯äžã®ããŒã¿ã¬ãŒããããã¯ããã«é«ãããã§ããããã¯éåžžãéä¿¡ããŒã¿ã®ãµã€ãºã«çŽæ¥é¢ä¿ããŸãã ããŒã¿ãµã€ãºã10ïŒ æžå°ãããšãããŒã¿è»¢éã10ïŒ å¢å ããã·ãªã¢ã«åãšéã·ãªã¢ã«åã®é床ã2åã«å¢å ããŠã1ïŒ ããå¢å ããŸããã
ããªãã¯èªåã®ã·ã¹ãã ã®æé«ã®ããã©ãŒãã³ã¹ãçµãåºãããããšããŠããŸããïŒ ãããããããªãéçºè ã®çç£æ§ã«ãšã£ãŠããéèŠïŒ
äŸãã°ãåµåžãã¹ãªãããè¹é·ããããªã©ã®ã·ãªã¢ã©ã€ã¶ãåç §ããŠãã ããã ããªãã ãã®ä»»æã®ã¯ã©ã¹ãåããçŽååããŸããã ããªãã¯ãããã®ã¯ã©ã¹ãèšè¿°ããŠããªãããã«ãç¹å¥ãªIDLèšèªã䜿çšããå¿ èŠããããŸãã éåžžã¯ããŠãŒãã£ãªãã£ã¯ãã¯ã©ã¹èªäœã®ã¯ã©ã¹å®çŸ©ãçæããã®ã«åœ¹ç«ã¡ãŸãã ããããããšãããã§ãã£ãŠãããã®èšèªã«å¯ŸåŠããéçºèªäœããæéãåãé¢ãå¿ èŠããããŸãã
ä»ã®ã·ãªã¢ã©ã€ã¶ã¯ãäŸãã°ã ã¹ãªã NFXã®ã¯ãäœãããªããå¿ èŠãšããŸããã ããªãã ãã®ä»»æã®ã¯ã©ã¹ãã·ãªã¢ã«åã äžéã®å ŽåãçŽååå¯èœãªã¯ã©ã¹ã¯å±æ§ã§è£ 食ããå¿ èŠããããŸãã ãã£ãšããªãã¯ãå±æ§[Serializableã]ã«ç²ŸéããŠããŸãã
ãããéèŠãªã®ã§ããïŒ ã¯ããããã¯éèŠãããããŸããã ç¹ã«ãã¯ã©ã¹ã®æ§é ãèªæã§ãªãå Žåã ããšãã°ããã¹ãã·ã¹ãã ã«ã¯ããã¹ããããæ°åã®ã¯ã©ã¹ãšæ°çŸã®ãã£ãŒã«ãã§æ§æãããEDIãã¹ãã¯ã©ã¹ããããŸãã ããããã¹ãŠã®ã¯ã©ã¹ãšãã£ãŒã«ãã«å±æ§ãè¿œå ããã®ã¯ãé¢åã§é·ãä»äºã§ããã
ããªãã¯ã©ã€ãã©ãªãããªããã¢ã¯ã»ã¹ããããšã¯ã§ããŸãããã®ã³ãŒãããã¯ã©ã¹ãã·ãªã¢ã«åãããšãããããããã¯éèŠã§ãã ã³ãŒããååŸããŠããã«å±æ§ãè¿œå ããããšã¯ã§ããŸãããã³ãŒãã¯äœ¿çšã§ããŸããã å€ãã®å Žåããã®ç¶æ³ãåé¿ããããã«ãããã°ã©ããŒã¯ããããDTOïŒ ããŒã¿è»¢éãªããžã§ã¯ã ïŒã䜿çšããŸãã ãããã®äœ¿çšã¯ãããã°ã©ã ã®è€éããšéçºã®ç§ã®éãã«æºã¡ãŠããŸãã 代ããã«ãããžãã¹ããžãã¯ã«åãçµãã§ãããªãã¯ãããšã¯é¢ä¿ã®ãªãã³ãŒããèšè¿°ããå¿ èŠããããŸãã
ããªãã¯ãã·ãªã¢ã©ã€ãºãããšãã·ãªã¢ã©ã€ãºããã·ãªã¢ã©ã€ã¶ãéžæãããããŸãã¯ãããã®æäœã®äžã€ã ãïŒ
ã·ã¹ãã ãåä¿¡åŽãŸãã¯éä¿¡åŽã®ã¿ã§ããå Žåã¯ãåæããå¿ èŠããããŸããããã¯ãäž¡æ¹ã®æäœãæ åœããå Žåãšã¯ç°ãªããŸãã
ããªãã®ããŒã¿åéã§ã¯ãããŸããïŒ
ã·ãªã¢ã©ã€ã¶ã¯ãªããžã§ã¯ãã®ã³ã¬ã¯ã·ã§ã³ã§åäœããããã«æé©åããããšãã§ããŸãã ä»ã®ã·ãªã¢ã©ã€ã¶ãŒã¯ãã³ã¬ã¯ã·ã§ã³ã決ããŠåºå¥ããªããããé床ãšããã±ãŒãžã³ã°ãã¯ããã«æªããªããŸãã
ããªãã®ããŒã¿ã®ãµã€ãºã¯ïŒ
ããŒã¿ã¯éåžžã«å€§ãããªãå¯èœæ§ããããã·ãªã¢ã©ã€ã¶ã®æ¥æ¿ãªé床äœäžãã·ãªã¢ã«åãšã©ãŒãåŒãèµ·ããå¯èœæ§ããããŸãã ã·ãªã¢ã©ã€ã¶ã¯ãåçŽã«ã·ã¹ãã ããã³ã°ã¢ããããããšãã§ããŸãã
ã¡ã¢ãªå ã®å€§èŠæš¡ãªããŒã¿ã¯ãé çªã«ãé·ãã¹ãã©ã€ãããã°ã©ã ãåŒãèµ·ããå¯èœæ§ããããã¬ããŒãžã³ã¬ã¯ã·ã§ã³ãã圱é¿ãäžããããšãã§ããŸãã
ããªãã¯éåžžã«çããäœããã·ãªã¢ã«åããå¿ èŠããããŸããïŒ
ãããŠãããã§ããªãã¯ãã®ã¿ã¹ã¯ãæ£ç¢ºã«å°éãšããã·ãªã¢ã©ã€ã¶ãŒã«ãã£ãŠå©ããããŸãã ããšãã°ã LinqåŒãåŠçããã·ãªã¢ã©ã€ã¶ãŒ ã
ããªãã¯è¶ ã¹ãŒããŒããã©ãŒãã³ã¹ãå¿ èŠã§ããïŒ
ãããŠãæè¯ã®ãªãã·ã§ã³ã¯ãããªãèªèº«ã®å°éæ§ã®é«ãã·ãªã¢ã©ã€ã¶ãæžãããšã§ãããã
ããªãããããè¡ãã«ã¯ããããªãå Žåã¯ãå¥ã®ã·ãªã¢ã©ã€ã¶ã§äœ¿çšãããè¿œå ã®æ¹æ³ã«æ³šæãæããŸãã äŸãã°ã ãããåŠçé床ãé«ããããã®åªããæ¹æ³ã§ãã æ®å¿µãªããããããæ°ã·ãªã¢ã©ã€ã¶ã¯ãä»»æã®è¿œå ã®ã³ãŒãã£ã³ã°ãªãã§ããã䜿çšããããšãã§ããŸãã
䞊åã·ãªã¢ã«å㯠ãé«éãéæããããã®åªããæ¹æ³ã§ããããŸãã ããªãã¯ããã䜿çšããŠããå Žåã¯ã ã¹ã¬ããã»ãŒãã·ãªã¢ã©ã€ã¶ããªãã«ãšã£ãŠéèŠã§ãã