Java EE'de çok yeniyim ve Yerel arabirimler ve Uzak arabirimler kavramını anlamaya çalışıyorum.
EJB spesifikasyonunun ilk versiyonlarında, EJB'lerin uzak bileşenler olduğu varsayıldı ve bunları çağırmanın tek yolu, RMI semantiği ve ima ettiği tüm yükü kullanarak (her biri için bir ağ çağrısı ve nesne serileştirmesi) bir uzaktan çağrı yapmaktı. yöntem çağrısı). EJB müşterileri, EJB konteyneri ile aynı sanal makineye yerleştirildiklerinde bile bu performans cezasını ödemek zorunda kaldılar.
Daha sonra Sun, çoğu iş uygulamasının aslında EJB'leri farklı bir katmana dağıtmadığını fark etti ve Yerel arayüzler kavramını sunarak spesifikasyonu (EJB 2.0'da) sabitlediler, böylece EJB konteyneri ile aynı sanal makinede bulunan istemciler EJB'leri arayabilir doğrudan yöntem çağırma, tamamen RMI semantiği (ve ilgili yükü) atlayarak.
Java EE'nin en büyük avantajlarından birinin ölçeklendirmenin kolay olması söylendi (ki bu da farklı bileşenleri farklı sunucularda dağıtabileceğiniz anlamına geliyor)
Java EE ölçeklendirilebilir, ancak bu mutlaka bileşenlerin dağıtılması anlamına gelmez . Web katmanını ve EJB katmanını ayırmadan bir kümede Web + EJB uygulaması çalıştırabilirsiniz.
Uygulamanızın farklı sunucularda farklı bileşenlere sahip olmasını bekliyorsanız Uzak arayüzler kullanmanız mı gerekiyor? Ve uygulamanız yalnızca bir sunucuda kalacaksa Yerel arayüzler kullanılsın mı?
Ben böyle ifade: istemci aynı JVM (bu sadece bir sunucu / JVM kullanmak anlamına gelmez) değilse uzak arabirimleri kullanın.
(...) Yerel arabirimleri kullanarak başlayın ve uygulanabilir olduğunda yavaş yavaş Uzak arabirimlere yükseltilsin mi?
Muhtemelen Yerel arayüzleri kullanarak başlardım. Zaten ima gibi, uzak arayüzleri geçiş (bir küme her zaman zorunlu değildir collocated yapıyı).
Aşağıda belirtilen kaynakları kontrol etmenizi öneririm (ilk 2 tanesi oldukça eski ama yine de alakalı, 2 tanesi daha yeni).
kaynaklar