38
1 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Oracle ADF Architecture TV - Design - Application Customization and MDS

Embed Size (px)

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

Page 1: Oracle ADF Architecture TV - Design - Application Customization and MDS

1 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Page 2: Oracle ADF Architecture TV - Design - Application Customization and MDS

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

Page 3: Oracle ADF Architecture TV - Design - Application Customization and MDS

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

Page 4: Oracle ADF Architecture TV - Design - Application Customization and MDS

4 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Program Agenda

•  Intro •  Adaptation •  Personalization • Customization • Composer (Customization @ Runtime) •  Personalization & Customization Architecture

Page 5: Oracle ADF Architecture TV - Design - Application Customization and MDS

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

Page 6: Oracle ADF Architecture TV - Design - Application Customization and MDS

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?

Page 7: Oracle ADF Architecture TV - Design - Application Customization and MDS

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

Page 8: Oracle ADF Architecture TV - Design - Application Customization and MDS

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

Page 9: Oracle ADF Architecture TV - Design - Application Customization and MDS

9 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Program Agenda

•  Intro •  Adaptation •  Personalization • Customization • Composer (Customization @ Runtime) •  Personalization & Customization Architecture

Page 10: Oracle ADF Architecture TV - Design - Application Customization and MDS

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

Page 11: Oracle ADF Architecture TV - Design - Application Customization and MDS

11 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Program Agenda

•  Intro •  Adaptation •  Personalization • Customization • Composer (Customization @ Runtime) •  Personalization & Customization Architecture

Page 12: Oracle ADF Architecture TV - Design - Application Customization and MDS

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 …

Page 13: Oracle ADF Architecture TV - Design - Application Customization and MDS

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

Page 14: Oracle ADF Architecture TV - Design - Application Customization and MDS

14 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Personalization With MDS Or Without?

Page 15: Oracle ADF Architecture TV - Design - Application Customization and MDS

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

Page 16: Oracle ADF Architecture TV - Design - Application Customization and MDS

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

Page 17: Oracle ADF Architecture TV - Design - Application Customization and MDS

17 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Program Agenda

•  Intro •  Adaptation •  Personalization • Customization • Composer (Customization @ Runtime) •  Personalization & Customization Architecture

Page 18: Oracle ADF Architecture TV - Design - Application Customization and MDS

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 …

Page 19: Oracle ADF Architecture TV - Design - Application Customization and MDS

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

Page 20: Oracle ADF Architecture TV - Design - Application Customization and MDS

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"

Page 21: Oracle ADF Architecture TV - Design - Application Customization and MDS

21 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Metadata Customization

Base  App   Individual  Customiza4on  

Individual  Customiza4on  

Group  Customiza4on  

Group  Customiza4on  

Page 22: Oracle ADF Architecture TV - Design - Application Customization and MDS

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

Page 23: Oracle ADF Architecture TV - Design - Application Customization and MDS

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

Page 24: Oracle ADF Architecture TV - Design - Application Customization and MDS

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

Page 25: Oracle ADF Architecture TV - Design - Application Customization and MDS

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)

Page 26: Oracle ADF Architecture TV - Design - Application Customization and MDS

26 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Packaging of Defined Customizations Metadata Archive (MAR)

Page 27: Oracle ADF Architecture TV - Design - Application Customization and MDS

27 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Program Agenda

•  Intro •  Adaptation •  Personalization • Customization • Composer (Customization @ Runtime) •  Personalization & Customization Architecture

Page 28: Oracle ADF Architecture TV - Design - Application Customization and MDS

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

Page 29: Oracle ADF Architecture TV - Design - Application Customization and MDS

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

Page 30: Oracle ADF Architecture TV - Design - Application Customization and MDS

30 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Program Agenda

•  Intro •  Adaptation •  Personalization • Customization • Composer (Customization @ Runtime) •  Personalization & Customization Architecture

Page 31: Oracle ADF Architecture TV - Design - Application Customization and MDS

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

Page 32: Oracle ADF Architecture TV - Design - Application Customization and MDS

32 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Application Runtime View

Page 33: Oracle ADF Architecture TV - Design - Application Customization and MDS

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

Page 34: Oracle ADF Architecture TV - Design - Application Customization and MDS

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

Page 35: Oracle ADF Architecture TV - Design - Application Customization and MDS

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

Page 36: Oracle ADF Architecture TV - Design - Application Customization and MDS

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

Page 37: Oracle ADF Architecture TV - Design - Application Customization and MDS

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

Page 38: Oracle ADF Architecture TV - Design - Application Customization and MDS

38 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.