Saya telah menggunakan WebLogic, WebSphere, JBoss, GlassFish, Resin, Jetty, Tomcat, dan beberapa lainnya selama 10+ tahun terakhir. Jadi, jika saya sedang mempertimbangkan proyek baru, saya akan bertanya pada diri sendiri beberapa pertanyaan terlebih dahulu. Satu hal yang tidak akan saya pertanyakan lagi adalah bahwa saya akan menolak menggunakan JSP kecuali saya disiksa sampai saya menangis untuk ibu saya.
Apakah saya harus kompatibel / menerapkan produk tertentu karena mandat seseorang? Apakah tidak ada cara untuk mengabaikan mereka atau meyakinkan mereka sebaliknya? Jika demikian, itulah jawabannya.
Apakah saya harus menggunakan EJB? Betulkah? Hindari mereka jika memungkinkan - mereka benar-benar hanya diperlukan untuk sistem kelas perusahaan yang sangat besar. Ingatlah bahwa mereka hanyalah alat, dan yang besar pada hal itu (adakah yang bisa mengatakan "Palu Emas"?). Mereka sangat digunakan secara berlebihan, jadi sungguh, pertanyakan apakah Anda membutuhkannya. Jika Anda membutuhkannya, maka itu menghapus beberapa opsi Anda termasuk favorit saya, Jetty.
Apakah Anda harus menggunakan teknologi J2EE utama lainnya seperti JMS, ESB, dll? Jika demikian, dan Anda benar-benar tidak dapat melakukannya, maka Anda lagi-lagi dibatasi ke container J2EE yang lengkap. Pikirkan dan selidiki dengan hati-hati sebelum Anda berkomitmen pada BPM, misalnya, dan hindari AquaLogic BPM di (hampir) semua biaya - ini sangat buruk.
Jika Anda benar-benar harus menggunakan container J2EE yang lengkap, pertimbangkan open-source terlebih dahulu karena lebih kuat, lebih didukung, dan lebih hemat biaya. Mereka memiliki basis pelanggan yang lebih besar dan interaksi dukungan yang lebih terbuka, sehingga mereka cenderung mendapatkan perbaikan yang lebih baik lebih cepat. Namun, Resin belum matang dan saya akan menghindarinya relatif terhadap GlassFish atau JBoss - saya merasa bermasalah untuk diterapkan dan didukung. Saya lebih memilih JBoss karena basis pelanggannya yang lebih luas, kedewasaan, dll. GlassFish lebih sulit untuk digabungkan ke dalam proses pembuatan / penerapan otomatis, tetapi mungkin lebih baik untuk beberapa fitur spesifiknya (jika Anda membutuhkannya).
Apakah saya punya alasan khusus untuk membutuhkan Apache? Kemudian bersandar ke Tomcat, mungkin ditambah sesuatu.
Bisakah saya puas hanya dengan servlet? Kemudian saya akan menggunakan Jetty - ini adalah solusi paling ringan, tercepat, termudah, dan paling fleksibel. Jika saya bersandar pada kemampuan untuk menggunakan Jetty, saya akan mempertanyakan semua asumsi saya mengapa. YAGNI berlaku.
Yang terbaik adalah menggunakan StringTemplate / WebStringTemplate di Jetty: solusi yang bersih, kuat, cepat, dapat dipelihara tanpa biaya lisensi, reputasi dan dukungan yang solid, dll. Di situlah saya mulai saat ini.
Sebagian besar aplikasi / sistem memilih banyak fitur J2EE yang mewah ketika yang mereka butuhkan hanyalah servlet dan JDBC dengan arsitektur / desain yang layak. Pertanyakan mengapa Anda merasa membutuhkan lebih banyak.
Dari penampung penuh, saya akan menghindari WebLogic dan WebSphere kecuali Anda mendukung situs web publik UTAMA (situs web perusahaan saya saat ini digunakan di WebLogic dan mendapat sebelas + juta klik per bulan, yang lain sebanding). Klaim nyata untuk ketenaran WebLogic adalah pengelompokannya yang relatif mudah, tetapi hindari fitur penguncian vendor milik mereka di (hampir) semua biaya. WebSphere hanyalah mimpi buruk yang akan saya hindari secara harfiah dengan cara apa pun - saya menolak untuk melakukan proyek yang melibatkan WebSphere setelah melakukan beberapa di masa lalu. Tidak ada produk yang sebanding dengan biaya lisensi yang sangat besar, kecuali Anda benar-benar memiliki kebutuhan khusus yang mendorong penggunaan fitur berpemilik. Dalam satu dekade sebagai arsitek / insinyur senior di banyak perusahaan Fortune 500, saya belum melihat kebutuhan seperti itu. Di samping itu,
Bahkan untuk situs publik yang sangat besar, lalu lintas tinggi, produk berpemiliknya masih dipertanyakan. Saya lebih suka menghabiskan jutaan dolar per tahun untuk biaya lisensi untuk beberapa perangkat keras yang bagus dan waktu yang berkualitas dari beberapa konsultan yang sangat bagus untuk menangani solusi skalabilitas sederhana. Jutaan ekstra per tahun kemudian dapat digunakan untuk menghasilkan sesuatu yang layak dijual di situs web yang bagus itu ...
EDIT: bagian lain untuk dipertimbangkan ...
Saya baru-baru ini menemukan Terracotta . Saya memikirkan kembali segalanya, dan ingin segera menerapkannya dalam sistem yang signifikan. Secara khusus, Terracotta melakukan pengelompokan lebih baik dari apa pun, jadi saya TIDAK LAGI merekomendasikan WebLogic untuk pengelompokannya.