Publishing and transporting Web Services over XMPP - PowerPoint PPT Presentation

1 / 36
About This Presentation
Title:

Publishing and transporting Web Services over XMPP

Description:

Formerly known as Jabber. Invented by Jeremie Miller in 1998 ... command xmlns='http://jabber.org/protocol/commands' sessionid='RPC-SESSION-1' ... – PowerPoint PPT presentation

Number of Views:245
Avg rating:3.0/5.0
Slides: 37
Provided by: teache89
Category:

less

Transcript and Presenter's Notes

Title: Publishing and transporting Web Services over XMPP


1
Publishing and transporting Web Services over XMPP
Johannes Wagener
2
Web Services State of the Art
UDDI Universal Description, Discovery and
Integration
WSDL Web Services Description Language
SOAP Simple Object Access Protocol
(from Wikipedia)
3
http is a pull protocol!
http timeout
4
Workaround
Client
Server
doBLAST()
Client (loop)
Server (working)
checkResult(ID)
please wait
()
Client
Server (finished)
checkResult(ID)
RESULT
5
Next generation of Web Services
  • should ...
  • be a properly and strictly defined standard
  • allow stateful job management
  • allow asynchronous client notification
  • be discoverable
  • have big user community with a lot of software

6
About XMPP
  • The Extended Messaging and Presence Protocol
  • Formerly known as Jabber
  • Invented by Jeremie Miller in 1998
  • Formalized by the Internet Engineering Task Force
    since 2004
  • RFC 3920 3923, 4622
  • XMPP Standards Foundation continues to define
    various XMPP Extensions
  • a protocol for streaming XML elements in order
    to exchange structured information in close to
    real time between any two network endpoints.
  • While XMPP provides a generalized, extensible
    framework for exchanging XML data, it is used
    mainly for the purpose of building instant
    messaging and presence applications. (from RFC
    3920)

7
(from Wikipedia)
8
XMPP Architecturesimilar to Email
user_at_server1.com
server1.com
server3.net
server2.org
user_at_server3.net
user_at_server2.org
9
XMPP Architectureone user can connect with
different resources
server1.com
server3.net
server2.org
user_at_server2.org/work
user_at_server2.org/home
User ID
Server
Resource
10
XMPP ArchitectureServer Components
server3.net
user_at_server3.net
service.server3.net
11
XMPP ArchitectureUse cases of Server Components
conference.server3.net
msn.server3.net
server3.net
user_at_server3.net
userdirectory.server3.net
12
XMPP Architecturepresent
jabber.org
13
XMPP Architecturepresent
jabber.org
googlemail.com
14
XMPP Architecturepresent
jabber.org
gmx.net
googlemail.com
15
but many unofficial servers, too.
16
Clients
17
Servers
18
Servers
Clusterable
19
Libraries
  • 3 x .NET
  • 3 x C
  • 2 x C
  • 7 x C
  • 3 x COM
  • 2 x Delphi
  • 1 x Flash
  • 9 x Java
  • 1 x Java Script
  • 1 x Lisp
  • 1 x Mono
  • 5 x Perl
  • 2 x PHP
  • 4 x Python
  • 2 x Ruby
  • 1 x TCL
  • 1 x XPCom

20
The Protocol
  • An inbound and outbound XML Stream
  • Client connections are usually done with TCP.
    However there are no restrictions i.e. many
    server allow polling over HTTP
  • Streams may be encrypted in various formats
  • Packets are sent as stanzas
  • There are three top level stanzas
  • ltmessage/gt to submit messages
  • ltpresence/gt to submit presence information
  • ltiq/gt for everything else and thats a lot

21
Simplified Stream Example...with two ltmessage/gt
stanzas
(from RFC 3920)
22
Information Query ltiq/gt
C ltiq from'juliet_at_example.com/balcony'
to'server.org' type'get'
id'request_1'gt ltquery xmlns'jabberiqversi
on'/gt lt/iqgt S ltiq type'result'
from'server.org' to'juliet_at_example.com/ba
lcony' id'request_1'gt ltquery
xmlns'jabberiqversion'gt
ltnamegtejabberdlt/namegt ltversiongt1.1.2lt/versi
ongt ltosgtwin32/nt5.1.2600lt/osgt
lt/querygt lt/iqgt
23
XMPP Extensions Protocol (XEPs)
()
http//www.xmpp.org/extensions
24
(Web) Service Discovery
  • There are three kinds of information that need
  • to be discovered about an entity
  • its basic identity (type and/or category)
  • the features it offers and protocols it supports
  • any additional items associated with the entity,
    whether or not they are addressable as JIDs

25
Web Service related XEPs

Asynchronous Stateful - Discoverable -
Asynchronous Stateful Discoverable
26
Ad-Hoc Commands
C ltiq type'set' from'user_at_server.org'
to'service.server.org' id'iq_127'gt
ltcommand xmlns'http//jabber.org/protocol/com
mands' node'function_name'
action'complete'/gt ltTHE RPC INPUT/OUTPUT
DATA/gt lt/commandgt lt/iqgt S ltiq
type'result' from'service.server.org'
to'user_at_server.org' id'iq_127'gt
ltcommand xmlns'http//jabber.org/protocol/command
s' sessionid'RPC-SESSION-1'
node'function_name' status'completed'gt
ltTHE RPC OUTPUT/OUTPUT DATA/gt lt/commandgt
lt/iqgt
27
Use Case Disco and Ad-Hoc CommandsRendering a
GUI around a service with the XEP-0004 X-Data
envelope
XEP-0004 X-Data Forms optimized for GUI
28
Ad-Hoc Commands
C ltiq type'set' from'user_at_server.org'
to'service.server.org' id'iq_127'gt
ltcommand xmlns'http//jabber.org/protocol/com
mands' node'function_name'
action'complete'/gt ltTHE RPC INPUT DATA/gt
lt/commandgt lt/iqgt S ltiq type'result'
from'service.server.org'
to'user_at_server.org' id'iq_127'gt
ltcommand xmlns'http//jabber.org/protocol/command
s' sessionid'RPC-SESSION-1'
node'function_name' status'completed'gt
ltTHE RPC OUTPUT DATA/gt lt/commandgt lt/iqgt
X-Data Forms (XEP-0004) GUI
29
Web Service related XEPs

Asynchronous Stateful - Discoverable -
Asynchronous Stateful Discoverable
Yet another XEP?
something else?
SOAP ?
WSDL ?
30
Test Case Web ServiceServer Component
WSDbfetch
SOAP
wsdbfetch.gandhi
gandhi
31
Test Case ClientGUI (chat-client), Scripting
Environment (Bioclipse)
WSDbfetch
SOAP
wsdbfetch.gandhi
gandhi
bioclipse_at_gandhi
chat-client_at_gandhi
32
XEP-0050 Ad-Hoc CommandsTransporting EMBL-EBIs
WSDbfetch Web Service over XMPP
33
Summary
  • XMPP is
  • a well established and widely used XML routing
    technology
  • a server-client oriented architecture
  • working with unique entity identifiers
  • offering a discoverable network
  • an asynchronous protocol (the server can push
    data to the client)

result is available
Client
Server
function(data)
function started
34
Andreas Heusler Egon Willighagen Ola Spjuth
35
(No Transcript)
36
XEP-0096 File Transfer
  • Requirements
  • Enable seamless file transfer, including
    fall-back mechanisms as appropriate.
  • Ensure that the profile will work even when one
    or both parties are behind a firewall.
  • Define a full-featured set of metadata for file
    transfers, including the following
  • description
  • size
  • name
  • date
  • hash
  • Optionally support ranged transfers.
Write a Comment
User Comments (0)
About PowerShow.com