220 likes | 323 Views
Choosing an AS in a NutShell. J.MOLIERE-2004. Who am I ?. Independant author/consultant Cahiers du programmeur Java – tome 2 – Eyrolles 2003 Cahiers de l’admin – Eyrolles – a paraître – Comprendre et utiliser un serveur J2EE Maintainer from the FAQ nntp://fr.comp.lang.java
E N D
Choosing an AS in a NutShell J.MOLIERE-2004
Who am I ? • Independant author/consultant • Cahiers du programmeur Java – tome 2 – Eyrolles 2003 • Cahiers de l’admin – Eyrolles – a paraître – Comprendre et utiliser un serveur J2EE • Maintainer from the FAQ nntp://fr.comp.lang.java • Articles (Login/http://www.onjava.com) • Former of the mentor/J company
Introduction • Goals: • Avoid vendor traps, • Avoid marketing effects, • Make a short-list from the essential questions, • Help you do the smart choice…
Managers key points • TCO • Budget • Support?
Beyond the marketing… • What does free means ? • Documentation • Support • Opening • Don’t move license free costs to other poles..
Never again… • You used proprietary software: • Don’t make twice the same error… • Don’t use proprietary extensions… • Use plain J2EE APIs • E.g: EJB 2.0 & EJB-QL • Don’t use any QL-like language overriding these limits.
What is a software budget? • Deployment : • License cost!!! • But: • Development: training/documentation… • Administration:support/administration tools • Migrating from one version to another. • Tuning the server…
Engineering key points • J2EE conformance • Managing the risks • Key features • Administration • Product evolution…
J2EE conformance • Work in progress • JONAS 4.1 used as a reference for the Sun TCK. • Same thing for JBOSS… • Final score :1-1 ? • May be but: • UnifiedClassLoader from the JBOSS team could be a huge trouble for them…
J2EE key features • TCK delivers a label from conformance so: • J2EE core features are implemented • What TCK doesn’t check: • Clustering
Clustering in the J2EE World • Choosing an AS for its clustering features: • Why not? • But beware: • JONAS/JBOSS can do HTPP Session replication over Jetty/Tomcat but it’s a bad idea!!! • JBOSS team claims that the only solution is Local interfaces usage !!! Where is distribution here? • Please don’t rely on unreliable products (JavaGroups don’t scale well so don’t use it).
Clustering in the J2EE world • Clustering tiers, common answers: • HTTP • MDB/SFSB • Leaves a huge problem: • The RDBMS tier is not replicated… • So no real fault tolerance • No load balancing on this tier (the most critical one).
Clustering in the J2EE world • So how to replicate the RDBMS tier? • Use vendor specific solutions (Oracle 10 HA) • Expansive solutions… • Or use C-JDBC!!! • multi databases (heterogeneous parc) • Cache • Intelligent load balancing algorithm (from the several available)
Clustering in the J2EE World • J2EE is the core node in heterogenous architectures: • ERP • Legacy systems • .NET front-end ? • CORBA applications
Clustering in the J2EE world • JMS is one of the major API • Why ? • Delivering messages with delivery warranty is a tremendous need in HA applications (bank/financial/telecom) • Asynchronism is the better answer to overloaded architectures. • JORAM is your friend…
Clustering in the J2EE world • Deploying clusters: • JBOSS nice features (farming/singleton service in a cluster). • But: • Farming not really usable in production (administrators tend to prefer scripts to automatic operations). • Doesn’t fit well to large nodes number.
Administration • Do not forget these daily tasks!!! • JMX is the standard way: • Used as a communication bus in JBOSS but doesn’t bring us usable tools. • Far more complete in JONAS. • Administrators love non GUI consoles • JBOSS doesn’t provide such tool.. • man jonas admin!!!
Conclusion • Choice is a weird thing but: • Logic must be your best friend • Beware of marketing • Remind your previous choices.. • Consult your team before completing this process.. • Take the one that fits your needs (and future needs).
Q/A • It’s up to you now!!!
Resources • http://www.jboss.org/ • http://jonas.objectweb.org/ • http://joram.objectweb.org/ • http://c-jdbc.objectweb.org/