Bounded Task flow Design Considerations

243 views
Skip to first unread message

MSA

unread,
Jun 20, 2011, 4:06:36 AM6/20/11
to ADF Enterprise Methodology Group
Hi all,

This is rather a new bee question on task flows and expecting an
expert help from you all on the design of bounded task flows.
To be clear on the background, our applications currently driven by
unbounded task flows which is defined in adfc-config as a single very
large task flow. The reason for this is these applications are coming
from old forms. The single large unbounded task flow mimics the menu
driven behavior of the old forms application. Once a user is logged in
he is taken to a home page where all the relevant links to the pages
are displayed and upon clicking, the linked page is loaded. You can
navigate from any page to any other page at any time by clicking on
the menu item.
But when consider the bounded task flow features, what we currently
have has several design and run time issues.

--Single large unbounded task flow is loaded into memory at once and
stay loaded for the entire lifetime of the app
--Has to manually code and tweak the things when actually we need a
task flow
--Has to manually check for whether a transaction is dirty when
navigating away from the current page.

and many more issues due to struggling around the framework just
because not following the standard features given by the framework.
I'm coming from the Java/Spring background and greatly experience the
disconnection between the ADF framework features and the way our
applications have been designed. This can be due to lack of ADF
knowledge augmented by the Forms design influence.

As I believe adopting bounded task flows could solve about 80% of our
issues at least if the tech whitepapers and the publicly available
info about BTF is true.
So my questions is what is the design consideration, eg
--how the pages/page fragments should be categorized in to task flows
while also keeping the menu driven behavior?
--how should the task flows be called ( from an unbounded task flow or
from another BTF ?)
--The menu to be created in an unbounded task flow which calls another
BTF and using a router, call other relevant BTFs depending on the menu
item. Is this the way?

I'm quit sure, here there are people with the expertise on how to
organize the bounded task flows, or how a forms application is
recreated in ADF with the use of Bounded task flows. Please share your
thoughts.
Note: Currently we have about 200 jspx on average which is in a
single huge unbounded task flow.

Thanks

Grant Ronald

unread,
Jun 20, 2011, 5:00:15 AM6/20/11
to adf-met...@googlegroups.com
I don't know if I can answer all of your questions here but let me make
a couple of points which might help.

Firstly, you are right in raising a concern about a single monolithic
unbounded task flow. Typically a bounded task flow can be thought of
mimicking a function of work. In the same way a Forms application
wouldn't be designed inside one massive FMB. So while an BTF != FMB the
thought process of how a business process was broken into FMBs could be
used to decide on a task flow break down.

The second point is that your statement "The reason for this is these
applications are coming from old forms" (I assume you mean Oracle
Forms?) This raises alarm bells since it indicates that your design for
your JEE application is being driven by an old (client/server)
technology. Its like telling me you are designing a new Ferrari but you
are basing all your design decisions on the fact you currently own a
1980 VW Golf

The next point, you have to know ADF to architect ADF applications. If
you are a JEE expert who doesn't know ADF but architects an ADF
application then you run the risk of fighting the natural "feel" of an
ADF application. Generally speaking a Forms application can map to ADF
pretty well - given that Forms are typically database driven and ADF BC
naturally mirrors Forms blocks/properties. So there shouldn't be a big
disconnect..if there is, that would be a point of concern.

As for more details on task flow use, you would possibly think of the
top level UTF as containing all the entry points into your application.
If you can only enter your application from one point, e.g. a top level
"menu" then this would be a single noded UTF with many BTF being called
from it...and if you want to call other BTF from those then that is fine.

However there are other ways of achieving this; see the following as a
couple of examples:
http://www.oracle.com/technetwork/developer-tools/adf/learnmore/48-sitemenu-protection-169190.pdf
http://www.orastudy.com/oradoc/selfstu/fusion/doc.1111/e15524/ui_impl_uishell.htm#CJABBICC

At the risk of repeating myself, if redeveloping an Oracle Forms
application, while you may well be influenced by the existing
application, your design should not be driven or constrained by it.
Given you are embarking on a considerable (or even massive!)
redevelopment effort, shouldn't the business be able to garner some
benefits of that effort rather than just mimicking exactly what they had
before.

Don't know if any of this helps ;o) but hope it does.

Grant

grant_ronald.vcf

Sashika

unread,
Jun 20, 2011, 5:48:45 AM6/20/11
to adf-met...@googlegroups.com
Hi Grant,

Any form of help is greatly appreciated in this regard. I just skimmed through the links you provided and seems i can grasp something from it too. Should read it fully tonight. regarding the comment "If you are a JEE expert who doesn't know ADF but architects an ADF application then you run the risk of fighting the natural "feel" of an ADF application" what exactly i'm trying to do is trying to architect an ADF application in the ADF way by initially adapting a core feature of ADF, ie Task Flows. Coming from a Java background I believe grasping the Java nature of ADF and immediately identifying great features is easy I guess.

Thanks



--
You received this message because you are subscribed to the ADF Enterprise Methodology Group (http://groups.google.com/group/adf-methodology). To unsubscribe send email to adf-methodology+unsubscribe@googlegroups.com

All content to the ADF EMG lies under the Creative Commons Attribution 3.0 Unported License (http://creativecommons.org/licenses/by/3.0/).  Any content sourced must be attributed back to the ADF EMG with a link to the Google Group (http://groups.google.com/group/adf-methodology).

STEVEN DAVELAAR

unread,
Jun 21, 2011, 10:54:40 AM6/21/11
to adf-met...@googlegroups.com, Sashika
I would recommend you to start using bounded taskflows with page fragments that can be reused as a (dynamic) region on a page.
Each BTF is self-containing and can have a set of input parameters which can be seen as the contract with the outside world.
By using BTF's with page fragments you are bringing the concept of service-oriented development to the user interface level.

By using BTF's with page fragments, you can access them in a variety of ways, for example:
- a forms-like pulldown menu
- a tabbed menu
- a tree menu with dynamic tabs
- from a workflow tasklist
- using Webcenter Composer

In your "Forms" scenario, you will probably start with accessing them from a tabbed or pulldown menu. I would start to match one BTF more or less with one form.
The way this would work is that the unbounded taskflow contains only one page, typically called the UIShell page.
This UIShell page contains the menu (which you can define in the page itself or in the page template the page is based on), and a dynamic region.
When you click a menu tab/option, you display the corresponding taskflow in the dynamic region.

While this introduces a bit more complexity in your application, the flexibility, reusability, productivity and maintainability will greatly increase.
All my customers are using this model and it works like a charm.

With some simple yet powerful infrastructure classes you can hide most of the additional complexity from your development team.
Next week, I will be presenting on this very topic at ODTUG Kaleidoscope. For my presentation, I have put together a presentation highlighting the main concepts of this approach, and a sample application that showcases the concepts.
If you are interested, I can send you the slides and the demo application.

Regards,
Steven Davelaar,
JHeadstart Team
Oracle Consulting.
You received this message because you are subscribed to the ADF Enterprise Methodology Group (http://groups.google.com/group/adf-methodology). To unsubscribe send email to adf-methodolo...@googlegroups.com


All content to the ADF EMG lies under the Creative Commons Attribution 3.0 Unported License (http://creativecommons.org/licenses/by/3.0/).  Any content sourced must be attributed back to the ADF EMG with a link to the Google Group (http://groups.google.com/group/adf-methodology).

--
You received this message because you are subscribed to the ADF Enterprise Methodology Group (http://groups.google.com/group/adf-methodology). To unsubscribe send email to adf-methodolo...@googlegroups.com

Trevor Oates

unread,
Jun 21, 2011, 11:51:31 AM6/21/11
to adf-met...@googlegroups.com
Hi Steven,
 
we are due to start an ADF project where we will be re-designing an existing forms application in ADF.  We are very keen to adopt all best practice design patterns and see taskflows as being particularly fundamental to our application design and developement.
 
I would very much appreciate a copy of your presentation along with the demo application.  I'm sure this will save us many hours of work and act as a great teaching aid.  Many thanks in advance.
 
Regards, Trevor.

John Flack

unread,
Jun 21, 2011, 12:42:26 PM6/21/11
to adf-met...@googlegroups.com
Trevor -
All K'Scope presentations are now available to registrants at http://kscope11.com/ by signing in with the id and password you created when you registered.  You might want to wait, though - most of us revise and post new versions, until we give the final version.  After the conference, presentations will be made available to ODTUG members at http://www.odtug.com/.

Grant Ronald

unread,
Jun 21, 2011, 12:42:44 PM6/21/11
to adf-met...@googlegroups.com
FYI - I'm in the final stages of publishing a sample Forms to ADF
rewrite project with write up and sample app. I've got a few of you on
the list ear marked to kick the tyres - hopefully I'll get it out in the
next week or so...

Grant

Trevor Oates wrote:
> Hi Steven,
>
> we are due to start an ADF project where we will be re-designing an
> existing forms application in ADF. We are very keen to adopt all best
> practice design patterns and see taskflows as being particularly
> fundamental to our application design and developement.
>
> I would very much appreciate a copy of your presentation along with
> the demo application. I'm sure this will save us many hours of work
> and act as a great teaching aid. Many thanks in advance.
>
> Regards, Trevor.
> On 21 June 2011 15:54, STEVEN DAVELAAR <steven....@oracle.com

> Kaleidoscope <http://www.kscope11.com/>. For my presentation, I


> have put together a presentation highlighting the main concepts of
> this approach, and a sample application that showcases the concepts.
> If you are interested, I can send you the slides and the demo
> application.
>
> Regards,
> Steven Davelaar,
> JHeadstart

> <http://www.oracle.com/technetwork/developer-tools/jheadstart/overview/index.html>Team

>> <mailto:adf-methodology%2Bunsu...@googlegroups.com>


>>
>> All content to the ADF EMG lies under the Creative Commons
>> Attribution 3.0 Unported License
>> (http://creativecommons.org/licenses/by/3.0/). Any content
>> sourced must be attributed back to the ADF EMG with a link to
>> the Google Group
>> (http://groups.google.com/group/adf-methodology).
>>
>>
>> --
>> You received this message because you are subscribed to the ADF
>> Enterprise Methodology Group
>> (http://groups.google.com/group/adf-methodology). To unsubscribe
>> send email to adf-methodolo...@googlegroups.com

>> <mailto:adf-methodolo...@googlegroups.com>


>>
>> All content to the ADF EMG lies under the Creative Commons
>> Attribution 3.0 Unported License
>> (http://creativecommons.org/licenses/by/3.0/). Any content
>> sourced must be attributed back to the ADF EMG with a link to the
>> Google Group (http://groups.google.com/group/adf-methodology).
> --
> You received this message because you are subscribed to the ADF
> Enterprise Methodology Group
> (http://groups.google.com/group/adf-methodology). To unsubscribe
> send email to adf-methodolo...@googlegroups.com

> <mailto:adf-methodology%2Bunsu...@googlegroups.com>

grant_ronald.vcf

Jean-Marc Desvaux

unread,
Jun 21, 2011, 12:52:25 PM6/21/11
to adf-met...@googlegroups.com, Sashika
The approach described by Steven is a great way indeed to use Task Flows.

However, it seems to me that a BTF version say 11.1.1.3 deployed  in a library and consumed by a 11.1.1.3 application won't work when called from the application if migrated to say 11.1.2 unless the BTF is migrated to 11.1.2.
Anyone can confirm this ? 

If it's not the case then the following might be a concern when using lots of  BTFs and consuming them from a single page like the UIShell page :
If you have a lot of applications available you won't be able to move progressively project by project but only once all BTFs have been migrated. 
This is not always a good thing specially if you don't have the resource to migrate all at once and It is preferable to deal with upgrades of smaller applications and allowing multiple versions to work together at least during a transition period.
Also, if you have a BTF used by all your applications, will you manage multiple versions of the BTFs to allow them to work with the multiple versions of the consuming applications ?

What we do to avoid this is we try to separate our applications into smaller applications of a manageable size and call them from a central page that has no dependency on the called application version.


Regards,
Jean-Marc

luc...@gmail.com

unread,
Jun 21, 2011, 3:49:29 PM6/21/11
to Jean-Marc Desvaux, adf-met...@googlegroups.com, Sashika
Hi all,

At Kscope next week I will be presenting on forms modernization.
This is a summary presentation of a real life modernization project.
I'll cover the business case, organization changes, the parallels between forms and ADF.
Also a bit of JHeadstart Forms2ADF (but I better leave most of that to Steven).
Finally what to do with PL/SQL, what architectural considerations to make and lessons learned.

Regards.

Andreas Leidner

unread,
Jun 22, 2011, 1:00:55 PM6/22/11
to ADF Enterprise Methodology Group
We're currently working on extending our existing large Forms
application
with an ADF application. We use exactly the approach you described.
However, I'm wondering if this necessitates coupling all the projects/
JDev
apps which contain or provide the BTFs with the main project/app which
contains the UIShell-based JSPX page? Is this really the only way to
have
the one JSPX page be able to call any of the BTFs? If I imagine a very
large ADF app (our Forms app has about 700 FMXs and 1500 modules in
total)
this would result in one project having dependencies to a very large
number
of projects containing BTFs and also one really huge web application
being
deployed to the WebLogic server.

Could you send me the slides for the presentation you mentioned, too?
I'm
very interested in that.

Regards,
Andreas

On Jun 21, 4:54 pm, STEVEN DAVELAAR <steven.davel...@oracle.com>
wrote:
> <http://www.kscope11.com/>. For my presentation, I have put together a
> presentation highlighting the main concepts of this approach, and a
> sample application that showcases the concepts.
> If you are interested, I can send you the slides and the demo application.
>
> Regards,
> Steven Davelaar,
> JHeadstart
> <http://www.oracle.com/technetwork/developer-tools/jheadstart/overview...>Team
> Oracle Consulting.
>
> On 20/06/2011 11:48, Sashika wrote:
>
>
>
> > Hi Grant,
>
> > Any form of help is greatly appreciated in this regard. I just skimmed
> > through the links you provided and seems i can grasp something from it
> > too. Should read it fully tonight. regarding the comment "If you are a
> > JEE expert who doesn't know ADF but architects an ADF application then
> > you run the risk of fighting the natural "feel" of an ADF application"
> > what exactly i'm trying to do is trying to architect an ADF
> > application in the ADF way by initially adapting a core feature of
> > ADF, ie Task Flows. Coming from a Java background I believe grasping
> > the Java nature of ADF and immediately identifying great features is
> > easy I guess.
>
> > Thanks
>
> >    http://www.oracle.com/technetwork/developer-tools/adf/learnmore/48-si...
> >    http://www.orastudy.com/oradoc/selfstu/fusion/doc.1111/e15524/ui_impl...
> >     <mailto:adf-methodology%2Bunsu...@googlegroups.com>

Steven

unread,
Jun 22, 2011, 2:17:21 PM6/22/11
to adf-met...@googlegroups.com, ADF Enterprise Methodology Group
Andreas,

You don't need to create project dependencies in Jdeveloper.
You can have separate workspaces each deploying to an adf library.

Your main viewcontroller project can include all adf libs which would indeed give a huge deployment file. If you don't want that, you can deploy the various adf libs as a shared library to weblogic. See this blog post for more info:

http://rimmidis.blogspot.com/2010/02/how-to-package-project-to-be-shared.html

Regarding the slides, I will publish the final version on the JHeadstart blog, right after my presentation at ODTUG next week. I will also make the demo app downloadable from the jheadstart blog.

Regards,
Steven

fnimphiu

unread,
Jun 22, 2011, 3:58:11 PM6/22/11
to ADF Enterprise Methodology Group

Interesting observation on this topic that it follows a bottom-up
approach in which the use of task flow is agreed on and now you are
looking into how the use cases fit. I think that from an application
design perspective a top-down approach is better to use as this makes
the business driving the technology choice.

Frank

Passmore, Richard

unread,
Jun 22, 2011, 3:22:04 PM6/22/11
to adf-met...@googlegroups.com
Remember, of course, that if you want to debug anything, deploying to a shared library will exclude debugging into those areas of the project - at least, that's been true SO FAR for my stuff. Our application is arranged using the "shared libraries" approach and, while it does divide up the work a bit, it makes it that much more complex to figure out what's going on - especially if somebody deploys the jar but doesn't check in the source for it. :-) I've heard many times that this is the Oracle "preferred arrangement" for large distributed projects but, so far, it just causes me more pain.

Richard Passmore

Aino

unread,
Jun 22, 2011, 5:04:49 PM6/22/11
to adf-met...@googlegroups.com
Hi Richard,

I totally agree with you. It's still one of my main concerns why the development experience in JDeveloper for the preferred architecture has this limitations.

We've divided our 'application' into separate modules (with multiple taskflows) that are delivered as separate ADF libraries and included in a main WebApp.
We're more or less able to manage it with a strict delivery/deployment approach using Maven, ant and ojdeploy, but it's hard work to set up and still causes problems for the developers. Although it has improved, it still doesn't feel like it's the natural way to develop with JDeveloper.
In addition it's also a main annoyance that test files in each module become a part of the project and are included in the ADF library and cannot be filtered out with the deployment profile.

But we've managed so far and I'm hopeful that this approach will be better supported in the future.

Ciao
  Aino

Andreas Leidner

unread,
Jun 23, 2011, 2:00:28 AM6/23/11
to ADF Enterprise Methodology Group
Steven,

we already decided to deploy the projects to ADF libraries. Thanks
very much for the hint regarding the shared weblogic libraries! Might
also be a good way to manage the patching / deploying hotfixes part
for the application. Just what I was looking for.

Regards,
Andreas


On Jun 22, 8:17 pm, Steven <steven.davel...@oracle.com> wrote:
> Andreas,
>
> You don't need to create project dependencies in Jdeveloper.
> You can have separate workspaces each deploying to an adf library.
>
> Your main viewcontroller project can include all adf libs which would indeed give a huge deployment file. If you don't want that, you can deploy the various adf libs as a shared library to weblogic. See this blog post for more info:
>
> http://rimmidis.blogspot.com/2010/02/how-to-package-project-to-be-sha...
>
> Regarding the slides, I will publish the final version on the JHeadstart blog, right after my presentation at ODTUG next week. I will also make the demo app downloadable from the jheadstart blog.  
>
> Regards,
> Steven
>
> ...
>
> read more »

Andrejus Baranovskis

unread,
Jun 23, 2011, 3:01:02 AM6/23/11
to adf-met...@googlegroups.com
Hi Andreas,

Shared WebLogic libraries is definitely right way to go.



Andrejus


--
You received this message because you are subscribed to the ADF Enterprise Methodology Group (http://groups.google.com/group/adf-methodology). To unsubscribe send email to adf-methodolo...@googlegroups.com

All content to the ADF EMG lies under the Creative Commons Attribution 3.0 Unported License (http://creativecommons.org/licenses/by/3.0/).  Any content sourced must be attributed back to the ADF EMG with a link to the Google Group (http://groups.google.com/group/adf-methodology).



--
Oracle ACE Director

My Blog - http://andrejusb.blogspot.com/
My JDev/ADF Samples list - http://andrejusb-samples.blogspot.com/

Steven

unread,
Jun 23, 2011, 2:01:04 PM6/23/11
to adf-met...@googlegroups.com, ADF Enterprise Methodology Group
Frank,

Can you explain your observation in more detail, i don't think i understand it.

Regards,
Steven

fnimphiu

unread,
Jun 24, 2011, 10:00:13 AM6/24/11
to ADF Enterprise Methodology Group

What I mean is that usually you will start from a use case and then
think about

- does the use case need to be broken down into sub-flows (units)
- how can the use case be decomposed ?
- which parts need to be re-usable ?
- how do you need to get out of this use case (exit, return to
start, ...)
- does this use case require its own transaction ?
- does this use case run embedded in a page?
- will the use case be executed in a popup?

Based on this requirements you then look for the best task flow
implementation. This thread started the opposite in asking for what is
best practices when working with task flows. So I think a better look
for best practices is going top-down, defining use cases and
requirements to then answer what is the best way to put them

Frank

On Jun 23, 8:01 pm, Steven <steven.davel...@oracle.com> wrote:
> Frank,
>
> Can you explain your observation in more detail, i don't think i understand it.
>
> Regards,
> Steven
>

Sashika

unread,
Jun 24, 2011, 11:02:05 AM6/24/11
to adf-met...@googlegroups.com
Still we need a standard way of organizing/Using the task flows that is obviously constrained within the technology. Just like we selected Jdev/ADF/Fusion technology first and then think how the applications or use cases can be built (Bottom Up) we would also prefer to look for what the framework can offer and then use cases to be implemented using those. If we start with pure use cases and then look around the best of the best way we could implement it, usually most of it falls outside the fusion stack. But we have already made a decision of the technology and want to better capitalize on it, thus it is a necessity to go bottom every time and come up through the framework capabilities that ideally implement the exact business requirements. Do we have the liberty for an alternate approach?  

STEVEN DAVELAAR

unread,
Jul 8, 2011, 6:02:24 AM7/8/11
to adf-met...@googlegroups.com
All,

I just finished a weblog on this topic: http://blogs.oracle.com/jheadstart/entry/core_adf11_uishell_with_menu
At the bottom of the blog post you can find the slides of my ODTUG presentation, as well as demo apps fo JDev 11.1.2 and Jdev 11.1.1.4.

Regards,
Steven.

On 21/06/2011 20:00, Sashika wrote:
@STEVEN

It would be great if you can send me the slides and the demo. Specially I would like to see how the BTF could  be effectively used in a real world enterprise application.

My email address is sash...@gmail.com
Thanks

--

Steven Davelaar| Technology Director | Oracle Consulting
Tel +31 30 669 8113 | Fax +31 30 669 9966
Oracle Nederland BV | Rijnzathe 6, 3454 PV De Meern, The Netherlands
PO Box 147, 3454 ZJ De Meern,The Netherlands | KvK nr. 30096087
Oracle Expert Services | JHeadstart
Reply all
Reply to author
Forward
0 new messages