Memahami Arsitektur Java EE untuk Aplikasi Web
Memahami Arsitektur Java EE untuk Aplikasi Web
Java mulai muncul sebagai bahasa pemrograman yang dirancang untuk membangun aplikasi mandiri dan dengan cepat berkembang menjadi
bidang lainnya. Sebagian besar popularitas Java dapat dikaitkan dengan penggunaannya dalam membuat aplikasi web.
Aplikasi web terdiri dari halaman web statis dan dinamis (interaktif). Halaman web statis berisi berbagai jenis
bahasa markup (HTML, XHTML, dan seterusnya) dan digunakan, secara umum, untuk memberikan informasi; dinamis
halaman web, di sisi lain, mampu menghasilkan konten dengan bantuan komponen web tambahan.
Dengan demikian, aplikasi web adalah kumpulan halaman web dan mampu menghasilkan konten dinamis sebagai respons terhadap
permintaan. Berbeda dengan halaman web yang hanya digunakan untuk memberikan informasi, aplikasi web memungkinkan Anda melakukan beberapa aktivitas
dan simpan hasilnya. Mengembangkan aplikasi web, bagaimanapun, secara fundamental berbeda dari membangun aplikasi mandiri
aplikasi dan mengharuskan Anda untuk memahami tiga elemen kunci berikut:
. Platform Java EE: Ini adalah serangkaian spesifikasi API yang menjadi dasar dari web
aplikasi.
. Kontainer web: Kontainer web menerapkan spesifikasi API dari platform Java EE.
Secara khusus, wadah web menyediakan layanan untuk mengelola dan mengeksekusi komponen web tersebut
sebagai servlet, JSP, filter, pendengar, dan merender respons kepada klien.
. Komponen web: Ini dihosting oleh kontainer. Komponen web ini, seperti servlet, JSP
penyaring, dan pendengar.
Platform Java EE
Platform Java EE bertujuan untuk menstandarisasi dan mengurangi kompleksitas aplikasi perusahaan.
pengembangan dengan menyediakan model aplikasi yang mendefinisikan arsitektur untuk mengimplementasikan layanan sebagai
1
aplikasi multi-tiang. Dalam aplikasi multi-tiang, fungsionalitas aplikasi dipisahkan menjadi yang berbeda
area fungsional, yang disebut tingkat. Gambar 2 menggambarkan arsitektur multitier yang khas dalam aplikasi Java EE
model.
Tingkat Klien
Lapisan klien adalah lapisan teratas dalam arsitektur Java EE bertingkat; itu terdiri dari klien aplikasi yang membuat
permintaan ke server Java EE, yang sering terletak di mesin yang berbeda. Server memproses permintaan tersebut
and returns a response to the client. An example of a client is a web browser or a stand-alone application.
Tingkat Web
Tingkat web terdiri dari komponen yang menangani interaksi antara klien dan tingkat bisnis.
menerima permintaan dari klien, lapisan web melakukan hal berikut:
Mengumpulkan masukan dari klien
2. Mengontrol alur layar atau halaman di klien
[Link] keadaan data untuk sesi pengguna
4. Mendapatkan hasil dari komponen di tingkat bisnis
5. Menghasilkan konten dinamis dalam berbagai format untuk klien
Seperti yang ditunjukkan pada Gambar 1, spesifikasi Web Profile baru pertama kali ditambahkan di Java EE 7. Seperti yang disebutkan sebelumnya,
tujuan dari Web Profile adalah untuk memungkinkan pengembang membuat aplikasi web dengan seperangkat teknologi yang sesuai.
Arsitektur multitier Java EE memiliki dampak besar pada pengembangan enterprise Java
aplikasi. Aplikasi perusahaan Java dapat didefinisikan sebagai aplikasi Java yang memanfaatkan layanan perusahaan
ditawarkan oleh Java EE.
2
Faktanya, aplikasi web dapat diklasifikasikan sebagai aplikasi perusahaan jika memanfaatkan layanan Java EE dalam bentuk
komponen yang dikemas di lapisan web. Java EE mengisolasi layanan ini secara fungsional ke dalam lapisan terpisah, seperti yang digambarkan
dalam Gambar 2, dengan menyediakan model aplikasi di mana aplikasi perusahaan Java harus dibangun.
Setiap lapisan dalam Gambar 3 adalah area yang perlu diperhatikan, untuk aplikasi. Misalnya, lapisan web hanya menangani
menggunakan komponen lapisan web dari Java EE. Memiliki lapisan yang berbeda dalam sebuah aplikasi menghasilkan apa yang disebut
pemisahan kepentingan. Dalam hal implementasi, pemisahan kepentingan ini dicapai dengan menggunakan kasar-
antarmuka berbutir.
Kekhawatiran adalah fitur, fungsionalitas, atau fungsi bisnis yang perlu dipertimbangkan oleh pengembang aplikasi.
berkepentingan. Menyebarkan kekhawatiran tersebut adalah hal yang melekat dalam sistem yang kompleks dan mengarah pada pencemaran kode, yang adalah
ketika kode untuk satu kepentingan mencakup banyak modul, dan penggandangan kode, yang terjadi ketika kode dalam satu modul
berfokus pada mengatasi berbagai masalah. Penyebaran kode dan pengacakan kode menyebabkan kurangnya kejelasan,
redundansi, kekakuan, dan refactoring yang berkelanjutan.
Pemisahan kepentingan, salah satu tujuan utama rekayasa perangkat lunak, memungkinkan Anda untuk menangani setiap layanan secara terpisah.
dan dengan demikian melakukan hal berikut:
. Mempromosikan keterlacakan di dalam dan di antara artefak dalam sistem, sepanjang siklus hidup sistem
. Mengontrol dampak yang disebabkan oleh perubahan, sehingga memberikan ruang untuk evolusi dan non-invasif
adaptasi
. Mempromosikan pengembangan unit yang kohesif, sehingga memfasilitasi penggunaan kembali
Lapisan Web
Lapisan web dari aplikasi web terdiri dari komponen lapisan web Java EE seperti servlet dan JSP.
Lapisan web dapat mengakses lapisan layanan, tetapi tidak boleh ada ikatan yang erat antara lapisan web dan
lapisan layanan. Artinya, mengubah lapisan layanan tidak seharusnya mempengaruhi lapisan web.
3
Lapisan Layanan
Lapisan layanan terdiri dari komponen tingkat bisnis Java EE seperti Enterprise JavaBeans (EJB).
lapisan layanan dapat mengakses lapisan akses data, tetapi tidak boleh ada keterikatan yang kuat antara lapisan layanan dan
lapisan akses data. Sebenarnya, lapisan layanan tidak boleh mengetahui apa pun tentang web atau lapisan akses data.
lapisan layanan menyediakan antarmuka kasar untuk lapisan web.