I have a primitive caching implementation that I like to think of as a "conversation", even though it is not comparable to the kinds of persistence methods you guys are talking about.
Mine involves storing large computed data in the User's ASO (such as a report data structure with it's data). Inside the User's ASO, I have a LRU Hashmap (copied one off the net) that acts as the cache. I use very unsophisticated but unique keys, which are the SQL used to generate that specific report data. The LRU has an upper limit (like 5), and for the 6th report run by that user, it just forgets the one that has been least used. I have a common page to display all reports, and that page checks the User's LRU cache before trying to execute a 30 second SQL request. Before the report page is called, I copy some data from the user's selections into the new page instance. That data uses regular @Persist. From that data, the page can calculate the key (the SQL) and then check for cached data OnSetup. So this works for up to (n=5) windows, and it's snappy if the same report has been recently run by the user. Wow it sounds a lot more complicated-but-elementary when I write it out. Come to think of it--I should just @Persist the key value, which is smaller than the all the setting data used to construct the key. PS-- if you see something very wrong about this picture, please let me know! Daniel Jue On Nov 29, 2007 8:01 PM, Kalle Korhonen <[EMAIL PROTECTED]> wrote: > Of course, nothing prevents one writing a semi-automatic workspace > management layer on top of Seam that would take care of detecting and > closing abandoned conversations (for example, along the lines I suggested on > the Trails list). The Seam guys have carefully removed any dependencies to > JSF. In practice, integrating Tap5 with Seam might be the fastest way of > getting practical results for a conversational scope, and wouldn't solve > only one but two problems at the same time (conversations and > session-per-conversation), of course at the expense of tying the > implementation more closely with Hibernate or at least JPA, but that's > probably what the majority is using anyway. I'm sure the Seam guys would > love to see Tapestry support for Seam. And btw, Wicket guys have already > done this. Given that you Geoff are probably inclined to use J2EE container > anyway, wouldn't it make sense to you to start looking at creating > tapestry-seam integration project? It might be an interesting project to > take on for me as well. > > Kalle > > > > On 11/28/07, Kalle Korhonen <[EMAIL PROTECTED]> wrote: > > > > I completely agree with Geoff that a good-enough generic support for > > conversations could make developing web applications much easier and it's > > one of the remaining big issues that web frameworks typically don't offer a > > solution for out-of-the-box. Seam's got a solution that works well for > > typical enterprise apps that may have high amount of interaction with the > > database but don't have a huge number of users. While Seam ignores the > > problem of closing abandoned conversations, it'll quickly lead to much > > higher memory consumption as open conversations generally occupy memory > > until explicitly closed or the session is expired. > > > > There's been various tries at solving the conversation support for > > Tapestry and we are planning on supporting conversation in Trails with a > > tighter memory management model for better scalability. I've written some > > notes on session-per-conversation at > > http://archive.trails.codehaus.org/users/[EMAIL PROTECTED]'s relevant for > > this discussion as well. For Tap5, you can of course > > come up with your own solution, but it'd be great if the framework had a > > generic support for conversations that would work well enough in the most > > common cases out-of-the-box and could be extended. > > > > Kalle > > > > > > On 11/28/07, Thiago HP <[EMAIL PROTECTED]> wrote: > > > > > > On 11/28/07, Francois Armand <[EMAIL PROTECTED]> wrote: > > > > > > > > I completely agree with your remarks, and it's a kind of pity that T5 > > > is > > > > such in advance in so many areas, and in the same time have to deals > > > by > > > > hand with that. > > > > > > > > > Let's not forget that Tapestry 5 is still alpha and there are other > > > areas > > > needing work too, AJAX being one of the most anticipated ones. In > > > addition, > > > it has a very flexible architecture that allows developers (Howard, > > > other T5 > > > comitters or me or you) to implement any missing feature. ;) > > > > > > Thiago > > > > > > > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]