oracle forms modernization strategies
Post on 19-May-2015
8.538 Views
Preview:
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
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
top related