Son 10 yıldan fazla bir süredir WebLogic, WebSphere, JBoss, GlassFish, Resin, Jetty, Tomcat ve birkaçını kullandım. Eğer yeni bir proje düşünürsem, önce kendime birkaç soru sorardım. Artık sorgulamayacağım bir şey, annem için ağlayana kadar işkence görmedikçe JSP'leri kullanmayı reddedeceğim.
Birisinin görevi nedeniyle belirli bir ürünle uyumlu olmam / dağıtmam gerekiyor mu? Onları görmezden gelmenin veya ikna etmenin bir yolu yok mu? Eğer öyleyse, cevabınız var.
EJB'leri kullanmak zorunda mıyım? Gerçekten mi? Mümkünse bunlardan kaçının - gerçekten sadece çok büyük, kurumsal sınıf sistemler için gereklidir. Unutmayın ki bunlar sadece birer alettir ve büyük olanlardır (herkes "Altın Balyoz" diyebilir mi?). Çok fazla kullanıldılar, bu yüzden gerçekten, gerçekten onlara ihtiyacınız olup olmadığını sorgulayın. Onlara ihtiyacınız varsa, bu benim en sevdiğim İskelesi de dahil olmak üzere birkaç seçeneğinizi kaldırır.
JMS, ESB, vb.Gibi diğer büyük J2EE teknolojilerinden herhangi birini kullanmak zorunda mısınız? Eğer öyleyse ve gerçekten onsuz yapamazsanız, yine tam dolu bir J2EE konteyneriyle kısıtlanırsınız. Örneğin BPM'yi taahhüt etmeden önce dikkatlice düşünün ve araştırın ve AquaLogic BPM'den (neredeyse) tüm maliyetlerden kaçının - aşırı derecede çirkin.
Gerçekten tam gelişmiş bir J2EE kabı kullanmanız gerekiyorsa, önce daha açık, daha iyi desteklenmiş ve daha uygun maliyetli olduğu için önce açık kaynağı düşünün. Daha büyük müşteri tabanlarına ve daha açık destek etkileşimlerine sahiptirler, bu nedenle daha iyi düzeltmeleri daha hızlı elde etme eğilimindedirler. Ancak, Reçine olgunlaşmamış ve bunu GlassFish veya JBoss'a göre önleyecektim - konuşlandırmayı ve desteklemeyi sorunlu buldum. Daha geniş müşteri tabanı, olgunluğu, vb.Nedeniyle JBoss'u tercih ederim. GlassFish'in otomatik bir derleme / dağıtım sürecine dahil edilmesi daha zordur, ancak bazı spesifik özellikleri için daha iyi olabilir (onlara ihtiyacınız varsa).
Apache'ye ihtiyacım için özel bir nedenim var mı? Sonra Tomcat'e yaslanın, belki artı bir şey.
Sadece sunucuları ile yapabilir miyim? O zaman Jetty'yi kullanırım - en hafif, en hızlı, en kolay, en esnek çözüm. İskeleyi kullanabilmeye eğilimliysem, neden olduğumla ilgili tüm varsayımları sorgularım. YAGNI geçerlidir.
En iyisi, Jetty'de StringTemplate / WebStringTemplate kullanmaktır: lisans ücreti, sağlam itibar ve destek vb.İle temiz, sağlam, hızlı, bakımı kolay bir çözüm vb. Bugünlerde başladığım yer burası.
Çoğu uygulama / sistem, gerçekten ihtiyaç duydukları tek şey sunucuları ve bazı iyi mimari / tasarıma sahip JDBC olduğunda birçok fantezi J2EE özelliği seçer. Neden daha fazlasına ihtiyacın olduğunu düşündüğünü sor.
Tam şişelenmiş kaplar arasında, bir MAJOR genel web sitesini desteklemediğiniz sürece WebLogic ve WebSphere'den kaçınırım (mevcut işverenimin web sitesi WebLogic'e dağıtılır ve ayda on bir + milyon isabet alır, diğerleri karşılaştırılabilir olmuştur). WebLogic'in gerçek şöhret iddiası göreceli olarak kolay kümelenmeleridir, ancak (neredeyse) her ne pahasına olursa olsun tescilli satıcı kilitleme özelliklerinden kaçının. WebSphere, kelimenin tam anlamıyla pahasına kaçınacağım bir kabus - geçmişte bir çift yaptıktan sonra WebSphere'i içeren projeleri yapmayı reddediyorum. Tescilli bir özelliğin kullanımını teşvik eden özel bir gereksiniminiz yoksa, her iki ürün de büyük lisans ücretlerine değmez. On yıl içinde Fortune 500 şirketlerinde üst düzey bir mimar / mühendis olarak henüz böyle bir ihtiyaç görmedim. Diğer yandan,
Gerçekten büyük, yüksek trafikli, halka açık web siteleri için bile, tescilli ürünler hala tartışmalıdır. Basit bir ölçeklenebilirlik çözümünü ele almak için bir avuç gerçekten iyi danışmandan yılda birkaç milyon dolarlık lisans ücretini iyi bir donanım ve kaliteli bir zaman harcamayı tercih ederim. Yıllık ekstra milyonlar, o güzel web sitesinde satılmaya değer bir şey üretmek için kullanılabilir ...
EDIT: dikkate alınacak başka bir parça ...
Son zamanlarda Terracotta ile karşılaştım . Her şeyi yeniden düşünüyorum ve yakında önemli bir sisteme yerleştirmeyi düşünüyorum. Özellikle, Terracotta kümelenmeyi her şeyden daha iyi yapar, bu yüzden KÜMÜNDE kümelenmesi için WebLogic'i tavsiye etmem.