Abstract

A fundamental practice in Computing for many years has been the "separation of concerns" in which problem solution is divided into almost independent parts. This allows more narrow scope for our activities and for the propogation of their effects, and allows changes in implementation to be more readily and acdurately accomplished.

In information technology the fundamental separation is between communication with customers and suppliers, called "presentation", operating upon the data which is communicated, called "processing", and storage and retrieval of that data, called "persistence". Arrangments to promote the development and execution of such separated systems are constantly created, but in practice almost always end up more honored in the breach rather than the observance. These arrangments currently are done most commonly be creating "frameworks" combining several varieties of programming language (eg HTML, Java or C++, SQL) which are in turn based upon code libraries from which projects are constructed.

A fundamentally new way of approaching such problems conceives projects as divided into three tiers for Presentation, Processing, and Persistence (thus PreProPer) which communicate via two passages called PrePro and ProPer. Programming within each tier can be done in any way appropriate for the problem in relative independence from the other tiers, and the user does no programming within the passages, but merely configures them using standard configuration means based for example upon XML.

For a system developed in this manner it is very simple to change completely the means of presentation, or add additional means of presentation, without touching the Processing and Persistence tiers. Similarly the means of persistence can be changed, as for example between different database systems, or to utilize messaging rather than databases, without changing the Presentation and Processing. Most especially it allows the development of Processing to be closely tied to actual business analysis rather than programming.

The system was developed through analysis of flow and communication requirementsusing the Patterns of Protocols developed for the authors forthcoming (?) book Object-Oriented Networked Programming.

Content

preproper flow wiki code
There are 3 parts to this beyond this main page. The blog is intended for current thoughts about what is being done on the project, the wiki is intended for continuing thoughts about various ideas related to the project, and the code repository contains various versions of the project, always including the latest complete project.

PreProPer

A fundamental practice in Computing for many years has been the "separation of concerns" in which problem solution is divided into almost independent parts. This allows more narrow scope for our activities and for the propogation of their effects, and allows changes in implementation to be more readily and acdurately accomplished.

In information technology the fundamental separation is between communication with customers and suppliers, called "presentation", operating upon the data which is communicated, called "processing", and storage and retrieval of that data, called "persistence". Arrangments to promote the development and execution of such separated systems are constantly created, but in practice almost always end up more honored in the breach rather than the observance. These arrangments currently are done most commonly be creating "frameworks" combining several varieties of programming language (eg HTML, Java or C++, SQL) which are in turn based upon code libraries from which projects are constructed.

The project presents a fundamentally new way of approaching such problems, which conceives projects as divided into three tiers for Presentation, Processing, and Persistence (thus PreProPer) which communicate via two passages called PrePro and ProPer. Programming within each tier can be done in any way appropriate for the problem in relative independence from the other tiers, and the user does no programming within the passages, but merely configures them using standard configuration means based for example upon XML.

For a system developed in this manner it is very simple to change completely the means of presentation, or add additional means of presentation, without touching the Processing and Persistence tiers. Similarly the means of persistence can be changed, as for example between different database systems, or to utilize messaging rather than databases, without changing the Presentation and Processing. Most especially it allows the development of Processing to be closely tied to actual business analysis rather than programming.

The system was developed through analysis of flow and communication requirementsusing the Patterns of Protocols developed for the authors forthcoming (?) book Object-Oriented Networked Programming.

Some recent work on PreProPer

preproper.pdf Separating Concerns by Isolating Them (PDF)

practice.pdf Separating Presentation, Processing, and Persistence using PreProPer (PDF)