|
Interface is a Pythomnic facility for accepting incoming requests
from the application clients. By default, all interfaces are disabled
on a cage, therefore
an out-of-the box cage can be started, but will not be accepting
any requests from the clients.
Such "isolated" cages, with no interfaces enabled on them are still
usable, as other cages can call them through cage-to-cage communication
channels. The opposite kind are "perimeter" cages which have one or more
interfaces enabled and do accept requests from clients.
There are various protocols supported by Pythomnic out of the box.
Synchronous interfaces:
Although I mention requests, Pythomnic interfaces are not limited to
process synchronous request-response protocols. Those are the
simplest to explain though, and three of a kind are supported -
SOAP, XML-RPC and HTTP. Those interfaces accept incoming
requests over the respective protocol, parse them and pass to
an application module for processing. While the request is being
processed, the client doesn't get any response, the network connection
stays open. Once processing is complete, the response is returned
to the interface, which wraps it up and returns to the client. If an
exception occurs, it is returned to the client in a protocol-appropriate
manner.
Message-oriented interfaces:
Although these interfaces process something which are not technically
requests, but rather messages, the interfaces make them appear like
synchronous requests to application modules. Supported protocols of this
sort include JMS, POP3, SMPP and ICQ. Those interfaces keep waiting for a message
to arrive, then invoke processing in synchronous manner, but don't commit
the received message on the server. The message stays un-received until
its processing completes. Once the processing is complete, the message is
commited and/or deleted from the server. If an exception occurs, the
message remains on the server, perhaps only to be received again in
a short while.
Miscellaneous interfaces:
These interfaces process something which is even farther from requests,
but again the interfaces will mask the behaviour pretending a synchronous request
of a sort is being processed. For example, a "file interface" will detect
files appearing in a specified directory and invoke processing for each
received file as though it was a request. If processing completes successfully,
the file is deleted, otherwise it remains in place, in a manner similar to
the message queuing protocols described above. Another examples are the
"periodic" interface, which throws in a "request" for processing at specified
times and "shell" interface, which processes shell-like commands from a user
connected with telnet client.
|
Features Download Documentation Tutorial |