0
Life Cycle of an OSRF Message <ul><li>OSRF: middleware for RPC </li></ul><ul><li>Defining “client” and “server” </li></ul>...
Defining Terms: Server and Client Client: Server: A software process, or collection of closely related processes, running ...
Client and Server as Defined by Socket Calls Client: send() sendto() write() recv() recvfrom() read() recv() recvfrom() re...
Jabber server OSRF Network router Client
Jabber Message Stanza <message from=”...” to=”...”> <body> ... </body> </message> Jabber ID: username@domain/resource OSRF...
Use Case: srfsh Command srfsh# request open-ils.cstore  open-ils.cstore.direct.actor.org_unit.retrieve 3 What srfsh knows:...
Jabber cstore REQUEST client to router router srfsh
Router Processing Router knows: <ul><li>How to connect to Jabber (from configuration file)  </li></ul><ul><li>Service name...
Jabber cstore REQUEST/RESULT router srfsh
Jabber listener REQUEST/RESULT in greater detail router client drone
Jabber listener CONNECT router client drone
Jabber listener REQUEST/RESULT with a connection router client drone
Jabber listener DISCONNECT router client drone
Summary <ul><li>Everybody but Jabber is a client, as defined by the socket calls </li></ul><ul><li>All messages go through...
Upcoming SlideShare
Loading in...5
×

Osrf msg life_cycle

706

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
706
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Osrf msg life_cycle"

  1. 1. Life Cycle of an OSRF Message <ul><li>OSRF: middleware for RPC </li></ul><ul><li>Defining “client” and “server” </li></ul><ul><li>Jabber as core of OSRF network </li></ul><ul><li>Message stanzas: XML with JSON payload </li></ul><ul><li>Routing through the router </li></ul><ul><li>Bypassing the router </li></ul>
  2. 2. Defining Terms: Server and Client Client: Server: A software process, or collection of closely related processes, running within an operating system. The same. A server performs services at the request of clients. Software, not hardware.
  3. 3. Client and Server as Defined by Socket Calls Client: send() sendto() write() recv() recvfrom() read() recv() recvfrom() read() send() sendto() write() listen() accept() Server:
  4. 4. Jabber server OSRF Network router Client
  5. 5. Jabber Message Stanza <message from=”...” to=”...”> <body> ... </body> </message> Jabber ID: username@domain/resource OSRF messages: <ul><li>REQUEST </li></ul><ul><li>RESULT </li></ul><ul><li>STATUS </li></ul><ul><li>CONNECT </li></ul><ul><li>DISCONNECT </li></ul>
  6. 6. Use Case: srfsh Command srfsh# request open-ils.cstore open-ils.cstore.direct.actor.org_unit.retrieve 3 What srfsh knows: <ul><li>How to connect to Jabber (from configuration file) </li></ul><ul><li>Name of router (from configuration file) </li></ul><ul><li>Name of service (from command line) </li></ul><ul><li>Name of method (from command line) </li></ul><ul><li>Parameters (from command line) </li></ul>What srfsh doesn't know: <ul><li>IP address or Jabber ID of cstore server </li></ul>Construct Jabber ID, e.g.: <ul><li>router@private.localhost/open-ils.cstore </li></ul>
  7. 7. Jabber cstore REQUEST client to router router srfsh
  8. 8. Router Processing Router knows: <ul><li>How to connect to Jabber (from configuration file) </li></ul><ul><li>Service names (from server registrations) </li></ul><ul><li>Jabber IDS of servers (from server registrations) </li></ul><ul><li>Name of service requested (based on choice of socket) </li></ul><ul><li>Jabber ID of client (from Jabber server) </li></ul>Construct a message: <ul><li>Copy the original </li></ul><ul><li>Change the destination address </li></ul><ul><li>Add a router_from attribute </li></ul>
  9. 9. Jabber cstore REQUEST/RESULT router srfsh
  10. 10. Jabber listener REQUEST/RESULT in greater detail router client drone
  11. 11. Jabber listener CONNECT router client drone
  12. 12. Jabber listener REQUEST/RESULT with a connection router client drone
  13. 13. Jabber listener DISCONNECT router client drone
  14. 14. Summary <ul><li>Everybody but Jabber is a client, as defined by the socket calls </li></ul><ul><li>All messages go through Jabber </li></ul><ul><li>Jabber traffics in XML fragments (message stanzas) </li></ul><ul><li>Each OSRF message is JSON embedded in a message stanza </li></ul><ul><li>The router translates service names to Jabber IDs </li></ul><ul><li>CONNECT enables you to bypass the router </li></ul><ul><li>CONNECT monopolizes a server drone for the duration </li></ul><ul><li>CONNECT is necessary for a database transaction </li></ul>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×