...
- 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 icon false 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 title Design Participants Note Please take some to watch this presentation by Joshua Bloch: How to Design a Good API & Why it Matters.
...
- Library: OFBiz
- Java package name: org.apache.ofbiz.foundation.actor
...
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 | ||||||
---|---|---|---|---|---|---|
| ||||||
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"; } |