aspose file tools*
The moose likes Other Application Frameworks and the fly likes Seam in Action: is Seam stable if I want to build an application in production? Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Frameworks » Other Application Frameworks
Reply locked New topic
Author

Seam in Action: is Seam stable if I want to build an application in production?

Rogerio Kioshi
Ranch Hand

Joined: Apr 12, 2005
Posts: 689
Hi,

I'd like to know if Seam is enough stable today if I want to use it in an application in production. I see that JSR Web Beans is going to be approved for the next JEE version, but today many customers only use some technology if they have confidence that that new tool has been succesfully used by other companies.

Thank you


SCEA 5 (part 1), SCBCD, SCWCD, SCJP, CLP, CLS
Adeel Ansari
Ranch Hand

Joined: Aug 15, 2004
Posts: 2874
In terms of stability, I know few of my friends who are using Seam in production. They are happy with it. They got some problem in getting developers - who have Seam under their belt already - though in the start. But What I found, the learning curve is not that huge. The only thing is you need to understand its concepts, plus JSF style. And then you go.
Alaa Nassef
Ranch Hand

Joined: Jan 28, 2008
Posts: 467
Here's a list of projects using seam in production


Visit my blog: http://jnassef.blogspot.com/
Jason Porter
Ranch Hand

Joined: Apr 26, 2007
Posts: 120
At work we have one application built on top of Seam in production, works very well. We're currently in the process of writing another one. Any of the GA releases on seamframework.org should be production worthy. If you're looking at starting a new project, I would suggest downloading and using Seam 2.1 (currently CR1) as it should be GA before year's end.
Dan Allen
Author
Ranch Hand

Joined: Mar 05, 2003
Posts: 164
Seam is certainly stable enough to use in production as many companies have proven this fact. But there is something that can make you feel better about the situation. Seam is a JBoss GA product, in addition to being an open source project. What that means is that if you do run into a problem with Seam, whether it be technical or performance-related, you know that you can pick up the phone (given you have a support contract) and get a team of engineers (some of which include the Seam project members) working on the problem. I find that important. To back that up with more reassurance, Seam is currently undergoing a rather rigorous look into improving performance, an initiative which came out of using Seam (and thus encountering production-level challenges) developing and running seamframework.org, a site built entirely using Seam.


Dan Allen | http://mojavelinux.com | Author of Seam in Action - http://mojavelinux.com/seaminaction
Rogerio Kioshi
Ranch Hand

Joined: Apr 12, 2005
Posts: 689
Originally posted by Dan Allen:
Seam is certainly stable enough to use in production as many companies have proven this fact. But there is something that can make you feel better about the situation. Seam is a JBoss GA product, in addition to being an open source project. What that means is that if you do run into a problem with Seam, whether it be technical or performance-related, you know that you can pick up the phone (given you have a support contract) and get a team of engineers (some of which include the Seam project members) working on the problem. I find that important. To back that up with more reassurance, Seam is currently undergoing a rather rigorous look into improving performance, an initiative which came out of using Seam (and thus encountering production-level challenges) developing and running seamframework.org, a site built entirely using Seam.



Hi Dan,

I have a doubt about this support contract you mentioned. Let's suppose I choose Seam as the framework that will help me building my application. If I have some critical problem when using Seam (that I only noticed when the application was in production), I will only have a way to solve this problem if I have a support contract?
And let's suppose the company I work for decides to buy a support contract from JBoss. If, someday, we decide not having Seam support no more, is it possible to let the application using pure JEE, without the features Seam provide?

Thank you.
Alex Savitsky
Greenhorn

Joined: Aug 07, 2008
Posts: 4
Originally posted by Rogerio Kioshi:



Hi Dan,

I have a doubt about this support contract you mentioned. Let's suppose I choose Seam as the framework that will help me building my application. If I have some critical problem when using Seam (that I only noticed when the application was in production), I will only have a way to solve this problem if I have a support contract?
And let's suppose the company I work for decides to buy a support contract from JBoss. If, someday, we decide not having Seam support no more, is it possible to let the application using pure JEE, without the features Seam provide?

Thank you.


I'm not Dan, but I'll try to answer.

1. If Seam happen to have a critical problem, the easiest is to track it yourself (the joy of open source), fix it by overriding Seam classes, and later submit it back to Seam (BTW, I'd love to see some of these finally being included in 2.1, like https://jira.jboss.org/jira/browse/JBSEAM-1065). We currently have three Seam apps in production (not listed on Alaa's list, as they're all intranet), some with overridden classes, and it works perfectly.

2. See JSR-299 (Web Beans) - it's supposed to provide most of what Seam provides now, as a standard part of JEE v6, and Gavin is the lead on this JSR. For now, Seam is not a standard yet, but hey, Hibernate was once a non-standard, too, and now there's JPA
[ October 09, 2008: Message edited by: Alex Savitsky ]
Dan Allen
Author
Ranch Hand

Joined: Mar 05, 2003
Posts: 164
I have a doubt about this support contract you mentioned. Let's suppose I choose Seam as the framework that will help me building my application. If I have some critical problem when using Seam (that I only noticed when the application was in production), I will only have a way to solve this problem if I have a support contract? And let's suppose the company I work for decides to buy a support contract from JBoss. If, someday, we decide not having Seam support no more, is it possible to let the application using pure JEE, without the features Seam provide?


I can see how my response led you to draw this conclusion. Seam is an open source project, so of course you can file JIRA issues, submit patches, and participate in the forums to get support. In fact, most users of Seam will find this arrangement sufficient for their needs. It's just that some people are going to want that guarantee that they can phone someone at the 11th hour of a project and know that they can get an immediate response (perhaps more immediate than the people who dedicate their lives to responding to forum posts).

Also, know that JBoss is a full Java EE middleware company. Seam is one of their projects/products, but they have many others as well. Thus, they have many breeds of customer, one breed which is their Seam customers and another breed which is their pure Java EE customers. You aren't forced to use Seam, Seam is an offering.
Uchana Jackson
Ranch Hand

Joined: Dec 07, 2007
Posts: 37
First of all, even if you have several years of J2EE dev experience (with Spring/hibernate or Struts/EJB2) and zero years of experience with JSF and EJB 3, then the learning curve for Seam is very high. Trust me, that was my case. You have to learn the life cycles for JSF and Seam and EJB 3 components models. Then how they integrate among the layers. Then learn EL (expression language) and all the various JSF and Richfaces/Icefaces components and don't forget Facelets for presentation templating. And navigation, and security, and all the Seam tags and annotations. And keeping up with upcoming versions so you don't reinvent the wheel (e.g. Seam 2.1 Identity Management is a good example with the JpaIdentityStore and Member/Role tables, etc.) Good luck. Any powerful and flexible technology will be difficult to learn initially, whether it's software engineering or otherwise.

I have been using Seam professionally on multiple corporate projects for over 1.5 years. Some of the concepts in Seam are very advanced, like conversations/workspaces and bijection, and take a long time to learn and apply properly (not to mention design patterns and best practices). And there's a lot of decisions you must make along the way as well. Do you use Icefaces or Richfaces component frameworks for your presentation layer? Do you code your app to be ready for a clustered environment (add <distributable/> to web.xml and @Clustered to session beans)? Do you need a DAO layer or not?

Secondly, the phone support which Dan speaks of will cost you around $70K. Call Redhat to inquire if you don't believe me (one of our branches did and ended up not purchasing it). You can get very decent developer email support via the Customer Support Portal for $3500 yearly with 2 day SLA.

Thirdly, JBoss/Redhat EAP "certified stack" seems to have QC issues as evidenced by the recent bug we ran into in EAP 4.3 which caused failover to not work when a node in a cluster goes down. This was due to problems with HTTPSession invalidation and we received a class from JBoss - ClusteredJBossSeamListener - that fixed the problem for my clustered version of the hotel booking project. Here is the JIRA for this bug:

https://jira.jboss.org/jira/browse/JBAS-5778

Fourthly, why isn't there a clustered version of one of the Seam distro examples? seems kinda strange...

Fifthly, this new concept of the "feature pack" http://www.redhat.com/docs/en-US/JBoss_Enterprise_Application_Platform/4.3.0.cp02_fp01/html-single/readme/index.html that JBoss/Redhat just recently introduced is very strange. why would JBoss combine tech preview libraries into a feature pack which is recommended to be used with EAP 4.3 CP02? that seems kinda dangerous if you use beta software in a prod EAP stack.

We are currently setting up a 2 node horizontal cluster in production using IIS, Windows 2003 server, mod_jk, JBoss EAP 4.3 and SQL Server.

Here are my detailed instructions to set that up (it's a major pain to do it on your own, trust me):

http://www.jboss.com/index.html?module=bb&op=viewtopic&t=143069

All that being said, Seam is the only web/integration Java EE framework available that supports conversation and business process context. I know Wicket supports conversation but nothing else is close to Seam.

If you like the idea of working with a contextual component model with no xml hell and no layering requirements, then Seam is the framework for you (esp. if you already use JBoss b/c of the jBPM integration).


SCJP 1.4<br />SCBCD 5
Dan Allen
Author
Ranch Hand

Joined: Mar 05, 2003
Posts: 164
Uchana, this is some great insight. Nothing tells the truth more than real life experience.

Fourthly, why isn't there a clustered version of one of the Seam distro examples? seems kinda strange...


We completely agree, which is why the Seam project members are now working on it.

I think the general sentiment that comes out of this post, and one that I happen to agree with, is that Seam is not necessarily trival software, but on the other hand is definitely prepared to handle those non-trival requirements.
Dan Allen
Author
Ranch Hand

Joined: Mar 05, 2003
Posts: 164
I emailed the Seam project lead (Pete Muir) and he replied to the concerns that Uchana put forth. The responses below are his.

JBoss/Redhat EAP "certified stack" seems to have QC issues as evidenced by the recent bug we ran into in EAP 4.3 which caused failover to not work when a node in a cluster goes down. This was due to problems with HTTPSession invalidation and we received a class from JBoss - ClusteredJBossSeamListener - that fixed the problem for my clustered version of the hotel booking project. Here is the JIRA for this bug: https://jira.jboss.org/jira/browse/JBAS-5778


So, it's being fixed, and in the open, great!

Fourthly, why isn't there a clustered version of one of the Seam distro examples? seems kinda strange...


This is being fixed in 2.1.1

Fifthly, this new concept of the "feature pack" http://www.redhat.com/docs/en-US/JBoss_Enterprise_Application_Platform/4.3.0.cp02_fp01/html-single/readme/index.html
that JBoss/Redhat just recently introduced is very strange. why would JBoss combine tech preview libraries into a feature pack which is recommended to be used with EAP 4.3 CP02? that seems kinda dangerous if you use beta software in a prod EAP stack.


A feature pack delivers GA (General Availability) quality software to the user. We add in extra components which we mark TP (Tech Preview) to give users early access. All TP components are optional, and the feature pack delivers mainly non-TP components.

We are currently setting up a 2 node horizontal cluster in production
using IIS, Windows 2003 server, mod_jk, JBoss EAP 4.3 and SQL Server.

Here are my detailed instructions to set that up (it's a major pain to do it on your own, trust me): http://www.jboss.com/index.html?module=bb&op=viewtopic&t=143069


We recognize, hence the focus on clustering for 2.1.1.
[ October 11, 2008: Message edited by: Dan Allen ]
Uchana Jackson
Ranch Hand

Joined: Dec 07, 2007
Posts: 37
If the Seam dev team is merely going to add <distributable/> to web.xml and @Clustered to all SFSBs in whichever Seam example app(s) they choose, that's not a big help.

A big help would be to have a pre-configured node folder based on the production folder in the jboss-as/server folder. This is essentially what I did and most people do to create a configured node for a JBoss cluster.

Or at least instructions on how to use the production folder and copy it to another JBoss instance for clustering capability (i.e., ensure JBM PostOffice # is unique in each instance, etc.)

The idea being you download Seam distro, you read the cluster config instructions and execute and copy that instance to your other server's jboss-as/server folder, deploy clustered_seam-booking to both instances and start up JBoss on both instances. You have seam-booking running on a 2 node horizontal cluster within an hour.

I already did all this but it should be part of the Seam distro to prove that it's a mature, production-ready product...
[ October 13, 2008: Message edited by: Uchana Jackson ]
Preben Ludviksen
Greenhorn

Joined: Jan 17, 2009
Posts: 1
So, I have downloaded the Seam 2.1.1 distro but I can't find the clustered sample mentioned anywhere, and can't really find any good documentation on the subject. Does anybody know what the status is?
Mark Spritzler
ranger
Sheriff

Joined: Feb 05, 2001
Posts: 17257
    
    6

Please don't resurrect old threads. I am closing this thread. Please create a new thread, thanks

Mark


Perfect World Programming, LLC - Two Laptop Bag - Tube Organizer
How to Ask Questions the Smart Way FAQ
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Seam in Action: is Seam stable if I want to build an application in production?