More Related Content Similar to Oracle ADF Architecture TV - Design - Task Flow Navigation Options (20) Oracle ADF Architecture TV - Design - Task Flow Navigation Options1. 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
Task Flow Navigation Options
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:
– 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 36 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.