Enterprise Java Beans (EJB) PENGEMBANGAN APLIKASI ENTERPRISE (C) 2016 NIKO IBRAHIM FAKULTAS TEKNOLOGI INFORMASI UNIVERSITAS KRISTEN MARANATHA
Materi Pengenalan EJB Fungsi EJB
Komponen EJB Jenis-jenis EJB
Intro to Enterprise Java Beans (EJB) Persistence Layer dibangun dengan menggunakan objek-objek
(entity/entitas bean) yang dapat dipetakan menjadi tabel dan atribut ke dalam basis data relasional. Hal ini dimungkinkan karena adanya “annotations”. Hal tersebut dilakukan untuk menjaga entitas se-transparan mungkin dan tidak ‘tercampur aduk’ dengan business logic. Entitas dapat memiliki methods untuk mem-validasi atributnya. Namun methods ini tidak diperuntukan untuk melakukan hal-hal yang kompleks yang mana seringkali membutuhkan interaksi dengan komponen lain.
Intro to EJB: Persistence, Presentation, Business Layer Persistence layer (entity bean) bukanlah layer yang
diperuntukan untuk pemrosesan logika bisnis. Demikian juga halnya dengan ‘user interface layer’, tidak boleh digunakan untuk melakukan pemrosesan logika bisnis, khususnya pada saat sistem memiliki multiple interfaces (web, swing, mobile, dll) Untuk memisahkan persistence layer dari presentation layer, untuk mengimplementasikan logika bisnis, untuk menambah manjemen transaction dan security, aplikasi membutuhkan suatu business layer. Di dalam Java EE, layer ini diimplementasikan dengan menggunakan Enterprise Java Beans (EJB)
Architecture Layering
Fungsi Business Layer Untuk aplikasi berskala besar (enterprise level), layering
sangatlah penting! Dengan mengikuti pendekatan “bottom-up”:
Pertama-tama kita melakukan pemodelan class-class (entitas pada JPA), biasanya menggunakan kata benda (Artist, CD, Buku, Customer, dll). Di atas layer ini, kita buat business layer yang memodelkan ‘action’ (kata kerja) dari aplikasi (create buku, beli book, print order, kirim buku, dll)
Seringkali business layer ini berinteraksi juga dengan web
services (SOAP, RESTful), mengirimkan pesan pada sistem lain (JMS), atau mengirimkan email (Java Mail).
Understanding EJBs EJB adalah komponen server-side (disimpan di application server
seperti GlassFish). Komponen ini meng-enkapsulasi logika bisnis dan menangani transaction serta security. EJB juga memiliki komponen yang terintegrasi untuk melakukan messaging, sheduling, remote access, web service enpoints (SOAP dan REST), dependency injection, component life cycle, AOP, dll. Selain itu, EJB juga terintegrasi dengan mudah dengan teknologi di Java SE dan Java EE, seperti JDBC, JavaMail, JPA, Java Transaction API (JTA), Java Messaging Service (JMS), Java Authentication and Authorization Service (JAAS), Java Naming and Directory Interface (JNDI), dan Remote Method Invocation (RMI)
Bagaimana membuat EJB? EJB menggunakan model pemrograman yang powerful
yang mengkombinasikan kemudahan (ease) dan kehandalan (robust) Saat ini EJB merupakan model pengembangan server-side Java yang paling simpel, meminimalkan kompleksitas namun tetap mengedepankan reusability dan scalability pada aplikasi enterprise. Hal ini dimungkinkan hanya dengan melalui cara yang simpel, yaitu memberikan annotation pada objek java biasa (single plain old java /POJO) yang kemudian di-deploy (disimpan) di dalam sebuah container (eg. GlassFish, dll)
Fungsi EJB Container EJB container (application server) adalah suatu runtime
environment yang menyediakan berbagai services, seperti manajemen transaction, concurrency control, pooling, dan security authorization. Seiring perkembangan teknologi, application server juga telah memiliki feature lain seperti clustering, load balancing, dan failover. Sebagai programmer, kita dapat berkonsentrasi pada implementasi logika bisnis, sedangkan container akan menangani hal-hal teknis seperti di atas.
Jenis-jenis EJB Karena aplikasi enterprise dapat menjadi kompleks,
Java EE menyediakan berbagai jenis EJB:
Session Beans Entity Beans Message Driven Beans EJB Timer Service
EJB 1: Session Beans Session bean digunakan untuk meng-enkapsulasi logika
bisnis, yang membuatnya menjadi bagian terpenting di dalam teknologi EJB. Terdapat 3 jenis session bean yang memiliki fungsi berbeda:
Stateless: The session bean contains no conversational state between methods, and any instance can be used for any client. Stateful: The session bean contains conversational state, which must be retained across methods for a single user. Singleton: A single session bean is shared between clients and supports concurrent access.
EJB 2: Timer Service & MDB Aplikasi enterprise seringkali membutuhkan fungsi-fungsi
notifikasi berdasarkan tanggal/waktu tertentu. Misalnya, setiap jam 12:00 sistem harus mengirimkan email otomatis. EJB timer service adalah standar java EE untuk menjawab kebutuhan tugas-tugas sheduling seperti di atas. Message-driven beans (MDBs) digunakan untuk mengintegrasikan sistem kita dengan sistem lainnya dengan cara mengerima asynchronous messages menggunakan JMS (Java Messaging Service).
What Next Materi berikutnya akan membahas jenis-jenis EJB
dengan lebih mendetil. Saat ini, kita akan melakukan tutorial membuat aplikasi enterprise dengan menggunakan NetBeans. Selamat Belajar!