EJB design: Arguments in favor of J2EE vs Other (specifically PHP) archs.

  1. Hello all,

    I have a client where I proposed (and carried out, with success) an entire system based on the full J2EE (JSP+Servlets+Struts-like MVC+Session+Entity 2.0) stack, a major undertaking that comprises a full-fledged CRM solution.

    However, I'm having difficulties nowadays, since the client has been hearing from other (competitor) sources that should he had chosed a PHP+DB solution the application would be much faster (of course!) and it would probably have been completed in much less time.

    Of course I delivered him the usual argument of maintainability, scalability, linear performance
    growth over an hardware cluster, etc. etc.

    The thing is: I'm a suspect party in my oppinions, since I'm promoting my own architecture and technology. I'd need some kind of third-party, neutral opinions.

    Does any of you possess pointers to URL of benchmarks, studies or whitepapers that I could show my client? This project is a real case-study, and, if it goes live in J2EE, if can become a good landmark for the whole Java community. I'd appreciate if you'd try to help.

    Best Regards,

  2. The benefits of a J2EE solution over PHP+DB are so self-evident that I don't think there are too many articles published about it...

    That is, of course, assuming that we aren't talking about just some web application, but a real enterprise application?
  3. Lasse brings up the most important point, "what are the requirements of the system?" A simple web app that reads/writes data to/from a database might not need the additional features (and associated overhead) of a full J2EE system, but from what you describe it is probably warranted. And even if you decide not to use EJBs, I would still recommend a JSP/Servlet+DB system over a PHP+DB one, for the simple reason that if (or more likely, when) you find you need to use EJBs, the JSP+DB system will be easily integrated.

    Keep this one factor in mind... transactions. I cannot think of any non-trivial application that does not use them, and a CRM system supporting many users certainly will. And most projects I have seen that started with a web+DB system (usually to save time and cost) end up behind schedule and over budget, then when testing reveals the database is being partially updated, records are lost, etc. the finger pointing begins.

    On a related point, cost seems to be a big factor in much of the uninformed decision-making that goes on in the big offices. It might help your case to bring up the fact that you can get your entire J2EE stack for free.