Oracle ADF Architecture TV - Design - Task Flow Navigation Options

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

description

Slides from Oracle's ADF Architecture TV series covering the Design phase of ADF projects, covering different task flow navigation options. 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

Transcript of Oracle ADF Architecture TV - Design - Task Flow Navigation Options

Page 1: Oracle ADF Architecture TV - Design - Task Flow Navigation Options

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

Page 2: Oracle ADF Architecture TV - Design - Task Flow Navigation Options

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

Real World ADF Design & Architecture Principles Task Flow Navigation Options

ORACLE PRODUCT

LOGO

15th Feb 2013 v1.0

Page 3: Oracle ADF Architecture TV - Design - Task Flow Navigation Options

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

Learning Objectives

•  At the end of this module you should be able to:

– Understand the different ways task flows can be combined – Appreciate that the different way task flows call or embed each

other provide functionality and introduce limitations –  Identify issues of runtime performance and memory consumption

based on your task flow navigation patterns

Image: imagerymajestic/ FreeDigitalPhotos.net

Page 4: Oracle ADF Architecture TV - Design - Task Flow Navigation Options

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

Program Agenda

•  Task Flow Navigation •  Unbounded vs Bounded Task Flows •  Types of Interfaces •  Inter-task flow navigation

– Stack navigation – Network navigation – Hybrid navigation – Dashboard navigation – Parallel navigation

Page 5: Oracle ADF Architecture TV - Design - Task Flow Navigation Options

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

Task Flow Navigation

•  Task flows provide different navigation patterns, both – Within the navigation you create at DT in UTFs and BTFs – Also due to the limitations/features of each – And also how task flows call each other

•  This can influence the user experiences •  And can have runtime performance considerations

Page 6: Oracle ADF Architecture TV - Design - Task Flow Navigation Options

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

Program Agenda

•  Task Flow Navigation •  Unbounded vs Bounded Task Flows •  Types of Interfaces •  Inter-task flow navigation

– Stack navigation – Network navigation – Hybrid navigation – Dashboard navigation – Parallel navigation

Page 7: Oracle ADF Architecture TV - Design - Task Flow Navigation Options

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

Unbounded Task Flow Example

Page 8: Oracle ADF Architecture TV - Design - Task Flow Navigation Options

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

Unbounded Task Flows

•  There is no set start or end to the UTF – User can enter/exit application at any point

•  Navigation can be: – User free form

• Minimum amount of steps to get to any activity is 1 •  Isolated activities are still accessible via URLs

– Structured at design time • Developers optionally define static uni or bi-directional navigation rules • Wildcards provide a uni-direction navigation

Key Navigation Features

Page 9: Oracle ADF Architecture TV - Design - Task Flow Navigation Options

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

Bounded Task Flow Example

Page 10: Oracle ADF Architecture TV - Design - Task Flow Navigation Options

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

Bounded Task Flow Navigation

•  One defined entry point, multiple defined exit points •  No free-form navigation •  Uni & bi-directional & wildcard navigation available •  Activities are not accessible via URL •  The minimum number of steps to any activity is defined at design time •  Isolated nodes are inaccessible

Key Navigation Features

Page 11: Oracle ADF Architecture TV - Design - Task Flow Navigation Options

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

Program Agenda

•  Task Flow Navigation •  Unbounded vs Bounded Task Flows •  Types of Interfaces •  Inter-task flow navigation

– Stack navigation – Network navigation – Hybrid navigation – Dashboard navigation – Parallel navigation

Page 12: Oracle ADF Architecture TV - Design - Task Flow Navigation Options

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

Drill Up/Down Interface

Page 13: Oracle ADF Architecture TV - Design - Task Flow Navigation Options

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

Wizard Interface

Page 14: Oracle ADF Architecture TV - Design - Task Flow Navigation Options

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

Dashboard Interface

Page 15: Oracle ADF Architecture TV - Design - Task Flow Navigation Options

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

ADF UI Shell

Page 16: Oracle ADF Architecture TV - Design - Task Flow Navigation Options

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

Program Agenda

•  Task Flow Navigation •  Unbounded vs Bounded Task Flows •  Types of Interfaces •  Inter-Task Flow Navigation

– Stack Navigation – Network Navigation – Hybrid Navigation – Dashboard Navigation – Parallel Navigation

Page 17: Oracle ADF Architecture TV - Design - Task Flow Navigation Options

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

Inter-Task Flow Navigation

•  Definition: How task flows call task flows •  To call a BTF based on pages we use a task

flow call •  To use a fragment BTF we embed the BTF

as a region – Either in a page – Or another fragment – Contained within another task flow

Image: stockimages/ FreeDigitalPhotos.net

Page 18: Oracle ADF Architecture TV - Design - Task Flow Navigation Options

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

Stack Navigation •  Suitable for page or page fragment task

flows

•  One task flows calls another without terminating first – A source task flow calls a destination task

flow – Control is passed to the destination task

flow until it terminates – Upon which control is passed back to the

source/caller

Image: artemisphoto / FreeDigitalPhotos.net

Page 19: Oracle ADF Architecture TV - Design - Task Flow Navigation Options

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

Stack Navigation – Runtime Behavior

•  Task flow calls/returns allow stack to grow/shrink

•  In the stack –  The state of the source task flow is

persisted over the call –  The state of the destination task flow

exists for its life

Image: renjith krishnan/ FreeDigitalPhotos.net

Page 20: Oracle ADF Architecture TV - Design - Task Flow Navigation Options

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

Stack Navigation – Advantages/Disadvantages

•  As we progress into the stack –  The previous task flows are still active –  Their state is stored in memory –  Consuming more memory the deeper in the stack we go

•  Vice versa, on returning to previous item in the stack –  There’s no need to restore the state, requery data –  It’s stored in memory

•  The stack order is inflexible (tightly coupled)

Page 21: Oracle ADF Architecture TV - Design - Task Flow Navigation Options

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

What Could Be Stored in Memory? •  ADF BC AM/VO/EOs

•  For period of request (could be passivated but will live at least for the request)

•  ADF BC has no knowledge of what BTFs use what VOs/EOs, so it cannot selectively passivate/activate content

•  Plus user data map in session

•  Binding layer objects •  Bounded task flow state and pageFlow Scope

•  Task Flow state is kept in a HashMap in user session •  The deeper the stack, more memory consumed

•  UI component tree and managed beans

Page 22: Oracle ADF Architecture TV - Design - Task Flow Navigation Options

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

Stack Navigation

Page 23: Oracle ADF Architecture TV - Design - Task Flow Navigation Options

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

Network Navigation

•  Chains task flows using a composite task flow – Composite comprises task flow

calls and navigation rules between them

–  Individual task flows do not call each other

Image: sheelamohan / FreeDigitalPhotos.net

Page 24: Oracle ADF Architecture TV - Design - Task Flow Navigation Options

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

Network Navigation – Runtime Behavior

•  At most there’s only 2 task flows on the stack –  The composite and the called

task flow

Image: creativedoxfoto/ FreeDigitalPhotos.net

Page 25: Oracle ADF Architecture TV - Design - Task Flow Navigation Options

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

Network Navigation – Advantages/Disadvantages

•  Smaller memory footprint •  If we need to revisit a previous task flow, as it’s state is lost, we

need to do additional processing to reestablish the state

Page 26: Oracle ADF Architecture TV - Design - Task Flow Navigation Options

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

Network Navigation

Page 27: Oracle ADF Architecture TV - Design - Task Flow Navigation Options

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

Hybrid Navigation

Page 28: Oracle ADF Architecture TV - Design - Task Flow Navigation Options

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

Dashboard Navigation

Task Flow

Page/Fragment

Region

Bounded Task Flow

Fragment Fragment

Bounded Task Flow

Region Fragment Fragment

Page 29: Oracle ADF Architecture TV - Design - Task Flow Navigation Options

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

ADF UI Shell

Page 30: Oracle ADF Architecture TV - Design - Task Flow Navigation Options

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

Dashboard Navigation

•  Page/page fragments includes one or more regions •  Regions are nested calls to other task flows

•  Nested navigation is independent of parent task flow •  Can be stack, network or hybrid

•  Task flow stack is always minimum of 2 deep

Page 31: Oracle ADF Architecture TV - Design - Task Flow Navigation Options

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

Dashboard Navigation

•  Nested BTFs can communicate to parent through contextual events and parent actions

•  On termination of nested BTF there’s no way to access the BTF’s return parameters

•  Each region is equivalent of 2 level stack •  State of caller runs in parallel with nested region

Page 32: Oracle ADF Architecture TV - Design - Task Flow Navigation Options

32 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 32 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Image: Ambro / FreeDigitalPhotos.net

The more regions you have: the more memory is required, more processing is required,

more page interactions; this makes the developer’s and

maintainer’s job harder

Page 33: Oracle ADF Architecture TV - Design - Task Flow Navigation Options

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

Parallel Navigation

•  BTFs can be embedded as: –  Inline popups = Nested region navigation – External browser windows or tabs = Parallel navigation

•  Same user HTTP session •  Different pageFlowScope, backingBeanScope beans and

processing •  Need to share and separate state carefully

Page 34: Oracle ADF Architecture TV - Design - Task Flow Navigation Options

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

Conclusion

•  The manner in which you call task flows can influence: –  The user experience –  Which features you have at your disposal –  What limitations you will need to workaround –  And impact the performance of your system

Page 35: Oracle ADF Architecture TV - Design - Task Flow Navigation Options

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

Further Reading

•  Fusion Developer's Guide for ADF v11.1.2.3.0 –  Section 19.6 Using Task Flow Call Activities

•  http://bit.ly/adfdevguide11123sect196 –  Section 19.0 Using Parent Action Activities

•  http://bit.ly/adfdevguide11123sect199 –  Section 38 Using Contextual Events

•  http://bit.ly/adfdevguide11123sect34

Page 36: Oracle ADF Architecture TV - Design - Task Flow Navigation Options

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