Saya mencoba untuk memahami perbedaan antara server aplikasi yang lengkap (misalnya Weblogic, JBoss dll.) Dan wadah servlet (Tomcat, Jetty dll.).
Bagaimana perbedaannya dan kapan menggunakan yang mana?
Terima kasih,
Saya mencoba untuk memahami perbedaan antara server aplikasi yang lengkap (misalnya Weblogic, JBoss dll.) Dan wadah servlet (Tomcat, Jetty dll.).
Bagaimana perbedaannya dan kapan menggunakan yang mana?
Terima kasih,
Jawaban:
Sebuah servlet-container hanya mendukung servlet API (termasuk JSP, JSTL).
Server aplikasi mendukung seluruh JavaEE - EJB, JMS, CDI, JTA, servlet API (termasuk JSP, JSTL), dll.
Dimungkinkan untuk menjalankan sebagian besar teknologi JavaEE pada servlet-container, tetapi Anda harus menginstal implementasi mandiri dari teknologi tertentu.
Secara umum, wadah servlet membatasi dirinya lebih atau kurang untuk implementasi spesifikasi Servlet J2EE. Selain itu, fokusnya adalah pada lingkungan runtime dan bukan pada penyediaan alat tambahan.
Sebaliknya, server aplikasi yang lengkap mengimplementasikan seluruh tumpukan J2EE; plus dilengkapi dengan semua alat dan kemungkinan integrasi. Server aplikasi biasanya memiliki antarmuka administrasi tingkat lanjut, mendukung pengelompokan dan fitur lain yang sebagian besar digunakan dalam pengembangan sistem kelas atas.
Untuk pemula, mungkin lebih baik tetap menggunakan wadah servlet sederhana, karena kurva belajarnya tidak terlalu curam.
Sunting
@Apache Fan: Itu tergantung pada spesifik situasi Anda seperti sistem yang ada dan rencana masa depan antara lain. Saya tidak berpikir pendekatan diagram alur umum dapat diterapkan di sini.
Pemilihan platform biasanya dilakukan dengan mempertimbangkan persyaratan khusus terhadap pengetahuan langsung dari sistem yang sedang dipertimbangkan.
Namun pertanyaan tersebut tidak memberikan petunjuk seperti apa kriteria evaluasi itu. Haruskah itu open source? Apakah dukungan vendor sepanjang waktu diperlukan? Jenis lingkungan perusahaan apa yang harus diintegrasikan dengan sistem? Apakah biaya lisensi menjadi masalah? Adakah teknologi atau alat yang harus dimiliki? Dll
Tanpa mengetahui hal di atas, cukup banyak memotret dalam kegelapan.
Pada dasarnya server aplikasi dalam konteks Java EE adalah perangkat lunak yang diinstal pada server dan mengimplementasikan satu spesifikasi Java EE (misalnya Java EE 7). Artinya software tersebut (application server) harus dapat menjalankan aplikasi Java EE.
Java EE mendefinisikan 4 domain, yang disebut kontainer :
Dua kontainer adalah bagian dari server aplikasi (EJB dan kontainer Web) dan dua lainnya adalah bagian dari komputer klien.
JBoss dan Weblogic adalah server aplikasi, Tomcat dan Jetty adalah wadah web. Itulah mengapa JBoss dan Weblogic dapat menangani lebih banyak teknologi daripada wadah Web. Server aplikasi dapat mengelola EJB.
Kontainer servlet bukanlah ekspresi yang sesuai untuk Tomcat dan Jetty yang memenuhi syarat karena lebih ketat. Tomcat juga dapat menjalankan JSP dan JSF, tidak hanya Servlet.
afaik, websphere dan jboss sepenuhnya sesuai dengan j2ee-server yang dapat berjalan di luar servlet, seperti EJB, sedangkan Tomcat hanyalah sebuah wadah servlet dan Anda tidak dapat menjalankan EJB di atasnya.
Dalam istilah Awam: Web Server artinya: Menangani permintaan HTTP (biasanya dari browser).
Sebuah Kontainer Servlet (misalnya Tomcat) berarti: Dapat menangani servlet & JSP.
Server Aplikasi (misalnya GlassFish) berarti: * Dapat mengelola aplikasi Java EE (biasanya servlet / JSP dan EJB).
Untuk pemula, mungkin lebih baik menggunakan wadah servlet sederhana.