SlideShare a Scribd company logo
REAL-TIME WEB APPS
Sepehr Rasouli
OVERVIEW
1.Introduction & Applications
2.Low level real-time implementation
3.Real-time Technologies
4.Sample code
5.Demo(HTTP polling, HTTP streaming,
WebSocket)
WHAT ARE REAL-TIME WEB APPS?
• Allows users to receive information as soon
as it is published
• Bi-directional communication between
clients & server
• Both pull and push based systems
EXAMPLES & APPLICATIONS
• Gmail
• Facebook
• Twitter
• Chat Services
• Online Gaming
• Notification and signaling
• Shows live data
• Easy collaboration

Recommended for you

Getting Started with WebSockets and Server-Sent Events
Getting Started with WebSockets and Server-Sent EventsGetting Started with WebSockets and Server-Sent Events
Getting Started with WebSockets and Server-Sent Events

This document discusses WebSocket and Server-Sent Events (SSE) for building interactive web applications. It provides an overview of WebSocket including how it enables full-duplex communication over a single TCP connection and the handshake process. It also discusses the Java API for WebSocket including annotated endpoints and custom payloads. Finally, it covers SSE, the EventSource API, and an example SSE implementation in Java.

wildflyhtml5sse
Apache ActiveMQ and Apache ServiceMix
Apache ActiveMQ and Apache ServiceMixApache ActiveMQ and Apache ServiceMix
Apache ActiveMQ and Apache ServiceMix

This document provides an overview and agenda for a presentation on Apache ActiveMQ and Apache ServiceMix. The presentation covers installing and configuring ActiveMQ, using ActiveMQ with Spring JMS, ActiveMQ features like message routing and topologies, an introduction to Apache ServiceMix for enterprise service buses and message routing, and options for using ActiveMQ like directly, with message-driven beans, or with Spring message listeners.

integrationapacheservicemix
Web server
Web serverWeb server
Web server

Web servers help deliver content that can be accessed through the Internet. Tim Berners-Lee developed the first web server, known as CERN httpd, in 1989 at CERN. Web servers listen on port 80 and handle requests by mapping URLs to files in their root directories or by dynamically generating content. They create and send responses back to clients, handling connections by forking new threads or processes. Apache is the most commonly used web server, hosting over 60% of websites in March 2011.

world wide webweb serverapache
Notification and signaling
Activity Streams
DataVisualization
Online Multiplayer Games

Recommended for you

Coherence sig-nfr-web-tier-scaling-using-coherence-web
Coherence sig-nfr-web-tier-scaling-using-coherence-webCoherence sig-nfr-web-tier-scaling-using-coherence-web
Coherence sig-nfr-web-tier-scaling-using-coherence-web

This document summarizes the non-functional benefits of scaling web applications using Coherence*Web for HTTP session management. It discusses how Coherence*Web provides redundancy, high availability, independent scaling of application and session tiers, and reduced latency through use of a local near cache. It also describes different session models (traditional, monolithic, split) and how attribute scoping can be configured to isolate or share sessions across applications.

coherencesig
Web servers
Web serversWeb servers
Web servers

Web servers are software applications that deliver web content accessible over the Internet or intranets. They host websites, files, scripts, and programs and serve them using HTTP and other protocols. Common web servers include Apache, Microsoft IIS, and Sun Java. Tomcat is an open source web server and servlet container. It implements Java servlets and JSP specifications, providing a Java HTTP environment. Tomcat's main components are Catalina for servlet handling, Coyote for HTTP connections, and Jasper for JSP compilation. While Apache is generally better for static content, Tomcat can be used with Apache for Java/JSP applications.

webserverpopular webserversapache
web server
web serverweb server
web server

Apache is the most popular web server, powering over half of all websites. It is an open-source software developed by the Apache Software Foundation to be deployed across various operating systems like Linux, Unix, and Windows. Some key features of Apache include virtual hosting, large file support, bandwidth throttling, and server-side scripting. The second most popular is Microsoft's IIS web server, which is optimized for Windows environments.

ppts
METHODS(HTTP)
•One-way
•Request/Response
•Stateless
REAL-TIME “HACKS”
•Long polling
•HTTP Streaming
•AJAX (XMLHTTPRequest &
InnerHTML)
AJAX REQUEST
• Window.open()
• HTTP Request browser will stop or hang for the server
response
• Xmlhttp.open()
• Ajax request is Async, java script does not have to wait
for the server response, so it can execute other scripts
and respond to user events while waiting for server
response
CONS OF “HACKS”
•http web server timeouts
•Too many connections
•Too much overhead
•Only a workaround and not a
native solution

Recommended for you

Web Server And Database Server
Web Server And Database ServerWeb Server And Database Server
Web Server And Database Server

The document provides information about web servers, database servers, and popular open source software used for each. It discusses what a web server and database server are, how they work, examples of common software like Apache and MySQL, and steps to install and configure Apache and MySQL on Ubuntu.

web serverdatabase serveroperating system
Web Server - Internet Applications
Web Server - Internet ApplicationsWeb Server - Internet Applications
Web Server - Internet Applications

a seminar about web Server in Internet Applications for the Faculty of Information Technology Engineering in Damascus University

iteweb serverinternet applications
Developing real-time data pipelines with Spring and Kafka
Developing real-time data pipelines with Spring and KafkaDeveloping real-time data pipelines with Spring and Kafka
Developing real-time data pipelines with Spring and Kafka

Talk given at the Apache Kafka NYC Meetup, October 20, 2015. http://www.meetup.com/Apache-Kafka-NYC/events/225697500/ Kafka has emerged as a clear choice for a high-throughput, low latency messaging system that addresses the needs of high-performance streaming applications. The Spring Framework has been, in the last decade, the de-facto standard for developing enterprise Java applications, providing a simple and powerful programming model that allows developers to focus on the business needs, leaving the boilerplate and middleware integration to the framework itself. In fact, it has evolved into a rich and powerful ecosystem, with projects focusing on specific aspects of enterprise software development - like Spring Boot, Spring Data, Spring Integration, Spring XD, Spring Cloud Stream/Data Flow to name just a few. In this presentation, Marius Bogoevici from the Spring team will take the perspective of the Kafka user, and show, with live demos, how the various projects in the Spring ecosystem address their needs: - how to build simple data integration applications using Spring Integration Kafka; - how to build sophisticated data pipelines with Spring XD and Kafka; - how to build cloud native message-driven microservices using Spring Cloud Stream and Kafka, and how to orchestrate them using Spring Cloud Data Flow;

WEBSOCKET PROTOCOL
•Websocket is a Full Duplex Web
Protocol
•Two-way messaging over single
connection
•Low over-head
WEBSOCKET PERFORMANCE
• Each HTTP Request/Response (header + body) have
minimum of 871 Bytes over head
• WebSocket frames has 2 Bytes of over head
• 1000 HTTP Clients polling per second = 6.6Mbps
Network throughput
• 1000WebSocket Clients receiving messages per second =
0.015Mbps Network throughput
WEBSOCKET PERFORMANCE VS
POLLING
REAL-TIME TECHNOLOGIES
• Self hosted (PaaS)
Why use an existing solution?
• Support/Community
• Maintenance
• Future features
• Scaling
• Eg:
Pusher, PubNub, Firebase, realtime.co & deepstreamHub

Recommended for you

Apache Kafka Introduction
Apache Kafka IntroductionApache Kafka Introduction
Apache Kafka Introduction

Apache Kafka Introduction, Use Cases, Comparison with other similar tools, Zookeeper overview, and so on. - Team Clairvoyant

clairvoyantapachekafkabigdata
SenchaCon 2016: How to Give your Sencha App Real-time Web Performance - James...
SenchaCon 2016: How to Give your Sencha App Real-time Web Performance - James...SenchaCon 2016: How to Give your Sencha App Real-time Web Performance - James...
SenchaCon 2016: How to Give your Sencha App Real-time Web Performance - James...

Three sentences summarizing the key points: The document discusses how to give Sencha apps real-time web performance. It covers data transfer over HTTP and introduces WebSockets as a better solution for real-time communication. The document also discusses frameworks like SignalR that use WebSockets and provides fallback options, and recommends designing apps to throttle data based on available bandwidth for wireless networks.

web app developmentweb performanceext js
Kaazing
KaazingKaazing
Kaazing

This presentation discusses HTML 5 WebSockets and how they enable full-duplex communication in web applications, moving past limitations of traditional HTTP. The speakers are founders of Kaazing, which provides an open source HTML 5 WebSocket gateway. The presentation covers challenges with existing "Comet" techniques, and how WebSockets and Server-Sent Events in HTML 5 allow any TCP-based backend service to be accessed through a browser. A demo shows using WebSockets to build a real-time XMPP chat client.

Self Hosted (Tightly Coupled)
Self Hosted (Loosely Coupled)
DEV LIBRARIES
• Websocket & Messaging libraries
• Publish / Subscribe libraries
• Data-Sync
• Hybrids
Real time web apps

Recommended for you

Web servers – features, installation and configuration
Web servers – features, installation and configurationWeb servers – features, installation and configuration
Web servers – features, installation and configuration

A web server is a computer program and server that allows for hosting of websites and web applications. It accepts requests from browsers and returns HTML documents and other content. Common technologies used on web servers include CGI scripts, SSL security, and ASP to provide dynamic content and server-side processing. Web servers work by accepting connections from browsers, retrieving content from disk, running local programs, and transmitting data back to clients as quickly as possible while supporting threads and processes.

web servers
Apache kafka introduction
Apache kafka introductionApache kafka introduction
Apache kafka introduction

Apache Kafka is a distributed messaging system that handles large volumes of real-time data efficiently. It allows for publishing and subscribing to streams of records and storing them reliably and durably. Kafka clusters are highly scalable and fault tolerant, providing throughput higher than other message brokers with latency of less than 10ms.

kafkapubsubenterprise messaging system
Kafka as Message Broker
Kafka as Message BrokerKafka as Message Broker
Kafka as Message Broker

The document discusses message brokers and Apache Kafka. It defines a message broker as middleware that exchanges messages in computer networks. It then discusses how message brokers work using queuing and publish-subscribe models. The document focuses on describing Apache Kafka, a distributed streaming platform. It explains key Kafka concepts like topics, partitions, logs, producers, consumers, and guarantees around ordering and replication. It also discusses how Zookeeper is used to manage and monitor the Kafka cluster.

kafka message_broker distributed_system
WEBSOCKET & MESSAGING LIBRARIES
FEATURES
• heartbeats / keep alive calls
these are tiny messages that are send on pre-defined intervals.They
make sure that the other side is still responsive and prevent certain
network constructs like proxies or firewalls from cutting your
connection due to inactivity.
• reconnecting
if your connection drops, you want it to be re-established. Some
libraries also queue messages while the connection is down and
resend them once it becomes available again.
WEBSOCKET & MESSAGING LIBRARIES
FEATURES
• http fallback
if WebSockets are not available, some libraries fall back
to http long polling and other techniques to mimic bi-
directional communication (collectively known as
"comet"). Depending on your target audience this might
not be a necessity, but is still a good choice if your app
needs to be available within large corporate
infrastructures.
WEBSOCKET LIBRARIES
• engine.io
Engine.io is the transport layer that powers socket.io, but can
also be used as a standalone library. It incorporates a few
unusual design choices, such as starting with http long-polling to
ensure immediate connectivity and only upgrade the connection
to websocket a bit later.
• WS
A solid, barebone WebSocket server for node.js Used by
engine.io
• SockJS
A fast JavaScript / Node.js abstraction layer for websockets,
supporting a number of fallback techniques
WEBSOCKET LIBRARIES
• Tornado
Tornado is a general purpose networking library for
Python, offeringWebsocket abstractions and fallbacks.
• web-socket-js
Flash based websocket implementation
• libwebsocket
Really fast websocket implementation in low level C.
• Fleck
Fleck is a WebSocket implementation in C#

Recommended for you

Implementing Advanced Caching and Replication Techniques in ...
Implementing Advanced Caching and Replication Techniques in ...Implementing Advanced Caching and Replication Techniques in ...
Implementing Advanced Caching and Replication Techniques in ...

This document discusses implementing advanced caching and replication techniques in the Apache web server. Three new Apache modules were developed: mod_replication allows servers to track replicated documents and send invalidation messages when they change, mod_cgr upgrades proxy servers to replication servers and controls updating invalidated documents, and mod_wlis extracts replication server information from document headers and stores it in a database. The modules aim to improve document availability, reduce latency and traffic, and enable load balancing through caching and replication.

apache
Developing Distributed Web Applications, Where does REST fit in?
Developing Distributed Web Applications, Where does REST fit in?Developing Distributed Web Applications, Where does REST fit in?
Developing Distributed Web Applications, Where does REST fit in?

This document discusses distributed web applications and the roles of SOA and REST architectures. It defines distributed applications as those composed of many machines to handle load and provide high availability. SOA uses stateless processing units and a shared data store, while REST (Representational State Transfer) realizes ROA (Resource Oriented Architecture) through resources that support GET, PUT, POST, DELETE operations. The document uses an example of a network management application to illustrate how each approach would structure resources and operations. It also discusses REST principles and implementation, as well as when each approach is most appropriate.

distributedrestsoa
Web-Socket
Web-SocketWeb-Socket
Web-Socket

WebSocket is a protocol that provides full-duplex communication channels over a single TCP connection. It was standardized in 2011 and allows for real-time data exchange between a client and server. The document discusses how WebSocket works, compares it to previous techniques like polling which had limitations, and outlines how to implement WebSocket in Java using JSR 356 and in Spring using the WebSocket API and STOMP protocol.

javascriptjava
WEBSOCKET LIBRARIES
• Atmosphere
Atmosphere is a general websocket abstraction layer for
JVM compatible languages. It's focused to run on Java and
J2EE application servers and comes with an ecosystem of
extension points to connect it to caches like Redis or
Hazelcast.
• Java Web Socket
Exactly what the name suggests
WEBSOCKET LIBRARIES
• Mojolicious
A websocket implementation with fallbacks for Perl
• SignalR
WebSocket abstraction for .NET
• SuperWebSocket
TCP/Websocket library for .NET
• Plezy
WebSocket abstraction for Ruby
PUBLISH / SUBSCRIBE
• Real-time messaging
• Many clients subscribe to a topic (sometimes also
called an event, namespace or channel) and other
clients publish messages on that topic.This is a
simple and scalable pattern for many-to-many
communication.
PUBLISH / SUBSCRIBE LIBRARIES
• socket.io
Definitely the most popular. Socket.io is a Node.js library that comes
with clients in many languages. It offers direct messaging and pub-sub
based on rooms (think chat-rooms) with the ability to distribute load
across multiple nodes using a Redis server in the background.
• socket cluster
A pub-sub framework built in Node.js that focuses on load-balancing
connections across a larger cluster of processes.
• Centrifugo
A backend agnostic pub-sub system written in Go

Recommended for you

Big data conference europe real-time streaming in any and all clouds, hybri...
Big data conference europe   real-time streaming in any and all clouds, hybri...Big data conference europe   real-time streaming in any and all clouds, hybri...
Big data conference europe real-time streaming in any and all clouds, hybri...

Biography Tim Spann is a Principal DataFlow Field Engineer at Cloudera where he works with Apache NiFi, MiniFi, Pulsar, Apache Flink, Apache MXNet, TensorFlow, Apache Spark, big data, the IoT, machine learning, and deep learning. Tim has over a decade of experience with the IoT, big data, distributed computing, streaming technologies, and Java programming. Previously, he was a senior solutions architect at AirisData and a senior field engineer at Pivotal. He blogs for DZone, where he is the Big Data Zone leader, and runs a popular meetup in Princeton on big data, the IoT, deep learning, streaming, NiFi, the blockchain, and Spark. Tim is a frequent speaker at conferences such as IoT Fusion, Strata, ApacheCon, Data Works Summit Berlin, DataWorks Summit Sydney, and Oracle Code NYC. He holds a BS and MS in computer science. Talk Real-Time Streaming in Any and All Clouds, Hybrid and Beyond Today, data is being generated from devices and containers living at the edge of networks, clouds and data centers. We need to run business logic, analytics and deep learning at the scale and as events arrive. Tools: Apache Flink, Apache Pulsar, Apache NiFi, MiNiFi, DJL.ai Apache MXNet. References: https://www.datainmotion.dev/2019/11/introducing-mm-flank-apache-flink-stack.html https://www.datainmotion.dev/2019/08/rapid-iot-development-with-cloudera.html https://www.datainmotion.dev/2019/09/powering-edge-ai-for-sensor-reading.html https://www.datainmotion.dev/2019/05/dataworks-summit-dc-2019-report.html https://www.datainmotion.dev/2019/03/using-raspberry-pi-3b-with-apache-nifi.html Source Code: https://github.com/tspannhw/MmFLaNK FLiP Stack StreamNative

apache nifiapache flinkapache pulsar
Signal R 2015
Signal R 2015Signal R 2015
Signal R 2015

- SignalR provides a simple way to add real-time web functionality to applications. It allows for persistent connections and messaging between servers and clients. - It abstracts away the various techniques for real-time communication like websockets, long polling, and server-sent events and chooses the best transport. - SignalR uses hubs to facilitate two-way communication between clients and servers through methods. This allows for different message types and structures to be sent.

soketssignal rreal time
D1-3-Signaling
D1-3-SignalingD1-3-Signaling
D1-3-Signaling

- Signaling protocols like SIP and XMPP allow WebRTC applications to establish real-time media sessions by providing a way for clients to communicate session details. - Scaling signaling to support millions of users is challenging due to the need to maintain many open connections. Distributed architectures are required. - Security objectives for WebRTC include confidentiality, integrity, and authenticity of media streams, but authenticating user identities in signaling is also important. - Mobility poses issues for signaling as users' IP addresses may change when hopping networks, disrupting existing connections.

PUBLISH / SUBSCRIBE LIBRARIES
• Faye
One of the first pub/sub systems around. Faye offers servers in both
Ruby and Node and implements the Bayeux Protocol, designed 2007
by the Dojo foundation. Similar to socket.io, Faye relies on Redis
pub/sub to scale across multiple nodes. It does however lack support
for Redis clusters which limits its scalability to a single Redis instance.
• Firehose.io
A simple, Ruby based pub-sub system with integration points for
Backbone and Ember.
• Phoenix Framework
Phoenix is a whole web-app framework for Erlang, but with a focus on
pub/sub via channels.
DATA-SYNC
• Why not Pub/Sub?
• User A changes some data and hits save.The data is send via ajax to a
server and stored in a database. The client now publishes an event,
e.g. Data-update/<some-id> .
Other clients receive this event, make an ajax request to the server
and download the updated data.
• Data-sync models your data as observable objects or tree-structures
that can be manipulated by clients and servers.
Any change to the data is immediately synchronized across all
connected clients.
• This significantly reduces request-overhead, makes applications faster
and development simpler.
DATA-SYNC LIBRARIES
• Horizon
RethinkDB’s Horizon - a Node.js server and associated JavaScript
client library that sits on top of RethinkDB and exposes its database
and realtime querying capabilities to browser apps.
Horizon supports authentication via openAuth and JSON webtoken
and access control viaTOML configured permissions for user groups
• FeatherJS
FeatherJS is a RESTful CRUD framework for Node build on top of
express.js that sends out events via a socket.io connection whenever
an object is created, updated or deleted, allowing clients to react
accordingly.
REMOTE PROCEDURE CALL (RPC) / REMOTE
METHOD INVOCATION (RMI)
not strictly a realtime concept, but more the
classical REST/HTTP request/response workflow,
mapped onto a bi-directional connection.
RPC allows you to call methods on a remote server
and process their response.This can be a powerful
concept in itself, but it becomes even more
powerful when used in conjunction with other
realtime concepts like pub/sub or data-sync

Recommended for you

AMF Flash and .NET
AMF Flash and .NETAMF Flash and .NET
AMF Flash and .NET

This document discusses various topics related to Action Message Format (AMF) including its history, benefits, and implementations across different programming languages and platforms. AMF allows serialization of ActionScript object graphs into a compact binary format for transmission between a Flash player and server. It offers benefits like fast serialization/deserialization and low bandwidth usage compared to alternatives like XML. The document provides information on AMF implementations for popular server-side languages and frameworks like PHP, Java, Python, Ruby and .NET.

weborbamfadobe
Introduction to SignalR
Introduction to SignalRIntroduction to SignalR
Introduction to SignalR

An introduction to SignalR This deck was part of my presentation to Virtusa employees on an ASP.NET asynchronous, persistent signaling library known as SignalR There is also a slide on how to use SignalR with SharePoint. Date: August 2013 Follow / Tweet me: @ShehanPeruma

vrtumicrosoftwebsite
HTML5 Programming
HTML5 ProgrammingHTML5 Programming
HTML5 Programming

This document discusses HTML5 programming and several HTML5 features including multimedia, canvas, web sockets, web storage, indexed databases, offline capabilities, file systems, and geolocation. It provides examples and explanations of how to use these new HTML5 features in programming and notes that while specifications continue to evolve, real-world browser support is more important. It aims to cover programming aspects of video, canvas, web sockets, data storage, offline usage, file systems, and geolocation.

html5
HYBRIDS
• In a voting system you might want to send a user’s vote as
a remote method invocation - which increment the
number of votes on a data-sync object as well as block the
voting user from voting more than once.
• For multiplayer games it can make sense to rely on simple
pub-sub messaging to update player positions whilst using
data-sync to keep track of scores.
HYBRIDS
• Deepstream.io
Deepstream.io is a realtime server that combines data-sync with
pub/sub and request response. It offers an open ecosystem of
connectors for databases, caches and messaging systems. Its
unobtrusive client plays well with any M*C framework and comes with
plugins for React, Polymer and other libraries.
• Meteor
Meteor is a full stack framework for realtime apps, featuring data-sync,
pub/sub, RPCs, realtime search and a host of other features. It offers a
highly structured and opinionated way to set up and connect servers
and databases, build clients and test and deploy applications. It comes
with its own, self-contained ecosystem, including a proprietary
(potentially soon to be deprecated?) package manager and originally its
own client side templating library.
HYBRIDS
• Autobahn
Autobahn offers Pub/Sub and RPC. It's a server implementing the
WAMP (Web Application Messaging Protocol) spec and offers a
selection of clients for JS, Python,Android and C++.
• CometD
CometD has been one of the first entries in the realtime space. It
combines pub/sub with rpcs and supports browser connectivity via a
stack of comet techniques.
LIBS BASED ON LANGUAGE
• Java: Netty, Jetty
• JavaScript (Node.JS): Faye, Socket.IO (Engine.IO), Primus.io
• .NET (C#): SignalR, XSockets
• Python: Lots of options built on Tornado
• PHP: ReactPHP, Ratchet
• Ruby: Faye

Recommended for you

HTTP/2 Comes to Java: Servlet 4.0 and what it means for the Java/Jakarta EE e...
HTTP/2 Comes to Java: Servlet 4.0 and what it means for the Java/Jakarta EE e...HTTP/2 Comes to Java: Servlet 4.0 and what it means for the Java/Jakarta EE e...
HTTP/2 Comes to Java: Servlet 4.0 and what it means for the Java/Jakarta EE e...

Servlet is very easily the most important standard in server-side Java. The much awaited HTTP/2 standard is now complete, was fifteen years in the making and promises to radically speed up the entire web through a series of fundamental protocol optimizations. In this session we will take a detailed look at the changes in HTTP/2 and discuss how it may change the Java ecosystem including the foundational Servlet 4 specification included in Java/Jakarta EE 8.

javajavaeejakartaee
Training Webinar: Enterprise application performance with server push technol...
Training Webinar: Enterprise application performance with server push technol...Training Webinar: Enterprise application performance with server push technol...
Training Webinar: Enterprise application performance with server push technol...

1st Session - WebSockets, a Server Push Technology: - Differences between Pull and Push technologies - What are WebSockets - A bit of History behind WebSockets - When to use WebSockets - How to integrate WebSockets with OutSystems - Considerations when using WebSockets Free Online training: https://www.outsystems.com/learn/courses/ Follow us on Twitter http://www.twitter.com/OutSystemsDev Like us on Facebook http://www.Facebook.com/OutSystemsDev

web developmentsoftware developmentrad
Bigdata meetup dwarak_realtime_score_app
Bigdata meetup dwarak_realtime_score_appBigdata meetup dwarak_realtime_score_app
Bigdata meetup dwarak_realtime_score_app

Big data Chennai Meetup Title: What it takes to build system for 1 M web sockets Presenter: Dwarakanath R Principal Architect, 8KMiles

amazon web services1 million usersreal time score
Real time web apps
Real time web apps
Real time web apps
Real time web apps

Recommended for you

Developing Revolutionary Web Applications using Comet and Ajax Push
Developing Revolutionary Web Applications using Comet and Ajax PushDeveloping Revolutionary Web Applications using Comet and Ajax Push
Developing Revolutionary Web Applications using Comet and Ajax Push

Join the asynchronous web revolution! Because Ajax-based applications are almost becoming the de facto technology for designing web-based applications, it is more and more important that such applications react on the fly, or in real time, to both client and server events. AJAX can be used to allow the browser to request information from the web server, but does not allow a server to push updates to a browser. Comet solves this problem. Comet is a technology that enables web clients and web servers to communicate asynchronously, allowing real-time operations and functions previously unheard of with traditional web applications to approach the capabilities of desktop applications. This session will start to provide an brief introduction to the asynchronous web, AJAX polling, long polling, and Streaming, explaining the Bayeux protocol, Cometd, Grizzly Comet implementation on GlassFish. Different approaches and best practices to develop comet application will also be discussed. You will learn how to develop the chat application, how to implement distance learning slideshow application, how to manage a chat application from the server and how to develop a two-player distributed game application. Attendees will take away the tactics they need in order to add multiuser collaboration, notification and other Comet features to their application, whether they develop with Dojo, jQuery, jMaki, or Prototype and whether they deploy on Jetty, Tomcat, or the GlassFish Application Server.

ajaxweb developmentweb 2
Data power v7 update - Ravi Katikala
Data power v7 update - Ravi KatikalaData power v7 update - Ravi Katikala
Data power v7 update - Ravi Katikala

GatewayScript is a new JavaScript runtime for DataPower appliances that simplifies configuration for developers. Link aggregation increases network redundancy and throughput by combining multiple Ethernet interfaces. WebSockets enable full-duplex communication and DataPower can secure and route initial connections. The release also includes enhancements to OAuth 2.0 token handling and support for deploying DataPower virtual editions on Citrix XenServer.

Scenic City Summit (2021): Real-Time Streaming in any and all clouds, hybrid...
Scenic City Summit (2021):  Real-Time Streaming in any and all clouds, hybrid...Scenic City Summit (2021):  Real-Time Streaming in any and all clouds, hybrid...
Scenic City Summit (2021): Real-Time Streaming in any and all clouds, hybrid...

Scenic city summit real-time streaming in any and all clouds, hybrid and beyond 24-September-2021. Scenic City Summit. Virtual. Real-Time Streaming in Any and All Clouds, Hybrid and Beyond Apache Pulsar, Apache NiFi, Apache Flink StreamNative Tim Spann https://sceniccitysummit.com/

apache pulsarapache nifiapache flink
Real time web apps
Real time web apps
RESOURCES
• https://www.leggetter.co.uk/
• https://deepstreamhub.com
• www.Wikipedia.org

More Related Content

What's hot

RESTful APIs
RESTful APIsRESTful APIs
RESTful APIs
Adi Challa
 
Web Servers (ppt)
Web Servers (ppt)Web Servers (ppt)
Web Servers (ppt)
webhostingguy
 
OAuth
OAuthOAuth
OAuth
Adi Challa
 
Getting Started with WebSockets and Server-Sent Events
Getting Started with WebSockets and Server-Sent EventsGetting Started with WebSockets and Server-Sent Events
Getting Started with WebSockets and Server-Sent Events
Arun Gupta
 
Apache ActiveMQ and Apache ServiceMix
Apache ActiveMQ and Apache ServiceMixApache ActiveMQ and Apache ServiceMix
Apache ActiveMQ and Apache ServiceMix
Bruce Snyder
 
Web server
Web serverWeb server
Web server
Touhid Arastu
 
Coherence sig-nfr-web-tier-scaling-using-coherence-web
Coherence sig-nfr-web-tier-scaling-using-coherence-webCoherence sig-nfr-web-tier-scaling-using-coherence-web
Coherence sig-nfr-web-tier-scaling-using-coherence-web
C2B2 Consulting
 
Web servers
Web serversWeb servers
Web servers
Kuldeep Kulkarni
 
web server
web serverweb server
web server
nava rathna
 
Web Server And Database Server
Web Server And Database ServerWeb Server And Database Server
Web Server And Database Server
Mahbubur Rahman
 
Web Server - Internet Applications
Web Server - Internet ApplicationsWeb Server - Internet Applications
Web Server - Internet Applications
sandra sukarieh
 
Developing real-time data pipelines with Spring and Kafka
Developing real-time data pipelines with Spring and KafkaDeveloping real-time data pipelines with Spring and Kafka
Developing real-time data pipelines with Spring and Kafka
marius_bogoevici
 
Apache Kafka Introduction
Apache Kafka IntroductionApache Kafka Introduction
Apache Kafka Introduction
Amita Mirajkar
 
SenchaCon 2016: How to Give your Sencha App Real-time Web Performance - James...
SenchaCon 2016: How to Give your Sencha App Real-time Web Performance - James...SenchaCon 2016: How to Give your Sencha App Real-time Web Performance - James...
SenchaCon 2016: How to Give your Sencha App Real-time Web Performance - James...
Sencha
 
Kaazing
KaazingKaazing
Web servers – features, installation and configuration
Web servers – features, installation and configurationWeb servers – features, installation and configuration
Web servers – features, installation and configuration
webhostingguy
 
Apache kafka introduction
Apache kafka introductionApache kafka introduction
Apache kafka introduction
Mohammad Mazharuddin
 
Kafka as Message Broker
Kafka as Message BrokerKafka as Message Broker
Kafka as Message Broker
Haluan Irsad
 
Implementing Advanced Caching and Replication Techniques in ...
Implementing Advanced Caching and Replication Techniques in ...Implementing Advanced Caching and Replication Techniques in ...
Implementing Advanced Caching and Replication Techniques in ...
webhostingguy
 
Developing Distributed Web Applications, Where does REST fit in?
Developing Distributed Web Applications, Where does REST fit in?Developing Distributed Web Applications, Where does REST fit in?
Developing Distributed Web Applications, Where does REST fit in?
Srinath Perera
 

What's hot (20)

RESTful APIs
RESTful APIsRESTful APIs
RESTful APIs
 
Web Servers (ppt)
Web Servers (ppt)Web Servers (ppt)
Web Servers (ppt)
 
OAuth
OAuthOAuth
OAuth
 
Getting Started with WebSockets and Server-Sent Events
Getting Started with WebSockets and Server-Sent EventsGetting Started with WebSockets and Server-Sent Events
Getting Started with WebSockets and Server-Sent Events
 
Apache ActiveMQ and Apache ServiceMix
Apache ActiveMQ and Apache ServiceMixApache ActiveMQ and Apache ServiceMix
Apache ActiveMQ and Apache ServiceMix
 
Web server
Web serverWeb server
Web server
 
Coherence sig-nfr-web-tier-scaling-using-coherence-web
Coherence sig-nfr-web-tier-scaling-using-coherence-webCoherence sig-nfr-web-tier-scaling-using-coherence-web
Coherence sig-nfr-web-tier-scaling-using-coherence-web
 
Web servers
Web serversWeb servers
Web servers
 
web server
web serverweb server
web server
 
Web Server And Database Server
Web Server And Database ServerWeb Server And Database Server
Web Server And Database Server
 
Web Server - Internet Applications
Web Server - Internet ApplicationsWeb Server - Internet Applications
Web Server - Internet Applications
 
Developing real-time data pipelines with Spring and Kafka
Developing real-time data pipelines with Spring and KafkaDeveloping real-time data pipelines with Spring and Kafka
Developing real-time data pipelines with Spring and Kafka
 
Apache Kafka Introduction
Apache Kafka IntroductionApache Kafka Introduction
Apache Kafka Introduction
 
SenchaCon 2016: How to Give your Sencha App Real-time Web Performance - James...
SenchaCon 2016: How to Give your Sencha App Real-time Web Performance - James...SenchaCon 2016: How to Give your Sencha App Real-time Web Performance - James...
SenchaCon 2016: How to Give your Sencha App Real-time Web Performance - James...
 
Kaazing
KaazingKaazing
Kaazing
 
Web servers – features, installation and configuration
Web servers – features, installation and configurationWeb servers – features, installation and configuration
Web servers – features, installation and configuration
 
Apache kafka introduction
Apache kafka introductionApache kafka introduction
Apache kafka introduction
 
Kafka as Message Broker
Kafka as Message BrokerKafka as Message Broker
Kafka as Message Broker
 
Implementing Advanced Caching and Replication Techniques in ...
Implementing Advanced Caching and Replication Techniques in ...Implementing Advanced Caching and Replication Techniques in ...
Implementing Advanced Caching and Replication Techniques in ...
 
Developing Distributed Web Applications, Where does REST fit in?
Developing Distributed Web Applications, Where does REST fit in?Developing Distributed Web Applications, Where does REST fit in?
Developing Distributed Web Applications, Where does REST fit in?
 

Similar to Real time web apps

Web-Socket
Web-SocketWeb-Socket
Big data conference europe real-time streaming in any and all clouds, hybri...
Big data conference europe   real-time streaming in any and all clouds, hybri...Big data conference europe   real-time streaming in any and all clouds, hybri...
Big data conference europe real-time streaming in any and all clouds, hybri...
Timothy Spann
 
Signal R 2015
Signal R 2015Signal R 2015
Signal R 2015
Mihai Coscodan
 
D1-3-Signaling
D1-3-SignalingD1-3-Signaling
D1-3-Signaling
Oleg Levy
 
AMF Flash and .NET
AMF Flash and .NETAMF Flash and .NET
AMF Flash and .NET
Yaniv Uriel
 
Introduction to SignalR
Introduction to SignalRIntroduction to SignalR
Introduction to SignalR
University of Hawai‘i at Mānoa
 
HTML5 Programming
HTML5 ProgrammingHTML5 Programming
HTML5 Programming
hotrannam
 
HTTP/2 Comes to Java: Servlet 4.0 and what it means for the Java/Jakarta EE e...
HTTP/2 Comes to Java: Servlet 4.0 and what it means for the Java/Jakarta EE e...HTTP/2 Comes to Java: Servlet 4.0 and what it means for the Java/Jakarta EE e...
HTTP/2 Comes to Java: Servlet 4.0 and what it means for the Java/Jakarta EE e...
Edward Burns
 
Training Webinar: Enterprise application performance with server push technol...
Training Webinar: Enterprise application performance with server push technol...Training Webinar: Enterprise application performance with server push technol...
Training Webinar: Enterprise application performance with server push technol...
OutSystems
 
Bigdata meetup dwarak_realtime_score_app
Bigdata meetup dwarak_realtime_score_appBigdata meetup dwarak_realtime_score_app
Bigdata meetup dwarak_realtime_score_app
Dwarakanath Ramachandran
 
Developing Revolutionary Web Applications using Comet and Ajax Push
Developing Revolutionary Web Applications using Comet and Ajax PushDeveloping Revolutionary Web Applications using Comet and Ajax Push
Developing Revolutionary Web Applications using Comet and Ajax Push
Doris Chen
 
Data power v7 update - Ravi Katikala
Data power v7 update - Ravi KatikalaData power v7 update - Ravi Katikala
Data power v7 update - Ravi Katikala
floridawusergroup
 
Scenic City Summit (2021): Real-Time Streaming in any and all clouds, hybrid...
Scenic City Summit (2021):  Real-Time Streaming in any and all clouds, hybrid...Scenic City Summit (2021):  Real-Time Streaming in any and all clouds, hybrid...
Scenic City Summit (2021): Real-Time Streaming in any and all clouds, hybrid...
Timothy Spann
 
Shopzilla On Concurrency
Shopzilla On ConcurrencyShopzilla On Concurrency
Shopzilla On Concurrency
Rodney Barlow
 
Design patternsforiot
Design patternsforiotDesign patternsforiot
Design patternsforiot
Michael Koster
 
TDC Connections 2023 - A High-Speed Data Ingestion Service in Java Using MQTT...
TDC Connections 2023 - A High-Speed Data Ingestion Service in Java Using MQTT...TDC Connections 2023 - A High-Speed Data Ingestion Service in Java Using MQTT...
TDC Connections 2023 - A High-Speed Data Ingestion Service in Java Using MQTT...
Juarez Junior
 
Introduction to Apache Mesos and DC/OS
Introduction to Apache Mesos and DC/OSIntroduction to Apache Mesos and DC/OS
Introduction to Apache Mesos and DC/OS
Steve Wong
 
Asynchrone Echtzeitanwendungen für SharePoint mit SignalR und knockout.js
Asynchrone Echtzeitanwendungen für SharePoint mit SignalR und knockout.jsAsynchrone Echtzeitanwendungen für SharePoint mit SignalR und knockout.js
Asynchrone Echtzeitanwendungen für SharePoint mit SignalR und knockout.js
Christian Heindel
 
JUDCon 2013- JBoss Data Grid and WebSockets: Delivering Real Time Push at Scale
JUDCon 2013- JBoss Data Grid and WebSockets: Delivering Real Time Push at ScaleJUDCon 2013- JBoss Data Grid and WebSockets: Delivering Real Time Push at Scale
JUDCon 2013- JBoss Data Grid and WebSockets: Delivering Real Time Push at Scale
C2B2 Consulting
 
WSO2 Intro Webinar - Scale your business with the cloud enabled WSO2 Applica...
WSO2 Intro Webinar -  Scale your business with the cloud enabled WSO2 Applica...WSO2 Intro Webinar -  Scale your business with the cloud enabled WSO2 Applica...
WSO2 Intro Webinar - Scale your business with the cloud enabled WSO2 Applica...
WSO2
 

Similar to Real time web apps (20)

Web-Socket
Web-SocketWeb-Socket
Web-Socket
 
Big data conference europe real-time streaming in any and all clouds, hybri...
Big data conference europe   real-time streaming in any and all clouds, hybri...Big data conference europe   real-time streaming in any and all clouds, hybri...
Big data conference europe real-time streaming in any and all clouds, hybri...
 
Signal R 2015
Signal R 2015Signal R 2015
Signal R 2015
 
D1-3-Signaling
D1-3-SignalingD1-3-Signaling
D1-3-Signaling
 
AMF Flash and .NET
AMF Flash and .NETAMF Flash and .NET
AMF Flash and .NET
 
Introduction to SignalR
Introduction to SignalRIntroduction to SignalR
Introduction to SignalR
 
HTML5 Programming
HTML5 ProgrammingHTML5 Programming
HTML5 Programming
 
HTTP/2 Comes to Java: Servlet 4.0 and what it means for the Java/Jakarta EE e...
HTTP/2 Comes to Java: Servlet 4.0 and what it means for the Java/Jakarta EE e...HTTP/2 Comes to Java: Servlet 4.0 and what it means for the Java/Jakarta EE e...
HTTP/2 Comes to Java: Servlet 4.0 and what it means for the Java/Jakarta EE e...
 
Training Webinar: Enterprise application performance with server push technol...
Training Webinar: Enterprise application performance with server push technol...Training Webinar: Enterprise application performance with server push technol...
Training Webinar: Enterprise application performance with server push technol...
 
Bigdata meetup dwarak_realtime_score_app
Bigdata meetup dwarak_realtime_score_appBigdata meetup dwarak_realtime_score_app
Bigdata meetup dwarak_realtime_score_app
 
Developing Revolutionary Web Applications using Comet and Ajax Push
Developing Revolutionary Web Applications using Comet and Ajax PushDeveloping Revolutionary Web Applications using Comet and Ajax Push
Developing Revolutionary Web Applications using Comet and Ajax Push
 
Data power v7 update - Ravi Katikala
Data power v7 update - Ravi KatikalaData power v7 update - Ravi Katikala
Data power v7 update - Ravi Katikala
 
Scenic City Summit (2021): Real-Time Streaming in any and all clouds, hybrid...
Scenic City Summit (2021):  Real-Time Streaming in any and all clouds, hybrid...Scenic City Summit (2021):  Real-Time Streaming in any and all clouds, hybrid...
Scenic City Summit (2021): Real-Time Streaming in any and all clouds, hybrid...
 
Shopzilla On Concurrency
Shopzilla On ConcurrencyShopzilla On Concurrency
Shopzilla On Concurrency
 
Design patternsforiot
Design patternsforiotDesign patternsforiot
Design patternsforiot
 
TDC Connections 2023 - A High-Speed Data Ingestion Service in Java Using MQTT...
TDC Connections 2023 - A High-Speed Data Ingestion Service in Java Using MQTT...TDC Connections 2023 - A High-Speed Data Ingestion Service in Java Using MQTT...
TDC Connections 2023 - A High-Speed Data Ingestion Service in Java Using MQTT...
 
Introduction to Apache Mesos and DC/OS
Introduction to Apache Mesos and DC/OSIntroduction to Apache Mesos and DC/OS
Introduction to Apache Mesos and DC/OS
 
Asynchrone Echtzeitanwendungen für SharePoint mit SignalR und knockout.js
Asynchrone Echtzeitanwendungen für SharePoint mit SignalR und knockout.jsAsynchrone Echtzeitanwendungen für SharePoint mit SignalR und knockout.js
Asynchrone Echtzeitanwendungen für SharePoint mit SignalR und knockout.js
 
JUDCon 2013- JBoss Data Grid and WebSockets: Delivering Real Time Push at Scale
JUDCon 2013- JBoss Data Grid and WebSockets: Delivering Real Time Push at ScaleJUDCon 2013- JBoss Data Grid and WebSockets: Delivering Real Time Push at Scale
JUDCon 2013- JBoss Data Grid and WebSockets: Delivering Real Time Push at Scale
 
WSO2 Intro Webinar - Scale your business with the cloud enabled WSO2 Applica...
WSO2 Intro Webinar -  Scale your business with the cloud enabled WSO2 Applica...WSO2 Intro Webinar -  Scale your business with the cloud enabled WSO2 Applica...
WSO2 Intro Webinar - Scale your business with the cloud enabled WSO2 Applica...
 

Recently uploaded

Is Email Marketing Really Effective In 2024?
Is Email Marketing Really Effective In 2024?Is Email Marketing Really Effective In 2024?
Is Email Marketing Really Effective In 2024?
Rakesh Jalan
 
How to Create Sequence Numbers in Odoo 17
How to Create Sequence Numbers in Odoo 17How to Create Sequence Numbers in Odoo 17
How to Create Sequence Numbers in Odoo 17
Celine George
 
AI Risk Management: ISO/IEC 42001, the EU AI Act, and ISO/IEC 23894
AI Risk Management: ISO/IEC 42001, the EU AI Act, and ISO/IEC 23894AI Risk Management: ISO/IEC 42001, the EU AI Act, and ISO/IEC 23894
AI Risk Management: ISO/IEC 42001, the EU AI Act, and ISO/IEC 23894
PECB
 
L1 L2- NLC PPT for Grade 10 intervention
L1 L2- NLC PPT for Grade 10 interventionL1 L2- NLC PPT for Grade 10 intervention
L1 L2- NLC PPT for Grade 10 intervention
RHODAJANEAURESTILA
 
NAEYC Code of Ethical Conduct Resource Book
NAEYC Code of Ethical Conduct Resource BookNAEYC Code of Ethical Conduct Resource Book
NAEYC Code of Ethical Conduct Resource Book
lakitawilson
 
The basics of sentences session 9pptx.pptx
The basics of sentences session 9pptx.pptxThe basics of sentences session 9pptx.pptx
The basics of sentences session 9pptx.pptx
heathfieldcps1
 
Book Allied Health Sciences kmu MCQs.docx
Book Allied Health Sciences kmu MCQs.docxBook Allied Health Sciences kmu MCQs.docx
Book Allied Health Sciences kmu MCQs.docx
drtech3715
 
How to Configure Time Off Types in Odoo 17
How to Configure Time Off Types in Odoo 17How to Configure Time Off Types in Odoo 17
How to Configure Time Off Types in Odoo 17
Celine George
 
NLC Grade 3.................................... ppt.pptx
NLC Grade 3.................................... ppt.pptxNLC Grade 3.................................... ppt.pptx
NLC Grade 3.................................... ppt.pptx
MichelleDeLaCruz93
 
Configuring Single Sign-On (SSO) via Identity Management | MuleSoft Mysore Me...
Configuring Single Sign-On (SSO) via Identity Management | MuleSoft Mysore Me...Configuring Single Sign-On (SSO) via Identity Management | MuleSoft Mysore Me...
Configuring Single Sign-On (SSO) via Identity Management | MuleSoft Mysore Me...
MysoreMuleSoftMeetup
 
AI_in_HR_Presentation Part 1 2024 0703.pdf
AI_in_HR_Presentation Part 1 2024 0703.pdfAI_in_HR_Presentation Part 1 2024 0703.pdf
AI_in_HR_Presentation Part 1 2024 0703.pdf
SrimanigandanMadurai
 
Ardra Nakshatra (आर्द्रा): Understanding its Effects and Remedies
Ardra Nakshatra (आर्द्रा): Understanding its Effects and RemediesArdra Nakshatra (आर्द्रा): Understanding its Effects and Remedies
Ardra Nakshatra (आर्द्रा): Understanding its Effects and Remedies
Astro Pathshala
 
Credit limit improvement system in odoo 17
Credit limit improvement system in odoo 17Credit limit improvement system in odoo 17
Credit limit improvement system in odoo 17
Celine George
 
The Jewish Trinity : Sabbath,Shekinah and Sanctuary 4.pdf
The Jewish Trinity : Sabbath,Shekinah and Sanctuary 4.pdfThe Jewish Trinity : Sabbath,Shekinah and Sanctuary 4.pdf
The Jewish Trinity : Sabbath,Shekinah and Sanctuary 4.pdf
JackieSparrow3
 
Front Desk Management in the Odoo 17 ERP
Front Desk  Management in the Odoo 17 ERPFront Desk  Management in the Odoo 17 ERP
Front Desk Management in the Odoo 17 ERP
Celine George
 
The membership Module in the Odoo 17 ERP
The membership Module in the Odoo 17 ERPThe membership Module in the Odoo 17 ERP
The membership Module in the Odoo 17 ERP
Celine George
 
matatag curriculum education for Kindergarten
matatag curriculum education for Kindergartenmatatag curriculum education for Kindergarten
matatag curriculum education for Kindergarten
SarahAlie1
 
DANH SÁCH THÍ SINH XÉT TUYỂN SỚM ĐỦ ĐIỀU KIỆN TRÚNG TUYỂN ĐẠI HỌC CHÍNH QUY N...
DANH SÁCH THÍ SINH XÉT TUYỂN SỚM ĐỦ ĐIỀU KIỆN TRÚNG TUYỂN ĐẠI HỌC CHÍNH QUY N...DANH SÁCH THÍ SINH XÉT TUYỂN SỚM ĐỦ ĐIỀU KIỆN TRÚNG TUYỂN ĐẠI HỌC CHÍNH QUY N...
DANH SÁCH THÍ SINH XÉT TUYỂN SỚM ĐỦ ĐIỀU KIỆN TRÚNG TUYỂN ĐẠI HỌC CHÍNH QUY N...
thanhluan21
 
(T.L.E.) Agriculture: Essentials of Gardening
(T.L.E.) Agriculture: Essentials of Gardening(T.L.E.) Agriculture: Essentials of Gardening
(T.L.E.) Agriculture: Essentials of Gardening
MJDuyan
 
The basics of sentences session 10pptx.pptx
The basics of sentences session 10pptx.pptxThe basics of sentences session 10pptx.pptx
The basics of sentences session 10pptx.pptx
heathfieldcps1
 

Recently uploaded (20)

Is Email Marketing Really Effective In 2024?
Is Email Marketing Really Effective In 2024?Is Email Marketing Really Effective In 2024?
Is Email Marketing Really Effective In 2024?
 
How to Create Sequence Numbers in Odoo 17
How to Create Sequence Numbers in Odoo 17How to Create Sequence Numbers in Odoo 17
How to Create Sequence Numbers in Odoo 17
 
AI Risk Management: ISO/IEC 42001, the EU AI Act, and ISO/IEC 23894
AI Risk Management: ISO/IEC 42001, the EU AI Act, and ISO/IEC 23894AI Risk Management: ISO/IEC 42001, the EU AI Act, and ISO/IEC 23894
AI Risk Management: ISO/IEC 42001, the EU AI Act, and ISO/IEC 23894
 
L1 L2- NLC PPT for Grade 10 intervention
L1 L2- NLC PPT for Grade 10 interventionL1 L2- NLC PPT for Grade 10 intervention
L1 L2- NLC PPT for Grade 10 intervention
 
NAEYC Code of Ethical Conduct Resource Book
NAEYC Code of Ethical Conduct Resource BookNAEYC Code of Ethical Conduct Resource Book
NAEYC Code of Ethical Conduct Resource Book
 
The basics of sentences session 9pptx.pptx
The basics of sentences session 9pptx.pptxThe basics of sentences session 9pptx.pptx
The basics of sentences session 9pptx.pptx
 
Book Allied Health Sciences kmu MCQs.docx
Book Allied Health Sciences kmu MCQs.docxBook Allied Health Sciences kmu MCQs.docx
Book Allied Health Sciences kmu MCQs.docx
 
How to Configure Time Off Types in Odoo 17
How to Configure Time Off Types in Odoo 17How to Configure Time Off Types in Odoo 17
How to Configure Time Off Types in Odoo 17
 
NLC Grade 3.................................... ppt.pptx
NLC Grade 3.................................... ppt.pptxNLC Grade 3.................................... ppt.pptx
NLC Grade 3.................................... ppt.pptx
 
Configuring Single Sign-On (SSO) via Identity Management | MuleSoft Mysore Me...
Configuring Single Sign-On (SSO) via Identity Management | MuleSoft Mysore Me...Configuring Single Sign-On (SSO) via Identity Management | MuleSoft Mysore Me...
Configuring Single Sign-On (SSO) via Identity Management | MuleSoft Mysore Me...
 
AI_in_HR_Presentation Part 1 2024 0703.pdf
AI_in_HR_Presentation Part 1 2024 0703.pdfAI_in_HR_Presentation Part 1 2024 0703.pdf
AI_in_HR_Presentation Part 1 2024 0703.pdf
 
Ardra Nakshatra (आर्द्रा): Understanding its Effects and Remedies
Ardra Nakshatra (आर्द्रा): Understanding its Effects and RemediesArdra Nakshatra (आर्द्रा): Understanding its Effects and Remedies
Ardra Nakshatra (आर्द्रा): Understanding its Effects and Remedies
 
Credit limit improvement system in odoo 17
Credit limit improvement system in odoo 17Credit limit improvement system in odoo 17
Credit limit improvement system in odoo 17
 
The Jewish Trinity : Sabbath,Shekinah and Sanctuary 4.pdf
The Jewish Trinity : Sabbath,Shekinah and Sanctuary 4.pdfThe Jewish Trinity : Sabbath,Shekinah and Sanctuary 4.pdf
The Jewish Trinity : Sabbath,Shekinah and Sanctuary 4.pdf
 
Front Desk Management in the Odoo 17 ERP
Front Desk  Management in the Odoo 17 ERPFront Desk  Management in the Odoo 17 ERP
Front Desk Management in the Odoo 17 ERP
 
The membership Module in the Odoo 17 ERP
The membership Module in the Odoo 17 ERPThe membership Module in the Odoo 17 ERP
The membership Module in the Odoo 17 ERP
 
matatag curriculum education for Kindergarten
matatag curriculum education for Kindergartenmatatag curriculum education for Kindergarten
matatag curriculum education for Kindergarten
 
DANH SÁCH THÍ SINH XÉT TUYỂN SỚM ĐỦ ĐIỀU KIỆN TRÚNG TUYỂN ĐẠI HỌC CHÍNH QUY N...
DANH SÁCH THÍ SINH XÉT TUYỂN SỚM ĐỦ ĐIỀU KIỆN TRÚNG TUYỂN ĐẠI HỌC CHÍNH QUY N...DANH SÁCH THÍ SINH XÉT TUYỂN SỚM ĐỦ ĐIỀU KIỆN TRÚNG TUYỂN ĐẠI HỌC CHÍNH QUY N...
DANH SÁCH THÍ SINH XÉT TUYỂN SỚM ĐỦ ĐIỀU KIỆN TRÚNG TUYỂN ĐẠI HỌC CHÍNH QUY N...
 
(T.L.E.) Agriculture: Essentials of Gardening
(T.L.E.) Agriculture: Essentials of Gardening(T.L.E.) Agriculture: Essentials of Gardening
(T.L.E.) Agriculture: Essentials of Gardening
 
The basics of sentences session 10pptx.pptx
The basics of sentences session 10pptx.pptxThe basics of sentences session 10pptx.pptx
The basics of sentences session 10pptx.pptx
 

Real time web apps

  • 2. OVERVIEW 1.Introduction & Applications 2.Low level real-time implementation 3.Real-time Technologies 4.Sample code 5.Demo(HTTP polling, HTTP streaming, WebSocket)
  • 3. WHAT ARE REAL-TIME WEB APPS? • Allows users to receive information as soon as it is published • Bi-directional communication between clients & server • Both pull and push based systems
  • 4. EXAMPLES & APPLICATIONS • Gmail • Facebook • Twitter • Chat Services • Online Gaming • Notification and signaling • Shows live data • Easy collaboration
  • 10. REAL-TIME “HACKS” •Long polling •HTTP Streaming •AJAX (XMLHTTPRequest & InnerHTML)
  • 11. AJAX REQUEST • Window.open() • HTTP Request browser will stop or hang for the server response • Xmlhttp.open() • Ajax request is Async, java script does not have to wait for the server response, so it can execute other scripts and respond to user events while waiting for server response
  • 12. CONS OF “HACKS” •http web server timeouts •Too many connections •Too much overhead •Only a workaround and not a native solution
  • 13. WEBSOCKET PROTOCOL •Websocket is a Full Duplex Web Protocol •Two-way messaging over single connection •Low over-head
  • 14. WEBSOCKET PERFORMANCE • Each HTTP Request/Response (header + body) have minimum of 871 Bytes over head • WebSocket frames has 2 Bytes of over head • 1000 HTTP Clients polling per second = 6.6Mbps Network throughput • 1000WebSocket Clients receiving messages per second = 0.015Mbps Network throughput
  • 16. REAL-TIME TECHNOLOGIES • Self hosted (PaaS) Why use an existing solution? • Support/Community • Maintenance • Future features • Scaling • Eg: Pusher, PubNub, Firebase, realtime.co & deepstreamHub
  • 19. DEV LIBRARIES • Websocket & Messaging libraries • Publish / Subscribe libraries • Data-Sync • Hybrids
  • 21. WEBSOCKET & MESSAGING LIBRARIES FEATURES • heartbeats / keep alive calls these are tiny messages that are send on pre-defined intervals.They make sure that the other side is still responsive and prevent certain network constructs like proxies or firewalls from cutting your connection due to inactivity. • reconnecting if your connection drops, you want it to be re-established. Some libraries also queue messages while the connection is down and resend them once it becomes available again.
  • 22. WEBSOCKET & MESSAGING LIBRARIES FEATURES • http fallback if WebSockets are not available, some libraries fall back to http long polling and other techniques to mimic bi- directional communication (collectively known as "comet"). Depending on your target audience this might not be a necessity, but is still a good choice if your app needs to be available within large corporate infrastructures.
  • 23. WEBSOCKET LIBRARIES • engine.io Engine.io is the transport layer that powers socket.io, but can also be used as a standalone library. It incorporates a few unusual design choices, such as starting with http long-polling to ensure immediate connectivity and only upgrade the connection to websocket a bit later. • WS A solid, barebone WebSocket server for node.js Used by engine.io • SockJS A fast JavaScript / Node.js abstraction layer for websockets, supporting a number of fallback techniques
  • 24. WEBSOCKET LIBRARIES • Tornado Tornado is a general purpose networking library for Python, offeringWebsocket abstractions and fallbacks. • web-socket-js Flash based websocket implementation • libwebsocket Really fast websocket implementation in low level C. • Fleck Fleck is a WebSocket implementation in C#
  • 25. WEBSOCKET LIBRARIES • Atmosphere Atmosphere is a general websocket abstraction layer for JVM compatible languages. It's focused to run on Java and J2EE application servers and comes with an ecosystem of extension points to connect it to caches like Redis or Hazelcast. • Java Web Socket Exactly what the name suggests
  • 26. WEBSOCKET LIBRARIES • Mojolicious A websocket implementation with fallbacks for Perl • SignalR WebSocket abstraction for .NET • SuperWebSocket TCP/Websocket library for .NET • Plezy WebSocket abstraction for Ruby
  • 27. PUBLISH / SUBSCRIBE • Real-time messaging • Many clients subscribe to a topic (sometimes also called an event, namespace or channel) and other clients publish messages on that topic.This is a simple and scalable pattern for many-to-many communication.
  • 28. PUBLISH / SUBSCRIBE LIBRARIES • socket.io Definitely the most popular. Socket.io is a Node.js library that comes with clients in many languages. It offers direct messaging and pub-sub based on rooms (think chat-rooms) with the ability to distribute load across multiple nodes using a Redis server in the background. • socket cluster A pub-sub framework built in Node.js that focuses on load-balancing connections across a larger cluster of processes. • Centrifugo A backend agnostic pub-sub system written in Go
  • 29. PUBLISH / SUBSCRIBE LIBRARIES • Faye One of the first pub/sub systems around. Faye offers servers in both Ruby and Node and implements the Bayeux Protocol, designed 2007 by the Dojo foundation. Similar to socket.io, Faye relies on Redis pub/sub to scale across multiple nodes. It does however lack support for Redis clusters which limits its scalability to a single Redis instance. • Firehose.io A simple, Ruby based pub-sub system with integration points for Backbone and Ember. • Phoenix Framework Phoenix is a whole web-app framework for Erlang, but with a focus on pub/sub via channels.
  • 30. DATA-SYNC • Why not Pub/Sub? • User A changes some data and hits save.The data is send via ajax to a server and stored in a database. The client now publishes an event, e.g. Data-update/<some-id> . Other clients receive this event, make an ajax request to the server and download the updated data. • Data-sync models your data as observable objects or tree-structures that can be manipulated by clients and servers. Any change to the data is immediately synchronized across all connected clients. • This significantly reduces request-overhead, makes applications faster and development simpler.
  • 31. DATA-SYNC LIBRARIES • Horizon RethinkDB’s Horizon - a Node.js server and associated JavaScript client library that sits on top of RethinkDB and exposes its database and realtime querying capabilities to browser apps. Horizon supports authentication via openAuth and JSON webtoken and access control viaTOML configured permissions for user groups • FeatherJS FeatherJS is a RESTful CRUD framework for Node build on top of express.js that sends out events via a socket.io connection whenever an object is created, updated or deleted, allowing clients to react accordingly.
  • 32. REMOTE PROCEDURE CALL (RPC) / REMOTE METHOD INVOCATION (RMI) not strictly a realtime concept, but more the classical REST/HTTP request/response workflow, mapped onto a bi-directional connection. RPC allows you to call methods on a remote server and process their response.This can be a powerful concept in itself, but it becomes even more powerful when used in conjunction with other realtime concepts like pub/sub or data-sync
  • 33. HYBRIDS • In a voting system you might want to send a user’s vote as a remote method invocation - which increment the number of votes on a data-sync object as well as block the voting user from voting more than once. • For multiplayer games it can make sense to rely on simple pub-sub messaging to update player positions whilst using data-sync to keep track of scores.
  • 34. HYBRIDS • Deepstream.io Deepstream.io is a realtime server that combines data-sync with pub/sub and request response. It offers an open ecosystem of connectors for databases, caches and messaging systems. Its unobtrusive client plays well with any M*C framework and comes with plugins for React, Polymer and other libraries. • Meteor Meteor is a full stack framework for realtime apps, featuring data-sync, pub/sub, RPCs, realtime search and a host of other features. It offers a highly structured and opinionated way to set up and connect servers and databases, build clients and test and deploy applications. It comes with its own, self-contained ecosystem, including a proprietary (potentially soon to be deprecated?) package manager and originally its own client side templating library.
  • 35. HYBRIDS • Autobahn Autobahn offers Pub/Sub and RPC. It's a server implementing the WAMP (Web Application Messaging Protocol) spec and offers a selection of clients for JS, Python,Android and C++. • CometD CometD has been one of the first entries in the realtime space. It combines pub/sub with rpcs and supports browser connectivity via a stack of comet techniques.
  • 36. LIBS BASED ON LANGUAGE • Java: Netty, Jetty • JavaScript (Node.JS): Faye, Socket.IO (Engine.IO), Primus.io • .NET (C#): SignalR, XSockets • Python: Lots of options built on Tornado • PHP: ReactPHP, Ratchet • Ruby: Faye