MUHAMMADIYAH
MALANG
Resume HF EJB :
Chapter II
ZAINAL BUCHORI
ARIEF PURNAMA ADJI
KHOIRUL HIDAYAT
M. ARIF ARIO ISLAM
(201110370311260)
(201110370311251)
(201110370311284)
(201110370311261)
Arsitektur EJB
Aristektur Enterprise JavaBeans adalah arsitektur komponen untuk
development dan deployment dari aplikasi bisnis terdistribusi berbasis komponen.
Aplikasi yang dibuat dengan artistektur Enterprise JavaBeans adalah skalabel,
transaksional, dan multiuser yang aman. Aplikasi-aplikasi ini mungkin ditulis sekali
dan dideploy pada berbagai platform server yang mendukung spesifikasi Enterprise
JavaBeans.
Konsep EJB terletak di container. Selebihnya EJB dibangun dari plain Java,
kumpulan dari library (bean) yang menurut Sun dibutuhkan untuk aplikasi
enterprise saat ini. Konsep bean sudah ada di Java SE atau secara konsep bahkan
sebelum Java. Inti dari bean cukup sederhana yaitu objek yang di rancang untuk
reusability.
Perbedaan EJB dgn bean terletak di container, yang sebenarnya adalah layer
sekaligus abstraksi tambahan yang di definisikan oleh Sun. Tujuan EJB adalah
mendefinisikan sebuah standar bagi para developer untuk membuat bean yang
capable untuk sistem enterprise.
Kebutuhan enterprise (saat ini) antara lain: remote invocation, scalability,
manageable.
Implementasi remoting sudah ada dari sebelum EJB misal dari socket, CORBA, RMI,
sampai WS. Konsep scalability misalkan: clustering, thread pooling, dsb. Jadi
sebenarnya developer bisa saja (dan tetap reasonable utk beberapa kasus)
mengimplementasikan kebutuhannya tanpa EJB. Namun di sinilah peranan EJB
sebagai framework yang standar (dan juga framework yang lain), memudahkan
(simplifikasi) developer untuk mengembangkan aplikasi.
Dengan container, bean dapat berinteraksi satu sama lain tanpa harus tahu secara
spesifik implementasi antar bean (abstraksi).JVM sendiri sebenarnya adalah sebuah
container. Dengan JVM, objek akan dapat berjalan di beberapa OS tanpa perubahan
kode. EJB dibangun di atas JVM, jadi EJB sebenarnya adalah kumpulan objek di atas
JVM, jadi wajar
EJB bisa berkomunikasi dengan EJB lain di beda JVM selama
JVM tersebut kompatibel.
EJB adalah salah satu framework Java, dan framework hanya memfasilitasi kita
melakukan pengembangan software. Apakah kita memilih CORBA, WS, RMI, Plain
Socket,dll.. menurut saya itu seharusnya sudah ada di luar scope EJB sebagai
framework.
Dan satu lagi, EJB adalah sebuah produk, EJB dibentuk dari konsep yang sudah ada
dan dipakai sebelumnya. Contohnya implementasi AOP pada EJB, sebenarnya
sebelum EJB, AOP sudah digunakan secara luas (AspectJ). JPA (Java Persistence API),
spesifikasi objek persisten pada EJB dibangun dengan mengadopsi Hibernate (Open
source ORM).
RMI adalah sebuah teknik pemanggilan method remote yang lebih secara umum
lebih baik daripada RPC. RMI menggunakan paradigma pemrograman berorientasi
obyek (Object Oriented Programming). RMI memungkinkan kita untuk mengirim
obyek sebagai parameter dari remote method. Dengan dibolehkannya program Java
memanggil method pada remote obyek, RMI membuat pengguna dapat
mengembangkan aplikasi Java yang terdistribusi pada jaringan.
Aplikasi RMI seringkali terdiri dari dua program terpisah yaitu server dan client.
Aplikasi server semacam ini biasanya membuat beberapa objek remote,
menyediakan referensi terhadap objek-objek tersebut sehingga dapat diakses, serta
menunggu client memanggil method dari objek-objek remote tersebut. Aplikasi
client mendapatkan referensi remote ke satu atau lebih objek remote di server dan
menjalankan method dari objek tersebut.
RMI menyediakan mekanisme dimana server dan client berkomunikasi dan
memberikan informasi secara timbal balik. Aplikasi semacam ini seringkali disebut
aplikasi objek terdistribusi.
RMI adalah sebuah teknik pemanggilan method remote yang lebih secara umum
lebih baik daripada RPC. RMI menggunakan paradigma pemrograman berorientasi
obyek (Object Oriented Programming). RMI memungkinkan kita untuk mengirim
obyek sebagai parameter dari remote method. Dengan dibolehkannya program Java
memanggil method pada remote obyek, RMI membuat pengguna dapat
mengembangkan aplikasi Java yang terdistribusi pada jaringan.
JVM (Java Virtual Machine) adalah sebuah mesin imajiner (maya) yang bekerja
dengan menyerupai aplikasi pada sebuah mesin nyata. JVM menyediakan spesifikasi
hardware dan platform dimana kompilasi kode Java terjadi. Spesifikasi inilah yang
membuat aplikasi berbasis Java menjadi bebas dari platform manapun karena
proses kompilasi diselesaikan oleh JVM.
Remote Procedure Call (RPC) adalah sebuah metode yang memungkinkan kita
untuk mengakses sebuah prosedur yang berada di komputer lain. Untuk dapat
melakukan ini sebuah server harus menyediakan layanan remote procedure.
Pendekatan yang dilakuan adalah sebuah server membuka socket, lalu menunggu
client yang meminta prosedur yang disediakan oleh server. Bila client tidak tahu
harus menghubungi port yang mana, client bisa me- request kepada sebuah
matchmaker pada sebuah RPC port yang tetap. Matchmaker akan memberikan port
apa yang digunakan oleh prosedur yang diminta client.
RPC masih menggunakan cara primitif dalam pemrograman, yaitu menggunakan
paradigma procedural programming. Hal itu membuat kita sulit ketika menyediakan
banyak remote procedure. RPC menggunakan socket untuk berkomunikasi dengan
proses lainnya. Pada sistem seperti SUN, RPC secara default sudah ter- install
kedalam sistemnya,
Untuk proses nya kurang lebih sama dengan RMI. Kalau RMI kita mengenal proxy
dan skeleton, pada RPC dikenal dengan Stub ( Client stub dan Server stub)
Argumen dan nilai kembalian
Primitif
Serializable Objek
Sebuah Array atau koleksi primitif atau Serializable objek
Remote Objek
Melewatkan remote objek melalui method remote
RMI memungkinkan kita untuk mengirim obyek sebagai parameter dari remote
method. Dengan dibolehkannya program Java memanggil method pada remote
Penjelasan gambar diatas adalah client ingin memanggil method getCstomer() pada
remote objek menggunakan stb A maka client menyampaikan pesan ke stub A
selanjutnya stub A menyampaikan ke skel dan skel melanjtkan ke Remote objek A.
Client memanggil business method pada stub melalui Remote business interface
Client tidak bisa langsung memanggil method pada remote objek harus melalui
Remote interface.
Komponen Interface
Pada EJB, bisnis interface disebut komponen interface. Perbedaan utama antara RMI
interfac dengan remote komponen interface adalah bahwa dengan EJB kita bisa
extend javax.ejb.EJBOBject dan sebaliknya RMI java.rmi.Remote.
Poin penting
1. Interface dengan java.rmi.Remote pada
inherntence tree adalah Remote interface.
2. Interface EJBObjek extend Remote,
sehingga EJBObjek adalah Remote interface.
3. Remote komponen interface harus
extend EJBObjek interface.
4. Menampilkan business method ke client
melalui komponen interface.
5. Interface EJBObjek menambahkan method
tambahan untuk digunakan client.
Architectural overview:
Creating a Stateful Session bean
Setelah mendapatkan Home stub, klien memanggil untuk "menciptakan" pada
Home . Home menciptakan komponen dan Object EJB untuk komponen dan stub
EJBobject.
1. Klient memanggil method create() pada home stub (creatae adalah method
pada interface home)
2. Stub mengrim method create pada home
3. Selanjutnya home kontainer menambah layanannya
4. EjbObject telah dibuat untuk klient
5. Bean tetap di bean pool ! dy keluar hanya untuk melayani sebuah busines
mehod sebenarnya, jika clien yang memanggil satu di EJBObject stub
6. EJBObject stub kembali pada klien, jadi klien dapat memanggil bisnis
method pada komponen interface.