The Oracle E-Business Suite Release 12 Architecture is a framework for multi-tiered, distributed computing that supports Oracle Applications products.

Architecture-R11i vs R12

In EBS R12, various servers or services are distributed among the following three levels, or tiers.

  • The Desktop Tier
  • The Application Tier
  • The Database Tier
Oracle E-Business Suite Release 12 Architecture

1] The Desktop Tier
The client interface is provided through HTML for HTML-based applications, and via a Java applet in a Web browser for the traditional Forms-based applications.
In Oracle Applications Release 12, each user logs in to Oracle Applications through the E-Business Suite Home Page on a desktop client web browser. The E-Business Suite Home Page provides a single point of access to HTML-based applications, Forms-based applications, and Business Intelligence applications.
Oracle JInitiator will no longer be required to run Oracle Forms in E-Business Suite Release 12.  Oracle Forms in Release 12 will run directly in the native Sun Java2 Standard Edition plug-in.
The Forms client applet is a general-purpose presentation applet that supports all Oracle Applications Forms-based products, including those with customizations and extensions. The Forms client applet is packaged as a collection of Java Archive (JAR) files. The JAR files contain all Java classes required to run the presentation layer of Oracle Applications forms.
2] The Application Tier
The application tier has a dual role: hosting the various servers and service groups that process the business logic, and managing communication between the desktop tier and the database tier. This tier is sometimes referred to as the middle tier.
Four servers or service groups comprise the basic application tier for Oracle Applications:

  • Web services
  • Forms services
  • Concurrent Processing server
  • Admin server

3] The Database Tier
The database tier contains the Oracle database server, which stores all the data maintained by Oracle Applications. The database also stores the Oracle Applications online help information. More specifically, the database tier contains the Oracle data server files and Oracle Applications database executables that physically store the tables, indexes, and other database objects for your system. The database server does not communicate directly with the desktop clients, but rather with the servers on the application tier, which mediate the communications between the database server and the clients.

If you want to do some OAF Development in JDeveloper for the first time, you will need to do the following things.
1] Download JDeveloper Patch
Based on your instance release level, check out the version of JDeveloper to use using below link.
You can identify the OA Framework version in your instance by activating diagnostics and click the “About This Page” from any OAF page. Click the “Technology Components” tab. The OA Framework version in the top row of the table can then be matched to the JDeveloper Patch.
Download the JDeveloper Patch.
2] Extract the JDeveloper patch in a directory say D:DevSuiteHome_1jdev
The patch actually contains below three directories
  • jdevbin – Includes an extended version of the Oracle JDeveloper 10executable and OA Framework class libraries.
  • jdevhome – Includes the OA Framework Toolbox Tutorial source and developer working area.
  • jdevdoc – Contains documentation.
3] Define an environment variable
Define an environment variable JDEV_USER_HOME for your local machine. This has to be set to jdevhomejdev directory. In above example it has to be D:DevSuiteHome_1jdevjdevhomejdev.
My Computer  Properties  Advanced tab  Environment Variables  New
Variable: JDEV_USER_HOME
Value: D:DevSuiteHome_1jdevjdevhomejdev
4] Extract Tutorial.zip
Extract D:DevSuiteHome_1jdev jdevbinTutorial.zip into D:DevSuiteHome_1jdev jdevhome.
It will create following directories
D:DevSuiteHome_1jdev jdevhomejdevmyhtml
D:DevSuiteHome_1jdev jdevhomejdevmyprojects
5] Get the DBC file
Obtain the FND database connection (.dbc) file from the system administrator who installed the OA Framework database where you want to do your development.
For the instance to use, you can get the .dbc file from $FND_SECURE and put it in <JDEV_USER_HOME>dbc_filessecure i.e. D:DevSuiteHome_1jdevjdevhomejdev dbc_filessecure
6] Creating a Desktop Shortcut to JDeveloper
To facilitate launching JDeveloper, create a desktop shortcut to jdevbinjdevbinjdevw.exe.
7] Configuring the Environment Encoding of JDeveloper
Confirm the environment encoding of your JDeveloper if it is appropriately set.
Go to Tools – Preferences – Environment – Encoding
If Encoding is not set to “UTF-8″, set it to “UTF-8″.
The initial setup is now complete!….Now you are ready to develop your first OAF page. For more information you can refer OAF Developer’s Guide.

About Discoverer:
Discoverer is the end user adhoc query, reporting and analysis tool, which provides quick development environment to develop Data Warehousing & Business intelligence reports.
What is business intelligence?
Business Intelligence is the ability to analyze data to answer business questions and predict futures.
Features and Benefits:
  • Automated Summary Management – improving query performance in Discoverer Plus is now easier with this new feature.
  • Oracle Applications support – This enables you to connect to Oracle Applications EULs as well as standard Discoverer EULs.
  • Identifiers – all objects in a Business Area are now uniquely defined within each EUL by an Identifier.
  • Change schema owner – you can now manually edit the schema Owner attribute (for a Folder) or leave it blank.
  • Support for Oracle Materialized Views.
  • Analytic Functions – perform complex mathematical analysis with this extended range of statistical functions.
How does it Works?
When a user creates or opens a worksheet, Discoverer:
  •  Converts the worksheet into the corresponding SQL statements (e.g. by converting folder names and item names to table names and column names respectively).
  •  Sends the SQL statements to the database.
  •  Displays the result set that is returned from the database.
Discoverer Components:
  •  Oracle Discoverer Administrator
  •  Oracle Discoverer Plus
  •  Oracle Discoverer Desktop Edition (Viewer)
Oracle Discoverer Administrator:
Discoverer Administrator is a tool to hide the complexity of the database from business users, so they can answer business questions quickly and accurately using Oracle Discoverer.
Discoverer Administrator’s wizard-style interfaces enable you to:
  • Set up and maintain the End User Layer (EUL)
  • Create Folders, Items and Item Classes
  • Control access to information
  • Create conditions and calculations for Discoverer end users to include in their worksheets
Oracle Discoverer Plus:
It is a web portal like Oracle Application front end through which you can log on with your oracle application username and password and create and run discoverer reports.
Oracle Discoverer Desktop Edition (Viewer):
It works same as Discoverer Plus, but it is a software that comes with Oracle BI Publisher setup. Here also you can create and run your discoverer reports.
End User Layer (EUL):
End User Layer is a Metadata repository for Business areas, folders and items on which Discoverer workbooks or reports based on. The EUL is a set of database tables that contain information (or ‘metadata’) about the other tables and views in the database. 
Business Area:
A Business Area is a set of folders containing related information with a common business purpose.
Business Areas:
  • Meet the specific data needs of the users
  • Usually contain data from several different tables or views
  • Have tables or views and their associated columns mapped to “folders” and “items” respectively
  • Can contain many simple folders and complex folders
  • May contain folders from one or more physical databases include conditions, joins, calculations, formatting,   hierarchy structures, and other custom features
  •  May be accessible to one or many user IDs or roles; also, a user ID or role may be granted access to many business areas
  •  Let users access data, without having to understand the database structure
Folders:
The tables and views loaded into a Business Area are called as folders. There are 3 types of folders that you can create – Simple, Complex and Custom.
Items:
The columns of the folders are named as items.
Item Classes:
Item classes are like LOVs in Oracle Application. We can create item classes based on any columns of a table and we can join that item classes to any parameters of the discoverer reports.
Joins:
A Join relates two folders using common items.
Conditions:
Conditions filter worksheet data, enabling Discoverer end users to analyze only the data they are interested. Conditions are applied to the folders or items.
Calculations & Hierarchies:
A calculated item is an item that uses a formula to derive data for the item.
Hierarchies are default drill paths between item that you define in Discoverer Administrator. There are two types of Hierarchy in Discoverer Administration Edition:
  1. Item Hierarchies
  2. Date Hierarchies
Summaries & Summary Folders:
A summary improves query performance in Discoverer Plus or Discoverer Viewer by using pre-aggregated data created through Discoverer Administration Edition.
A Summary Folder is how Discoverer represents the underlying structure of a summary table or MV. Each Summary Folder has one or more Items (i.e. columns from a summary table or MV).
ASM:
Automated Summary Management – It delivers fast performing queries while greatly reducing the amount of time spent on administration. ASM analyzes your tables, uses query statistics (when available) and default values (the summary policy) to determine how summaries are created for you. ASM is able to automatically create and maintain the best set of summaries based on this combination.

Oracle Business Intelligence 10g Release 2, a key component of Oracle Application Server 10g Release 2, is an integrated business intelligence solution supporting intuitive ad hoc query, reporting, analysis, and web publishing. Discoverer 10.1.2 is tightly integrated with Oracle E-Business Suite Release 12.  Release 12 users can use Discoverer to analyze data from selected business areas in Financials, Operations, and Human Resources etc.
The following are the Discoverer 10g Installation steps for Oracle R12 environment.

1] Install Oracle Business Intelligence Tools 10g (10.1.2.0.2) using below link

First right click on the zip file (as_windows_x86_bi_tools_101202). Extract all to a directory on your PC. Click on the Extracted folder which has the same name (as_windows_x86_bi_tools_101202). Click on the 10g set up icon and follow only the default settings. This installation creates a home “BIToolsHome_1” (If Default location is selected during install).

2] Apply the latest certified Discoverer Plus and Viewer Patches

To upgrade to Oracle Discoverer 10.1.2.2 – Apply the patch: 4960210
To upgrade to Oracle Discoverer 10.1.2.3 – Apply the patch: 5983622
Follow the installation instructions provided in the patch README to install the patch on your Discoverer 10g Server and to check supported operating systems.

3] Copy Database Connection file

Discoverer needs access to the Database Connection (dbc) file for the database you wish to connect to. A dbc file is a text file which stores all the information required to connect to a particular database.
First identify the Oracle Home for Discoverer. For example: If you could find dis51usr.exe under the directory D:oracleBIToolsHome_1bin. Then the Oracle Home is D:oracleBIToolsHome_1
Create a folder named “secure” in the ORACLE_HOME directory (i.e. D:oracleBIToolsHome_1Secure).
Then copy the dbc file from the $FND_SECURE directory of the E-Business Suite Release 12 instance you are setting up Discoverer with to the Discoverer 10.1.2 “ORACLE_HOMEsecure” directory you just created.
Save the dbc file in lowercase.

4] Update tnsnames.ora file

On your standalone Oracle Business Intelligence Server 10g Release 2 node, update the file ORACLE_HOME/network/admin/tnsnames.ora and include the tnsnames entry to connect to your Oracle E-Business Suite Release 12 database. Use the same entry as exists in the tnsnames.ora file on your Oracle E-Business Suite Release 12 application tier server node.

5] Set the Environment

Discoverer requires Windows Environment variables to dynamically retrieve the location of the .dbc file on the PC.
Open Windows Control Panel and double click on the System icon. Select the Environment tab and create two new System Variables.
FND_SECURE = ORACLE_HOMESecure
FND_TOP= ORACLE_HOME
Note: The Oracle Home is the one identified in step 3.
6] Restart the PC and you should be able to connect to Discoverer in an Oracle Applications mode.
Note: When you are connecting to Discoverer for the first time, then Goto Tools > Options. Check the proper EUL in the Connection Tab.
For More Detailed Information Please refer the below metalink note:
Using Discoverer 10.1.2 with Oracle E-Business Suite Release 12 [ID 373634.1]

This article is all about the fundamentals of sharing the objects in Oracle Forms , its benefits and the various ways to do it. It will describes the various methods for reusing objects – Property Classes, Copying and Subclassing Objects and Code, Object Groups, Object Libraries and  SmartClasses.
When you share and reuse objects and code, you increase productivity, decrease maintenance, increase modularity, and improve the performance of your applications. When you are developing applications, you should share and reuse objects and code wherever possible.
There are many advantages of sharing and reusing objects and code.
  • You can develop applications much more effectively and efficiently if you are not trying to “start over” each time you write a piece of code. By sharing and reusing frequently used objects and code, you can cut down development time and increase productivity.
  • You can decrease maintenance time by creating applications that use or call the same object or piece of code several times.
  • You can maintain standards by reusing objects and code.
To maximize reuse, the developer should apply the following guidelines in the order shown:
  • Accept default properties as much as possible
  • Use SmartClasses to describe an object
  • Use sets of visual attributes
 Now lets discuss the various methods of object sharing:
A) Property Class 
A property class is a named object that contains a list of properties and their settings. You can use property classes to increase productivity and improve network performance.

 Here are some of the uses of a property class:
  • It increases productivity by setting standard or frequently used values for common properties and associates them with several form builder objects.
  • It defines standard properties not just for one particular object but also for several at a time. This results in increased productivity, because it eliminates the time spent on setting identical properties for several objects.
  • It improves network performance by increasing the efficiency of message diffing.
 Note: Once an item is defined, the meta-data about the next item includes only those properties that differ from the previous item. This is referred to as message diffing.
Creating a Property Class
When you create a property class, you have all the properties from every Forms Builder object available. You choose the properties and their values to include in the property class. You can create a property class in two ways:
  • Using the Create button in the Object Navigator
  • Using the Create Property Class button
Steps to create a property class from the Object Navigator:
  1. Select the Property Class node.
  2. Select Create.
  3. Add the required properties and their values.
  4. Set the value for that property.
Steps to create a property class from the Property Palette
  1. Select the object in the Object Navigator.
  2. Select the properties to be copied into a property class in the Property Palette.
  3. Select the Property Class button.
  4. Locate the property class and change its name in the Object Navigator.
Inheriting from a Property Class
Once you create a property class and add properties, you can use the property class. To apply the properties from a property class to an object, use the Subclass Information property in the Property Palette.
What is an inherited property?
An inherited property is one that takes its value from the property class that you associated with the object. An inherited property is displayed with an arrow to the left of the property name.
What is a variant property?
variant property is one that has a modified value even though it is inherited from the property class associated with the object. You can override the setting of any inherited property to make that property variant. Variant properties are displayed with a red cross over an arrow.
Notes:
  • To convert an inherited property to a variant property, simply enter a new value over the inherited one.
  • To convert a variant property to an inherited property, click the Inherit icon in the Property Palette.
  • You can also use the Inherit icon to revert a changed property back to its default.
B) Copying and Subclassing Objects and Code
With subclassing you can make an exact copy, and then alter the properties of some objects if desired. If you change the parent class, the changes also apply to the properties of the subclassed object that you have not altered. However, any properties that you override remain overridden. This provides a powerful object inheritance model.
When you subclass a data block, you can:
  • Change the structure of the parent, automatically propagating the changes to the child
  • Add or change properties to the child to override the inheritance
You can copy or subclass objects:
  • Between modules, by dragging objects between the modules in the Object Navigator
  • Within a single module by selecting the object in the Object Navigator, pressing [Ctrl], and dragging it to create the new object
When you drag objects, a dialog box appears that asks whether you want to copy or subclass the object.
Copy or Subclass?
When you copy an object, a separate, unique version of that object is created in the target module. Any objects owned by the copied object also get copied. Changes made to a copied object in the source module do not affect the copied object in the target module.
With subclassing, you can make an exact copy, and then alter the properties of some objects. If you change the parent class, the changes also apply to the properties of the subclassed object that you have not altered.
When you subclass a data block you cannot:
  • Delete items from the child
  • Change the order of items in the child
  • Add items to the child unless you add them to the end
C) Object Groups
An object group is a logical container for a set of Forms Builder objects.
You need to define an object group when you want to package related objects for copying or subclassing in another module or if you want to bundle numerous objects into higher-level building blocks that you can use again in another application. You can package the various objects in an object group and copy the entire bundle in one operation.
Steps to create an object group
  1. Select the Object Group node in the Object Navigator.
  2. Select the Create icon.
  3. Rename the new object group that is displayed.
  4. Click the form module and expand all the nodes.
  5. Select all the objects of one type that you want to include in the object group.
  6. Drag the selected objects into the new object group entry.
Key notes about object groups
  • Including a block in an object group also includes its items, the item-level triggers, the block-level triggers and the relations. You cannot use any of these objects in an object group without the block.
  • It is not possible to include another object group.
  • Deleting an object from a module automatically deletes the object from the object group.
  • Deleting an object group from a module does not delete the objects it contains from the module.
D) Object Libraries
Object libraries are convenient containers of objects for reuse. They simplify reuse in complex environments, and they support corporate, project, and personal standards. An object library can contain simple objects, property classes, object groups, and program units, but they are protected against change in the library. Objects can be used as standards (classes) for other objects.
Why object libraries instead of object groups?
  • Object libraries are external to the form, so are easily shared among form modules.
  • Object libraries can contain individual items; for example, iconic buttons. The smallest unit accepted in an object group is a block.
  • Object libraries accept PL/SQL program units.
  • If you change an object in an object library, all forms that contain the subclassed object reflect the change.
Object libraries appear in the Navigator if they are open. You can create, open, and close object libraries like other modules. Forms Builder automatically opens all object libraries that were open when you last closed Forms Builder.
Note: You cannot modify objects inside the object library itself. To make changes, drag the object into a form, change it, and drag it back to the object library.
Steps to populate an Object Library
  1. Select Tools > Object Library to display the object library.
  2. Drag objects from the Object Navigator into the object library.
  3. You can edit the descriptive comment by clicking the Edit icon in the object library interface.
E) SmartClass
A SmartClass is a special member of an Object Library. It can be used to easily subclass existing objects in a form using the SmartClass option from the right mouse button popup menu.
To use Object Library members which are not SmartClasses, you have to use the Subclass Information dialog available in the Property Palette of the form object that you are modifying.
If you frequently use certain objects as standards, such as standard buttons, date items, and alerts, you can mark them as SmartClasses by selecting each object in the object library and choosing Edit > SmartClass. You can mark many different objects, spread across multiple object libraries, as SmartClasses.
To apply a SmartClass to a Forms object, perform the following steps:
1. Right-click an object in the Layout Editor or Navigator.
2. From the pop-up menu, select SmartClasses. The SmartClasses pop-up menu lists all the SmartClasses from all open object libraries that have the same type as the object, and, for items, also have the same item type; for example, push button, text item.
3. Select a class for the object; it then becomes the parent class of the object. You can see its details in the Subclass Information dialog box in the object’s Property Palette, just like any other subclassed object.