Real life forms to adf

42
Luc Bors, 26-mar-2013, OBUG Connect Antwerpen 10 lessons learned Real Life Forms to ADF

description

This was the presentation at OBUG Connect 2013 in Antwerp Belgium. 10 lessons learned in a Real Life ADF Project

Transcript of Real life forms to adf

  • 1. Luc Bors, 26-mar-2013, OBUG Connect Antwerpen10 lessons learnedReal Life Forms to ADF
  • 2. Who Am I Luc Bors Principal Consultant AMIS Nieuwegein Netherlands Friends of Oracle & Java 5 Oracle ACE(D) Oracle Partner
  • 3. Where Are You Now ? HUGE Forms investment Mission critical, complex systems Low maintenance, stable system for over 10 years Mostly undocumented systems VERY fast productive development Trained developer pool Looking to leverage the existing investment
  • 4. Where Do We Want to Go ?
  • 5. Some Modernization Projects
  • 6. Most Recent Project Ministry of Security and Justice Application >20 years old Decentralized architecture (19x) Approx. 2.000 users 1 million cases per year 10.000-15.000 letters per day
  • 7. Modernization Project Triggers Very old technical environment(end-of-life) Maintenance is expensive Staffing is difficult Architecture not flexible Need to be ready for the future
  • 8. Distributed Architecture 19 distributed implemenations 1 central implemenation Less Hardware Less Administrators Less Duplicate Data More Insight More Control
  • 9. Centralized system
  • 10. Forms Application Forms 4.5 / Reports 2.5 Character mode Terminal Emulation Enables Macros ! Desupport 31 December 2003 Runs since 1991
  • 11. Not Really Web 2.0
  • 12. Web 2.0 !
  • 13. Web 2.0 !
  • 14. IST - SOLL Character Mode Distributed Data Duplication 250 Modules 90 Reports 15 Monitors Application Web Technology Centralized Data Standardization < 100 Modules 50 Reports 24 Monitors Platform
  • 15. What did we Learn ?
  • 16. Lesson 1: The Right Size Think Big Start Small. Dont be Tempted. Use Small PoC !
  • 17. Lesson 1: The Right Size
  • 18. Lesson 1: The Right Size Application Architecture Taskflow with page fragment and perTaskflow 1 page with 1 static region All in one big workspace Or Taskflow with page fragment and perApplication 1 page with 1 dynamicregion Use separate workspaces
  • 19. Lesson 2 : Dont Copy Paste Migrate As-is ?? Dont try to copy forms functionality Know your ADF Faces Components Forms Built-ins are not available in ADFand PL/SQL is not Java. Your options: Whenever possible transfer to DB Whenever lucky Use a declarative or zero code ADF Alternative Otherwise Code Java Alternative
  • 20. Lesson 2 : Dont Copy Paste Forms code for: Buttons Canvasses Navigation ADF code for: None of the above
  • 21. Lesson 3 : Involve People Grumpy Old Men Talk with all People involved inthe project Let them know what you aredoing Let them decide what goes inand what not
  • 22. Lesson 3 : Involve People Include operational team Infrastructure (DTAP) : Ready on Time Dont underestimate WebLogic configuration SSO via MS-AD
  • 23. Lesson 4 : Hire Experts Training is not enough. Steep learning curve Dont mix in regular work Long Conscious Incompetencephase: motivational dip Hire Experts 012345Week1Week20Week30Week40Week52NextYearEvenLaterImaginary ADF LearningCurve
  • 24. Lesson 4 : Hire ExpertsThe cheapest ADF Consultant isthe one with the highest hourly rate
  • 25. Lesson 5: Planning & Process Scrum Predictable Results Short Cycles
  • 26. Lesson 5: Planning & Process Short Development Cycles Easy to Adjust Easy to Demo Nearby GoalsSprint 1 Sprint 2 Sprint 32 weeks 2 weeks 2 weeksDemoDemoDemo
  • 27. Lesson 6 : Think Performance Performance First, not Last Might look good, however. Consider Tools . And Watch Now Carefully !
  • 28. Lesson 6 : Think Performance ViewObject queries caused by unintentionally left iterators in pageDefs Iterator bindings can still be refreshed and the ViewObjectunnecessary executed - for example when you have Refresh=ifNeeded)
  • 29. Lesson 6 : Think Performance Oracles Default Values Do NotAlways Rock ! ViewObject fetchMode andfetchSize are underestimatedproperties and have bigperformance impact The default value is 1 - will givepoor performance (unless only onerow will be fetched)
  • 30. Lesson 6 : Think Performance Too much data in ADFBC memory.. Try to avoid loading more database rows than you need Be careful if you really do need to load a proportional numberof database rows
  • 31. Lesson 6 : Think Performance
  • 32. Lesson 7: Business Rules The $ 1.000.000 Question
  • 33. Lesson 7: Business Rules Business Components is not Always the Best Place ! For employees with a Job (attribute value) equal toSALESMAN the value of the Salary attribute should not behigher than 2500. The difference between the maximum salary for allemployees with the same job and their average salary maynot exceed 30% of the average salary
  • 34. Lesson 7: Business RulesHey, I can do ADF !We cant... But we can doPL/SQL
  • 35. Lesson 8: Documentation ?
  • 36. Lesson 8: Documentation ! *.fmb are not Documentation ! Provide proper Documentation It is a Valid Investment Create a Cookbook Architectural issues Development How tos
  • 37. Lesson 9: Automated Migration Automated migration is not easy. You can run into issues that an automated tool cannot handle You still need to re-code forms triggers (PL/SQL) JHeadstart Forms2ADF ? Not Really on Option Automated migration doesnt exist.
  • 38. Lesson 10: Keep up the Pace
  • 39. Lesson 10: Keep up the Pace Service Oriented Architecture Business Process Management Service Bus Mobile
  • 40. Lesson 10: Keep up the Pace
  • 41. Summary Lesson 1: The Right Size Lesson 2: Dont Copy Paste Lesson 3: Involve People Lesson 4: Hire Experts Lesson 5: Planning & Process Lesson 6: Think Performance Lesson 7: Business Rules Lesson 8: Documentation Lesson 9: No Automation Lesson 10: Keep Up the Pace
  • 42. Luc Bors, AMIS, The [email protected]@gmail.comFollow me on : @lucb_