2é±éåãé³å£°ããã³ãããªéä¿¡ã«é¢ãã2åç®ã®INTERCOMäŒè°ãéå¬ããŸããã WebRTCããã©ãŠã¶çµç±ã®åŒã³åºããæ©æ¢°åŠç¿ãããã°ããŒã¿-ããã¯ãã¹ãŠãã®äººæ°ã®ç©èªã§ãã æåŸ
ãããã¹ããŒã«ãŒã®1人ã¯Tsahi Levent-Levyã§ã
bloggeek.meã®èè
ãšããŠããç¥ãããŠããŸããããã¯ãææ°ã®ãã©ãŠã¶ãŒã®WebRTCã«é¢ãã究極ã®æ
å ±æºã§ãã ã¬ããŒãã§ïŒã¡ãªã¿ã«ãç§ã¯
ãããªãæã£ãŠã
ãŸã ïŒãTsakhiã¯æ¥çã®çŸç¶ãšããã©ãŠã¶ã§é³å£°ãšãããªã䜿ã£ãŠä»ã§ããããšã«ã€ããŠè©±ããŸããã ãããŠãã€ã¹ã©ãšã«ã«æ»ã£ãŠã圌ã¯éä¿¡ãã©ãããã©ãŒã ãæäœããéã®ãµãŒããŒã¬ã¹æè¡ã«é¢ããèå³æ·±ãèšäºãæžããŸããã ç«ã®äžã§Habrã«é©åãã翻蚳ãæäŸããŸãã
WebRTC APIã䜿çšããŠæåã®ãã©ãããã©ãŒã
ã¬ããŒãã®èª¿æ»ãè¡ã£ããšãã調æ»ããäŒç€Ÿã®1ã€ã¯
Voximplantã§ãã ã 圌ãã¯VoxEngineãšåŒã°ãããã®ã匷調ããŸããã ãµã€ãã«æžãããŠããããã«ããVoximplantã¯ã©ãŠãã§JavaScriptã³ãŒããå®è¡ããã·ã¹ãã ãã§ãã ããã¯ãµãŒããŒã¬ã¹ã§ãã
ç§ã¯ãã®ã¢ã€ãã¢ã奜ãã§ããããããã«ã€ããŠã¯ããŸãèããŸããã§ããã ãã æ°ããèå³æ·±ãããšã
ãµãŒããŒã¬ã¹ã³ã³ãã¥ãŒãã£ã³ã°ãšã¯äœã§ããïŒ
APIã®é²åã«åŸããªãã£ãå ŽåãServerlessã®è¡šç€ºãã¹ãããããå¯èœæ§ããããŸãã ããã¯ãäœæããã³ãŒããã¯ã©ãŠãã§å®è¡ãããã¢ãããŒãã§ãã çŽæ¥ã OSãä»®æ³ãã·ã³ããŸãã¯ã³ã³ãããæã¡äžããå¿
èŠã¯ãããŸããã ã³ãŒããèšè¿°ããŠå®è¡ããŸãã éæ³ã
ãSomething-there-aaSããèŠããšããã®ç»åãã°ãŒã°ã«ã§æ€çŽ¢ã§ããŸãã
- ç¬èªã®ãµãŒããŒã䜿çšããå Žåã¯ããã¹ãŠã®è²¬ä»»ãè² ããŸã
- IaaSã®å Žåããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®åã®ãã¹ãŠããä»ã®èª°ããã«ãã£ãŠæäŸãããŸãã ã¢ããŸã³ãã°ãŒã°ã«ããã€ã¯ããœãã-ããŠãããªãã¯ç解ããŠããŸã
- 次ã«PaaS ã å®è¡æãŸã§ãã¹ãŠãããªãã®ããã«è¡ããŸãã å¿é
ããã®ã¯ããŒã¿ãšã¢ããªã±ãŒã·ã§ã³ã ãã§ãã ãããŠãAPIã䜿çšããŠã©ã³ã¿ã€ã ã«æ¥ç¶ããŸãïŒå°ãªããšãã»ãšãã©ã®å ŽåïŒ
- SaaSãšã¯ãæ¢è£œã®ã¢ããªã±ãŒã·ã§ã³ãŸãã¯ãµãŒãã¹ãæäŸããããšã§ãã ããã°ã©ããŒãšããŠãå¿é
ããããšã¯ãããŸãã
Serverlessã¯ãã®ç¶æ³ã«ã©ã®ããã«é©åããŸããïŒ
ãµãŒããŒã¬ã¹ã®å Žåãã¢ããªã±ãŒã·ã§ã³ãéçºããŠããŸãããã¢ããªã±ãŒã·ã§ã³ãšãã®ããŒã¿ã¯ç®¡çããã³ãµããŒããããŠããŸããã ãã®ãããªæ±ºå®ããäœãåŸãŸããïŒ
- ã¹ã±ãŒã©ããªã㣠-ããé¢åãèŠãå¿
èŠã¯ãããŸããã ä»ã®èª°ããããªãã®ããã«ä»ãã£ãŠããŸãã ã³ãŒãã§äœãããå¿
èŠããããã説æããŸããããä»ã§ã¯é©åãªæ°ã®ãµãŒããŒã§ã³ãŒããå®è¡ããããšããã©ãããã©ãŒã ã®é¢å¿äºã§ãã
- ãµããŒã -èšè¿°ããå¿
èŠãããã³ãŒããå°ãªãããããµããŒãããå¿
èŠãããã³ãŒããå°ãªããªããŸãã å®éããã¹ããŒãžã³ã°ãã³ãŒããšããããã¯ã·ã§ã³ããåé¢ãããã®ã¯ãã¹ãŠæšãŠãŸãã ãããã¿ã€ãã¯æ¢ã«å®çšŒåã§å®è¡ã§ããŸãã
- ã»ãã¥ãªã㣠-PaaSãã³ããŒãã¢ããªã±ãŒã·ã§ã³ã®ã»ãã¥ãªãã£ã«ç²ŸéããŠãããšæ³å®ããã°ãé çã®çš®ã¯1ã€å°ãªããªããŸãã
- åžå Žæå
¥ãŸã§ã®æé -æžãã³ãŒããå°ãªããšããããšã¯ããŠãŒã¶ãŒã«ãœãªã¥ãŒã·ã§ã³ãããæ©ãèŠããããšãã§ããããšãæå³ããŸãã
- é
延-APIãæäŸããã®ãšåãã¯ã©ãŠãã§ã³ãŒããå®è¡ããããããããŒã ãšãã©ãããã©ãŒã ã®å¿çã®éã®é
延ã¯æå°éã«æããããŸãã äžéšã®äººã«ãšã£ãŠããã¯éèŠã§ãããäžéšã®äººã«ãšã£ãŠã¯ããã§ã¯ãããŸããã
çµæãšããŠäœãåŸãããŸããïŒ ã¹ã±ãŒãªã³ã°ã§ä¿åããŸãã PaaSãœãªã¥ãŒã·ã§ã³ãæäŸãããã³ããŒã¯ãæ¢ã«ïŒããã³ä»ã®å€ãã®ã¯ã©ã€ã¢ã³ãã«å¯ŸããŠïŒã¹ã±ãŒã©ããªãã£ããµãŒãã¹ãµããŒããããã³ã»ãã¥ãªãã£ãæäŸããŠããŸãã çè«çã«ã¯ã圌ã¯èªåãããããã«äžæãã§ããã ããã«ããããªãœãŒã¹ã解æŸããŠãŠãŒã¶ãŒã«æé©ãªUXãœãªã¥ãŒã·ã§ã³ãå®è£
ããã¢ããªã±ãŒã·ã§ã³ãããè¯ããããè¿
éã«åžå Žã«æå
¥ã§ããŸãã è¿œå ã®ããŒãã¹ïŒã³ãŒãã¯ããµãŒãã¹ã䜿çšãããã©ãããã©ãŒã ã®APIã«å¯èœãªéãè¿ãå Žæã§å®è¡ãããŸãïŒãµãŒããŒã¬ã¹ã¯ãéåžžãäœããã®ãµãŒãã¹ãšAPIãæäŸãããã©ãããã©ãŒã ã®è¿œå æ©èœãšããŠäœ¿çšãããŸããããšãã°ãé³å£°ããããªãã¡ãã»ãŒãžãæäœããAPI-
翻蚳è
ã®ã³ã¡ã³ã ïŒ ã
ãµãŒããŒã¬ã¹=æ©èœ
ããµãŒããŒã¬ã¹ããšããååã®äººæ°ã«ããããããã
Google Cloud Functions ã
PubNub Functions ã
Twilio Functionãªã©ã®è£œåã«åæ ãããŠããFaaSããFunctions as a ServiceããèŠã€ããããšãã§ããŸãã
æãäžè¬çãªäŸã¯ããããã
AWS Lambdaã§ãã ãŸãããªãŒãã³ãœãŒã¹ã®
Apache OpenWhiskãœãªã¥ãŒã·ã§ã³ããããŸãã
å€ãã®APIãµãŒãã¹ãããã€ããŒããµãŒããŒã¬ã¹æ©èœãæäŸãå§ããŠããŸãã ãµãŒãã¹ãšéä¿¡ããç¬èªââã®ãµãŒããŒã¯ããå¿
èŠãããŸããããXXX Functionsã補åã§ã³ãŒããå®è¡ããã ãã§ãã
å Žåã«ãã£ãŠã¯ããæ©èœããµãŒãã¹ãç¡æã§å©çšã§ããŸãããã»ãšãã©ã®å Žåããã³ããŒã¯ã䜿çšéããšã«æ¯æããã¢ãã«ã«åŸã£ãŠãããã®æéãæ¯æããããšèããŠããŸãã
ãµãŒããŒã¬ã¹CPaaS
CPaaSïŒãµãŒãã¹ãšããŠã®éä¿¡ãã©ãããã©ãŒã -
çŽTranslator ïŒã«æ»ã£ãŠãServerlessã®æ©èœãèŠãŠã¿ãŸãããã
çŸåšããµãŒããŒã¬ã¹ãœãªã¥ãŒã·ã§ã³ãæäŸããŠããCPaaSãã³ããŒã¯2ã€ãããªããšæããŸãã
- VoxEngineã䜿çšããVoximplant
- Twilio æ©èœãåããTwilio
ãã³ãã³ã§è¡ãããååã®Signalã«ã³ãã¡ã¬ã³ã¹ã§ãJeff Lawsonã¯FunctionsãTwilioã®ãµãŒãã¹éå§ä»¥æ¥æãæ¥æé·ããŠãã補åã§ãããšè¿°ã¹ãŸããã ãã®æ©èœã¯åžå Žã«å¿
èŠã§ãã
CPaaSã¯çŸåšéåžžã«è€éã§ãããCPaaSã§ãµãŒããŒã¬ã¹ãã©ã®ããã«äœ¿çšãããŠããããç解ããããšãããéèŠã§ãã CPaaSãããã€ãã®APIã¬ãã«ãšããã€ãã®è£œåã«åããŸãããã
APIã¬ãã«- TwiMLãNCCOãªã©ã®ã¹ã¯ãªããèšèª
- REST API
- ã¯ã©ã€ã¢ã³ãåŽã®SDKïŒãã©ãŠã¶ãŒãã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ãå·èµåº«ãªã©ããã®åŒã³åºãã®éåä¿¡çš- 翻蚳è
ã³ã¡ã³ã ïŒ
補å- SMSãšé³å£°ïŒé»è©±çªå·ã䜿çšïŒ
- IPã¡ãã»ãŒãžã³ã°ããã£ããããªã ããã£ãã«ã¡ãã»ãŒãžã³ã°
- VoIPïŒWebRTCã䜿çšããé³å£°ãšãããªïŒ
ããçšåºŠãŸã§ãã¹ã¯ãªããèšèªã®ç¬èªã®APIã¬ãã«ã¯ããµãŒããŒã¬ã¹ã®éåžžã«ç²éãªåœ¢åŒãšèŠãªãããšãã§ããŸãã ç®çã®åäœãã€ãã³ãå¿çã¹ã¯ãªãããšããŠèšè¿°ããWebHooksã䜿çšããŠãã©ãããã©ãŒã ã«éä¿¡ããŸãã
REST APIã¯ãµãŒããŒã¬ã¹ã¢ãŒããã¯ãã£ã§é©åã«æ©èœããŸãããµãŒããŒéã§èªèšŒãã»ãã¥ãªãã£ããŸãã¯ã¹ã±ãŒãªã³ã°ãèŠæ±ãã代ããã«ãå®è¡ãããã®ãšåããµãŒããŒã§å®è¡ã§ããŸãã
ãŸããã¯ã©ã€ã¢ã³ãSDKããããŸãã ãããã¯ãšã³ãããã€ã¹ã§å®è¡ãããããããµãŒããŒã¬ã¹ã®æŠå¿µãã©ã®ããã«é©çšããããæ³åããã®ã¯å°é£ã§ãã SDKã¯CPaaSããã¯ãšã³ããšçžäºäœçšããããã«èšèšãããŠãããããèæ
®ããŸããã
CPaaSã¯äœ¿çšãããAPIã¬ã€ã€ãŒã®ã¿ã€ãã«åŸã£ãŠã°ã«ãŒãåã§ããããã次ã®çµè«ãå°ãåºãããšãã§ããŸãã
ããã€ãã®ã³ã¡ã³ãïŒ
倧éã®ãã©ãã£ãã¯ãšäœé
延ã®èŠä»¶ãæã€ãµãŒããŒã¬ã¹ããŒãžã§ã³ã§IPã¡ãã»ãŒãžã³ã°ã䜿çšããããšã¯çã«ããªã£ãŠããŸãã
SMSãšé³å£°ã«é¢ããŠã¯ãé
延ã¯éåžžããã»ã©éèŠã§ã¯ãããŸããïŒæãåçŽãªå Žåãããµãã¹ã¯ã©ã€ãAããµãã¹ã¯ã©ã€ãBãåŒã³åºããŸããããèªèãé³å£°åæãé³å£°ã¡ãã¥ãŒãªã©ã®èå³æ·±ããã®ã衚瀺ããããšããã«ãã³ãŒãã§ã®APIåŒã³åºããšãã©ãããã©ãŒã ã®åå¿ã®éã®é
延ããªããŠäŸ¿å©ãªããšããšããããŠããã¯åžžã«æãã ããšã®éãã«ãªããŸãã
VoIPã«ã¯ç¬èªã®ãœãªã¥ãŒã·ã§ã³ã»ããããããéšåçã«ãµãŒããŒã¬ã¹ãšåãããšãè¡ããŸãã éåžžããããã¯WebããŒãžã«é
眮ããããã®æ¢è£œã®ãŠã£ãžã§ãããšiframeã§ãïŒãã ããããã¯å¥ã®èšäºã®ãããã¯ã§ãïŒã
ãã³ããŒã®èŠ³ç¹ããèŠããšããµãŒããŒã¬ã¹ã¯çŸåšãŸããŸãéèŠãªãã¯ãããžãŒã«ãªãã€ã€ãããŸãã ãªãã§ïŒ
ããã¯Twilioã®è£œåã®1ã€ã ããã§ãã æ¥æé·äžã®Twilioãªãã¡ãŒã 競åä»ç€Ÿã®ä»£ããã«ãé
ããåããããããŸããã
IaaSãã³ããŒã®FaaSãµãŒãã¹ã䜿çšã§ããŸããïŒ
ç§ã¯æ¬åœã«ããã2ã€ã®é åèªã1ã€ã®æã«å
¥ãããã£ãã§ã:)
ãã¹ãŠã®äž»èŠãªIaaSãã³ããŒïŒAzureãAWSãGoogle CloudïŒã¯çŸåšããµãŒããŒã¬ã¹ãäœããã®åœ¢ã§æäŸããŠããŸãã ãªãCPaaSã§ãµãŒããŒã¬ã¹ãªã®ã§ããïŒ IaaSãµãŒããŒã¬ã¹ãCPaaSã«æ¥ç¶ããããšã¯ã§ããŸãããïŒ
ã§ããŸãã ãã ãã2ã€ã®ç°ãªããã³ããŒã«ãªããŸãã æ¢ã«ä»ã®AWSãµãŒãã¹ã䜿çšããŠããå ŽåãAWS Lambdaã®ãããªãã®ã䜿çšããããšã¯çã«ããªã£ãŠããŸãã
éä¿¡ã®åé¡ã解決ããå Žåã¯ããµãŒããŒã¬ã¹CPaaSã䜿çšããæ¹ãåççã§ãã ãããšäžç·ã«ãå€éšãµãŒããŒã¬ã¹ãœãªã¥ãŒã·ã§ã³ãšæ¯èŒããŠãé
延ãåæžãããã»ãã¥ãªãã£ãåäžããŸãã
CPaaSã¯ãµãŒããŒã¬ã¹ã«ãªããŸã
ããªããCPaaSã®ãã³ããŒã§ãããã次ã«äœãèµ·ããã®ãããšçåã«æã£ãŠããå Žå-ç·æ¥ã«è¡ããã顧客ã«æäŸãããå¿
èŠããããã®ã®ãªã¹ãã«ãµãŒããŒã¬ã¹ãè¿œå ããŸãã
éçºè
ã§CPaaSã䜿çšããŠããå Žåã¯ããµãŒããŒã¬ã¹ãœãªã¥ãŒã·ã§ã³ãã©ã®ããã«ã¢ããªã±ãŒã·ã§ã³ãè¿
éã«æ§ç¯ã§ããããã芧ãã ããã
翻蚳è
ãã
é±ã«äžåºŠã圌ãã¯ãªããã¯ã·ã ãã©ã³ãã®ç§ãã¡ãã¯ã©ãŠãã§ã³ãã¥ãã±ãŒã·ã§ã³ã管çããããã«JavaScriptã«ãããªã«åŽåãè²»ãããã®ããšç§ã«å°ããŸãã ãç¬èªã®ãµãŒããŒã¯å¿
èŠãããŸããã-ããã¯ãã¡ããè¯ãããšã§ãã ããããæ£çŽãªãšãããçµéšè±å¯ãªãã«ã¹ã¿ãã¯éçºè
ã«ãšã£ãŠããããªãã¯ã¯ã©ãŠãã§ããŒããPythonããŸãã¯phpãäœæããã®ã«30åããããŸãã ããã¯äŸ¡å€ããããŸããïŒ
é
延ã Tsakhiã¯ãããã«ã€ããŠå€ããèªã£ãŠããŸããããµãŒããŒã¬ã¹ã¢ãããŒãã®äž»ãªå©ç¹ãšã¯èããŠããŸããã ç§ã®çµéšã§ã¯ãéèŠãªåœ¹å²ãæããã®ã¯ãAPIåŒã³åºããšé³å£°åæãèªèãªã©ã®ãã©ãããã©ãŒã å¿çã®éã«é
延ããªãããšã§ãã äŒè°ã§ã¯ãå€ãã®äŒæ¥ãã顧客ãšéä¿¡ããã³ãŒã«ã»ã³ã¿ãŒã®å°é家ã®å©ããåããã«åé¡ã解決ããã®ã«åœ¹ç«ã€èªååãããã·ã¹ãã ã玹ä»ããŸããã
JSã³ãŒãã¯åããµãŒããŒã§å®è¡ãããé³å£°ããã³ãããªã¹ããªãŒã ãå¶åŸ¡ããäŒè©±äžã®äžæåæ¢/é
延ãåé€ããŠãèªååãšã®éä¿¡ãèªååããŸãã
ãªã¢ã«ã¿ã€ã èªèãªã©ã¯ãé
延ã«ç¹ã«ææã§ãã å°ãåã«Habrã§ãJSã³ãŒãã®æ°è¡ã§ã¹ããªãŒãã³ã°èªèãåéããæ¹æ³ãæžããŸããã è©ŠããŠã¿ãŠãã©ããããéãåäœãããã確èªããŠãã ããïŒ