1 / 33

PL/SQL Application Frameworks

PL/SQL Application Frameworks. For Custom Systems Presenter: Bill Coulam (bcoulam@yahoo.com). A church guy?. What I expected to find…. A church guy?. ICS (primary IT dept, about 500 persons) 5,000 Site WAN, 10 GB MPLS Core, 400 Mb backbone 23K Workstations & 1600 Servers

jamesconley
Download Presentation

PL/SQL Application Frameworks

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. PL/SQL Application Frameworks For Custom Systems Presenter: Bill Coulam (bcoulam@yahoo.com)

  2. A church guy? • What I expected to find…

  3. A church guy? • ICS (primary IT dept, about 500 persons) • 5,000 Site WAN, 10 GB MPLS Core, 400 Mb backbone • 23K Workstations & 1600 Servers • 500 TB disk storage • 30K pages of content & 30M page views/month • 3M unique web visitors/month • 60K hosted mailboxes & 1M daily inbound messages • Stream live content in 40 languages • 200+ databases, much of it 10g RAC

  4. A church guy? • Family History Department • Another 500-600 IT employees & contractors • Massive effort to digitize 150 years of genealogical data (approaching 4.5PB). • IBM server farm servicing millions of web-based family history users per month.

  5. A church guy? • Why? • Large, centralized organization of 13M members • Other activities like humanitarian operations; cultural, historical and religious education facilities. • Temple (124) and chapel (20,000+) construction and maintenance (1 a day). • Translation of church curriculum into almost 200 languages. • Modernization and process improvement: 300+ IT projects • So we’re pretty busy, and it’s almost all on Oracle.

  6. Software Architecture and Construction • Programming is a combination of art, science and engineering… • …and for those inheriting legacy systems, methods and policies, it also includes skills in archaeology, psychopathology, waste management and forensics. • If your development infrastructure (its people, processes, standards, tools, architecture and deliverables) were buildings meant to be used by others, what would they resemble?

  7. Software as Useful Structures OR

  8. Software as Useful Structures • This is how I like to envision the systems I design and build. • I like to use metaphors like this to guide my vision. • It’s been said that if you don’t know where you’re going, any road will get you there.

  9. The Target • My hope is to validate or renew the fire within you to produce clean, elegant, robust PL/SQL-based systems more rapidly and reliably than you could before. • …Or give you some ammunition needed to convince higher-ups of the same… • So that you can enjoy your work more, or spend less time getting it done.

  10. Agenda • Define: Frameworks, libraries, components. • Why the fuss over frameworks? • Assessing new or improved frameworks. • Framework contents • Framework design, build and rollout • Existing frameworks and libraries • Case study: PL/SQL Starter Framework

  11. Definitions • Framework • Organized collection of libraries that implement common functionality used by developers to write software in a rapid, consistent manner. • Library • Organized collection of related components. • Component • Individual routine that does a single thing well. • Caveats • Oracle libraries • Class libraries

  12. Why should I care? A few metaphors: • Automobile design and construction • Custom vs. assembly • Home design and construction • Timber vs. Conventional vs. Panelized

  13. Timber Framed • Robust. Warm. Spacious. Inviting. • Each one a work of art. Skilled carpenters. • But slow-going and costly.

  14. Panel-built Homes • The frame’s components are pre-built in a factory by specialized carpenters. • Far less waste. Higher quality and exacting deliverables. • Pieces are delivered in a bundle, and the home’s frame can be erected in a day.

  15. Why should I care? • Developers are the skilled builders. • Development languages are the materials. • The software, standards and methodology used are the power tools and blueprints. • Hardware, network, and database are the foundation or bedrock layer. • The application framework is the structure’s shell or “skeleton”. • Business logic and visual interfaces are the interior and exterior treatments around the shell.

  16. Why should I care? • What happens when a structure is built ad-hoc, without sufficient thought and effort invested in the foundation and frame?

  17. Why should I care? • If the lessons of history teach us anything it is that nobody learns the lessons that history teaches us. • Those who cannot remember the past are condemned to repeat it. - George Santayana • Why do we never have time to do it right, but always have time to do it over?

  18. Why should I care? • Why then do we build software without sufficient thought and investment in the foundation and framing? • The squeaky wheel gets the axle grease. • Don’t let it happen in your shop. • Application infrastructure is crucial to aspects everyone cares about: speed, cost, quality, flexibility, scalability, etc.

  19. Do we need a framework? Yes! …well, it depends.

  20. Assessing need for a framework • Timing • Existing code base • Existing frameworks • Architectural direction • Security and other policies • Maintenance & enhancement demands • Quality and performance

  21. Framework Contents • Early stage services • String, number, date and collection handling. • Logging, debugging, messaging & email, exception handling, timing, assertions. • Codes, configuration, environment. • Locking, auditing, security • Testing • Standards, templates, DML API generators • Late stage services • ETL-related, 3rd party integration, reporting, job management, DBA-centric utilities • Industry-specific services

  22. Framework Design & Build Programs must be written for people to read, and only incidentally for machines to execute. - Donald Knuth Simplicity is prerequisite for reliability. - Edsger W. Dijkstra Simplicity carried to the extreme becomes elegance. - Jon Franklin Simplicity is the ultimate sophistication. - Leonardo da Vinci

  23. Framework Design & Build • Use packages to bundle related components. • Decentralize constants and literals. • Overloading (pseudo-polymorphism) • Precede code with high-quality comments, testing and pseudo-code. • Model use of your assertions, exceptions, messaging, debugging and logging library. • Set up and model use of your templates, versioning, formatting, and testing tools. • Follow best practices, esp. DRY and KISS. • Short, intuitive names for packages and routines.

  24. Framework Design & Build • Only catch expected exceptions. • Use generated API packages for DML access to framework entities. • Document framework API well, at least in the package specs if nowhere else. • Provide small, working, sample application if you can, demonstrating all the pieces. • Use anonymous transactions to capture critical info before rollbacks. • Independence and loose coupling (orthogonality).

  25. Framework Adoption • There is nothing more difficult to carry out, nor more doubtful of success, nor more dangerous to handle, than to initiate a new order of things. For the reformer has enemies in all those who profit by the old order, and only lukewarm defenders in all those who would profit by the new... - Niccolo Macchiavelli

  26. Framework Adoption Examine your IT environment • Enterprise architecture, policies and standards • Development methodology. • Management style and strategy. • Time, people and $$$ constraints.

  27. Framework Adoption • Legacy demands. • New project demands. • 3rd party considerations. • Appetite for risk. • Your role.

  28. Existing Frameworks

  29. Existing Libraries

  30. Existing Libraries

  31. Case Study: Starter Framework • First built in 1997 for 8i. Completely rebuilt for 9i in 2001. Being rebuilt again for 10g, trying to follow some of my own advice ;-) • Open source. • http://www.dbartisans.com/code.htm • https://sourceforge.net/projects/plsqlframestart • Be sure to fully evaluate Quest/Feuerstein’s free offerings as well. • http://qcgu.net

  32. Model of Starter Framework

  33. The Legacy You’ll be Known By OR

More Related