아마도 OFBiz가 무엇인지 더 잘 이해하기 위해서는 주요 부분과 각 부품이 수행하는 목적을 이해해야 할 수도 있습니다. 따라서 주요 부품 또는 하위 시스템은 아래에 요약됩니다.
OFBiz의 핵심은 시스템 모음입니다.
- 웹 서버(Apache Tomcat)
- 요청 라우팅 및 처리를 위한 웹 MVC 프레임워크입니다.
- 데이터를 정의, 로드 및 조작하는 엔터티 엔진입니다.
- 비즈니스 로직을 정의하고 제어하는 서비스 엔진.
- 사용자 인터페이스를 그리고 상호 작용하는 위젯 시스템입니다.
위에서 언급한 핵심 시스템 외에도 OFBiz는 다음을 제공합니다.
- 주문, 송장, 총계정원장, 고객 등과 같은 항목을 정의하는 대부분의 비즈니스에서 공유되는 데이터 모델입니다.
- 위에서 언급한 “createBillingAccount” 또는 “updateInvoice” 등과 같은 데이터 모델에서 작동하는 서비스 라이브러리입니다.
- 사용자가 시스템과 상호 작용할 수 있도록 사용자 인터페이스를 제공하는 응용 프로그램 모음입니다. 이러한 애플리케이션은 일반적으로 기존 데이터 모델 및 서비스 라이브러리에서 작동합니다. 예를 들면 “회계 관리자” 및 “주문 관리자”가 있습니다.
- 기본 기능을 확장하고 OFBiz에 사용자 지정 논리를 추가하는 주요 방법인 “플러그인”이라는 선택적 응용 프로그램 모음입니다.
구성품
OFBiz의 기본 단위는 “컴포넌트”라고 합니다. 구성 요소는 최소한 “ofbiz-component.xml”이라는 파일이 내부에 있는 폴더입니다.
OFBiz의 모든 애플리케이션은 구성 요소입니다. 예를 들어 주문 관리자는 구성 요소이고 회계 관리자도 구성 요소입니다.
규칙에 따라 OFBiz 구성 요소는 다음과 같은 기본 디렉터리 구조를 갖습니다.
component-name-here/
├── config/ - Properties and translation labels (i18n)
├── data/ - XML data to load into the database
├── entitydef/ - Defined database entities
├── groovyScripts/ - A collection of scripts written in Groovy
├── minilang/ - A collection of scripts written in minilang (deprecated)
├── ofbiz-component.xml - The OFBiz main component configuration file
├── servicedef - Defined services.
├── src/
├── docs/ - component documentation source
└── main/java/ - java source code
└── test/java/ - java unit-tests
├── testdef - Defined integration-tests
├── webapp - One or more Java webapps including the control servlet
└── widget - Screens, forms, menus and other widgets
위의 디렉토리 구조에서 각 OFBiz 구성요소는 엔티티, 데이터, 서비스, 사용자 인터페이스, 라우팅, 테스트 및 비즈니스 로직을 포함하므로 실제로 완전한 애플리케이션이라는 것이 분명합니다.
핵심 OFBiz 응용 프로그램과 플러그인은 모두 구성 요소에 지나지 않습니다. 유일한 차이점은 핵심 애플리케이션이 “applications” 폴더에 있는 반면 플러그인은 “plugins” 폴더에 있다는 것입니다. 또한 OFBiz는 기본적으로 플러그인과 함께 제공되지 않습니다.