To begin with, I have worked with many, many clients for whom
scalability is a core concern.  All of them use sticky sessions (with
a backup server).

Second, Tapestry is designed to store a pretty minimal amount of
information in the HttpSession, in that it tends to store simple,
immutable objects rather than application-specific mutables (though
that is also an option, as an Application State Object).

T5 does force you to store more data between requests than T4 ... but
not necessarily in the session (it also has client storage).

The advantages of the redirect-after-action pattern used in Tapestry
is pretty manifest. URLs are always bookmarkable.  The refresh key in
the browser does the right thing.

The proof is, of course, in the pudding. You can debate all you want
and reality has a tendency to slap you in the face.  Despite the speed
of the framework, I have not yet started to optimize it internally
(and the new structure of T5 supports a lot of room for
optimizations!).

On 7/13/07, Fernando Bellas Permuy <[EMAIL PROTECTED]> wrote:
Hi,

I have been evaluating several Java Web frameworks. Regarding Tapestry
5, I like very much its POJO, non-intrusive programming model.

I am interested in knowing how well Tapestry 5 applications perform on a
clustered environment. Like most Java Web frameworks, Tapestry 5 handles
action requests in a two-step process. The first step handles the event.
For actions that must show results retrieved from the database, this
means that the event handling method (onXXX) must store results on
@Persistent attributes in the page object. Then Tapestry redirects the
browser to an URL that launches the second step (the rendering phase).
In this second step, the page is dynamically generated by calling getter
methods on the page object to show the results. Alternatively, the event
handling method can store parameters, so that getter methods (in the
second step) retrieve the results form the database. In any case, this
request processing model means that most action requests store objects
(@Persistent attributes) in the session.

Does this model scale in a clustered environment??? It probably works
well in a clustered environment that uses sticky sessions (requests
directed to a given session are handled by the same machine in the
cluster), but what about other clustering strategies that use mirror
machines (session objects must be serialized and sent to mirror machines
)???. Can Tapestry 5 be used only with the sticky session clustering
model??? This model is criticized for not being fault-tolerant.

Unlike Tapestry, in frameworks like Struts and JSF, the first step
inserts objects in the request and *forwards* (the browser is not aware
of this fact) to another "component" (typically a JSP page) to show the
results. This request processing model does not use the session to store
results. Is this model more scalable than the one used by Tapestry 5 on
a clustered environment???

Thanks in advance!

Fernando Bellas

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




--
Howard M. Lewis Ship
TWD Consulting, Inc.
Independent J2EE / Open-Source Java Consultant
Creator and PMC Chair, Apache Tapestry
Creator, Apache HiveMind

Professional Tapestry training, mentoring, support
and project work.  http://howardlewisship.com

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to