Download - Mia Urman @ miaurman [email protected]
Mia Urman@miaurman
Strategies to Move Forward with Oracle Forms
What Now? What Next?
Who am IMia UrmanOracle ACE, CEO, AuraPlayer
• Oracle Development Geek for 14 years. • 7 years at Oracle as a senior support analyst and local
product manager of Forms and ADF. • CEO and Founder of AuraPlayer - Addressing Oracle
Forms modernization challenges encountered at blue chip customers. Including: ADF Integration, Forms to Mobile, Cloud and SOA.
• Board member of ODTUG, Leader of the ilOUG Oracle Developer Group and presenter of Oracle tools at international conferences OOW, Kscope, UKOUG …
CLEAN UP
UPGRADE
MODERNIZE
INTEGRATE
INNOVATE!
Our Game Plan: Leverage your EXISTING investment
NOW – Forms Today>HUGE Forms investment>Trained developer pool>Mission critical, complex systems>Best development tool for OLTP
Systems - Desktop>Low maintenance, stable system
for over 10 years>Mostly undocumented systems>VERY fast productive development
Whats Next…
Then Next ….
“Oracle Forms remains a viable and valuable technology asset for mainstream IT strategies, but has limited scope in next-generation”Gartner: Modernization and Migration Strategies for Oracle Forms Nov. 2011http://www.gartner.com/technology/reprints.do?id=1-198LN9P&ct=120208&st=sb
“Oracle has no plan to discontinue support of Oracle Forms.” “…continue to leverage their existing investments for many years while offering a path to incrementally move to Java EE, at their own pace.”Oracle Application Development Tools SOD , March 2012http://www.oracle.com/technetwork/issue-archive/2010/toolssod-3-129969.pdf
State of the Union
CLEAN UP
UPGRADE
MODERNIZE
INTEGRATE
INNOVATE!
Game Plan: Leverage your EXISTING investment
Clean UpDon’t Migrate/Upgrade What’s Not in Use• 10 Year old system – Are any modules
obsolete?• Review usage of the system
• What forms are now obsolete?• What reports are not run?• Do we will use PLL / OLBs?
• Remove dead code - PITSS• Delete multiple copies of same sources• Merge forms that perform similar tasks
CLEAN UP
UPGRADE
MODERNIZE
INTEGRATE
INNOVATE!
Game Plan: Leverage your EXISTING investment
Why Upgrade Your Forms?• Ensure support (C/S de-supported
2004/10g Dec. 2011)• Certification – New browsers, O/S, Java
versions• New features - SOA, REUI, JavaScript• Strategic Middleware - Runs on
WebLogic • Upgrade is Seamless from 10g to 11g• Platform for integration
Basic ArchitectureForms 11g
WebLogic High Availability Topology
WLS Oracle DB
Oracle HTTPServer
Load Balancer
Internet
Desktop
Porafrm1,2,3 Porafrm1,2,3 Poralnx
Forms Servlet
Forms Services Architecture
JRE
Applicationlogic layer
Data manager/PL/SQL engine
User interface layer
Forms Listener Servlet
Forms Runtime
Client tier Database tierMiddle tier:
WebLogic managed server
UI rendered to client
FMX containingapp code
Net Services
Forms Client
DB
Oracle Forms 9i/10g
IAS
Forms 11gWeblogic
Server
Forms 3.0
Oracle Forms 4.0 – 6i
Client Server
Upgrade RoadMap
Suggested Work Plan• Backup ALL related files !!• Pilot Upgrade of application (50-100 forms)• Check forms for C/S or OS Specific features• Get an estimate of the work, time, cost• Clean up environment – unused, dead code• Modernize Look and Feel of the application• Freeze C/S - all new developments should be web • Do full upgrade in modules / Phases• Testing should be with each module!• Do Production Pilot (Phased rollout)
CLEAN UP
UPGRADE
MODERNIZE
INTEGRATE
INNOVATE!
Game Plan: Leverage your EXISTING investment
Forms Look and Feel Modernization• Toolbar and navigation
• Look and Feel Project• Color / Font / Size• Prompts / Titles• Images • Frames
• OLB, templates for visual standards
Look and Feel (LAF) Project• Dynamic LAF UI of Forms runtime.• Read from a CSS file then applied to the Forms
elements at runtime.• Have a more «HTML» look
Components• Set of Java Beans/PJCs
(laf_xxx.jar)• PL/SQL library (laf.pll) • External CSS file
Yes - Java in Forms!Java Beans
– Java Bean Area - layout object on canvas– Use custom trigger to get and set properties
PJC – Portable Java Component– Change default behavior/properties of objects
Java Classes – Run webservices– Run Java code in forms triggers– Java importer – PLSQL java wrapper
JavaScript– Interact with objects in the browser page - Maps
Java Beans & PJCs
Java ImporterImporting Java Classes into Forms
Webservices Call External Services From Forms
package CurrencyConverter /* currconv3.mypackage.CurrConv3Stub */ IS function new return ora_java.jobject; function getrate( obj ora_java.jobject, a0 varchar2, a1 varchar2) return ora_java.jobject;end;
> Run external Webservices from within Oracle Forms triggers>Create a Web Service
proxy in Jdeveloper >Call the WS client from the Forms
application using the Java Importer
Javascript IntegrationTwo way client Side communication
JavaScript Two Way JavaScript Communication > HTML page uses raiseEvent JavaScript method on
applet object to pass event with payload to the form
› document.forms_applet.raiseEvent(event_name, payload);>Trigger: WHEN-CUSTOM-JAVASCRIPT-EVENT
› Variables: system.javascript_event_value , name
> Form executes JavaScript in the browser › web.javascript_eval_expr_function › web.javascript_eval_expr
> JavaScript event handling can be disabled in the forms configuration files
Javascript Integration> Communicate between forms and browser
page objects>web.javascript_eval_expr>web.javascript_eval_function – With return value
> JavaScript calls from Applet page (Forms object in the DOM ) into the form
>document.forms_applet.raiseEvent(event_name, payload);
>Two new forms system variables: > system.javascript_event_value (payload) > system.javascript_event_name (event_name)
>Oracle Forms fires new trigger called:WHEN-CUSTOM-JAVASCRIPT-EVENT.
> enableJavascriptEvent in formsweb.cfg to enable or disable JavaScript integration
> FORMS_ALLOW_JAVASCRIPT_EVENTS in default.env to override
Using Events in Forms
Advanced QueuesHighly Available Asynchronous Communication >Messages are pushed to forms from DB msg queue
› New event object in forms builder attached to queue› WHEN-EVENT-RAISED trigger
>Code that should be initiated when a message is received in the subscribed queue
>Use DBMS_AQ package from within forms triggers› DBMS_AQ.ENQUEUE( queue, enqopt, msgprop,
payload, enq_msgid);
Steps Required to Use Database Events:
> Database> Create a queue table> Create a queue> Start the queue> Enqueue a message
> Forms Builder> Create an event object> Subscribe event object to the queue> Code necessary notification
> Forms Server> Run the form and register the subscription> Invoke the When-Event-Raised trigger upon
event notification
CLEAN UP
UPGRADE
MODERNIZE
INTEGRATE
INNOVATE!
Game Plan: Leverage your EXISTING investment
Hybrid Options• Living Side By Side
Forms running alongside new technologies
• Visual IntegrationCreate a common UI – Forms & ADF/APEX/Java
• Process / Service Integration
Run common business logic DB/Events
• InnovationRun Forms business process from new environments -AuraPlayer
Forms & External Apps Living In Harmony
Form System External System
Security / Management
Web.show_document
Common Bus Logic
AQ Messages
web.javascript_eval_expr
What is Visual Integration?Portal \ Unified Desktop \ DashboardsConcept• Integrating Oracle Forms and Other
Technologies Into a single user experience
• One point of access - SSO• Customized based on users
business needs
Implementation• iFrames• Javascipt• guiMode – Remove menus
Process / Service IntegrationShare Forms Business Logic – SOA / BPMConcept• Reuse the business logic locked inside your Forms –
Separate GUI from business logicImplementation• Decoupling – Remove and Centralize bus logic to DB • Events – Use AQ events for messaging
CLEAN UP
UPGRADE
MODERNIZE
INTEGRATE
INNOVATE!
Game Plan: Leverage your EXISTING investment
BlockMode
CharacterMode
Client Server Web SOA ??
Evolving With Oracle Forms
AuraPlayer
What is AuraPlayerLeverage existing Oracle Forms systems
by … modernizing them to work in new
environments like Mobile, Cloud and SAAS
Web Desktop Mobile Office
Database Web Services Legacy Systems Applications Unlimited
Oracle Development Today Web Services Cloud
The Oracle Forms Modernization Challenge
Preserve Oracle Forms investments while …
– Enabling Forms business processes as WebServices in the cloud.
– Launching new ADF Mobile applications on Forms business logic
– Integrating with Oracle’s next generation development technologies – ADF, ADF Mobile, Webcenter Suite
– Running Forms silently from SOA / BPM systems– Creating collaborative applications – Dashboards,
Portals
… Avoiding risky and costly migration/re-development
Oracle11g DB
Desktop
DMZExternal Network
FW
Mobile
Webservices
Any UI
Solution ArchitectureInternal Network
Don’t run Forms on mobile Run your BUSINESS on the mobile
<iPad Demo from OOW>Customer Story
AuraPlayer Same Forms Business Logic Multiple UIs
ADF Mobile
Innovation By Migration
Things to Consider • This is a PROJECT. No silver bullet • Need a business reason to redevelop • Need thorough understanding of the Forms application• No tool can re-write your business logic• Need deep knowledge of the new technologies• UI implications – HTML vs Applet• Investigate 3rd party tools for migration assistance
Benefits of Migration• No Oracle Forms maintenance/licenses• Fully portable system• No applet, full HTML client• Larger developer pool
“Forms isn’t dead it just smells funny”
Francois Degrellewww.oracleformsinfo.com
Moving Forward Considerations For Modernization Projects • Asses Your Requirements
• What systems do we need to integrate with? UI requirements?
• What platforms do we need to deploy to?• Understand Your Existing System
• Where does the business logic sit today?• What functionality is duplicated in other systems?• Do we have documentation? Developer resources?
• Define Timeline and Budget• Decide on Implementation Method
• Integrate, Migrate, 3rd party solution
Summary• Clean up Forms environment – unused, dead
code• Upgrade to Latest version – Forms 11gR2• Modernize Look and Feel - Incorporate Java
elements• Chose right tool for the job• Refactor code to the DB • Systems on common infrastructure Weblogic –
SSO• Slowly evolve teams and systems• Start thinking about system INNOVATION – ADF
Mobile• Use AuraPlayer to move systems to the next
generation platforms / environments without migration
Questions?
Mia Urman (Me ) [email protected]@miaurmanOracle Forms HomepageADF Mobile on OTNForms Community Blogwww.oracleformsinfo.comAuraPlayerwww.AuraPlayer.com PJC Master sitehttp://forms.pjc.bean.over-blog.com/Forms Look and Feel Projecthttp://fdtool.free.fr/LAF/doc/Oracle_Forms_Look_and_Feel_project.htmPITSSwww.pitss.com
More Information
Demos • Demo: JavaScript in oracle Forms• Demo: Oracle Look and Feel Project• Demo: <iPad Demo from OOA>• Demo:
Oracle Forms running from ADF
Training MaterialsJavaScript InformationDemo- Integrating Oracle Forms 11g with JavaScripthttp://st-curriculum.oracle.com/obe/forms/11g/jsinteg/formsjsinteg/setup.htmDocumentation - Oracle Forms and JavaScript Integrationhttp://docs.oracle.com/cd/E15523_01/web.1111/e10240/javascript.htm
AQ InformationDemo - Integrating Advanced Queuing in Oracle Forms 11g http://st-curriculum.oracle.com/obe/forms/11g/formschataq/formschataq.htm
Documentation: Working with Server Eventshttp://docs.oracle.com/cd/E12839_01/web.1111/e10240/server_events.htm#CHDIAJDH
WebServices InformationDemo - Calling a Web service from Oracle Forms 11ghttp://www.oracle.com/technetwork/developer-tools/forms/webservices-forms-11g-094111.html
Please fill out your session evaluation
We thank you for your feedback!