Tam teşekküllü bir uygulama sunucusu (örn. Weblogic, JBoss vb.) İle bir servlet konteyneri (Tomcat, Jetty vb.) Arasındaki farkı anlamaya çalışıyorum.
Nasıl farklılık gösterirler ve hangisini ne zaman kullanırlar?
Teşekkürler,
Tam teşekküllü bir uygulama sunucusu (örn. Weblogic, JBoss vb.) İle bir servlet konteyneri (Tomcat, Jetty vb.) Arasındaki farkı anlamaya çalışıyorum.
Nasıl farklılık gösterirler ve hangisini ne zaman kullanırlar?
Teşekkürler,
Yanıtlar:
Bir sunucu uygulaması kapsayıcısı yalnızca sunucu uygulaması API'sini (JSP, JSTL dahil) destekler.
Bir uygulama sunucusu tüm JavaEE'yi destekler - EJB, JMS, CDI, JTA, servlet API (JSP, JSTL dahil), vb.
JavaEE teknolojilerinin çoğunu bir servlet-container üzerinde çalıştırmak mümkündür, ancak belirli teknolojinin bağımsız bir uygulamasını kurmanız gerekir.
Genel olarak konuşursak, bir servlet konteyneri, J2EE Servlet spesifikasyonunun uygulanmasıyla kendini aşağı yukarı sınırlar. Ayrıca, çalışma zamanı ortamına odaklanır ve ek araçlar sağlamaya çok fazla odaklanılmaz.
Bunun aksine, tam teşekküllü bir uygulama sunucusu tüm J2EE yığınını uygular; artı tüm girişimci araçlar ve entegrasyon olanakları ile birlikte gelir. Bir uygulama sunucusu genellikle gelişmiş yönetim arabirimlerine sahiptir, kümelemeyi ve çoğunlukla üst düzey sistem geliştirmede kullanılan diğer özellikleri destekler.
Yeni başlayanlar için, basit bir servlet kabında kalmak muhtemelen daha iyidir, çünkü oradaki öğrenme eğrisi çok daha az diktir.
Düzenle
@Apache Fan: Diğer şeylerin yanı sıra mevcut sistemler ve gelecek planları gibi durumunuzun özelliklerine bağlıdır. Burada genel bir akış şeması yaklaşımının uygulanabileceğini düşünmüyorum.
Platform seçimi genellikle söz konusu sistemlere ilişkin ilk elden bilgi ile belirli gereksinimleri tartarak yapılır.
Ancak soru, değerlendirme kriterlerinin ne olduğuna dair hiçbir ipucu vermez. Açık kaynak mı olmalı? 24 saat satıcı desteği gerekli mi? Sistem nasıl bir işletme ortamı ile entegre olmalıdır? Lisans ücretleri bir sorun mu? Sahip olunması gereken teknoloji veya araçlar var mı? Vb.
Yukarıdakileri bilmeden karanlıkta çekim yapmak neredeyse imkansızdır.
Temel olarak Java EE bağlamındaki bir uygulama sunucusu , bir sunucuya yüklenmiş olan ve bir Java EE spesifikasyonunu (örneğin Java EE 7) uygulayan bir yazılımdır. Bu, söz konusu yazılımın (uygulama sunucusu) Java EE uygulamasını çalıştırabilmesi gerektiği anlamına gelir.
Java EE, kapsayıcılar adı verilen 4 etki alanını tanımlar :
İki kapsayıcı, uygulama sunucusunun bir parçasıdır (EJB ve Web kapsayıcısı) ve diğer ikisi istemci-bilgisayarın parçasıdır.
JBoss ve Weblogic uygulama sunucularıdır, Tomcat ve Jetty web kapsayıcısıdır. Bu nedenle JBoss ve Weblogic, bir Web kapsayıcısından daha fazla teknolojiyle başa çıkabilir. Uygulama sunucusu EJB'yi yönetebilir.
Servlet kapsayıcısı , daha kısıtlayıcı olduğu için nitelikli Tomcat ve Jetty için uygun bir ifade değildir . Tomcat, yalnızca Servlet'leri değil, JSP ve JSF'yi de çalıştırabilir.
afaik, websphere ve jboss, EJB gibi sunucu uygulamalarının ötesinde çalışabilen tamamen uyumlu j2ee-sunucusudur, oysa Tomcat sadece bir servlet konteynırdır ve EJB'leri çalıştıramazsınız.
Layman terimleriyle: Bir web Sunucusu şu anlama gelir: HTTP isteklerini işleme (genellikle tarayıcılardan).
Servlet Container (örneğin Tomcat) şu anlama gelir: Servletleri ve JSP'yi işleyebilir.
Bir Uygulama Sunucusu (örneğin, GlassFish) şu anlama gelir: * Java EE uygulamalarını yönetebilir (genellikle hem sunucu uygulaması / JSP hem de EJB'ler).
Yeni başlayanlar için, basit bir servlet kabında kalmak muhtemelen daha iyidir.