the ROAF is a Java project

Software architects design objects as semantical entities while abstracting technical details. Objects separate external behavior from internal processing. They can exchange information, communicate with each other and change their state (react). Speaking of objects rather than programs has drastically improved the communication between IT experts (technical) and users (semantic aspect).

The sparc to inspire the ROAF was to follow the paradigm of 'Objects' in software development (in Java)
and to apply it to physical things in our environment - any thing.

The idea of the ROAF is to create Java Objects as physical objects or things called Real Objects (ROs)
and to test these Real Objects in a (dedicated) real world scenario.

Just as
every Java Object is extending the java.lang.Object
every Real Object is extending the roaf.ros.RealObject

client programming

The abstract RealObject provided by the ROAF library is the platonic actor of any ROApp and represents the client programming environment. Any Java developer can develop his own real (world) object according to his individual knowledge, skills and interests.

server programming

After creating client software for predefined ROApp server scenarios the developer can move on to the more sophisticated server development. The fundamental server software, the RealObjectServer is provided 'out of the box' for rapid and standardized development. A RealObjectApplication is created by simply extending the server object and defining rules for the scenario.

distributed programming

The ROAF is predesigned as a globally distributed application.

On a long term developers might decide to focus on client or server programming.
Nevertheless RO clients and ROApp servers always operate together. 
Testing and verification implicitly takes place by interacting online.

As a ROApp gets mature it can be mashed up with other ROApps
to become part of the Real Object Application Framework.
The rules of a scenario have to be harmonized to more stringent laws
to enable higher level ROAF components to combine ROApps to one reality.

The ROAF serves as a framework for all programming efforts of the roaf.de/veloper community.

The behavior of real physical things serves as a blueprint for all ROAF actors.