J2EE adalah singkatan dari Java 2 Enterprise Edition, dan
sejak versi 5 berubah menjadi Java EE atau cukup Java Enterprise
Edition. Java EE adalah sebuah spesifikasi, bukan berupa product
berwujud nyata. Ada banyak vendor software atau komunitas opensource
membuat software berupa application server yang mengikuti standard Java
EE sehingga disebut Java EE compliant application server.
Application server ini memungkinkan kita untuk membuat aplikasi berskala enterprise dengan lebih mudah karena application server sudah menyediakan berbagai fasilitas yang siap untuk digunakan sebagai pendukung aplikasi kita.
Full Java EE compliant application server menyediakan berbagai service seperti web container, messaging, web service, mail, directory service, database connectivity, distributed transaction, remoting, persistence, dan lain lain.
Contoh application server adalah Glassfish, Oracle AS, JBoss, IBM Websphere, JRun, JOnAS, dll. Apache Tomcat adalah salah satu webserver/webcontainer untuk aplikasi web Java yang cukup terkenal, tapi bukan termasuk Java EE application server karena tidak menyediakan semua service yang ada di spesifikasi Java EE. Jika kita membuka website sun.java.com, dan menuju halaman tentang Java EE, maka kita bisa mendownload salah satu produk implementasi Java EE yang dibuat di bawah kendali Sun Microsystem, yaitu Sun Java System Application Server, yang sebenarnya adalah nama lain dari Glassfish application server.
Mengapa perlu ada Java EE ?
Untuk menjawab pertanyaan ini, perlu sedikit kilas balik tentang apa yang sudah dilakukan oleh para developer untuk membuat aplikasi “enterprise”, sebelum munculnya Java EE. Aplikasi enterprise dapat diasumsikan sebagai aplikasi yang kompleks, melakukan hal-hal yang penting (critical), memerlukan performa yang tinggi, menangani banyak tugas, ber-antarmuka dengan sistem-sistem yang lain, terdistribusi, dan sederet istilah lainnya yang mencerminkan bahwa aplikasi tersebut jauh dari kata “sederhana”.
Untuk membangun sebuah aplikasi enterprise, kita membutuhkan banyak fasilitas, seperti web interface, messaging, distributed transaction, web service, dan lain lain. Sebelum ada spesifikasi Java EE, developer harus membangun sendiri semua komponen ini. Alternatifnya, kita bisa membeli application server yang dibuat oleh beberapa vendor, dimana cara penggunaannya dan bagaimana kita membangun aplikasi di atasnya akan sangat tergantung pada jenis application server yang kita beli. Hal ini menjadi sesuatu yang sulit ketika kita ingin mengembangkan aplikasi melebihi dari apa yang disediakan vendor, atau ingin memindahkan aplikasi kita ke application server lain. Ini bisa membuat developer harus melakukan coding ulang keseluruhan aplikasi.
Java EE menyediakan spesifikasi yang terbuka dan terstandarisasi, sehingga kita bisa membangun aplikasi yang mengikuti spesifikasi Java EE, dan ketika kita sudah sampai pada tahap implementasi kita bisa dengan mudah memilih application server mana yang kita inginkan. Migrasi antar application serverpun menjadi sangat mudah karena server yang baru juga mengimplementasikan spesifikasi yang sama, yaitu Java EE.
Java EE design model
Desain Java EE mengacu pada 3 tier application design. Seperti kita ketahui, desain aplikasi sederhana biasanya menggunakan desain 2 tier, atau yang biasa disebut client-server. Aplikasi 2 tier terdiri atas aplikasi client (user interface) yang juga memuat semua business logic aplikasi. Aplikasi client ini berhubungan secara langsung dengan tier ke dua yaitu database server.
Konsep yang digunakan di Java EE dengan 3 tier application design, bertujuan untuk memisahkan business logic aplikasi dengan user interface menjadi 2 bagian yang terpisah. Jadi, desain aplikasi ini terdiri dari user interface, business logic server, dan enterprise information server (EIS). Dengan adanya pemisahan ini, aplikasi menjadi lebih modular. User interface dan business logic component memiliki tugas masing-masing.
User Interface Component
User interface bisa dibuat dengan 2 cara, thin dan thick client.
Thin client merupakan sebutan untuk user interface yang berbasis web. Komponen web interface ini disusun di sisi server kemudian hasilnya dirender oleh web browser yang dijalankan di client. Untuk komponen ini, Java menyediakan Servlet, Java Server Page (JSP), dan Java Server Faces (JSF).
Cara kedua adalah menggunakan user interface berbasis Graphical User Interface (GUI), atau yang disebut juga thick client karena aplikasi berjalan sepenuhnya menggunakan resource dari komputer client. Untuk komponen ini, Java menyediakan Swing dan Abstract Windowing Toolkit (AWT).
Command line atau text based user interface tentunya juga dapat digunakan, meskipun biasanya jarang digunakan untuk aplikasi enterprise. User interface ini biasanya juga digolongkan ke dalam thick client.
Business Logic Server
Komponen ini merupakan pusat dari semua proses bisnis (business logic) aplikasi. Sebagai gambaran, pada sebuah aplikasi internet banking, business logicnya meliputi autentikasi dan otorisasi user, query saldo, pembayaran kartu kredit, pembayaran bill/tagihan, transfer, dan sebagainya. Semua proses ini ditangani oleh business logic component yang berjalan di dalam sebuah application server. Java menyediakan komponen yang bernama Enterprise Java Bean (EJB) untuk melakukan hal ini.
Enterprise Information Server
EIS adalah server yang menangani manajemen data. Umumnya berupa sebuah database server. Namun tidak menutup kemungkinan untuk menggunakan sistem lain (seperti legacy system) sebagai EIS. Layer ini berada di luar batasan Java EE. Java EE hanya menyediakan standard API untuk mengakses EIS, tapi tidak menyediakan implementasinya.
Java EE Application Programming Interface (API)
Ada banyak sekali API yang disupport oleh spesifikasi Java EE, diantaranya:
1. Java Persistence API (JPA)
2. Java Transaction API (JTA)
3. Java Messaging Service (JMS)
4. Web Service
5. Java Connector Architecture (JCA)
6. Java Authentication and AuthorizationService (JAAS)
7. Java Mail
8. Web Component (Servlet, JSP, JSF, JSTL)
9. Java Management
Dan masih banyak API yang lain.
Application server ini memungkinkan kita untuk membuat aplikasi berskala enterprise dengan lebih mudah karena application server sudah menyediakan berbagai fasilitas yang siap untuk digunakan sebagai pendukung aplikasi kita.
Full Java EE compliant application server menyediakan berbagai service seperti web container, messaging, web service, mail, directory service, database connectivity, distributed transaction, remoting, persistence, dan lain lain.
Contoh application server adalah Glassfish, Oracle AS, JBoss, IBM Websphere, JRun, JOnAS, dll. Apache Tomcat adalah salah satu webserver/webcontainer untuk aplikasi web Java yang cukup terkenal, tapi bukan termasuk Java EE application server karena tidak menyediakan semua service yang ada di spesifikasi Java EE. Jika kita membuka website sun.java.com, dan menuju halaman tentang Java EE, maka kita bisa mendownload salah satu produk implementasi Java EE yang dibuat di bawah kendali Sun Microsystem, yaitu Sun Java System Application Server, yang sebenarnya adalah nama lain dari Glassfish application server.
Mengapa perlu ada Java EE ?
Untuk menjawab pertanyaan ini, perlu sedikit kilas balik tentang apa yang sudah dilakukan oleh para developer untuk membuat aplikasi “enterprise”, sebelum munculnya Java EE. Aplikasi enterprise dapat diasumsikan sebagai aplikasi yang kompleks, melakukan hal-hal yang penting (critical), memerlukan performa yang tinggi, menangani banyak tugas, ber-antarmuka dengan sistem-sistem yang lain, terdistribusi, dan sederet istilah lainnya yang mencerminkan bahwa aplikasi tersebut jauh dari kata “sederhana”.
Untuk membangun sebuah aplikasi enterprise, kita membutuhkan banyak fasilitas, seperti web interface, messaging, distributed transaction, web service, dan lain lain. Sebelum ada spesifikasi Java EE, developer harus membangun sendiri semua komponen ini. Alternatifnya, kita bisa membeli application server yang dibuat oleh beberapa vendor, dimana cara penggunaannya dan bagaimana kita membangun aplikasi di atasnya akan sangat tergantung pada jenis application server yang kita beli. Hal ini menjadi sesuatu yang sulit ketika kita ingin mengembangkan aplikasi melebihi dari apa yang disediakan vendor, atau ingin memindahkan aplikasi kita ke application server lain. Ini bisa membuat developer harus melakukan coding ulang keseluruhan aplikasi.
Java EE menyediakan spesifikasi yang terbuka dan terstandarisasi, sehingga kita bisa membangun aplikasi yang mengikuti spesifikasi Java EE, dan ketika kita sudah sampai pada tahap implementasi kita bisa dengan mudah memilih application server mana yang kita inginkan. Migrasi antar application serverpun menjadi sangat mudah karena server yang baru juga mengimplementasikan spesifikasi yang sama, yaitu Java EE.
Java EE design model
Desain Java EE mengacu pada 3 tier application design. Seperti kita ketahui, desain aplikasi sederhana biasanya menggunakan desain 2 tier, atau yang biasa disebut client-server. Aplikasi 2 tier terdiri atas aplikasi client (user interface) yang juga memuat semua business logic aplikasi. Aplikasi client ini berhubungan secara langsung dengan tier ke dua yaitu database server.
Konsep yang digunakan di Java EE dengan 3 tier application design, bertujuan untuk memisahkan business logic aplikasi dengan user interface menjadi 2 bagian yang terpisah. Jadi, desain aplikasi ini terdiri dari user interface, business logic server, dan enterprise information server (EIS). Dengan adanya pemisahan ini, aplikasi menjadi lebih modular. User interface dan business logic component memiliki tugas masing-masing.
User Interface Component
User interface bisa dibuat dengan 2 cara, thin dan thick client.
Thin client merupakan sebutan untuk user interface yang berbasis web. Komponen web interface ini disusun di sisi server kemudian hasilnya dirender oleh web browser yang dijalankan di client. Untuk komponen ini, Java menyediakan Servlet, Java Server Page (JSP), dan Java Server Faces (JSF).
Cara kedua adalah menggunakan user interface berbasis Graphical User Interface (GUI), atau yang disebut juga thick client karena aplikasi berjalan sepenuhnya menggunakan resource dari komputer client. Untuk komponen ini, Java menyediakan Swing dan Abstract Windowing Toolkit (AWT).
Command line atau text based user interface tentunya juga dapat digunakan, meskipun biasanya jarang digunakan untuk aplikasi enterprise. User interface ini biasanya juga digolongkan ke dalam thick client.
Business Logic Server
Komponen ini merupakan pusat dari semua proses bisnis (business logic) aplikasi. Sebagai gambaran, pada sebuah aplikasi internet banking, business logicnya meliputi autentikasi dan otorisasi user, query saldo, pembayaran kartu kredit, pembayaran bill/tagihan, transfer, dan sebagainya. Semua proses ini ditangani oleh business logic component yang berjalan di dalam sebuah application server. Java menyediakan komponen yang bernama Enterprise Java Bean (EJB) untuk melakukan hal ini.
Enterprise Information Server
EIS adalah server yang menangani manajemen data. Umumnya berupa sebuah database server. Namun tidak menutup kemungkinan untuk menggunakan sistem lain (seperti legacy system) sebagai EIS. Layer ini berada di luar batasan Java EE. Java EE hanya menyediakan standard API untuk mengakses EIS, tapi tidak menyediakan implementasinya.
Java EE Application Programming Interface (API)
Ada banyak sekali API yang disupport oleh spesifikasi Java EE, diantaranya:
1. Java Persistence API (JPA)
2. Java Transaction API (JTA)
3. Java Messaging Service (JMS)
4. Web Service
5. Java Connector Architecture (JCA)
6. Java Authentication and AuthorizationService (JAAS)
7. Java Mail
8. Web Component (Servlet, JSP, JSF, JSTL)
9. Java Management
Dan masih banyak API yang lain.
Java 2 Enterprise Edition (J2EE)
J2EE adalah kumpulan teknologi yang cukup kuat dan berada di atas
lingkungan J2SE. J2EE berbasis pada Java2 yang berusaha untuk
menyediakan sebuah lingkungan aplikasi yang bersifat reliable dan stabil
serta dapat dijalankan pada beberapa lingkungan sistem operasi.
Teknologi enterprise sebagai perkembangan dari lingkungan Java2
difokuskan pada pemenuhan antarmuka yang standar dimana aplikasi J2EE
dapat menghasilkan sebuah aplikasi berbasis server yang tangguh (robust)
dan tidak bergantung pada lingkungan sistem operasi yang digunakan.
J2EE server menyediakan dua buah kontainer besar yaitu kontainer EJB dan kontainer web dimana kontainer EJB digunakan untuk mengelola dan mengeksekusi Enterprise bean yang juga disebut dengan bean dan kontainer web digunakan untuk mengelola dan mengeksekusi servlet ( yang akan di bahas lebih lanjut pada bab lima) serta JavaServer Pages atau yang disebut juga dengan JSP, JSP tidak dibahas dalam buku ini.
Enterprise bean terdiri dari tiga jenis bean yang diantaranya adalah :
J2EE server menyediakan dua buah kontainer besar yaitu kontainer EJB dan kontainer web dimana kontainer EJB digunakan untuk mengelola dan mengeksekusi Enterprise bean yang juga disebut dengan bean dan kontainer web digunakan untuk mengelola dan mengeksekusi servlet ( yang akan di bahas lebih lanjut pada bab lima) serta JavaServer Pages atau yang disebut juga dengan JSP, JSP tidak dibahas dalam buku ini.
Enterprise bean terdiri dari tiga jenis bean yang diantaranya adalah :
- Session Bean, yang akan dibahas lebih lanjut pada Bab 2,
- Entity Bean, yang akan dibahas lebih lanjut pada Bab 3,
- Message Driven Bean, yang akan dibahas lebih lanjut pada Bab
4.Package pada J2EE dapat berupa Enterprise Archive (EAR), Java Archive
(JAR) yang merupakan kumpulan file dalam sebuah paket, dan Web Archive
(WAR) dimana EAR biasanya merupakan gabungan dari file-file JAR yang
biasa digunakan oleh bean, sedangkan WAR biasa digunakan oleh servlet
dan JSP.J2EE memiliki beberapa tipe modul yang diantaranya adalah
sebagai berikut :
- EJB, terdiri dari file-file class dari enterprise bean dan deskriptor dari EJB deployment. EJBbiasanya menggunakan package berupa JAR dengan ekstensi file .jar.
- Web, seperti servlet dan JSP. Terdiri dari file-file class servlet atau file-file class yang dibutuhkan JSP, file gambar, file HTML, dan deskriptor dari web deployment. Package yang digunakanbiasanya adalah WAR dengan ekstensi file .war.
- Aplikasi Klien, terdiri dari file class klien dan deskriptor klien. Package yang biasanya digunakanadalah JAR dengan ekstensi file .jar.
Contoh-contoh modul bean dapat didapatkan pada http://java.sun.com/j2ee/1.4/download.html#tutorial
dan mengkopinya pada komputer. Di dalam direktori tersebut terdapat
file-file pada direktori common yang diperlukan untuk melakukan
kompilasi terhadap modul-modul bean yang akan dibuat dengan script asant
(dengan path j2eetutorial\examples\common, j2eetutorial\examples\ejb\common dan j2eetutorial\examples\ejb\commonweb). Direktori j2eetutorial\examples\common terdiri dari tiga file yaitu admin-password.txt, build.properties, targets.xml. Pada file build.properties
dapat diset tempat direktori kerja agar dapat menggunakan perintah
asant build pada direktori kerja yang digunakan. Pengesetan itu dapat
dilakukan pada j2ee.home=C:/Sun/AppServer dimana path C:/Sun/AppServer dapat diganti dengan tempat menginstal server J2EE, dan pada j2ee.tutorial.home=C:/Projects/j2eetutorial, path C:/Projects/j2eetutorial dapat diganti dengan tempat direktori kerja, admin.password.file=${j2ee.tutorial.home}/examples/common/admin- password.txt merupakan path tempat dimana file admin-password.txt disimpan.
Tidak ada komentar:
Posting Komentar