Java EE - apa itu?
Java EE adalah platform yang dibangun di atas Java SE yang menyediakan API dan lingkungan runtime untuk mengembangkan dan menjalankan aplikasi jaringan berskala besar, multi-tier, terukur, andal, dan aman. Aplikasi semacam ini disebut aplikasi perusahaan karena dapat memecahkan permasalahan yang dihadapi oleh bisnis besar. Namun, bukan hanya perusahaan besar dan lembaga pemerintah saja yang bisa mendapatkan manfaat dari jenis aplikasi ini dan manfaat yang diberikan Java EE. Solusi yang ditawarkan platform Java EE berguna, dan terkadang hanya diperlukan, bagi pengembang individu dan organisasi kecil.Pengembangan Java EE
Java EE dikembangkan melalui Java Community Process (JCP) yang dibentuk pada tahun 1998. Hal ini memungkinkan pihak yang berkepentingan untuk berpartisipasi dalam membentuk spesifikasi platform bahasa Java versi masa depan. Dasar dari proses ini adalah JSR (Java Spesification Request), dokumen formal yang menjelaskan spesifikasi dan teknologi yang diusulkan untuk ditambahkan ke platform Java. Permintaan tersebut dibuat oleh anggota komunitas - pengembang dan perusahaan biasa. Yang terakhir ini termasuk Oracle, Red Hat, IBM, Apache dan banyak lainnya. Itu. mereka mengusulkan fitur dan barang baru untuk dipertimbangkan yang ingin mereka sertakan di Java. Dan kemudian mereka mengadakan pemungutan suara, berdasarkan keputusan yang dibuat tentang apa yang akan dimasukkan dalam versi berikutnya. Riwayat versi Java EE terlihat seperti ini:- J2EE 1.2 (Desember 1999)
- J2EE 1.3 (September 2001)
- J2EE 1.4 (November 2003)
- Java EE 5 (Mei 2006)
- Java EE 6 (Desember 2009)
- Java EE 7 (Mei)
- Java EE 8 (Agustus 2017)
- Jakarta EE 8 (September 2019)
Arsitektur Aplikasi Java EE
Pengenalan singkat. Agar lebih mudah dipahami, mari kita bahas tentang struktur aplikasi Java EE dan beberapa istilah yang akan kita gunakan lebih lanjut. Aplikasi Java EE memiliki struktur yang memiliki dua kualitas utama:- Pertama, bertingkat. Aplikasi Java EE bersifat multi-tingkat, dan kita akan membicarakannya lebih detail;
- kedua, bersarang. Ada server Java EE (atau server aplikasi), dengan wadah komponen terletak di dalamnya. Kontainer ini menampung komponen (bingo!).
Tingkat aplikasi
Aplikasi multi-tier adalah aplikasi yang dibagi menurut prinsip fungsional ke dalam modul terisolasi (level, lapisan). Biasanya (termasuk dalam konteks pengembangan Java EE), aplikasi perusahaan dibagi menjadi tiga tingkatan:- klien;
- level rata-rata;
- tingkat akses data.
-
Lapisan klien adalah aplikasi yang meminta data dari server Java EE (lapisan tengah). Server, pada gilirannya, memproses permintaan klien dan mengembalikan responsnya. Aplikasi klien dapat berupa browser, aplikasi mandiri (seluler atau desktop), atau aplikasi server lain tanpa antarmuka grafis.
-
Tingkat menengah dibagi lagi menjadi tingkat web dan tingkat logika bisnis.
-
Lapisan web terdiri dari beberapa komponen yang menyediakan interaksi antara klien dan lapisan logika bisnis.
Teknologi Java EE berikut digunakan di tingkat web:
- Teknologi Wajah JavaServer (JSF);
- Halaman Server Java (JSP);
- Bahasa Ekspresi (EL);
- Servlet;
- Konteks dan Injeksi Ketergantungan untuk Java EE (CDI).
-
Lapisan logika bisnis terdiri dari komponen-komponen yang mengimplementasikan seluruh logika bisnis aplikasi. Logika bisnis adalah kode yang menyediakan fungsionalitas yang mencakup kebutuhan beberapa area bisnis tertentu (industri keuangan, perbankan, e-commerce). Level ini dapat dianggap sebagai inti dari keseluruhan sistem.
Teknologi yang terlibat pada tingkat ini:
- Perusahaan JavaBeans (EJB);
- Layanan web JAX-RS Tenang;
- Entitas Java Persistence API;
- Layanan Pesan Java.
-
-
Tingkat akses data. Tingkat ini kadang-kadang disebut tingkat sistem informasi perusahaan (EIS). EIS terdiri dari berbagai server database, sistem perencanaan sumber daya perusahaan ERP (Enterprise Resource Planning) dan sumber data lainnya. Lapisan logika bisnis mengakses lapisan ini untuk mendapatkan data.
Pada level ini Anda dapat menemukan teknologi seperti:
- API Konektivitas Basis Data Java (JDBC);
- API Persistensi Java;
- Arsitektur Konektor Java EE;
- API Transaksi Java (JTA).
Server aplikasi, kontainer, komponen
Mari kita lihat definisi Java EE dari Wikipedia. Java EE adalah seperangkat spesifikasi dan dokumentasi terkait untuk bahasa Java, yang menjelaskan arsitektur platform server untuk tugas-tugas perusahaan menengah dan besar. Untuk lebih memahami apa arti “seperangkat spesifikasi” dalam konteks ini, mari kita menggambar analogi dengan antarmuka Java. Antarmuka Java sendiri tidak memiliki fungsionalitas. Ini hanya mendefinisikan kontrak tertentu yang dengannya beberapa fungsi diimplementasikan. Tapi kelas lain mengimplementasikan antarmuka. Selain itu, satu antarmuka dapat memiliki beberapa implementasi, yang masing-masing mungkin berbeda satu sama lain dalam beberapa detailnya. Dengan spesifikasi semuanya sama persis. Naked Java EE hanyalah sekumpulan spesifikasi. Spesifikasi ini diterapkan oleh berbagai server Java EE. Server Java EE adalah aplikasi server yang mengimplementasikan API platform Java EE dan menyediakan layanan Java EE standar. Server Java EE terkadang disebut server aplikasi. Data server dapat berisi komponen aplikasi, yang masing-masing memiliki levelnya sendiri dalam hierarki multi-level. Server Java EE menyediakan berbagai layanan untuk komponen ini dalam bentuk container. Kontainer adalah antarmuka antara komponen yang dihostingnya dan fungsionalitas independen platform tingkat rendah yang mendukung komponen tersebut. Kontainer menyediakan layanan khusus untuk komponen yang dihostingnya. Misalnya, manajemen siklus hidup pengembangan, injeksi ketergantungan, konkurensi, dll. Kontainer menyembunyikan kompleksitas teknis dan meningkatkan portabilitas. Ada empat jenis kontainer di Java EE :-
Kontainer applet diimplementasikan oleh sebagian besar browser. Saat mengembangkan applet, Anda dapat berkonsentrasi pada sisi visual aplikasi, sementara container menyediakan lingkungan yang aman.
-
Application Client Container (ACC) berisi sekumpulan kelas Java, perpustakaan, dan file lain yang diperlukan untuk mengimplementasikan fitur seperti injeksi, manajemen keamanan, dan layanan penamaan dalam aplikasi Java SE.
-
Kontainer web menyediakan layanan inti untuk mengelola dan mengeksekusi komponen web (servlet, komponen EJB Lite, halaman JSP, filter, pendengar, halaman JSF, dan layanan web). Ini bertanggung jawab untuk membuat instance, menginisialisasi dan memanggil servlet, dan mendukung protokol HTTP dan HTTPS. Wadah ini digunakan untuk menyajikan halaman web ke browser klien.
-
Kontainer EJB (Enterprise Java Bean) bertanggung jawab untuk mengelola dan mengeksekusi komponen model EJB yang berisi lapisan logika bisnis aplikasi. Ini menciptakan entitas kacang EJB baru, mengelola siklus hidupnya, dan menyediakan layanan seperti transaksi, keamanan, konkurensi, distribusi, penamaan, atau kemampuan pemanggilan asinkron.
-
Applet adalah aplikasi antarmuka pengguna grafis (GUI) yang dijalankan di browser. Mereka memanfaatkan Swing API yang kaya untuk menghasilkan antarmuka pengguna yang kuat.
-
Aplikasi adalah program yang berjalan di sisi klien. Mereka biasanya berupa antarmuka pengguna grafis (GUI) dan digunakan untuk pemrosesan batch.
-
Aplikasi web (terdiri dari servlet dan filternya, pendengar acara web, halaman JSP dan JSF) - dijalankan dalam wadah web dan merespons permintaan HTTP dari klien web. Servlet juga mendukung titik akhir layanan web SOAP dan RESTful.
-
Aplikasi perusahaan (dibangun dengan Enterprise Java Beans, Java Message Service, Java Transaction API, Asynchronous Calls, Time Services) dijalankan dalam kontainer EJB. EJB yang dikelola kontainer menangani logika bisnis transaksional. Mereka dapat diakses baik secara lokal atau jarak jauh melalui RMI (atau HTTP untuk layanan web SOAP dan RESTful).
![Pengantar Java EE - 2](https://cdn.javarush.com/images/article/1c33b610-2cca-47a2-8e85-467647f43c10/800.webp)
Teknologi
Jadi, kami telah memilah arsitekturnya. Struktur keseluruhannya harus jelas. Dalam proses mendeskripsikan komponen arsitektur, kami menyentuh beberapa teknologi Java EE seperti EJB, JSP, dll. Mari kita lihat lebih dekat. Tabel di bawah ini menunjukkan teknologi yang sebagian besar digunakan di tingkat klien:Teknologi | Tujuan |
---|---|
Servlet | Kelas Java yang secara dinamis memproses permintaan klien dan menghasilkan tanggapan (biasanya halaman HTML). |
Wajah Server Java (JSF) | Kerangka kerja untuk membangun aplikasi web dengan antarmuka pengguna. Memungkinkan Anda memasukkan komponen antarmuka pengguna (misalnya, bidang dan tombol) pada halaman, mengubah dan memvalidasi komponen ini, dan menyimpan data ini di penyimpanan sisi server. |
Server Java Menghadapi teknologi Facelets | Ini adalah subtipe aplikasi JSF yang menggunakan halaman XHTML, bukan halaman JSP |
Halaman Server Java (JSP) | Dokumen teks yang dikompilasi menjadi servlet. Memungkinkan Anda menambahkan konten dinamis ke halaman statis (seperti halaman HTML) |
Perpustakaan Tag Standar Halaman Server Java (JSTL) | Pustaka tag yang merangkum fungsionalitas inti dalam konteks halaman JSP. |
Bahasa Ekspresi | Seperangkat tag standar yang digunakan di halaman JSP dan Facelets untuk mengakses komponen Java EE. |
Konteks dan Injeksi Ketergantungan untuk Java EE (CDI) | Mewakili serangkaian layanan yang disediakan oleh kontainer Java EE untuk mengelola siklus hidup komponen, serta memasukkan komponen ke objek klien dengan cara yang aman. |
Komponen Kacang Java | Objek yang bertindak sebagai penyimpanan data sementara untuk halaman aplikasi. |
Teknologi | Tujuan |
---|---|
Komponen Enterprise Java Beans (kacang perusahaan). | EJB adalah kacang terkelola yang berisi fungsionalitas inti suatu aplikasi. |
Layanan web JAX-RS Tenang | Ini adalah API untuk mengembangkan layanan web yang sesuai dengan gaya arsitektur REST. |
Titik akhir layanan web JAX-WS | API untuk membuat dan menggunakan layanan web SOAP. |
Entitas Java Persistence API (JPA). | API untuk mengakses data di penyimpanan data dan mengubah data tersebut menjadi objek bahasa pemrograman Java dan sebaliknya. |
Kacang yang dikelola Java EE | Kacang terkelola yang menyediakan logika bisnis aplikasi tetapi tidak memerlukan fitur transaksional atau keamanan EJB. |
Layanan Pesan Java | Java Message Service (JMS) API adalah standar perpesanan yang memungkinkan komponen aplikasi Java EE membuat, mengirim, menerima, dan membaca pesan. Hal ini memastikan komunikasi terdistribusi, andal, dan asinkron antar komponen. |
Teknologi | Tujuan |
---|---|
API Konektivitas Basis Data Java (JDBC) | API tingkat rendah untuk mengakses dan mengambil data dari penyimpanan data. Penggunaan khas JDBC adalah menulis query SQL terhadap database tertentu. |
API Persistensi Java | API untuk mengakses data di penyimpanan data dan mengubah data tersebut menjadi objek bahasa pemrograman Java dan sebaliknya. API tingkat yang jauh lebih tinggi dibandingkan dengan JDBC. Menyembunyikan semua kerumitan JDBC dari pengembang. |
Arsitektur Konektor Java EE | API untuk menghubungkan sumber daya perusahaan lainnya, seperti:
|
API Transaksi Java (JTA) | API untuk menentukan dan mengelola transaksi, termasuk transaksi terdistribusi dan transaksi di beberapa penyimpanan data. |
GO TO FULL VERSION