SlideShare a Scribd company logo
1 of 42
Download to read offline
Building	
  Real-­‐Time	
  Web	
  Applica4ons	
  
Tony	
  Abou-­‐Assaleh	
  &	
  Mark	
  Dineen	
  
October	
  22,	
  2013	
  
Volta	
  Labs	
  
Agenda	
  
• 
• 
• 
• 
• 
• 
• 

What	
  is	
  real-­‐time	
  web	
  
The	
  stack	
  
Client-­‐side	
  
Server-­‐side	
  
The	
  Flow	
  
Beyond	
  the	
  basics	
  
Live	
  Tutorial	
  
Copyright	
  (c)	
  2013	
  TitanFile	
  Inc.	
  

2	
  
Who	
  we	
  are	
  
•  Tony	
  Abou-­‐Assaleh	
  
–  PhD	
  in	
  Computer	
  Science	
  from	
  Dal	
  
–  Cofounder	
  and	
  CEO,	
  TitanFile	
  
–  Ex-­‐Google,	
  VP	
  Tech	
  /	
  R&D	
  Director	
  @	
  
GenieKnows	
  
–  Developed	
  the	
  initial	
  real-­‐time	
  components	
  of	
  
TitanFile	
  
–  Core	
  member	
  of	
  Backbone	
  Marionette	
  Team	
  

Copyright	
  (c)	
  2013	
  TitanFile	
  Inc.	
  

3	
  
Who	
  we	
  are	
  
•  Mark	
  Dineen	
  
–  CTO,	
  TitanFile	
  
–  Made	
  RT	
  in	
  TitanFile	
  fast	
  and	
  secure	
  
–  Director	
  of	
  IT	
  at	
  Allianz	
  
–  Compliance	
  and	
  security	
  veteran	
  
–  Contributor	
  at	
  OWASP.org	
  	
  

Copyright	
  (c)	
  2013	
  TitanFile	
  Inc.	
  

4	
  
What	
  is	
  Real-­‐Time	
  Web?	
  

Copyright	
  (c)	
  2013	
  TitanFile	
  Inc.	
  

5	
  
What	
  is	
  Real-­‐Time	
  Web?	
  
Copyright	
  (c)	
  2013	
  TitanFile	
  Inc.	
  

6	
  
What	
  is	
  Real-­‐Time	
  Web?	
  
• 
• 
• 
• 

Saves	
  to	
  the	
  database	
  ≠	
  real-­‐time	
  Web	
  
Periodic	
  refresh	
  ≠	
  real-­‐time	
  Web	
  
Real-­‐time	
  computing	
  ≠	
  real-­‐time	
  Web	
  
Real-­‐time	
  streaming	
  ≠	
  real-­‐time	
  Web	
  

Copyright	
  (c)	
  2013	
  TitanFile	
  Inc.	
  

7	
  
What	
  is	
  Real-­‐Time	
  Web?	
  
A	
  set	
  of	
  technologies	
  and	
  practices	
  that	
  enable	
  
users	
  to	
  receive	
  information	
  as	
  soon	
  as	
  it	
  is	
  
published	
  by	
  its	
  authors,	
  rather	
  than	
  requiring	
  
that	
  they	
  or	
  their	
  software	
  check	
  a	
  source	
  
periodically	
  for	
  updates.	
  

Copyright	
  (c)	
  2013	
  TitanFile	
  Inc.	
  

8	
  
What	
  is	
  Real-­‐Time	
  Web?	
  
• 
• 
• 
• 

Dynamic	
  user	
  interface	
  
Server-­‐side	
  push	
  
Event-­‐driven	
  
Asynchronous	
  

Copyright	
  (c)	
  2013	
  TitanFile	
  Inc.	
  

9	
  
Applica4on	
  of	
  RT	
  Web	
  
• 
• 
• 
• 
• 
• 
• 

Chat,	
  communication	
  
Collaboration	
  
Co-­‐editing,	
  co-­‐browsing,	
  co-­‐shopping	
  
Dashboards	
  and	
  monitoring	
  
Gaming	
  
Social	
  Web	
  
Date	
  Streaming	
  
Copyright	
  (c)	
  2013	
  TitanFile	
  Inc.	
  

10	
  
The	
  Stack	
  

Copyright	
  (c)	
  2013	
  TitanFile	
  Inc.	
  

11	
  
Copyright	
  (c)	
  2013	
  TitanFile	
  Inc.	
  

12	
  
The	
  Stack	
  
•  Asynchronous,	
  dynamic	
  client	
  
•  HTML5	
  WebSockets	
  
	
  

•  Asynchronous	
  backend	
  server	
  
Copyright	
  (c)	
  2013	
  TitanFile	
  Inc.	
  

13	
  
The	
  Stack	
  @	
  TitanFile	
  

Client	
  

Server	
  
Dispatcher	
  
TornadIO2	
  

Copyright	
  (c)	
  2013	
  TitanFile	
  Inc.	
  

14	
  
Client-­‐Side	
  Stack	
  

Copyright	
  (c)	
  2013	
  TitanFile	
  Inc.	
  

15	
  
Transport	
  Op4ons	
  -­‐	
  Comet	
  
•  HTML5	
  WebSockets	
  
•  Flash	
  Socket	
  
•  Long	
  Polling	
  
–  IFrame	
  
–  Ajax	
  
–  XMLHttpRequest	
  
–  JSONP	
  

Copyright	
  (c)	
  2013	
  TitanFile	
  Inc.	
  

16	
  
Cross-­‐origin	
  resource	
  sharing	
  (CORS)	
  

Copyright	
  (c)	
  2013	
  TitanFile	
  Inc.	
  

17	
  
Polling	
  vs.	
  WebSockets	
  

Copyright	
  (c)	
  2013	
  TitanFile	
  Inc.	
  

18	
  
WebSocket	
  Handshake	
  

Copyright	
  (c)	
  2013	
  TitanFile	
  Inc.	
  

19	
  
WebSocket	
  Op4ons	
  
•  Plain	
  HTML5	
  WebSockets	
  
	
  
•  SockJS	
  
•  Socket.io	
  

Copyright	
  (c)	
  2013	
  TitanFile	
  Inc.	
  

20	
  
HTML5	
  WebSockets	
  
• 
• 
• 
• 

Open	
  Connection	
  
Send	
  message	
  
On	
  message	
  event	
  
Close	
  connection	
  

Copyright	
  (c)	
  2013	
  TitanFile	
  Inc.	
  

21	
  
SockJS	
  
• 
• 
• 
• 

WebSocket	
  Emulator	
  
Follows	
  HTML5	
  WebSocket	
  API	
  
Cross-­‐domain	
  support	
  
Polling	
  as	
  fallback	
  

Copyright	
  (c)	
  2013	
  TitanFile	
  Inc.	
  

22	
  
Socket.IO	
  
•  Real-­‐time	
  Web	
  App	
  Protocol	
  
•  Event-­‐based	
  communication	
  
–  Connection	
  events	
  
–  Named	
  events	
  

•  Broadcast	
  
•  Cross-­‐browser	
  and	
  platform	
  
•  Server-­‐side	
  (Node.JS)	
  and	
  client-­‐side	
  
Copyright	
  (c)	
  2013	
  TitanFile	
  Inc.	
  

23	
  
Server-­‐Side	
  Stack	
  

Copyright	
  (c)	
  2013	
  TitanFile	
  Inc.	
  

24	
  
Real-­‐Time	
  Web	
  Servers	
  
•  Most	
  modern	
  languages	
  …	
  
•  Many	
  modern	
  frameworks	
  …	
  
–  NodeJS	
  
–  Tornado	
  

Copyright	
  (c)	
  2013	
  TitanFile	
  Inc.	
  

25	
  
The	
  Flow	
  

Copyright	
  (c)	
  2013	
  TitanFile	
  Inc.	
  

26	
  
Copyright	
  (c)	
  2013	
  TitanFile	
  Inc.	
  

27	
  
Copyright	
  (c)	
  2013	
  TitanFile	
  Inc.	
  

28	
  
More	
  Detailed	
  (Useful)	
  Flow	
  

Copyright	
  (c)	
  2013	
  TitanFile	
  Inc.	
  

29	
  
Copyright	
  (c)	
  2013	
  TitanFile	
  Inc.	
  

30	
  
Copyright	
  (c)	
  2013	
  TitanFile	
  Inc.	
  

31	
  
Pub	
  Sub	
  PaPern	
  
• 
• 
• 
• 

Decouples	
  senders	
  from	
  receivers	
  
Intermediate	
  hub	
  
Senders	
  –	
  publish	
  messages	
  to	
  a	
  channel	
  
Receivers	
  –	
  subscribe	
  to	
  a	
  channel	
  

Copyright	
  (c)	
  2013	
  TitanFile	
  Inc.	
  

32	
  
The	
  Flow	
  @	
  TitanFile	
  
Sender	
  Client	
  

Server	
  

Recipient	
  Client	
  

User	
  Action	
  

Django	
  
Model	
  Saved	
  

Django	
  
post_save	
  

Render	
  
changes	
  

Backbone	
  
Model	
  Saved	
  

Django	
  
Handler	
  

Django	
  signal	
  
handler	
  

Backbone	
  
handler	
  

ioSync	
  
Socket.io	
  

TornadIO2	
  
Dispatcher	
  

TorandIO2	
  
Broadcast	
  

ioBind	
  
Socket.io	
  

Copyright	
  (c)	
  2013	
  TitanFile	
  Inc.	
  

33	
  
Beyond	
  the	
  Basics	
  
	
  
Real-­‐World	
  Challenges	
  

Copyright	
  (c)	
  2013	
  TitanFile	
  Inc.	
  

34	
  
Real	
  World	
  Challenges	
  
• 
• 
• 
• 

Authentication	
  
Security	
  
Binary	
  Data	
  (Files)	
  
Blocking	
  Code	
  
–  Database,	
  File	
  I/O,	
  Network	
  

•  Scalability	
  

Copyright	
  (c)	
  2013	
  TitanFile	
  Inc.	
  

35	
  
Authen4ca4on	
  

Copyright	
  (c)	
  2013	
  TitanFile	
  Inc.	
  

36	
  
Security	
  

Copyright	
  (c)	
  2013	
  TitanFile	
  Inc.	
  

37	
  
Binary	
  Data	
  

Copyright	
  (c)	
  2013	
  TitanFile	
  Inc.	
  

38	
  
Blocking	
  Code	
  

Copyright	
  (c)	
  2013	
  TitanFile	
  Inc.	
  

39	
  
Scalability	
  

Copyright	
  (c)	
  2013	
  TitanFile	
  Inc.	
  

40	
  
Live	
  Tutorial	
  
https://github.com/mdineen/chatserver	
  

Copyright	
  (c)	
  2013	
  TitanFile	
  Inc.	
  

41	
  
Tony	
  Abou-­‐Assaleh	
  &	
  Mark	
  Dineen	
  
https://www.titanFile.com	
  
{taa,mark}@titanFile.com	
  
Twitter:	
  @tony_aa,	
  @DineenMa	
  

More Related Content

What's hot

Schema Registry 101 with Bill Bejeck | Kafka Summit London 2022
Schema Registry 101 with Bill Bejeck | Kafka Summit London 2022Schema Registry 101 with Bill Bejeck | Kafka Summit London 2022
Schema Registry 101 with Bill Bejeck | Kafka Summit London 2022HostedbyConfluent
 
IBM RedHat OCP Vs xKS.pptx
IBM RedHat OCP Vs xKS.pptxIBM RedHat OCP Vs xKS.pptx
IBM RedHat OCP Vs xKS.pptxssuser666667
 
Introduction to Docker storage, volume and image
Introduction to Docker storage, volume and imageIntroduction to Docker storage, volume and image
Introduction to Docker storage, volume and imageejlp12
 
DCEU 18: Dockerfile Best Practices
DCEU 18: Dockerfile Best PracticesDCEU 18: Dockerfile Best Practices
DCEU 18: Dockerfile Best PracticesDocker, Inc.
 
The internals and the latest trends of container runtimes
The internals and the latest trends of container runtimesThe internals and the latest trends of container runtimes
The internals and the latest trends of container runtimesAkihiro Suda
 
User authentication and authorizarion in Kubernetes
User authentication and authorizarion in KubernetesUser authentication and authorizarion in Kubernetes
User authentication and authorizarion in KubernetesNeependra Khare
 
Azure kubernetes service
Azure kubernetes serviceAzure kubernetes service
Azure kubernetes serviceVishwas N
 
Dissecting our Legacy: The Strangler Fig Pattern with Debezium, Apache Kafka ...
Dissecting our Legacy: The Strangler Fig Pattern with Debezium, Apache Kafka ...Dissecting our Legacy: The Strangler Fig Pattern with Debezium, Apache Kafka ...
Dissecting our Legacy: The Strangler Fig Pattern with Debezium, Apache Kafka ...HostedbyConfluent
 
GitOps with Amazon EKS Anywhere by Dan Budris
GitOps with Amazon EKS Anywhere by Dan BudrisGitOps with Amazon EKS Anywhere by Dan Budris
GitOps with Amazon EKS Anywhere by Dan BudrisWeaveworks
 
OpenID 4 Verifiable Credentials + HAIP (Update)
OpenID 4 Verifiable Credentials + HAIP (Update)OpenID 4 Verifiable Credentials + HAIP (Update)
OpenID 4 Verifiable Credentials + HAIP (Update)Torsten Lodderstedt
 
Starting up Containers Super Fast With Lazy Pulling of Images
Starting up Containers Super Fast With Lazy Pulling of ImagesStarting up Containers Super Fast With Lazy Pulling of Images
Starting up Containers Super Fast With Lazy Pulling of ImagesKohei Tokunaga
 
Pharo Virtual Machine: News from the Front
Pharo Virtual Machine: News from the FrontPharo Virtual Machine: News from the Front
Pharo Virtual Machine: News from the FrontESUG
 
End-End Security with Confluent Platform
End-End Security with Confluent Platform End-End Security with Confluent Platform
End-End Security with Confluent Platform confluent
 
A Introduction of Packer
A Introduction of PackerA Introduction of Packer
A Introduction of PackerFreyr Lin
 
OpenHPC: Community Building Blocks for HPC Systems
OpenHPC: Community Building Blocks for HPC SystemsOpenHPC: Community Building Blocks for HPC Systems
OpenHPC: Community Building Blocks for HPC Systemsinside-BigData.com
 

What's hot (20)

Schema Registry 101 with Bill Bejeck | Kafka Summit London 2022
Schema Registry 101 with Bill Bejeck | Kafka Summit London 2022Schema Registry 101 with Bill Bejeck | Kafka Summit London 2022
Schema Registry 101 with Bill Bejeck | Kafka Summit London 2022
 
IBM RedHat OCP Vs xKS.pptx
IBM RedHat OCP Vs xKS.pptxIBM RedHat OCP Vs xKS.pptx
IBM RedHat OCP Vs xKS.pptx
 
Introduction to Docker storage, volume and image
Introduction to Docker storage, volume and imageIntroduction to Docker storage, volume and image
Introduction to Docker storage, volume and image
 
DCEU 18: Dockerfile Best Practices
DCEU 18: Dockerfile Best PracticesDCEU 18: Dockerfile Best Practices
DCEU 18: Dockerfile Best Practices
 
The internals and the latest trends of container runtimes
The internals and the latest trends of container runtimesThe internals and the latest trends of container runtimes
The internals and the latest trends of container runtimes
 
User authentication and authorizarion in Kubernetes
User authentication and authorizarion in KubernetesUser authentication and authorizarion in Kubernetes
User authentication and authorizarion in Kubernetes
 
Azure kubernetes service
Azure kubernetes serviceAzure kubernetes service
Azure kubernetes service
 
Docker on Docker
Docker on DockerDocker on Docker
Docker on Docker
 
An Introduction to Git
An Introduction to GitAn Introduction to Git
An Introduction to Git
 
Dissecting our Legacy: The Strangler Fig Pattern with Debezium, Apache Kafka ...
Dissecting our Legacy: The Strangler Fig Pattern with Debezium, Apache Kafka ...Dissecting our Legacy: The Strangler Fig Pattern with Debezium, Apache Kafka ...
Dissecting our Legacy: The Strangler Fig Pattern with Debezium, Apache Kafka ...
 
GitOps with Amazon EKS Anywhere by Dan Budris
GitOps with Amazon EKS Anywhere by Dan BudrisGitOps with Amazon EKS Anywhere by Dan Budris
GitOps with Amazon EKS Anywhere by Dan Budris
 
OpenID 4 Verifiable Credentials + HAIP (Update)
OpenID 4 Verifiable Credentials + HAIP (Update)OpenID 4 Verifiable Credentials + HAIP (Update)
OpenID 4 Verifiable Credentials + HAIP (Update)
 
Docker Compose Explained
Docker Compose ExplainedDocker Compose Explained
Docker Compose Explained
 
HBase RITs
HBase RITsHBase RITs
HBase RITs
 
Starting up Containers Super Fast With Lazy Pulling of Images
Starting up Containers Super Fast With Lazy Pulling of ImagesStarting up Containers Super Fast With Lazy Pulling of Images
Starting up Containers Super Fast With Lazy Pulling of Images
 
Pharo Virtual Machine: News from the Front
Pharo Virtual Machine: News from the FrontPharo Virtual Machine: News from the Front
Pharo Virtual Machine: News from the Front
 
End-End Security with Confluent Platform
End-End Security with Confluent Platform End-End Security with Confluent Platform
End-End Security with Confluent Platform
 
A Introduction of Packer
A Introduction of PackerA Introduction of Packer
A Introduction of Packer
 
Introduction to Kubernetes
Introduction to KubernetesIntroduction to Kubernetes
Introduction to Kubernetes
 
OpenHPC: Community Building Blocks for HPC Systems
OpenHPC: Community Building Blocks for HPC SystemsOpenHPC: Community Building Blocks for HPC Systems
OpenHPC: Community Building Blocks for HPC Systems
 

Viewers also liked

HTML5 WebSockets in Python/Django
HTML5 WebSockets in Python/DjangoHTML5 WebSockets in Python/Django
HTML5 WebSockets in Python/DjangoTony Abou-Assaleh
 
Le UX Design en Afrique - WIAD Lyon 2017
Le UX Design en Afrique - WIAD Lyon 2017Le UX Design en Afrique - WIAD Lyon 2017
Le UX Design en Afrique - WIAD Lyon 2017YUX Dakar
 
Security and governance in the cloud
Security and governance in the cloudSecurity and governance in the cloud
Security and governance in the cloudJulian Knight
 
How Spotify Does Test Automation - Kristian Karl
How Spotify Does Test Automation - Kristian KarlHow Spotify Does Test Automation - Kristian Karl
How Spotify Does Test Automation - Kristian KarlSmartBear
 
Talking to Humans: The Art of Customer Discovery
Talking to Humans: The Art of Customer DiscoveryTalking to Humans: The Art of Customer Discovery
Talking to Humans: The Art of Customer DiscoveryNew York University
 
Quality Built In @ Spotify
Quality Built In @ SpotifyQuality Built In @ Spotify
Quality Built In @ SpotifyAndrii Dzynia
 
Introduction to SoapUI day 1
Introduction to SoapUI day 1Introduction to SoapUI day 1
Introduction to SoapUI day 1Qualitest
 
Introduction to Test Automation
Introduction to Test AutomationIntroduction to Test Automation
Introduction to Test AutomationPekka Klärck
 
Ross Snyder, Etsy, SXSW Lean Startup 2013
Ross Snyder, Etsy, SXSW Lean Startup 2013Ross Snyder, Etsy, SXSW Lean Startup 2013
Ross Snyder, Etsy, SXSW Lean Startup 2013500 Startups
 
Design, Create & Explore Learning with Your Mobile Devices
Design, Create & Explore Learning with Your Mobile DevicesDesign, Create & Explore Learning with Your Mobile Devices
Design, Create & Explore Learning with Your Mobile DevicesNick Floro
 
Tips for Designing, Testing & Delivering eLearning in a Multi-device World
Tips for Designing, Testing & Delivering eLearning in a Multi-device WorldTips for Designing, Testing & Delivering eLearning in a Multi-device World
Tips for Designing, Testing & Delivering eLearning in a Multi-device WorldUpside Learning Solutions
 
Как заработать в облаке? FAQ для реселлеров и интеграторов
Как заработать в облаке? FAQ для реселлеров и интеграторовКак заработать в облаке? FAQ для реселлеров и интеграторов
Как заработать в облаке? FAQ для реселлеров и интеграторовMichael Kozloff
 
Creating Maintainable Automated Acceptance Tests
Creating Maintainable Automated Acceptance TestsCreating Maintainable Automated Acceptance Tests
Creating Maintainable Automated Acceptance TestsJez Humble
 
The Copywriter’s Handbook
The Copywriter’s HandbookThe Copywriter’s Handbook
The Copywriter’s HandbookColin Post
 

Viewers also liked (15)

HTML5 WebSockets in Python/Django
HTML5 WebSockets in Python/DjangoHTML5 WebSockets in Python/Django
HTML5 WebSockets in Python/Django
 
Le UX Design en Afrique - WIAD Lyon 2017
Le UX Design en Afrique - WIAD Lyon 2017Le UX Design en Afrique - WIAD Lyon 2017
Le UX Design en Afrique - WIAD Lyon 2017
 
Security and governance in the cloud
Security and governance in the cloudSecurity and governance in the cloud
Security and governance in the cloud
 
How Spotify Does Test Automation - Kristian Karl
How Spotify Does Test Automation - Kristian KarlHow Spotify Does Test Automation - Kristian Karl
How Spotify Does Test Automation - Kristian Karl
 
Talking to Humans: The Art of Customer Discovery
Talking to Humans: The Art of Customer DiscoveryTalking to Humans: The Art of Customer Discovery
Talking to Humans: The Art of Customer Discovery
 
Quality Built In @ Spotify
Quality Built In @ SpotifyQuality Built In @ Spotify
Quality Built In @ Spotify
 
Introduction to SoapUI day 1
Introduction to SoapUI day 1Introduction to SoapUI day 1
Introduction to SoapUI day 1
 
The impact of AI on work
The impact of AI on workThe impact of AI on work
The impact of AI on work
 
Introduction to Test Automation
Introduction to Test AutomationIntroduction to Test Automation
Introduction to Test Automation
 
Ross Snyder, Etsy, SXSW Lean Startup 2013
Ross Snyder, Etsy, SXSW Lean Startup 2013Ross Snyder, Etsy, SXSW Lean Startup 2013
Ross Snyder, Etsy, SXSW Lean Startup 2013
 
Design, Create & Explore Learning with Your Mobile Devices
Design, Create & Explore Learning with Your Mobile DevicesDesign, Create & Explore Learning with Your Mobile Devices
Design, Create & Explore Learning with Your Mobile Devices
 
Tips for Designing, Testing & Delivering eLearning in a Multi-device World
Tips for Designing, Testing & Delivering eLearning in a Multi-device WorldTips for Designing, Testing & Delivering eLearning in a Multi-device World
Tips for Designing, Testing & Delivering eLearning in a Multi-device World
 
Как заработать в облаке? FAQ для реселлеров и интеграторов
Как заработать в облаке? FAQ для реселлеров и интеграторовКак заработать в облаке? FAQ для реселлеров и интеграторов
Как заработать в облаке? FAQ для реселлеров и интеграторов
 
Creating Maintainable Automated Acceptance Tests
Creating Maintainable Automated Acceptance TestsCreating Maintainable Automated Acceptance Tests
Creating Maintainable Automated Acceptance Tests
 
The Copywriter’s Handbook
The Copywriter’s HandbookThe Copywriter’s Handbook
The Copywriter’s Handbook
 

Similar to Building Real-Time Web Applications

NYC Titanium User's Group - tiConf US Revisited
NYC Titanium User's Group - tiConf US RevisitedNYC Titanium User's Group - tiConf US Revisited
NYC Titanium User's Group - tiConf US RevisitedJohn Oliva
 
Comparison of Open Source Frameworks for Integrating the Internet of Things
Comparison of Open Source Frameworks for Integrating the Internet of ThingsComparison of Open Source Frameworks for Integrating the Internet of Things
Comparison of Open Source Frameworks for Integrating the Internet of ThingsKai Wähner
 
IoT Open Source Integration Comparison (Kura, Node-RED, Flogo, Apache Nifi, S...
IoT Open Source Integration Comparison (Kura, Node-RED, Flogo, Apache Nifi, S...IoT Open Source Integration Comparison (Kura, Node-RED, Flogo, Apache Nifi, S...
IoT Open Source Integration Comparison (Kura, Node-RED, Flogo, Apache Nifi, S...Kai Wähner
 
Sc manufacturing conference and expo hitachi i io-t april 20 2016 final
Sc manufacturing conference and expo   hitachi i io-t april 20 2016 finalSc manufacturing conference and expo   hitachi i io-t april 20 2016 final
Sc manufacturing conference and expo hitachi i io-t april 20 2016 finalKeith Brown
 
From zero to one - How we evolved our test automation processes and mindset i...
From zero to one - How we evolved our test automation processes and mindset i...From zero to one - How we evolved our test automation processes and mindset i...
From zero to one - How we evolved our test automation processes and mindset i...Jen-Chieh Ko
 
WebRTC Webinar & Q&A - W3C WebRTC JS API Test Platform & Updates from W3C Lis...
WebRTC Webinar & Q&A - W3C WebRTC JS API Test Platform & Updates from W3C Lis...WebRTC Webinar & Q&A - W3C WebRTC JS API Test Platform & Updates from W3C Lis...
WebRTC Webinar & Q&A - W3C WebRTC JS API Test Platform & Updates from W3C Lis...Amir Zmora
 
Microservices at Scale with Istio
Microservices at Scale with IstioMicroservices at Scale with Istio
Microservices at Scale with IstioJesse Butler
 
Using Appcelerator Titanium to build native android apps without the native pain
Using Appcelerator Titanium to build native android apps without the native painUsing Appcelerator Titanium to build native android apps without the native pain
Using Appcelerator Titanium to build native android apps without the native painGaurav Kheterpal
 
TiConf Australia 2013
TiConf Australia 2013TiConf Australia 2013
TiConf Australia 2013Jeff Haynie
 
Effective IoT System on Openstack
Effective IoT System on OpenstackEffective IoT System on Openstack
Effective IoT System on OpenstackTakashi Kajinami
 
Recommendation at scale
Recommendation at scaleRecommendation at scale
Recommendation at scalesimondolle
 
Triton: A peer-assisted cloud storage systems
Triton: A peer-assisted cloud storage systems Triton: A peer-assisted cloud storage systems
Triton: A peer-assisted cloud storage systems Antonio Davoli
 
InfluxDB Community Office Hours September 2020
InfluxDB Community Office Hours September 2020 InfluxDB Community Office Hours September 2020
InfluxDB Community Office Hours September 2020 InfluxData
 
Mission Possible: Future of IT Support
Mission Possible: Future of IT SupportMission Possible: Future of IT Support
Mission Possible: Future of IT SupportCompTIA
 
Crafting enhanced customer experience through chatbots, beacons and oracle jet
Crafting enhanced customer experience through chatbots, beacons and oracle jetCrafting enhanced customer experience through chatbots, beacons and oracle jet
Crafting enhanced customer experience through chatbots, beacons and oracle jetRohit Dhamija
 
Beyond S3 Buckets - Effective Countermeasures for Emerging Cloud Threats
Beyond S3 Buckets - Effective Countermeasures for Emerging Cloud ThreatsBeyond S3 Buckets - Effective Countermeasures for Emerging Cloud Threats
Beyond S3 Buckets - Effective Countermeasures for Emerging Cloud ThreatsSBWebinars
 
[Public] 7 archetipi della tecnologia moderna [italy]
[Public] 7 archetipi della tecnologia moderna [italy][Public] 7 archetipi della tecnologia moderna [italy]
[Public] 7 archetipi della tecnologia moderna [italy]Nicolas Bortolotti
 

Similar to Building Real-Time Web Applications (20)

NYC Titanium User's Group - tiConf US Revisited
NYC Titanium User's Group - tiConf US RevisitedNYC Titanium User's Group - tiConf US Revisited
NYC Titanium User's Group - tiConf US Revisited
 
Comparison of Open Source Frameworks for Integrating the Internet of Things
Comparison of Open Source Frameworks for Integrating the Internet of ThingsComparison of Open Source Frameworks for Integrating the Internet of Things
Comparison of Open Source Frameworks for Integrating the Internet of Things
 
IoT Open Source Integration Comparison (Kura, Node-RED, Flogo, Apache Nifi, S...
IoT Open Source Integration Comparison (Kura, Node-RED, Flogo, Apache Nifi, S...IoT Open Source Integration Comparison (Kura, Node-RED, Flogo, Apache Nifi, S...
IoT Open Source Integration Comparison (Kura, Node-RED, Flogo, Apache Nifi, S...
 
Sc manufacturing conference and expo hitachi i io-t april 20 2016 final
Sc manufacturing conference and expo   hitachi i io-t april 20 2016 finalSc manufacturing conference and expo   hitachi i io-t april 20 2016 final
Sc manufacturing conference and expo hitachi i io-t april 20 2016 final
 
tiConf (la dediff)
tiConf (la dediff)tiConf (la dediff)
tiConf (la dediff)
 
Python Diamond Tool
Python Diamond ToolPython Diamond Tool
Python Diamond Tool
 
From zero to one - How we evolved our test automation processes and mindset i...
From zero to one - How we evolved our test automation processes and mindset i...From zero to one - How we evolved our test automation processes and mindset i...
From zero to one - How we evolved our test automation processes and mindset i...
 
WebRTC Webinar & Q&A - W3C WebRTC JS API Test Platform & Updates from W3C Lis...
WebRTC Webinar & Q&A - W3C WebRTC JS API Test Platform & Updates from W3C Lis...WebRTC Webinar & Q&A - W3C WebRTC JS API Test Platform & Updates from W3C Lis...
WebRTC Webinar & Q&A - W3C WebRTC JS API Test Platform & Updates from W3C Lis...
 
Microservices at Scale with Istio
Microservices at Scale with IstioMicroservices at Scale with Istio
Microservices at Scale with Istio
 
Using Appcelerator Titanium to build native android apps without the native pain
Using Appcelerator Titanium to build native android apps without the native painUsing Appcelerator Titanium to build native android apps without the native pain
Using Appcelerator Titanium to build native android apps without the native pain
 
TiConf Australia 2013
TiConf Australia 2013TiConf Australia 2013
TiConf Australia 2013
 
Effective IoT System on Openstack
Effective IoT System on OpenstackEffective IoT System on Openstack
Effective IoT System on Openstack
 
Recommendation at scale
Recommendation at scaleRecommendation at scale
Recommendation at scale
 
Triton: A peer-assisted cloud storage systems
Triton: A peer-assisted cloud storage systems Triton: A peer-assisted cloud storage systems
Triton: A peer-assisted cloud storage systems
 
InfluxDB Community Office Hours September 2020
InfluxDB Community Office Hours September 2020 InfluxDB Community Office Hours September 2020
InfluxDB Community Office Hours September 2020
 
Mission Possible: Future of IT Support
Mission Possible: Future of IT SupportMission Possible: Future of IT Support
Mission Possible: Future of IT Support
 
Introduction to RTI DDS
Introduction to RTI DDSIntroduction to RTI DDS
Introduction to RTI DDS
 
Crafting enhanced customer experience through chatbots, beacons and oracle jet
Crafting enhanced customer experience through chatbots, beacons and oracle jetCrafting enhanced customer experience through chatbots, beacons and oracle jet
Crafting enhanced customer experience through chatbots, beacons and oracle jet
 
Beyond S3 Buckets - Effective Countermeasures for Emerging Cloud Threats
Beyond S3 Buckets - Effective Countermeasures for Emerging Cloud ThreatsBeyond S3 Buckets - Effective Countermeasures for Emerging Cloud Threats
Beyond S3 Buckets - Effective Countermeasures for Emerging Cloud Threats
 
[Public] 7 archetipi della tecnologia moderna [italy]
[Public] 7 archetipi della tecnologia moderna [italy][Public] 7 archetipi della tecnologia moderna [italy]
[Public] 7 archetipi della tecnologia moderna [italy]
 

Recently uploaded

Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 

Recently uploaded (20)

Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 

Building Real-Time Web Applications

  • 1. Building  Real-­‐Time  Web  Applica4ons   Tony  Abou-­‐Assaleh  &  Mark  Dineen   October  22,  2013   Volta  Labs  
  • 2. Agenda   •  •  •  •  •  •  •  What  is  real-­‐time  web   The  stack   Client-­‐side   Server-­‐side   The  Flow   Beyond  the  basics   Live  Tutorial   Copyright  (c)  2013  TitanFile  Inc.   2  
  • 3. Who  we  are   •  Tony  Abou-­‐Assaleh   –  PhD  in  Computer  Science  from  Dal   –  Cofounder  and  CEO,  TitanFile   –  Ex-­‐Google,  VP  Tech  /  R&D  Director  @   GenieKnows   –  Developed  the  initial  real-­‐time  components  of   TitanFile   –  Core  member  of  Backbone  Marionette  Team   Copyright  (c)  2013  TitanFile  Inc.   3  
  • 4. Who  we  are   •  Mark  Dineen   –  CTO,  TitanFile   –  Made  RT  in  TitanFile  fast  and  secure   –  Director  of  IT  at  Allianz   –  Compliance  and  security  veteran   –  Contributor  at  OWASP.org     Copyright  (c)  2013  TitanFile  Inc.   4  
  • 5. What  is  Real-­‐Time  Web?   Copyright  (c)  2013  TitanFile  Inc.   5  
  • 6. What  is  Real-­‐Time  Web?   Copyright  (c)  2013  TitanFile  Inc.   6  
  • 7. What  is  Real-­‐Time  Web?   •  •  •  •  Saves  to  the  database  ≠  real-­‐time  Web   Periodic  refresh  ≠  real-­‐time  Web   Real-­‐time  computing  ≠  real-­‐time  Web   Real-­‐time  streaming  ≠  real-­‐time  Web   Copyright  (c)  2013  TitanFile  Inc.   7  
  • 8. What  is  Real-­‐Time  Web?   A  set  of  technologies  and  practices  that  enable   users  to  receive  information  as  soon  as  it  is   published  by  its  authors,  rather  than  requiring   that  they  or  their  software  check  a  source   periodically  for  updates.   Copyright  (c)  2013  TitanFile  Inc.   8  
  • 9. What  is  Real-­‐Time  Web?   •  •  •  •  Dynamic  user  interface   Server-­‐side  push   Event-­‐driven   Asynchronous   Copyright  (c)  2013  TitanFile  Inc.   9  
  • 10. Applica4on  of  RT  Web   •  •  •  •  •  •  •  Chat,  communication   Collaboration   Co-­‐editing,  co-­‐browsing,  co-­‐shopping   Dashboards  and  monitoring   Gaming   Social  Web   Date  Streaming   Copyright  (c)  2013  TitanFile  Inc.   10  
  • 11. The  Stack   Copyright  (c)  2013  TitanFile  Inc.   11  
  • 12. Copyright  (c)  2013  TitanFile  Inc.   12  
  • 13. The  Stack   •  Asynchronous,  dynamic  client   •  HTML5  WebSockets     •  Asynchronous  backend  server   Copyright  (c)  2013  TitanFile  Inc.   13  
  • 14. The  Stack  @  TitanFile   Client   Server   Dispatcher   TornadIO2   Copyright  (c)  2013  TitanFile  Inc.   14  
  • 15. Client-­‐Side  Stack   Copyright  (c)  2013  TitanFile  Inc.   15  
  • 16. Transport  Op4ons  -­‐  Comet   •  HTML5  WebSockets   •  Flash  Socket   •  Long  Polling   –  IFrame   –  Ajax   –  XMLHttpRequest   –  JSONP   Copyright  (c)  2013  TitanFile  Inc.   16  
  • 17. Cross-­‐origin  resource  sharing  (CORS)   Copyright  (c)  2013  TitanFile  Inc.   17  
  • 18. Polling  vs.  WebSockets   Copyright  (c)  2013  TitanFile  Inc.   18  
  • 19. WebSocket  Handshake   Copyright  (c)  2013  TitanFile  Inc.   19  
  • 20. WebSocket  Op4ons   •  Plain  HTML5  WebSockets     •  SockJS   •  Socket.io   Copyright  (c)  2013  TitanFile  Inc.   20  
  • 21. HTML5  WebSockets   •  •  •  •  Open  Connection   Send  message   On  message  event   Close  connection   Copyright  (c)  2013  TitanFile  Inc.   21  
  • 22. SockJS   •  •  •  •  WebSocket  Emulator   Follows  HTML5  WebSocket  API   Cross-­‐domain  support   Polling  as  fallback   Copyright  (c)  2013  TitanFile  Inc.   22  
  • 23. Socket.IO   •  Real-­‐time  Web  App  Protocol   •  Event-­‐based  communication   –  Connection  events   –  Named  events   •  Broadcast   •  Cross-­‐browser  and  platform   •  Server-­‐side  (Node.JS)  and  client-­‐side   Copyright  (c)  2013  TitanFile  Inc.   23  
  • 24. Server-­‐Side  Stack   Copyright  (c)  2013  TitanFile  Inc.   24  
  • 25. Real-­‐Time  Web  Servers   •  Most  modern  languages  …   •  Many  modern  frameworks  …   –  NodeJS   –  Tornado   Copyright  (c)  2013  TitanFile  Inc.   25  
  • 26. The  Flow   Copyright  (c)  2013  TitanFile  Inc.   26  
  • 27. Copyright  (c)  2013  TitanFile  Inc.   27  
  • 28. Copyright  (c)  2013  TitanFile  Inc.   28  
  • 29. More  Detailed  (Useful)  Flow   Copyright  (c)  2013  TitanFile  Inc.   29  
  • 30. Copyright  (c)  2013  TitanFile  Inc.   30  
  • 31. Copyright  (c)  2013  TitanFile  Inc.   31  
  • 32. Pub  Sub  PaPern   •  •  •  •  Decouples  senders  from  receivers   Intermediate  hub   Senders  –  publish  messages  to  a  channel   Receivers  –  subscribe  to  a  channel   Copyright  (c)  2013  TitanFile  Inc.   32  
  • 33. The  Flow  @  TitanFile   Sender  Client   Server   Recipient  Client   User  Action   Django   Model  Saved   Django   post_save   Render   changes   Backbone   Model  Saved   Django   Handler   Django  signal   handler   Backbone   handler   ioSync   Socket.io   TornadIO2   Dispatcher   TorandIO2   Broadcast   ioBind   Socket.io   Copyright  (c)  2013  TitanFile  Inc.   33  
  • 34. Beyond  the  Basics     Real-­‐World  Challenges   Copyright  (c)  2013  TitanFile  Inc.   34  
  • 35. Real  World  Challenges   •  •  •  •  Authentication   Security   Binary  Data  (Files)   Blocking  Code   –  Database,  File  I/O,  Network   •  Scalability   Copyright  (c)  2013  TitanFile  Inc.   35  
  • 36. Authen4ca4on   Copyright  (c)  2013  TitanFile  Inc.   36  
  • 37. Security   Copyright  (c)  2013  TitanFile  Inc.   37  
  • 38. Binary  Data   Copyright  (c)  2013  TitanFile  Inc.   38  
  • 39. Blocking  Code   Copyright  (c)  2013  TitanFile  Inc.   39  
  • 40. Scalability   Copyright  (c)  2013  TitanFile  Inc.   40  
  • 41. Live  Tutorial   https://github.com/mdineen/chatserver   Copyright  (c)  2013  TitanFile  Inc.   41  
  • 42. Tony  Abou-­‐Assaleh  &  Mark  Dineen   https://www.titanFile.com   {taa,mark}@titanFile.com   Twitter:  @tony_aa,  @DineenMa