oracle adf architecture tv - design - task flow navigation options
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/adfarchsquareTRANSCRIPT
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 Task Flow Navigation Options
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:
– 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
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
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
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
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
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
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
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
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
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
13 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 13 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Wizard Interface
14 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 14 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Dashboard Interface
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
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
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
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
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
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)
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
22 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 22 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Stack Navigation
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
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
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
26 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 26 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Network Navigation
27 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 27 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Hybrid Navigation
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
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
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
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
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
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
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
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
36 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.