Java EE - bu nima?
Java EE keng koʻlamli, koʻp bosqichli, kengaytiriladigan, ishonchli va xavfsiz tarmoq ilovalarini ishlab chiqish va ishga tushirish uchun API va ish vaqti muhitini taʼminlovchi Java SE ustiga qurilgan platformadir. Bunday ilovalar korporativ ilovalar deb ataladi, chunki ular yirik korxonalar duch keladigan muammolarni hal qiladi. Biroq, bu turdagi ilovalar va Java EE taqdim etayotgan imtiyozlardan nafaqat yirik korporatsiyalar va davlat idoralari foyda ko'rishlari mumkin. Java EE platformasi taklif qiladigan yechimlar individual ishlab chiquvchilar va kichik tashkilotlar uchun foydali va ba'zan oddiygina zarurdir.Java EE rivojlanishi
Java EE 1998 yilda tashkil etilgan Java Community Process (JCP) orqali ishlab chiqilgan. Bu manfaatdor tomonlarga Java tili platformasi spetsifikatsiyalarining kelajakdagi versiyalarini shakllantirishda ishtirok etish imkonini beradi. Ushbu jarayonning asosi JSR (Java Specification Request), Java platformasiga qo'shilishi taklif qilingan spetsifikatsiyalar va texnologiyalarni tavsiflovchi rasmiy hujjatlardir. Bunday so'rovlar jamiyat a'zolari - oddiy ishlab chiquvchilar va kompaniyalar tomonidan amalga oshiriladi. Ikkinchisiga Oracle, Red Hat, IBM, Apache va boshqalar kiradi. Bular. Yigitlar Java-ga qo'shmoqchi bo'lgan yangi xususiyatlar va sovg'alarni taklif qilishadi. Va keyin ular ovoz berishadi, uning asosida keyingi versiyaga nimani kiritish to'g'risida qaror qabul qilinadi. Java EE versiyasi tarixi quyidagicha ko'rinadi:- J2EE 1.2 (1999 yil dekabr)
- J2EE 1.3 (2001 yil sentyabr)
- J2EE 1.4 (2003 yil noyabr)
- Java EE 5 (2006 yil may)
- Java EE 6 (2009 yil dekabr)
- Java EE 7 (may)
- Java EE 8 (2017 yil avgust)
- Jakarta EE 8 (2019 yil sentyabr)
Java EE ilovalari arxitekturasi
Qisqacha kirish. Tushunishni osonlashtirish uchun keling, Java EE ilovalarining tuzilishi va bundan keyin foydalanadigan ba'zi atamalar haqida gapiraylik. Java EE ilovalari ikkita asosiy xususiyatga ega tuzilishga ega:- Birinchidan, ko'p darajali. Java EE ilovalari ko'p bosqichli bo'lib, biz bu haqda batafsilroq gaplashamiz;
- ikkinchidan, uy qurish. Java EE serveri (yoki dastur serveri) mavjud bo'lib, uning ichida komponent konteynerlari joylashgan. Ushbu konteynerlarda (bingo!) komponentlar mavjud.
Ilova darajalari
Ko'p bosqichli ilovalar - bu funktsional printsiplarga ko'ra izolyatsiyalangan modullarga (darajalar, qatlamlar) bo'lingan ilovalar. Odatda (shu jumladan Java EE rivojlanishi kontekstida) korporativ ilovalar uch darajaga bo'linadi:- mijoz;
- o'rtacha darajasi;
- ma'lumotlarga kirish darajasi.
-
Mijoz darajasi Java EE serveridan (o'rta qatlam) ma'lumotlarni so'raydigan dasturdir. Server, o'z navbatida, mijozning so'rovini qayta ishlaydi va unga javob qaytaradi. Mijoz ilovasi brauzer, mustaqil dastur (mobil yoki ish stoli) yoki grafik interfeysi bo'lmagan boshqa server ilovalari bo'lishi mumkin.
-
O'rta daraja, o'z navbatida, veb darajasiga va biznes mantiqiy darajasiga bo'linadi.
-
Veb-qatlam mijozlar va biznes mantiqiy qatlami o'rtasidagi o'zaro ta'sirni ta'minlaydigan ba'zi komponentlardan iborat.
Veb darajasida quyidagi Java EE texnologiyalaridan foydalaniladi:
- JavaServer Faces texnologiyasi (JSF);
- Java server sahifalari (JSP);
- Ifoda tili (EL);
- Servletlar;
- Java EE (CDI) uchun kontekstlar va qaramlik kiritish.
-
Biznes mantiqiy qatlami dasturning barcha biznes mantiqini amalga oshiradigan komponentlardan iborat. Biznes mantig'i - bu muayyan biznes sohasi (moliyaviy sanoat, bank ishi, elektron tijorat) ehtiyojlarini qoplaydigan funksionallikni ta'minlovchi kod. Bu darajani butun tizimning yadrosi deb hisoblash mumkin.
Ushbu darajadagi texnologiyalar:
- Enterprise JavaBeans (EJB);
- JAX-RS RESTful veb-xizmatlari;
- Java Persistence API ob'ektlari;
- Java xabarlar xizmati.
-
-
Ma'lumotlarga kirish darajasi. Bu daraja ba'zan korporativ axborot tizimlari darajasi (EIS) deb ataladi. EIS turli xil ma'lumotlar bazasi serverlaridan, ERP (Korxona resurslarini rejalashtirish) korporativ resurslarni rejalashtirish tizimlari va boshqa ma'lumotlar manbalaridan iborat. Biznes mantiqiy qatlami ma'lumotlar uchun ushbu qatlamga kiradi.
Ushbu darajada siz quyidagi texnologiyalarni topishingiz mumkin:
- Java Database Connectivity API (JDBC);
- Java Persistence API;
- Java EE ulagichi arxitekturasi;
- Java Transaction API (JTA).
Ilova serverlari, konteynerlar, komponentlar
Keling, Vikipediyadagi Java EE ta'rifini ko'rib chiqaylik. Java EE - bu o'rta va yirik korxonalar vazifalari uchun server platformasi arxitekturasini tavsiflovchi Java tili uchun spetsifikatsiyalar va tegishli hujjatlar to'plami. Ushbu kontekstda "spetsifikatsiyalar to'plami" nimani anglatishini yaxshiroq tushunish uchun Java interfeysi bilan o'xshashlik keltiramiz. Java interfeysining o'zi funksionallikdan mahrum. Bu shunchaki shartnomani belgilaydi, unga ko'ra ba'zi funksiyalar amalga oshiriladi. Ammo boshqa sinflar interfeysni amalga oshiradi. Bundan tashqari, bitta interfeys bir nechta ilovalarga ega bo'lishi mumkin, ularning har biri ba'zi tafsilotlarda bir-biridan farq qilishi mumkin. Spetsifikatsiya bilan hamma narsa bir xil. Yalang'och Java EE - bu shunchaki spetsifikatsiyalar to'plami. Ushbu spetsifikatsiyalar turli Java EE serverlari tomonidan amalga oshiriladi. Java EE serveri Java EE platformasi API-larini amalga oshiradigan va standart Java EE xizmatlarini taqdim etadigan server ilovasi. Java EE serverlari ba'zan dastur serverlari deb ataladi. Server ma'lumotlari dastur komponentlarini o'z ichiga olishi mumkin, ularning har biri ko'p darajali ierarxiyada o'z darajasiga mos keladi. Java EE serveri ushbu komponentlarga konteyner shaklida turli xizmatlarni taqdim etadi. Konteynerlar - ular joylashtirilgan komponentlar va komponentni qo'llab-quvvatlaydigan past darajadagi platformadan mustaqil funksionallik o'rtasidagi interfeys. Konteynerlar o'zlari joylashgan komponentlarga maxsus xizmatlarni taqdim etadilar. Masalan, rivojlanishning hayot aylanishini boshqarish, bog'liqlikni in'ektsiya qilish, parallellik va boshqalar. Konteynerlar texnik murakkablikni yashiradi va portativlikni oshiradi. Java EE da to'rt xil konteyner turlari mavjud:-
Applet konteynerlari ko'pchilik brauzerlar tomonidan amalga oshiriladi. Appletlarni ishlab chiqishda siz diqqatni ilovaning vizual tomoniga qaratishingiz mumkin, konteyner esa xavfsiz muhitni ta'minlaydi.
-
Application Client Container (ACC) Java SE ilovalarida in'ektsiya, xavfsizlikni boshqarish va nomlash xizmatlari kabi xususiyatlarni amalga oshirish uchun zarur bo'lgan Java sinflari, kutubxonalari va boshqa fayllar to'plamini o'z ichiga oladi.
-
Veb-konteyner veb-komponentlarni (servletlar, EJB Lite komponentlari, JSP sahifalari, filtrlar, tinglovchilar, JSF sahifalari va veb-xizmatlar) boshqarish va bajarish uchun asosiy xizmatlarni taqdim etadi. U servletlarni yaratish, ishga tushirish va ishga tushirish, HTTP va HTTPS protokollarini qo'llab-quvvatlash uchun javobgardir. Ushbu konteyner veb-sahifalarni mijoz brauzerlariga xizmat ko'rsatish uchun ishlatiladi.
-
EJB (Enterprise Java Bean) konteyneri ilovaning biznes mantiqiy qatlamini o'z ichiga olgan EJB model komponentlarini boshqarish va bajarish uchun javobgardir. U yangi EJB fasol ob'ektlarini yaratadi, ularning hayot aylanishini boshqaradi va tranzaksiya, xavfsizlik, parallellik, tarqatish, nomlash yoki asinxron chaqiruv qobiliyatlari kabi xizmatlarni taqdim etadi.
-
Appletlar brauzerda ishlaydigan grafik foydalanuvchi interfeysi (GUI) ilovalari. Ular kuchli foydalanuvchi interfeyslarini yaratish uchun boy Swing API-dan foydalanadilar.
-
Ilovalar mijoz tomonida ishlaydigan dasturlardir. Odatda ular grafik foydalanuvchi interfeysi (GUI) bo'lib, ommaviy ishlov berish uchun ishlatiladi.
-
Veb-ilovalar (servletlar va ularning filtrlari, veb-hodisalar tinglovchilari, JSP va JSF sahifalaridan iborat) - veb-konteynerda ishlaydi va veb-mijozlarning HTTP so'rovlariga javob beradi. Servletlar SOAP va RESTful veb-xizmatining so'nggi nuqtalarini ham qo'llab-quvvatlaydi.
-
Korxona ilovalari (Enterprise Java Beans, Java Message Service, Java Transaction API, Asynchronous Calls, Time Services bilan tuzilgan) EJB konteynerida ishlaydi. Konteynerlar tomonidan boshqariladigan EJBlar tranzaktsion biznes mantiqini boshqaradi. Ularga RMI (yoki SOAP va RESTful veb-xizmatlari uchun HTTP) orqali mahalliy yoki masofadan kirish mumkin.
Texnologiyalar
Shunday qilib, biz arxitekturani saralab oldik. Umumiy tuzilma aniq bo'lishi kerak. Arxitektura komponentlarini tavsiflash jarayonida biz EJB, JSP va boshqalar kabi ba'zi Java EE texnologiyalariga to'xtalib o'tdik. Keling, ularni batafsil ko'rib chiqaylik. Quyidagi jadvalda asosan mijozlar darajasida qo'llaniladigan texnologiyalar ko'rsatilgan:Texnologiya | Maqsad |
---|---|
Servletlar | Mijoz so'rovlarini dinamik ravishda qayta ishlaydigan va javoblarni yaratadigan Java sinflari (odatda HTML sahifalari). |
Java server yuzlari (JSF) | Foydalanuvchi interfeysi bilan veb-ilovalarni yaratish uchun ramka. Sahifaga foydalanuvchi interfeysi komponentlarini (masalan, maydonlar va tugmalar) qo'shish, ushbu komponentlarni o'zgartirish va tasdiqlash va bu ma'lumotlarni server tomonida saqlash imkonini beradi. |
Java Server Faces Facelet texnologiyasi | Bu JSP sahifalari o'rniga XHTML sahifalaridan foydalanadigan JSF ilovasining kichik turi |
Java server sahifalari (JSP) | Servletlarga kompilyatsiya qilingan matnli hujjatlar. Statik sahifalarga (masalan, HTML sahifalar) dinamik tarkib qo‘shish imkonini beradi. |
Java server sahifalarining standart teglar kutubxonasi (JSTL) | JSP sahifalari kontekstida asosiy funksiyalarni qamrab oluvchi teglar kutubxonasi. |
Ifoda tili | Java EE komponentlariga kirish uchun JSP va Facelets sahifalarida ishlatiladigan standart teglar to'plami. |
Java EE (CDI) uchun kontekst va qaramlik kiritish | Komponentlarning hayot aylanishini boshqarish, shuningdek, komponentlarni mijoz ob'ektlariga xavfsiz tarzda kiritish uchun Java EE konteynerlari tomonidan taqdim etilgan xizmatlar to'plamini ifodalaydi. |
Java loviya komponentlari | Ilova sahifalari uchun vaqtinchalik ma'lumotlarni saqlash vazifasini bajaradigan ob'ektlar. |
Texnologiya | Maqsad |
---|---|
Enterprise Java Beans (korxona loviya) komponentlari | EJBlar boshqariladigan fasol bo'lib, ularda ilovaning asosiy funksiyalari mavjud. |
JAX-RS RESTful veb-xizmatlari | Bu REST arxitektura uslubiga mos keladigan veb-xizmatlarni ishlab chiqish uchun API. |
JAX-WS veb-xizmat so'nggi nuqtalari | SOAP veb-xizmatlarini yaratish va iste'mol qilish uchun API. |
Java Persistence API (JPA) ob'ektlari | Ma'lumotlar do'konlaridagi ma'lumotlarga kirish va ushbu ma'lumotlarni Java dasturlash tili ob'ektlariga va aksincha aylantirish uchun API. |
Java EE tomonidan boshqariladigan fasol | Ilovaning biznes mantiqini ta'minlaydigan, lekin EJBning tranzaksiya yoki xavfsizlik xususiyatlarini talab qilmaydigan boshqariladigan fasollar. |
Java xabarlar xizmati | Java Message Service (JMS) API Java EE ilova komponentlariga xabarlarni yaratish, jo‘natish, qabul qilish va o‘qish imkonini beruvchi xabar almashish standartidir. Bu komponentlar o'rtasida taqsimlangan, ishonchli va asinxron aloqani ta'minlaydi. |
Texnologiya | Maqsad |
---|---|
Java Database Connectivity API (JDBC) | Ma'lumotlar do'konlaridan ma'lumotlarga kirish va olish uchun past darajadagi API. JDBC-dan odatiy foydalanish SQL so'rovlarini ma'lum bir ma'lumotlar bazasiga qarshi yozishdir. |
Java Persistence API | Ma'lumotlar do'konlaridagi ma'lumotlarga kirish va ushbu ma'lumotlarni Java dasturlash tili ob'ektlariga va aksincha aylantirish uchun API. JDBC bilan solishtirganda ancha yuqori darajadagi API. JDBC ning barcha murakkabligini ishlab chiqaruvchidan qopqoq ostida yashiradi. |
Java EE ulagichi arxitekturasi | Boshqa korporativ resurslarni ulash uchun API, masalan:
|
Java Transaction API (JTA) | Bir nechta ma'lumotlar do'konlarida taqsimlangan tranzaktsiyalar va tranzaktsiyalarni o'z ichiga olgan tranzaktsiyalarni aniqlash va boshqarish uchun API. |
GO TO FULL VERSION