AMIS Query: APEX enof ADF - PowerPoint PPT Presentation

1 / 53
About This Presentation
Title:

AMIS Query: APEX enof ADF

Description:

Standardized run-time platform across hardware & O/S - to build for and deploy into ... Support simultaneous use of ... ADF licence is part of Oracle AS license ... – PowerPoint PPT presentation

Number of Views:133
Avg rating:3.0/5.0
Slides: 54
Provided by: LucasJ6
Category:
Tags: adf | amis | apex | enof | license | query

less

Transcript and Presenter's Notes

Title: AMIS Query: APEX enof ADF


1
AMIS QueryAPEX en/of ADF
  • Maandag 17 december 2007

2
ODTUG 2008APEX ADF
  • Thursday, June 19th 2008

3
Why Java?
  • Standardized run-time platform across hardware
    O/S - to build for and deploy into
  • Java Virtual Machine
  • J(2)EE Application Server
  • Benefits
  • Skills applicable across vendor technology stacks
  • Components reusable across stacks
  • And developers to (to a certain extend)
  • Huge and vibrant open source community that
    shares knowledge components
  • Rapid evolution of technology especially for
    developing web based applications (Web 2.0, AJAX,
    JPA)
  • Infinite source of ever entertaining acronyms

4
Typical Web application
  • Database
  • Tables, Views, Triggers Packages
  • Application level representation of data objects
  • Forms Blocks mapped to tables/views/queries
  • Java Objects mapped tables/views/queries
  • Application level page definitions bound to
    data
  • Forms Blocks Items, supported by triggers
  • Java Java Server Faces pages with components
    such as Table, Drop Down item, Button - bound to
    data objects
  • Client side view rendering
  • Forms runforms applet
  • Java browser HTML rendering supported by CSS and
    JS

5
Single vs. Multi-Tier Architecture
  • Single Tier
  • Multi Tier
  • Performance
  • Ease of Deployment
  • (lower) Complexity
  • (ease of) Administration
  • Costs of infrastructure (?)
  • Security
  • Scalability
  • Role Specialization
  • Flexibility Integration

6
How does Oracle implement the JEE stack for Java
Web Applications
  • Oracles Java/J(2)EE stack
  • Application Development Fun

Application Development Framework
Primarily for developing Java/J(2)EE Web
Applications with HTML frontend and (Oracle)
Database backend
7
ADF Technology Stack Architecture
HTML
HTML
ApplicationServer
Database
8
ADF The Building Blocks
  • ADF Business Components (pka BC4J)
  • Since 1999
  • Object Relational Mapping on JDBC
  • Can be published as WebService, EJB,
  • Optimized for Oracle RDBMS
  • Understands e.g. Database Triggers, PL/SQL
    packages, Oracle SQL PL/SQL types, SQL XML,
    Instead Of Triggers, VPD (Virtual Private
    Database), Oracle Text, Oracle BLOBs CLOBs, SQL
    Hints, Advanced Oracle SQL
  • 11 synchronization with UML Class Modeling
  • Many features for tuning, configuration,
    monitoring (tracing, debugging)
  • Used within the Oracle E-Business Suite since
    2001

9
ADF The Building Blocks
  • ADF Model since 2004
  • DataBinding decouplingApplication and Business
    Services
  • Outlined in JSR-227
  • Support simultaneous use of heterogeneous data
    sources like Database, WebService, File, XML Data
    Store,
  • ADF Faces (aka Apache MyFaces Trinidad)
  • Implements the JEE standard Java Server Faces
    (JSF)
  • Successor of ADF UIX (since 2001)
  • ADF Faces components render HTML
  • Are configured through (dynamic) properties
  • Can be programmatically manipulated
  • Are assembled into pages using Drag Drop (or
    XML source editing)
  • Have built in support for AJAX (Partial Page
    Refresh)

10
Some ADF Faces components
11
Some ADF Faces components
Pagination through records
Sort columns
Show/Hide Details for theBook record
Toggle betweentabs
12
ADF The Building Blocks
  • IDE is JDeveloper
  • Since 1998
  • Free (since 2005)
  • Contains design time for
  • Plain Old Java Programming
  • Web Development (HTML, CSS)
  • Oracle SOA Suite,
  • XML/XSLT development
  • UML modelling
  • SQL PL/SQL (fka Raptor, aka SQL Developer)
  • WebCenter
  • Oracle Data Integrator, Warehouse Builder
  • Has built-in Application Server (OC4J)
  • Can be extended through Plug Ins
  • Installation consists of Download Unzip
  • File Based

13
ADF Some Facts
  • Optimized for Oracle RDBMS
  • Supports any database with JDBC driver
  • Can be deployed on any J(2)EE Application Server
  • Tomcat, JBoss, IBM WebSphere, BEA WebLogic,
    Glassfish,
  • ADF licence is part of Oracle AS license
  • Need run-time licence for other Application
    Servers design time is free
  • Second half 2008 release 11g, with Rich Client
    components
  • The foundation for Oracle Fusion Applications
  • As well as other Oracle products like BAM,
    Enterprise Manager, WebCenter, Hyperion, E
    Business Suite, ..

14
Some ADF features and characteristics
  • Declarative AJAX support (partial page refresh)
  • Strong (remote) Debugging features
  • Built-in Internationalization (i18n)
  • End-to-End message handling
  • Query by Example (enter query mode)
  • Integration with Source Code Control tools such
    as Subversion and CVS
  • Many on-line resources context help,
    documentation, tutorials, samples, IDE extensions
  • Very active blogging community with 1000
    articles

15
Status of ADF
  • Primary development technology stack for Fusion
    Applications
  • One of the largest software development
    organizations around (1000s of developers)
  • Easiest Java stack to migrate to for (classic)
    Oracle Developers
  • Experienced (Web) PL/SQL, Designer, Forms
    developers
  • Compliant sometimes even leading with (most)
    major industry standards J(2)EE, XML
  • (Relatively) Proven
  • Future-proof 11g (Rich Client), SOA and
    WebCenter
  • Strategic platform for Oracle

16
Non-ADF Faces components
  • MyFaces
  • WYSIWYG Text Editor
  • Popup
  • Schedule
  • Calendar
  • Dojo, YUI, jQuery, Ext-JS (JavaScript)
  • Text Editor
  • FishEye
  • Spinner, Slider
  • Clock
  • Google Maps,

17
11g Filthy Rich Components
  • Much more Client Side activity
  • Drag drop
  • Table column stretch and reposition
  • Slider Spinner
  • (real) Accordion
  • Panel Stretch Layout
  • No more popup windows
  • Instead floating (inline) DIVs
  • Really cool graphs
  • AJAXAJAX AJAX
  • declaratively!

18
11g Rich Table
19
ADF and Fusion Middleware
20
Typical ADF Application
  • Professional Users not so much consumer web
    sites
  • Productivity of the end-user
  • Serious Data orientation
  • Typically an Oracle database
  • Frequently other data sources as well (Web
    Services,)
  • Increasingly more task and process driven
  • SOA oriented integration with BPEL, Workflow,
    WebCenter Portlets, embedded BI
  • Future proof long application life cycle
  • Through standards compliance, Oracle strategic
    direction
  • High development productivity while retaining
    maintainability

21
Pagoni Property Management
22
Connexys HR Recruitment
23
The man in the middle
Pragmatic
Attractive
Standards
Productivity
Open source
Strategic
Database Integration
Q D
Enterprise
Theoretical/ Dogmatic
APEX
ADF
real Java
24
The Application Development Challenge
25
Survey Application
  • Starting point
  • 6 database tables
  • Minimal functional description
  • Challenge
  • In 6 hours
  • Develop an ADF Applicationthat supports on line
    polls
  • Demonstrate it

26
Getting Started with ADF development
27
Short Story
  • Install a PC with JDeveloper
  • Arrange for a connection to a database
  • Create Business Components (declaratively SQL)
  • Create JSF pages (drag drop declaratively)
  • Run (on the embedded OC4J)
  • You can have your first ADF application running
    in under 60 minutes

28
DEMO
29
ADF Design and Build tasks
  • Page Design Build
  • Bind Business Components to page
  • In the desired layout
  • Design and Implement inter page Navigation
  • Tune CSS Stylesheets
  • Database Design
  • Database Implementatie
  • Authorization
  • Business Logic/Business Rules
  • Mapping tables and views to Business Components

30
Could it not be a more declarative process?
  • (More like Designer than like Forms?)

31
JHeadstart for increased productivity and less
steep learning curve
JHeadstart plugin
Tables
Database
32
Developing ADF Faces Applications with
JHeadstart 10.1.3
  • Based on ADF BC
  • Single Application Definition file (XML)
  • Edited with JDeveloper plugin
  • Rapid Page Generation
  • UI Models
  • Consistent Layout
  • Page structure
  • Master-detail(-detail), tree, in-line table,
    detail disclosure, search
  • Regions ( item groups)
  • Lookups Domains
  • Display properties
  • Quick Prototyping
  • Very easy introduction for non-Java developers

33
DEMO
34
Do you need to know all about Java, JavaServer
Faces, Javascript CSS?
  • (And what about XML, EJB, JMS, JCA, SCA, SDO,
    SVG, XSLT, Struts, JTA, AOP, and a zillion other
    things)

35
DEMO
36
Actions and Time Bookkeeping
  • Installation JDeveloper JHeadstart
  • Model Project
  • Default Business Components
  • Derive Primary Key from Sequence
  • View Project
  • Enable JHeadstart
  • Four Domains
  • Maintain Surveys
  • JHeadstart Groups
  • AJAX show answer options when style ismultiple
    choice

20 min
0 lines
15 min
5 lines
20 min
0 lines
30 min
0 lines
37
Implement AJAX
  • show answer options when style is multiple choice

38
Actions and Time Bookkeeping
  • Respond to Survey
  • ViewObject with two outer joins create Answer
    when Question/Response entered
  • JHeadstart Groupfor Person, Response, Answer
  • LOV on Survey
  • NLS support Customize ResourceBundle
  • New Person Wizard
  • And deep link to respond to query

60 min
15 lines
2 min
0 lines
30 min
10 lines
39
Actions and Time Bookkeeping
  • Survey Results
  • Summary ViewObjects for Surveys, Questions and
    Answers
  • Transient attributes in SurveyView
  • Three Groups
  • Graphs
  • Two barchart
  • One Pie Chart
  • Skins/Look Feel
  • Rich Text Editor

60 min
13 lines
20 min
0 lines
30 min
2 lines
30 min
15 lines
40
Java code to derive attribute value
41
Total Score
5h 17m
60 lines
  • Functionality
  • Create a survey with Open and Multiple Choice
    Questions
  • Allow People to register and Respond to a Survey
  • Analyze the Survey Results using Graphs and
    Summaries
  • Number of Artefacts
  • Model 14 ViewObjects plus Entities, ViewLinks
    and classes
  • View one JHeadstart application definition file,
    10 jspx files, 26 XML configuration files
  • Required Skills SQL, JSF ( ADF Faces), Java
    (novice), ADF Business Components
    Google-ability!

42
Conclusion
  • Only - tiny pieces of Java required, and then
    for specific functionality
  • Usually documented as recipes or checklist steps
  • Typically no Javascript at all
  • And very little CSS, HTML, XML
  • You can happily ignore most of the Java Buzz
  • You (start to) work from a SQL oriented
    perspective
  • Leveraging the database is very much an option
    and recommended to
  • You work in a very declarative way
  • You get many quite advanced features almost for
    free

43
The Oracle Developer
I want to be(come) a hot Java ADF Developer
44
Moving to the new world of ADF
  • This could be your itinerary from Classic Oracle
    (Designer/Forms/PL/SQL) into ADF Web Development
  • Modern Database Programming Skills 10g SQL
    PL/SQL
  • JDeveloper, ADF Business Components ADF Faces
  • JHeadstart
  • Basic Java Web Development skills
  • Java programming (focus on beans, collections,
    interfaces, String)
  • Servlet JSP
  • Java Server Faces
  • Web (2.0) Development
  • HTML, CSS, JavaScript, XML
  • Application Server Administration

45
Some useful resources
  • Books
  • Oracle JDeveloper for Forms PL/SQL Developers
  • Java Server Faces in Action
  • The Complete Reference Java Server Faces
  • Head First Java
  • Head First Servlets JSP
  • Internet Resources
  • JHeadstart Developers Guide
  • Oracle ADF Developers Guide

46
Next Steps
  • Get yourself a team
  • Multiple PCs
  • A team development environment (file based)
  • Get yourself an OTAP set up
  • One or more central Application Servers
  • Robust deployment procedures
  • Get yourself a coach/expert
  • And Google!
  • Get yourself some skills
  • Get yourself some experience
  • Do it. Enjoy it. Focus on the Fun.

47
Focus Areas in an ADF project
  • Functional Design
  • Screen designs
  • Draft
  • Fully functional HTML prototypes
  • CSS, icons, colorcodes
  • For each page
  • Which data?
  • Which manipulations?
  • Which validations and calculations?
  • Which navigations?
  • Which actions?
  • Which AJAX style refresh operations?
  • Architecture
  • Lots of attention for non-functional requirements
  • Security
  • Messages and i18n
  • Availability, Performance and Scalability
  • Instrumentation/logging
  • Reuse generic components (infrastructure)
  • Automation
  • Of testing, deployment, documentation generation,
    standards enforcement

48
Specialization Role Allocation
  • Differentiate between roles and specializations
  • For example
  • Database (SQL, PL/SQL)
  • Model (ADF BC and other Business Services)
  • Web Application (Java Server Faces)
  • Web Client (JavaScript, CSS)
  • Or combinations

49
Lessons Learned some the hard way
  • The key lessons we learned
  • Break with former habits and paradigms
  • Build up new ones
  • Spend plenty of time on non-functional
    requirements
  • SoftwareEngineering
  • Leverage the database

50
Planning ADF Projects
  • Develop new guidelines and calculation factors
  • Need intuition for what is simple and cheap and
    what is hard en expensive in this technology
  • This is easy to fit in
  • This sounds like a realistic guesstimate
  • Give yourself a lot of time for
  • Infrastructure
  • Non-functional Requirements
  • Look Feel application
  • The last 20 of the application
  • Make sure you start early with
  • Testing performance, authorization,

51
Software Engineering
  • Work on a sound Development Infrastructure
  • Source Code Control Version Management
    Subversion
  • Incident Management Jira
  • Test JUnit, Selenium, JMeter
  • Automated Build Test Ant, Maven, Continuum
  • Collaboration Knowledge Management Wiki

52
Lessons learned
  • Not every developer has to know all of ADF and
    the underlying technologies (Java, Servlet/JSP,
    HTML/CSS/JS)
  • But at least one person on the team should know
    most of it
  • For a realistic, feasible yet attractive look
    feel, it is important to use HTML designs and
    closely cooperate
  • Static HTML design is required but it is not
    enough!
  • CSS and JavaScript are the way to custom look
    feel
  • It is so easy and tempting to build ADF
    applications that are direct representations of
    the Database structure
  • Typically that is not what makes end user happy,
    so beware!
  • Shake old paradigms and dogmas its the internet
    age!

53
Lessons learned
  • Get to know the ADF Faces components and their
    features so as to optimally leverage them
  • Partial Page Rendering (AJAX), Client Side
    Validation, Regions, Detail Disclosure, Tabs and
    Accordion, Skins
  • Craft Development Guidelines and enforce them
  • Naming conventions, package structure, code
    documentation, log design decisions, instrument
    the code
  • Design the Authorization infrastructure early on
  • As well as other Application Architecture/Infrastr
    ucture
  • Use the database for what it is good at
  • Dont go blindly for inter-database portability

54
Lessons learned
  • Dare to step outside of the box
  • dare to let go of generation (when using
    JHeadstart)
  • use programmatic hooks in ADF Faces
  • dont restrict yourself to standard ADF
    components, use other libraries and build your
    own
  • leverage JavaScript and CSS
  • Google is an indispensible source of development
    help
  • As is OTN, the OTN Forums and many a blog Steve
    Muench, Frank Nimphius, Chris Muir, Didier
    Laurent, Andrejus Baranovskis, John Stegeman,
    JHeadstart Team Blog, AMIS Technology Blog

55
But wait there is more
56
11g Rich Data Visualization
  • Visual representation and manipulation - of
    data
  • Embedded Operational BI
  • Components
  • Charts bar, pie, line, bubble, area, funnel,
    radar, scatter, pareto, stock (2D, 3D)
  • Pivot Table spreadsheet, cross-table
  • Geographic Map
  • Gauges
  • Gantt Chart e.g. project and resource
    management
  • ADF Data Visualization components are the core
    charting component within Oracle
  • For BAM, Fusion Applications, Enterprise Manager,
    Hyperion

57
(No Transcript)
58
New trends in Web Applications
  • Rich visually appealing
  • Interactive dynamic components, client side
    layout manipulation, drag drop, AJAX style
    partial refresh
  • Active
  • server-to-client event push
  • Integrated Collaboration
  • Enterprise 2.0 Social Networking,
    Communication, Resource Sharing

59
Customer Case
  • Connexys, Rotterdam
  • ASP Application for Human Resource Management,
    100 customers with 1000 users
  • Built with Oracle Designer Web Server Generator
    and a lot of hand coded Web PL/SQL Toolkit code
    (htp)
  • Needs to migrate to new technology because of
    competitive market pressure
  • Better UI (Web 2.0, Attractive, Rich, Active,)
  • More process oriented
  • Differentiated between customers
  • Customization Personalization
  • Challenges
  • Work on top of existing data model
  • Implement a User Interaction Design by a web
    designer
  • Train development staff on the job

60
Demo SaaS with ADF
61
The future looks bright
  • ADF has an interesting future
  • 11g Rich Client Components Web 2.0 AJAX
  • SOA (BPEL) Workflow Enabled Applications
  • WebCenter Collaboration 2.0
  • It is probably time to start living it
Write a Comment
User Comments (0)
About PowerShow.com