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