RE: LongRunning tasks

"Christian Cryder" <[email protected]> Mon, 5 Jan 2004 10:49:14 -0500
Newsgroups gmane.comp.java.enhydra.barracuda.general
Message-ID <[email protected]>
Hey Jake,

Good comments as usual.

> So, we are officially not servlet 2.2 compatible anymore, eh (because of
> the new use of the servlet 2.3+ HttpServletRequestWrapper)?

I _think_ we've actually been tied to 2.3+ for a bit now...the
HttpServletRequestWrapper stuff was already in there (with methods for 2.3
compliance), although I renamed the class.

> Not sure I agree with the change in ApplicationGatway where HTML code is
> written out for the long running stuff.  First, that means that long
> running events are only supported for HTML clients such as web browsers
> and not other clients such as WAP phones and such.  Plus it doesn't
> seem right for the front controller to be writing markup to the client
> anyway.  That should be done in another layer, IMO.
>
> Also the fact that XMLC is being used by the core of Barracuda when
> Barracuda is supposed to be (relatively) agnostic on DOM
> implementations.  This means that if one wants to use, for
> instance, Jivan instead of XMLC, XMLC will still have to be available to
> account for Barracuda's internal use of XMLC.  Seems like this forces
library
> bloat on users.

I agree with most of this in principle - it could certainly be better, more
pluggable, etc. But at this point, I simply don't have the time to go make
it do those things, so it will have to wait until someone wants to improve
it (patches welcome! ;-) The good thing is, the general logic should remain
pretty much the same regardless of where we are getting our DOM source.

> Features like this ought to be able to be plugged in...Additions like
this,
> be they cool or not, make Barracuda inevitably more complex.  Users should
be
> able to add features like this in if they want them and leave them out if
> they don't.

Just to clarify - additions like this make the _Barracuda code_ more
complex; but they make _Barracuda as a framework_ much more powerful and
easy to use. And that's a big difference. Per your email the other day about
"ease of use" (which I still mean to respond to) - one of the things we are
going to have to deal with is how to make Barracuda easier to use, and in
general, making the framework so users have to decide what to add in and
what to leave out is actually something that makes it harder to use, because
they have to understand how it works in order to understand how to configure
it. Indeed, I think part of Barracuda's steep learning curve comes from the
fact that we made it so configurable in the first place, even though the
majority of people aren't ever configurring it. This is part of the reason
why I implemented it the way I did - to make it as simple as possible for
people to use; they don't have to do any configuration of Barracuda -
everything's already there by default.

Now, none of this is meant to negate your point: a) the code could certainly
be cleaner, b) it would probably be nice for it to be more pluggable, and c)
we really do need to think about these things for Barracuda 2.0. All I'm
trying to say is that we need to realize that configurability actually
_increases_ complexity. And so we want to make it possible to configure
stuff, but we also want to do more in the way of default implementation that
makes all the decisions for the user. That's the type of thing that will
make the framework easier to use.

One final comment about Barracuda's "value proposition". I think the
perceived value of the framework, will not be so much in terms of the
component or event models, but rather the higher level "components" that we
build with it. For instance, what we've really done here is create a "Long
Running Component" (in a meta sense) - you can configure it, supply your own
template, etc. That's something that developers will go "wow...this saves me
_tons_ of time...I've _got_ to use this framework". In my opinion, that's
the type of reaction we need to be seeing in order to see Barracuda continue
to grow and prosper.

Along these lines, I think we need to consider creating components for like
Reports, Maint screens, dialogs, calendars, etc. All of these are components
in the high level, "meta" sense - they consist of templates, models for
populating those templates, some business logic, etc. We also need a good
sample app that shows how to use all these things and get people started
quickly. At any rate, all I'm saying here is that I think this is the type
of thing that is going to elicit "ah-ha" moments more than how pluggable we
make the internal implementation.

Of course, how best to implement it all remains to be seen, but stuff like
this LongRunning stuff at least gives us a tangible example to start
thinking about...

Christian
----------------------------------------------
Christian Cryder
Internet Architect, ATMReports.com
Project Chair, BarracudaMVC - http://barracudamvc.org
----------------------------------------------
"Coffee? I could quit anytime, just not today"


> -----Original Message-----
> From: [email protected]
> [mailto:[email protected]]On Behalf Of Jacob Kjome
> Sent: Monday, January 05, 2004 1:35 AM
> To: [email protected]
> Subject: Re: [Barracuda] LongRunning tasks
>
>
> Hi Christian,
>
> So, we are officially not servlet 2.2 compatible anymore, eh (because of
> the new use of the servlet 2.3+ HttpServletRequestWrapper)?  Fine
> by me as
> long as everyone else is ok with it.
>
> Not sure I agree with the change in ApplicationGatway where HTML code is
> written out for the long running stuff.  First, that means that long
> running events are only supported for HTML clients such as web
> browsers and
> not other clients such as WAP phones and such.  Plus it doesn't
> seem right
> for the front controller to be writing markup to the client anyway.  That
> should be done in another layer, IMO.
>
> Also the fact that XMLC is being used by the core of Barracuda when
> Barracuda is supposed to be (relatively) agnostic on DOM
> implementations.  This means that if one wants to use, for
> instance, Jivan
> instead of XMLC, XMLC will still have to be available to account for
> Barracuda's internal use of XMLC.  Seems like this forces library
> bloat on
> users.
>
> Anyway, the functionality seems pretty cool.  Seems like it could
> have been
> implemented slightly cleaner, though.  Features like this ought
> to be able
> to be plugged in.  I'm not saying I have the answer for how to do
> that, but
> I think we need to sit down and think about how to simplify the core of
> Barracuda.  Additions like this, be they cool or not, make Barracuda
> inevitably more complex.  Users should be able to add features
> like this in
> if they want them and leave them out if they don't.  Maybe a
> discussion for
> Barracuda 2.0?
>
> Jake
>
> At 06:20 PM 1/4/2004 -0500, you wrote:
> >I just checked a pretty massive change into cvs - this to add built in
> >support for Long Running tasks from with Barracuda. Check here for more
> >details: http://barracudamvc.org/Barracuda/docs/events/long_running.html
> >
> >Comments and feedback welcome...
> >
> >Christian
> >----------------------------------------------
> >Christian Cryder
> >Internet Architect, ATMReports.com
> >Project Chair, BarracudaMVC - http://barracudamvc.org
> >----------------------------------------------
> >"Coffee? I could quit anytime, just not today"
> >
> >_______________________________________________
> >Barracuda mailing list
> >[email protected]
> >http://barracudamvc.org/lists/listinfo/barracuda
>
> _______________________________________________
> Barracuda mailing list
> [email protected]
> http://barracudamvc.org/lists/listinfo/barracuda