Oracle ADF Architecture TV - Design - Application Customization and MDS

Preview:

DESCRIPTION

Slides from Oracle's ADF Architecture TV series covering the Design phase of ADF projects, investigating application customisation and MDS. Like to know more? Check out: - Subscribe to the YouTube channel - http://bit.ly/adftvsub - Design Playlist - http://www.youtube.com/playlist?list=PLJz3HAsCPVaSemIjFk4lfokNynzp5Euet - Read the episode index on the ADF Architecture Square - http://bit.ly/adfarchsquare

Citation preview

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.

Recommended