æ¬çªç°å¢ã«åºè·ãããã³ãŒãã¯ãã¹ãŠãæéçå¶çŽãäžå®å šãªã³ã³ããã¹ããäžå®å šãªããã¥ã¡ã³ãããããŠå€§èŠæš¡ã·ã¹ãã ããªã¢ã«ã¿ã€ã ã§çè§£ããããšã®é£ãããšãã£ãå¶çŽã®äžã§ã人éãèšè¿°ãããã®ã§ããéçã³ãŒãåæãšã¯ããœãŒã¹ã³ãŒããå®è¡ããã«äœç³»çã«æ€æ»ããææ³ã§ãããèªååããŒã«ã䜿çšããŠã人éã®ã¬ãã¥ãŒã§ã¯èŠèœãšãããã¡ãªã»ãã¥ãªãã£è匱æ§ãè«çãšã©ãŒãã³ãŒãã£ã³ã°èŠçŽéåããããã³ãŒããå°æ¥ã®ä¿å®äžã®åé¡ãç€ºãæ§é ãã¿ãŒã³ãªã©ãæ€åºããŸããããã¯ããã¹ããèšèšã¬ãã¥ãŒããããã¯ãšã³ãžãã¢ãªã³ã°å€æã«åã£ãŠä»£ãããã®ã§ã¯ãããŸããããã¹ãŠã®ãã¡ã€ã«ããã¹ãŠã®ã³ãããããã¹ãŠã®ãã«ãã«å¯ŸããŠå®è¡ãããèªååããã粟æ»ã¬ã€ã€ãŒã§ãããæåããã»ã¹ã§ã¯å°åºå®çŸã§ããªãé床ãšäžè²«æ§ãå®çŸããŸãã
å®çŸ©ã¯äžèŠåçŽããã«èãããŸãããããå®éã«ã¯ãéçè§£æã¯å¹ åºãæè¡ãç¶²çŸ ããæ·±ãã粟床ãç°ãªããéçºã©ã€ããµã€ã¯ã«ã®ããŸããŸãªæ®µéã«é©çšãããããŒã«ã«ãã£ãŠæ€åºã§ããå 容ã倧ããç°ãªããŸããæžåŒã«ãŒã«ãé©çšãããªã³ã¿ãŒããæè¡çã«ã¯éçè§£æãå®è¡ããŠããŸããå®å šãªåŒã³åºãã°ã©ããæ§ç¯ããæ±æãããããŒã¿ãã»ãã¥ãªãã£ã·ã³ã¯ãŸã§è¿œè·¡ããå°éäžèœãªåå²ãç¹å®ããå€èšèªãšã³ã¿ãŒãã©ã€ãºã·ã¹ãã å šäœã§ãã£ãŒã«ãã¬ãã«ã®äŸåé¢ä¿ããããã³ã°ããããŒã«ãéçè§£æãå®è¡ããŠããŸãããããã2ã€ã®ããŒã«ã¯æè¡çãªæ·±ããšå®çšæ§ã«ãããŠå šãç°ãªãã¬ãã«ã§åäœããŸãããã®å¹ åºãç¯å²ãçè§£ããããšããéçè§£æã广çã«éžæã䜿çšããããã®åææ¡ä»¶ãšãªããŸãã
éçè§£æãšã¯äœãããããŠéçè§£æã§ã¯ãªããã®ãšã¯äœã
éçè§£æã¯ããœãŒã¹ã³ãŒããæ§é åãããææç©ãšããŠåæããããã°ã©ãã³ã°èšèªã®ææ³ãšæå³è«ãçšããŠã³ãŒãã®åäœã¢ãã«ãæ§ç¯ãããã®ã¢ãã«ããé¢å¿ã®ããç¹æ§ãç §äŒããŸããè§£æã¯ã³ãŒããå®è¡ããã«å®è¡ãããŸããå®è¡ç°å¢ã¯äžèŠã§ããã¹ãå ¥åãå¿ èŠãªããå®è¡ãã¬ãŒã¹ãèšé²ãããŸããããœãŒã¹ãã¡ã€ã«ãå ¥åãšãªããè§£æçµæã¯ã³ãŒãã®æ§é ãå 容ãããã³é¢ä¿æ§ããå®å šã«å°ãåºãããŸãã
ãã®éå®è¡æ§ã¯ãéçè§£æã®äŸ¡å€ã®æºæ³ã§ãããšåæã«ããã®éçã®æºæ³ã§ããããŸããéçè§£æã¯ã³ãŒããå®è¡ããªãããããã¹ãã§ã¯æ±ºããŠå°éããªããã¹ïŒãã£ãã«å®è¡ãããªããšã©ãŒãã³ãã©ãç¹å®ã®ããŒã¿æ§æã«ãã£ãŠã®ã¿ã¢ã¯ãã£ãåãããæ¡ä»¶åå²ãäœå¹Žããã¹ããããŠããªãã¬ã¬ã·ãŒã³ãŒããã¹ãªã©ïŒãå«ããããããã³ãŒããã¹ãç¶²çŸ ã§ããŸããããããã³ãŒããå®è¡ããªããããå®è¡æã®åäœã芳å¯ããããšããå®è¡æã«ã®ã¿æ±ºå®ãããå€ã«ã€ããŠæšè«ããããšãã§ãããã³ãŒãã®åäœãã¢ã¯ã»ã¹ã§ããªãå®è¡ã³ã³ããã¹ãã«äŸåããå Žåã¯è¿äŒŒå€ã䜿çšããå¿ èŠããããŸãã
éçè§£æã®å®éçãªå©ç¹ã¯ãæ§é äžã®åé¡ãããªã·ãŒéåãæ¢ç¥ã®è匱æ§ã¯ã©ã¹ã«é¢é£ãããã¿ãŒã³ãã³ãŒãã®ããã¹ããšæ§é ã«è¡šçŸãããäŸåé¢ä¿ãªã©ãç¹å®ã®ã䟡å€ããããæç¢ºã«å®çŸ©ãããåé¡ã¯ã©ã¹ãæ€åºã§ããç¹ã§ããéçè§£æã¯ãç¹å®ã®å®è¡ææ¡ä»¶äžã§ã®ã¿çºçããåé¡ãåæå®è¡ã«ãã£ãŠã®ã¿çºçããç«¶åç¶æ ãã³ãŒãã®åäœã«é¢ããæå³è«çç¥èã«äŸåããããžãã¹ããžãã¯ãšã©ãŒãªã©ã¯æ€åºã§ããŸããããããã®å¶éã¯éçè§£æã®äŸ¡å€ãæãªããã®ã§ã¯ãªãããã®é©çšç¯å²ãæç¢ºã«ãããã®ã§ããé©çšç¯å²ãçè§£ããããšã§ãããŒã ã¯éçè§£æããã¹ããã³ãŒãã¬ãã¥ãŒãå®è¡æç£èŠã®ä»£æ¿ãšããŠæ±ãã®ã§ã¯ãªããããããšé©åã«çµ±åã§ããããã«ãªããŸãã
éçè§£æãšåçè§£æ
åçè§£æã¯ãã³ãŒããå®è¡ããŠè©äŸ¡ããŸãããã®ããŒã«ã¯ãã¡ã¢ãªã®å²ãåœãŠãšè§£æŸãã³ãŒããã¹ããšã®å®è¡æéãç¹å®ã®ãã€ã³ãã§ã®å€æ°å€ã䞊è¡åŠçãã¿ãŒã³ãã·ã¹ãã ã³ãŒã«ãªã©ãå®è¡æã®åäœãç£èŠããŸããåçè§£æã¯ãå®è¡äžã«ã®ã¿é¡åšåããåé¡ãäŸãã°ãé·æéã®å®è¡ã§èç©ãããã¡ã¢ãªãªãŒã¯ã䞊è¡ããŠå®è¡ãããã¹ã¬ããéã®ç«¶åç¶æ ãç¹å®ã®è² è·ãã¿ãŒã³äžã§ã®ããã©ãŒãã³ã¹äœäžãäºæããªãå ¥åå€ã«ãã£ãŠåŒãèµ·ããããã¯ã©ãã·ã¥ãªã©ãæ€åºããŸãã
ãã®2ã€ã®ã¢ãããŒãã¯ãç«¶åãããã®ã§ã¯ãªãããããè£å®çãªé¢ä¿ã«ããã以äžã®æ¯èŒè¡šã¯ãããããã®å®éçãªé©çšç¯å²ã瀺ããŠããã
| ãããã㣠| éçåæ | åçåæ |
|---|---|---|
| å®è¡ãå¿ èŠã§ã | ããã | ã¯ã |
| ã³ãŒããã¹ã®ã«ãã¬ããž | æªå®æœã®çµè·¯ãå«ãããã¹ãŠã®çµè·¯ | å®è¡ããããã¹ã®ã¿ |
| å®è¡æã¡ã¢ãªãšã©ãŒãæ€åºããŸã | éšåçã«ïŒãã¿ãŒã³ã®ã¿ïŒ | ã¯ããçŽæ¥ |
| ã³ãŒãæ§é ã«ãããã»ãã¥ãªãã£è匱æ§ãçºèŠãã | ã¯ã | éšåçã« |
| 䞊è¡åŠçã®ãã°ãçºèŠãã | éšåçã«ïŒãã¿ãŒã³ã®ã¿ïŒ | ã¯ããçŽæ¥ |
| äžå®å šãªã³ãŒãã§åäœãã | ã¯ã | ããã |
| 1åã®åŠçã§ã³ãŒãããŒã¹å šäœã«æ¡åŒµå¯èœ | ã¯ã | ãã¹ãã®ç¶²çŸ çã«ãããŸã |
| ãããã³ãŒããæ€åºããŸã | ã¯ã | ããã |
| ã³ã³ããŒãã³ãéã®äŸåé¢ä¿ãç¹å®ããŸã | ã¯ã | éšåçã« |
æã广çãªå質ä¿èšŒããã°ã©ã ã¯ãäž¡æ¹ã®ææ³ã掻çšããŸããéçè§£æã¯ãã³ãŒãå®è¡åã«æ§é äžã®åé¡ãããªã·ãŒéåãæ©æãã€å æ¬çã«æ€åºããŸããåçè§£æã¯ãå®è¡æã®åäœãã©ã³ã¿ã€ã ã§æ€èšŒããŸããã©ã¡ããäžæ¹ã ãã§ã¯ãå質ãšã»ãã¥ãªãã£ã®ããããåŽé¢ãç¶²çŸ ããããšã¯ã§ããŸããã
éçè§£æã¯éçºã©ã€ããµã€ã¯ã«ã®ã©ã®æ®µéã«ããã®ã
éçè§£æã¯ãéçºã©ã€ããµã€ã¯ã«ã®å¯èœãªéãæ©ãæ®µéã§çµã¿èŸŒãã¹ãã§ããéçºè ãã³ãŒããæžãéã®IDEå ãã³ãŒããããŒãžã§ã³ç®¡çã«å ¥ãåã«å®è¡ãããããªã³ãããããã¯ããããŠããŒãžåã«ãã¹ãŠã®å€æŽãæ€èšŒããCIãã€ãã©ã€ã³ãªã©ã§ãããã®é 眮ããããéçè§£æãæ€åºã¡ã«ããºã ã§ã¯ãªãäºé²ã¡ã«ããºã ã«ããçç±ã§ããIDEå ã§çºèŠãããåé¡ã¯æ°åã§ä¿®æ£ã§ããŸãããããªã³ãããã§çºèŠãããåé¡ã¯æ°æéãããããããã€åŸã«çºèŠãããåé¡ã¯æéãšãªã¹ã¯ã®äž¡é¢ã§ããã«å€§ããªã³ã¹ããããããŸãã
ãã®ååã¯ãã·ããã¬ããããšåŒã°ããããšããããéçºããã»ã¹ã«ãããŠå質ãã§ãã¯ãããæ©ãæ®µéã§ãäžè¬çãªå·Šããå³ãžã®SDLCã¿ã€ã ã©ã€ã³ã®å·ŠåŽã«ç§»åãããããšãæå³ããŸããéçè§£æã¯ãã»ãã¥ãªãã£ããã³å質ãã§ãã¯ãå·Šã«ç§»åãããããã®äž»èŠãªæè¡çã¡ã«ããºã ã§ãããªããªããéçè§£æã¯ãã³ãŒããå®è¡å¯èœãªã»ã©å®æããåããã¹ãã¹ã€ãŒããäœæãããåããããŠä»ã®äººéã«ããã¬ãã¥ãŒãè¡ãããåã«å®è¡ã§ããå¯äžã®èªååãããã¢ãããŒãã ããã§ããã³ãŒãå質ã®ããã®DevOpsçµ±åã®æèã§èª¬æãããŠããããã«ãèªååãããè§£æãæ¥åžžã®éçºã¯ãŒã¯ãããŒã«çµã¿èŸŒãããšã¯ãããŒã èŠæš¡ã«æ¯äŸããŠæåã¬ãã¥ãŒã®åŽåãå¢ããããšãªããå€§èŠæš¡ãªã³ãŒãå質ãç¶æãããçµç¹ã«ãšã£ãŠã®åºæ¬çãªå®è·µæ¹æ³ã§ãã
éçè§£æã®ä»çµã¿ïŒæè¡çãªã¬ã€ã€ãŒ
éçè§£æããŒã«ã¯ãããããç°ãªãæè¡ã¬ãã«ã§åäœããç°ãªãçš®é¡ã®è§£æãè¡ããç°ãªãçš®é¡ã®åé¡ãæ€åºããŸãããããã®ã¬ãã«ãçè§£ããããšã¯éèŠã§ãããªããªããããŒã«ã«ãã£ãŠåäœããã¬ãã«ãç°ãªããã¬ãã«ã«ãã£ãŠããŒã«ãæ€åºã§ãããã®ãšã§ããªããã®ã®äž¡æ¹ã決ãŸãããã§ãã
èªåœåæïŒè¡šé¢å±€
åå¥è§£æã¯ãéçè§£æã®æãåºæ¬çãªã¬ãã«ã§ãããœãŒã¹ã³ãŒããæåã®ã·ãŒã±ã³ã¹ãšããŠæ±ããããŒã¯ãŒããèå¥åãæŒç®åããªãã©ã«ãåºåãæåãšãã£ãããŒã¯ã³ã«åè§£ããŸããåœåèŠåãç©ºçœæåã«ãŒã«ãæå€§è¡é·ãçŠæ¢ããŒã¯ãŒãã®äœ¿çšãªã©ã匷å¶ãããªã³ãã£ã³ã°ããŒã«ã¯ãäž»ã«åå¥ã¬ãã«ã§åäœããŸãããããã®ããŒã«ã¯é«éã§ãèšå®ãæå°éã§æžã¿ã衚é¢çãªããªã·ãŒéåã確å®ã«æ€åºããŸãã
åå¥è§£æã¯ãã³ãŒãã®åäœã«ã€ããŠæšè«ããããšã¯ã§ããŸããã倿°ãç¹å®ã®åœåèŠåã«åŸã£ãŠããããšã¯èªèã§ããŸããããã®å€æ°ãäœã衚ããŠããã®ãããããã¯ãã®å€ãããã°ã©ã å ã§ã©ã®ããã«æµããã®ãã¯åãããŸãããåå¥è§£æã¯å 容ãçè§£ããããšãªã圢åŒã匷å¶ããã ãã§ãããã®ãããåå¥è§£æã¯å¿ èŠã§ã¯ãããŸãããåç¬ã®å質管çã¡ã«ããºã ãšããŠã¯äžååã§ããã³ãŒãã®å¯èªæ§ãšäžè²«æ§ãä¿ã€ããšã¯ã§ããŸãããè«çãšã©ãŒãã»ãã¥ãªãã£äžã®è匱æ§ãæ§é äžã®åé¡ãªã©ãçºèŠããããšã¯ã§ããŸããã
æ§æè§£æïŒæå³è«ã䌎ããªãæ§é
æ§æè§£æã¯ããœãŒã¹ã³ãŒãããã®ããã°ã©ãã³ã°èšèªã®ææ³ã«åŸã£ãŠè§£æããã³ãŒãã®æ§é çãªé¢ä¿ãè¡šãæœè±¡æ§ææšãçæããŸããã€ãŸããã©ã®åŒãä»ã®åŒã®ãµãåŒã§ããããã©ã®æãã©ã®ãããã¯ã«å±ããããã©ã®èå¥åã宣èšã§ãããã©ã®èå¥åãåç §ã§ãããã瀺ããŸããå€ãã®éçè§£æããŒã«ã¯ãäž»ã«æ§æã¬ãã«ã§åäœããASTãã¿ãŒã³ãããã³ã°ã䜿çšããŠæ¢ç¥ã®åé¡ã«é¢é£ããã³ãŒãæ§é ãæ€åºããŸãã
è€é床ã®ãããå€ãè¶ ãã颿°ãæ€åºããã«ãŒã«ã¯æ§æçã«åäœããŸããã€ãŸãã颿°æ¬äœã®ASTå ã®æ±ºå®ç¹ã®æ°ãã«ãŠã³ãããŸãããã«åç §ãã¿ãŒã³ãæ€åºããã«ãŒã«ãæ§æçã«åäœããŸããã€ãŸãããã«ã«ãªãå¯èœæ§ã®ããå€ããã«ãã§ãã¯ãªãã§äœ¿çšãããŠããASTãã¿ãŒã³ãèŠã€ããŸãããããã®æ€åºã¯ãæ§é ã«åºã¥ããŠæšè«ãããããåå¥è§£æããã匷åã§ãããäŸç¶ãšããŠæå³è«ã§ã¯ãªããã¿ãŒã³ã«åºã¥ããŠåäœããŸãããã«åç §ãã¿ãŒã³ã®ãããã³ã°ã§ã¯ã倿°ã䜿çšãããŠããã³ã³ããã¹ãã§å®éã«ãã«ã«ãªãå¯èœæ§ããããã©ããã¯ããããŸããããã¿ãŒã³ãååšããããšã ããããããŸãã
æå³è§£æïŒæå³ãšçš®é¡
æå³è§£æã¯ãã³ãŒãã®è§£æ±ºãããæå³ã«åºã¥ããŠåäœããŸããã€ãŸããååŒãã©ã®ãããªåãæã€ããååç §ãã©ã®å®£èšãåç §ããŠããããã©ã®ãªãŒããŒããŒããããã¡ãœãããåŒã³åºãããŠãããããããŠåã·ã¹ãã ãããã°ã©ã ãééããå€ã«ã€ããŠäœã蚌æã§ãããããšãã£ãç¹ã§ããåãã§ãã¯ã¯ãæå³è§£æã®æãããç¥ããã圢åŒã§ããã³ã³ãã€ã©ã®åãã§ãã«ãŒã¯ãæŽæ°ãæåŸ ãããç®æã«æååãæž¡ããã³ãŒããæåŠããéã«ãéçè§£æãå®è¡ããŠããŸãã
ããé«åºŠãªæå³è§£æã«ã¯ãæç€ºçã«æ³šéãä»ããããŠããªãåŒã®åãæ±ºå®ããåæšè«ããnull ã«ãªãå¯èœæ§ã®ããå€ã䜿çšåã«å®å šã«ãã§ãã¯ãããŠãããã©ããã远跡ãã null å®å šæ§è§£æãå«ãŸããŸãããããã®è§£æã«ã¯å®å šãªã·ã³ãã«è§£æ±ºãå¿ èŠãšãªããããèšèªåºæã§ãããå®å šãŸãã¯ã»ãŒå®å šãªã³ãŒããå¿ èŠã§ããåå®çŸ©ãæ¬ èœããŠããã³ãŒãæçããå©çšã§ããªãäŸåé¢ä¿ã§å®çŸ©ãããã·ã³ãã«ãåç §ããŠããã³ãŒãæçã§ã¯åäœããŸãããã¬ã¬ã·ãŒã·ã¹ãã ã®è¿ä»£åèšç»ã«é¢ããããåºç¯ãªè°è«ã§æ€èšãããŠããããã«ãäžå®å šãŸãã¯ææžåãããŠããªãäŸåé¢ä¿ãæã€å¯èœæ§ã®ããã¬ã¬ã·ãŒã³ãŒãããŒã¹ã«å¯ŸããŠå®å šãªæå³è§£æãå®è¡ããã«ã¯ããã®ãããªç°å¢ã®ç¹å®ã®æ§é ãã¿ãŒã³ãåŠçã§ããå°çšã®ããŒã«ãå¿ èŠã§ãã
ããŒã¿ãããŒåæïŒå®è¡ãéããŠåŸããã䟡å€
ããŒã¿ãããŒåæã¯ãããã°ã©ã å ã§å€ãã©ã®ããã«ç§»åãããã远跡ããŸããããã°ã©ã ã®å¶åŸ¡ãããŒã°ã©ãäžã§åäœãã倿°å€ã«é¢ããæ å ±ãå®è¡ãã¹ã«æ²¿ã£ãŠäŒæãããå€ã®çºçå ã倿Žç®æãæ¶è²»ç®æãèšé²ããŸããããŒã¿ãããŒåæã«ãã£ãŠãåæåãããŠããªã倿°ã®èªã¿åããã¡ã¢ãªç®¡çã«ãããè§£æŸåŸäœ¿çšããŠãŒã¶ãŒå ¥åããã»ãã¥ãªãã£äžéèŠãªæäœãžã®æ±æäŒæãšãã£ãåé¡ãæ€åºã§ããŸãã
æ±æåæã¯ãããŒã¿ãããŒåæã®äžçš®ã§ãä¿¡é Œã§ããªããœãŒã¹ïŒãŠãŒã¶ãŒå ¥åããããã¯ãŒã¯ããŒã¿ããã¡ã€ã«ã®å 容ãªã©ïŒããçºçããå€ã远跡ãããããã®å€ããµãã¿ã€ãºãããã«ã»ãã¥ãªãã£äžéèŠãªæäœïŒSQLã¯ãšãªãã·ã¹ãã ã³ãŒã«ãåºåæäœãªã©ïŒã«å°éããå¯èœæ§ããããã©ãããèå¥ããŸããæ±æãããå€ããµãã¿ã€ãºãããã«ã»ãã¥ãªãã£ã·ã³ã¯ã«å°éããå Žåãåæã¯æœåšçãªã€ã³ãžã§ã¯ã·ã§ã³è匱æ§ãæ€åºããŸããããã¯ãéçè§£æããŒã«ã«ãããSQLã€ã³ãžã§ã¯ã·ã§ã³ãã¯ãã¹ãµã€ãã¹ã¯ãªããã£ã³ã°ãã³ãã³ãã€ã³ãžã§ã¯ã·ã§ã³ã®èåŒ±æ§æ€åºã®å€§éšåãæ¯ããèªåæ€åºã¡ã«ããºã ã§ãã
ã³ãŒãäžã®2ã€ã®çµè·¯ã®éãã¯ãããããã ããã»ãã¥ãªãã£äžã®çµæã¯å šãç°ãªãã
# Vulnerable: user input reaches SQL query without sanitization (tainted path)
def get_user(username):
query = "SELECT * FROM users WHERE name = '" + username + "'"
return db.execute(query) # sink: tainted value reaches SQL execution
# Safe: sanitization breaks the taint chain before the sink
def get_user_safe(username):
query = "SELECT * FROM users WHERE name = ?"
return db.execute(query, (username,)) # parameterized: taint neutralized
éçæ±æåæã¯ãã³ãŒããå®è¡ããããæªæã®ãããã¹ãå ¥åãããªã¬ãŒãããããããšãªããæåã®é¢æ°å ã®è匱ãªãã¿ãŒã³ãæ€åºããŸããããŒã¿ãããŒåæã¯èšç®ã³ã¹ããé«ãã粟床ãšããã©ãŒãã³ã¹ã®æ ¹æ¬çãªãã¬ãŒããªãã«çŽé¢ããŸãããã¹ãŠã®å®è¡ãã¹ãèæ ®ããæ£ç¢ºãªããŒã¿ãããŒåæã¯ãå€§èŠæš¡ãªã³ãŒãããŒã¹ã§ã¯éçŸå®çãªå Žåãå€ãã§ããã»ãšãã©ã®ããŒã«ã¯ã粟床ãç ç²ã«ããŠæ¡åŒµæ§ãé«ããè¿äŒŒã䜿çšãããããããŒã¿ãããŒã®æ€åºçµæã«ã¯éåžžã人éã®ã¬ãã¥ãŒãå¿ èŠãšãã誀æ€åºçãå«ãŸããŸããå®è¡ãã¹ãšããŒã¿ãããŒã®ã³ãŒãå¯èŠåã«ããããã©ã°ãç«ãŠããããã¹ãã¢ããªã±ãŒã·ã§ã³ã®ã³ã³ããã¹ãã§å®éã«æªçšå¯èœãã©ããã確èªããå¿ èŠãããéçºè ã«ãšã£ãŠããããã®åæçµæãããã²ãŒããããããªããŸãã
å¶åŸ¡ãããŒåæïŒå®è¡ãã¹
å¶åŸ¡ãããŒè§£æã¯ãã³ãŒãå ã®ããããå®è¡çµè·¯ã瀺ãã°ã©ããäœæããå°éå¯èœãªã¹ããŒãã¡ã³ããäžèŠãªã¹ããŒãã¡ã³ãããããŠååå²ã®å®è¡æ¡ä»¶ãç¹å®ããŸããå¶åŸ¡ãããŒã°ã©ãã¯ãä»ã®å€ãã®è§£æã®åºç€ãšãªããŸããããŒã¿ãããŒè§£æã¯å¶åŸ¡ãããŒã°ã©ãã«åºã¥ããŠåäœããå°éå¯èœæ§è§£æã¯äžèŠãªã³ãŒããç¹å®ããããã«å¶åŸ¡ãããŒã°ã©ãã䜿çšãã埪ç°çè€é床ãªã©ã®è€éåºŠææšã¯å¶åŸ¡ãããŒã°ã©ãããå°åºãããŸãã
å¶åŸ¡ãããŒåæã¯ããããã³ãŒãã®æ€åºãå¯èœã«ãããã®ã§ããå®çŸ©ãããŠãããã®ã®ãã©ã®ãšã³ããªãã€ã³ããããå°éã§ããªãã³ãŒãã¯ãå¶åŸ¡ãããŒã°ã©ãã«ã€ã³ããŠã³ããšããžãæãããæªäœ¿çšãšããŠèå¥ã§ããŸããããã¯ãäŒæ¥ããŒã ãã¢ããã€ãŒãŒã·ã§ã³åã«å¿ èŠãšããã¢ããªã±ãŒã·ã§ã³äŸåé¢ä¿ãããã³ã°ã«çŽæ¥é¢ä¿ããŸããã©ã®ã³ãŒããã¹ãæå¹ã§ãã©ã®ã³ãŒããã¹ãç¡å¹ã§ããããææ¡ããããšã§ãç§»è¡äžã«å®å šã«åé€ã§ãããã®ãšãä¿æããªããã°ãªããªããã®ã倿ã§ããŸãã
ã³ãŒã«ã°ã©ãåæïŒã³ã³ããŒãã³ãéã®é¢ä¿æ§
åŒã³åºãã°ã©ãåæã¯ãã³ãŒãããŒã¹å šäœã«ããã£ãŠã©ã®é¢æ°ãã©ã®é¢æ°ãåŒã³åºããŠããããã¢ãã«åããŸããå®å šãªåŒã³åºãã°ã©ãã¯ãåŒã³åºãå åæãåŒã³åºãå åæãæšç§»çäŸåé¢ä¿åæãããã³ã©ã®ãšã³ããªãã€ã³ããããåŒã³åºãããªã颿°ã®èå¥ããµããŒãããŸããè€æ°ã®ãã¡ã€ã«ãã¢ãžã¥ãŒã«ãããã±ãŒãžã«ãŸãããã³ã³ããŒãã³ãéåŒã³åºãã°ã©ãåæã¯ã圱é¿åæã®æè¡çåºç€ãšãªããŸãã圱é¿åæãšã¯ãç¹å®ã®é¢æ°ãã€ã³ã¿ãŒãã§ãŒã¹ã倿Žãããå Žåã«äœã«åœ±é¿ãåºããã倿ããããšã§ãã
åäžèšèªãåäžãªããžããªã®ã³ãŒãããŒã¹ã§ã¯ãã»ãšãã©ã®æçããéçè§£æããŒã«ã§åŒã³åºãã°ã©ãã®æ§ç¯ãååã«ãµããŒããããŠããŸããå€èšèªã®ãšã³ã¿ãŒãã©ã€ãºç°å¢ã§ã¯ãå®å šãªåŒã³åºãã°ã©ããæ§ç¯ããã«ã¯ãã·ã¹ãã å ã®ãã¹ãŠã®èšèªãåã蟌ã¿ããããã®éã®èšèªéåŒã³åºãé¢ä¿ã解決ããçµ±åè§£æãã©ãããã©ãŒã ãå¿ èŠã§ããJavaScriptããã³ Node.js ã³ãŒãããŒã¹ã®å Žåãåçã¢ãžã¥ãŒã«ããŒãããããã¿ã€ãããŒã¹ã®ãã£ã¹ããããããã³ã³ãŒã«ããã¯ãã¿ãŒã³ã«ãã£ãŠããã®äœæ¥ã¯ããã«è€éã«ãªããŸããCOBOLãJCLãSQLãããã³ææ°ã®ãµãŒãã¹ã¬ã€ã€ãŒãæ··åšãããšã³ã¿ãŒãã©ã€ãºã·ã¹ãã ã§ã¯ã課é¡ã¯å€§å¹ ã«æ¡å€§ããã·ã¹ãã å šäœã衚çŸããããã«èšèªåºæã®ããŒãµãŒãšèšèªéã°ã©ãã¢ãã«ãå¿ èŠã«ãªããŸãã
éçè§£æãæ€åºãããã®ïŒå®çšçãªå顿³
éçè§£æããŒã«ãæ€åºããåé¡ã®çš®é¡ã¯å€å²ã«ããããããŒã«ã«ãã£ãŠæ€åºã§ããç¯å²ãç°ãªããŸããåé¡äœç³»ãçè§£ããããšã§ãããŒã ã¯ããŒã«ã®æ©èœãããããã®æ€åºèŠä»¶ã«é©åã«åãããããšãã§ããŸãã
ãã¿ãŒã³åæããã³æ±æåæã«ãã£ãŠçºèŠãããã»ãã¥ãªãã£è匱æ§ïŒ
- SQLã€ã³ãžã§ã¯ã·ã§ã³ãã¯ãã¹ãµã€ãã¹ã¯ãªããã£ã³ã°ããŠãŒã¶ãŒãå¶åŸ¡ãããœãŒã¹ããã»ãã¥ãªãã£ã·ã³ã¯ãžã®æ±æäŒæã«ããã³ãã³ãã€ã³ãžã§ã¯ã·ã§ã³
- å®å šæ§ã®äœãæå·åã®äœ¿çšïŒè匱ãªã¢ã«ãŽãªãºã ãäžååãªéµé·ãéæšå¥šã®æå·ã¢ãŒã
- ãœãŒã¹ã³ãŒãã«ããŒãã³ãŒããããèªèšŒæ å ±ãAPIããŒãããã³ç§å¯å€ãåã蟌ãŸããŠãã
- å®å šã§ãªãéã·ãªã¢ã«åãã¿ãŒã³ãšå®å šã§ãªãXMLè§£ææ§æ
- ãã¡ã€ã«ã¢ã¯ã»ã¹æäœã«ããããã¹ãã©ããŒãµã«è匱æ§
æ§é åæã«ãã£ãŠçºèŠãããã³ãŒãã®å質ãšä¿å®æ§ã«é¢ããåé¡ç¹ïŒ
- éå°ãªåŸªç°çè€éæ§ã¯ãå®å šã«ãã¹ãããã³å€æŽããããšãå°é£ãªã³ãŒãã§ããããšã瀺ããŠããŸãã
- 颿°ãã¯ã©ã¹ãé·ãããŠãåäžè²¬ä»»ã®ååã«éåããŠãã
- éè€ããã³ãŒããããã¯ã¯ãäžæ¹ã®ã³ããŒãæŽæ°ãããŠãããäžæ¹ã®ã³ããŒãæŽæ°ãããªãå Žåã«ãä¿å®äžã®å±éºããããããŸãã
- æªäœ¿çšã®å€æ°ããã©ã¡ãŒã¿ãã€ã³ããŒãã¯ãåäœã«è²¢ç®ããããšãªããã€ãºã远å ããã
- äžè²«æ§ã®ãªãåœåèŠåãšã¹ã¿ã€ã«éåã«ãããå¯èªæ§ãäœäžããŠããã
æå³è§£æããã³ããŒã¿ãããŒè§£æã«ãã£ãŠçºèŠãããæ£ç¢ºæ§ã®åé¡ç¹ïŒ
- null å®å šæ§ã®åŒ·å¶ããªãèšèªã«ããã null éåç §
- åæåãããŠããªã倿°ã®èªã¿åãã«ãã£ãŠæªå®çŸ©ã®åäœãçºçãã
- ç®è¡æŒç®ã«ãããæŽæ°ãªãŒããŒãããŒãšã¢ã³ããŒãããŒ
- ååŸãããªãœãŒã¹ããã¹ãŠã®ã³ãŒããã¹ã§è§£æŸãããªããªãœãŒã¹ãªãŒã¯
- ãšã©ãŒã黿®ºããäžé©åãªäŸå€åŠç
åŒã³åºãã°ã©ããšäŸåé¢ä¿åæã«ãã£ãŠçºèŠãããæ§é äžã®åé¡ïŒ
- ã©ã®ãšã³ããªãã€ã³ããããåŒã³åºãå ã«å°éã§ããªããããã³ãŒã
- ã¢ãžã¥ãŒã«éã®åŸªç°äŸåé¢ä¿ã¯ãã¢ãŒããã¯ãã£ã®åé¢ãäžååã§ããããšã瀺ããŠããã
- 代æ¿å®è£ ã«ç§»è¡ããã³ãŒãããŒã¹ã«ããããéæšå¥šãšãªã£ã颿°ã®äœ¿çš
- ç¡æ¡ä»¶ã®æ»ãå€ãŸãã¯äŸå€ã®åŸã«ç¶ãå°éäžèœãªã³ãŒã
- nullãè¿ãå¯èœæ§ã®ãã颿°ããè¿ãããå€ã«å¯ŸããŠãéåç §åã«nullãã§ãã¯ãè¡ãããŠããªãã
Node.jsã¢ããªã±ãŒã·ã§ã³ããã®ä»ã®åçã©ã³ã¿ã€ã ç°å¢ã®å Žåãæ€åºã«ããŽãªã¯éåæãã¿ãŒã³ã«ãŸã§æ¡åŒµããããããã¹æåŠãã³ãã©ã®æ¬ èœãã³ãŒã«ããã¯ã®ãšã©ãŒåªå ãã¿ãŒã³éåãã€ãã³ããšããã¿ã®ã¡ã¢ãªãªãŒã¯ãªã©ãå«ãŸããŸããRustãã·ã¹ãã ããã°ã©ãã³ã°ã®ã³ã³ããã¹ãã§ã¯ãã³ã³ãã€ã©ãå®å šã«æ€èšŒã§ããªãã©ã€ãã¿ã€ã éåãå®å šã§ãªããããã¯ã®äœ¿çšã䞊è¡åŠçã®å®å šæ§ã«é¢ããç¹æ§ã«åæã®çŠç¹ãåœãŠãããŸãã
éçè§£æã§ã¯æ€åºã§ããªããã®
éçè§£æã®éçãçè§£ããããšã¯ããã®èœåãçè§£ããããšãšåããããéèŠã§ããéçè§£æã§ãã¹ãŠã®ãã°ãæ€åºã§ãããšæåŸ ããããŒã ã¯å€±æããè§£æçµæã®æ£ç¢ºæ§ã«å¯Ÿããä¿¡é Œã誀ãå¯èœæ§ããããŸããæ§é çã«éçè§£æã®ç¯å²å€ãšãªãåé¡ãããã€ããããŸãã
å®è¡æã®ã¿ã«çºçããåäœã¯ãå®çŸ©äžãéçè§£æã®å¯Ÿè±¡å€ã§ããé·æéå®è¡åŸã«ã®ã¿é¡åšåããã¡ã¢ãªãªãŒã¯ãç¹å®ã®è² è·ãã¿ãŒã³äžã§ã®ããã©ãŒãã³ã¹äœäžãéæ±ºå®çãªã¹ã¬ããã¹ã±ãžã¥ãŒãªã³ã°ã«äŸåãã䞊è¡åŠçãã°ãäºæããªãå®è¡æç¶æ ã®çµã¿åããã«ãã£ãŠåŒãèµ·ããããã¯ã©ãã·ã¥ãªã©ã¯ãããããå®è¡ã«ãã£ãŠæ€åºããå¿ èŠããããŸãããã®ãããªé åã¯ãåçè§£æããããã¡ã€ãªã³ã°ãããã³ã¹ãã¬ã¹ãã¹ãã«ãã£ãŠã«ããŒãããŸãã
ãã¡ã€ã³ç¥èã«äŸåããããžãã¹ããžãã¯ã®ãšã©ãŒã¯ãéçè§£æã§ã¯æ€åºã§ããŸãããèšç®åŒãééã£ãŠããããã«å©æ¯ã誀ã£ãŠèšç®ãã颿°ã誀ã£ãæéå¢çã䜿çšããŠããŒã¿ãéèšããã¬ããŒãããŸãã¯èª€ã£ããŠãŒã¶ãŒã»ããã«ã¢ã¯ã»ã¹ãèš±å¯ããèªèšŒãã§ãã¯ãªã©ããããã¯ã³ãŒããæ¬æ¥è¡ãã¹ãããšã«é¢ããæå³è«çãªç¥èãå¿ èŠãšããæ£åœæ§ã®æ¬ é¥ã§ããéçè§£æã¯ã³ãŒããæ§é ãã¿ãŒã³ã«æºæ ããŠããããšãæ€èšŒã§ããŸãããã³ãŒããæ£ããããžãã¹åäœãå®è£ ããŠããããšãæ€èšŒããããšã¯ã§ããŸããããã®é åã¯ãæ©èœãã¹ããšä»æ§ã¬ãã¥ãŒã«ãã£ãŠã«ããŒãããŸãã
ãœãŒã¹ã³ãŒãã§ã¯ãªãããããã€ã¡ã³ãã¢ãŒãã£ãã¡ã¯ããã€ã³ãã©ã¹ãã©ã¯ãã£å®çŸ©ãç°å¢èšå®ã«ååšããæ§æäžã®è匱æ§ã¯ãã€ã³ãã©ã¹ãã©ã¯ãã£ã»ã¢ãºã»ã³ãŒãåæã«ããææ°ã®éçè§£æã«ãã£ãŠéšåçã«ã«ããŒãããŸãããå€ãã®æ§æäžã®åé¡ã¯ãå®è¡æãŸãã¯ã³ãŒããšãã®å®è¡ç°å¢ãšã®çžäºäœçšã«ãããŠã®ã¿æããã«ãªããŸãã
è€æ°ã®ã³ã³ããŒãã³ãã«ãŸããããã»ãã·ã§ã³ç¶æ ãé¢äžãããããã¯åŒã³åºããã§ãŒã³å šäœã«ãããè€æ°ã®ã»ãã¥ãªãã£ãã§ãã¯ã®çžäºäœçšã«äŸåããè€éãªèªèšŒããã³èªå¯ã®æ¬ é¥ã¯ãéçè§£æã§ã¯æ£ããæšè«ããããšãå°é£ã§ãããã®ã«ããŽãªã§ã¯èª€æ€åºãèŠéããé »ç¹ã«çºçãããããæ€åºçµæãè©äŸ¡ããã«ã¯å°éå®¶ã«ããã¬ãã¥ãŒãå¿ èŠã§ãã
éçè§£æããŒã«ã®è©äŸ¡ãšéžæ
éçè§£æããŒã«ã®éžå®ã¯ãã©ã®ããŒã«ã®æ©èœãã³ãŒãããŒã¹ãããŒã ãçµç¹ã®èŠä»¶ã«åèŽããããšããããŸãã«ãããã³ã°åé¡ã§ããããŒã«ã«ãã£ãŠå€§ããç°ãªãç¹ã¯ã察å¿èšèªãè§£ææ·±åºŠã誀æ€åºçãçµ±åãµããŒãããããŠæ¡åŒµæ§ã§ãã
èšèªãµããŒãã¯ããŸãæåã«èæ ®ãã¹ãå¶çŽã§ããã³ãŒãããŒã¹ã§äœ¿çšãããŠããèšèªããµããŒãããŠããªãããŒã«ã¯ããã®ã³ãŒãããŒã¹ã«ãšã£ãŠäœã®äŸ¡å€ããããŸãããå€èšèªç°å¢ã§ã¯ãè€æ°ã®åäžèšèªããŒã«ïŒãããããèªèšèªãååã«ã«ããŒããŠãããã®ã®ãèšèªéã®åææ©èœã¯æäŸããªãïŒãšãè€æ°ã®èšèªãã«ããŒããèšèªéã®äŸåé¢ä¿è§£æ±ºæ©èœãçµ±åããçµ±åãã©ãããã©ãŒã ã®ã©ã¡ãããéžæããããšã«ãªããŸããã¬ã¬ã·ãŒã³ãŒãã倿°ååšãããšã³ã¿ãŒãã©ã€ãºã·ã¹ãã ã§ã¯ãåäžèšèªããŒã«ã§ã¯è¡šçŸã§ããªãèšèªéã®äŸåé¢ä¿ããããŸãã«åé¡ãšãªããããçµ±åãã©ãããã©ãŒã ã®ã¢ãããŒããäžè¬çã«å¿ èŠãšãªããŸãã
åæã®æ·±åºŠã¯ãããŒã«ãæ€åºã§ããåé¡ã®çš®é¡ã決å®ããŸããèªåœã¬ãã«ãšæ§æã¬ãã«ã®ã¿ã§åäœããããŒã«ã§ã¯ãããŒã¿ãããŒã®è匱æ§ããããã³ãŒãã¯æ€åºã§ããŸãããããã·ãŒãžã£éããŒã¿ãããŒåæãå®å šã«å®è£ ããããŒã«ã¯ãããå€ãã®è匱æ§ãæ€åºã§ããŸããã誀æ€åºãå€ããªããããå€ãã®èšç®ãªãœãŒã¹ãå¿ èŠãšããŸããé©åãªæ·±åºŠã¯ãã³ãŒãããŒã¹ã®ãªã¹ã¯ãããã¡ã€ã«ã«ãã£ãŠç°ãªããŸããã»ãã¥ãªãã£äžéèŠãªéèã·ã¹ãã ãå»çã·ã¹ãã ã§ã¯ãéåžžã詳现ãªããŒã¿ãããŒåæãæ£åœåãããŸãããå éšããŒã«ã®ã³ãŒãããŒã¹ã§ã¯ãããç°¡ç¥åãããæ§é åæã§ååãªå ŽåããããŸãã
誀æ€åºçã¯ãããŒã«ã®å°å ¥ã«ãããå®éçãªå¶çŽãšãªããŸããåæå¯Ÿè±¡ãšãªããã¹ãŠã®ã³ãŒãããŒã¹ã§å€æ°ã®åé¡ã§ã¯ãªãç®æããã©ã°ä»ãããããŒã«ã¯ããããã®åé¡ãç¡èŠããããã«èšå®ãããŸããã€ãŸããããŒã ã¯åæã«ãŒã«ã®ã¡ãªããã享åã§ããªãäžæ¹ã§ãæ€åºçµæãæå¶ããããã®ç¶ç¶çãªã³ã¹ããè² æ ããããšã«ãªããŸãã誀æ€åºçã¯ãããŒã«ã®åæå質ãšé©çšãããã«ãŒã«ã®ç¹ç°æ§ã®äž¡æ¹ã«ãã£ãŠæ±ºãŸããŸããããŒã«ãè©äŸ¡ããããŒã ã¯ããã³ããŒãæäŸããåæã³ãŒãããŒã¹ã§ã®ãã³ãããŒã¯ã«é Œãã®ã§ã¯ãªããèªç€Ÿã®ã³ãŒãã®ä»£è¡šçãªãµã³ãã«ã«å¯ŸããŠããŒã«ãå®è¡ããå®è¡å¯èœãªæ€åºçµæãšæå¶ãããæ€åºçµæã®æ¯çãæž¬å®ããå¿ èŠããããŸãã
CI/CDãšIDEã®çµ±åã¯ãããŒã«ãå®éã«æŽ»çšããããããããã¯ææè¡ãããç£æ»æŽ»åãšããŠæ±ãããããæ±ºå®ã¥ããèŠçŽ ã§ããå¥éæåã§å®è¡ããçµæãå¥ã®ã€ã³ã¿ãŒãã§ãŒã¹ã§åºåããããŒã«ã¯ãéçºè ãã³ãŒããèšè¿°ããéã«IDEå ã§ã€ã³ã©ã€ã³ã§æ€åºçµæã衚瀺ããæ°ããªéåãå°å ¥ãããã«ãªã¯ãšã¹ãã倱æãããããŒã«ã«æ¯ã¹ãŠã䜿çšé »åºŠãäœããªããŸããçµ±åã®è³ªã¯ãäžè²«ããã«ãã¬ããžãå®çŸããããã«ãåæã®è³ªãšåæ§ã«éèŠãªãå®çšåã«ãããéèŠãªèŠçŽ ã§ãã
å€§èŠæš¡ãªã³ãŒãããŒã¹ã§ã¯ãã¹ã±ãŒã©ããªãã£ã倧ããªå¶çŽãšãªããŸãã100äžè¡ã®ã³ãŒãããŒã¹ã®è§£æã«äœæéããããããŒã«ã¯ãã³ãããããã«ãªã¯ãšã¹ãã®ã¯ãŒã¯ãããŒã«çµã¿èŸŒãããšã¯ã§ããŸãããã³ãŒãããŒã¹å šäœã§ã¯ãªãã倿Žããããã¡ã€ã«ãšãã®äŸåé¢ä¿ã®ã¿ãæ¯ååè§£æããå¢åè§£æã¯ãã³ãããããšã®éçè§£æãå€§èŠæš¡ã«å®çŸå¯èœã«ããæè¡çãªä»çµã¿ã§ããããŒã«ã¯ããã«ã¹ãã£ã³æ§èœã ãã§ãªããå¢åè§£ææ©èœã«ã€ããŠãè©äŸ¡ãããã¹ãã§ãã
äŒæ¥ã«ãããå€èšèªç°å¢ã®éçè§£æ
éçè§£æã®èª²é¡ã¯ãã³ãŒãããŒã¹ãè€æ°ã®èšèªãè€æ°ã®ãã©ãããã©ãŒã ããããŠæ°å幎ã«ãããèç©ãããã³ãŒãã«ãŸããããšã³ã¿ãŒãã©ã€ãºç°å¢ã§ã¯ãèããå¢å€§ããŸããåäžèšèªã®æ°èŠã³ãŒãããŒã¹ã§æå¹ãªè§£æææ³ã¯ãããŒã«ãæ¢åã®èšèªããµããŒãããŠããªããèšèªéã®äŸåé¢ä¿ãã¢ãã«åã§ããªãããããã¯ã¬ã¬ã·ãŒã³ãŒãã®æ§é ãã¿ãŒã³ãææ°ã®ã³ãŒãããŒã¹åãã«èšèšãããããŒã«ã®åæãšäžèŽããªããšãã£ãçç±ã§ãããããç°å¢ã§ã¯ãã°ãã°å€±æããŸãã
äŸãã°ãCOBOLããã°ã©ã ã¯ãã»ãšãã©ã®éçè§£æãã¬ãŒã ã¯ãŒã¯ãåæãšãã颿°ãšã¯ã©ã¹ã®ã¢ãã«ãšã¯æ ¹æ¬çã«ç°ãªããåºåãã»ã¯ã·ã§ã³ã段èœã«åºã¥ãæ§é ã¢ãã«ãæ¡çšããŠããŸããã³ããŒããã¯ããŒã¹ã®å ±æå®çŸ©ãPERFORM-THRU段èœç¯å²ããã£ã¡ã«ã±ãŒã¹ãã¢ã³ããŒã¹ã³ã¢ã§ã¯ãªããã€ãã³ã䜿çšããããŒã¿åœåèŠåãªã©ã¯ãCOBOLã®æ§é çç¹åŸŽã§ãããèšèªã«äŸåããªãããŒã«ã§ã¯éåžžãé©åã«åŠçãããªãããå šãåŠçãããŸãããã¡ã€ã³ãã¬ãŒã ã®ãããããã°ã©ã ã®å®è¡ããªãŒã±ã¹ãã¬ãŒã·ã§ã³ãããããã®éã§ããåããããããŒã¿ã»ãããå®çŸ©ããJCLã¯ãæ±çšéçè§£æãã©ãããã©ãŒã ã§ã¯å šãè§£æãããŸããã
ææ°ã®ãµãŒãã¹ãšäžŠè¡ããŠã¡ã€ã³ãã¬ãŒã ãã¬ã¬ã·ãŒãã©ãããã©ãŒã ã«äŸåããŠããçµç¹ã§ã¯ãçµæãšããŠã³ãŒãã«ãã¬ããžã«æ§é çãªã®ã£ãããçããŸããéçè§£æããŒã«ã¯ææ°ã®ã³ãŒãã培åºçã«ã«ããŒããŸãããã¬ã¬ã·ãŒã³ãŒãã¯å šãã«ããŒããªãããåèšèªãåå¥ã«ã«ããŒããããããããã®éã®é¢ä¿æ§ãææ¡ã§ããŸããããã®ã®ã£ããã¯ã察åŠãæãå°é£ãªç®æãã€ãŸããCOBOLããã°ã©ã ã®å€æŽããã®åºåãèªã¿åãJavaãµãŒãã¹ã«åœ±é¿ãäžããå ŽåããããŒã¿ããŒã¹ã®ã¹ããŒã倿Žãã¬ã¬ã·ãŒãããåŠçãšææ°ã®APIã¬ã€ã€ãŒã®äž¡æ¹ã«åæã«åœ±é¿ãäžããå Žåãªã©ãèšèªéã®ã€ã³ã¿ãŒãã§ãŒã¹ã«ãããŠæãæ·±å»ãªåœ±é¿ãåãŒããŸããã¡ã€ã³ãã¬ãŒã ã®è¿ä»£åèšç»ãIBM i RPGãã©ãããã©ãŒã ã®ç§»è¡ã®æèã§èª¬æããããã«ãã¬ã¬ã·ãŒã³ã³ããŒãã³ããå«ãã¢ããªã±ãŒã·ã§ã³ããŒããã©ãªãªå šäœã®çŸç¶ãææ¡ããèœåã¯ãæ¢åã®ãªã¹ã¯ã«å¯ŸåŠããªããæ°ããªãªã¹ã¯ãçã¿åºããªãè¿ä»£åããã°ã©ã ãèšç»ããããã®åææ¡ä»¶ãšãªããŸãã
èªå®æ¡ä»¶ SMART TS XL äŒæ¥å šäœã«ãããéçã³ãŒãåæãæäŸããŸã
SMART TS XL ã¯ããšã³ã¿ãŒãã©ã€ãºã³ãŒãããŒã¹ã¯ãã¡ã€ã«ã¬ãã«ããªããžããªã¬ãã«ã§ã¯ãªããã·ã¹ãã ã¬ãã«ã§ã®åæãå¿ èŠã§ãããšããåæã«åºã¥ããŠæ§ç¯ãããŠããŸãããã®ãœãããŠã§ã¢ã€ã³ããªãžã§ã³ã¹ãã©ãããã©ãŒã ã¯ãCOBOLãJCLãJavaã.NETãPythonãJavaScriptãTypeScriptãSQLãªã©ãç°å¢å ã®ããããèšèªãšãã©ãããã©ãŒã ã®ãœãŒã¹ã³ãŒããåã蟌ã¿ãèšèªåºæã®åæã䜿çšããŠãããããè§£æããçµ±äžãããçžäºåç §ã¢ãã«ãäœæããŸãããã®ã¢ãã«ã¯ãã·ã¹ãã å šäœã®æ§é çãªé¢ä¿ã衚ããŸããèšèªã®å¢çããŸããåŒã³åºãã°ã©ããCOBOLå®çŸ©ããããŒã¿ããŒã¹åãçµãŠJavaãµãŒãã¹ãžãšå€ã远跡ãããã£ãŒã«ãã¬ãã«ã®ããŒã¿ãããŒãã¬ãŒã¹ãã©ã®ã³ãŒããã¹ãæå¹ã§ã©ã®ã³ãŒããã¹ãç¡å¹ãã瀺ãå¶åŸ¡ãããŒã°ã©ããææ¡ããã倿Žã«ãã£ãŠåœ±é¿ãåãããã¹ãŠã®ã³ã³ããŒãã³ããèå¥ããäŸåé¢ä¿ããããªã©ãå«ãŸããŸãã
ãã® éçã³ãŒãè§£æãœãªã¥ãŒã·ã§ã³ ãã SMART TS XL ã¯ãå ±éã®ããã·ã¥ããŒãã§èª¿æŽãããèšèªããšã®ãªã³ã¿ãŒã®éåã§ã¯ãããŸãããã·ã¹ãã å šäœãã¢ãã«åããçµ±ååæãã©ãããã©ãŒã ã§ããããšã³ã¿ãŒãã©ã€ãºç°å¢ã§å¿ èŠãšãããèšèªéããã³ã³ã³ããŒãã³ãéã®åæãå¯èœã«ããŸããéçºè ãããã®é¢æ°ã倿Žãããšäœã«åœ±é¿ããŸããïŒããšè³ªåãããšãçŸåšè¡šç€ºããŠãããã¡ã€ã«ãã«ããŒããåäžèšèªããŒã«ããã®éšåçãªåçã§ã¯ãªããçµ±åãããäŸåé¢ä¿ã°ã©ãããå®å šãªåçãåŸãããŸããæ±æåæãå®è¡ããã»ãã¥ãªãã£ã¢ããªã¹ãã¯ãããŒã¿ãããã€ã®èšèªå¢çãè¶ãããã«é¢ä¿ãªããæ©å¯ããŒã¿ããœãŒã¹ããã·ã³ã¯ãŸã§ã·ã¹ãã å šäœã§è¿œè·¡ããŸããç§»è¡ãèšç»ããŠããã¢ããã€ãŒãŒã·ã§ã³ããŒã ã¯ãææ°ã®ããŒã«ã䜿çšããŠããã³ã³ããŒãã³ãã®ã¿ã«éå®ããããã¥ãŒã§ã¯ãªããã¬ã€ã€ãŒãèšèªãããã³ç¹å®ã®é¢ä¿ã¿ã€ãããšã«æŽçããããã©ã®ã³ã³ããŒãã³ããäœã«äŸåããŠããããå®å šã«å¯èŠåã§ããŸãã
SMART TS XLã®ãšã³ã¿ãŒãã©ã€ãºæ€çŽ¢æ©èœã¯ã調æ»ã®å ¥ãå£ãšãªããæååã®åºçŸé »åºŠã§ã¯ãªãæ§é çãªé¢ä¿ã®çš®é¡ã«åºã¥ããŠæŽçãããçµæãè¿ããŸããå®çŸ©ãåŒã³åºããèªã¿åããæžã蟌ã¿ãã³ããŒããã¯ã®ã€ã³ã¯ã«ãŒããSQLåç §ãAPIå ¬éãªã©ããã¹ãŠãçµæã»ããå ã§åºå¥ããããããéçºè ã¯ããã¹ãäžèŽã®ãªã¹ãããã£ã«ã¿ãªã³ã°ããããšãªããå¿ èŠãªç¹å®ã®æ å ±ãåŸãããšãã§ããŸãããŸããã³ãŒãå¯èŠåæ©èœã¯ãè©³çŽ°ãªæ§é åæãããã²ãŒã·ã§ã³å¯èœãªãããŒãã£ãŒããäŸåé¢ä¿å³ã«å€æããéçºè ãã³ãŒãã®ãã¹ãŠã®è¡ãé çªã«èªãå¿ èŠãªããè€éãªã·ã¹ãã ãçè§£ããããããŸãã
éçè§£æã¯åºç€ã§ãããç®çå°ã§ã¯ãªã
éçè§£æã¯ãããŒã«ãšããŠã§ã¯ãªãã€ã³ãã©ã¹ãã©ã¯ãã£ãšããŠæ±ãããå Žåã«æã䟡å€ãçºæ®ããŸããã€ãŸãããã¹ãŠã®ã³ãŒãã«å¯ŸããŠç¶ç¶çã«å®è¡ãããäœç³»çã«ã¬ãã¥ãŒãããçµæãçæãããã®åºåãææåç §ãããã®ã§ã¯ãªããéçºã¯ãŒã¯ãããŒã«çµã¿èŸŒãŸãããã®ã§ãããã®ãããªçµ±åã¬ãã«ãå®çŸããçµç¹ã§ã¯ãéçè§£æã«ãã£ãŠãåé¡ãçºçããåŸã«çºèŠãããäºåŸå¯Ÿå¿ââåã®ä¿®åŸ©äœæ¥ãããåé¡ã«é¢é£ãããã¿ãŒã³ãåé¡ãåŒãèµ·ããåã«æé€ãããäºåäºé²åã®äºé²äœæ¥ãžãšãå質ãšã»ãã¥ãªãã£ã«é¢ããåãçµã¿ãåŸã ã«ç§»è¡ããŠããããšãåãããŸãã
ããã«è³ãããã®æè³ã¯ãäž»ã«ããŒã«ãžã®æè³ã§ã¯ãããŸãããããå°é£ãªäœæ¥ã¯ãæåãšããã»ã¹ã¬ãã«ã®ãã®ã§ããéçè§£æã®çµæã¯æå¶ããã®ã§ã¯ãªã察åŠãããšããæåŸ ã確ç«ããç¹å®ã®ã³ãŒãããŒã¹ã«åãããŠæ·±åºŠãšèª€æ€åºçã®ãã©ã³ã¹ãåãããã«ããŒã«ãèšå®ããçµæãIDEãšCIã¯ãŒã¯ãããŒã«çµ±åããŠãã¬ãã¥ãŒãã§ãŒãºãšã¯å¥ã«éçºæ®µéã§æ€åºãããããã«ããã³ãŒãããŒã¹ã®é²åã«åãããŠèšå®ãç¶æããå¿ èŠããããŸããããŒã«ã¯ãããå¯èœã«ããŸãããçµç¹çãªå®è·µããããç¶æããŸããè€æ°ã®èšèªãè€æ°ã®ãã©ãããã©ãŒã ããããŠæ°å幎ã«ãããèç©ãããã³ãŒãã«ãŸããããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãéçšããäŒæ¥ã«ãšã£ãŠãããŒã«ã®åºç€ã¯ããã®å šç¯å²ãã«ããŒã§ãããã®ã§ãªããã°ãªããŸãããã³ãŒãããŒã¹ã®80%ãã«ããŒããéçè§£æã®äŸ¡å€ã¯ãå®å šãªã«ãã¬ããžã®äŸ¡å€ã®80%ã§ã¯ãªããã«ããŒãããŠããªã20%ã«ååšãããªã¹ã¯ã«ãã£ãŠå¶éãããŸãã