suhe arie's pages

Programmer juga manusia

Java Enterprise, mulai dari mana ?

Java Enterprise, J2EE, Java EE adalah istilah-istilah yang mungkin sulit dimengerti oleh sebagian orang, bahkan programer Java (yang baru) sekalipun. Di artikel kali ini, saya akan berusaha memberikan gambaran, apa itu Java Enterprise, dan bagaimana kita bisa memanfaatkannya dalam membangun sebuah aplikasi.

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. Lengkapnya bisa dilihat disini.

Anda sudah tidak sabar ? Mari kita mulai !

Kali ini saya akan menggunakan skenario yang paling sederhana, tetapi memenuhi desain 3 tier yang digunakan pada spesifikasi Java EE. Kita akan mendesain kembali aplikasi calculator yang sebelumnya kita buat hanya dengan console dan Swing di artikel sebelumnya.

Silahkan lanjut ke part 2, see u there..

Advertisements

August 26, 2008 - Posted by | Java, Java Enterprise | ,

12 Comments »

  1. bro suhe terima kasih atas tutorialnya ,,,
    kalo bisa ada lanjutan tutorial JEE-nya ,,

    Comment by afi | January 4, 2009 | Reply

  2. Bro Suhe, thanks atas penjelasannya, artikelnya terstruktur, jadi enak untuk membacanya.
    Oh iya, saya minta izin ya untuk memuatnya di blog, dan tentunya ada link kemari.
    Regards.

    Comment by Usaha dan Properti | January 23, 2010 | Reply

    • Ok bro, no problem. Tapi kmaren sempet buka blognya, mas taruh juga beberapa artikel saya yang lain ya, tapi ga ada link artikel aslinya.
      No offence, just to be fair..

      Comment by suhearie | February 21, 2010 | Reply

  3. Terima kasih mas arie, penjelasannya Java EE nya cukup untuk memberikan gambaran saya yang seorang Junior Java yang langsung dicemplungin kasus java EE πŸ˜€

    Comment by Diastirta | September 8, 2011 | Reply

    • OK, selamat belajar πŸ™‚

      Comment by suhearie | September 19, 2011 | Reply

  4. mantep banget mas blog nya..penjelasannya bagus..keep the good work yaa πŸ˜€

    Comment by eric | November 30, 2011 | Reply

    • Thanks..

      Comment by suhearie | January 26, 2012 | Reply

  5. mas suhe punya tutorial membuat aplikasi REST dengan java EE g? thx

    Comment by ikhwan | July 9, 2012 | Reply

    • Wah belum ada nih, semoga lain kali sempat bikin tutorialnya.

      Comment by suhearie | October 26, 2012 | Reply

  6. thanks bgt atas pembahasan java ee’nya.. semakin semangat belajar.. ijin share om.. \m/

    Comment by ardhi | October 3, 2012 | Reply

  7. bro sy mau tanya kalo kita membuat web dengan component web(jsp,servlet,jstl), kita sudah melakukan implementasi java EE?

    Comment by Luky | October 10, 2012 | Reply

    • Singkatnya, ya. JSP, servlet, jstl adalah fasilitas yang masuk di spesifikasi Java EE (tidak tersedia di Java SE). Tapi, Java EE tidak cuma mencakup 3 fitur itu, tapi masih jauh lebih banyak lagi (JMS, EJB, Web Service, dll).

      Comment by suhearie | October 26, 2012 | Reply


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: