Xteriorize is an HTTP gateway for Xacerbate, written in perl.
Features
- Pre-forked, pre-initialised processes maximise throughput
- Conversion of all HTTP header information into XML
- Options to serve static content with or without the help of xacerbate
Applications
- Querying Xacerbate without establishing a persistent connection (eg to display a list of connected users via a website)
- Serving websites, possibly from behind Apache
- Serving resources such as large graphics and sound files that would slow down Xacerbate
- Providing an interface to Apache for advanced features such as SSL (eg for secure login)
How does it work?
Xteriorize is a perl script that provides an HTTP gateway to Xacerbate. Each request is handled as followed:
- An HTTP request is received by Xteriorize
- Static content can be served directly
- Otherwise Xteriorize converts the request to XML, adds some information of its own and sends the resulting XML to Xacerbate
- Xacerbate processes the incoming XML and sends a response to Xteriorize
- Xteriorize converts the response into an HTTP response and serves it
The server architecture is provided by the CPAN Net::Server module. Each preforked child establishes a persistent connection to Xacerbate at startup, so there are virtually no overheads when an HTTP request arrives. If a child crashes for any reason, Xacerbate closes the persistent connection and Xteriorize spawns a new child process.
Status
Xteriorize currently handles GET and POST requests. In conjunction with Xcathedra it provides a relatively rich web-oriented environment, including support for cookies, CGI request parsing and XSLT-based scripting. The current plan is to keep Xteriorize as lean as possible, and to use Apache to provide more advanced functionality when necessary.
