SlideShare une entreprise Scribd logo
1  sur  38
Télécharger pour lire hors ligne
Bring	 real-time	 interactivity	 to	 Drupal	 with	 Node.js




       Howard Tyson, senior developer, Zivtech
     Kieran Lal, technical director, enterprise sales
Upcoming	
  Webinars
•   Drupal	
  in	
  the	
  Trenches:	
  Solving	
  Real	
  World	
  Problems
•   Five	
  websites	
  you	
  can	
  launch	
  on	
  Dev	
  Cloud	
  without	
  Coding
•   Selecting	
  the	
  Right	
  Solution	
  to	
  Build	
  your	
  Online	
  
    Developer	
  Community
•   Easy	
  Drupal	
  Hosting	
  Lifecycle
•   From	
  PSD	
  to	
  Drupal	
  Theme
•   Four	
  Open	
  Source	
  Drupal	
  Applications	
  for	
  Higher	
  Ed


             http://acquia.com/resources/webinars
Upcoming	
  Node.js	
  Webinars


•   Lessons	
  learned	
  integrating	
  Drupal	
  with	
  Node.js	
  and	
  
    MongoDB	
  powered	
  Web	
  Services
 • Lior	
  Kesos,	
  Swifto,	
  founder	
  Linnovate
 • November	
  9th,	
  2011




            http://acquia.com/resources/webinars
Howard	
  Tyson


•   Howard	
  Tyson,	
  Senior	
  Developer	
  at	
  Zivtech	
  
•   Developing	
  Drupal	
  powered	
  websites	
  since	
  2006.	
  	
  
•   Howard	
  contributes	
  to	
  Drupal	
  and	
  co-­‐maintains	
  the	
  
    Nodejs	
  module,	
  Version	
  Control	
  API	
  among	
  others.
•   Version	
  control	
  powers	
  Git	
  repository	
  on	
  Drupal.org	
  which	
  
    has	
  added	
  6000	
  more	
  developers	
  since	
  Jan,	
  2011
Node.js & Drupal
  Drupal in realtime via Node.js
Who
Who am I?
Howard Tyson


• Drupal.org, twitter, IRC: tizzo
• Senior Developer at Zivtech
• Drupal & systems architect, trainer
Zivtech
• Drupal experts
• Open source enthusiasts (node.js,
  Alfresco, Zend, Python, etc).

• Excellent web/mobile design team
• Offer public and private trainings
  focused on turning smart people
  into excellent developers
What
What is Node.js everyone is talking about,
                 anyway?
Node.js

• Javascript on the server
• Based on Google’s V8 engine
• Event driven
• Asynchronous I/O performed by
 libraries
Architecture
  JavaScript                       C/C++




                your code



           node standard library


    node bindings provided by modules
            (socket, http, etc)


               thread pool
Architecture
• A single process runs the main
  event loop and maintains all
  connections

• Tasks are performed
  asynchronously by workers in a
  thread pool managed by a library
  leaving the main event loop free to
  handle other requests
Node.js hello
       world



• Writing a web server was never so
  easy!
Why
We already have Apache, why is this helpful?
Why we care about
    realtime?
• Users expect more and more (they
  see it on Facebook, Twitter, Google,
  etc. every day)

• Great for mobile
• Bridge the native app gap
A Use Case
• Dignio
• A service for
  improving life for
  patience needing
  additional care but
  not assisted living

• Realtime webapp for
  call center
  employees, patients
Apache’s
     Shortcomings
• One thread (usually
  one process) per
  connection

• Memory heavy
  processes (for
  Drupal especially)

• Persistent and
  concurrent
  connections are
Node.js is good
        for...
• Concurrency!
  • Asynchronous I/O
  • Low overhead for
    open connections

• Light weight servers
• Networking
  applications
Node.js is good
       for...
• Backend workers or serving clients
• Node.js has a vibrant community
  writing extensions (often you just
  need to write some glue, sound
  familiar?)

• Wherever Drupal’s power comes at
  too high a price
How
How do we use node.js with Drupal?
Integarting with
      node.js
• Write your own node.js server
 • if you know javascript, it’s not so
    hard!

• Use drupal’s node.js module for
  realtime communications
The Node.js
       module
• The node.js module on Drupal.org
• http://drupal.org/project/nodejs
• Focused on realtime updates for
  Drupal

 • Provides a node.js server and a
   Drupal module that integrates
   with it
Realtime?

• Until now, when a client opens a
  page they don’t see updates until
  the next time they refresh the page

• Our module can push content to
  someone while they view the page
Authentication
                       4.3. Node.js sends a
                          Drupal returns
                       listauth token to
                            of channels for
                             the user
                              Drupal


    2. Connection
 5. Node.js notifies                       1. Normal Drupal
    requested by
 client that auth is                          Page Load
socket.io using auth
       successful                         (with auth token)
         token
Subsequent pages


      2. Node.js
   remembers the        1. Normal Drupal
    authenticated           Page Load
token, authenticating   (with auth token)
 the user without a
    need to query
     Drupal again
Client requests Drupal page




                       Drupal sends down HTML with JS token




              Client sends auth
              token to Node.js
                                                     Node.js verifies
                                                    token with Drupal



                                                                        Apache
     Client                                           Drupal sends
                                                       appropriate      / Nginx
               Node.js notifies                       channels for the
                 the client of                            user
               successful auth
                                   Node.js

                 Subsequent
               connections do
                not hit Drupal




Web browser              Node.js Server                           Apache Server
Where
Where can my code hook in to leverage
              Node.js?
PHP
JavaScript
Add a user to a
   channel
Message only the
    channel
When
Are we getting new features?
What’s coming

• Version 1.0 is right around the
  corner

• we’re on beta5
• Chatroom is undergoing a refactor
  to rely on a push capable backend
  (like node.js)
New Features

• Content channels (recently landed)
 • Views integration
 • Generic entity updating
 • Your module here...
Call to action!
• We need:
 • Contributors!
 • Documentation writers!
 • Testers!
• http://drupal.org/project/nodejs
• http://drupal.org/project/chatroom
Demo
Let’s see it in action!
Questions
•   For	
  more	
  information	
  visit:	
  	
  http://www.acquia.com
•   Follow	
  us:	
  	
  http://www.twitter.com/acquia
•   Contact	
  us:	
  	
  sales@acquia.com	
  or	
  888.9.ACQUIA
•   Howard	
  Tyson	
  howard@howardtyson.com
•   Kieran	
  Lal,	
  kieran@acquia.com,	
  	
  415-­‐992-­‐8124
•   follow:	
  amazonk
           Today’s	
  webinar	
  recording	
  will	
  be	
  posted	
  to:
     http://acquia.com/resources/recorded_webinars

Contenu connexe

Tendances

MEAN Stack WeNode Barcelona Workshop
MEAN Stack WeNode Barcelona WorkshopMEAN Stack WeNode Barcelona Workshop
MEAN Stack WeNode Barcelona Workshop
Valeri Karpov
 

Tendances (20)

JavaScript as a Server side language (NodeJS): JSConf 2011, Dhaka
JavaScript as a Server side language (NodeJS): JSConf 2011, DhakaJavaScript as a Server side language (NodeJS): JSConf 2011, Dhaka
JavaScript as a Server side language (NodeJS): JSConf 2011, Dhaka
 
Node js for beginners
Node js for beginnersNode js for beginners
Node js for beginners
 
The MEAN Stack: MongoDB, ExpressJS, AngularJS and Node.js
The MEAN Stack: MongoDB, ExpressJS, AngularJS and Node.jsThe MEAN Stack: MongoDB, ExpressJS, AngularJS and Node.js
The MEAN Stack: MongoDB, ExpressJS, AngularJS and Node.js
 
PHP Indonesia - Nodejs Web Development
PHP Indonesia - Nodejs Web DevelopmentPHP Indonesia - Nodejs Web Development
PHP Indonesia - Nodejs Web Development
 
NodeJS ecosystem
NodeJS ecosystemNodeJS ecosystem
NodeJS ecosystem
 
Node js Introduction
Node js IntroductionNode js Introduction
Node js Introduction
 
Nodejs getting started
Nodejs getting startedNodejs getting started
Nodejs getting started
 
Why You Should Use MERN Stack for Startup Apps?
Why You Should Use MERN Stack for Startup Apps?Why You Should Use MERN Stack for Startup Apps?
Why You Should Use MERN Stack for Startup Apps?
 
Introduction to node.js aka NodeJS
Introduction to node.js aka NodeJSIntroduction to node.js aka NodeJS
Introduction to node.js aka NodeJS
 
MEAN Stack WeNode Barcelona Workshop
MEAN Stack WeNode Barcelona WorkshopMEAN Stack WeNode Barcelona Workshop
MEAN Stack WeNode Barcelona Workshop
 
Node js
Node jsNode js
Node js
 
Best node js course
Best node js courseBest node js course
Best node js course
 
Building Real World Application with Azure
Building Real World Application with AzureBuilding Real World Application with Azure
Building Real World Application with Azure
 
Node.js architecture (EN)
Node.js architecture (EN)Node.js architecture (EN)
Node.js architecture (EN)
 
When Will Drupal Die? (Keynote talk)
When Will Drupal Die? (Keynote talk)When Will Drupal Die? (Keynote talk)
When Will Drupal Die? (Keynote talk)
 
Introduction to node js - From "hello world" to deploying on azure
Introduction to node js - From "hello world" to deploying on azureIntroduction to node js - From "hello world" to deploying on azure
Introduction to node js - From "hello world" to deploying on azure
 
Nodejs
NodejsNodejs
Nodejs
 
Searching for the framework of my dreams in node.js ecosystem by Mykyta Semen...
Searching for the framework of my dreams in node.js ecosystem by Mykyta Semen...Searching for the framework of my dreams in node.js ecosystem by Mykyta Semen...
Searching for the framework of my dreams in node.js ecosystem by Mykyta Semen...
 
Complete MVC on NodeJS
Complete MVC on NodeJSComplete MVC on NodeJS
Complete MVC on NodeJS
 
Building an E-commerce website in MEAN stack
Building an E-commerce website in MEAN stackBuilding an E-commerce website in MEAN stack
Building an E-commerce website in MEAN stack
 

Similaire à Bringing Interactivity to Your Drupal Site with Node.js Integration

Node.JS and WebSockets with Faye
Node.JS and WebSockets with FayeNode.JS and WebSockets with Faye
Node.JS and WebSockets with Faye
Matjaž Lipuš
 
Dockercon plugins session
Dockercon plugins sessionDockercon plugins session
Dockercon plugins session
Weaveworks
 

Similaire à Bringing Interactivity to Your Drupal Site with Node.js Integration (20)

Nodejs overview
Nodejs overviewNodejs overview
Nodejs overview
 
Beginners Node.js
Beginners Node.jsBeginners Node.js
Beginners Node.js
 
20120306 dublin js
20120306 dublin js20120306 dublin js
20120306 dublin js
 
Kalp Corporate Node JS Perfect Guide
Kalp Corporate Node JS Perfect GuideKalp Corporate Node JS Perfect Guide
Kalp Corporate Node JS Perfect Guide
 
DEV117 - Unleash the Power of the AppDev Pack and Node.js in Domino
DEV117 - Unleash the Power of the AppDev Pack and Node.js in DominoDEV117 - Unleash the Power of the AppDev Pack and Node.js in Domino
DEV117 - Unleash the Power of the AppDev Pack and Node.js in Domino
 
IoT Node-Red Presentation
IoT  Node-Red PresentationIoT  Node-Red Presentation
IoT Node-Red Presentation
 
20120802 timisoara
20120802 timisoara20120802 timisoara
20120802 timisoara
 
Node.js for .NET Developers
Node.js for .NET DevelopersNode.js for .NET Developers
Node.js for .NET Developers
 
Node.js In The Enterprise - A Primer
Node.js In The Enterprise - A PrimerNode.js In The Enterprise - A Primer
Node.js In The Enterprise - A Primer
 
Real time web
Real time webReal time web
Real time web
 
Tech io nodejs_20130531_v0.6
Tech io nodejs_20130531_v0.6Tech io nodejs_20130531_v0.6
Tech io nodejs_20130531_v0.6
 
Node js installation steps.pptx slide share ppts
Node js installation steps.pptx slide share pptsNode js installation steps.pptx slide share ppts
Node js installation steps.pptx slide share ppts
 
Node.JS and WebSockets with Faye
Node.JS and WebSockets with FayeNode.JS and WebSockets with Faye
Node.JS and WebSockets with Faye
 
node_js.pptx
node_js.pptxnode_js.pptx
node_js.pptx
 
A Journey Begin with Node.js
A Journey Begin with Node.jsA Journey Begin with Node.js
A Journey Begin with Node.js
 
Node.js Native AddOns from zero to hero - Nicola Del Gobbo - Codemotion Rome ...
Node.js Native AddOns from zero to hero - Nicola Del Gobbo - Codemotion Rome ...Node.js Native AddOns from zero to hero - Nicola Del Gobbo - Codemotion Rome ...
Node.js Native AddOns from zero to hero - Nicola Del Gobbo - Codemotion Rome ...
 
Kubernetes automation in production
Kubernetes automation in productionKubernetes automation in production
Kubernetes automation in production
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
 
Docker for dev
Docker for devDocker for dev
Docker for dev
 
Dockercon plugins session
Dockercon plugins sessionDockercon plugins session
Dockercon plugins session
 

Plus de Acquia

Taking Your Multi-Site Management at Scale to the Next Level
Taking Your Multi-Site Management at Scale to the Next LevelTaking Your Multi-Site Management at Scale to the Next Level
Taking Your Multi-Site Management at Scale to the Next Level
Acquia
 

Plus de Acquia (20)

Acquia_Adcetera Webinar_Marketing Automation.pdf
Acquia_Adcetera Webinar_Marketing Automation.pdfAcquia_Adcetera Webinar_Marketing Automation.pdf
Acquia_Adcetera Webinar_Marketing Automation.pdf
 
Acquia Webinar Deck - 9_13 .pdf
Acquia Webinar Deck - 9_13 .pdfAcquia Webinar Deck - 9_13 .pdf
Acquia Webinar Deck - 9_13 .pdf
 
Taking Your Multi-Site Management at Scale to the Next Level
Taking Your Multi-Site Management at Scale to the Next LevelTaking Your Multi-Site Management at Scale to the Next Level
Taking Your Multi-Site Management at Scale to the Next Level
 
CDP for Retail Webinar with Appnovation - Q2 2022.pdf
CDP for Retail Webinar with Appnovation - Q2 2022.pdfCDP for Retail Webinar with Appnovation - Q2 2022.pdf
CDP for Retail Webinar with Appnovation - Q2 2022.pdf
 
May Partner Bootcamp 2022
May Partner Bootcamp 2022May Partner Bootcamp 2022
May Partner Bootcamp 2022
 
April Partner Bootcamp 2022
April Partner Bootcamp 2022April Partner Bootcamp 2022
April Partner Bootcamp 2022
 
How to Unify Brand Experience: A Hootsuite Story
How to Unify Brand Experience: A Hootsuite Story How to Unify Brand Experience: A Hootsuite Story
How to Unify Brand Experience: A Hootsuite Story
 
Using Personas to Guide DAM Results: How Life Time Pumped Up Their UX and CX
Using Personas to Guide DAM Results: How Life Time Pumped Up Their UX and CXUsing Personas to Guide DAM Results: How Life Time Pumped Up Their UX and CX
Using Personas to Guide DAM Results: How Life Time Pumped Up Their UX and CX
 
Improve Code Quality and Time to Market: 100% Cloud-Based Development Workflow
Improve Code Quality and Time to Market: 100% Cloud-Based Development WorkflowImprove Code Quality and Time to Market: 100% Cloud-Based Development Workflow
Improve Code Quality and Time to Market: 100% Cloud-Based Development Workflow
 
September Partner Bootcamp
September Partner BootcampSeptember Partner Bootcamp
September Partner Bootcamp
 
August partner bootcamp
August partner bootcampAugust partner bootcamp
August partner bootcamp
 
July 2021 Partner Bootcamp
July  2021 Partner BootcampJuly  2021 Partner Bootcamp
July 2021 Partner Bootcamp
 
May Partner Bootcamp
May Partner BootcampMay Partner Bootcamp
May Partner Bootcamp
 
DRUPAL 7 END OF LIFE IS NEAR - MIGRATE TO DRUPAL 9 FAST AND EASY
DRUPAL 7 END OF LIFE IS NEAR - MIGRATE TO DRUPAL 9 FAST AND EASYDRUPAL 7 END OF LIFE IS NEAR - MIGRATE TO DRUPAL 9 FAST AND EASY
DRUPAL 7 END OF LIFE IS NEAR - MIGRATE TO DRUPAL 9 FAST AND EASY
 
Work While You Sleep: The CMO’s Guide to a 24/7/365 Lead Machine
Work While You Sleep: The CMO’s Guide to a 24/7/365 Lead MachineWork While You Sleep: The CMO’s Guide to a 24/7/365 Lead Machine
Work While You Sleep: The CMO’s Guide to a 24/7/365 Lead Machine
 
Acquia webinar: Leveraging Drupal to Bury Your Sales Team In B2B Leads
Acquia webinar: Leveraging Drupal to Bury Your Sales Team In B2B LeadsAcquia webinar: Leveraging Drupal to Bury Your Sales Team In B2B Leads
Acquia webinar: Leveraging Drupal to Bury Your Sales Team In B2B Leads
 
April partner bootcamp deck cookieless future
April partner bootcamp deck  cookieless futureApril partner bootcamp deck  cookieless future
April partner bootcamp deck cookieless future
 
How to enhance cx through personalised, automated solutions
How to enhance cx through personalised, automated solutionsHow to enhance cx through personalised, automated solutions
How to enhance cx through personalised, automated solutions
 
DRUPAL MIGRATIONS AND DRUPAL 9 INNOVATION: HOW PAC-12 DELIVERED DIGITALLY FOR...
DRUPAL MIGRATIONS AND DRUPAL 9 INNOVATION: HOW PAC-12 DELIVERED DIGITALLY FOR...DRUPAL MIGRATIONS AND DRUPAL 9 INNOVATION: HOW PAC-12 DELIVERED DIGITALLY FOR...
DRUPAL MIGRATIONS AND DRUPAL 9 INNOVATION: HOW PAC-12 DELIVERED DIGITALLY FOR...
 
Customer Experience (CX): 3 Key Factors Shaping CX Redesign in 2021
Customer Experience (CX): 3 Key Factors Shaping CX Redesign in 2021Customer Experience (CX): 3 Key Factors Shaping CX Redesign in 2021
Customer Experience (CX): 3 Key Factors Shaping CX Redesign in 2021
 

Dernier

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
Enterprise Knowledge
 
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
giselly40
 
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
Earley Information Science
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Dernier (20)

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
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
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
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
 
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
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
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
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
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...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 

Bringing Interactivity to Your Drupal Site with Node.js Integration

  • 1. Bring real-time interactivity to Drupal with Node.js Howard Tyson, senior developer, Zivtech Kieran Lal, technical director, enterprise sales
  • 2. Upcoming  Webinars • Drupal  in  the  Trenches:  Solving  Real  World  Problems • Five  websites  you  can  launch  on  Dev  Cloud  without  Coding • Selecting  the  Right  Solution  to  Build  your  Online   Developer  Community • Easy  Drupal  Hosting  Lifecycle • From  PSD  to  Drupal  Theme • Four  Open  Source  Drupal  Applications  for  Higher  Ed http://acquia.com/resources/webinars
  • 3. Upcoming  Node.js  Webinars • Lessons  learned  integrating  Drupal  with  Node.js  and   MongoDB  powered  Web  Services • Lior  Kesos,  Swifto,  founder  Linnovate • November  9th,  2011 http://acquia.com/resources/webinars
  • 4. Howard  Tyson • Howard  Tyson,  Senior  Developer  at  Zivtech   • Developing  Drupal  powered  websites  since  2006.     • Howard  contributes  to  Drupal  and  co-­‐maintains  the   Nodejs  module,  Version  Control  API  among  others. • Version  control  powers  Git  repository  on  Drupal.org  which   has  added  6000  more  developers  since  Jan,  2011
  • 5.
  • 6. Node.js & Drupal Drupal in realtime via Node.js
  • 8. Howard Tyson • Drupal.org, twitter, IRC: tizzo • Senior Developer at Zivtech • Drupal & systems architect, trainer
  • 9. Zivtech • Drupal experts • Open source enthusiasts (node.js, Alfresco, Zend, Python, etc). • Excellent web/mobile design team • Offer public and private trainings focused on turning smart people into excellent developers
  • 10. What What is Node.js everyone is talking about, anyway?
  • 11. Node.js • Javascript on the server • Based on Google’s V8 engine • Event driven • Asynchronous I/O performed by libraries
  • 12. Architecture JavaScript C/C++ your code node standard library node bindings provided by modules (socket, http, etc) thread pool
  • 13. Architecture • A single process runs the main event loop and maintains all connections • Tasks are performed asynchronously by workers in a thread pool managed by a library leaving the main event loop free to handle other requests
  • 14. Node.js hello world • Writing a web server was never so easy!
  • 15. Why We already have Apache, why is this helpful?
  • 16. Why we care about realtime? • Users expect more and more (they see it on Facebook, Twitter, Google, etc. every day) • Great for mobile • Bridge the native app gap
  • 17. A Use Case • Dignio • A service for improving life for patience needing additional care but not assisted living • Realtime webapp for call center employees, patients
  • 18. Apache’s Shortcomings • One thread (usually one process) per connection • Memory heavy processes (for Drupal especially) • Persistent and concurrent connections are
  • 19. Node.js is good for... • Concurrency! • Asynchronous I/O • Low overhead for open connections • Light weight servers • Networking applications
  • 20. Node.js is good for... • Backend workers or serving clients • Node.js has a vibrant community writing extensions (often you just need to write some glue, sound familiar?) • Wherever Drupal’s power comes at too high a price
  • 21. How How do we use node.js with Drupal?
  • 22. Integarting with node.js • Write your own node.js server • if you know javascript, it’s not so hard! • Use drupal’s node.js module for realtime communications
  • 23. The Node.js module • The node.js module on Drupal.org • http://drupal.org/project/nodejs • Focused on realtime updates for Drupal • Provides a node.js server and a Drupal module that integrates with it
  • 24. Realtime? • Until now, when a client opens a page they don’t see updates until the next time they refresh the page • Our module can push content to someone while they view the page
  • 25. Authentication 4.3. Node.js sends a Drupal returns listauth token to of channels for the user Drupal 2. Connection 5. Node.js notifies 1. Normal Drupal requested by client that auth is Page Load socket.io using auth successful (with auth token) token
  • 26. Subsequent pages 2. Node.js remembers the 1. Normal Drupal authenticated Page Load token, authenticating (with auth token) the user without a need to query Drupal again
  • 27. Client requests Drupal page Drupal sends down HTML with JS token Client sends auth token to Node.js Node.js verifies token with Drupal Apache Client Drupal sends appropriate / Nginx Node.js notifies channels for the the client of user successful auth Node.js Subsequent connections do not hit Drupal Web browser Node.js Server Apache Server
  • 28. Where Where can my code hook in to leverage Node.js?
  • 29. PHP
  • 31. Add a user to a channel
  • 32. Message only the channel
  • 33. When Are we getting new features?
  • 34. What’s coming • Version 1.0 is right around the corner • we’re on beta5 • Chatroom is undergoing a refactor to rely on a push capable backend (like node.js)
  • 35. New Features • Content channels (recently landed) • Views integration • Generic entity updating • Your module here...
  • 36. Call to action! • We need: • Contributors! • Documentation writers! • Testers! • http://drupal.org/project/nodejs • http://drupal.org/project/chatroom
  • 37. Demo Let’s see it in action!
  • 38. Questions • For  more  information  visit:    http://www.acquia.com • Follow  us:    http://www.twitter.com/acquia • Contact  us:    sales@acquia.com  or  888.9.ACQUIA • Howard  Tyson  howard@howardtyson.com • Kieran  Lal,  kieran@acquia.com,    415-­‐992-­‐8124 • follow:  amazonk Today’s  webinar  recording  will  be  posted  to: http://acquia.com/resources/recorded_webinars