Strategies to Move Forward with Oracle Forms
What Now? What Next?
Mia Urman @miaurman
[email protected]
Who am I Mia Urman Oracle 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 …
Our Game Plan: Leverage your EXISTING investment CLEAN UP UPGRADE
MODERNIZE INTEGRATE INNOVATE!
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
Then Next ….
State of the Union
“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 2012 http://www.oracle.com/technetwork/issue-archive/2010/toolssod-3-129969.pdf
“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. 2011 http://www.gartner.com/technology/reprints.do?id=1198LN9P&ct=120208&st=sb
Game Plan: Leverage your EXISTING investment CLEAN UP UPGRADE
MODERNIZE INTEGRATE INNOVATE!
Clean Up Don’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
Game Plan: Leverage your EXISTING investment CLEAN UP UPGRADE
MODERNIZE INTEGRATE INNOVATE!
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 Architecture Forms 11g
WebLogic High Availability Topology Porafrm1,2,3
Porafrm1,2,3
Poralnx
Desktop
Internet
Oracle HTTP Server
Load Balancer
WLS
Oracle DB
Forms Services Architecture Client tier
Middle tier: WebLogic managed server
Database tier
Forms Listener Servlet
Forms Servlet Forms Runtime User interface layer UI rendered to client
JRE Forms Client
Application logic layer Data manager/ PL/SQL engine
FMX containing app code
Net Services
DB
Upgrade RoadMap
Forms 3.0
Forms 11g Weblogic Server
Oracle Forms 4.0 – 6i Client Server
Oracle Forms 9i/10g IAS
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)
Game Plan: Leverage your EXISTING investment CLEAN UP UPGRADE
MODERNIZE INTEGRATE INNOVATE!
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 Importer Importing Java Classes into Forms
Webservices Call External Services From Forms > Run external Webservices from within Oracle Forms triggers >Create a Web Service in Jdeveloper
proxy
>Call the WS client from the Forms application using the Java Importer 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;
Javascript Integration Two 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 Queues Highly 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
Game Plan: Leverage your EXISTING investment CLEAN UP UPGRADE
MODERNIZE INTEGRATE INNOVATE!
Hybrid Options • Living Side By Side Forms running alongside new technologies
• Visual Integration
Create a common UI – Forms & ADF/APEX/Java
• Process / Service Integration Run common business logic DB/Events
• Innovation Run Forms business process from new environments -
Forms & External Apps Living In Harmony Form System
Web.show_doc ument
AQ Messages
External System
web.javascript_ev al_expr
Common Bus Logic
Security / Management
What is Visual Integration? Portal \ Unified Desktop \ Dashboards Concept • 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 Integration Share Forms Business Logic – SOA / BPM Concept •
Reuse the business logic locked inside your Forms – Separate GUI from business logic
Implementation • Decoupling – Remove and Centralize bus logic to DB • Events – Use AQ events for messaging
Game Plan: Leverage your EXISTING investment CLEAN UP UPGRADE
MODERNIZE INTEGRATE INNOVATE!
Evolving With Oracle Forms AuraPlayer
Block Mode
Character Client Mode Server
Web
SOA
??
What is AuraPlayer Leverage existing Oracle Forms systems by … modernizing them to work in new environments like Mobile, Cloud and SAAS
Oracle Development Today Web Services
Database
Cloud
Web
Web Services
Desktop
Legacy Systems
Mobile
Office
Applications Unlimited
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
Solution Architecture DMZ External Network
Internal Network
Mobile
Oracle 11g DB
Webservices
FW
Desktop
Any UI
Don’t run Forms on mobile Run your BUSINESS on the mobile
Customer Story
AuraPlayer Same Forms Business Logic Multiple UIs ADF Mobile
Innovation By Migration Benefits of Migration • • • •
No Oracle Forms maintenance/licenses Fully portable system No applet, full HTML client Larger developer pool
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
“Forms isn’t dead it just smells funny” Francois Degrelle www.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?
More Information Mia Urman (Me )
[email protected] @miaurman
Oracle Forms Homepage ADF Mobile on OTN Forms Community Blog www.oracleformsinfo.com
AuraPlayer www.AuraPlayer.com PJC Master site http://forms.pjc.bean.over-blog.com/
Forms Look and Feel Project http://fdtool.free.fr/LAF/doc/Oracle_Forms_Look_and_Feel_project.htm
PITSS www.pitss.com
Demos • • • •
Demo: JavaScript in oracle Forms Demo: Oracle Look and Feel Project Demo: Demo: Oracle Forms running from ADF
Training Materials JavaScript Information Demo- Integrating Oracle Forms 11g with JavaScript http://st-curriculum.oracle.com/obe/forms/11g/jsinteg/formsjsinteg/setup.htm
Documentation - Oracle Forms and JavaScript Integration http://docs.oracle.com/cd/E15523_01/web.1111/e10240/javascript.htm
AQ Information Demo - Integrating Advanced Queuing in Oracle Forms 11g http://st-curriculum.oracle.com/obe/forms/11g/formschataq/formschataq.htm
Documentation: Working with Server Events http://docs.oracle.com/cd/E12839_01/web.1111/e10240/server_events.htm#CHDIAJDH
WebServices Information Demo - Calling a Web service from Oracle Forms 11g http://www.oracle.com/technetwork/developer-tools/forms/webservices-forms-11g-094111.html
We thank you for your feedback!