Apache Open For Business (Apache OFBiz) – компонетно-ориентированный для построение J2EE приложений.
Framework
Базовая архитектура выглядит следующим образом:
Фактический OfBiz framework предоставляет разработчику набор нескольких приложений которые организуют всю эту инфраструктуру для разработки компонент и их взаимодействию между собой. Компонента на абстрактном уровне состоит из трёх частей как на рисунке: Data Layer (Model), Logic (Service) layer (Controler) и User Interface Layer (View), т.е. спроектирована с использованием MVC паттерна.
Все базовые компоненты организующие эту инфраструктуру расположены в папке framework. Кратко пробежимся по ним:
base - главная компонента, которая загружает все остальные компоненты, содержит конфигурационные файлы отображенные на рисунке в разделе Configuration&Deployment.
appserver - базовая абстрактная компонента предоставляющие связь base компоненты с вебсервером на которые должны деплоиться компоненты. По умолчанию используеться компонента catalina, которая представляет собой сервер Jakarta Tomcat 6.geronimo - компонента предоставляющие возможность организации транзакций в работе компонент.
entity, entityext и datafile - предоставляю собой компоненты управления Data Layer в платформе, вся работа с базами данных идёт через эти компоненты.
service - компонента организующая Logic layer. Она позволяет остальным компонентам создавать сервисы и организовывать взаимодействие между ними.
webapp, webslinger - компоненты организующие базовый User Interface для компонент. Предоставляющие способы доступа из web части к service и engine частям компоненты.
widget - реализация базовых виджетов (элементов графического интерфейса страниц) для компонент.
security - компонента обеспечивающая модель аутентификации и авторизации для всех трёх слоёв каждой компоненты.
minilang - компонента обеспечивающая поддержку интернационализации в компонентах.
webtools - вспомогательная компонента, которая предоставляет веб интерфейс для отслеживания работы платформы, к примеру для непосредственного доступа к entity находящимся в engine, просмотра запросов к компонентам, статистике работы сервисов и т.п.