Разработка RealTime веб приложений (Никита Грошин, ADD-2011)

Материал из CustisWiki

Версия от 18:47, 18 октября 2011; StasFomin (обсуждение)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Это снимок страницы. Он включает старые, но не удалённые версии шаблонов и изображений.
Перейти к: навигация, поиск

Аннотация

Докладчик
Никита Грошин
  • Суть проблемы
    • Зачем нужен РеалТайм?
    • Где можно и нужно применять подобный подход?
  • Клиент сайд
    • Как скрестить ежа с ужем или веб браузер как терминал реального времении
    • Обзор основных подходов
    • Polling, Long poll, iframe, Flash сокеты, HTML5 WebSocket
  • Сервер сайд
    • Socket соединение как серверный рессурс
    • Обзор готовых решений
    • Caplin, Liberator, Cometd (Python), ErlyComet, GlassFish , Jetty, Lightstreamer, Meteor, Orbited, Persevere, RMDS2Web Server
    • Почему они все унылы?
    • Делаем свой сервер node.js + socket.io
  • Интерактив
    • Тем кто еще не уснул наглядно доказвается приемущество реалтайма на примере интерактивной игры эксперимента

Видео

Видео в HD-качестве, смотрите в полноэкранном режиме.

HTML-код включения <iframe src="http://player.vimeo.com/video/23575335?byline=0&portrait=0" width="720" height="405" frameborder="0"></iframe>

Скачать → на странице видео на vimeo, кнопка «Download»

Скачать
http://ftp.linux.kiev.ua/pub/conference/peers/addconf/2011/2c2-real-time-web-applications-groshin.avs.avi


Для этого доклада нужен подкаст (аудиозапись)?

  •  Да, многое понятно и без видео части, есть смысл его прослушать.
  •  Нет, аудиозапись бесполезна (не понять без видео или вообще мало смысла в докладе).

Презентация

Примечания и отзывы



Очень позабавил утренний доклад Никиты Грошина с сисечным бинго 8) Отличная идея для утреннего доклада на второй день конференции. Не стала отнимать у остальных возможность выиграть утреннюю банку пива, да и сиськами меня не удивить, свои всегда при мне 8) Правда кроме сисек, пива и упоротых технологий из доклада помню только про необходимость посмотреть на Node.js. Но ведь в этом и была суть доклада, да? ©

Самый неординарный докладчик — толстый, в дредах и пьяный (ну, выпил перед докладом пару пива, а может и всю ночь квасил: он перед приездом искал в твиттере собутыльников). Живет и работает в Таиланде. Стас утверждает, что публично в интернетах предлагал на докладе набить ему морду. Выступал очень живо. В рамках доклада слушателям была предложена игра (boobs bingo): видишь сиськи на слайде — кричи «сиськи», получи банку пива.

Суть доклада — кагбэ ликбез по real-time операциям в web-приложениях. Зачем это нужно — ну понятно, трейдинг всякий. Тока зачем это делать через web? — ну наверно бывает удобно. Есть несколько подходов транспортного уровня — какой выбрать? а чтобы везде поддерживалось? На сервере нужно держать много соединений — есть несколько готовых решений, но они чем-то плохи. В итоге остается socket.io (прозрачно объединяет различные транспортные уровни, сам выбирая подходящий) + node.js (отлично масштабируемое сервер на JavaScript). Чем Никита сам пользуется и другим желает.

Очень харизматичный докладчик, так что успех рассказа был обеспечен. Сама технология: выполнение JS на сервере (к слову о CouchDB, это явно становится трендом). С возможностью в реалтайме обращаться к браузеру клиента. Давно про это слышал, теперь понял как оно работает. Не совсем понятна ниша применения, нужно будет еще почитать.

Пузатый и дредастый докладчик рассказывал про связку socket.io + Node.js. Пришел не к началу, поэтому прикладную задачу не понял.

Веб-разработка это совсем не мое, но теперь буду знать куда смотреть, если потребуется сделать нагруженное веб-приложения.

На клиенте:

  • socket.io, js-библиотека, которая сама умеет выбирать транспорт для эффективных запросов

На сервере

  • Node.js (серверный JavaScript)

Что умеет:

  • Скорость (исполняется на движке google V8)
  • Модульность (есть коннекторы к многим NoSQL базам, например)
  • Closures
  • Неблокирующий ввод-вывод
  • Доказанная надежность (по уверению докладчика)


Как альтернатива:

  • JBoss Netty (Java)
  • Erly Comet (Erlang)
  • Tornado (Python)
  • Coffee Script (код в стиле руби компилируется в JavaScript), вместе с Node.js




Внимание! Данная статья выбрана для репликации во внешнюю базу знаний компании. Пожалуйста, не допускайте в этой статье публикацию конфиденциальной информации, ведения обсуждений в теле статьи, и более ответственно относитесь к качеству самой статьи — проверяйте орфографию, пишите по-русски, избегайте непроверенной вами информации.