Oracle ADF Architecture TV - Design - ADF Service Architectures
Oracle ADF Architecture TV - Design - Task Flow Navigation Options
-
Upload
chris-muir -
Category
Technology
-
view
179 -
download
1
description
Transcript of Oracle ADF Architecture TV - Design - Task Flow Navigation Options
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.