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.