Saat ini saya sedang mulai membuka [lagi] materi2 Java Enterprise Edition baik dari Tutorial Sun maupun dari Java Passion. Adapun yang saya pelajari sampai saat ini adalah sebagai berikut.
1. Java Enterprise Edition Architecture dan Web Application Architecture
2. Servlet
3. Java Server Pages
4. Enterprise JavaBeans
5. Java Database Connectivity
1. Java Enterprise Edition Architecture dan Web Application Architecture
- Java Enterprise Edition (Java EE) Architecture
Dalam dunia enterprise, sebuah arsitektur sangat penting untuk jalannya sebuah aplikasi. Mulai dari core, component di atas core, cara komunikasi antar komponen adalah hal-hal yang perlu mendapat perhatian untuk memahami Java EE. Buat saya awalnya cuek terhadap gambar2 arsitektur enterprise ini. Dan ternyata itulah kesulitan terbesar saya untuk memahami konsep2 Java EE yang sangat banyak. Satu hal lagi yang perlu diketahui, untuk menjalankan aplikasi Java EE, anda memerlukan Application Server yang compatible. Produk opensource yang cukup terkenal dalam jajara Application Server adalah JBoss, Sun Java System Application Server yang biasanya include dalam instalasi Java EE SDK.
- Web Application Architecture
Arsitektur ini awalnya kabur buat saya. Ternyata ini tak lebih dari membuat aplikasi berbasis web dengan Java. Setahu saya untuk membangun aplikasi berbasis web dengan Java digunakan Servlet atau Java Server Pages (JSP). Servlet sendiri adalah Java likely code yang berarti untuk menulis kode HTML harus dilewatkan sebagai string untuk kemudian ditampilkan dengan method print() atau println() sebagaimana layaknya Java code. Sedangkan JSP bisa juga disebut HTML likely code, yang menuliskan kode HTML tetap sebagai kode HTML serta menyisipkan kode Java ke dalam file JSP tersebut dengan tag tertentu. Dua komponen inilah yang digunakan untuk membangun web application berbasis Java. Satu hal lagi yang perlu diketahui, untuk menjalankan web application ini tidak harus dengan Application Server seperti JBoss atau Sun Java System Application Server, tetapi juga dapat menggunakan servlet container seperti Apache Tomcat. Perbedaanya Apache Tomcat spesifik menjalankan aplikasi yang terdapat Servlet atau JSP di dalamnya.
2. Servlet
Sebagaimana dijelaskan di muka, kode Java yang dihasilkan oleh Servlet terlebih dahulu harus dikompilasi agar dapat dijalankan. Ini akan merepotkan web developer karena selalu recompile setiap ada update code. Oya, dalam menangani sebuah request dibutuhkan penanganan oleh web component (dalam hal ini Servlet) untuk selanjutnya menghasilkan respond yang dapat dibaca/diterima user. Memang Servlet sangat merepotkan dalam hal coding HTML, tetapi sangat ampuh dalam controlling dan dispatching. Sederhananya begini, dalam pembuatan web application ada mekanisme untuk memisahkan code visual dan code control/business logic dengan tujuan memudahkan pemeliharaan coding. Nah, Servlet berisi control/business logic dari aplikasi tersebut. Jadi kalo kita melihat coding Servlet kita hanya akan melihat logika atau proses bisnisnya saja sedangkan tampilan HTML nya ada di JSP.
3. Java Server Pages (JSP)
JSP menggunakan syntax HTML untuk menuliskan kode halaman web. Adapun untuk keperluan memanggil kode2 Java, digunakan tag, baik JSTL (JSP Standard Tag Library), JavaBeans maupun custom tag. Dengan tag tersebut kode Java ditulis, sehingga kita dapat menulis logika bisnis dalam tag tersebut. Atau kita cukup memanggil class Java di dalam JSP dan melewatkan nilai property untuk mendapatkan hasil yang diinginkan. Kombinasi Servlet dan JSP inilah yang memudahkan pembuatan web application berbasis Java.
4. Enterprise JavaBeans (EJB)
Pada intinya komponen EJB adalah sebuah komponen yang dipanggil oleh Java application, swing dsb dari sisi client untuk selanjutnya diolah (misal memanggil dan memanipulasi database) dan mengeluarkan output ke client. Komunikasi yang digunakan adalah dengan Remote Method Invocation (RMI). RMI sendiri adalah sebuah konsep dimana client dapat invoke (memanggil) method server secara remote. Arsitektur dari EJB sendiri pada dasarnya bertujuan untuk memisahkan komponen business logic dari hosting environment (container). Masalah security dsb dimanage oleh container sehingga kita tidak perlu pusing2 menuliskannya dalam kode EJB. Untuk membuat komponen EJB perlu 3 file.
- EJB Home Interface, yang mendefinisikan method yang akan digunakan oleh client yang memungkinkan dibuat dan ditempatkannya bean.
- EJB Remote Interface, yang mendefinisikan business method dari bean
- Bean itu sendiri yang berisi business logic dari aplikasi
Container komponen EJB sendiri membuat objek implementasi dari EJB home interface dan EJB remote interface. Object ini berupa EJB home object dan EJB remote object.
5. Java Database Connectivity (JDBC)
Pada dasarnya JDBC merupakan API untuk mengakses database agar aplikasi tidak berurusan dengan detail struktur database. API tersebut berisi DriverManager. DriverManager tsb akan menghasilkan Connection yang digunakan untuk koneksi ke database. Setelah terkoneksi programmer dapat menjalankan query2 SQL.
Perlu dijelaskan sekali lagi bahwa saat ini saya masih dalam tahap belajar Java EE. Sehingga apa yang saya tuliskan saat ini sangat mungkin berubah seiring dengan pemahaman saya terhadap suatu konsep di kemudian hari.