æåã®éšåã§å§ãŸã£ã話ãç· ããããã ä»æ¥ã¯ãæ¥åžžæ¥åã§SObjectizerã䜿çšããŠé·å¹Žã«ããã£ãŠçºçããããã€ãã®ã¬ãŒãã«ã€ããŠèŠãŠãããŸãã
ã¬ãŒãã®ãªã¹ããç¶ããŸã
人ã ã¯åæãæãã§ããŸã...
ã¢ã¯ã¿ãŒã¢ãã«ã®ã¢ã¯ã¿ãŒãšSObjectizerã®ãšãŒãžã§ã³ãã¯ãéåæã¡ãã»ãŒãžãä»ããŠéä¿¡ããŸãã ãããŠããããã¢ã¯ã¿ãŒã®ã¢ãã«ãããã€ãã®ã¿ã€ãã®ã¿ã¹ã¯ã«ãšã£ãŠé åçã§ããçç±ã®1ã€ã§ãã éåææ§ã¯åºç€ã®1ã€ã§ãããããŒãã¹ã®1ã€ã§ããããã«æãããã®ã§ãå¥åº·ã掻çšããŠæ¥œããã§ãã ããã
ããããéããŸãã å®éã«ã¯ããªã¯ãšã¹ãã¯ããã«SObjectizerã®ãšãŒãžã§ã³ãã®åæçžäºäœçšã®å¯èœæ§ãäœãå§ããŸããã éåžžã«é·ãéãç§ã¯ãããã®èŠæ±ã«æµæããŸããã ããããçµå±åœŒã¯ãããããŸããã SObjectizerã§1ã€ã®ãšãŒãžã§ã³ãããå¥ã®ãšãŒãžã§ã³ãã«åæãªã¯ãšã¹ããå®è¡ããæ©èœãè¿œå ããå¿ èŠããããŸããã
ã³ãŒãã§ã¯æ¬¡ã®ããã«ãªããŸãã
// . struct get_messages final : public so_5::signal_t {}; ... // ... auto msgs = request_value<std::vector<message>, get_messages>(mbox, so_5::infinite_wait); // ... . for(const auto & m : msgs) ...
ããã¯request_valueé¢æ°ã®åŒã³åºãã§ãããã®é¢æ°ã¯åæèŠæ±ãå®è¡ããèŠæ±çµæãåä¿¡ããããŸã§çŸåšã®ã¹ã¬ããã®å®è¡ãäžæåæ¢ããŸãã
ãã®å Žåãå¿çã§ã¡ãã»ãŒãžãªããžã§ã¯ãã®ãã¯ãã«ãååŸããããã«ãget_messagesã¿ã€ãã®ãªã¯ãšã¹ããéä¿¡ããŸãã ãããŠãå¶éæéãªãã§çããåŸ ã¡ãŸãã
ãã ããSObjectizerã¯ããããã¹ãŠã¡ãã»ãŒãžãéããŠåãããã«å®è£ ããŸãã request_valueå ã§ãã¡ãã»ãŒãžãã¿ãŒã²ãããšãŒãžã§ã³ãã«éä¿¡ãããéåžžã®æ¹æ³ã§åä¿¡ããã³åŠçãããŸãã ã€ãŸã åä¿¡è ã¯ãåæèŠæ±ãèªåã«å±ããããšãç¥ããŸããã圌ã«ãšã£ãŠã¯ããã¹ãŠãéåžžã®éåæã¡ãã»ãŒãžã®ããã«èŠããŸãã
class collector : public so_5::agent_t { public : ... virtual void so_define_agent() override { // . so_subscribe(mbox).event<get_messages>(&collector::on_get_messages); ... } private : std::vector<messages> collected_messages_; // , get_messages. std::vector<messages> on_get_messages() { std::vector<messages> r; std::swap(r, collected_messages_); return r; } };
ã€ãŸã ã³ã¬ã¯ã¿ãŒ:: on_get_messageså ã§ã¯ãã¡ãã»ãŒãžåä¿¡ãšãŒãžã§ã³ãã¯ãget_messagesãéåžžã®éåæã¡ãã»ãŒãžãšããŠåä¿¡ããããåæèŠæ±ã®äžéšã§ããããå€å¥ã§ããŸããã
ããããå éšã§ã¯ãæšæºC ++ 11ã©ã€ãã©ãªã®std :: promiseããã³std :: futureã«åºã¥ããŠæ§ç¯ããããããŸãè€éã§ã¯ãªãã¡ã«ããºã ãé ãããŠããŸãã
ãŸããåæèŠæ±ãéä¿¡ãããšããåä¿¡è ã¯éåžžã®ã¡ãã»ãŒãžãåä¿¡ããŸããããå éšã®std :: promiseãªããžã§ã¯ããšãšãã«ãåä»ãªã¡ãã»ãŒãžãåä¿¡ããŸãã
struct special_message : public so_5::message_t { std::promise<std::vector<messages>> promise_; ... };
ãã®ã¡ãã»ãŒãžã¯ããµãã¹ã¯ã©ã€ãæã«SObjectizerã«ãã£ãŠèªåçã«çæãããç¹å¥ãªãã³ãã©ãŒã«å ¥ããŸãã
collector * collector_agent = ...; auto actual_message_handler = [collector_agent](special_message & cmd) { try { cmd.promise_.set_value(collector_agent->on_get_messages()); } catch(...) { cmd.promise_.set_exception(std::current_exception()); } }; do_special_subscribe<get_messages, special_message>(mbox, actual_message_handler);
ãã®ããªãããŒãªãã³ãã©ãŒã¯ãŠãŒã¶ãŒå®çŸ©ã®ã¡ãã»ãŒãžãã³ãã©ãŒãåŒã³åºãããã®åŸãæ»ãå€ïŒãŸãã¯ã¹ããŒãããäŸå€ïŒãããªãããŒãªã¡ãã»ãŒãžããstd :: promiseãªããžã§ã¯ãã«ä¿åããŸãã ããã«ãããèŠæ±éä¿¡è ãã¹ãªãŒãããŠããstd :: futureãããªã¬ãŒãããŸãã ãããã£ãŠãrequest_valueããã®æ»ããçºçããŸãã
æããã«ããšãŒãžã§ã³ãéã®åæçžäºäœçšã¯ããããããã¯ãååŸããçŽæ¥çãªæ¹æ³ã§ãã ãããã£ãŠãSObjectizerã«ã¯request_valueããããŸãããæ éã«äœ¿çšããããšããå§ãããŸãã
å人çã«é¢çœãã®ã¯ãrequest_valueã®æçšãªã¢ããªã±ãŒã·ã§ã³ãããã«èŠã€ãã£ãããšã§ãã éè² è·ãããšãŒãžã§ã³ããä¿è·ããã¡ã«ããºã ã§ã ãã®ä¿è·ãã³ã¬ã¯ã¿ãŒ/ããã©ãŒããŒã®ãã¢ãä»ããŠè¡ãããå Žåãããã©ãŒããŒã¯request_valueãä»ããŠã¡ãã»ãŒãžã®æ¬¡ã®ãããã«é©çšãããšäŸ¿å©ã§ãã ãŸããã³ã¬ã¯ã¿ãŒãšãŒãžã§ã³ããšããã©ãŒããŒãšãŒãžã§ã³ãã¯ååãšããŠç°ãªãã¹ã¬ããã§åäœãããããããã§ãããããã¯ãçºçããå±éºæ§ã¯æå°éã«æããããŸãã
ãã®ç©èªã®æèšã¯ããã§ãïŒçè«ã¢ãã«ã®ååãå³å®ããããšã¯è¯ãããšã§ãã ããããå®éã«ãããã®ååãšççŸããäœããè¡ãããã«ä¿ãããŠããå Žåã¯ãè³ãåŸããããšã¯çã«ããªã£ãŠããŸãã 圹ã«ç«ã€ãã®ãåºãŠãããããããŸããã
ç®±ããåºããŠããã«é åžïŒãã¹ãŠãããã»ã©ãã©è²ã§ã¯ãããŸãã
SObjectizer-4ã§ã¯ãéçºè ã¯ããã«åæ£ã¢ããªã±ãŒã·ã§ã³ãäœæã§ããŸããã TCP / IPã®äžã«ç¬èªã®ãããã³ã«ããããŸãããããã¯ãC ++ããŒã¿æ§é ãã·ãªã¢ã«åããç¬èªã®æ¹æ³ã§ãã
äžæ¹ã§ãããã¯éåžžã«ã¯ãŒã«ã§æ¥œããã£ãã§ãã åçŽãªãžã§ã¹ãã£ãŒã®å©ããåããŠãåæ£ã¢ããªã±ãŒã·ã§ã³ã®äžéšãå®è¡ãããŠããããŒãéã§ã¡ãã»ãŒãžãèªåçã«é£ã°ãããšãã§ããŸããã SObjectizerã¯ãããŒã¿ã®ã·ãªã¢ã«åãšã·ãªã¢ã«å解é€ããã©ã³ã¹ããŒããã£ãã«ã®å¶åŸ¡ããã¬ãŒã¯æã®åæ¥ç¶ãªã©ãåŠçããŸããã
äžè¬çã«ãæåã¯ãã¹ãŠãã¯ãŒã«ã§ããã
ããããSObjectizerã§è§£æ±ºãããã¿ã¹ã¯ã®ç¯å²ãæ¡å€§ããã¢ããªã±ãŒã·ã§ã³ã®è² è·ãå¢å€§ããã«ã€ããŠãå€ãã®åé¡ãçºçããŸããã
- ãŸããã¿ã¹ã¯ã®çš®é¡ããšã«ãç¬èªã®ãããã³ã«ãæã€ããšãæãŸããã§ãã ãšããã®ã¯ããã¬ã¡ããªã®åºãããã€ãŸã å€æ°ã®å°ããªã¡ãã»ãŒãžã®äº€æïŒäžéšã®æ倱ã¯ã²ã©ããªãïŒã¯ã倧ããªãã€ããªãã¡ã€ã«ã®äº€æãšã¯å€§ããç°ãªããŸãã ããšãã°ã倧ããªã¢ãŒã«ã€ããŸãã¯ãããªãã¡ã€ã«ã亀æããå¿ èŠãããã¢ããªã±ãŒã·ã§ã³ã¯ãçŸåšã®æ°æž©ã®ã»ã³ãµãŒããæ°åã®ã¡ãã»ãŒãžãéä¿¡ãããã¢ããªã±ãŒã·ã§ã³ä»¥å€ã®ãããã³ã«ã䜿çšããå¿ èŠããããŸãã
- 第äºã«ãéåæãšãŒãžã§ã³ãã®ããã¯ãã¬ãã·ã£ãŒã®å®è£ èªäœã¯ç°¡åãªããšã§ã¯ãããŸããã ãŸãããããã¯ãŒã¯çµç±ã®éä¿¡ãããã«æ··åšãããšãç¶æ³ã¯ããã«æªåããŸãã ãããã¯ãŒã¯ã®é 延ãããŒãã®1ã€ã§ã®ãã¬ãŒãã³ã°ã¯ãä»ã®ããŒãã§å€§éã®æªé ä¿¡ã¡ãã»ãŒãžã®èç©ãæããããã¯ããªãç¡é§ã«ãªããŸãã
- 第äžã«ã倧èŠæš¡ãªåæ£ã·ã¹ãã ã1ã€ã®C ++ã§ããæžããªãæ代ã¯ãã£ãšåã«çµãããŸããã ä»æ¥ãç¹å®ã®ã³ã³ããŒãã³ãã¯ä»ã®ããã°ã©ãã³ã°èšèªã§äœæãããŸãã ã€ãŸããçžäºéçšæ§ãå¿ èŠã§ãã ããã¯ãC ++ãšSObjectizerã«ãã£ãŠåŒ·åãããç¬èªã®ãããã³ã«ã¯åœ¹ã«ç«ããªãããåæ£ã¢ããªã±ãŒã·ã§ã³ã®éçºã劚ãããšããäºå®ã«èªåçã«ã€ãªãããŸãã
ãããã£ãŠãSObjectizer-5ã«ã¯é åžããµããŒãããããŒã«ããããŸããã ç§ãã¡ã¯ãäºå®äžã®æšæºãããã³ã«ãä»ããŠããšãŒãžã§ã³ããšå€çãšã®ã³ãã¥ãã±ãŒã·ã§ã³ãä¿é²ããããšãç®æããŠããŸãã ããã¯ãç¬èªã®èªè»¢è»ãçºæãããããåªããŠããŸãã
å€ãã®ãšãŒãžã§ã³ãã¯åé¡ã§ããã解決çã§ã¯ãããŸããã SEDA-wei foreverïŒ
ãŸãããã®ãããã¯ã¯å人çã«éåžžã«äŒŒãŠããŸãã 圌ãã¯ããŒã±ãã£ã³ã°ãšåžžèãäºãã«ççŸããå¯èœæ§ãããããšãããäžåºŠåŒ·èª¿ãããã:)
ããŒã±ãã£ã³ã°è³æã®ã»ãšãã©ãã¹ãŠã®ã¢ã¯ã¿ãŒãã¬ãŒã ã¯ãŒã¯ã¯ãã¢ã¯ã¿ãŒã軜éãšã³ãã£ãã£ã§ãããšå¿ ç¶çã«è¿°ã¹ãŠãããã¢ããªã±ãŒã·ã§ã³ã§ã¯ãå°ãªããšã10äžäººãå°ãªããšã100äžäººãå°ãªããšã1000äžäººã®ã¢ã¯ã¿ãŒãäœæã§ããŸãã
æºåãã§ããŠããªãããã°ã©ããŒãããã°ã©ã ã§100äžäººã®ä¿³åªãäœæããæ©äŒã«çŽé¢ãããšã圌ã®å±æ ¹ã¯ãããã«ç Žå£ããããããããŸããã ã¢ããªã±ãŒã·ã§ã³å ã®åã¢ã¯ãã£ããã£ãã¢ã¯ã¿ãŒãšããŠé 眮ããã®ã¯ãšãŠãé åçã§ãã
ããã°ã©ããŒã¯ãã®ãããªèªæã«è² ããŠããã¹ãŠã®äººã®ããã«ã¢ã¯ã¿ãŒãäœæãå§ããããã«åœŒãèªåã®ããã°ã©ã ã«äœäžãŸãã¯äœåäžãã®ã¢ã¯ã¿ãŒãããããšã«æ°ã¥ããŸã...ããã¯ã2ã€ã®åé¡ã®å°ãªããšã1ã€ã«ã€ãªãããŸãã
100äžäººã®ã¢ã¯ã¿ãŒãããã¢ããªã±ãŒã·ã§ã³å ã§äœãèµ·ãã£ãŠããã®ã§ããããïŒ
å€æ°ã®ã¢ã¯ã¿ãŒãäœæãããšãã«çºçããå¯èœæ§ã®ããæåã®åé¡ã¯ãããã°ã©ã ã§äœãèµ·ãã£ãŠããã®ããããã°ã©ã ããã®ããã«æ©èœããçç±ãããã³ããã°ã©ã ãããã«åäœããæ¹æ³ã«ã€ããŠã®ç解äžè¶³ã§ãã
èµ·ããã®ã¯ãé³¥ã®çŸ€ãã®å¹æãšåŒã°ãããã®ã§ãã矀ãã®äžã®åã ã®é³¥ã®è¡åã¯ãããã€ãã®åçŽãªã«ãŒã«ã®ã»ããã§èšè¿°ã§ããŸããã矀ãå šäœã®æ§æã¯è€éã§ãã»ãšãã©äºæž¬ã§ããŸããã
åæ§ã«ãå€æ°ã®ãšãŒãžã§ã³ããæã€ã¢ããªã±ãŒã·ã§ã³ã®å Žåã åãšãŒãžã§ã³ãã¯ã·ã³ãã«ã§ç解å¯èœãªã«ãŒã«ã«åŸã£ãŠåäœã§ããŸãããã¢ããªã±ãŒã·ã§ã³å šäœã®åäœãäºæž¬ããããšã¯å°é£ã§ãã
ããšãã°ãäžéšã®ãšãŒãžã§ã³ãã¯çªç¶çåœã®å åã瀺ããªããªããŸãã 圌ãã®ããã«èŠããŸããã圌ãã®äœåã¯èŠããŸããã ãããŠãçªç¶åœŒãã¯ãç®ãèŠãŸãããä»ã®ãšãŒãžã§ã³ãã«ååãªãªãœãŒã¹ããªãã»ã©æŽ»çºã«åãå§ããŸãã
äžè¬ã«ã1äžäººã®ãšãŒãžã§ã³ããããã¢ããªã±ãŒã·ã§ã³å ã§çºçããŠããããšã远跡ããããšã¯ã100人ã®ãšãŒãžã§ã³ãã®ã¿ãåäœããã¢ããªã±ãŒã·ã§ã³ãããã¯ããã«è€éã§ãã 1äžäººã®ãšãŒãžã§ã³ããããŠããã®ãã¡ã®1人ã®è² è·ãã©ãã»ã©é«ãããç¥ããããšæ³åããŠãã ããã ããã¯ãã§ã«åé¡ã«ãªããšæããŸãã
ãšããã§ãErlangã®çŽ æŽãããæ©èœã®1ã€ã¯ãErlangãå çã®ããã®ããŒã«ãæäŸããŠããããšã§ãã éçºè ã¯ãå°ãªããšãèªåã®Erlangä»®æ³ãã·ã³å ã§äœãèµ·ãã£ãŠããããèŠãããšãã§ããŸãã ããã»ã¹ã®æ°ãåããã»ã¹ãæ¶è²»ããéããã¥ãŒã®ãµã€ãºãªã©ã ããããErlangã«ã¯ç¬èªã®ä»®æ³ãã·ã³ããããããã¯å¯èœã§ãã
ç§ãã¡ãC ++ã«ã€ããŠè©±ããŠãããªããç§ãç¥ã£ãŠããéãã§ã¯ãC ++ãã¬ãŒã ã¯ãŒã¯ã¯ãã®åéã§Erlangãããã¯ããã«é ããŠããŸãã äžæ¹ã§ã¯ãããã¯å®¢èŠ³çã§ãã ããã§ããC ++ã¯ãã€ãã£ãã³ãŒãã«ã³ã³ãã€ã«ããããã€ãã£ãã³ãŒãã®äžéšãç£èŠããããšã¯ã¯ããã«å°é£ã§ãã äžæ¹ããã®ãããªç£èŠã®å®è£ ã¯éèŠãªäœæ¥ã§ãããå€ãã®åŽåãšæè³ãå¿ èŠã§ãã ãããã£ãŠãçŽç²ãªç±æã ãã§éçºããããªãŒãã³ãœãŒã¹ãã¬ãŒã ã¯ãŒã¯ã®é«åºŠãªæ©èœãæåŸ ããããšã¯å°é£ã§ãã
ãã®ãããC ++ã¢ããªã±ãŒã·ã§ã³ã§å€æ°ã®ãšãŒãžã§ã³ããäœæããErlangãšåãé«åºŠãªç£èŠããŒã«ãæã£ãŠããªãå Žåãã¢ããªã±ãŒã·ã§ã³ãç£èŠããŠããã§æ©èœãããã®ãç解ããããšã¯å°é£ã§ãã
çªç¶ã®æŽ»åã®ççº
èãããã2çªç®ã®åé¡ã¯ãã¢ã¯ã¿ãŒã®äžéšãçªç¶ãå©çšå¯èœãªãã¹ãŠã®ãªãœãŒã¹ãæ¶è²»ãå§ãããšãã®ã¢ã¯ãã£ããã£ã®çªç¶ã®ããŒã¹ãã§ãã
ã¢ããªã±ãŒã·ã§ã³ã«10äžäººã®ãšãŒãžã§ã³ãããããšæ³åããŠãã ããã ãããããäœããã®æäœãéå§ããã¿ã€ããŒãèšå®ããŠæäœã®ã¿ã€ã ã¢ãŠããå¶åŸ¡ããŸãã
ã¢ããªã±ãŒã·ã§ã³ã®äžéšãã¹ããŒããŠã³ãå§ãã以åã«éå§ãããæäœãã¿ã€ã ã¢ãŠãã«ãã£ãŠèœã¡å§ããã¿ã€ã ã¢ãŠãã®æéåãã«é¢ããä¿çäžã®ã¡ãã»ãŒãžããããã§å°çãå§ãããšããŸãã ããšãã°ã2ç§ä»¥å ã«1äžåã®ã¿ã€ããŒãæ©èœããŸããã ããã¯ãä¿çäžã®ã¡ãã»ãŒãžãã³ãã©ãŒ1äžåãåŒã³åºãããšãæå³ããŸãã
ãããŠãããã§ã¯ãäœããã®çç±ã§ãã®ãããªåããã»ããµã10ããªç§ãè²»ããããšãå€æããå ŽåããããŸãã ããã¯ã1äžä»¶ã®ä¿çã¡ãã»ãŒãžããã¹ãŠåŠçããã®ã«100ç§ãããããšãæå³ããŸãã ãããã®ã¡ãã»ãŒãžã4ã€ã®äžŠåã¹ã¬ããã§åŠçãããå Žåã§ãã ãããããŸã 25ç§ã§ãã
ãã®25ç§éãã¢ããªã±ãŒã·ã§ã³ã®äžéšãæãã«ããªãŒãºããããšãããããŸããã ãããŠãããã1äžä»¶ã®ä¿çäžã®ã¡ãã»ãŒãžãåŠçãããŸã§ãä»ã«ã¯äœãå¿çããŸããã
ãã©ãã«ãäžäººã§æ¥ãããã§ã¯ãããŸãã...
æãæ²ããããšã¯ãäžèšã®åé¡ã®äž¡æ¹ãå®å šã«éè€ããŠããããšã§ãã çªç¶ã®æŽ»åã®æ¥å¢ã«ãããã¢ããªã±ãŒã·ã§ã³ã®äºæããªãåäœã«çŽé¢ããé³¥ã®çŸ€ãã®åœ±é¿ã«ãããäœãèµ·ãã£ãŠããã®ãç解ã§ããŸããã ã¢ããªã±ãŒã·ã§ã³ã¯æ©èœããŠããããã§ãããã©ããããããæ©èœããŸããã ãããŠãããã«ã€ããŠäœããã¹ããã¯æ確ã§ã¯ãããŸããã ãã¡ãããããªãã¯æãã«ã¢ããªã±ãŒã·ã§ã³ãç Žã£ãŠããããåèµ·åããããšãã§ããŸãã ããããããã¯10äžäººã®ãšãŒãžã§ã³ããåäœæããããç¶æ ã§ãããã埩å ããããå€éšãµãŒãã¹ãžã®æ¥ç¶ãåéããããšãªã©ãæå³ããŸãã æ®å¿µãªããããã®ãããªåèµ·åã«ã¯è²»çšã¯ããããŸããã
ãã®ãããã¢ããªã±ãŒã·ã§ã³ã«å€æ°ã®ãšãŒãžã§ã³ããäœæããæ©èœããåé¡ã解決ããæ¹æ³ãšããŠæ±ãã¹ãã§ã¯ãããŸããã ãããŠãèªåèªèº«ãããã«åé¡ã«ããæ¹æ³ãšããŠã
ãã¡ããã解決çã¯ç°¡åã§ããããå°ãªããšãŒãžã§ã³ãã§è¡ãå¿ èŠããããŸãã ãããããããè¡ãæ¹æ³ã¯ïŒ
SEDAã¢ãããŒã
SEDAïŒStaged Event-Driven ArchitectureïŒã¢ãããŒããå°å ¥ãããšãé è³ãéåžžã«ããŸãæ©èœããŸãã 2000幎代åé ãå°ããªã°ã«ãŒãã®ç 究è ãJavaã§åãååã®ãã¬ãŒã ã¯ãŒã¯ãéçºããããã«ãããåºã«ãªãã¢ã€ãã¢ã®å®è¡å¯èœæ§ã蚌æããŸããïŒè€éãªæäœã®å®è¡ãã¹ããŒãžã«åå²ããåã¹ããŒãžã«åå¥ã®å®è¡ãããŒïŒãŸãã¯ã¹ã¬ããã®ã°ã«ãŒãïŒãå²ãåœãŠãã¹ããŒãžéã®çžäºäœçšãæŽçããŸãéåæã¡ãã»ãŒãžãã¥ãŒã
æ¯æãèŠæ±ã«å¯Ÿå¿ããå¿ èŠããããšæ³åããŠãã ããã ãªã¯ãšã¹ããåä¿¡ãããã©ã¡ãŒã¿ã確èªããŠããããã®ã¯ã©ã€ã¢ã³ãã®æ¯æãã®å¯èœæ§ã確èªãïŒããšãã°ã圌ãæ¯æãã®1æ¥ã®é床ãè¶ ãããã©ããïŒãæ¯æãã®ãªã¹ã¯ãè©äŸ¡ããŸãïŒããšãã°ãã¯ã©ã€ã¢ã³ãããã©ã«ãŒã·ããã§ãæ¯æããäœããã®çç±ã§ãã³ã°ã©ãã·ã¥ããéå§ãããå ŽåïŒ ããã®åŸãããã¯çãããïŒããã§ã«è³éãåŒãèœãšããæ¯æãçµæãçæããŠããŸãã ããã§ã¯ãåäžã®æäœãåŠçããããã€ãã®æ®µéãæ確ã«èŠãããšãã§ããŸãã
ã¢ããªã±ãŒã·ã§ã³ã§100äžäººã®ãšãŒãžã§ã³ããäœæã§ãããããæ¯æãããšã«1人ã®ãšãŒãžã§ã³ããäœæããå¿ èŠããããŸãããšãŒãžã§ã³ãã¯ãèªåã§ãã¹ãŠã®æ®µéãäžè²«ããŠå®è¡ããŸãã ã€ãŸã 圌èªèº«ãæ¯æããã©ã¡ãŒã¿ãæ€èšŒãã1æ¥ã®é床ãšãã®è¶ éã決å®ããäžæ£ç£èŠã·ã¹ãã ãªã©ã«èŠæ±ãåºããŸãã æŠç¥çã«ã¯ã次ã®ããã«ãªããŸãã
SEDAã¢ãããŒãã®å Žåãå段éã§1ã€ã®ãšãŒãžã§ã³ããå®è¡ã§ããŸãã 1人ã®ãšãŒãžã§ã³ãã¯é¡§å®¢ããã®æ¯æãèŠæ±ãåãå ¥ãã2çªç®ã®ãšãŒãžã§ã³ãã«è»¢éããŸãã 2çªç®ã®ãšãŒãžã§ã³ãã¯èŠæ±ãã©ã¡ãŒã¿ãŒã確èªããæå¹ãªèŠæ±ã3çªç®ã®ãšãŒãžã§ã³ãã«éä¿¡ããŸãã 3çªç®ã®ãšãŒãžã§ã³ãã¯å¶éãªã©ããã§ãã¯ããŸãã æŠç¥çã«ã¯ã次ã®ããã«ãªããŸãã
ãšãŒãžã§ã³ãã®æ°ã¯æ¡éãã«åæžãããŸãã ãããã®ãšãŒãžã§ã³ãã®ç£èŠã¯ã¯ããã«ç°¡åã§ãã ãã®ãããªãšãŒãžã§ã³ãã®éè² è·ããã®ä¿è·ã¯å€§å¹ ã«ç°¡çŽ åãããŠããŸãã ãããã®ãšãŒãžã§ã³ãã¯ãDBMSã§åäœããå Žåãäžæ¬æäœã䜿çšããæ©äŒãåŸãŸãã ã€ãŸã ãšãŒãžã§ã³ãã¯ãããšãã°1000åã®ã¡ãã»ãŒãžãèç©ããããŒã¿ããŒã¹ãžã®2ã3åã®äžæ¬åŒã³åºãã§ããããã¹ãŠãåŠçããŸãã ãšãŒãžã§ã³ãã®æŽ»åã«åœ±é¿ãäžããæ©äŒããããŸãã ããšãã°ãå€éšã®äžæ£ç£èŠã·ã¹ãã ãçªç¶èœã¡ãŠã1äžä»¶ã®åŠå®çãªåçãçæããå¿ èŠãããå Žåããããã®1äžä»¶ã®åçãã¹ãŠãããã«éä¿¡ããã®ã§ã¯ãªããããšãã°10ç§éåçã«åºããããšãã§ããŸãã ãããã£ãŠãã·ã¹ãã ã®ä»ã®éšåãéè² è·ããä¿è·ããŸãã
è¿œå ã®ããŒãã¹ïŒ1ã€ã®ãšãŒãžã§ã³ãã®ã¿ãç¹å®ã®ã¹ããŒãžã«ãµãŒãã¹ãæäŸããå Žåããã®ã¹ããŒãžã§ã®ãã©ã³ã¶ã¯ã·ã§ã³åŠçã®åªå é äœä»ãã¿ã¹ã¯ã¯å€§å¹ ã«ç°¡çŽ åãããŸãã ããšãã°ãã¹ã±ãžã¥ãŒã«ããããã©ã³ã¶ã¯ã·ã§ã³ãããåªå 床ã®é«ããªã³ã©ã€ã³ã¯ã©ã€ã¢ã³ãããã®ãã©ã³ã¶ã¯ã·ã§ã³ãåŠçããå¿ èŠãããå Žåã SEDAã¢ãããŒãã®å Žåãããã¯åãšãŒãžã§ã³ããåãã©ã³ã¶ã¯ã·ã§ã³ãæ åœããå Žåãããç°¡åã«å®è£ ãããŸãã
ããã«ãSEDAã¢ãããŒãã®ãã¬ãŒã ã¯ãŒã¯å ã§ãã£ãŠããã¢ã¯ã¿ãŒã¢ãã«ãæäŸããã¡ãªããã掻çšããŠããŸãã ããããæåéãæ°äžäººã§ã¯ãªãæ°å人ã®ä¿³åªã«å¶éãããŠããŸãã
ãããã«
çµè«ãšããŠã俳åªã®ã¢ãã«ã¯ã¯ãŒã«ãªãžã§ãŒã¯ã§ãããç¹å¹è¬ã§ã¯ãããŸããã ããã€ãã®ã¿ã¹ã¯ã§ã¯ãã¢ã¯ã¿ãŒã®ã¢ãã«ã¯ããŸãæ©èœããŸãããããã§ãªããã®ãããã°ããŸã£ããæ©èœããªããã®ããããŸãã
ããããã¢ã¯ã¿ãŒã®ã¢ãã«ãã¿ã¹ã¯ã«åã£ãŠããŠããããã§ãããã€ãã®ããšã¯å®éã«ã¯çããªãã§ãããïŒ
- ãŸããéçºè èªèº«ãè©ã«é ãæ±ããŠããå¿ èŠããããŸãã éçºè ãã¢ããªã±ãŒã·ã§ã³ã§æ°åäžäººã®ã¢ã¯ã¿ãŒãæèããã«äœæããéè² è·ã®åé¡ãèãããã¢ã¯ãã£ããã£ã®èªçºçãªããŒã¹ããäœã§ããããªã©ããããªãå Žåãã¢ã¯ã¿ãŒã®ã¢ãã«ã䜿çšãããšãããã¢ã¹ã¬ãã;
- 第äºã«ãã¢ã¯ã¿ãŒãã¬ãŒã ã¯ãŒã¯ãéçºè ã«ãã¹ãŠã®å¯èœãªæ¯æŽãæäŸããããšã¯è¯ãããšã§ãã ç¹ã«ãã¢ã¯ã¿ãŒãéè² è·ããä¿è·ãããããªããšããšã©ãŒåŠçãããã³ã¢ããªã±ãŒã·ã§ã³å ã§èµ·ãã£ãŠããããšã®å 芳ã ãã®ãããSObjectizerã®æ©èœããã®æ¹åã«åŸã ã«æ¡åŒµããŠããŸãã ã¡ãã»ãŒãžã®å¶éãäŸå€ãžã®åå¿ãçµ±èšæ å ±ã®åéãæ å ±ã®ç£èŠãã¡ãã»ãŒãžé ä¿¡ã¡ã«ããºã ããã¬ãŒã¹ããããã®ããŒã«ãªã©ããã§ã«è¿œå ããŠããŸãã
ãšããã§ã俳åªã®ãã¬ãŒã ã¯ãŒã¯å ã®ãã®ãããªè£å©ããŒã«ã®ã»ããã¯ãç§ã®æèŠã§ã¯ããã¬ãŒã ã¯ãŒã¯ã®æç床ã決å®ããå åã§ãã ãã¬ãŒã ã¯ãŒã¯ã§ã¢ã€ãã¢ãå®çŸãããã®ããã©ãŒãã³ã¹ã瀺ãããšã¯ããã»ã©é£ãããããŸããã ããªãã¯æ°ã¶æã®ä»äºãè²»ãããéåžžã«å®çšçã§èå³æ·±ãããŒã«ãæã«å ¥ããããšãã§ããŸãã ããã¯ãã¹ãŠçŽç²ãªç±æã§è¡ãããŸãã æåéãïŒç§ã¯ãã®ã¢ã€ãã¢ã奜ãã§ããããæã¿ããããŸããã
ããããçµ±èšã®åéãã¡ãã»ãŒãžã®è¿œè·¡ãªã©ãããããçš®é¡ã®è£å©æ段ã§çºçããããšãè£ åããããšã¯ããã§ã«éå±ãªã«ãŒãã³ã§ãããæéãšåžæãèŠã€ããã®ã¯ããã»ã©ç°¡åã§ã¯ãããŸããã
ãããã£ãŠãæ¢æã®ã¢ã¯ã¿ãŒãã¬ãŒã ã¯ãŒã¯ãæ¢ããŠãã人ãžã®ç§ã®ã¢ããã€ã¹ïŒã¢ã€ãã¢ã®ç¬åµæ§ãšäŸã®çŸããã ãã§ãªã泚æãæã£ãŠãã ããã ãŸããã¢ããªã±ãŒã·ã§ã³ã§äœãèµ·ãã£ãŠããã®ããææ¡ããã®ã«åœ¹ç«ã€ããããçš®é¡ã®è£å©çãªãã®ãèŠãŠãã ãããããšãã°ãçŸåšã®ã¢ã¯ã¿ã®æ°ããã¥ãŒã®ãµã€ãºãã¡ãã»ãŒãžãåä¿¡è ã«å±ããªãå Žåãã©ãã«è¡ãã®ãã調ã¹ã...ãã®ãããªãã®ãæäŸããããã¯ããªãã®ããã«ç°¡åã«ãªããŸãã ããã§ãªãå Žåã¯ãããã«äœæ¥ãå¿ èŠã«ãªããŸãã
ããŠãç§ã¯èªåã§è¿œå ããŸããäžèšã®ã¬ãŒãããéçºè ãä¿è·ããç¬èªã®ã¢ã¯ã¿ãŒãã¬ãŒã ã¯ãŒã¯ãæåããäœæããŠäœæãããå Žåãããã¯è¯ãèãã§ã¯ãããŸããã å é ã¯çµ¶å¯Ÿã«æ©ç¥ããã§ãã ã¯ããè¿æžã¯ã»ãšãã©ãããŸããã ããã¯ãã§ã«ç¢ºèªãããŠããŸãã 人åã§ã