Luc Bors, 26-mar-2013, OBUG Connect Antwerpen10 lessons learnedReal Life Forms to ADF
Who Am I• Luc Bors• Principal Consultant• AMIS Nieuwegein Netherlands• Friends of Oracle & Java• 5 Oracle ACE(D)• Oracle P...
Where Are You Now ?• HUGE Forms investment• Mission critical, complex systems• Low maintenance, stable system for over 10 ...
Where Do We Want to Go ?
Some Modernization Projects
Most Recent Project• Ministry of Security and Justice• Application >20 years old• Decentralized architecture (19x)• Approx...
Modernization Project Triggers• Very old technical environment(end-of-life)• Maintenance is expensive• Staffing is difficu...
Distributed Architecture• 19 distributed implemenations• 1 central implemenation• Less Hardware• Less Administrators• Less...
Centralized system
Forms Application• Forms 4.5 / Reports 2.5• Character mode• Terminal Emulation• Enables Macros !• Desupport 31 December 20...
Not Really Web 2.0 ……………
Web 2.0 !
Web 2.0 !
IST - SOLL• Character Mode• Distributed• Data Duplication• 250 Modules• 90 Reports• 15’’ Monitors• Application• Web Techno...
What did we Learn ?
Lesson 1: The Right Size• Think Big Start Small.• Don’t be Tempted.• Use Small PoC !
Lesson 1: The Right Size
Lesson 1: The Right Size• Application Architecture• Taskflow with page fragment and perTaskflow 1 page with 1 static regio...
Lesson 2 : Don’t Copy Paste• Migrate “As-is” …… ??• Don’t try to copy forms functionality– Know your ADF Faces Components•...
Lesson 2 : Don’t Copy Paste• Forms code for:– Buttons– Canvasses– Navigation• ADF code for:– None of the above
Lesson 3 : Involve People• Grumpy Old Men• Talk with all People involved inthe project• Let them know what you aredoing• L...
Lesson 3 : Involve People• Include operational team• Infrastructure (DTAP) : Ready on Time• Don’t underestimate WebLogic c...
Lesson 4 : Hire Experts• Training is not enough.• Steep learning curve– Don’t mix in regular work– Long “Conscious Incompe...
Lesson 4 : Hire Experts“The cheapest ADF Consultant isthe one with the highest hourly rate”
Lesson 5: Planning & Process• Scrum• Predictable Results• Short Cycles
Lesson 5: Planning & Process• Short Development Cycles– Easy to Adjust– Easy to Demo– Nearby GoalsSprint 1 Sprint 2 Sprint...
Lesson 6 : Think Performance• Performance First, not Last• Might look good, however….• Consider Tools• …. And Watch Now Ca...
Lesson 6 : Think Performance• ViewObject queries caused by unintentionally left iterators in pageDefs• Iterator bindings c...
Lesson 6 : Think Performance• Oracle’s Default Values Do NotAlways Rock !– ViewObject fetchMode andfetchSize are underesti...
Lesson 6 : Think Performance• Too much data in ADFBC memory…………..• Try to avoid loading more database rows than you need• ...
Lesson 6 : Think Performance
Lesson 7: Business Rules• The $ 1.000.000 Question
Lesson 7: Business Rules• Business Components is not Always the Best Place !• For employees with a Job (attribute value) e...
Lesson 7: Business RulesHey, I can do ADF !We can’t……….….. But we can doPL/SQL
Lesson 8: Documentation ?
Lesson 8: Documentation !• *.fmb are not Documentation !• Provide proper Documentation• It is a Valid Investment• Create a...
Lesson 9: Automated Migration• Automated migration is not easy.– You can run into issues that an automated tool cannot han...
Lesson 10: Keep up the Pace
Lesson 10: Keep up the Pace• Service Oriented Architecture• Business Process Management• Service Bus• Mobile
Lesson 10: Keep up the Pace
Summary• Lesson 1: The Right Size• Lesson 2: Don’t Copy Paste• Lesson 3: Involve People• Lesson 4: Hire Experts• Lesson 5:...
Luc Bors, AMIS, The NetherlandsLuc.Bors@amis.nlLucBors@gmail.comFollow me on : @lucb_
Upcoming SlideShare
Loading in...5
×

Real life forms to adf

181

Published on

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

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
181
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
20
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Real life forms to adf

  1. 1. Luc Bors, 26-mar-2013, OBUG Connect Antwerpen10 lessons learnedReal Life Forms to ADF
  2. 2. Who Am I• Luc Bors• Principal Consultant• AMIS Nieuwegein Netherlands• Friends of Oracle & Java• 5 Oracle ACE(D)• Oracle Partner
  3. 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. 4. Where Do We Want to Go ?
  5. 5. Some Modernization Projects
  6. 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. 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. 8. Distributed Architecture• 19 distributed implemenations• 1 central implemenation• Less Hardware• Less Administrators• Less Duplicate Data• More Insight• More Control
  9. 9. Centralized system
  10. 10. Forms Application• Forms 4.5 / Reports 2.5• Character mode• Terminal Emulation• Enables Macros !• Desupport 31 December 2003• Runs since 1991 …
  11. 11. Not Really Web 2.0 ……………
  12. 12. Web 2.0 !
  13. 13. Web 2.0 !
  14. 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. 15. What did we Learn ?
  16. 16. Lesson 1: The Right Size• Think Big Start Small.• Don’t be Tempted.• Use Small PoC !
  17. 17. Lesson 1: The Right Size
  18. 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. 19. Lesson 2 : Don’t Copy Paste• Migrate “As-is” …… ??• Don’t 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. 20. Lesson 2 : Don’t Copy Paste• Forms code for:– Buttons– Canvasses– Navigation• ADF code for:– None of the above
  21. 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. 22. Lesson 3 : Involve People• Include operational team• Infrastructure (DTAP) : Ready on Time• Don’t underestimate WebLogic configuration• SSO via MS-AD
  23. 23. Lesson 4 : Hire Experts• Training is not enough.• Steep learning curve– Don’t mix in regular work– Long “Conscious Incompetence”phase: motivational dip• Hire Experts 012345Week1Week20Week30Week40Week52NextYearEvenLaterImaginary ADF LearningCurve
  24. 24. Lesson 4 : Hire Experts“The cheapest ADF Consultant isthe one with the highest hourly rate”
  25. 25. Lesson 5: Planning & Process• Scrum• Predictable Results• Short Cycles
  26. 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. 27. Lesson 6 : Think Performance• Performance First, not Last• Might look good, however….• Consider Tools• …. And Watch Now Carefully !
  28. 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. 29. Lesson 6 : Think Performance• Oracle’s 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. 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. 31. Lesson 6 : Think Performance
  32. 32. Lesson 7: Business Rules• The $ 1.000.000 Question
  33. 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. 34. Lesson 7: Business RulesHey, I can do ADF !We can’t……….….. But we can doPL/SQL
  35. 35. Lesson 8: Documentation ?
  36. 36. Lesson 8: Documentation !• *.fmb are not Documentation !• Provide proper Documentation• It is a Valid Investment• Create a Cookbook– Architectural issues– Development How to‘s
  37. 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 doesn’t exist.
  38. 38. Lesson 10: Keep up the Pace
  39. 39. Lesson 10: Keep up the Pace• Service Oriented Architecture• Business Process Management• Service Bus• Mobile
  40. 40. Lesson 10: Keep up the Pace
  41. 41. Summary• Lesson 1: The Right Size• Lesson 2: Don’t 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. 42. Luc Bors, AMIS, The NetherlandsLuc.Bors@amis.nlLucBors@gmail.comFollow me on : @lucb_
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×