OAF Architecture


OAF Architecture:

1. Model View Controller:

OA Framework is based on the industry-standard J2EE MVC design pattern. The MVC architecture is a component-based design pattern with clean interfaces between the Model, View, and Controller. The Model is where the application implements its business logic. The View is where the application implements its user interface and the Controller is where the application handles user interaction and directs business flow.

OAFArc1

2. Object Oriented reuse – onion:

OAFArc2

3. OAF Components:
• Entity Objects (EO)
• View Objects (VO)
• Controller (CO)
• Application Module (AM)
• Pages

The components in detail:
3.1: Entity Objects
• The entity objects are used if one wishes to do some insert/update operations.
• Entity Objects represents a Data Base Row of a table.
• Entity Objects will be based on the View (Oracle View), Synonyms or snapshots.
• We need to create Entity Object if we want to perform DML operations on the OAF Page.
• All the Entity Objects end with the EO

3.2: View Objects
• View Objects are used when we want some data to be displayed on page.
• View Objects are used just for displaying purpose.
• View Objects access the result set of a SQL statement, it can be either based on the Entity Object or plain SQL query.
• All the view objects ends with the VO

3.3: Application Module
• It is very important component in the Model.
• Every Oracle Application Framework (OAF) page should be attached to some Application Module.
• It is the interface between the Client transactions and Data Base transactions.
• All the application module objects end with AM.

3.4: Controller
• Controller will take care of the web browser activities.
• The controller manages the flow between pages.
• Controller responds to the user actions and directs application flow.
• The controller will request from HTTP get and HTTP post.
• All the controllers end with the CO

4. EBS Directory structure
a. EO-related (business logic) .class and .xml files in oracle.apps.. .schema.server
b. AM and VO (UI-related logic) .class and .xml files in oracle.apps.. .server
c. CO and PG in oracle.apps.. .webui
d. Poplist- and LOV-related VO and AM .class and .xml files in oracle.apps…poplist.server and oracle.apps.. .lov.server

Note: For custom implementations follow the structure as <company>.oracle.apps.<application
shortname>.<custommodule>…

On EBS server, application structure starts from $JAVA_TOP