Oracle Forms Modernization Strategies
Upcoming SlideShare
Loading in...5
×
 

Oracle Forms Modernization Strategies

on

  • 7,235 views

 

Statistics

Views

Total Views
7,235
Views on SlideShare
6,986
Embed Views
249

Actions

Likes
3
Downloads
474
Comments
0

5 Embeds 249

http://blogs.oracle.com 237
url_unknown 5
http://www.slideshare.net 4
http://www.javaoracleblog.com 2
http://translate.googleusercontent.com 1

Accessibility

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Oracle Forms Modernization Strategies Oracle Forms Modernization Strategies Presentation Transcript

  • <Insert Picture Here>Modernization strategies for Oracle Forms-based applicationsDmitry NefedkinOracle ISV Migration Center FMW ConsultantDmitry.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 Oracles 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/imcContacts:Ruxandra Radulescu, ISV Migration Center Manager EE&CISruxandra.radulescu@oracle.com
  • Agenda• Review Oracle Forms strategy <Insert Picture Here>• 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 triggerDemo: 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-EventDemo: http://bit.ly/Forms11gJavaScript Forms Client Forms Procedure Server calls
  • Lifetime Support Policy for Fusion Middleware• http://bit.ly/OFMLifetime
  • Should we license Weblogic whenupgrading 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 MigratingOur business has changedconsiderably and Forms no longer meets our requirements Our Forms application is reaching its natural end-of-life Our business requires I LOVE what Fusion us to be adopting could do for our leading edge, modern business! technologies
  • Possible Reasons for NOT Migrating We are heavily invested in Forms and it is still meeting the If it ain’t broke requirements of our don’t fix it! businessWe are taking a much more measured Our end users are approach to completely happy with embracing new the “heads down” data development and entry approach of Forms technologies
  • Possible Wrong Reasons forConsidering Migration We upgraded from Oracle are telling us we Forms 6i to 10g and we need to get off of Forms noticed performance and write everything in issues. We’ll rewrite in Java/ADF/ApexJava because that will be faster Forms has been desupported, right? If we rewrite our Forms in Java we’llend up saving $$$$ in development costs!
  • Some of the differences you have to overcome… Oracle Forms Fusion/Web Applications Impact? • Different style of UI but you are still working with “widgets”• Java applet UI • HTML/JavaScript • HTML works on page POST • X,Y layout versus layout containers• PL/SQL scripting • Java (but still PL/SQL in • Objects v. Procedural is different but basic language the database) statements are similar (if, then else) • Generally you don’t want dedicated• Stateful dedicated • Stateless pooled processes per user connections connections • ADF BC gives you simplicity of stateful but performance of stateless • Big advantage on resuse when separate• No separation of UI • Separate UI and data and data elements elements • Can’t/shouldn’t be writing business logic internals from UI code (and visa versa) • Fixed means you don’t have to understand• Proprietary and fixed • Standard and open the internals framework (override and augment) • Open means you are not limited by the vendor’s implementation
  • Things Even Look Different! From This…
  • …To These
  • You Should Not Ignore These Differences Grant Ronald, Oracle Writing in the ODTUG Journal“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
  • <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
  • Oracle ADF 11g Architecture Desktop Browser/ Mobile Devices Swing Office JSP JSF ADF Faces View Struts JSF/ADFc Controller ADFm (JSR 227) Model Java EJB BAM BPEL Web Services ADF BC BI XML Business Services Portlet Toplink JCR JMX Data Services Relational Data XML Data Legacy Data Packaged Apps
  • Technologies of Choice for 4GLDevelopers Rich Client Web / Wireless ADF Swing JSP ADF Faces RC View Struts JSF Controller ADF Model Model (JSR 227) ADF Java Web Business EJB/ Business Portlets Services Toplink Classes Services Components Data Source Relational Data XML Data Legacy Data Packaged Apps
  • <Insert Picture Here>Development approachwith 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 ADF1. Define/Model DB Layer• Design and generate• Import• Reconcile• Browse• Create/Modify on line
  • Development Approach with JDeveloper and ADF2. Build Data Objects• Reverse Engineered from DB • Wizard • UML Model• New Object Model • Class model • Mapping
  • Development Approach with JDeveloper and ADF3. 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 ADF4. Build Application Logic/Flow• UI Logic and Business Logic • Declarative • Java Code• Application Flow • Page Flow Modeler
  • <Insert Picture Here> DemonstrationDevelopment Approach with JDeveloper andADF
  • <Insert Picture Here>Comparing Forms and ADF - architecture
  • Forms as a Framework PL/SQL Java UI Renderer engine Block Record Manager SQL Interface
  • Forms Mapping to ADF Java UI Renderer Web, Wireless Rich ClientsLogic Clients UI Block UI Definition Controller Navigation Logic ModelLogic Block Data DefinitionData Record Manager SQL Interface Business Services
  • Forms Mapping to ADF Java UI Renderer Web, Wireless Rich ClientsLogic Clients UI Block UI Definition Controller Navigation Logic ModelLogic Block Data DefinitionData Record Manager SQL Interface Business Services
  • Forms Mapping to ADF Java UI Renderer Web, Wireless Rich ClientsLogic Clients UI Block UI Definition Controller Navigation Logic ModelLogic Block Data DefinitionData Record Manager SQL Interface Business Services
  • <Insert Picture Here>Comparing Forms and ADF – features
  • Comparing Forms and ADFThere 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 ADFBut 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 ADFdeclaratively
  • 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 public boolean validateThatSNamesDontEarnOver4000() { if (getSal().intValue() > 4000 && getEname().toUpperCase().startsWith("S")) { return false; } return true; }• Method returns boolean true if valid, and false if invalid
  • Record-Level Validation in ADFAssigning 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 Object protected 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 ADFSearch 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 DevelopmentTime Estimation
  • Customer Story – Micros Phased Approach Opera 4.x + (Web2.0 / SOA)User Interface Opera 3.x (WebForms)Business Logic Opera 2.x (Forms)Data Access
  • Key Design Principles and Patterns • Leveraged Forms to ADF Components:User Interface Faces, Taskflows, Data Visualization • BI Answers/Dashboard Drill down to transactions • Phase 1Business Logic create Façade to expose existing logic as services • Phase 2 refactor logic from PL/SQL to JEE over time • Data Model re-used for Pillar DeploymentData Access • Create “Service Domain” schemas • Allow for separation of concerns in upgrades: Pricing, Reservation, Fulfillment, CRM, etc.
  • 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 CenterIf 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
  • QuestionsDmitry NefedkinOracle ISV Migration Center FMW ConsultantDmitry.Nefedkin@oracle.comISV Migration Center blog: http://blogs.oracle.com/imc