Home > Articles > Programming > Python

Planning Interactive Web Systems

  • Print
  • + Share This
Building a web system is a complicated business. Designing any complex piece of software requires imagination and creativity as well as a solid knowledge of software engineering practice. If you are an experienced programmer, you may well possess all these things; but if not, it might be useful to get some idea of what goes on in the designer's mind while developing and building a new system. New Riders author Steve Holden offers suggestions on setting up and planning for an interactive web system.
From the author of

A web system is effectively a programmed method for generation of linked content, usually (but not necessarily) presented with some degree of structural uniformity. For web pages, the unifying theme is usually the page layout, but in XML could be the presentation style, possibly selected from a number of styles defined in cascading style sheets.

The structure of web pages is often hierarchical, with a group of pages embellishing a style inherited from the pages above it in the conceptual hierarchy. One of the features of Zope is its capability to inherit page structure, overriding as necessary within a tree-structured hierarchy.

Overall Architecture

You have by now seen enough Python code that one more HTTP server would be neither here nor there. It may be that your current web services run external programs as CGIs as a matter of policy. In that case, you must be prepared to write your systems as CGI scripts, which will make them slower and perhaps more complex.

Generally, it is best to try to separate the HTTP service from the content generation. The architecture of web systems is such that HTTP carries HTML, XML, and so on, so the two are at different layers in the software architecture.

You may need to understand your server environment closely if you want to use techniques like persistent CGI, which can improve performance. However, just as in databases, the early stages of design are too soon to start considering physical models; it is often better to design the system in a simple way and then look at how to improve performance if that proves necessary. Because you now know that you can write web servers in pure Python, thanks to the socket library, you need not fear the artificial constraints of a server framework.

  • + Share This
  • 🔖 Save To Your Account