Илья Беда «Как Erlang сделает ваши приложения...

Click here to load reader

  • date post

    14-Jun-2015
  • Category

    Software

  • view

    437
  • download

    0

Embed Size (px)

description

Современный веб становится интерактивнее. Сейчас практически все браузеры поддерживают такую технологию как WebSocket, но современные веб-фремймоворки, такие как Django, Yii или RubyOnRails, не поддерживают работу с ними. Я расскажу, как мы сделали наши приложения интерактивным с использованием Erlang. А также что такое Erlang. Для чего он нужен.

Transcript of Илья Беда «Как Erlang сделает ваши приложения...

  • 1. ERLANG BRO AGENCY @IR4Y_IX

2. 1 WEB- - HTTP 3. 2 HTTP REQUEST MIDDLEWARE MIDDLEWARE MIDDLEWARE HANDLER MIDDLEWARE MIDDLEWARE MIDDLEWARE APPLICATION WEB SERVER REQUEST TO APPLICATION APPLICATION RESPONCE APPLICATION WEB SERVER BROWSER DRAW PAGE 4. 3 5. - ? 6. 5 Short Polling LongPolling Comet WebSocket 7. 6 WEBSOCKET WebSocket HTTP 8. 7 - - WebSocket 9. 8 ? , , NO meteor.js 10. 9 - ? , ! . 11. 10 ? NodeJS EventMachine Tornado Libevent ERLANG 12. 11 ERLANG? 1980- Ericsson . 1998 open source . 13. 12 LET IT CRASH 14. 13 ERLANG? 15. 14 WEB? NO ChicagoBoss 16. 15 ? DJANGO Web TASTYPIE REST ANGULARJS REDIS Publish/Subscribe COWBOY WebSocket 17. POSTGRESQL ANGULARJS DJANGO ORM MODEL TASTYPIE MODEL RESOURCE 16 18. SUBSCRIBER 17 PUBLISH SUBSCRIBE PUBLISHER SUBSCRIBER SUBSCRIBER CHANNEL 19. POSTGRESQL REDIS DJANGO ORM MODEL TASTYPIE SERIALIZER TASTYPIE MODEL RESOURCE ANGULARJS ANGULARJS COWBOY EREDIS SUBSCRIBE PROCESS ERLANG BULLET SUBSCRIBESAVE PUBLISH TESTYPIE HYDRATE HTTP POST WEBSOCKET 20. 20 ? RPC RabbitMQ RPC . : https://github.com/ir4y/asteroid 21. CELERY WORKER RABBITMQ ERLANG CELERY CLIENT COWBOY ERLANG BULLET ANGULARJS RPC PROVIDER SELECT WORKER SEND TASK RESULT IN JSON PARSE CELERY RESULT RESTORE UUID APPEND UUID TO CELERY RESULT SEND DATA TO BULLET PROCESS ROUTE RECEIVED DATA WITH UUID TO CALLBACK SERIALIZE DATA TO JSON SAVE UUID SPAWN PROCESS SYNC CALL TO CELERY GENERATE UUID CALL PROCEDUER 22. GITHUB.COM/IR4Y