SlideShare a Scribd company logo
CSC Knowledge Summit 4/2015
Language Agnostic Technologies
introduced in pi-web-agent 0.4rc2
Speaker:
Andreas Galazis
So are you going to talk about Message
queues?
Not exactly ...
You'll see that the problem we are trying to solve is
not directly related with the purpose of message
queues.
First couple of problems
We need low latency communication between
the client and the server
We need full duplex communication between
the server
Previous solutions
Regular http requests:
Previous solutions
Ajax Polling
Solution: Html5 WebSockets
Problem solved?
NO!
Pi Web Agent is A Platform
What’s the point of having a platform?(unified development process/attract different
developers )
I can build my own websocket server.
There exist a variety of modules/libraries that can provide websocket support for each
language. What about newcomers that have to figure out what they should use?
Try to build web socket server to serve your bash script.
Try to plug websockets to an existing application on your linux machine.
Problem not solved yet!
Websocketd
It's like CGI, twenty years later, for WebSockets
A web socket daemon for unix machines
-Doug McIlroy inventor of the Unix pipe
“Write programs that do one thing and do it well.
Write programs to work together.
Write programs to handle text streams,
because that is a universal interface.”
Websocketd
“Write programs that do one thing and do it well!”
Websocketd really does one thing...
For every connection :Run one instance of your
application with its stdin/stdout converted to
bidirectional websocket communication
What if you want to broadcast your messages?
Problem not solved yet!
Publish/Subscribe message queue-fanout
In our case rabbitMQ was used
The scenario
components:
● Producer: user application that sends messages.
● Exchange: receives messages from producers
and it pushes them to queues
● Queue: a buffer that stores messages.
● Consumer: application that receives messages.
Bindings: the relationship between the exchange and the que
Putting it all together:WebsocketdBro
So do people need to care about using the two technologies
together?
WebsocketdBro( a websocketd broadcaster):
your app
Websocketd
runs consumers
Browser Browser
Questions?
References
● rabbitmq - Provides robust messaging for applications!
● websocketd - WebSockets the UNIX way!
● websocketdBro - Combines rabbitmq and websocketd to support message broadcasting

More Related Content

What's hot

Introduction to Angular for .NET Developers
Introduction to Angular for .NET DevelopersIntroduction to Angular for .NET Developers
Introduction to Angular for .NET Developers
Laurent Duveau
 
Real-time apps using Xamarin + SignalR
Real-time apps using Xamarin + SignalRReal-time apps using Xamarin + SignalR
Real-time apps using Xamarin + SignalR
Miguel Angel Teheran Garcia
 
Visnetwork package in R
Visnetwork package in R Visnetwork package in R
Visnetwork package in R
Dr. Volkan OBAN
 
Final Presentation
Final PresentationFinal Presentation
Final PresentationMahima Verma
 
Introduction to Angular for .NET Developers
Introduction to Angular for .NET DevelopersIntroduction to Angular for .NET Developers
Introduction to Angular for .NET Developers
Laurent Duveau
 
Offscreen canvas 2021 update
Offscreen canvas 2021 updateOffscreen canvas 2021 update
Offscreen canvas 2021 update
Igalia
 
Introduction to Angular for .NET Developers
Introduction to Angular for .NET DevelopersIntroduction to Angular for .NET Developers
Introduction to Angular for .NET Developers
Laurent Duveau
 
TypeScript: Angular's Secret Weapon
TypeScript: Angular's Secret WeaponTypeScript: Angular's Secret Weapon
TypeScript: Angular's Secret Weapon
Laurent Duveau
 

What's hot (8)

Introduction to Angular for .NET Developers
Introduction to Angular for .NET DevelopersIntroduction to Angular for .NET Developers
Introduction to Angular for .NET Developers
 
Real-time apps using Xamarin + SignalR
Real-time apps using Xamarin + SignalRReal-time apps using Xamarin + SignalR
Real-time apps using Xamarin + SignalR
 
Visnetwork package in R
Visnetwork package in R Visnetwork package in R
Visnetwork package in R
 
Final Presentation
Final PresentationFinal Presentation
Final Presentation
 
Introduction to Angular for .NET Developers
Introduction to Angular for .NET DevelopersIntroduction to Angular for .NET Developers
Introduction to Angular for .NET Developers
 
Offscreen canvas 2021 update
Offscreen canvas 2021 updateOffscreen canvas 2021 update
Offscreen canvas 2021 update
 
Introduction to Angular for .NET Developers
Introduction to Angular for .NET DevelopersIntroduction to Angular for .NET Developers
Introduction to Angular for .NET Developers
 
TypeScript: Angular's Secret Weapon
TypeScript: Angular's Secret WeaponTypeScript: Angular's Secret Weapon
TypeScript: Angular's Secret Weapon
 

Similar to Language agnostic technologies introduced in pi web-agent 0.4rc2

Software Developer's Journal - 02/2012
Software Developer's Journal - 02/2012Software Developer's Journal - 02/2012
Software Developer's Journal - 02/2012
Ricardo Peres
 
Over view of Technologies
Over view of TechnologiesOver view of Technologies
Over view of Technologies
Chris Mitchell
 
Unit - 1: ASP.NET Basic
Unit - 1:  ASP.NET BasicUnit - 1:  ASP.NET Basic
Unit - 1: ASP.NET Basic
KALIDHASANR
 
Net training in bhubaneswar
Net training in bhubaneswar Net training in bhubaneswar
Net training in bhubaneswar
litbbsr
 
Real time Web Application with XMPP and Wave
Real time Web Application with XMPP and WaveReal time Web Application with XMPP and Wave
Real time Web Application with XMPP and Wave
Mickaël Rémond
 
Introjs10.5.17SD
Introjs10.5.17SDIntrojs10.5.17SD
Introjs10.5.17SD
Thinkful
 
Interopability with Suse Linux: MoonLight Project
Interopability with Suse Linux: MoonLight Project Interopability with Suse Linux: MoonLight Project
Interopability with Suse Linux: MoonLight Project
Alessandro Binhara
 
Sustainability and bit-rot
Sustainability and bit-rotSustainability and bit-rot
Sustainability and bit-rot
Kiran Jonnalagadda
 
Training - Managing .NET/J2EE Projects
Training - Managing .NET/J2EE ProjectsTraining - Managing .NET/J2EE Projects
Training - Managing .NET/J2EE Projects
Shashank Banerjea
 
A Shift from Monolith to Microservice using Docker
A Shift from Monolith to Microservice using DockerA Shift from Monolith to Microservice using Docker
A Shift from Monolith to Microservice using Docker
Ajeet Singh Raina
 
How to build a Distributed Serverless Polyglot Microservices IoT Platform us...
How to build a Distributed Serverless Polyglot Microservices IoT Platform us...How to build a Distributed Serverless Polyglot Microservices IoT Platform us...
How to build a Distributed Serverless Polyglot Microservices IoT Platform us...
Animesh Singh
 
Visula C# Programming Lecture 1
Visula C# Programming Lecture 1Visula C# Programming Lecture 1
Visula C# Programming Lecture 1
Abou Bakr Ashraf
 
Node Js Non-blocking or asynchronous Blocking or synchronous.pdf
Node Js Non-blocking or asynchronous  Blocking or synchronous.pdfNode Js Non-blocking or asynchronous  Blocking or synchronous.pdf
Node Js Non-blocking or asynchronous Blocking or synchronous.pdf
DarshanaMallick
 
Basics to framework programming
Basics to framework programmingBasics to framework programming
Basics to framework programming
Global Indian Technology Solutions
 
X realtime xmp-ptut-pdf
X realtime xmp-ptut-pdfX realtime xmp-ptut-pdf
X realtime xmp-ptut-pdf
Hsiao Tim
 
DockerDay2015: Keynote
DockerDay2015: KeynoteDockerDay2015: Keynote
DockerDay2015: Keynote
Docker-Hanoi
 
Introduction Into Docker Ecosystem
Introduction Into Docker EcosystemIntroduction Into Docker Ecosystem
Introduction Into Docker Ecosystem
Alexander Pastukhov, OCPJP, OCPJWSD
 
RTP Bluemix Meetup April 20th 2016
RTP Bluemix Meetup April 20th 2016RTP Bluemix Meetup April 20th 2016
RTP Bluemix Meetup April 20th 2016
Tom Boucher
 
Scaling frontend applications with micro-frontends Presentation.pdf
Scaling frontend applications with micro-frontends Presentation.pdfScaling frontend applications with micro-frontends Presentation.pdf
Scaling frontend applications with micro-frontends Presentation.pdf
KatamaRajuBandigari1
 

Similar to Language agnostic technologies introduced in pi web-agent 0.4rc2 (20)

Software Developer's Journal - 02/2012
Software Developer's Journal - 02/2012Software Developer's Journal - 02/2012
Software Developer's Journal - 02/2012
 
Over view of Technologies
Over view of TechnologiesOver view of Technologies
Over view of Technologies
 
Unit - 1: ASP.NET Basic
Unit - 1:  ASP.NET BasicUnit - 1:  ASP.NET Basic
Unit - 1: ASP.NET Basic
 
Net training in bhubaneswar
Net training in bhubaneswar Net training in bhubaneswar
Net training in bhubaneswar
 
Real time Web Application with XMPP and Wave
Real time Web Application with XMPP and WaveReal time Web Application with XMPP and Wave
Real time Web Application with XMPP and Wave
 
Introjs10.5.17SD
Introjs10.5.17SDIntrojs10.5.17SD
Introjs10.5.17SD
 
Interopability with Suse Linux: MoonLight Project
Interopability with Suse Linux: MoonLight Project Interopability with Suse Linux: MoonLight Project
Interopability with Suse Linux: MoonLight Project
 
Transforming the web into a real application platform
Transforming the web into a real application platformTransforming the web into a real application platform
Transforming the web into a real application platform
 
Sustainability and bit-rot
Sustainability and bit-rotSustainability and bit-rot
Sustainability and bit-rot
 
Training - Managing .NET/J2EE Projects
Training - Managing .NET/J2EE ProjectsTraining - Managing .NET/J2EE Projects
Training - Managing .NET/J2EE Projects
 
A Shift from Monolith to Microservice using Docker
A Shift from Monolith to Microservice using DockerA Shift from Monolith to Microservice using Docker
A Shift from Monolith to Microservice using Docker
 
How to build a Distributed Serverless Polyglot Microservices IoT Platform us...
How to build a Distributed Serverless Polyglot Microservices IoT Platform us...How to build a Distributed Serverless Polyglot Microservices IoT Platform us...
How to build a Distributed Serverless Polyglot Microservices IoT Platform us...
 
Visula C# Programming Lecture 1
Visula C# Programming Lecture 1Visula C# Programming Lecture 1
Visula C# Programming Lecture 1
 
Node Js Non-blocking or asynchronous Blocking or synchronous.pdf
Node Js Non-blocking or asynchronous  Blocking or synchronous.pdfNode Js Non-blocking or asynchronous  Blocking or synchronous.pdf
Node Js Non-blocking or asynchronous Blocking or synchronous.pdf
 
Basics to framework programming
Basics to framework programmingBasics to framework programming
Basics to framework programming
 
X realtime xmp-ptut-pdf
X realtime xmp-ptut-pdfX realtime xmp-ptut-pdf
X realtime xmp-ptut-pdf
 
DockerDay2015: Keynote
DockerDay2015: KeynoteDockerDay2015: Keynote
DockerDay2015: Keynote
 
Introduction Into Docker Ecosystem
Introduction Into Docker EcosystemIntroduction Into Docker Ecosystem
Introduction Into Docker Ecosystem
 
RTP Bluemix Meetup April 20th 2016
RTP Bluemix Meetup April 20th 2016RTP Bluemix Meetup April 20th 2016
RTP Bluemix Meetup April 20th 2016
 
Scaling frontend applications with micro-frontends Presentation.pdf
Scaling frontend applications with micro-frontends Presentation.pdfScaling frontend applications with micro-frontends Presentation.pdf
Scaling frontend applications with micro-frontends Presentation.pdf
 

Language agnostic technologies introduced in pi web-agent 0.4rc2

  • 1. CSC Knowledge Summit 4/2015 Language Agnostic Technologies introduced in pi-web-agent 0.4rc2 Speaker: Andreas Galazis
  • 2. So are you going to talk about Message queues? Not exactly ... You'll see that the problem we are trying to solve is not directly related with the purpose of message queues.
  • 3. First couple of problems We need low latency communication between the client and the server We need full duplex communication between the server
  • 8. Pi Web Agent is A Platform What’s the point of having a platform?(unified development process/attract different developers ) I can build my own websocket server. There exist a variety of modules/libraries that can provide websocket support for each language. What about newcomers that have to figure out what they should use? Try to build web socket server to serve your bash script. Try to plug websockets to an existing application on your linux machine.
  • 10. Websocketd It's like CGI, twenty years later, for WebSockets A web socket daemon for unix machines -Doug McIlroy inventor of the Unix pipe “Write programs that do one thing and do it well. Write programs to work together. Write programs to handle text streams, because that is a universal interface.”
  • 11. Websocketd “Write programs that do one thing and do it well!” Websocketd really does one thing... For every connection :Run one instance of your application with its stdin/stdout converted to bidirectional websocket communication What if you want to broadcast your messages?
  • 13. Publish/Subscribe message queue-fanout In our case rabbitMQ was used The scenario components: ● Producer: user application that sends messages. ● Exchange: receives messages from producers and it pushes them to queues ● Queue: a buffer that stores messages. ● Consumer: application that receives messages. Bindings: the relationship between the exchange and the que
  • 14. Putting it all together:WebsocketdBro So do people need to care about using the two technologies together? WebsocketdBro( a websocketd broadcaster): your app Websocketd runs consumers Browser Browser
  • 16. References ● rabbitmq - Provides robust messaging for applications! ● websocketd - WebSockets the UNIX way! ● websocketdBro - Combines rabbitmq and websocketd to support message broadcasting