|
idea
|
|
|
A necessary component of a sustainable future will be a sustainable built environment.
We need a revolution in how we think about, design, construct, and operate applications and framworks.
Imagine applications that achieve a natural beauty through their harmony with the environment."
Based on, but largely modified :
- The Sustainability Project -
|
concept
crmac is a learning general purpose software environment based on a dynamic rules engine
coupled with a self describing dictionary.
The key factors are :
- rules can modify themselfs,
- statistics about rules activity are available to the rules,
- evolution capability,
- rulesets can be merged,
- fail safe (detection and removal of erroneous rules),
- controlled destruction
- communication capability,
- several instances of one ruleset can communicate within a machine,
- instances can communicate long distance using asyncoronous transports,
- an open, XML-based interface provides for systems interconnection
- plug in capability.
an introduction by examples
start a discussion of the details
philosophy
The rational behind crmac is based on a set of primary and secondary guidelines
more about crmac philosophy
how to work with crmac
architecture
Any crmac application consists only of rules and states, they are organized into rulesets
(which are roughly equivalent to an application). The heart of the crmac complex is therefore
the rule engine which constantly reevaluates the loaded rulesets.
Selected states can be mapped to incoming and outgoing events, this is the task of the I/O module
which also drives the interfaces (e.g. the native XML connector, or the SAP R/3 connector)
Other states can be part of the common area which is available to all rulesets and can be shared
via networks (including state name/value mapping).
The merge and repair modules are the central part of the evolution
(see details on crmac evolution) implementation.
 building blocks of the crmac complex
The crmac complex is hosted within a portable and scalable runtime environment. This is not visible to the
rule designer and might change without having an effect on existing rulesets.
implementation
Early prototypes and the first implementation of crmac were written in visual basic.
Because visual basic is not portable and in a certain way is not 'groovy', for a long time it was considered
writing an own implementation language for crmac to have everything under control.
But then the decision went into using java as the crmac implementation language.
However there is a strong differentiation between the java language and the jdk class libraries;
we consider java as remaining available for the next 30 years which should be sufficient, but do not
think that the same is true for most of the class libraries. Therefore we have defined a subset of java and the jdk
to be used for the implementation of crmac core functionality; Nevertheless all of java is in use for
the crmac runtime environment and gui.
Similar to the philosophy, in the implementation there is a strong focus on not introducing any limits to
the system. Especially in the areas of 'set'-management and usage of heavily parallel computers a lot of
work has been done. more
|
|