Access to add and change pages is restricted. See: https://cwiki.apache.org/confluence/display/OFBIZ/Wiki+access

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 22 Next »

This is a draft document - it can be changed at any time by anyone.

Document Purpose

This document is intended to introduce a high level design of an application framework for the Apache Open for Business project.

Overview

The application framework will be written in Java and it will provide the basic structure to write an application. The framework will provide the following basic functionality:

  • Configuration.
  • Globalization (locale, time zone, currency).
  • Logging.
  • Security (authentication/authorization).
  • Actor Management (profiles, roles - required for security; Actors - people, external services) Think of UML Actor. Required to remove dependency on Party
  • Persistence (file system or database).
  • Lang package to provide classes that are fundamental to the framework
  • Services.
  • Runtime management.

Design Goals

  • Single jar file. Ron W. Makes it hard to have collaboration, encourages intermodlue dependencies, makes build slow and test suite too big, makes it hard for developers to replace parts, makes it hard to support multiple lower level alternatives. Would prefer to have 8 separate projects with possibly different teams on some parts programming to agreed interfaces.
  • Compact, small memory footprint.
  • Scalable from SBCs to enterprise-class ERP systems.
  • Reuses existing technologies.
  • Easy to configure and maintain.

    Design Participants Note

    Please take some to watch this presentation by Joshua Bloch: How to Design a Good API & Why it Matters.

Basic Architecture

Configuration
Globalization
  • Library: IBM ICU4J
  • Java package name: org.apache.ofbiz.foundation.globalization
Logging
  • Library: SLF4J
Security
Actor Management
Persistence
  • Library: OFBiz Entity Engine
  • Java package name: org.apache.ofbiz.foundation.persistence
Services
  • Library: JMS, Quartz Scheduler
  • Java package name: org.apache.ofbiz.foundation.service
Lang - Data Types
Cache
  • Library: eHCache
  • Java package name: org.apache.ofbiz.foundation.cache
Configuration Actor Management Logging Lang Persistence Security Cache Services Globalization
  • No labels