Fork me on GitHub

The OfficeFloor team identified the following additional dimensions to inversion of control:

        Inversion of Control = Dependency Injection + Thread Injection + Continuation Injection

Identifying these dimensions has given rise to the software equivalent of a brick. This is enabled by the inversion of control for methods presented by the OfficeFloor team in the following paper:

ACM DL Author-ize serviceOfficeFloor: using office patterns to improve software design
Daniel Sagenschneider
EuroPLoP '13 Proceedings of the 18th European Conference on Pattern Languages of Program, 2015

The inversion of control for methods enables building applications bottom-up, which is similar to building a house bottom-up with bricks. Bricks are not produced specific to the house but define their own dimensions for cheaper mass production and easier assembly. The inversion of control for methods provides a similar defining of dimensions for methods to enable easier development of applications.

The result is OfficeFloor enables software development to be as simple as building walls from bricks. These walls are then used together to form buildings and more complex structures - many of which already come prefabricated for you.

OfficeFloor's mission is to provide an open platform that enables software to be plugged together without causing lock-in by any vendor.

A key goal in this mission is to provide a Platform as a Service (PaaS) that is not bounded by any Infrastructure as a Service (IaaS) vendor. We want OfficeFloor to be the Cloud Application Server that is open and free - encouraging open integration and putting you back in control of your choices.

To ensure this mission is achieved, OfficeFloor is free to use. This keeps us focused on building you a better platform. The OfficeFloor team derive our benefits indirectly from OfficeFloor being an open platform.

So far the following bricks have been identified:

With mortar ingredients:

And wall constructs of:

That allow the more complex constructs:

Integrating software with OfficeFloor requires writing an adapter for the appropriate source(s) above. We openly welcome you integrating your software with OfficeFloor and help can be found here. We also welcome all who want to help. A great place to start helping is by building an Assist Item.

The OfficeFloor name is derived from us modelling in software how people coordinate in an office to make decisions to achieve certain goals. You will notice this in the naming of many classes/interfaces. From this we look to integrate all good software to help people make good decisions.

Note that the above might also be found in its shortened version: IoC = DI + TI + CI