You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cocoon.apache.org by ia...@jpmchase.com on 2006/01/11 17:00:22 UTC
CForms + Flowscript + AJAX
Dear List,
We have a CHS (Cocoon-Hibernate-Spring) application that uses a binary tree
implemented as an AJAX component. Since porting this app to Cocoon (it was
previously implemented using Spring MVC), we have been experiencing
difficulties with the tree. Specifically, the app doesn't respond to user
interaction with the tree until Cocoon has completed processing the current
request.
In researching this issue, I ran across the following from Sylvain Wallez
in the Cocoon-Users archive:
Execution of a flowscript is synchronized on the global variable scope,
which is bound to the session. Although this shouldn't be a problem in
real world as a single user is not very likely to send parallel
requests, you should verify that your load testing engine uses different
sessions (or no session at all) for the simulated concurrent users. That
may explain these numbers.
At this point, I'm trying to evaluate my options, which as I see it are:
1) Refactor flow control to use JavaFlow instead of flowscript (this is
assuming that JavaFlow isn't subject to the same synchronization as
flowscript)
2) Refactor the app to minimize the use of flow control
3) Host the AJAX component under a seperate servlet
Can someone tell me if JavaFlow suffers from the same synchronization
issues as flowscript? Also any recommendations for alternate approaches
would be welcome.
Thanks,
Ian
It's better to be hated for who you are
than loved for who you are not
Ian D. Stewart
Appl Dev Analyst-Advisory, DCS Automation
JPMorganChase Global Technology Infrastructure
Phone: (614) 244-2564
Pager: (888) 260-0078
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
For additional commands, e-mail: users-help@cocoon.apache.org
Re: CForms + Flowscript + AJAX
Posted by ia...@jpmchase.com.
The main page of our webapp consists of the tree on one side and a
scorecard type table on the other. The tree represents a hierarchical
display of the departments within the firm. The user navigates through the
tree to get to the department they are interested in, then clicks on the
department name to display the report for that department.
We had originally planned to load the entire tree at the time that the page
is loaded, but the sheer scope of the data involved makes this impractical.
Instead, we load only the top-level departments and use AJAX to add on
nodes as they are needed.
We are currently running into two problems with flowscript:
1) The user is unable to navigate through the tree until the current report
has finished loading. Depending on the department the report is being
generated for, this can be quite time consuming
2) When adding nodes to the tree, the nodes are added synchronously,
increasing the perceived time required to add all of the nodes, thereby
defeating the Asynchronous nature of AJAX.
At this stage we are using flowscript to access the domain objects used by
the web app (both by the tree and by the report), and this seems to be the
main bottleneck.
I take it that JavaFlow operates under the same synchronization scheme as
flowscript? If so, then I'm thinking the best approach would be to
re-implement the webapp so that it avoids the use of flowscript/JavaFlow.
Thanks,
Ian
It's better to be hated for who you are
than loved for who you are not
Ian D. Stewart
Appl Dev Analyst-Advisory, DCS Automation
JPMorganChase Global Technology Infrastructure
Phone: (614) 244-2564
Pager: (888) 260-0078
Sylvain Wallez
<sylvain@apache.o To: users@cocoon.apache.org
rg> cc:
Subject: Re: CForms + Flowscript + AJAX
01/11/2006 11:26
AM
Please respond to
users
ian.d.stewart@jpmchase.com wrote:
> Dear List,
>
> We have a CHS (Cocoon-Hibernate-Spring) application that uses a binary
tree
> implemented as an AJAX component. Since porting this app to Cocoon (it
was
> previously implemented using Spring MVC), we have been experiencing
> difficulties with the tree. Specifically, the app doesn't respond to
user
> interaction with the tree until Cocoon has completed processing the
current
> request.
>
What do you mean by "current request"? Do you mean the user clicks on
the tree before the current page is fully loaded?
> In researching this issue, I ran across the following from Sylvain Wallez
> in the Cocoon-Users archive:
>
> Execution of a flowscript is synchronized on the global variable
scope,
> which is bound to the session. Although this shouldn't be a problem in
> real world as a single user is not very likely to send parallel
> requests, you should verify that your load testing engine uses
different
>
> sessions (or no session at all) for the simulated concurrent users.
That
>
> may explain these numbers.
>
> At this point, I'm trying to evaluate my options, which as I see it are:
>
> 1) Refactor flow control to use JavaFlow instead of flowscript (this is
> assuming that JavaFlow isn't subject to the same synchronization as
> flowscript)
> 2) Refactor the app to minimize the use of flow control
> 3) Host the AJAX component under a seperate servlet
>
> Can someone tell me if JavaFlow suffers from the same synchronization
> issues as flowscript? Also any recommendations for alternate approaches
> would be welcome.
>
Would it be possible to have the tree data be stored in a session
attribute so that accessing it doesn't go through synchronization?
Sylvain
--
Sylvain Wallez Anyware Technologies
http://bluxte.net http://www.anyware-tech.com
Apache Software Foundation Member Research & Technology Director
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
For additional commands, e-mail: users-help@cocoon.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
For additional commands, e-mail: users-help@cocoon.apache.org
Re: CForms + Flowscript + AJAX
Posted by Sylvain Wallez <sy...@apache.org>.
ian.d.stewart@jpmchase.com wrote:
> Dear List,
>
> We have a CHS (Cocoon-Hibernate-Spring) application that uses a binary tree
> implemented as an AJAX component. Since porting this app to Cocoon (it was
> previously implemented using Spring MVC), we have been experiencing
> difficulties with the tree. Specifically, the app doesn't respond to user
> interaction with the tree until Cocoon has completed processing the current
> request.
>
What do you mean by "current request"? Do you mean the user clicks on
the tree before the current page is fully loaded?
> In researching this issue, I ran across the following from Sylvain Wallez
> in the Cocoon-Users archive:
>
> Execution of a flowscript is synchronized on the global variable scope,
> which is bound to the session. Although this shouldn't be a problem in
> real world as a single user is not very likely to send parallel
> requests, you should verify that your load testing engine uses different
>
> sessions (or no session at all) for the simulated concurrent users. That
>
> may explain these numbers.
>
> At this point, I'm trying to evaluate my options, which as I see it are:
>
> 1) Refactor flow control to use JavaFlow instead of flowscript (this is
> assuming that JavaFlow isn't subject to the same synchronization as
> flowscript)
> 2) Refactor the app to minimize the use of flow control
> 3) Host the AJAX component under a seperate servlet
>
> Can someone tell me if JavaFlow suffers from the same synchronization
> issues as flowscript? Also any recommendations for alternate approaches
> would be welcome.
>
Would it be possible to have the tree data be stored in a session
attribute so that accessing it doesn't go through synchronization?
Sylvain
--
Sylvain Wallez Anyware Technologies
http://bluxte.net http://www.anyware-tech.com
Apache Software Foundation Member Research & Technology Director
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
For additional commands, e-mail: users-help@cocoon.apache.org