1. Apa itu EJB?
EJB (Enterprise Java Beans) adalah teknologi komponen aplikasi komersial di Javaee dan merupakan salah satu dari tiga komponen utama Javaee (Servlet, JSP, EJB). EJB menyediakan kerangka kerja untuk memungkinkan klien menggunakan objek terdistribusi jarak jauh, sangat menyederhanakan pengembangan aplikasi tingkat perusahaan dengan skalabilitas yang baik. Struktur komponen EJB adalah struktur komputasi terdistribusi berdasarkan komponen dan merupakan komponen dalam sistem aplikasi terdistribusi.
EJB adalah spesifikasi dari kerangka kerja layanan sisi server Java dan mendefinisikan spesifikasi teknis untuk sistem komponen sisi server. Spesifikasi ini dapat memberikan arsitektur standar, terdistribusi, berorientasi objek. Ini memblokir implementasi fungsional yang mendasari tingkat sistem yang kompleks untuk pengembang dan pengguna komponen, yang memungkinkan pengembang untuk fokus pada implementasi logika bisnis, dan beberapa layanan yang mendasari kompleks bertanggung jawab atas wadah EJB. EJB dapat diperluas sesuai dengan pertumbuhan aplikasi, dan server EJB menyediakan fungsi penyeimbangan beban, serta kontrol akses sumber daya.
2. Komunikasi antara wadah dan komponen EJB
Wadah EJB menyediakan lingkungan operasi untuk komponen EJB. Cara wadah EJB mengelola EJBS mirip dengan bagaimana wadah web mengelola servlet. EJBS harus berjalan dalam wadah EJB. Wadah EJB terutama mengelola kegigihan EJB, manajemen siklus hidup, manajemen keamanan, manajemen transaksi, koneksi jarak jauh, pemrosesan bersamaan, pengelompokan dan penyeimbangan beban. Kontainer mengelola instance komponen EJB, memungkinkan komponen EJB untuk mencapai kinerja maksimum dan pemanfaatan memori. Wadah dapat mengaktifkan dan memastikan komponen EJB, mengelola kumpulan instance, dll. Kontainer bertanggung jawab untuk mengelola masalah kompleks pemrosesan transaksi terdistribusi, mengelola masalah komunikasi tingkat rendah untuk koneksi jarak jauh, dan menyembunyikan masalah komunikasi untuk pengembang komponen EJB dan pelanggan. Oleh karena itu, pengembang komponen EJB dapat fokus pada enkapsulasi logika bisnis, dan wadah bertanggung jawab untuk menangani semua transaksi lainnya. EJB berinteraksi dengan wadah melalui mekanisme seperti Fungsi EJBContent, JNDJ, Callback.
JBoss adalah wadah dan server yang mengelola EJB, mendukung spesifikasi EJB1.1, EJB2.0 dan EJB3, dan umumnya terikat pada Tomcat atau Jetty.
Silakan lihat Gambar 1 (skema kerja dari wadah EJB):
Gambar 1: Prinsip kerja wadah EJB
Komponen EJB adalah objek terdistribusi yang, ketika dipakai, dapat berkomunikasi dengan aplikasi di ruang alamat lainnya. Contoh EJB dienkapsulasi dalam objek kerangka, yang berkomunikasi dengan klien melalui objek rintisan. Stub tidak termasuk logika bisnis, tetapi mengimplementasikan antarmuka bisnis. Setiap kali metode komersial pada antarmuka komersial Stub dipanggil, stub mengirimkan pesan jaringan ke kerangka kerja dan memberi tahu metode mana yang disebutnya. Kerangka kerja memanggil metode yang sesuai dari instance EJB dan mengirimkan hasil yang dikembalikan oleh instance EJB ke rintisan, dan rintisan mengembalikan hasil ini ke aplikasi yang sesuai. Melalui dua objek menengah, potongan dan kerangka kerja, proses komunikasi yang kompleks antara objek terdistribusi diblokir. Kerangka kerja diimplementasikan oleh wadah, sedangkan stubs secara otomatis dihasilkan oleh alat pengembangan, yang tidak ada yang membutuhkan kode penulisan. Silakan lihat Gambar 2 (skema komunikasi komponen EJB):
Gambar 2: Prinsip Komunikasi Antara Komponen EJB
3. Klasifikasi EJB
Komponen EJB dapat dibagi menjadi dua jenis: Kacang sesi dan kacang yang digerakkan pesan. Kacang sesi merangkum logika bisnis. Klien dapat memanggil metode sesi kacang melalui layanan lokal, jarak jauh, dan web untuk mengakses aplikasi yang digunakan di server, sehingga memanggil metode kacang lainnya. Kacang sesi tidak gigih, yaitu datanya tidak disimpan dalam database. Di antara mereka, kacang sesi mencakup tiga jenis: biji sesi stateful, kacang sesi tanpa kewarganegaraan dan kacang sesi tunggal. Kacang yang digerakkan pesan sering digunakan sebagai pendengar untuk jenis pesan tertentu, memungkinkan Javaee untuk menangani pesan asinkron, dan klien tidak mengakses kacang yang digerakkan pesan melalui antarmuka.
Berikut ini akan memperkenalkan kacang sesi stateful, kacang sesi tanpa kewarganegaraan, kacang sesi tunggal dan kacang sesi yang digerakkan pesan pada gilirannya.
4. Kacang sesi stateless
Kacang sesi stateless hanya menyediakan logika bisnis untuk klien dan tidak mempertahankan status sesi untuk klien. Ketika klien memanggil metode kacang sesi tanpa kewarganegaraan, sifat -sifat kacang sesi yang sesuai akan menjelaskan status panggilan, tetapi hanya mempertahankan status ini selama panggilan metode. Ketika panggilan metode selesai, keadaan dibersihkan.
Siklus hidup kacang sesi tanpa kewarganegaraan dikendalikan oleh wadah. Ketika wadah EJB menerima permintaan klien untuk sesi tanpa kewarganegaraan, jika EJB tidak ada, wadah akan membuat contoh kacang, menyuntikkan sumber daya yang diperlukan ke dalam komponen, dan kemudian wadah memanggil kembali metode postconstruct, dan komponen dibuat. Pada saat ini, transisi kacang dari keadaan "tidak ada" ke negara "keberadaan". Ketika panggilan klien selesai, wadah memanggil kembali metode predestroy, dan kacang akan dihancurkan. Pada saat ini, kacang akan dikonversi dari negara "yang ada" ke keadaan "tidak ada". Silakan lihat Gambar 3 (Siklus Hidup Kacang Sesi tanpa kewarganegaraan):
Gambar 3: Siklus hidup kacang sesi stateless
5. Kacang sesi stateful
Kacang sesi stateful mempertahankan keadaan sesi untuk pengguna. Itu tidak dapat ditempatkan di kumpulan komponen untuk pengguna yang berbeda untuk berbagi seperti kacang sesi tanpa kewarganegaraan. Untuk kacang sesi stateful, selama klien mengirimkan permintaan, wadah membuat instance yang sesuai dengan klien, dan satu klien sesuai dengan instance. Selama seumur hidup, kacang sesi stateful mempertahankan informasi pengguna, dan begitu sesi berakhir, siklus hidup kacang sesi stateful juga berakhir.
Kacang sesi stateful memiliki tiga negara aktif: tidak ada, aktif, dan pasif. Ketika kacang sesi stateful aktif untuk jangka waktu tertentu, jika permintaan dari klien eksternal masih belum diterima, untuk menghemat sumber daya sistem, wadah akan membuat serialisasi informasi negara dalam biji sesi stateful ke ruang penyimpanan sementara dan menghapus kacang sesi stateful dari memori. Proses ini disebut "pasif". Wadah memanggil kembali metode prepassive sebelum pasif. Ketika wadah menerima permintaan untuk kacang sesi stateful yang telah dilewati, ia mengulangi instance dari biji sesi stateful dan mengeluarkan informasi status dari ruang sementara untuk mengembalikannya ke keadaan aktif. Proses ini disebut "aktivasi". Setelah aktivasi, wadah memanggil kembali metode proaktivasi. Ketika seekor sesi stateful pasif untuk jangka waktu tertentu, wadah akan sepenuhnya menghapus instance dan memanggil kembali metode PrePROY. Silakan lihat Gambar 4 (siklus hidup kacang sesi stateful):
Gambar 4: Siklus hidup kacang sesi stateful
6. Kacang sesi satu kamar
Kacang sesi tunggal dipakai sekali untuk setiap aplikasi dan selalu ada di seluruh siklus hidup aplikasi. Kacang sesi tunggal dirancang untuk skenario tertentu, dan klien dapat mengakses instance EJB yang unik ini dalam mode bersama dan bersamaan.
Kacang sesi tunggal sangat mirip dengan kacang sesi tanpa kewarganegaraan. Perbedaannya adalah bahwa kacang sesi tunggal hanya memiliki satu contoh dalam aplikasi, sedangkan kacang sesi stateless dapat memiliki banyak contoh, setiap contoh ditempatkan di kumpulan komponen untuk dibagikan oleh pengguna.
Kacang sesi tunggal seperti kacang sesi tanpa kewarganegaraan, tidak pernah dilewati. Siklus hidupnya hanya berisi dua jenis tubuh: "tidak ada" dan "keberadaan". Silakan lihat Gambar 5 (siklus hidup seekor kacang sesi tunggal):
Gambar 5: Siklus hidup kacang sesi tunggal
7. Kacang yang digerakkan pesan
Kacang yang digerakkan pesan adalah komponen yang dirancang untuk menangani permintaan berbasis pesan secara khusus. Kacang yang digerakkan pesan mengintegrasikan fungsi Java Message Service (JMS) dan perusahaan kacang. Klien tidak dapat secara langsung mendapatkan referensi dan memanggil metode ini, tetapi hanya dapat dimulai dengan pesan sistem.
Wadah EJB biasanya membuat kumpulan komponen kacang yang digerakkan pesan. Mirip dengan kacang sesi stateless, kacang yang digerakkan pesan tidak pernah dilewati, dan siklus hidupnya hanya berisi dua tahap: tidak ada dan keberadaan.
Kelas kacang yang digerakkan pesan harus mengimplementasikan antarmuka MessageListener. Ketika wadah mendeteksi pesan dalam antrian yang didengarkan oleh kacang, ia memanggil metode OnMessage () dan menyampaikan pesan sebagai parameter.
Pemahaman komprehensif di atas tentang EJB dasar J2EE adalah semua konten yang saya bagikan dengan Anda. Saya harap Anda dapat memberi Anda referensi dan saya harap Anda dapat mendukung wulin.com lebih lanjut.