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/> | ||
+ | < | ||
+ | </ | ||
+ | </ | ||