osrf-devel:primer
Differences
This shows you the differences between two versions of the page.
| osrf-devel:primer [2007/04/16 09:10] – created phasefx | osrf-devel:primer [2022/02/10 13:34] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | < | ||
| + | <div style=" | ||
| + | | ||
| + | <p style=" | ||
| + | <font size=" | ||
| + | |||
| + | </ | ||
| + | </p> | ||
| + | <p style=" | ||
| + | <font size=" | ||
| + | </ | ||
| + | </p> | ||
| + | <p style=" | ||
| + | <font size=" | ||
| + | </p> | ||
| + | <ul> | ||
| + | <li> | ||
| + | |||
| + | <p style=" | ||
| + | <font size=" | ||
| + | requests, performs some type of process, and responds to the the | ||
| + | client.</ | ||
| + | </p> | ||
| + | </li> | ||
| + | <li> | ||
| + | <p style=" | ||
| + | <font size=" | ||
| + | requests to OpenSRF services. A client may be a standalone client or a | ||
| + | client that runs as part of a service, sending requests to yet another | ||
| + | service.</ | ||
| + | |||
| + | </p> | ||
| + | </li> | ||
| + | <li> | ||
| + | <p style=" | ||
| + | <font size=" | ||
| + | communication takes the form of Jabber messages which go through the | ||
| + | jabber server for delivery to the recipient.</ | ||
| + | </p> | ||
| + | </li> | ||
| + | |||
| + | <li> | ||
| + | <p style=" | ||
| + | <font size=" | ||
| + | client begins communication with an OpenSRF service, the initial message | ||
| + | goes to the OpenSRF Router so that it may be delivered to the next service | ||
| + | instance in the service pool.& | ||
| + | delivery failures are re-routed to the next available service.</ | ||
| + | </p> | ||
| + | </li> | ||
| + | </ul> | ||
| + | <p style=" | ||
| + | |||
| + | <font size=" | ||
| + | </p> | ||
| + | <ul> | ||
| + | <li> | ||
| + | <p style=" | ||
| + | <font size=" | ||
| + | stateful session to a service</ | ||
| + | </p> | ||
| + | </li> | ||
| + | |||
| + | <li> | ||
| + | <p style=" | ||
| + | <font size=" | ||
| + | stateful session to a service</ | ||
| + | </p> | ||
| + | </li> | ||
| + | <li> | ||
| + | <p style=" | ||
| + | |||
| + | <font size=" | ||
| + | request to a service</ | ||
| + | </p> | ||
| + | </li> | ||
| + | <li> | ||
| + | <p style=" | ||
| + | <font size=" | ||
| + | response from service to client</ | ||
| + | |||
| + | </p> | ||
| + | </li> | ||
| + | <li> | ||
| + | <p style=" | ||
| + | <font size=" | ||
| + | status information</ | ||
| + | </p> | ||
| + | </li> | ||
| + | |||
| + | </ul> | ||
| + | <p style=" | ||
| + | <font size=" | ||
| + | </p> | ||
| + | <ul> | ||
| + | <li> | ||
| + | <p style=" | ||
| + | <font size=" | ||
| + | client to reset its receive timeout</ | ||
| + | </p> | ||
| + | |||
| + | </li> | ||
| + | <li> | ||
| + | <p style=" | ||
| + | <font size=" | ||
| + | successful CONNECT attempt</ | ||
| + | </p> | ||
| + | </li> | ||
| + | <li> | ||
| + | |||
| + | <p style=" | ||
| + | <font size=" | ||
| + | responses to a request have been sent</ | ||
| + | </p> | ||
| + | </li> | ||
| + | <li> | ||
| + | <p style=" | ||
| + | <font size=" | ||
| + | requested API call does not exist</ | ||
| + | |||
| + | </p> | ||
| + | </li> | ||
| + | <li> | ||
| + | <p style=" | ||
| + | <font size=" | ||
| + | stateful session has been terminated by the server due to client | ||
| + | timeout.</ | ||
| + | </p> | ||
| + | </li> | ||
| + | |||
| + | <li> | ||
| + | <p style=" | ||
| + | <font size=" | ||
| + | a server error</ | ||
| + | </p> | ||
| + | </li> | ||
| + | <li> | ||
| + | <p style=" | ||
| + | |||
| + | <font size=" | ||
| + | Indicates the API level of the request is not supported</ | ||
| + | </p> | ||
| + | </li> | ||
| + | </ul> | ||
| + | <p style=" | ||
| + | <font size=" | ||
| + | </p> | ||
| + | <ul> | ||
| + | <li> | ||
| + | |||
| + | <p style=" | ||
| + | <font size=" | ||
| + | a stateful connection by sending a CONNECT message to the service. After a | ||
| + | successful connection is initiated, the client communicates directly with | ||
| + | the service' | ||
| + | client has completed its requests, it sends a DISCONNECT message to close | ||
| + | out the session. This type of communication is especially useful for | ||
| + | multi-request database transactions. With stateful communication, | ||
| + | first message (CONNECT) is delivered through the Jabber Router. Future | ||
| + | communication takes place directly between the client and the worker | ||
| + | process of the service.& | ||
| + | </ | ||
| + | </p> | ||
| + | </li> | ||
| + | <li> | ||
| + | <p style=" | ||
| + | |||
| + | <font size=" | ||
| + | message is issued. A client simply sends a REQUEST message directly to the | ||
| + | service. When a client operates in stateless mode, all REQUEST messages to | ||
| + | services are delivered through the Jabber Router.</ | ||
| + | </p> | ||
| + | </li> | ||
| + | </ul> | ||
| + | <p style=" | ||
| + | <font size=" | ||
| + | to an authentication service</ | ||
| + | </p> | ||
| + | <ol> | ||
| + | |||
| + | <li> | ||
| + | <p style=" | ||
| + | <font size=" | ||
| + | Router.</ | ||
| + | </p> | ||
| + | </li> | ||
| + | <li> | ||
| + | <p style=" | ||
| + | <font size=" | ||
| + | auth service server pool. For example, there could be 5 auth servers | ||
| + | registered with the router. The next one in line gets the request.</ | ||
| + | |||
| + | </p> | ||
| + | </li> | ||
| + | <li> | ||
| + | <p style=" | ||
| + | <font size=" | ||
| + | selected auth server.</ | ||
| + | </p> | ||
| + | </li> | ||
| + | <li> | ||
| + | |||
| + | <p style=" | ||
| + | <font size=" | ||
| + | message with status 200 OK.</ | ||
| + | </p> | ||
| + | </li> | ||
| + | <li> | ||
| + | <p style=" | ||
| + | <font size=" | ||
| + | directly to the auth worker process that responded with the OK | ||
| + | status.</ | ||
| + | </p> | ||
| + | |||
| + | </li> | ||
| + | <li> | ||
| + | <p style=" | ||
| + | <font size=" | ||
| + | request and sends a RESULT message with any result payload</ | ||
| + | </p> | ||
| + | </li> | ||
| + | <li> | ||
| + | <p style=" | ||
| + | |||
| + | <font size=" | ||
| + | auth worker process to terminate the session. Note that if the client | ||
| + | neglected to send a DISCONNECT message, the auth server process would have | ||
| + | responded with a STATUS 408 TIMEOUT after the configured amount of time. | ||
| + | </ | ||
| + | </p> | ||
| + | </li> | ||
| + | </ol> | ||
| + | <p style=" | ||
| + | <br/> | ||
| + | </p> | ||
| + | <ul> | ||
| + | <li> | ||
| + | <p style=" | ||
| + | |||
| + | <font size=" | ||
| + | goes over the network is delivered by the Jabber server. From a physical | ||
| + | layer perspective, | ||
| + | client -> jabber -> router -> jabber -> service, service -> | ||
| + | jabber -> client</ | ||
| + | </p> | ||
| + | |||
| + | </li> | ||
| + | </ul> | ||
| + | <br/> | ||
| + | ------------------------------------------------------------------------------------------------< | ||
| + | <br/> | ||
| + | OpenSRF Software Architecture< | ||
| + | <br/> | ||
| + | <font size=" | ||
| + | </ | ||
| + | <br/> | ||
| + | <font size=" | ||
| + | </ | ||
| + | |||
| + | <ul> | ||
| + | <li> | ||
| + | <font size=" | ||
| + | communication framework that provides unique, addressable endpoints for | ||
| + | client-server communication.< | ||
| + | </ | ||
| + | </li> | ||
| + | <li> | ||
| + | <font size=" | ||
| + | subsystem.</ | ||
| + | |||
| + | </li> | ||
| + | </ul> | ||
| + | <br/> | ||
| + | <font size=" | ||
| + | servers</ | ||
| + | </ | ||
| + | <ul> | ||
| + | <li> | ||
| + | <font size=" | ||
| + | data on the network, e.g. a jabber client.< | ||
| + | </ | ||
| + | </li> | ||
| + | |||
| + | <li> | ||
| + | <font size=" | ||
| + | messages from network messages< | ||
| + | </ | ||
| + | </li> | ||
| + | <li> | ||
| + | <font size=" | ||
| + | (e.g. reading message statuses) and dispatching as appropriate. </ | ||
| + | </li> | ||
| + | |||
| + | <li> | ||
| + | <font size=" | ||
| + | client and a service.</ | ||
| + | </li> | ||
| + | </ul> | ||
| + | <br/> | ||
| + | <font size=" | ||
| + | </ | ||
| + | <ul> | ||
| + | <li> | ||
| + | <font size=" | ||
| + | appropriate application plugin.</ | ||
| + | |||
| + | </li> | ||
| + | </ul> | ||
| + | <br/> | ||
| + | <font size=" | ||
| + | </ | ||
| + | <ul> | ||
| + | <li> | ||
| + | <font size=" | ||
| + | application modules/ | ||
| + | </ | ||
| + | </li> | ||
| + | |||
| + | <li> | ||
| + | <font size=" | ||
| + | handlers for processing API requests< | ||
| + | </ | ||
| + | </li> | ||
| + | </ul> | ||
| + | <br/> | ||
| + | ------------------------------------------------------------------------------------------------< | ||
| + | <br/> | ||
| + | OpenSRF Server Architecture< | ||
| + | <br/> | ||
| + | |||
| + | <font size=" | ||
| + | </ | ||
| + | <br/> | ||
| + | <br/> | ||
| + | <br/> | ||
| + | < | ||
| + | </ | ||
| + | </ | ||