OfficeFloor is true inversion of control for building real-time web applications that are build once run anywhere - even with Cloud Computing

Download Eclipse Tutorials

v2.2.0

The run anywhere flexibility is unique to OfficeFloor due to its inversion of control fundamentals of:

  • context
  • dependency injection
  • thread injection
  • function orchestration

OfficeFloor is freely distributed under GPL (LGPL also available on request) and the source is available here.

Example OfficeFloor Graphical Configuration

The intuitive graphical configuration makes OfficeFloor applications self documenting - which works great with both Agile and Support.

Example of an OfficeFloor real-time web application running on Cloud Computing



The example is running on Amazon.


The examples show the real-time web capabilities of OfficeFloor. The chat example is shown twice to demonstrate sending messages between users.


The source for the examples is available here and see the tutorials for further examples.

Four steps to build an OfficeFloor web application


OfficeFloor Step One

OfficeFloor dynamic web pages only require the following 3 non-obtrusive tags:

  • <!-- {section} --> : segments the web page into functions
  • ${property} : allows dynamic content from POJOs (plain old Java objects) to be rendered on the web page
  • #{link} : allows indirection of web page links to enable graphical configuration of the web site navigation


The reason for using non-obtrusive tags in the web pages is to allow OfficeFloor to integrate with WYSIWYG web design tools (e.g. DreamWeaver, KompoZer) to create and edit the web pages.

Also reviewers can open the raw web pages in any web browser. This makes for faster feedback loops with the Web Designer enabling the right look and feel for the web application.

OfficeFloor Step Two.

The application logic is written with POJOs (plain old Java objects) but with a slightly different focus to many dependency injection frameworks. OfficeFloor injects the dependency as a parameter into the method rather than into the object. This difference is key to OfficeFloor's simplicity yet power!



Dependency injection into methods is fundamental to true inversion of control as methods are the natural building blocks for managed code. The JEE API's highlight this:

  • Servlet has the service(...) method
  • JMS has the onMessage(...) method
  • Session Beans contain methods run within a context

OfficeFloor focuses on the method and its context, dependency injection and the invoking thread (thread injection).

OfficeFloor also provides simplified integration with GWT so that the AJAX rich user web page experience can be written in Java. This keeps all code in the one programming language for easier development and support. OfficeFloor can also be used with JavaScript, jQuery or any other rich user interface technologies.

OfficeFloor Step Three.

The web pages and POJO methods are connected together via OfficeFloor's function orchestration providing a cohesive web application.



OfficeFloor's function orchestration is configured graphically which improves application development by:

  • providing a visual representation that all stakeholders can use to understand and review the application
  • making OfficeFloor web applications self documenting, which is great for Agile and Support teams
  • simplifying application changes

No additional coding/configuration is required for OfficeFloor function orchestration allowing development teams to focus on the web pages and POJOs. OfficeFloor will interrogate the web pages and POJO methods to obtain all necessary information for function orchestration.

An OfficeFloor Eclipse plug-in provides the tools to graphically configure the function orchestration.

OfficeFloor Step Four.

The run anywhere flexibility provided by OfficeFloor's inversion of control fundamentals means that web applications built with OfficeFloor can be deployed anywhere, including:

  • on the developer's workstation
  • as a stand-alone web application
  • within an existing JEE Application Server
  • by a Cloud Computing provider


The build once run anywhere capability of OfficeFloor provides flexibility to make the best deployment decisions for the web application - both now and in the future.