Saya sangat baru di Java EE dan saya mencoba memahami konsep antarmuka lokal dan antarmuka jarak jauh.
Dalam versi awal spesifikasi EJB, EJB "diasumsikan" sebagai komponen jarak jauh dan satu-satunya cara untuk memintanya adalah dengan membuat panggilan jarak jauh, menggunakan semantik RMI dan semua overhead yang disiratkan (panggilan jaringan dan objek serialisasi untuk setiap panggilan metode). Klien EJB harus membayar penalti kinerja ini bahkan ketika ditempatkan di mesin virtual yang sama dengan wadah EJB.
Kemudian, Sun menyadari sebagian besar aplikasi bisnis sebenarnya tidak mendistribusikan EJB pada tingkat yang berbeda dan mereka memperbaiki spec (dalam EJB 2.0) dengan memperkenalkan konsep antarmuka lokal sehingga klien yang ditempatkan di mesin virtual yang sama dengan wadah EJB dapat memanggil EJB menggunakan doa metode langsung, benar-benar melewati semantik RMI (dan overhead terkait).
Saya telah diberitahu bahwa salah satu keuntungan besar Java EE adalah mudah untuk menskalakan (yang saya percaya berarti Anda dapat menggunakan komponen yang berbeda pada server yang berbeda)
Java EE dapat menskala, tetapi ini tidak berarti mendistribusikan komponen. Anda bisa menjalankan aplikasi Web + EJB pada sebuah cluster tanpa memisahkan tingkat Web dan tingkat EJB.
Apakah Anda seharusnya menggunakan antarmuka jauh jika Anda mengharapkan aplikasi Anda memiliki komponen yang berbeda pada server yang berbeda? Dan gunakan antarmuka lokal jika aplikasi Anda hanya akan berada di satu server?
Saya ingin ungkapannya seperti ini: gunakan antarmuka jarak jauh jika klien tidak berada dalam JVM yang sama (ini tidak berarti hanya menggunakan satu server / JVM).
(...) Mulailah dengan menggunakan antarmuka lokal, dan secara bertahap tingkatkan ke antarmuka jarak jauh di mana berlaku?
Saya mungkin akan mulai dengan menggunakan antarmuka lokal. Dan seperti yang sudah ditunjukkan, beralih ke antarmuka jarak jauh tidak selalu wajib (Anda dapat mengelompokkan yang dilokasi struktur yang ).
Saya sarankan untuk memeriksa sumber daya yang disebutkan di bawah (2 yang pertama sudah cukup tua tetapi masih relevan, 2 lainnya lebih baru).
Sumber daya