1 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
2 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Real World ADF Design & Architecture Principles
Application Customization and Personalization
ORACLE
PRODUCT
LOGO
15th Feb 2013 v1.0
3 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Learning Objectives
•  At the end of this module you should be able to:
–  Know about the differences between Customization and
Personalization
–  Explain the MDS architecture
–  Understand how to apply customization to an ADF application
and how to deploy customized applications
–  Identify the number of MDS instances and partitions you need for
an application
Image: imagerymajestic/ FreeDigitalPhotos.net
4 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Program Agenda
•  Intro
•  Adaptation
•  Personalization
•  Customization
•  Composer (Customization @ Runtime)
•  Personalization & Customization Architecture
5 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.5 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
You can only please most people some of the
time, and some people most of the time.
Image: Ambro/ FreeDigitalPhotos.net
6 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.6 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
You can only please most people some of the
time, and some people most of the time.
Image: Ambro+imagerymajestic/ FreeDigitalPhotos.net
What if it was possible for anyone
at any time?
7 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Application Development Framework (ADF)
•  ADF Faces Rich Client
•  Data Visualization Components
•  ADF Controller
•  ADF Binding Layer
•  ADF Business Components
Candidates for Customization and Personalization
8 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.8 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
How does customization and personalization fit in
an architect training course?
Image: imagerymajestic/ FreeDigitalPhotos.net
9 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Program Agenda
•  Intro
•  Adaptation
•  Personalization
•  Customization
•  Composer (Customization @ Runtime)
•  Personalization & Customization Architecture
10 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Adaptation
•  Adaptive Design
–  Build responsive user interfaces
•  Adapting to user agents
–  Screen resolution
–  Touch support
–  Responsibility
11 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Program Agenda
•  Intro
•  Adaptation
•  Personalization
•  Customization
•  Composer (Customization @ Runtime)
•  Personalization & Customization Architecture
12 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Personalization Use Case
•  Wants different order of panel boxes in a panel dash board
•  Prefers data table columns in a different order
•  Likes to re-arrange order of input fields in an input form
•  Needs application to memorize collapse state of panelBox,
panelSplitter, showDetail header
•  Wants to save custom af:query settings
A User …
13 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Application Personalization in ADF Faces
•  Persists changes for ADF Faces components and restores them
•  User personalization based on end user interaction
–  Changes to an attribute value
–  Addition or removal of a child component
–  Re-ordering of children within the same parent
–  Move of child component to a different parent
14 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Personalization With MDS Or Without?
15 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Personalization Without MDS
•  All component changes are saved for the duration of the user
session
–  No filtering of components that should not be personalizable
–  All changes are kept in session object, which has an impact to
performance for large applications
16 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Personalization With MDS
•  Personalization is saved beyond application re-start
•  You can define which component type and which component
attributes can be personalized
–  Configuration in adf-config.xml
•  Each UI component has a persist / dontPersist property that allows
you to override the global component type settings for fine granular
personalization definitions
–  Personalization by component instance added to a page or view
17 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Program Agenda
•  Intro
•  Adaptation
•  Personalization
•  Customization
•  Composer (Customization @ Runtime)
•  Personalization & Customization Architecture
18 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Customization Use Case
•  Requires additional input fields and business service attributes in
specific geographic regions
•  Needs a way to provide experienced users with a "type ahead" form
whereas novice users need data input wizards and LOV
•  Requires an application to render different if accessed from outside
of the intranet or after business hours
•  Wants to perform navigation differently based on user
responsibilities identified by application roles
•  Show different user information based on user's role in the company
A Business …
19 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Customization Should
•  Not impact the base application
•  Support patching and upgrades
•  Require zero or only minor application downtime
•  Be easy to manage and maintain
•  Be provided with optimized performance
•  Be scalable and fail over enabled
•  Be applied conditionally
20 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Customization Layers in MDS
•  Customization layers are defined and configured as Java objects
•  Seeded metadata changes are associated with a customization
layer
•  Order of layers matters
•  Personalization always is the "tip-layer"
21 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Metadata Customization
Base	
  App	
  
Individual	
  
Customiza4on	
  
Individual	
  
Customiza4on	
  
Group	
  
Customiza4on	
  
Group	
  
Customiza4on	
  
22 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Adding Customization To ADF Applications
•  Build the base application
•  Enable MDS and seeded customization
•  Optionally, create your own customization class
–  Name
–  Cache hint
–  Layer name
•  Configure customization classes in adf-config.xml
–  Important: add UserCC customization object for user specific
personalization
23 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Default Customization Classes in ADF
•  UserCC
–  Returns the Principal name for authenticated user
–  Use for end user personalization
•  SiteCC
–  Returns "site" as layer value
•  ADFRolesCC
–  Returns enterprise and application role names
•  Use enterprise roles for site level customization
•  Use application roles for seeded customization
24 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Ho-to Build Seeded MDS Customizations
Declarative Development
•  Start Oracle JDeveloper with the
Customization Developer Role
•  Define metadata changes for defined
customization layers
•  Note that developer experience is the
same as when creating base metadata
•  Only existing metadata is customizable
–  No Java objects
25 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Packaging of Defined Customizations
•  A Compressed archive of selected metadata
•  Used to deploy metadata content to MDS repository
•  Used by the following application types
–  ADF applications
–  SOA composite applications
–  Oracle WebCenter Portal applications
Metadata Archive (MAR)
26 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Packaging of Defined Customizations
Metadata Archive (MAR)
27 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Program Agenda
•  Intro
•  Adaptation
•  Personalization
•  Customization
•  Composer (Customization @ Runtime)
•  Personalization & Customization Architecture
28 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Oracle WebCenter
•  Integrated set of products to build social applications, collaborative
communities, composite applications and enterprise portals
•  Product and Framework built based on Oracle ADF
•  Leverages ADF Security for application security and customization
authorization
•  Separate license from Oracle ADF
29 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Oracle WebCenter
•  Browser based platform
•  Allows page and layout customization
at runtime
•  Includes
–  Resource Catalog to select view
components and services (developed as
task flows)
–  Sandbox to test changes in isolation
•  Provides additional ADF layout
container components
Oracle Composer
30 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Program Agenda
•  Intro
•  Adaptation
•  Personalization
•  Customization
•  Composer (Customization @ Runtime)
•  Personalization & Customization Architecture
31 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Layered Customization Runtime View
Application
View
Controller
ADF Model
ADF BC
Layer 1 Layer 2 Layer 3 Layer 4 Layer 5 Layer 6 Layer 7
Personalization
Base App
Seeded Customization
32 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Application Runtime View
33 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.33 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
How many customization layers do I need and what is
the number of layers I should not exceed?
Image: imagerymajestic/ FreeDigitalPhotos.net
34 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.34 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Could I use customization for implementing
security?
Image: imagerymajestic/ FreeDigitalPhotos.net
35 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.35 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Anything I have to keep in mind when using MDS
to implement security?
Image: imagerymajestic/ FreeDigitalPhotos.net
36 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Conclusion
•  Customization and Personalization should be
considered as part of the application design to avoid
unnecessary coding
•  Consider performance aspects when applying
customizations and personalization features
•  Customization may be used to enforce security. If you
do so
–  Ensure application is save when MDS repository content is missing
–  Implement defense in depth in that you backup MDS security
definitions in the application
•  Consider a deployment strategy that allows you to
upgrade applications and FMW components
37 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Further Reading
•  Building Customizable Applications Using Oracle Metadata Services (III)
–  http://www.oracle.com/technetwork/articles/adf/part10-085778.html
•  Fusion Middleware Fusion Developer's Guide :
–  Customizing Applications with MDS
•  http://docs.oracle.com/cd/E15523_01/web.1111/b31974/customize.htm#CFHBABEB
–  Allowing User Customizations at Runtime
•  http://docs.oracle.com/cd/E15523_01/web.1111/b31974/ad_persist.htm
38 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Oracle ADF Architecture TV - Design - Application Customization and MDS

  • 1.
    1 Copyright ©2013, Oracle and/or its affiliates. All rights reserved.
  • 2.
    2 Copyright ©2013, Oracle and/or its affiliates. All rights reserved. Real World ADF Design & Architecture Principles Application Customization and Personalization ORACLE PRODUCT LOGO 15th Feb 2013 v1.0
  • 3.
    3 Copyright ©2013, Oracle and/or its affiliates. All rights reserved. Learning Objectives •  At the end of this module you should be able to: –  Know about the differences between Customization and Personalization –  Explain the MDS architecture –  Understand how to apply customization to an ADF application and how to deploy customized applications –  Identify the number of MDS instances and partitions you need for an application Image: imagerymajestic/ FreeDigitalPhotos.net
  • 4.
    4 Copyright ©2013, Oracle and/or its affiliates. All rights reserved. Program Agenda •  Intro •  Adaptation •  Personalization •  Customization •  Composer (Customization @ Runtime) •  Personalization & Customization Architecture
  • 5.
    5 Copyright ©2013, Oracle and/or its affiliates. All rights reserved.5 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. You can only please most people some of the time, and some people most of the time. Image: Ambro/ FreeDigitalPhotos.net
  • 6.
    6 Copyright ©2013, Oracle and/or its affiliates. All rights reserved.6 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. You can only please most people some of the time, and some people most of the time. Image: Ambro+imagerymajestic/ FreeDigitalPhotos.net What if it was possible for anyone at any time?
  • 7.
    7 Copyright ©2013, Oracle and/or its affiliates. All rights reserved. Application Development Framework (ADF) •  ADF Faces Rich Client •  Data Visualization Components •  ADF Controller •  ADF Binding Layer •  ADF Business Components Candidates for Customization and Personalization
  • 8.
    8 Copyright ©2013, Oracle and/or its affiliates. All rights reserved.8 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. How does customization and personalization fit in an architect training course? Image: imagerymajestic/ FreeDigitalPhotos.net
  • 9.
    9 Copyright ©2013, Oracle and/or its affiliates. All rights reserved. Program Agenda •  Intro •  Adaptation •  Personalization •  Customization •  Composer (Customization @ Runtime) •  Personalization & Customization Architecture
  • 10.
    10 Copyright ©2013, Oracle and/or its affiliates. All rights reserved. Adaptation •  Adaptive Design –  Build responsive user interfaces •  Adapting to user agents –  Screen resolution –  Touch support –  Responsibility
  • 11.
    11 Copyright ©2013, Oracle and/or its affiliates. All rights reserved. Program Agenda •  Intro •  Adaptation •  Personalization •  Customization •  Composer (Customization @ Runtime) •  Personalization & Customization Architecture
  • 12.
    12 Copyright ©2013, Oracle and/or its affiliates. All rights reserved. Personalization Use Case •  Wants different order of panel boxes in a panel dash board •  Prefers data table columns in a different order •  Likes to re-arrange order of input fields in an input form •  Needs application to memorize collapse state of panelBox, panelSplitter, showDetail header •  Wants to save custom af:query settings A User …
  • 13.
    13 Copyright ©2013, Oracle and/or its affiliates. All rights reserved. Application Personalization in ADF Faces •  Persists changes for ADF Faces components and restores them •  User personalization based on end user interaction –  Changes to an attribute value –  Addition or removal of a child component –  Re-ordering of children within the same parent –  Move of child component to a different parent
  • 14.
    14 Copyright ©2013, Oracle and/or its affiliates. All rights reserved. Personalization With MDS Or Without?
  • 15.
    15 Copyright ©2013, Oracle and/or its affiliates. All rights reserved. Personalization Without MDS •  All component changes are saved for the duration of the user session –  No filtering of components that should not be personalizable –  All changes are kept in session object, which has an impact to performance for large applications
  • 16.
    16 Copyright ©2013, Oracle and/or its affiliates. All rights reserved. Personalization With MDS •  Personalization is saved beyond application re-start •  You can define which component type and which component attributes can be personalized –  Configuration in adf-config.xml •  Each UI component has a persist / dontPersist property that allows you to override the global component type settings for fine granular personalization definitions –  Personalization by component instance added to a page or view
  • 17.
    17 Copyright ©2013, Oracle and/or its affiliates. All rights reserved. Program Agenda •  Intro •  Adaptation •  Personalization •  Customization •  Composer (Customization @ Runtime) •  Personalization & Customization Architecture
  • 18.
    18 Copyright ©2013, Oracle and/or its affiliates. All rights reserved. Customization Use Case •  Requires additional input fields and business service attributes in specific geographic regions •  Needs a way to provide experienced users with a "type ahead" form whereas novice users need data input wizards and LOV •  Requires an application to render different if accessed from outside of the intranet or after business hours •  Wants to perform navigation differently based on user responsibilities identified by application roles •  Show different user information based on user's role in the company A Business …
  • 19.
    19 Copyright ©2013, Oracle and/or its affiliates. All rights reserved. Customization Should •  Not impact the base application •  Support patching and upgrades •  Require zero or only minor application downtime •  Be easy to manage and maintain •  Be provided with optimized performance •  Be scalable and fail over enabled •  Be applied conditionally
  • 20.
    20 Copyright ©2013, Oracle and/or its affiliates. All rights reserved. Customization Layers in MDS •  Customization layers are defined and configured as Java objects •  Seeded metadata changes are associated with a customization layer •  Order of layers matters •  Personalization always is the "tip-layer"
  • 21.
    21 Copyright ©2013, Oracle and/or its affiliates. All rights reserved. Metadata Customization Base  App   Individual   Customiza4on   Individual   Customiza4on   Group   Customiza4on   Group   Customiza4on  
  • 22.
    22 Copyright ©2013, Oracle and/or its affiliates. All rights reserved. Adding Customization To ADF Applications •  Build the base application •  Enable MDS and seeded customization •  Optionally, create your own customization class –  Name –  Cache hint –  Layer name •  Configure customization classes in adf-config.xml –  Important: add UserCC customization object for user specific personalization
  • 23.
    23 Copyright ©2013, Oracle and/or its affiliates. All rights reserved. Default Customization Classes in ADF •  UserCC –  Returns the Principal name for authenticated user –  Use for end user personalization •  SiteCC –  Returns "site" as layer value •  ADFRolesCC –  Returns enterprise and application role names •  Use enterprise roles for site level customization •  Use application roles for seeded customization
  • 24.
    24 Copyright ©2013, Oracle and/or its affiliates. All rights reserved. Ho-to Build Seeded MDS Customizations Declarative Development •  Start Oracle JDeveloper with the Customization Developer Role •  Define metadata changes for defined customization layers •  Note that developer experience is the same as when creating base metadata •  Only existing metadata is customizable –  No Java objects
  • 25.
    25 Copyright ©2013, Oracle and/or its affiliates. All rights reserved. Packaging of Defined Customizations •  A Compressed archive of selected metadata •  Used to deploy metadata content to MDS repository •  Used by the following application types –  ADF applications –  SOA composite applications –  Oracle WebCenter Portal applications Metadata Archive (MAR)
  • 26.
    26 Copyright ©2013, Oracle and/or its affiliates. All rights reserved. Packaging of Defined Customizations Metadata Archive (MAR)
  • 27.
    27 Copyright ©2013, Oracle and/or its affiliates. All rights reserved. Program Agenda •  Intro •  Adaptation •  Personalization •  Customization •  Composer (Customization @ Runtime) •  Personalization & Customization Architecture
  • 28.
    28 Copyright ©2013, Oracle and/or its affiliates. All rights reserved. Oracle WebCenter •  Integrated set of products to build social applications, collaborative communities, composite applications and enterprise portals •  Product and Framework built based on Oracle ADF •  Leverages ADF Security for application security and customization authorization •  Separate license from Oracle ADF
  • 29.
    29 Copyright ©2013, Oracle and/or its affiliates. All rights reserved. Oracle WebCenter •  Browser based platform •  Allows page and layout customization at runtime •  Includes –  Resource Catalog to select view components and services (developed as task flows) –  Sandbox to test changes in isolation •  Provides additional ADF layout container components Oracle Composer
  • 30.
    30 Copyright ©2013, Oracle and/or its affiliates. All rights reserved. Program Agenda •  Intro •  Adaptation •  Personalization •  Customization •  Composer (Customization @ Runtime) •  Personalization & Customization Architecture
  • 31.
    31 Copyright ©2013, Oracle and/or its affiliates. All rights reserved. Layered Customization Runtime View Application View Controller ADF Model ADF BC Layer 1 Layer 2 Layer 3 Layer 4 Layer 5 Layer 6 Layer 7 Personalization Base App Seeded Customization
  • 32.
    32 Copyright ©2013, Oracle and/or its affiliates. All rights reserved. Application Runtime View
  • 33.
    33 Copyright ©2013, Oracle and/or its affiliates. All rights reserved.33 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. How many customization layers do I need and what is the number of layers I should not exceed? Image: imagerymajestic/ FreeDigitalPhotos.net
  • 34.
    34 Copyright ©2013, Oracle and/or its affiliates. All rights reserved.34 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Could I use customization for implementing security? Image: imagerymajestic/ FreeDigitalPhotos.net
  • 35.
    35 Copyright ©2013, Oracle and/or its affiliates. All rights reserved.35 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Anything I have to keep in mind when using MDS to implement security? Image: imagerymajestic/ FreeDigitalPhotos.net
  • 36.
    36 Copyright ©2013, Oracle and/or its affiliates. All rights reserved. Conclusion •  Customization and Personalization should be considered as part of the application design to avoid unnecessary coding •  Consider performance aspects when applying customizations and personalization features •  Customization may be used to enforce security. If you do so –  Ensure application is save when MDS repository content is missing –  Implement defense in depth in that you backup MDS security definitions in the application •  Consider a deployment strategy that allows you to upgrade applications and FMW components
  • 37.
    37 Copyright ©2013, Oracle and/or its affiliates. All rights reserved. Further Reading •  Building Customizable Applications Using Oracle Metadata Services (III) –  http://www.oracle.com/technetwork/articles/adf/part10-085778.html •  Fusion Middleware Fusion Developer's Guide : –  Customizing Applications with MDS •  http://docs.oracle.com/cd/E15523_01/web.1111/b31974/customize.htm#CFHBABEB –  Allowing User Customizations at Runtime •  http://docs.oracle.com/cd/E15523_01/web.1111/b31974/ad_persist.htm
  • 38.
    38 Copyright ©2013, Oracle and/or its affiliates. All rights reserved.