Google HomeãAmazon Echoã®ãããªããŒã ãªãŒãã¡ãŒã·ã§ã³ã®ããã®ã¢ããªãäœãã«ã¯ïŒ
Google HomeãAmazon Echoã®ãããªããŒã ãªãŒãã¡ãŒã·ã§ã³ã¢ããªãèªäœããæ¹æ³ãåŠã³ãéçºããã»ã¹ãããã¯ãšã³ãæ§é ãçè§£ããäœæ¥ãå¹çåããããã«å©çšã§ããããŒã«ãæ¢ããŸãã

ããŒã ãªãŒãã¡ãŒã·ã§ã³ã¢ããªã®æ§é ãçè§£ãã
ããŒã ãªãŒãã¡ãŒã·ã§ã³ã¢ããªã¯ãç §æãHVACãã»ãã¥ãªãã£ã·ã¹ãã ããšã³ã¿ãŒãã€ã³ã¡ã³ããªã©ãããŸããŸãªã¹ããŒãããã€ã¹ã®å¶åŸ¡ãšç®¡çãå¯èœã«ããããšã§ããŠãŒã¶ãŒãšã€ã³ããªãžã§ã³ãã·ã¹ãã ãšã®å¯Ÿè©±ãç°¡çŽ åããéèŠãªåœ¹å²ãæ ã£ãŠããŸããGoogle HomeãAmazon Echoã®ãããªããŒã ãªãŒãã¡ãŒã·ã§ã³ã¢ããªã®äœæãèšç»ããå Žåããã®æ§é ãšæ§æèŠçŽ ãçè§£ããããšãå¿ èŠäžå¯æ¬ ã§ããäžè¬çãªããŒã ãªãŒãã¡ãŒã·ã§ã³ã¢ããªã®äž»ãªæ§æèŠçŽ ã¯ä»¥äžã®éãã§ãïŒ
- ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹ïŒUIïŒïŒãŠãŒã¶ãŒãã¹ããŒãããã€ã¹ãã·ã¹ãã ãšå¯Ÿè©±ããããŒã ãªãŒãã¡ãŒã·ã§ã³ã®ã»ããã¢ãããå¶åŸ¡ããã³ç£èŠã§ããããã«ããŸãã
- ããã¯ãšã³ãã¢ãŒããã¯ãã£ïŒããŒã¿ã®ä¿åãåŠçãåæãªã©ã®éèŠãªæ©èœãæäŸããIoTããã€ã¹ã®ã·ãŒã ã¬ã¹ãªéä¿¡ãšç®¡çãå¯èœã«ããŸãã
- éä¿¡ãããã³ã«ãšIoTãã¬ãŒã ã¯ãŒã¯ïŒã¢ããªãã¹ããŒãããã€ã¹ããŠãŒã¶ãŒéã®å®å šæ§ãä¿¡é Œæ§ããªã¢ã«ã¿ã€ã æ§ã確ä¿ããŸããäžè¬çãªèŠæ ŒãšããŠãMQTTãCoAPãWebSocketããããŸãã
- APIãšçµ±åïŒããŸããŸãªã¹ããŒãããã€ã¹ããµãŒãããŒãã£ãŒã®ãµãŒãã¹ãšã®çµ±åãä¿é²ããããŒã ãªãŒãã¡ãŒã·ã§ã³ã¢ããªã®äºææ§ãšæ¡åŒµæ§ãå®çŸããŸãã
- ãªã¢ã«ã¿ã€ã ã®ã¢ãã¿ãªã³ã°ãšç®¡çïŒã¹ããŒãããã€ã¹ãã·ã¹ãã ããªã¢ã«ã¿ã€ã ã§ç£èŠã»ç®¡çããæé©ãªåäœãšå¹ççãªãšãã«ã®ãŒæ¶è²»ãå®çŸããŸãã

ãããã®ã³ã³ããŒãã³ããæç¢ºã«çè§£ããããšã§ãã³ã³ã»ãããããããã€ã¡ã³ããŸã§ãéçºããã»ã¹å šäœãéããŠåœ¹ç«ã¡ããŠãŒã¶ãŒã®ããŒãºãšæåŸ ã«å¿ããç¬èªã®ããŒã ãªãŒãã¡ãŒã·ã§ã³ã¢ããªãç°¡åã«æ§ç¯ããããšãã§ããŸãã
é©åãªæè¡ã¹ã¿ãã¯ãéžæãã
ç¹å®ã®èŠä»¶ãæºãããåªãããŠãŒã¶ãŒäœéšãæäŸããããŒã ãªãŒãã¡ãŒã·ã§ã³ã¢ããªãéçºããã«ã¯ãé©åãªãã¯ãããžãŒã¹ã¿ãã¯ãæ€èšããããšãäžå¯æ¬ ã§ããé©åã«éžæãããæè¡ã¹ã¿ãã¯ã¯ãã¢ããªã®å®å®æ§ãã»ãã¥ãªãã£ãä¿¡é Œæ§ãããã³ã¹ã±ãŒã©ããªãã£ãä¿èšŒããŸããããã§ã¯ãããŒã ãªãŒãã¡ãŒã·ã§ã³ã¢ããªãäœæããéã«èæ ®ãã¹ãéèŠãªãã¯ãããžãŒãšããŒã«ã玹ä»ããŸãïŒ
- RESTful APIïŒRESTful APIïŒã¢ããªãšIoTããã€ã¹éã®éä¿¡ã®ããã®æšæºåããããã¬ãŒã ã¯ãŒã¯ãæäŸããŸããæ§ã ãªã¹ããŒãããã€ã¹ããã©ãããã©ãŒã ãšã®ã¹ã ãŒãºãªçµ±åãšéä¿¡ãå¯èœã«ããŸãã
- WebSocketïŒã¢ããªãš IoT ããã€ã¹éã®ãªã¢ã«ã¿ã€ã éä¿¡ãä¿é²ããè¿ éãªã¬ã¹ãã³ã¹ã¿ã€ã ãšãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ã®åäžãä¿èšŒããŸããWebSocketã¯ãé«åºŠãªã·ããªãªã®ããã«RESTful APIãšçµã¿åãããŠäœ¿çšããããšãã§ããŸãã
- IoTãã¬ãŒã ã¯ãŒã¯ïŒMQTTãCoAPãªã©ãé©åãªIoTãã¬ãŒã ã¯ãŒã¯ãéžæããããšã§ãããã€ã¹ã®éä¿¡ãç°¡çŽ åããã¹ããŒãããã€ã¹ãšããã¯ãšã³ãã¢ãŒããã¯ãã£éã®å®å šã§ä¿¡é Œã§ããéä¿¡ãæäŸããŸãã
- ããŒã¿ããŒã¹ãœãªã¥ãŒã·ã§ã³ïŒ PostgreSQLã MongoDBãªã©ãé©åãªããŒã¿ããŒã¹ãœãªã¥ãŒã·ã§ã³ãéžæããããšã§ãå¹ççãªããŒã¿ã®ä¿åãšç®¡çãå¯èœã«ãªããã¢ããªã®ããã©ãŒãã³ã¹ãšã¹ã±ãŒã©ããªãã£ã確ä¿ããããšãã§ããŸãã
- ã¢ããªéçºãã©ãããã©ãŒã ïŒ AppMasterã® ãããªã¢ããªéçºãã©ãããã©ãŒã ãæŽ»çšããããšã§ãéçºããã»ã¹ãå¹çåããdrag-and-drop ããããããçšæããããã³ãã¬ãŒãã§ããã¯ãšã³ãããŠã§ããã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ã§ããŸãã
ãããã®æè¡ãããŒã«ã«ç²ŸéããŠããããšã§ãããŒã ãªãŒãã¡ãŒã·ã§ã³ã¢ããªã®åŒ·åºãªåºç€ãæ§ç¯ãããŠãŒã¶ãŒã®æåŸ ã«å¿ããã·ãŒã ã¬ã¹ãªããã©ãŒãã³ã¹ãæäŸããããšãã§ããŸãã
ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ãšãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ã®èšèš
åªãããã¶ã€ã³ã®ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ïŒUIïŒãšãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ ïŒUXïŒã¯ãããŒã ãªãŒãã¡ãŒã·ã§ã³ã¢ããªãæåãããããã®éèŠãªèŠçŽ ã§ããUIãšUXã¯ãããŸããŸãªã¹ããŒãããã€ã¹ãã·ã¹ãã ãšã®ã·ãŒã ã¬ã¹ãªçžäºäœçšãä¿é²ãããŠãŒã¶ãŒãããŒã ãªãŒãã¡ãŒã·ã§ã³ã®ã»ããã¢ãããå¶åŸ¡ãç£èŠã管çããããšã容æã«ãããã®ã§ããããã§ã¯ãããŒã ãªãŒãã¡ãŒã·ã§ã³ã¢ããªã®UIãšUXããã¶ã€ã³ããéã«èæ ®ãã¹ãäž»èŠãªååãããã€ã玹ä»ããŸãïŒ
- ã·ã³ãã«ã§ ããããšïŒã·ã³ãã«ãïŒã¢ããªã®ãã¶ã€ã³ã¯ãã¯ãªãŒã³ã§ãããã«ããããŠãã¡ããã¡ãããŠããªãããšã確èªããããšã§ããã·ã³ãã«ã§çŽæçãªãã¶ã€ã³ã«ããããšã§ããŠãŒã¶ãŒã®åŠç¿æéãççž®ããã¢ããªãç°¡åã«æäœããããšãã§ããŸãã
- 䜿ããããïŒãŠãŒã¶ãŒãé£ãªãã¹ããŒãããã€ã¹ã«çŽ æ©ãã¢ã¯ã»ã¹ããã³ã³ãããŒã«ã§ããããã«ãã¢ããªã®ã€ã³ã¿ãŒãã§ãŒã¹ãèšèšãããæç¢ºãªæç€ºãäžããæ £ã芪ããã ãã¶ã€ã³ãã¿ãŒã³ãæ¡çšããããšã§ãã¢ããªããã䜿ããããããããšãã§ããŸãã
- çŽæçãªããã²ãŒã·ã§ã³ ã¢ããªã®ã¬ã€ã¢ãŠããšããã²ãŒã·ã§ã³èŠçŽ ãè«ççã«æŽçãããŠãŒã¶ãŒãç®çã®æ©èœãç°¡åã«èŠã€ããŠã¢ã¯ã»ã¹ã§ããããã«ããŸããæ··ä¹±ãé¿ããããã«ãæšæºçãªããã²ãŒã·ã§ã³ãã¿ãŒã³ã䜿çšããŸãã
- äžè²«æ§ïŒã¢ããªå šäœã®è²ããã©ã³ããã¢ã€ã³ã³ããã¿ã³ãªã©ã®ããžã¥ã¢ã«èŠçŽ ã«äžè²«æ§ãæããããäžè²«ãããã¶ã€ã³èšèªã¯ããŸãšãŸãã®ãããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãçã¿åºãããã©ã³ãèªç¥ãä¿é²ããŸãã
- ãŠãŒã¶ãŒãã£ãŒããã㯠ãŠãŒã¶ãŒã®è¡åã確èªããã¢ããªãããã€ã¹ã®ç¶æ ã«ã€ããŠåžžã«æ å ±ãæäŸããããã«ãã¿ã€ã ãªãŒãªãã£ãŒãããã¯ãæäŸãããã¢ãã¡ãŒã·ã§ã³ããã€ãã¬ãŒã·ã§ã³ããµãŠã³ããªã©ãèŠèŠçã»èŽèŠçãªåå³ã掻çšããŠããŠãŒã¶ãŒã«æŽæ°ã倿Žãéç¥ããŸãã
ããŒã ãªãŒãã¡ãŒã·ã§ã³ã¢ããªã®UIãšUXãèšèšããéã«ããããã®ååãèæ ®ããããšã§ãå¿«é©ãªãŠãŒã¶ãŒäœéšãå®çŸãããŠãŒã¶ãŒãã¢ããªãã·ãŒã ã¬ã¹ã«æäœããã¹ããŒãããã€ã¹ãã·ã¹ãã ãæå€§éã«æŽ»çšã§ããããã«ããŸãã
ããã¯ãšã³ãã¢ãŒããã¯ãã£ã®éçº
ããã¯ãšã³ãã¢ãŒããã¯ãã£ã¯ãããŒã ãªãŒãã¡ãŒã·ã§ã³ã¢ããªã®ããã¯ããŒã³ã§ãããéä¿¡ãããŒã¿ã¹ãã¬ãŒãžãåŠçãããã³ã»ãã¥ãªãã£ãåŠçããŸãããŠãŒã¶ãŒãã¢ããªãIoTããã€ã¹éã®ã·ãŒã ã¬ã¹ãªã€ã³ã¿ã©ã¯ã·ã§ã³ã確ä¿ããããã«ã¯ãå¹ççã§ã¹ã±ãŒã©ãã«ãªããã¯ãšã³ããäžå¯æ¬ ã§ããããã§ã¯ãããã¯ãšã³ãã¢ãŒããã¯ãã£ãéçºããéã«èæ ®ãã¹ãéèŠãªèŠçŽ ã玹ä»ããŸãïŒ
é©åãªããŒã¿ããŒã¹ãœãªã¥ãŒã·ã§ã³ã®éžæ
ããŒã ãªãŒãã¡ãŒã·ã§ã³ã¢ããªã§ã¯ããŠãŒã¶ãŒããŒã¿ãããã€ã¹æ å ±ã䜿çšçµ±èšãèšå®ãä¿åã»ç®¡çããããã«ãå®å®ããã¹ã±ãŒã©ãã«ãªããŒã¿ããŒã¹ãœãªã¥ãŒã·ã§ã³ãå¿ èŠã§ããäž»èŠãªããŒã¿ã®ä¿åã«ã¯ãPostgreSQLäºæã®ããŒã¿ããŒã¹ã䜿çšããããšãæ€èšããŠãã ãããPostgreSQLã¯ãå ç¢æ§ãã¹ã±ãŒã©ããªãã£ãæ¡åŒµæ§ã§ç¥ããã匷åãªãªãŒãã³ãœãŒã¹ã®ãªããžã§ã¯ããªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ã·ã¹ãã ã§ããAppMasterãŸããæå 端㮠ããŒã³ãŒããã©ãããã©ãŒã ã§ããPostgreSQLã¯ãããã¯ãšã³ãã¢ããªã±ãŒã·ã§ã³ã«PostgreSQLäºæã®ããŒã¿ããŒã¹ããµããŒãããŠããŸãã
èªèšŒãšèªå¯ã®å®è£
ããŒã ãªãŒãã¡ãŒã·ã§ã³ã¢ããªã«æ¥ç¶ãããããã€ã¹ã«ã¢ã¯ã»ã¹ããå¶åŸ¡ã§ããã®ã¯èš±å¯ããããŠãŒã¶ãŒã ãã§ããããšãä¿èšŒããããã«ããŠãŒã¶ãŒèªèšŒãšèªå¯ãéèŠã§ããOAuthãOpenID Connectããããã¯çäœèªèšŒããŒã¹ã®ãã¹ã¯ãŒãã¬ã¹èªèšŒãªã©ãå®å šãªèªèšŒæ¹æ³ãå®è£ ããŠãäžæ£ãªã¢ã¯ã»ã¹ã鲿¢ããŸãã
ããŒã¿ã¢ãã«ãšããžãã¹ããžãã¯ã®èšèš
ã¢ããªã®èŠä»¶ãåæ ããããŸããŸãªã¹ããŒãããã€ã¹ããŠãŒã¶ãŒã圹å²ãæš©éã«å¯Ÿå¿ãã ããŒã¿ã¢ãã«ïŒããŒã¿ããŒã¹ã¹ããŒãïŒãšããžãã¹ããžãã¯ãèšèšããŸããããŒã¿ã¢ãã«ã¯ãå°æ¥çã«æ°ããããã€ã¹ãæ©èœããµããŒãã§ãããããªæè»æ§ãæãããããã«ããŸããããŒã¿ã¢ãã«ãšããžãã¹ããã»ã¹ãå¹ççã«èšèšããããã¯ãšã³ãã¢ããªã±ãŒã·ã§ã³ãäœæããããã«ãAppMaster'ã® ããžã¥ã¢ã«BP Designer㮠䜿çšãæ€èšããŠãã ããã
ã»ãã¥ãªãã£ã®ç¢ºä¿
ããŒã ãªãŒãã¡ãŒã·ã§ã³ã¢ããªã±ãŒã·ã§ã³ã¯ããŠãŒã¶ãŒã®å®¶åºå ã®éèŠãªã·ã¹ãã ãå¶åŸ¡ãããããã»ãã¥ãªãã£ã¯æãéèŠãªé¢å¿äºã§ããããŒã¿è»¢éã®å®å šæ§ã確ä¿ããããã«ãTLSïŒTransport Layer SecurityïŒãªã©ã®å®å šãªéä¿¡ãããã³ã«ãå°å ¥ãããæ©å¯ããŒã¿ã®ä¿åã«ã¯æå·åã䜿çšããããŒã¿ããŒã¹ãAPIãè³ç£ã®å®å šæ§ã確ä¿ããããã®ãã¹ããã©ã¯ãã£ã¹ã«åŸããŸãã
IoTããã€ã¹ã®çµ±å
ããŸããŸãªIoTããã€ã¹ãããŒã ãªãŒãã¡ãŒã·ã§ã³ã¢ããªãšçµ±åããããšã¯ãæ¥ç¶ãããããã€ã¹ã®ã·ãŒã ã¬ã¹ãªéä¿¡ãšå¶åŸ¡ã®ããã«äžå¯æ¬ ã§ããIoTããã€ã¹ã®çµ±åãæåãããããã«ã以äžã®ã¹ãããã«åŸããŸãïŒ
ããã€ã¹ã¡ãŒã«ãŒã® APIã çè§£ãã
ã»ãšãã©ã®IoTããã€ã¹ã¡ãŒã«ãŒã¯ãããã€ã¹ããµãŒãããŒãã£ã¢ããªãšçµ±åããããã®APIãšã©ã€ãã©ãªãŒãæäŸããŠããŸãããããã®APIãçè§£ãã䜿çšããããšã§ãç¹å®ã®ããã€ã¹ã®æ£ããéä¿¡ãšå¶åŸ¡ãå®çŸããŸããå Žåã«ãã£ãŠã¯ãã¡ãŒã«ãŒã¯çµ±åããã»ã¹ãç°¡çŽ åããããã«ãäžè¬çãªããã°ã©ãã³ã°èšèªçšã®SDKãæäŸããããšããããŸãã
IoTéä¿¡ãããã³ã«ã®å®è£
MQTTã®ãããªäžè¬çãªIoTéä¿¡ãããã³ã«ãããŒã ãªãŒãã¡ãŒã·ã§ã³ã¢ããªã«çµ±åããŠãæ¥ç¶ãããããã€ã¹ãšã®å¹ççãªéä¿¡ãå®çŸããŸããMQTTïŒMessage Queuing Telemetry TransportïŒã¯ãIoTããã€ã¹çšã«èšèšããããªãŒãã³ã¹ã¿ã³ããŒãã®è»œéã¡ãã»ãŒãžã³ã°ãããã³ã«ã§ãããã€ã¹ããã¯ã©ãŠããããã€ã¹ããããã€ã¹ã®éä¿¡ã«åºã䜿çšãããŠããŸãã
ã«ã¹ã¿ã ã€ã³ãã°ã¬ãŒã·ã§ã³ã®éçº
ãã€ãã£ãAPIãSDKãæèŒããŠããªãããã€ã¹ã®å Žåãã¢ããªãšã®ã·ãŒã ã¬ã¹ãªçµ±åãå¯èœã«ããã«ã¹ã¿ã ãœãªã¥ãŒã·ã§ã³ãéçºããªããã°ãªããªãå ŽåããããŸããéä¿¡ãã£ãã«ã確ç«ããããŒã¿ã¹ããªãŒã ãè§£éããããã¯ãšã³ãã§ããã€ã¹ã®ãããã¡ã€ã«ãäœæããŠãé©åãªæ©èœã確ä¿ããŸãã
ããã€ã¹ã®äºææ§ã®åŠç
ã¢ããªã®ããã¯ãšã³ããããŸããŸãªäžä»£ãããŒãžã§ã³ã®IoTããã€ã¹ãæ±ããããã«ãããã¡ãŒã ãŠã§ã¢ã®ã¢ããããŒããããŒããŠã§ã¢ã®ãªããžã§ã³ã®å¯èœæ§ãèæ ®ããŸããIoTããã€ã¹ã®ã¡ãŒã«ãŒãã³ãã¥ããã£ãšç·å¯ã«é£æºããäºææ§ã«åœ±é¿ãäžããå¯èœæ§ã®ããã¢ããããŒãã倿Žãæ©æã«éç¥ã§ããããã«ããŸãã
APIãšãªã¢ã«ã¿ã€ã éä¿¡
APIãšãªã¢ã«ã¿ã€ã éä¿¡ã¯ãããŒã ãªãŒãã¡ãŒã·ã§ã³ã¢ããªãšæ¥ç¶ãããããã€ã¹ãšã®éã®ã·ãŒã ã¬ã¹ãªçžäºäœçšãä¿é²ããããã«éèŠã§ããAPIãšãªã¢ã«ã¿ã€ã éä¿¡ãå¹ççã«è¡ãããã«ã以äžã宿œããŸãïŒ
RESTfulãªAPIãèšèšãã
RESTful APIã®èšèš RESTful APIãå®è£ ããŠããŠãŒã¶ãŒãšããã€ã¹ãããã¯ãšã³ãã»ãµãŒãã¹ãšå¯Ÿè©±ããããã®çµ±äžãããã€ã³ã¿ãŒãã§ã€ã¹ã確ä¿ããŸããRESTful APIã¯ãã¹ããŒãã¬ã¹ããã£ãã·ã¥ãã¹ã±ãŒã©ãã«ã§ãããããŒã ãªãŒãã¡ãŒã·ã§ã³ã¢ããªã§IoTããã€ã¹ãšããã¯ãšã³ããµãŒãã¹ãçµ±åããããã®çæ³çãªãœãªã¥ãŒã·ã§ã³ãšãªããŸãã
ãªã¢ã«ã¿ã€ã ã®éä¿¡ãå®è£ ãã
WebSocketã® ãããªæè¡ãçµ±åããŠãªã¢ã«ã¿ã€ã éä¿¡ãè¡ãããšã§ããŠãŒã¶ãŒã¯ããã€ã¹ã®ç¶æ ã®æŽæ°ãå³åº§ã«åãåã£ãããããã€ã¹ã«å³åº§ã«ã³ãã³ããéä¿¡ããããšãã§ããŸããWebSocketã¯ãã¯ã©ã€ã¢ã³ããšãµãŒããŒéã®ãªã¢ã«ã¿ã€ã ã®åæ¹åéä¿¡ã®ããã®ãããã³ã«ãšããŠåºãæ¯æãããŠãããããŒã ãªãŒãã¡ãŒã·ã§ã³ã®ã·ããªãªã«é©ããéžæè¢ãšãªã£ãŠããŸãã
API管ç
API管çã¯ãã¢ããªã®APIãä¿è·ããç£èŠããå¶åŸ¡ããããšã§ããAPIã®å®å®æ§ãšå®å šæ§ã確ä¿ããããã«ãã¢ã¯ã»ã¹å¶åŸ¡ãã¬ãŒãå¶éãç£èŠããŒã«ãå°å ¥ããŸããAppMaster ã®ãããªãã©ãããã©ãŒã ã¯ãçµ±åéçºç°å¢ïŒIDEïŒã®äžéšãšããŠåŒ·åãªAPI管çãœãªã¥ãŒã·ã§ã³ãæäŸããno-code ã¢ããªã±ãŒã·ã§ã³éçºã«ãããAPI管çãç°¡çŽ åããŸãã
APIããã¥ã¡ã³ããŒã·ã§ã³ãšããŒãžã§ãã³ã°
ä»ã®ãµãŒãã¹ãããã€ã¹ããµãŒãããŒãã£ã¢ããªãšã®çµ±åã容æã«ããããã«ãå æ¬çãªAPIããã¥ã¡ã³ãïŒSwaggerãOpenAPIãªã©ïŒãäœæãããæ°æ©èœãæ©èœæ¡åŒµãå°å ¥ããéã«ãAPIã®ããŒãžã§ã³ã¢ãããé©åã«è¡ãã倿Žãå£ããªãããã«ããã
ããã¯ãšã³ãã¢ãŒããã¯ãã£ãIoTããã€ã¹ã®çµ±åãAPIéä¿¡ã®ãããã®éèŠãªåŽé¢ã«çŠç¹ãåœãŠãããšã§ãåªãããŠãŒã¶ãŒäœéšãšå¹ åºãã¹ããŒãããã€ã¹ãšã®ã·ãŒã ã¬ã¹ãªçžäºäœçšãæäŸããã髿§èœã§ä¿¡é Œæ§ã®é«ãããŒã ãªãŒãã¡ãŒã·ã§ã³ã¢ããªãäœæããããšãã§ããŸãã
ãã¹ããšãããã°
ããŒã ãªãŒãã¡ãŒã·ã§ã³ã¢ããªã®æåã«ã¯ãé©åãªãã¹ããšãããã°ãæ¬ ãããŸããããã®ãããªã¢ããªã±ãŒã·ã§ã³ã¯ãããŸããŸãªIoTããã€ã¹ãã·ã¹ãã ãšçžäºäœçšããããããã®ã¹ã ãŒãºãªæ©èœãšäºææ§ã確ä¿ããããšããã·ãŒã ã¬ã¹ãªãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ã«äžå¯æ¬ ã§ããããã§ã¯ãããŒã ãªãŒãã¡ãŒã·ã§ã³ã¢ããªã«æ¡çšãã¹ãéèŠãªãã¹ããšãããã°ã®ãã¯ããã¯ãããã€ã玹ä»ããŸãïŒ
ãŠããããã¹ã
Unit testing ãŠããããã¹ãã¯ãã¢ããªã®åã ã®ã³ã³ããŒãã³ããè©äŸ¡ããæåã®ã¹ãããã§ããããã¯ãåæ©èœãã¢ãžã¥ãŒã«ã«å¯ŸããŠåé¢ãããã¹ããäœæããããããæ£ããåäœããããšã確èªããäºæãã¬åäœããšã©ãŒããªãããç£èŠãããã®ã§ãããŠããããã¹ãã¯ãã¢ããªå ã®ç¹å®ã®åé¡ããšã¹ã«ã¬ãŒãããŠãããè€éãªã€ã³ã¿ã©ã¯ã·ã§ã³ã«åœ±é¿ãäžããåã«ç¹å®ããããã«äžå¯æ¬ ã§ãã
æ©èœãã¹ã
Functional testing ã¯ãã¢ããªã®æåŸ ãããåäœãå šäœãšããŠæ€èšŒããããšã«éç¹ã眮ããŠããŸããããã«ã¯ãããŸããŸãªæ©èœããŠãŒã¶ãŒã€ã³ã¿ã©ã¯ã·ã§ã³ãã¯ãŒã¯ãããŒããã¹ããããããããããžã§ã¯ãã®èŠä»¶ãšç®çã«åèŽããŠããããšã確èªããããšãå«ãŸããŸããæ©èœãã¹ãã®éèŠãªæ§æèŠçŽ ãšããŠãã€ã³ã¿ãŒãã§ãŒã¹ãã¹ããããŒã¿æ€èšŒããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãã¹ãããããŸãã
çµ±åãã¹ã
çµ±åãã¹ãã§ã¯ãã¢ããªã®ããŸããŸãªã³ã³ããŒãã³ããäºãã«ããŸããµãŒãããŒãã£ãŒã®ã·ã¹ãã ãããã€ã¹ïŒç¹ã«IoTããã€ã¹ïŒãšã©ã®ããã«çžäºäœçšããããåæããŸããã¢ããªãããã€ã¹ã¡ãŒã«ãŒãæäŸããAPIãšæ£ããçµ±åãããããŸããŸãªéä¿¡ãããã³ã«ãåŠçããããŒã¿ãé©åã«åŠçã§ããããšã確èªããŸãããã®ã¹ãããã¯ãã¢ããªãšæ¥ç¶ãããããã€ã¹éã®ã¹ã ãŒãºãªéä¿¡ã確ä¿ããããã«éèŠã§ãã
ã»ãã¥ãªãã£ãã¹ã
ããŒã ãªãŒãã¡ãŒã·ã§ã³ãIoTããã€ã¹ãæ±ãå Žåãã»ãã¥ãªãã£ã¯æ¥µããŠéèŠã§ããè匱æ§ããããšãã¹ããŒãããã€ã¹ãžã®äžæ£ã¢ã¯ã»ã¹ãå¶åŸ¡ãªã©ãæ·±å»ãªäºæ ã«ã€ãªããå¯èœæ§ãããããã§ããæœåšçãªãªã¹ã¯ãåæã軜æžããããã«ãå æ¬çãªã»ãã¥ãªãã£ãã¹ãã宿œããŸããããã«ã¯ããŠãŒã¶ãŒããŒã¿ã®å®å šæ§ãããã€ã¹ãšããã¯ãšã³ãéã®æ å ±äº€æãäžæ£ã¢ã¯ã»ã¹ã鲿¢ããããã®æå·åãšèªèšŒãããã³ã«ã®å®è£ ãªã©ãè©äŸ¡ããŸãã
ããã©ãŒãã³ã¹ãã¹ã
ããã©ãŒãã³ã¹ãã¹ãã¯ãããŒã ãªãŒãã¡ãŒã·ã§ã³ã¢ããªãã©ã°ãã¯ã©ãã·ã¥ãªãã«è€æ°ã®ãŠãŒã¶ãŒãã€ã³ã¿ã©ã¯ã·ã§ã³ãåŠçã§ããããšãä¿èšŒããããã«äžå¯æ¬ ã§ããé«è² è·ããããã¯ãŒã¯ã®å€åãè² è·æéãªã©ãããŸããŸãªæ¡ä»¶ããã©ã¡ãŒã¿ã®äžã§ã¢ããªããã¹ãããŸããããã«ãããããã«ããã¯ãç¹å®ããå¹çãšå®å®æ§ãé«ããããã«ã¢ããªãæé©åããããšãã§ããŸãã
ãããã€ã¡ã³ããšã¹ã±ãŒã©ããªãã£
ããŒã ãªãŒãã¡ãŒã·ã§ã³ã¢ããªã®å°å ¥ã«ã¯ãæ éãªèšç»ãšé æ ®ãå¿ èŠã§ããããã§ã¯ãã¢ããªã®å±éãšæ¡åŒµãè¡ãéã«çæãã¹ãéèŠãªç¹ãããã€ã玹ä»ããŸãïŒ
- ãã¹ãã£ã³ã°ãªãã·ã§ã³ïŒãã¹ãã£ã³ã°ãªãã·ã§ã³ïŒã³ã¹ããå¯çšæ§ãããã©ãŒãã³ã¹ãã»ãã¥ãªãã£ã®èгç¹ãããã¢ããªã®èŠä»¶ã«åã£ããã¹ãã£ã³ã°ãªãã·ã§ã³ãéžæããŸãããããžã§ã¯ãã®ç®æšãäºç®ã«åãããŠãããŸããŸãªã¯ã©ãŠããããã€ããŒããã¹ãã£ã³ã°ãã©ã³ãè©äŸ¡ããŸãããã
- ã³ã³ããåïŒ Dockerãªã©ã® ã³ã³ããæè¡ã䜿çšããŠãã¢ããªã±ãŒã·ã§ã³ãšãã®äŸåé¢ä¿ãããã±ãŒãžåããããŸããŸãªç°å¢ã§ã®ã¹ã ãŒãºãªãããã€ãå®çŸããŸããã³ã³ããã¯ãç°å¢ã®äžæŽåã«é¢é£ããåé¡ãæå°éã«æããã¢ããªã±ãŒã·ã§ã³ã®ç®¡çãšæ¡åŒµã容æã«ããŸãã
- ã¹ã±ãŒã©ããªãã£ïŒã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ãç ç²ã«ããããšãªãããŠãŒã¶ãŒæ°ãããã€ã¹æ°ãã€ã³ã¿ã©ã¯ã·ã§ã³æ°ã®å¢å ã«å¯Ÿå¿ã§ããããã«ããããã®æŠç¥ãå°å ¥ããŸããããã«ã¯ããµãŒããŒã¬ã¹ã¢ãŒããã¯ãã£ãæ°Žå¹³ã¹ã±ãŒãªã³ã°ãèªåã¹ã±ãŒãªã³ã°æ©æ§ãæ¡çšããäžè²«ããå¿çæ§ã®é«ããŠãŒã¶ãŒäœéšãç¶æããããšãå«ãŸããŸãã
- ããŒã¿ããŒã¹ã®ç§»è¡ãšããã¯ã¢ãã ã¢ããªãã¢ããããŒãããããç°ãªãç°å¢ã«ç§»è¡ãããããéã«ããã¢ããªã®ããŒã¿ãå®å šãã€ã¢ã¯ã»ã¹ããããç¶æ ã«ä¿ãããããã«ãããŒã¿ããŒã¹ã®ç§»è¡æŠç¥ãèšç»ãã宿œããŸããã¢ããªã®ããŒã¿ã®å®æçãªããã¯ã¢ãããäœæããããŒã¿æå€±ãæå°éã«æããããŒã¿ã®æŽåæ§ãé«ãã¬ãã«ã§ç¶æããŸãã
- ã¢ãã¿ãªã³ã°ãšã¡ã³ããã³ã¹ ã¢ããªã®ããã©ãŒãã³ã¹ãšãªãœãŒã¹ã®äœ¿çšç¶æ³ã宿çã«ç£èŠããæœåšçãªåé¡ã®ç¹å®ãããã©ãŒãã³ã¹ã®æé©åãã¹ã±ãŒã©ããªãã£ã®èšç»ãè¡ããŸããéäžåã®ãã®ã³ã°ãšç£èŠããŒã«ã䜿çšããããšã§ãããŒã¿ã®åæãšåé¡ã®ãã©ãã«ã·ã¥ãŒãã£ã³ã°ããªã¢ã«ã¿ã€ã ã§ç°¡åã«è¡ãããšãã§ããŸãã
ããŒã ãªãŒãã¡ãŒã·ã§ã³ã¢ããªã«AppMaster ã䜿çšãã
AppMaster.io ã¯ãããã¯ãšã³ãããŠã§ããã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ãç°¡åã«äœæã§ããã匷åãªno-code ãã©ãããã©ãŒã ã§ããAppMaster ã䜿çšããããšã§ãè€éãªããŒã ãªãŒãã¡ãŒã·ã§ã³ã¢ããªã®éçºããã»ã¹ãå€§å¹ ã«åçåããæéãšãªãœãŒã¹ãç¯çŽããããšãã§ããŸãã以äžã¯ãããŒã ãªãŒãã¡ãŒã·ã§ã³ã¢ããªã«AppMaster ã䜿çšããããšã®å©ç¹ã§ãïŒ
ããžã¥ã¢ã«ãã¶ã€ã³ãšã¢ããªãã«ããŒ
AppMaster ã¯ãçŽæç㪠ãã©ãã°ïŒããããã® ã€ã³ã¿ãŒãã§ãŒã¹ã«ãããã¢ããªã®ã¬ã€ã¢ãŠããã³ã³ããŒãã³ããæ©èœãèŠèŠçã«èšèšã»äœæããããšãã§ããŸããããã«ãããæ·±ãã³ãŒãã£ã³ã°ã®ç¥èãäžèŠã«ãªããéçºããã»ã¹ãå éãããŸãã
ãããããçšæããããã³ãã¬ãŒããšã³ã³ããŒãã³ã
èªèšŒã·ã¹ãã ããªã¢ã«ã¿ã€ã éä¿¡ãã¢ãã€ã«å¯Ÿå¿ãã¶ã€ã³ãªã©ãAppMaster ã®äºåæ§ç¯ããããã³ãã¬ãŒããã³ã³ããŒãã³ããæŽ»çšããããšã§ãéçºããã»ã¹ãå éããããŒã ãªãŒãã¡ãŒã·ã§ã³ã¢ããªã®ããã©ãŒãã³ã¹ãšãŠãŒã¶ããªãã£ãæé©åããããšãã§ããŸãã
ããã¯ãšã³ãã¢ãŒããã¯ãã£ãšããžãã¹ããã»ã¹èšèš
AppMaster ã®ããžã¥ã¢ã«ã»ããžãã¹ã»ããã»ã¹ã»ãã¶ã€ããŒã䜿çšããŠãè€éãªããã¯ãšã³ãæ§é ãããŒã¿ã¢ãã«ãããžãã¹ããžãã¯ãç°¡åã«äœæããã³ç®¡çã§ããŸããããã«ãããå¹ççãªããŒã¿åŠçãä¿åãåãæ±ããå®çŸããªãããæç¢ºã§çµç¹çãªãããžã§ã¯ãæ§é ãç¶æããããšãã§ããŸãã
APIçµ±åãšãªã¢ã«ã¿ã€ã éä¿¡
AppMaster ã¯ãRESTful APIãšWebSocketãªã©ã®ãªã¢ã«ã¿ã€ã éä¿¡ãããã³ã«ã®çµ±åãç°¡çŽ åããã¢ããªãšIoTããã€ã¹éã®ã¹ã ãŒãºãªã€ã³ã¿ã©ã¯ã·ã§ã³ãå¯èœã«ããŸãã
PostgreSQLãšäºææ§ã®ããããŒã¿ããŒã¹ãšã®äºææ§
AppMasterãçæããã¢ããªã±ãŒã·ã§ã³ã¯ãPostgreSQLäºæã®ããŒã¿ããŒã¹ããã©ã€ããªããŒã¿ããŒã¹ãšããŠåäœãããããšãã§ããé«ãæ¡åŒµæ§ãšæ§ã ãªããŒã¿ã¿ã€ãã®ãµããŒããä¿èšŒããŸãã
ã«ã¹ã¿ãã€ãºå¯èœãªãµãã¹ã¯ãªãã·ã§ã³ãã©ã³
AppMaster AppMasterã¯ãã¹ã¿ãŒãã¢ãããã¹ã¿ãŒãã¢ãã+ãããžãã¹ãããžãã¹+ããšã³ã¿ãŒãã©ã€ãºãªã©ãããŸããŸãªãããžã§ã¯ãèŠæš¡ã«é©ããè€æ°ã®ãµãã¹ã¯ãªãã·ã§ã³ãã©ã³ãæäŸããŠããŸããã客æ§ã®ããŒãºã«æãé©ãããã®ãéžæããããšã§ãããŒã ãªãŒãã¡ãŒã·ã§ã³ã¢ããªã«é©ããæ©èœãšãªãœãŒã¹ã«ã¢ã¯ã»ã¹ã§ããããã«ãªããŸãã
AppMaster ã®ãã¯ãŒã掻çšãããã¹ãããããã°ããããã€ã®ãã¹ããã©ã¯ãã£ã¹ã«åŸãããšã§ãGoogle Home ã Amazon Echo ãªã©ã®äžè¬çãªãœãªã¥ãŒã·ã§ã³ã®æ§èœã«å¹æµãããä¿¡é Œæ§ãšæ¡åŒµæ§ãé«ãã䜿ããããããŒã ãªãŒãã¡ãŒã·ã§ã³ã¢ããªãäœæããããšãã§ããŸãã
ãããã質å
ããŒã ãªãŒãã¡ãŒã·ã§ã³ã¢ããªã¯ãç §æã空調ãã»ãã¥ãªãã£ããšã³ã¿ãŒãã€ã³ã¡ã³ããªã©ãå®¶åºå ã®ããŸããŸãªã¹ããŒãããã€ã¹ãã·ã¹ãã ããªã¢ãŒãã§å¶åŸ¡ãç£èŠã管çããããã®ãœãããŠã§ã¢ãœãªã¥ãŒã·ã§ã³ã§ãã
ç¬èªã®ããŒã ãªãŒãã¡ãŒã·ã§ã³ã¢ããªãäœæããããšã§ã奜ã¿ãããžãã¹èŠä»¶ã«å¿ããŠãæ©èœããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãç¹å®ã®ã¹ããŒãããã€ã¹ãã·ã¹ãã ãšã®äºææ§ãªã©ãæè»ã«ã«ã¹ã¿ãã€ãºããããšãã§ããŸãã
ããŒã ãªãŒãã¡ãŒã·ã§ã³ã¢ããªã®ä»£è¡šäŸãšããŠãGoogle HomeãAmazon EchoãApple HomeKitãSamsung SmartThingsãªã©ãæããããŸãã
ããŒã ãªãŒãã¡ãŒã·ã§ã³ã¢ããªã¯éåžžããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹ãããŒã¿ã®ä¿åãšåŠçã®ããã®ããã¯ãšã³ãã¢ãŒããã¯ãã£ãéä¿¡ãããã³ã«ãã¹ããŒãããã€ã¹ãšã®çµ±åã®ããã®APIãããã³ãªã¢ã«ã¿ã€ã ã®ã¢ãã¿ãªã³ã°æ©èœã§æ§æãããŠããŸãã
RESTful APIãWebSocketãMQTTãªã©ã®IoTãã¬ãŒã ã¯ãŒã¯ãPostgreSQLãªã©ã®ããŒã¿ããŒã¹ãœãªã¥ãŒã·ã§ã³ãAppMaster ãªã©ã®ã¢ããªéçºãã©ãããã©ãŒã ãªã©ã®æè¡ãæ€èšããŠãéçºããã»ã¹ãå¹çåããŸãã
AppMaster匷åãªããŒã³ãŒããã©ãããã©ãŒã ã§ããæ ªåŒäŒç€Ÿãšãã»ãã£ã»ãã£ã»ãã³ã¢ã¯ãããã¯ãšã³ãããŠã§ããã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ãèŠèŠçã«èšèšã»äœæããããšãã§ããçŽæçãªdrag-and-drop ã€ã³ã¿ãŒãã§ã€ã¹ãšæ§ç¯æžã¿ã®ãã³ãã¬ãŒãã«ãããè€éãªããŒã ãªãŒãã¡ãŒã·ã§ã³ã¢ããªã®éçºã容æã«ããã
ããŒã ãªãŒãã¡ãŒã·ã§ã³ã¢ããªã®ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ããã¶ã€ã³ããäžã§éèŠãªããšã¯ãã·ã³ãã«ãã䜿ãããããçŽæçãªããã²ãŒã·ã§ã³ãäžè²«æ§ãã¢ããªãšã®ã¹ã ãŒãºãªã€ã³ã¿ã©ã¯ã·ã§ã³ãå®çŸããããã®å¿«é©ãªãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ã®æäŸã§ãã
IoTããã€ã¹ãšããŒã ãªãŒãã¡ãŒã·ã§ã³ã¢ããªã®é£æºã«ã¯ãããã€ã¹ã¡ãŒã«ãŒãæäŸããAPIã®çµã¿èŸŒã¿ãMQTTãªã©ã®éä¿¡ãããã³ã«ã®å®è£ ãç¹å®ã®ããã€ã¹ã«å¯Ÿå¿ããã«ã¹ã¿ã ãœãªã¥ãŒã·ã§ã³ã®éçºãªã©ãå¿ èŠã§ãã
ãŠããããã¹ããæ©èœãã¹ããçµ±åãã¹ããã»ãã¥ãªãã£ãã¹ããããã©ãŒãã³ã¹ãã¹ããªã©ãããŸããŸãªãã¹ãããããã°æè¡ãé©çšããã¢ããªã®ä¿¡é Œæ§ãã»ãã¥ãªãã£ãIoTããã€ã¹ãšã®ã·ãŒã ã¬ã¹ãªçžäºäœçšãä¿èšŒããã
ãã¹ãã£ã³ã°ãªãã·ã§ã³ãDockerãªã©ã®ã³ã³ããåæè¡ãã¹ã±ãŒã©ããªãã£ãããŒã¿ããŒã¹ç§»è¡ãããã¯ã¢ããæŠç¥ãªã©ã®åŽé¢ãèæ ®ããã¹ã ãŒãºãªå°å ¥ãå®çŸããã¢ããããŒããã¡ã³ããã³ã¹æã®ããŠã³ã¿ã€ã ãæå°éã«æããŸãã


