What Is The Best Application Server?
Naeem Bari asks: "I wanted to find out if Slashdot readers have a favorite Application Server. I want to compare products like Sun's iPlanet, IBM's WebSphere, BEA's Weblogic, Sybase's Jaguar et al. I am looking for comments from people who have experience using any of these products. What kind of features do they support (EJB 1.1, CORBA 2.3, XML etc.)? And whether they do these features really well or just pay them lip service? How about usability? Vendor support? Performance? Scalability? Failover abilities?"
Its performance also sucks rotten eggs.
I worked for a while at [large television company] where they were reaching the end of developing a large content management system in Web Objects. Sadly, while providing all these enterprise functions they forgot one simple mantra: Make it work, and make it work fast. The project was DOG slow, and the editors remained using FTP and plain HTML right until the time I left.
In short: don't use WO, you can have much shorter development timescales with free products and they actually work.
Matt. Want XML + Apache + Stylesheets? Get AxKit.
A lot of people buy these application servers without first thinking through whether or not they need one. For example, plain ordinary products like mod_perl and Java servlets provide an awful lot of the features of an application server. You have to remember that most of these app servers are just toolkits in which to build your application. And most of them are slow or badly designed. I have a fair bit of experience with Web Objects, Mediasurface and Broadvision, and none of them work particularly well. In fact they provide a whole lump of features without any real forethought about design, or the end user actually building complex applications.
Seriously consider whether you truly need an application server before forking out the money.
Matt. Want XML + Apache + Stylesheets? Get AxKit.
We haven't found an app server we like yet. We've looked at the merits (or perceived merits) of BEA, Websphere, Enhyrda, etc... no clear winner.
Enhydra doesn't seem attractive - although it's free, it's not strong in EJB support right now (the major reason we'd even want to use an app server). Also, XMLC is a nice idea, but we have in-house solutions we like ever better (since they seem to fit the way we work best).
Zope might be worth looking at if you're still really just at the start of looking at solutions. If you've already decided to go with Java, for instance, I'm not sure if it's worth the time to look at Zope (does it handle non-PHP "stuff"?)
Right now, the best "app server" we've found is Apache + jserv (or Tomcat, it seems to work right now, and it uses Servlet API 2.2). Apache is just so configurable that it's a joy to use (and very performant). Jserv includes load-balancing and distributed computing as is (you can run as many jserv "servers" as you want, and round-robin among those; sessions are handled via session affinity, so you always get passed to the same server once a session is established).
Our big test will be soon, as we deploy this solution to our client. So far, we think we made the right choice... I think application servers (and the whole EJB technology) still need to mature more. For instance, there are plenty of indications that performance suffers using EJBs due to poor database translation layers (mapping calls to beans to calls to the database).
One interesting solution on the horizon is EJBoss along with Ozone, a pure-Java object database. This will be the next thing I evaluate after we launch this servlet project.
It's a strange world -- let's keep it that way
bea.com/products/weblogi c/server/datasheet.html
Weblogic has been supported on Linux for a couple of years now - BEA sent me a promo disc when it first came out (I was a Tuxedo consultant) but I haven't had time to evaluate it and compare Linux vs Solaris.
/*He who controls Purple controls the Universe. *
www.gotontheinter.net
Updated vaguely once a whenever, maybe once a whenever-and-a-half.
In my experience so far, IBM's WebSphere is (needlessly) painful to install/configure. It is also current stuck in the dark ages of Java 1.1.x, while 1.2.x has been out for a long time and 1.3.0 is also out.
I am told that WS works well once in production, but we haven't gotten that far yet...
Sometimes it appears that only WebSphere, WebLogic, and IPlanet are on the corporate radar. Some people are surprised to learn that there are over a dozen Java app servers out there.
I know nothing about BV, which may be an excellent product. However, I recently happened across a page of someone who thinks otherwise:
http://www.peterme.com/bvsucks/
It is really gonna depend on what you are looking for in your application server.
If you application is not going to be high load, or you won't need to worry about clustering then your options are more varied.
Also you should know if you are going to use Bean Managed Persistence or Container Managed Persistence. If you plan to use CMP then you need to make sure that the application server you use has good OR mapping tools. TopLink is a well repected OR mapping tool.
We chose Weblogic 4.5.1 as we needed to cluster and scale the application. Weblogic doesn't have good OR mapping tools but links really well with Toplink, we are using BMP anyway.
Webshpere is a bitch to install unless you understand Oracle or DB2 quite well.
Oracle's application server ties you to close to one vendor so we stayed away.
Enhydra looks really cool and it is OSS so you can get in and tweak stuff if you need to. I am not sure what kind of performance it can achieve though.
The biggest thing before you start to make decide is define what aspects of EJB's and such you will need and need to work well and what won't matter, this should help narrow the field down for you.
This pdf is a very good research article and i reccomend it as a starting point EJB Comparison.
Broadvision is coming to my workplace soon. There's no choice. I'm interested in hearing more about it if anyone's got the time to elaborate. Also, if you have any tips that would be helpful in working with it, or becoming familiar with it (other than www.broadvision.com) would be welcome.
Tweet, tweet.
Price would be the only reason.
No, actually, performance on commodity hardware would be another reason, as would preference for open source tools, etc.
I have a limited experience with webobjects from Apple (http://www.apple.com/webobjects) and I find it really powerful:
- You can choose your language (java on client and server, objective-C and Webscript)
- It supports many databases (Oracle, sybase, M$ SQL, postgres, etc) and there's a JDBC option allowing you to use any DB with JDBC support
- Runs on Linux, MacoSXServer, Solaris and NT
- The price: 700$ (slashed (errr. Steved) last week) is ridiculous because webobjects supports all the enterprise functions found in high end apps servers.
Zope (http://www.zope.org) and enhydra (http://www.enhydra.org) may be the best choices if you're looking for free and/or open source apps servers...
BTW: First!
Everytime one of these flame-wars break out (I mean, honestly, this is like asking "which editor should I use?"), Inprise AppServer is left out of the discussion. Ergo, I am mentioning that in terms of adhering to standards and being faster-than-hell, IAS 4.0.1 does it for us.
/v\atthew
But, like the other poster said, it will really depend on your needs. I recommend taking the 2-3 weeks to get a simple app going with each of the servers and see what the snags you can live with are.
And BTW, I am a strong anti-BEA advocate. 4.5.1 was a complete farce, and 5.x has been in-line with Microsoft's tactics: let the marketing folks sell what the tech boys can't. But, as I am sure someone will point out, we were trying to get it to do a finite set of things.
My USD$0.02.
--
Sure?
Where can I get it?
I know the next version will be pure Java and thus will run on Linux. But not now IMHO.
-- "As a human being I claim the right to be widely inconsistent", John Peel
The first thing you should think about is whether you need an application server. If your concern is speed for a medium volume website can do with mod_perl or zope or something.
:-). I am not saying this because I work here but because I know we guys really know our work.
i x.jsp
However, if you are looking for high scalablity and reliablity for top-end system with large volumes of transaction processing then do not hesitate, you really need it.
In that case, there are three application servers worth considering:
1) BEA Weblogic
2) Sun-AOL iPlanet
3) IBM WebSphere EE
Which one you chose depends on what are your concerns and goals.
iPlanet has the best support for failover clustering and load-balancing but I find it too proprietary with its own tags to script. If you are also concerned about that then chose WebSphere that has good failover mechanism but not enough of load-balancing and transaction failover components but is mostly non-proprietery.
If you plan to do large distributed transaction processing websphere is the way to go which has intgeration with third-party DTCs and strong support for client initiated transactions. Weblogic has virtually no support for distributed transactions and iPlanet also lags behind far.
Websphere has also good support for XML and other object services like running RMI and IIOP over SSL. (weblogic needs third party components to run IIOP over SSL, iPlanet does not suport RMI or IIOP over SSL. Both have no support for XML)
However, weblogic provides strong support for dynamic content presentation and session tracking but the other two are not too far behind either.
iPlanet has nice security audit features and the other two lag behind here, however this is not too much of strength as I always end up writing my own audit functions(tho, YMMV).
iPlanet also supports SNMP which other two don't and this could be a deciding factor sometimes.
Out of three only websphere is supported on linux.
One more thing, this is not really an ad, but my company does exactly this kind of work and I could ask my marketing guys to follow up with you if you are looking to outsource either design or implementation
P.S. There is a nice comparison of AS's at http://www.flashline.com/components/appservermatr
I think you are confusing Zope with Midgard.
Zope uses Python as its underlying language. Midgard is the one that is built in PHP.
Both are worth a look, if only because they are Open Source and Free, so costing nothing.
2bits.com, Inc: Drupal, WordPress, and LAMP performance tuning.
Dynamo from ATG rocks - you can ask them for a download for 30-day evaluation, you are going to love it.
Also, check out Intalio. I guess it's not released yet, but once it is, it might be just the best thing possible - it's open source, and friend of mine who works there says that they are going to simply blow competitors away (though obviously he is biased).
Let's face it... iPlanet has everything covered. Why go elsewhere? Price would be the only reason.
I am a Sybase employee. EAServer is the number 2 app server in terms of installed base, behind BEA. I think that will reverse this year, we are already seeing signs of that happening. All loyalties aside, BEA is a BITCH to install, configure, and learn, and our customers tell us there are performance and back-end integration issues. BEA has never submitted to 3rd party performance tests, and they apparently, like SilverStream, have some issues there. Also, we cluster across networks. BEA requires all machines in a cluster to be on the same subnet, and for failover, to share a harddrive or mirrored set. EAServer was given the app server Analyst's Choice award by PC Week this year, I believe February. ciao.