Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • 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 databaseData Store (entity engine).
  • 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.

    Info
    iconfalse
    Ron, what you are describing is the current mess we are trying to fix. Consolidating the closely-coupled components into a single component (and

    jar file

    ) is one of the main reasons for the rewrite - that is why it is first on the list of design goals

    .

  • Compact, small memory footprint.
  • Scalable from SBCs to enterprise-class ERP systems.
  • Reuses existing technologies.
  • Easy to configure and maintain.

    Note
    titleDesign Participants Note

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

...

...

Data Store
  • Library: OFBiz Entity Engine, JDBC
  • Java package name: org.apache.ofbiz.foundation.persistenceentity
Services
  • Library: JMS, Quartz Scheduler
  • Java package name: org.apache.ofbiz.foundation.service

...

  • Library: eHCache
  • Java package name: org.apache.ofbiz.foundation.cache

 

 

...

 

Graphviz
outputsvg
thumbnailtrue
attachmentattachmentVersionNewFrameworkModuleDependencies.svgreplace
digraph module_dependencies{
node [shape="box", color="lightseagreen", style="filled,rounded", fillcolor="peachpufflightyellow1"];
edge [color="lightseagreen"];
"Security"->"Configuration";
"Security"->"Globalization";
"Security"->"Actor ManagementLogging";
"Security"->"ActorData ManagementStore";
"ActorData ManagementStore"->"Configuration";
"Data Store"Lang->"Globalization";
"ActorData ManagementStore"->"Logging";
"Data Store"Persistence->"Cache";
"SecurityServices"->"PersistenceConfiguration";
"PersistenceServices"->"LangGlobalization";
"Services"->"LangLogging";
"PersistenceServices"->"CacheData Store";
"LoggingServices"->"GlobalizationSecurity";
"ConfigurationGlobalization"->"LoggingConfiguration";
"SecurityCache"-> "LoggingConfiguration";
"Actor ManagementLang"->"LoggingGlobalization";
"PersistenceLogging"->"LoggingConfiguration";
}