6. Why XMPP?
● HTTP API
●
http polling
●
real time
● Channel encryption
● Authentication
●
Presence
●
Contact lists (roster)
●
Multi-party messaging (room configuration, in-room voting)
● Notifications (one-to-many)
●
Service discovery (features support entity)
7.
8.
9. usage
● near real-time, instant messaging
● Group chat
● publish-subscribe systems
● signalling for VoIP, video, file transfer
● Multi user Gaming
● Internet of Things m2m communication
● social networking services
10. usage
● System control, alerts, notifications
● Geolocation
● Middleware and cloud computing
● Intelligent workflows
● Real-time collaboration
● Data syndication
● Voice over IP
● Identity services
11.
12.
13. Service A Service B
DB XMPP
server
Web server
XMPP
server
DB
Web server
XMPP S2S
HTTP HTTP
29. jingle
● Jingle is an extension to the XMPP
● adds P2P session control (signaling) for multimedia
interactions such as in VoIP or videoconferencing
communications
● designed by Google and the XMPP Standards Foundation
● The multimedia streams are delivered using the Real-time
Transport Protocol (RTP).
● NAT traversal is assisted using Interactive Connectivity
Establishment (ICE).
30. NAT Traversal
● Universal Plug and Play (UpnP)
● Simple Traversal of UDP through Network
Address Translators (STUN)
● Application Layer Gateway (ALG)
● Manual Settings
● Tunneling
● Proxy Server
Xmpp یک پروتکل باز است که بوسیله بنیاد
real-time communication
Jabber
پروتوکل پیامرسانی و حضور گسترشپذیر
Is the entity online and available for communication, or offline and not available?
Real time
Channel encryption
Authentication
Federating Social Networks
Point-to-point
Publish/Subscribe
Message is broadcasted to all consumers
geolocation
Xmpp in cloudcomputing
Jabber ID
JID
Message can also contain audio, flickr enclosures or location
Iq: for subscribing, unsubscribing and error messages
Presence online, offline, busy
an extension to the XMPP
adds P2P session control (signaling) for multimedia interactions such as in Voice over IP (VoIP) or videoconferencing communications
designed by Google and the XMPP Standards Foundation
The multimedia streams are delivered using the Real-time Transport Protocol (RTP)
NAT traversal is of importance for peer-to-peer and Voice over IP (VoIP) deployments
Many techniques exist, but no single method works in every situation since NAT behavior is not standardized.
Many NAT traversal techniques require assistance from a server at a publicly routable IP address.
Some methods use the server only when establishing the connection,
while others are based on relaying all data throug
sender initiates the data transfer rather than the recipient
client/server model
Web client is always the initiator of transactions
In http polling: A connection is held open between the web client and the web server so that when the server has new information it can push it to the client. That connection is then closed. A new connection is then established between the client and the server and then wait for another update from the server.
Bidirectional-streams Over Synchronous HTTP (BOSH) is a transport protocol that emulates a bidirectional stream between two entities (such as a client and a server) by using multiple synchronous HTTP request/response pairs without requiring the use of polling or asynchronous chunking.
In software architecture, publish–subscribe is a messaging pattern where senders of messages, called publishers, do not program the messages to be sent directly to specific receivers, called subscribers. Instead, published messages are characterized into classes, without knowledge of what, if any, subscribers there may be. Similarly, subscribers express interest in one or more classes, and only receive messages that are of interest, without knowledge of what, if any, publishers there are.