Overview of KnownSpace for Developers


Abstract

KnownSpace is an application framework that makes it easy to build applications and systems composed of extremely weakly-coupled processes that can still cooperate powerfully. It promotes code flexibility and cooperation by providing:

Extremely weakly-coupled processes

Why should you want to compose a system or application from extremely weakly-coupled processes? For the same reason that you write your code to interfaces instead of implementations: because it encourages composability and modularity. Portions of applications built with KnownSpace are easier to modify, duplicate, instrument, etc. without having to know much about the implementations of each part of the system.

What's powerful about KnownSpace is that when one goes to write an application in it, one begins with the Simpleton form, much like a poet might begin with a Haiku or Sonnet. There is just enough structure to give form to your code. The Simpleton form encourages you to write small, simple, expressive, and decoupled computational chunks.

The form encourages decomposition because the resulting chunks fit more naturally into the Simpleton form. The natural decomposition requires the definition of the Entities on which the various Simpletons will operate (these are your data), and the Events that Simpletons will pass between them (these are your messages).

Data

In KnownSpace, persistent data is easily represented as Entitys. An Entity contains a value (the actual data, which can be anything you can represent using Java objects), as well as attributes. Attributes are bidirectional links to other Entitys which in turn contain other values and attributes. This system allows arbitrary levels of reference and composability and is often far more convenient than a relational or hierarchical system for representing, mining, and navigating real data relationships.