Top Banner
Page 1 of Applications Framework presentation ©Jeannie Dobney 2006 The Applications Framework By Jeannie Dobney With 11i, Oracle introduced the Applications Framework. This paper describes what the Applications Framework is and what it means for Applications users. An example of personalisation using the Application Framework is included. Introduction For many end users of Oracle Applications, the first time we became aware of “the framework” is when our home page changes, from this: To this: and the change was not always welcome! 1 So what is the Applications Framework (also known as the OA Framework and OAF) and what else does it offer? That is the topic of this paper. (Note that this presentation was originally intended for a primarily functional audience, however as it now includes some
24

OA Framework JD Wp

Oct 13, 2014

Download

Documents

smslca
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: OA Framework JD Wp

Page 1 of Applications Framework presentation ©Jeannie Dobney 2006

The Applications Framework

By Jeannie Dobney

With 11i, Oracle introduced the Applications Framework. This paper describes what the Applications Framework is and what it means for Applications users. An example of personalisation using the Application Framework is included.

Introduction

For many end users of Oracle Applications, the first time we became aware of “the framework” is when our home page changes, from this:

To this:

and the change was not always welcome! 1

So what is the Applications Framework (also known as the OA Framework and OAF) and what else does it offer? That is the topic of this paper. (Note that this presentation was originally intended for a primarily functional audience, however as it now includes some

Page 2: OA Framework JD Wp

Page 2 of Applications Framework presentation ©Jeannie Dobney 2006

quite technical material an Appendix from an earlier paper includes background material on topics like Java. There is also a Glossary and Acronym decoder.

The Applications Framework Defined

We know that Oracle’s “core” Applications are currently written in Oracle Forms. Examples are General Ledger, Human Resources, Order Management etc. This has become known as the Professional Interface.

In addition Oracle offer a range of self-service or web Applications, in what is often called the HTML Interface. An example of this type of Application would be iProcurement.

The Applications Framework is the standardised technical development and deployment architecture introduced by Oracle for their HTML based Applications. It has been at least partially available since about 11.5.7 but with 11.5.10 Oracle have now migrated all of their web Applications to it.

In an Open World 2005 Applications Technology presentation, Lisa Parekh, Oracle’s Vice President of Technology Integration summed up the Applications Framework up as the technology foundation for HTML applications in the E-Business Suite.2 Her presentation made clear that various web Applications have previously been developed using individual JSPs or were based on PL/SQL page generation, but that now all the HTML interface Applications would move to the OA Framework.

By using their own toolset to create a standardised development and deployment platform for Oracle Applications, Oracle has also been able to offer technology improvements which include:

• Improved Application performance (due to features like partial page rendering and optimized network traffic),

• Built in protection against known HTML hacking strategies. Because this security protection is implicit in OA Framework, web Applications created with it do not need to be redeveloped if new security vulnerabilities emerge, i.e. a framework enhancement would address such issues.

• Durable Personalisations (allowing users a range of preferences) • Extensibility (supporting custom development using Oracle’s own toolset).

Both Personalisation and custom development will be described later in this paper. However before we move away from Oracle’s strategy for Applications technology, it is worth also mentioning that in the same Open World paper quoted above, Lisa Parekh stated that as “Oracle’s technology for HTML continues to advance, HTML is becoming an increasingly effective interface for professional applications”. In other words, Forms technology will be gradually replaced by OA Framework technology.

OA Framework Technology

The Oracle Application Framework uses 100% Java & XML. There is no getting away from Java in the Oracle Applications technology stack so a simplified introduction to it is included as an Appendix to this paper. Refer to page 19.

Oracle’s JDeveloper tool with an Oracle Applications extension is used for development for the Oracle Applications Framework. This Integrated Development Environment (IDE) brings the programming benefits of a 4GL-like model to creating HTML applications. JDeveloper offers a wealth of productivity tools such as the Unified Modelling Language (UML) modeller, code coach, integrated debugger, local testing environment and documentation generator.

Page 3: OA Framework JD Wp

Page 3 of Applications Framework presentation ©Jeannie Dobney 2006

The following screen shot displays the JDeveloper interface:

The OA Framework architecture is based on the industry-standard J2EE Model-View-Controller (MVC) design pattern. The MVC architecture is a component-based design pattern with clean interfaces between the Model, View, and Controller:

• The Model encapsulates underlying data and business logic of the application; this is implemented using Oracle Business Components for Java (BC4J)

• The View formats and presents data from a model to the user using UI XML (UIX). UIX uses XML to describe the components and hierarchy that make up an application page. UIX also provides runtime capabilities to translate that metadata into HTML output so that it can be shown on a Browser or a mobile device. The metadata used to describe the UI is loaded into a database repository, called Meta Data Services (MDS), at deployment time and optionally at design time as well.

• The Controller responds to user actions and directs application flow; it is a pure Java class implementation. 3

Consistent with Object-Oriented principles each of these are clearly distinct: the View and Controller code act as client classes, and the Model code acts as a server class - which could support any client (not just OAF)

So it also possible to think of the OA Framework as the programmatic ‘glue’ which integrates the technologies listed above.

Page 4: OA Framework JD Wp

Page 4 of Applications Framework presentation ©Jeannie Dobney 2006

The following diagram illustrates this architecture:

4 The next section describes how this works in more detail.

A typical JSP application involves the following components: a browser for client access, a database for enterprise data and a web application server ("middle tier") where the application objects live.

The browser communicates with the middle tier using HTTP (Hyper Text Transfer Protocol) which involves sending a request message to which the middle tier replies with a response message.

A JSP is a file with some HTML and Java code that executes top to bottom. At runtime, it is compiled into a Java class which is actually a servlet. A servlet is a Java-based web application server extension program that implements a standard API.

A servlet session is a mechanism for maintaining state between HTTP requests during a period of continuous interaction between a browser and a web application. A session may be initiated at any time by the application and terminated by the application, by the user closing the browser, or by a period of user inactivity. A session usually corresponds to an application login/logout cycle

A JavaBean (or "bean" for short) is simply a reusable component that implements specific design patterns to make it easy for programmers and development tools to discover the object's properties and behaviour.

Any objects in the middle tier that communicate with the database use a JDBC (Java Database Connectivity) driver.

Page 5: OA Framework JD Wp

Page 5 of Applications Framework presentation ©Jeannie Dobney 2006

At the browser level, an OA Framework page -like any other web page - renders as standard HTML.

In the middle tier, however, this page is actually implemented in memory as a hierarchy of Java beans – very much like a classical Java client UI. Each UI "widget " that renders in the page (buttons, a table, the tabs, the application branding image and so on) actually corresponds to one or more web beans in the hierarchy.

When the browser issues a request for a new page, the OA Framework reads the page's declarative metadata definition to create the web bean hierarchy. For each bean with an associated UI controller, the OA Framework calls code that you write to initialize the page. When page processing completes, the OA Framework hands the web bean hierarchy to the UIX framework so it can generate and send HTML to the browser.

When the browser issues a form submit (if, for example, the user selects a search region's "Go" button), the OA Framework recreates the web bean hierarchy if necessary (the hierarchy is cached between requests, and typically needs to be recreated only in exceptional cases that we'll discuss in detail later), and then calls any event handling code that you've written for the page beans. When page processing completes, the page HTML is generated again and sent to the browser.

OA Framework Development

The take-away message for most functional users from this section will be that the Applications Framework enables efficient development of custom web pages using standards which allow them to fit in with “look and feel” of Oracle Applications. This is the Extensibility benefit identified in the introduction.

As mentioned above, JDeveloper (shown in this screen shot) is used to create or modify OA Framework pages. The development steps are:5

• Set Up a Project in JDeveloper The project files (*.jpx) will include the XML definitions

• Create or modify the Model:

Page 6: OA Framework JD Wp

Page 6 of Applications Framework presentation ©Jeannie Dobney 2006

• Application Module A BC4J application module is essentially a container that manages and provides access to "related" BC4J model objects.

• Entity Object BC4J entity objects encapsulate the data sources and the business rules (validations etc) associated with database records. Those include inserting, updating and deleting database records.

• View Object In the simplest terms, a BC4J view object encapsulates a database query. After a query is executed, a view object provides iteration over and access to its result set. The result set contains one or more view rows, where a view row comprised of individual attributes corresponds to a row returned by a database query.

• Create or modify the View & Controller

• Query Bean BC4J view object encapsulates a database query most likely through a simple SQL statement. All view objects that you create subclass the oracle.apps.fnd.framework.server.OAViewObjectImpl class.

• Results Table After a query is executed, a view object provides iteration over and access to its result set. The result set contains one or more view rows, where a view row comprised of individual attributes corresponds to a row returned by a database query.

• Item Properties you use JDeveloper to define pages comprised of regions and items.

Items are simple widgets like buttons, fields, images and so on which contain no children. Regions are container objects that can hold items and other regions. Examples of regions include headers, tables, and special layout components. Each region and item that you define has a style property that tells the OA Framework what web bean object to instantiate for it at runtime (and this in turn dictates what HTML is generated for the bean). For example, if you define a region whose style property is "table," the OA Framework will instantiate an oracle.apps.fnd.framework.webui.beans.table.OATableBean. All pages must have a single top-level region (often called the "root region") whose style is pageLayout. This is instantiated as an oracle.apps.fnd.framework.webui.beans.layout.OAPageLayoutBean. The sequence in which regions and items appear in JDeveloper page tree (and the corresponding XML file) tells the Framework where to add these objects to the runtime bean hierarchy.

Page 7: OA Framework JD Wp

Page 7 of Applications Framework presentation ©Jeannie Dobney 2006

6

For those seeking further information, there is a list of references at the end of this paper. Alternatively Oracle Education provide a 5 day Instructor-Led Training Course 11i Extend Oracle Applications: Building OA Framework Applications (US$ 3,750)

Sidebar: UIX

This section adds some additional detail about UIX technology for those who are interested.

UIX (User Interface XML) is a set of technologies that constitute a framework for building web applications. The main focus of UIX is the user presentation layer of an application, with additional functionality for managing events and for managing the state of the application flow. UIX is designed to create applications with page-based navigation, such as an online human resources application, rather than full-featured applications requiring advanced interaction, such as an integrated development environment (IDE).

An application can interact with UIX in predefined places called decision points, where a decision is made by the operator or a certain action routine is automatically triggered. Execution of an action terminates in a new decision point. The application's structure is provided to UIX in configuration files, which can be ASCII files, databases, or resource files.

The main focus of UIX is the user presentation layer of an application, with additional functionality for managing events and for managing the state of the application flow. UIX is designed to create applications with page-based navigation, such as an online human

Page 8: OA Framework JD Wp

Page 8 of Applications Framework presentation ©Jeannie Dobney 2006

resources application, rather than full-featured applications requiring advanced interaction, such as an integrated development environment (IDE).

UIX includes Java class libraries, APIs, XML languages, and other technologies for developing different aspects of web-based applications. You can use some or all of these technologies, depending on what aspects of a web application you are developing. It is worthwhile to familiarize yourself with all the UIX technologies to make sure you take full advantage of what they provide.7

OA Personalisation

One of the biggest benefits for functional users of the Applications Framework, is the ability it provides to personalise web Application pages. This section describes how that can be done. Firstly, what is a Personalisation?

Oracle defines personalisation as declaratively tailoring the user interface look-and-feel, layout or visibility of page content to suite a business need or a user preference, for example changing the order in which data is displayed or the colour scheme of the User Interface. (If the concept of declarative changes is new, it will probably make more sense as we proceed. The simple explanation is that such changes are not done by changing code). Personalisations are not affected by upgrades.

By comparison configuration uses pre-built features to match Application functionality to the business and deployment practices of a particular customer. For example setting profile options or entering a chart of accounts.

Extensibility means extending the functionality of an application, beyond what can be done through personalisation. Examples are overriding existing business logic and adding new functional flows.8

Oracle state that using personalisations can enhance user productivity. They also emphasise that there are advantages is using configuration and personalisation rather than customisation due to lower costs especially in terms of total cost of ownership i.e. because modifications add to maintenance and upgrade costs.9

Personalisation Levels

Analogous to profile options which can be set by either the system administrator or the user for themselves, there are effectively 2 kinds of personalisations:

• System administrators can create personalisations that will overwrite any other personalisations applicable to:

- A specific function, - A localisation, - A site, - A responsibility, or - A user.

• The end user can create personalisations applicable only to their own system use and pertaining to their own specific needs.

Page 9: OA Framework JD Wp

Page 9 of Applications Framework presentation ©Jeannie Dobney 2006

Here is a comparative list of what can be done at each level10:

Administrator Level Personalisation User Level Personalisation • Number of rows displayed in a table • Product branding (image) • Region header icon • Hiding or showing items in a region • Layout order of regions and items within the

boundaries of the parent region • Including or excluding descriptive flexfield segments • Rearranging data sorting • Filtering (restrict querying) tabular data • Item labels and region headers • Required state of non-mandatory items • Updating allowed state for updateable items • Totals for table columns, when applicable • Item cascading style sheet (CSS) - personalising the

look and feel of an item • Default value for an item • Tips (in-line instructions and usage help) associated

with items • Adding new items to an existing region. Typically,

part of an extensibility project; new items are limited to a few styles

• Controller class to override controller logic, if needed; typically part of an extensibility project

• Number of rows displayed in a table • Hiding or showing regions and items

(results table columns are a typical example)

• Changing the layout order of regions and items within the boundaries of the parent region (order of results table columns are a typical example)

• Up to three sorting levels for tabulated data

• Filtering (restrict querying) tabular data

• Item labels and region headers • Totals for table columns, when

applicable

Each of these options is described in the Oracle Application Framework Personalisation Guide, however we will look only at some examples to provide a sense of what can be done.

Note that the Administrator level personalisation can also use the Responsibility Functional Administrator. OA Framework Profile Options There are two key system profile options that will affect the behaviour of the OA Personalisation Framework:

• Personalise Self-Service Defn (FND_CUSTOM_OA_DEFINTION) If this profile option is set to Yes, then when you log on as the Administrator, a global Personalise Page button appears on each OA Framework-based application page. When you select the global Personalise Page button on any page, the personalisation user interface prompts you for the scope and administrative level at which you wish to create your personalisations before displaying the OA Personalisation Framework UI. The default is No.

• Disable Self-Service Personal (FND_DISABLE_OA_CUSTOMIZATIONS) This is a system profile option specifically created for use by Oracle Support. You can set this profile option to Yes at the site or application level. If this system profile option is set to Yes, any personalisations you make, regardless of the level at which you make the personalisations, will not be applied. Only the original base definition of each OA Framework-based application page is ever displayed. Use this profile option to help Oracle support staff determine whether a problem arises from applied personalisations or from the base application. The default is No.

• FND: Personalisation Region Link Enabled (FND_PERSONALIZATION_REGION_LINK_ENABLED)

Page 10: OA Framework JD Wp

Page 10 of Applications Framework presentation ©Jeannie Dobney 2006

When you set this profile option to Yes, Personalise Region links appear above each region in a page. Each link takes the user first to the Choose Personalisation Context page, then to the Page Hierarchy Personalisation page, with focus on the region from which you selected the Personalise Region link. The default is null (not set). Note that enabling the Personalise Region links allows administrators to also personalise regions that are dynamically added to the page from custom code in the controller.

• Xliff Export Root Path (FND_XLIFF_EXPORT_ROOT_PATH) Use this profile option to specify the root path for extracting translated personalisations. The default is null (no root path is set).

• Xliff Import Root Path (FND_XLIFF_IMPORT_ROOT_PATH) Use this profile option to set the root path for uploading translated personalisations. The default is null (no root path is set).

• FND: Diagnostics This profile option can be especially helpful to Developers, because when it is set to Yes, it renders an About this Page link on each page. This link provides valuable information for Administrators. The following (older) image highlights this information11:

Page 11: OA Framework JD Wp

Page 11 of Applications Framework presentation ©Jeannie Dobney 2006

Personalisation Example Here’s an example of using the personalisation feature:

First set profile options

FND: Personalisation Region Link Enabled = Yes

Now personalisation links are available:

Personalisation Objective: Simplify Column Heading and remove optional column Click link to Personalise the Table:

Select item and click on Personalise / Edit icon

Page 12: OA Framework JD Wp

Page 12 of Applications Framework presentation ©Jeannie Dobney 2006

Option to choose the level of personalisation, i.e. Context

Change Column heading text:

Page 13: OA Framework JD Wp

Page 13 of Applications Framework presentation ©Jeannie Dobney 2006

Remove (optional) Column from display

Review personalised page:

Page 14: OA Framework JD Wp

Page 14 of Applications Framework presentation ©Jeannie Dobney 2006

Second Example: Make Descriptive Flexfield visible.

First define DFF:

In this example use the Functional Administrator Responsibility to personalise the page.

Switch to responsibility and locate page to be personalised:

Page 15: OA Framework JD Wp

Page 15 of Applications Framework presentation ©Jeannie Dobney 2006

All items will be displayed:

Scan down or search to locate the item to be personalised

Click personalise icon

Page 16: OA Framework JD Wp

Page 16 of Applications Framework presentation ©Jeannie Dobney 2006

Make field visible (i.e. Rendered = True)

And use the Segment List field to choose which segments to display using the syntax: Segment Name1 | Segment Name 2 (where the name of the segment is inserted between the pipe characters)

CSS, BLAF and CLAF…

This section describes the use of so called skins to customise the graphical user interface. This is also now possible via personalisation of the Application Framework.

Cascading Style Sheets

Cascading Style Sheets (CSS) is a stylesheet language used to describe the presentation of a document written in a markup language. Its most common application is to style web pages written in HTML and XHTML, but the language can be applied to any kind of XML document, including SVG and XUL. The CSS specifications are maintained by the World Wide Web Consortium (W3C). CSS has various levels and profiles. Each level of CSS builds upon the last, typically adding new features and are typically denoted as CSS1, CSS2, and CSS3.12

In Oracle Web Application terms a style sheet document (.xss extension) lists the styles for the “Look-and-Feel” (LAF) of the Application. Those styles control the colour and font of HTML components. Oracle have published the standards they use for the web Applications under the acronym BLAF (i.e. Browser Look and Feel). The BLAF User Interface Guidelines are a set of standards designed to help designers, developers and product teams building HTML applications to achieve a consistent look and feel, a consistent interaction model, and ultimately a consistent user experience across the entire suite of Oracle eBusiness products.13

Page 17: OA Framework JD Wp

Page 17 of Applications Framework presentation ©Jeannie Dobney 2006

The use of Style Sheets allows the user to customise the appearance of an application to suit the different tastes of different users. These custom graphical appearances are known as skins and software which supports skins is referred to as being skinnable.

The Personalisation Manual states that OA Framework will provide a set of skins that extend the base and simple LAFs from UIX. These skins may be applied at the Site, Responsibility, Application, Organization or User level by setting the profile option Oracle Applications Look and Feel (APPS_LOOK_AND_FEEL). The skins that OA Framework will provide are apparently still under development. The Customizing Look-and-Feel (CLAF) feature provides a self-service user interface that allows you to create a new Look-and-Feel, as well as update an existing Look-and-Feel. This task requires quite a detailed technical understanding of both Style Sheets and UIX but is available and supported. Further information can be found in the Oracle Application Framework Personalisation Guide.

Framework Utilities

Oracle also provide some very useful utilities to assist with the completing the implementation process for personalisations.14

You can list personalisations by executing the following command on the Application Server:

jdr_utils.listcustomizations(‘< DOCUMENT NAME >’);

Where DOCUMENT NAME refers to a web page name like the following:

/oracle/apps/per/selfservice/personalinformation/webui/OverviewPG

You can export those personalisations execute the following command:

adjava -mx128m -nojit oracle.jrad.tools.xml.exporter.XMLExporter /oracle/apps/per/customizations/responsibility/50648/selfservice/personalinformation/webui/ OverviewPG –username <uname> -password <pw> -dbconnection "(description=(address_list=(ADDRESS=(PROTOCOL=TCP)(HOST=<HOSTNAME>) (PORT=<PORT #>)))(CONNECT_DATA=(SID=<name>)))" -rootdir /tmp

The exported file will be placed on the root directory as specified in the previous statement.

You can import the personalisations into another instance by executing the following command:

adjava -mx128m -nojit oracle.jrad.tools.xml.importer.XMLImporter E:\tmp\oracle\apps\per\customizations\responsibility\50648\selfservice\personalinformation\webui\OverviewPG.XML -username <uname> -password <pw> -dbconnection "(description=(address_list=(ADDRESS=(PROTOCOL=TCP)(HOST=<HOSTNAME>)(PORT=<PORT #>)))(CONNECT_DATA=(SID=<name>)))" -rootdir /tmp

To revert to the original status of a personalised page, you can delete the customisation.

Ensure that the word “customization” appears in the name of the document you are deleting.

Ensure that a backup is taken before the page is deleted.

Execute the following command: jdr_utils.deletedocument('oracle\apps\per\customizations\responsibility\50648\selfservice\personalinformation\webui\OverviewPG');

In 11i10 there are also new profile options, which allows a valid path for importing and exporting personalisations to be set (at Site level). See above on page 10 for details.

Page 18: OA Framework JD Wp

Page 18 of Applications Framework presentation ©Jeannie Dobney 2006

Conclusion

The Applications Framework offers users some great advantages, not least of them being the opportunity to personalise rathe than modify the web Applications. The personalisation process is however non-trivial and should ideally be handled like any other system change i.e. by appropriately skilled personnel with documentation, testing and a controlled migration process. About the Author

Jeannie Dobney is an independent consultant specialising in Oracle Financials. She has over a decade’s experience with Oracle Application and can be contacted by email at [email protected]

Reference Material

Oracle Application Framework Personalisation Guide Release 11i (11.5.10) (Part Number B25439-01, available on the Applications Release 11.5.10 + Online Documentation CD); It describes how to personalise OA Framework-based Oracle E-Business Suite application pages.

Oracle Application Framework Developer's Guide Release 11i (11.5.10) (Metalink Note 269138.1) Explains how to build OA Framework-based applications including Extending OA Framework-based applications

Oracle Application Framework Development FAQ Release 11i (11.5.10) (Metalink Note 275878.1) Lists common questions and answers related to developing with the OA Framework.

Documentation Roadmap MetaLink Note #275880.1

Oracle Browser Look and Feel (BLAF) UI Guidelines, The most current version of this document is published in Metalink Note 275846.1.

Framework Release Notes for 11.5.10 (Metalink Note 275874.1).

OA Framework Discussion Forum on the Oracle Technology Network Starting with Release 11.5.10 of the OA Framework, OTN (http://otn.oracle.com) hosts a discussion forum for OA Framework Extensions and the OA Extension to Oracle9i JDeveloper. Navigate to OTN Forums under the E-Business Suite (http://forums.oracle.com/forums/index.jsp?cat=3). You can use the forum to post questions and exchange information with other customers on the OTN community working on extensions. The OA Framework Development team and Oracle Support monitor and participate in some of the discussion threads on this forum. Additionally, you may also consider participating in the OTN JDeveloper forum for usage questions concerning Oracle JDeveloper. (OTN = http://www.oracle.com/technology/index.html Select Forums ~ More from menu and then select OA Framework from the Forums home page)

Page 19: OA Framework JD Wp

Page 19 of Applications Framework presentation ©Jeannie Dobney 2006

OA Framework Javadoc Documents all core Oracle Application Framework packages and classes, including UIX and BC4J objects extended by the Framework.

Other excellent references:

Ahalya Shingireddy’s paper titled Personalisation Is Just For You which can be found in the OAUG conference Database

Don Driggs’s paper titled Using Personalisations to Give Your Self-Service Applications a Custom Look and Feel which can be found in the OAUG conference Database

OpenWorld Presentation by Sara Woodhull, Oracle Principal Product Analyst: Oracle Applications Framework (OAF) Overview & Architecture Oracle E-Business Suite 11i9. This presentation is now almost 2 years old but contains some very valuable introductory information.

Appendix: Java and XML Primer

Sun developed the Java language / programming system during the 1980’s but it really gained popularity in the 1990’s. Here are some reasons for its popularity:

• Java is platform independent: it will run on any Operating System.

It does this by means of something called a Java Virtual Machine (JVM), which is a piece of software that “translates” the generic Java code into something a specific Operating System can execute. This platform independence (or portability) reduces the cost of developing software because only the JVM has to be OS specific (rather than the entire software) and those savings hopefully flow on to users.

• Java will run inside a web-browser.

The Java programs which run inside web browsers are called Applets. An example is the Forms Applet which the core Oracle Applications currently use.

• Java is “free”

Strictly speaking Java is not Open Source15 software (because users are not licensed to change the source code), but the business effect is similar to Open Source. There are probably 2 major implications of the Open Source software movement: a general downward pressure on software prices and the reduction in dependence on certain vendors. (The other well-known and increasingly popular OpenSource product is the Linux operating system).

• Java is actually a whole programming system, not just a language

In addition to the Java language, Sun provide a number of programming frameworks applicable to different needs. For example if you are writing a Java application for a cell-phone or PDA, you would use the resources in the J2ME framework. The standard that applies for multi-tiered Internet deployable applications (like Oracle Apps) is J2EE i.e. the Enterprise Edition of Java 2

• Java is an Object Oriented (OO) language

By its structure, it encourages good programming practices and reusability of software components. The major business significance of Java is probably its contribution to the development of an almost de facto acceptance that software should be built in reusable components

Most of Oracle’s products now support Java. This includes the JDeveloper product, which is a sophisticated Integrated Development Environment (IDE) for J2EE developers.16

Here is a summary of some Java terminology before proceeding17, so that as these terms are used in context later in the paper they will mean a bit more:

A Java Class is a program unit or file containing Java code. (Object Oriented purists will probably want you to know that it is a lot more than that too, but this is a start…)

JAR Files are groups of Java Classes packages together into an archive format (like a self-extracting zip file).

Page 20: OA Framework JD Wp

Page 20 of Applications Framework presentation ©Jeannie Dobney 2006

An Applet is a Java program that is downloaded to a desktop client from an HTTP server, and run within a Java-enabled web browser on a PC. A JavaBean is reusable Java class which can be used to perform well–defined tasks, such as connecting to a database, maintaining client information, or rendering a screen page. Typically they focus on intra-process communication and are assembled to create Java applications. Java Servlets are programs that run within a Web-Server on the middle tier in a similar way to that in which an Applet runs within a browser on the desktop. Thus they provide a “pluggable” extension to a server that will enhance the server’s functionality. Java servlets are a key component of server–side Java development. Java Server Pages (JSPs) are an extension to the servlet functionality that enables a simple programmatic interface to Web pages. They were developed by Sun as an alternative to Microsoft's ASPs (Active Server Pages) . JSPs have dynamic scripting capability that works in tandem with HTML code, separating the page logic from the static elements. JSPs are HTML pages with special tags and allow for the embedding of Java servlet code within HTML pages. The Java code that is executed on the Web server or application server providing dynamic functionality to HTML pages. JSPs are actually compiled into servlets when first requested and run in the server's JVM.

HTML, XML and Web Applications

For computers to be able to exchange information, a “protocol” is required. The original development of the Internet represented attempts by researchers to exchange information between their computers. These attempts originally used keyboard driven methods including FTP and programs called gophers.

The World Wide Web was developed at CERN in Switzerland as a new form of communicating text and graphics across the Internet making use of the hypertext markup language (HTML) as a way to describe the attributes of the text and the placement of graphics, sounds, or even movie clips. A Web browser is a program running on a desktop client that views documents formatted in HTML. The simplicity and power of this has been one of the genuine revolutions in computing.

HTML works by using so-called “markups” which tell the browser how to display a Web page's words and images for the user. Each individual markup code is referred to as an element or tag. Some elements come in pairs that indicate when some display effect is to begin and when it is to end.

To illustrate this the following text can be created in Notepad and saved as "mypage.htm" and then viewed in a browser:

<html> <head> <title>Title of page</title> </head> <body> This is my first homepage. <b>This text is bold</b> </body> </html>18

Of themselves, HTML pages are “static” i.e. they can only display pre-defined text and images. To make web pages “dynamic” (i.e. allow them to respond to the user) and to add logic, web-developers use various other technologies. The Web itself is a great source of information on these topics.19

XML (eXtensible markup language) uses a similar tag type of approach to extend the concepts behind HTML to allow transmission of the syntax and structure of a document or data set between computer systems20. The tags are a kind of meta-data i.e. they describe the data itself in a similar way to which a table of contents describes a book – or more exactly, for those with some background knowledge, the way that the Oracle Data Dictionary describes the Oracle database.

XML is "extensible" because no tags are predefined. Elements and tags may be defined as needed to share data across various platforms, for example to and from Oracle databases across the web. Oracle now provide significant support for XML e.g. SQL functions for dealing with XML data and the JDeveloper product now uses XML generation to allow Java developers to build database applications almost as easily as Forms Developers do.

Page 21: OA Framework JD Wp

Page 21 of Applications Framework presentation ©Jeannie Dobney 2006

Acronyms and Glossary

API An API (Application Programming Interface) is a set of published ways for programmers to interact with a specific application. For example, the TCA (Trading Community Architecture) API is a set of PL/SQL programs which allow programmers to insert customer data into the Oracle database (as an alternative to the Customer Open Interface).

Applet A Java program that is downloaded to a desktop client from an HTTP server, and run within a Java-enabled web browser. (Currently used by Forms technology)

BC4J objects Business Components for Java, a J2EE application development framework that comes with JDeveloper. BC4J is an object-relational mapping tool that implements J2EE Design Patterns.

CSS (Cascading Style Sheets) CSS is a stylesheet language used to define colours, fonts and layouts for web-pages and other documents written in HTML and XML. It is designed to separate the document content (for example in HTML) from the document presentation (held in style sheet documents). CSS is built in levels each of which builds on the previous one and adds detail (hence cascading).

GUI (Graphical User Interface) An interface used with personal computers and workstations that allows the user to access fields and regions of the screen with a pointing device, typically a mouse.

HTML (Hypertext Markup Language) A simple language used to format documents, predominantly for viewing with a Web browser. Portions of text or images, called hypertext, can be associated with other documents.

HTTP (Hypertext Transfer Protocol) The TCP/IP-based network protocol used to transmit requests and documents between an HTTP server and a Web browser.

HTTPS The use of Secure Sockets Layer (SSL) as a sub-layer under the regular HTTP application layer.

HTTP listener A program on an HTTP server that accepts and processes incoming HTTP requests from Web browsers.

HTTP server An application server that runs an HTTP listener, and sends out Web pages in response to HTTP requests from remote browsers.

Instantiate The Dictionary definition of this term refers to the representation of an abstract by a concrete instance. In Object Oriented programming, it refers to creating an instance of a specific class of objects (for example a variable based on a data type). By analogy if dog is the object class, then my dog Spot is an instance of that class and instantiates the class. It may surprise some technical users that the term is not new, it was a key part of Plato's philosophy, which rested on a foundation of eternal Ideas, or “Forms” (no relation to Oracle Forms!). Java A computing language used to produce programs that can be downloaded and run on a desktop client using a Web browser. It is also used to produce platform-independent programs that run on a server, either interactively or when invoked through a request from a Web browser.

JAR (Java Archive) file A collection of Java classes compressed into a file for faster download to a desktop client.

Java class Components of a Java program that define objects and operations performed on objects. Java class also identifies an operating system file that contains a program or part of a program written in Java.

JavaBeans A reusable Java class which has specific naming conventions for its methods and variables. JavaBean components can be used to perform well–defined tasks, such as connecting to a database, maintaining client information, or rendering a screen page.

Javadoc Javadoc is a computer software tool from Sun Microsystems for generating documentation into HTML format from Java source code. Most IDEs will automatically generate Javadoc HTML. Developers use certain commenting styles and Javadoc tags when documenting source code. A Java block comment starting with /**

Page 22: OA Framework JD Wp

Page 22 of Applications Framework presentation ©Jeannie Dobney 2006

will begin a Javadoc comment block which will be included in the generated HTML. A Javadoc tag begins with an "@" for example @author John Doe

Javascript Javascript is a scripting language that adds significant power to HTML files without the need for server–based CGI programs. It is unrelated to the Java programming language and frameworks.

Java Servlets A small, ”pluggable” extension to a server that will enhance the server’s functionality. Java servlets are a key component of server–side Java development.

JDBC (Java Database Connectivity) A Java programming interface that enables Java programs to access the Oracle9i server.

JSP (Java Server Pages) An extension to the servlet functionality that enables a simple programmatic interface to Web pages. JSPs allow for the embedding of servlet code within HTML pages. JSPs are HTML pages with special tags and embedded Java code that is executed on the Web server or application server providing dynamic functionality to HTML pages. JSPs are actually compiled into servlets when first requested and run in the server's JVM.

JVM (Java Virtual Machine) An interpreter that translates a compiled Java program, called bytecode, to machine code. JVM makes Java portable, because each operating system’s JVM translates bytecode to instructions that the microprocessor can execute. A Java-enabled web browser has an internal JVM that allows it to execute applets or applications written in Java.

J2EE In addition to the Java language, Sun provide a number of programming frameworks applicable to different needs. For example if you are writing a Java application for a cell-phone or PDA, you would use the resources in the J2ME framework. The standard that applies for multi-tiered Internet deployable applications (like Oracle Apps) is J2EE i.e. the Enterprise Edition of Java 2 (ironically Java 2 is actually Java EE 5 but anyway…)

OA Used for example in the term OA Framework, the OA standards for Oracle Applications i.e. specifically related to the eBusiness Suite

Object-orientation Object-oriented programming (OOP) is a paradigm supported by the Java platform and many other programming languages. OOP was born at the end of the 1960s, in an attempt to manage the increasing complexity of hardware and software. By its structure, it encourages good programming practices and the reusability of software components. Object Oriented analysis also emphasises “abstraction”.

An object is a software bundle of related state and behaviour. For example not just the customer data object but a set of related "methods" (mini-programs) which allows you to do common actions to this object e.g. get_customer_data. The data structure and the methods are "encapsulated" and present a clean and unchanging "interface" to other programs i.e. you will always be able to issue a get_customer_data command regardless of the way the software internals change. A class is a blueprint or prototype from which specific objects are created or instantiated. Inheritance provides a mechanism for structuring software to minimise rework. So for example for a Zoo application developers would start by defining a generic class called animal with certain attributes (e.g. number of legs). These characteristics would then be inherited by every type of animal that sub-classes and / or extends it. (see also http://en.wikipedia.org/wiki/Object-oriented_programming)

Servlet A Java program executed on an HTTP server, rather than downloaded to a desktop client.

TCP/IP (Transmission Control Protocol / Internet Protocol) A widely used industry-standard networking protocol used for communication among computers.

UI User Interface, this is the way a human user interacts with a computer system. For example Oracle Applications currently use a graphical interface which supports the use of mouse clicks for the user to issue commands etc.

UML In software engineering, the Unified Modeling Language (UML) is a non-proprietary specification language for object modeling. UML is a general-purpose modeling language that includes a standardized graphical notation used to create an abstract model of a system, referred to as a UML model. 3 models are key elements:

Functional Model Showcases the functionality of the system from the user's Point of View. Includes Use case diagrams.

Object Model

Page 23: OA Framework JD Wp

Page 23 of Applications Framework presentation ©Jeannie Dobney 2006

Showcases the structure and substructure of the system using objects, attributes, operations, and associations. Includes Class Diagrams.

Dynamic Model Showcases the internal behaviour of the system. Includes Sequence Diagrams, Activity Diagrams and State Machine Diagrams.

(see also http://en.wikipedia.org/wiki/Unified_Modeling_Language)

Use Case A use case is a type of functional specification. It differs from traditional Functional Specification primarily in that it includes the interaction between external actors and the system under consideration to accomplish a business goal. Actors are parties outside the system that interact with the system; an actor can be a class of users, roles users can play, or other systems.

Web Browser A program running on a desktop client that views documents formatted in HTML and runs Java applets. A Web browser sends requests to a HTTP server using a special protocol (HTTP) to retrieve documents and Java applets.

XML XML (Extensible Markup Language) allows information and services to be encoded with meaningful structure and semantics that computers and humans can understand. XML is great for information exchange, and can easily be extended to include user-specified and industry-specified tags. (from http://www.orafaq.com/glossary/faqglosx.htm)

Page 24: OA Framework JD Wp

Page 24 of Applications Framework presentation ©Jeannie Dobney 2006

End Notes 1 The personal home page display is controlled by a profile option Self Service Personal Home Page mode and for a while it was possible to change the default value of Framework only to Personal Home Page (the latter value being the version we old hands mostly preferred). There have been repeated warnings that the Personal Home Page would eventually be disabled, however to date it appears to still be available for the die-hards… 2 From an Open World presentation by Lisa Parekh, E-Business Suite: Technology Updates and Roadmap, available from Oracle’s web-site 3 Refer to Open World presentation on the OA Framework, by Principal Product Analyst Sara Woodhull, available from Oracle’s web-site 4 Diagram is from An Introduction to the Oracle Applications Framework Release 11.5.10: An Oracle White Paper, available for download from the Oracle web-site 5 This section draws upon a presentation by Mark Sullivan OA Framework: An Overview, which can be downloaded from Oracle’s website 6 From Oracle Application Framework Developer’s Guide Release 11.5.10 7 These notes are from Oracle’s web-site http://download-east.oracle.com/docs/cd/B10501_01/appdev.920/a96621/adx26uix.htm 8 From Oracle Application Framework Personalisation Guide Release 11i, alternatively refer also to http://www.oracle.com/technology/products/applications/development_pesonalization/index.html 9 Refer to Oracle presentation Configuring and Personalising the E-Business Suite which can be downloaded from Oracle’s web-site. 10 The layout of this summary is from a paper by Daniel Benhur Personalisation and Extensibility Using Oracle Applications Framework, available the OAUG Conference database. The list of personalisable features is from the Oracle Application Framework Personalisation Guide 11 From an incredibly helpful presentation by Sara Woodhull Oracle Applications Framework (OAF) Overview & Architecture Oracle E-Business Suite 11i9, available from Oracle’s web-site 12 From http://en.wikipedia.org/wiki/Css 13 For further detail see User Interface guidelines for BLAF - Browser Look and Feel which can be found at www.oracle.com/technology/tech/blaf 14 This topic is covered more thoroughly in Ahalya Shingireddy’s excellent paper titled Personalisation Is Just For You which can be found in the OAUG conference Database. The content in this section relies largely on that paper. 15 For a definition of OpenSource see http://en.wikipedia.org/wiki/Open_source 16 You may also see the acronym ADF, meaning Application Development Framework. Both acronyms i.e. IDE and ADF attempt to convey the productivity-support which such an environment provides to programmers. Oracle Applications Framework Architecture also supports Java in a number of ways including: - BC4J (Business Components for Java), are used to create Java business components for representing business

logic. It also provides a mechanism for mapping relational tables to Java objects. It allows the separation of the application business logic from the UI.

- AOL/J provides the Oracle Applications Framework with underlying security and applications Java services. It provides the Oracle Applications Framework with its connection to the database and with application-specific functionality, such as flexfields and attachments.

17 For a readable introduction to Java see Steve Patient The Bluffer’s Guide to Java at http://www.webdevelopersjournal.com/articles/java_jargon.html 18 Example is from http://www.w3schools.com/html/html_intro.asp 19 Oracle Magazine is an excellent source of data on new developments in Oracle technology http://otn.oracle.com/oramag 20 For a good introduction to XML, refer to John King’s paper XML Survival Skills which can be downloaded from http://www.kingtraining.com