Oracle Forms Modernization Strategies

Post on 19-May-2015

8,531 views 6 download

Tags:

transcript

<Insert Picture Here>

Modernization strategies for Oracle Forms-based applications

Dmitry Nefedkin

Oracle ISV Migration Center FMW Consultant

Dmitry.Nefedkin@oracle.com

ISV Migration Center Team

• Who we Are ISV Migration Center Team is a team of senior technical consultants

based in Eastern and Central Europe and represents Oracle's technical investment

for partners.

• Mission Statement Enable partners to rapidly and successfully adopt and

implement Oracle latest technology

• What do we Offer Whether you are selling Oracle technology, building business

solutions, including hosted Internet solutions or providing system integration and

implementation services for Oracle technology, IMC Team can help you succeed.

• How can we assist We offer a wide range of free services for partners such as

one2one assistance, webinars, seminars and hands-on workshops.

For more information, visit the IMC website.

Our blog: http://blogs.oracle.com/imc

Contacts:

Ruxandra Radulescu, ISV Migration Center Manager EE&CIS

ruxandra.radulescu@oracle.com

<Insert Picture Here>

Agenda

• Review Oracle Forms strategy

• Modernizing Oracle Forms

• Considering Migrating?

• How Oracle ADF can help

• Comparing Forms and Oracle ADF

• Forms -> ADF migration tools

• Customer stories

<Insert Picture Here>

Oracle Forms strategy review

Oracle Forms Strategy

• “…There are no plans to desupport Oracle Forms and Reports…” – Oracle Tools Statement of Direction • http://www.oracle.com/technology/products/forms/pdf/10g/Too

lsSOD.pdf

• Clear statement of direction• Upgrade

• Ensure support, certification, new features, platform for integration

• Integrate

• Use non-Forms technologies when/as the business dictates

• Provide “Forms-like” experience for building with Java technologies

Some Modernization options

• Upgrade and use the latest features

• Integrate with external service/events

• Call to external events

• External events calling into Forms

• UI modernization

The World Outside of Oracle Forms

• Synchronous integration with external services to provide non-

native-to-Forms features

• Enterprise features

• Email, SMS, email verification

• B2B integration

• Credit check, delivery progress, stock lookup, price comparison

• Oracle Apps/Siebel/PeopleSoft/SAP

• .Net applications

• Asynchronous processes calling into Forms

• Alerts, asynchronous data changes, long running WS calls

• Client side integration using Java Beans and JavaScript

• Mashup Forms and Ajax applications

• Extend and modernize the Forms UI

Integration with External Services –

Synchronous Services Calls

• Identify an external web service

• Generate client from WSDL

• Wrap client using Forms Java Importer

• Call from Forms

Integration with External Services –

Asynchronous Event Calls

• Forms registers interest in an asynchronous event

(Event name, Type, Scope)

• New When-Event-Raised trigger

Demo: http://bit.ly/Forms11gExtEventsDemo

Integration with Client Side JavaScript

• Call JavaScript from Forms

Web.Javascript_eval_expr, Web.Javascript_eval_function

• JavaScript can raise Forms events

• When-Custom-JavaScript-Event

Demo: http://bit.ly/Forms11gJavaScript

Forms

Server

Forms

Client

Procedure

calls

Lifetime Support Policy for Fusion

Middleware

• http://bit.ly/OFMLifetime

Should we license Weblogic when

upgrading to Forms 11g?

Weblogic Server Basic license

• The license for each edition of Oracle Internet

Application Server and for Oracle Forms and Reports

enables the right to full use of the WebLogic Server

Basic license

• This license has limitations to several Weblogic

Server features, see details - http://bit.ly/WLSBasic

• To verify that WebLogic Server is being used in

accordance with the WebLogic Server Basic license

you can run the script. See My Oracle Support

article: Doc ID: 885587.1

<Insert Picture Here>

What about migration?

Possible Reasons for Migrating

Our Forms application is

reaching its natural end-of-life

Our business has changed considerably and Forms no

longer meets our requirements

I LOVE what Fusion could do for our

business!

Our business requires us to be adopting

leading edge, modern technologies

Possible Reasons for NOT Migrating

If it ain’t broke don’t fix it!

We are heavily invested in Forms and it is still

meeting the requirements of our

business

We are taking a much more measured

approach to embracing new

development and technologies

Our end users are completely happy with the “heads down” data

entry approach of Forms

Possible Wrong Reasons for

Considering Migration

Forms has been desupported,

right?

We upgraded from Forms 6i to 10g and we

noticed performance issues. We’ll rewrite in

Java because that will be faster

If we rewrite our Forms in Java we’ll

end up saving $$$$ in development costs!

Oracle are telling us we need to get off of Forms and write everything in

Java/ADF/Apex

Some of the differences you have to

overcome…

Oracle Forms Fusion/Web Applications Impact?

• Java applet UI • HTML/JavaScript

• Different style of UI but you are still working

with “widgets”

• HTML works on page POST

• X,Y layout versus layout containers

• PL/SQL scripting

language

• Java (but still PL/SQL in

the database)

• Objects v. Procedural is different but basic

statements are similar (if, then else)

• Stateful dedicated

connections

• Stateless pooled

connections

• Generally you don’t want dedicated

processes per user

• ADF BC gives you simplicity of stateful but

performance of stateless

• No separation of UI

and data elements

• Separate UI and data

elements

• Big advantage on resuse when separate

• Can’t/shouldn’t be writing business logic

internals from UI code (and visa versa)

• Proprietary and fixed

framework

• Standard and open

(override and augment)

• Fixed means you don’t have to understand

the internals

• Open means you are not limited by the

vendor’s implementation

Things Even Look Different! From This…

…To These

“Any attempt to [re-write] a Forms application to

[Java, Apex …] without taking into consideration

the difference in architecture is in effect an effort at

re-implementing the 20-year-old Forms runtime”

http://www.oracle.com/technetwork/developer-

tools/forms/documentation/formsmigration-133693.pdf

Grant Ronald, Oracle

Writing in the ODTUG Journal

You Should Not Ignore These Differences

<Insert Picture Here>

How Oracle ADF can help

Reasons to choose Oracle ADF

• Abstracts the complexity the technologies

• Visual and declarative development

• Take care of the “plumbing”

• Metadata driven – not code

• Technology chosen for Oracle’s future business applications

• Proven in deployment and performance

• Proved in developer productivity

• Implements JEE design patterns and best practices

• Standards based

• Promotes service oriented development

• Reusable business services

• Composite application development

Struts

Relational Data XML Data Legacy Data

Business Services

Data Services

Model

Controller

JSP View

Desktop Browser/ Mobile Devices

ADFm (JSR 227)

Packaged Apps

Oracle ADF 11g Architecture

JSF ADF Faces

JSF/ADFc

Java EJB BAM BPEL ADF BC BI XML

OfficeSwing

Web Services

Portlet Toplink JMXJCR

Technologies of Choice for 4GL

Developers

ADF Model

Struts JSF

ADF Faces RCJSPADF Swing View

Controller

Model(JSR 227)

Business Services

Rich Client Web / Wireless

Relational Data XML Data Legacy Data

Data Source

EJB/Toplink

ADF

Business

Components

Java

Classes

Web

ServicesPortlets

Packaged Apps

<Insert Picture Here>

Development approach

with JDeveloper and ADF

Development Approach with Forms

• Define and model database layer

• Build data objects based on data model (Blocks)

• Bind UI to data objects and refine UI

• Build logic (Flow, UI logic & Business Logic)

Development Approach with

JDeveloper and ADF

1. Define/Model DB Layer

• Design and

generate

• Import

• Reconcile

• Browse

• Create/Modify

on line

Development Approach with

JDeveloper and ADF

2. Build Data Objects

• Reverse Engineered from DB

• Wizard

• UML Model

• New Object Model

• Class model

• Mapping

Development Approach with

JDeveloper and ADF

3. Bind UI to Data Objects

and refine UI

• WYSIWYG

• For all type of views

• Data Binding

• Drag and Drop

• Declarative

Binding

• #{bindings.ManagerId} ~~ :empBlk.managerid

Development Approach with

JDeveloper and ADF

4. Build Application Logic/Flow

• UI Logic and Business Logic

• Declarative

• Java Code

• Application Flow

• Page Flow Modeler

<Insert Picture Here>

Demonstration

Development Approach with JDeveloper and

ADF

<Insert Picture Here>

Comparing Forms and ADF -

architecture

Forms as a Framework

SQL Interface

Java UI Renderer

PL/S

QL

en

gin

e

Record Manager

Block

Forms Mapping to ADF

Business Services

Web, Wireless

ClientsRich Clients

Model

Controller

SQL Interface

Data

Logic Record Manager

Block Data Definition

Navigation Logic

UI

Logic Block UI Definition

Java UI Renderer

Forms Mapping to ADF

Web, Wireless

ClientsRich Clients

Controller

SQL Interface

Data

Logic Record Manager

Block Data Definition

Navigation Logic

UI

Logic Block UI Definition

Java UI Renderer

Business Services

Model

Forms Mapping to ADF

Business Services

Web, Wireless

ClientsRich Clients

Model

Controller

SQL Interface

Data

Logic Record Manager

Block Data Definition

Navigation Logic

UI

Logic Block UI Definition

Java UI Renderer

<Insert Picture Here>

Comparing Forms and ADF –

features

Comparing Forms and ADF

There are many new capabilities

• Data/UI Split (Multiple Views)

• Page Flow

• Unit testing

• One click Deployment

• Coding features

• Tuning, auditing, debugging

• Source Control integration

• ….

Comparing Forms and ADF

But also many similar features

• Model

• Master/Detail Coordination

• SQL Based

• Format Mask, Default Values

• Declarative validation

• Triggers (Mapping to Java Methods)

• View

• Visual environment (WYSIWYG, Drag & Drop,…)

• Global Look and Feel (CSS, Skins)

• Query By Example

• Controller

• Event Model (Events associated to UI objects)

Master/Detail Coordination in ADF

• Out-of-the-box

• Defaulted to the

DB constraints

• No coding

required

SQL-based ADF Business Components

• Full Access to SQL

• Similar to

• Block Query

• LOV Query

• Validation Query

• Tuning options

“Item” Properties

• Prompt

• Updateable

• Required

• Sequence

• Non Database

• Not associated to

a DB column

Setting a Format Mask in Oracle Forms

Setting a Format Mask in ADF

Dynamic Default Values in Oracle Forms

Dynamic Default Values in ADF

declaratively

Dynamic Default Values in ADFor in java code

Range Validation in Oracle Forms

Range Validation in ADF

Record-Level Validation in Oracle Forms

Record-Level Validation in ADF Create Validation Method In Java Class

• Method returns boolean true if valid, and false if

invalid

public boolean validateThatSNamesDontEarnOver4000() {if (getSal().intValue() > 4000 &&

getEname().toUpperCase().startsWith("S")) {return false;

}return true;

}

Record-Level Validation in ADF Assigning validation method

Transactional Triggers in Oracle Forms

• PRE-INSERT, ON-INSERT, POST-INSERT

• PRE-UPDATE, ON-UPDATE, POST-UPDATE

• PRE-DELETE, ON-DELETE, POST-DELETE

doDML() Method In ADF BC

// Overrides default doDML() Behavior of Entity Objectprotected void doDML(int operation, TransactionEvent e) {

if (operation == DML_INSERT) {/* pre-insert */super.doDML(operation, e); /* on-insert *//* post-insert */

}if (operation == DML_UPDATE) {

/* pre-update */super.doDML(operation, e); /* on-update *//* post-update */

}// do the same for updates}

Global Look and Feel in ADF

• Similar to

Visual Attributes in Forms

• Pre-Defined CSS

• Centralized file

• Easy to customize

• Template and

Skin mechanism

Query By Example in ADF

Search Form Table Filtering

Event Model

<double click>

<Insert Picture Here>

Forms -> ADF migration tools

Tools that can help you to migrate

from Forms to ADF

• Oracle JHeadstart 11g for ADF

(http://www.jheadstart.com )

• OraFormsFaces

(http://www.oraformsfaces.com/)

What is JHeadstart

• JDeveloper extension for template-based automation

of ADF development tasks

• Development Toolkit on top of ADF

• Builds on ADF Runtime architecture

• Fully integrates with ADF Design Time

• Takes declarative development to the next level

• Generates complete ADF applications

• Like the Designer Forms Generator generates Forms apps,

JHeadstart generates ADF apps

• Enables agile development

• Implements ADF Best Practices

JHeadstart Application Generator (JAG)

• Generates ADF Faces JSPX Pages

• Generates Faces-Config XML files

• Generates PageDefinition XML files (data bindings)

• Does NOT generate any Java code!

• JAG is driven by

• XML-based Application Definition file, created and edited

through GUI Wizard (JDeveloper add-in)

• Velocity Generator Templates

• Generated output is 100% customizable

JHeadstart Forms2ADF Generator

• Converts Forms .fmb files to ADF Business Components

• ADF BC Entity Objects created for used tables

• ADF BC View Objects created for blocks and record group queries

• ADF BC Application Module created for each form

• Converts Forms .fmb files to JHeadstart Application

Definition

• Groups created for each block

• LOV Groups created for each LOV / Record Group

• Group Items created for each item in a block

• (Stacked) region containers and regions created based on item

placement on (tabbed) canvasses and within framed graphics

• Domains created based on forms item allowable values

• PL/SQL logic migrated as “documentation” nodes

Oracle Forms Screen

JHeadstart Generated ADF/JSF Page

What is OraFormsFaces

• Third party product supplied by Commit Consulting

• Allows reuse of existing Forms as full featured JSF

components

• Two-way communication between forms and ADF

Faces web pages

• Allows for incremental migration to ADF/SOA world

• Can be downloaded as the packaged Jdeveloper

extension

OraFormsFaces in action

<Insert Picture Here>

Customer stories

Why Forms Customers Might Consider

Oracle ADF

• Technical advantages• No browser plug in required

• Multi channel deployment

• Richer UI component set

• Higher level of flexibility and reuse

• Standards based

• Easier integration

• WebCenter, SOA, FMW, Business apps

• New markets and opportunities• Mobile applications

• Self service applications

• Adoption of a service based architecture

Why Forms Customers Might Consider

Oracle ADF

• Business advantages

• You need to show you are using leading edge technologies

• Based on standards

• Built in customization

• Same application deployed for different customers

• Strategic technology choice for Oracle’s future business

application: Fusion

• Easiest transition for Forms developers moving to Java

• Reuse skills and experience

• Modern application look and feel…

Customer Story - Mednet

• Mednet International – Information Technology for

Health Insurance

• MedNeXt product is based on Forms6i (around 700

forms).

• The issues:

• The application is Client/Server based

• Client require rich JEE Web systems

• Integration with other apps is not loosely coupled

(point-to-point Web services implemented in

PL/SQL)

Customer Story - Mednet

• Oracle Fusion Front-end implementation with

Jdeveloper 11g, Oracle Weblogic Server and Oracle

ADF 11g

• Decided to our ADF Business Components because it

is used by Oracle itself for their next generation apps

• Product is developed based on JEE standards

• Modernized product can be integrated with other

systems using Oracle SOA Suite

• New developers can become productive within 4

weeks

Project Reference – MedNeXt

(as of October 2009)

• Project Manager

• Technical Manager

• Technical Consultant

• 16 Oracle ADF Developers

• 200 Forms to develop

• 27 Logical Modules developed already

• 2600 ADF Business Components elements

developed already

• 300 Java classes developed already

• 240 Web Pages developed already

MedNeXt - Incident form

Sample Development

Time Estimation

Customer Story – MicrosPhased Approach

Opera 2.x

(Forms)

Opera 3.x

(WebForms)

Use

r In

terf

ace

Bu

sin

ess L

og

ic

Opera 4.x +

(Web2.0 / SOA)

Da

ta A

cce

ss

• Data Model re-used for Pillar Deployment

• Create “Service Domain” schemas

• Allow for separation of concerns in upgrades:

Pricing, Reservation, Fulfillment, CRM, etc.

Da

ta A

cce

ss

Bu

sin

ess L

og

icU

se

r In

terf

ace

Key Design Principles and Patterns

• Leveraged Forms to ADF Components:

Faces, Taskflows, Data Visualization

• BI Answers/Dashboard

Drill down to transactions

• Phase 1

create Façade to expose existing logic as services

• Phase 2

refactor logic from PL/SQL to JEE over time

User Experience - Before

User Experience - After

Summary

• No plans to desupport Oracle Forms

• Let the business dictate when you want to explore

new technologies

• Oracle’s strategy for their Fusion Application is based

on JDeveloper and Oracle ADF

• Proven technologies

• Proven productivity

Helping Forms Developers

• ISV Migration Center

If you wish to participate in a free hands-on workshop on ADF 11g,

please contact Ruxandra Radulescu (ruxandra.radulescu@oracle.com)

or your local Oracle Partner Manager.

• Oracle Technology Network (otn.oracle.com)

• Oracle Documentation (docs.oracle.com)

• Oracle University & Partner Academy courses

• Books: http://bit.ly/ADF11gBooks

Questions

Dmitry Nefedkin

Oracle ISV Migration Center FMW Consultant

Dmitry.Nefedkin@oracle.com

ISV Migration Center blog: http://blogs.oracle.com/imc