Java EE - bu nədir?
Java EE genişmiqyaslı, çoxsəviyyəli, miqyaslana bilən, etibarlı və təhlükəsiz şəbəkə proqramlarının işlənib hazırlanması və işlədilməsi üçün API və iş vaxtı mühiti təmin edən Java SE üzərində qurulmuş platformadır. Bu cür proqramlar iri müəssisələrin üzləşdiyi problemləri həll etdiyi üçün müəssisə proqramları adlanır. Bununla belə, bu növ tətbiqlərdən və Java EE-nin təmin etdiyi üstünlüklərdən yalnız böyük korporasiyalar və dövlət qurumları faydalana bilməz. Java EE platformasının təklif etdiyi həllər fərdi tərtibatçılar və kiçik təşkilatlar üçün faydalı və bəzən sadəcə zəruridir.Java EE inkişafı
Java EE 1998-ci ildə yaradılmış Java İcma Prosesi (JCP) vasitəsilə hazırlanmışdır. O, maraqlı tərəflərə Java dili platformasının spesifikasiyalarının gələcək versiyalarının formalaşdırılmasında iştirak etməyə imkan verir. Bu prosesin əsasını Java platformasına əlavə edilməsi təklif olunan spesifikasiyaları və texnologiyaları təsvir edən rəsmi sənədlər olan JSR (Java Specification Request) təşkil edir. Bu cür sorğular icma üzvləri - adi tərtibatçılar və şirkətlər tərəfindən edilir. Sonunculara Oracle, Red Hat, IBM, Apache və bir çox başqaları daxildir. Bunlar. uşaqlar Java-ya daxil etmək istədiklərini nəzərə almaq üçün yeni funksiyalar və yaxşılıqlar təklif edirlər. Sonra da səsvermə keçirirlər, onun əsasında növbəti varianta nələrin daxil ediləcəyi ilə bağlı qərar verilir. Java EE versiyasının tarixçəsi belə görünür:- J2EE 1.2 (Dekabr 1999)
- J2EE 1.3 (Sentyabr 2001)
- J2EE 1.4 (noyabr 2003)
- Java EE 5 (May 2006)
- Java EE 6 (dekabr 2009)
- Java EE 7 (May)
- Java EE 8 (Avqust 2017)
- Cakarta EE 8 (sentyabr 2019)
Java EE Proqram Memarlığı
Qısa bir giriş. Anlamağı asanlaşdırmaq üçün Java EE proqramlarının strukturu və bundan sonra istifadə edəcəyimiz bəzi terminlər haqqında danışaq. Java EE proqramları iki əsas keyfiyyətə malik bir quruluşa malikdir:- Birincisi, çox səviyyəli. Java EE proqramları çox səviyyəlidir və biz bu barədə daha ətraflı danışacağıq;
- ikincisi, yuva qurma. Java EE serveri (və ya proqram serveri) var, onun daxilində komponent konteynerləri yerləşir. Bu konteynerlərdə (bingo!) komponentlər var.
Tətbiq səviyyələri
Çox səviyyəli tətbiqlər funksional prinsiplərə görə təcrid olunmuş modullara (səviyyələr, təbəqələr) bölünən tətbiqlərdir. Tipik olaraq (o cümlədən Java EE inkişafı kontekstində) müəssisə proqramları üç səviyyəyə bölünür:- müştəri;
- orta səviyyə;
- məlumat giriş səviyyəsi.
-
Müştəri səviyyəsi Java EE serverindən (orta səviyyə) məlumat tələb edən proqramdır. Server isə öz növbəsində müştərinin sorğusunu emal edir və ona cavab qaytarır. Müştəri proqramı brauzer, müstəqil proqram (mobil və ya masa üstü) və ya qrafik interfeysi olmayan digər server proqramları ola bilər.
-
Orta səviyyə, öz növbəsində, veb səviyyəsinə və biznes məntiqi səviyyəsinə bölünür.
-
Veb qatı müştərilər və biznes məntiqi təbəqəsi arasında qarşılıqlı əlaqəni təmin edən bəzi komponentlərdən ibarətdir.
Veb səviyyəsində aşağıdakı Java EE texnologiyalarından istifadə olunur:
- JavaServer Faces texnologiyası (JSF);
- Java Server Səhifələri (JSP);
- İfadə dili (EL);
- Servletlər;
- Java EE (CDI) üçün kontekstlər və asılılıq inyeksiyası.
-
Biznes məntiqi təbəqəsi tətbiqin bütün biznes məntiqini həyata keçirən komponentlərdən ibarətdir. Biznes məntiqi bəzi xüsusi biznes sahəsinin (maliyyə sənayesi, bank işi, e-ticarət) ehtiyaclarını əhatə edən funksionallığı təmin edən koddur. Bu səviyyəni bütün sistemin əsası hesab etmək olar.
Bu səviyyədə iştirak edən texnologiyalar:
- Enterprise JavaBeans (EJB);
- JAX-RS RESTful veb xidmətləri;
- Java Persistence API obyektləri;
- Java Mesaj Xidməti.
-
-
Məlumata giriş səviyyəsi. Bu səviyyə bəzən müəssisənin informasiya sistemlərinin səviyyəsi (EIS) adlanır. EIS müxtəlif verilənlər bazası serverlərindən, ERP (Enterprise Resource Planning) müəssisə resurslarının planlaşdırılması sistemlərindən və digər məlumat mənbələrindən ibarətdir. Biznes məntiqi təbəqə məlumat üçün bu təbəqəyə daxil olur.
Bu səviyyədə aşağıdakı kimi texnologiyalar tapa bilərsiniz:
- Java Database Connectivity API (JDBC);
- Java Persistence API;
- Java EE Connector Architecture;
- Java Transaction API (JTA).
Tətbiq serverləri, konteynerlər, komponentlər
Gəlin Vikipediyadan Java EE tərifinə nəzər salaq. Java EE orta və böyük müəssisələrin tapşırıqları üçün server platformasının arxitekturasını təsvir edən Java dili üçün spesifikasiyalar və əlaqəli sənədlər toplusudur. Bu kontekstdə “spesifikasiyalar dəsti”nin nə demək olduğunu daha yaxşı başa düşmək üçün Java interfeysi ilə bənzətmə aparaq. Java interfeysinin özü funksionallıqdan məhrumdur. O, sadəcə olaraq bəzi funksionallığın həyata keçirildiyi bəzi müqaviləni müəyyən edir. Lakin digər siniflər interfeysi həyata keçirir. Üstəlik, bir interfeysdə hər biri bəzi detallarda bir-birindən fərqlənə bilən bir neçə tətbiqetmə ola bilər. Spesifikasiya ilə hər şey eynidir. Çılpaq Java EE sadəcə spesifikasiyalar toplusudur. Bu spesifikasiyalar müxtəlif Java EE serverləri tərəfindən həyata keçirilir. Java EE serveri Java EE platforması API-lərini həyata keçirən və standart Java EE xidmətləri göstərən server proqramıdır. Java EE serverlərinə bəzən proqram serverləri deyilir. Server məlumatlarında hər biri çoxsəviyyəli iyerarxiyada öz səviyyəsinə uyğun gələn proqram komponentləri ola bilər. Java EE serveri bu komponentlərə konteyner şəklində müxtəlif xidmətlər təqdim edir. Konteynerlər yerləşdirdikləri komponentlər və komponenti dəstəkləyən aşağı səviyyəli platformadan müstəqil funksionallıq arasında interfeysdir. Konteynerlər yerləşdirdikləri komponentlərə xüsusi xidmətlər təqdim edirlər. Məsələn, inkişafın həyat dövrünün idarə edilməsi, asılılıq inyeksiyası, paralellik və s. Konteynerlər texniki mürəkkəbliyi gizlədir və daşınma qabiliyyətini artırır. Java EE-də dörd fərqli konteyner növü var:-
Applet konteynerləri əksər brauzerlər tərəfindən həyata keçirilir. Apletləri inkişaf etdirərkən, konteyner təhlükəsiz mühit təmin edərkən, tətbiqin vizual tərəfinə diqqət yetirə bilərsiniz.
-
Tətbiq Müştəri Konteyneri (ACC) Java SE proqramlarında inyeksiya, təhlükəsizliyin idarə edilməsi və adlandırma xidmətləri kimi xüsusiyyətləri həyata keçirmək üçün lazım olan bir sıra Java sinifləri, kitabxanalar və digər faylları ehtiva edir.
-
Veb konteyner veb komponentlərinin (servletlər, EJB Lite komponentləri, JSP səhifələri, filtrlər, dinləyicilər, JSF səhifələri və veb xidmətləri) idarə edilməsi və icrası üçün əsas xidmətləri təmin edir. O, servletlərin yaradılması, işə salınması və işə salınması və HTTP və HTTPS protokollarının dəstəklənməsi üçün məsuliyyət daşıyır. Bu konteyner müştəri brauzerlərinə veb səhifələrə xidmət etmək üçün istifadə olunur.
-
EJB (Enterprise Java Bean) konteyneri proqramın biznes məntiqi qatını ehtiva edən EJB model komponentlərinin idarə edilməsi və icrasına cavabdehdir. O, yeni EJB lobya obyektləri yaradır, onların həyat dövrünü idarə edir və əməliyyat, təhlükəsizlik, paralellik, paylama, adlandırma və ya asinxron çağırış imkanları kimi xidmətlər təqdim edir.
-
Appletlər brauzerdə işləyən qrafik istifadəçi interfeysi (GUI) proqramlarıdır. Güclü istifadəçi interfeysləri yaratmaq üçün zəngin Swing API-dən istifadə edirlər.
-
Tətbiqlər müştəri tərəfində işləyən proqramlardır. Adətən onlar qrafik istifadəçi interfeysidir (GUI) və toplu emal üçün istifadə olunur.
-
Veb proqramlar (servletlər və onların filtrlərindən, veb hadisə dinləyicilərindən, JSP və JSF səhifələrindən ibarətdir) - veb konteynerdə işləyin və veb müştərilərin HTTP sorğularına cavab verin. Servletlər həmçinin SOAP və RESTful veb xidmətinin son nöqtələrini dəstəkləyir.
-
Enterprise proqramlar (Enterprise Java Beans, Java Message Service, Java Transaction API, Asynchronous Calls, Time Services ilə qurulmuşdur) EJB konteynerində işləyir. Konteynerlə idarə olunan EJB-lər tranzaksiya biznes məntiqini idarə edir. Onlara yerli və ya uzaqdan RMI (və ya SOAP və RESTful veb xidmətləri üçün HTTP) vasitəsilə daxil olmaq olar.
Texnologiyalar
Beləliklə, biz memarlığı sıraladıq. Ümumi struktur aydın olmalıdır. Memarlıq komponentlərinin təsviri prosesində biz EJB, JSP və s. kimi bəzi Java EE texnologiyalarına toxunduq. Gəlin onlara daha yaxından nəzər salaq. Aşağıdakı cədvəldə əsasən müştəri səviyyəsində istifadə olunan texnologiyalar göstərilir:Texnologiya | Məqsəd |
---|---|
Servletlər | Müştəri sorğularını dinamik şəkildə emal edən və cavablar yaradan Java sinifləri (adətən HTML səhifələri). |
Java Server Üzləri (JSF) | İstifadəçi interfeysi ilə veb proqramlar yaratmaq üçün çərçivə. İstifadəçi interfeysi komponentlərini (məsələn, sahələr və düymələr) səhifəyə daxil etməyə, bu komponentləri çevirməyə və təsdiq etməyə və bu məlumatları server tərəfində saxlamağa imkan verir. |
Java Server Faces Facelet texnologiyası | Bu, JSP səhifələri əvəzinə XHTML səhifələrindən istifadə edən JSF tətbiqinin alt növüdür |
Java Server Səhifələri (JSP) | Servletlərə yığılan mətn sənədləri. Statik səhifələrə (HTML səhifələri kimi) dinamik məzmun əlavə etməyə imkan verir. |
Java Server Səhifələrinin Standart Etiket Kitabxanası (JSTL) | JSP səhifələrinin kontekstində əsas funksionallığı əhatə edən etiket kitabxanası. |
İfadə dili | Java EE komponentlərinə daxil olmaq üçün JSP və Facelet səhifələrində istifadə olunan standart teqlər dəsti. |
Java EE (CDI) üçün kontekstlər və asılılıq inyeksiyası | Komponentlərin həyat dövrünün idarə edilməsi, eləcə də komponentlərin təhlükəsiz şəkildə müştəri obyektlərinə yeridilməsi üçün Java EE konteynerləri tərəfindən təqdim edilən xidmətlər toplusunu təmsil edir. |
Java lobya komponentləri | Tətbiq səhifələri üçün müvəqqəti məlumat saxlama yeri kimi çıxış edən obyektlər. |
Texnologiya | Məqsəd |
---|---|
Enterprise Java Beans (müəssisə lobya) komponentləri | EJB-lər tətbiqin əsas funksionallığını ehtiva edən idarə olunan lobyalardır. |
JAX-RS RESTful veb xidmətləri | REST memarlıq üslubuna uyğun veb xidmətlərinin inkişafı üçün API-dir. |
JAX-WS veb xidmətinin son nöqtələri | SOAP veb xidmətləri yaratmaq və istehlak etmək üçün API. |
Java Persistence API (JPA) obyektləri | Məlumat anbarlarında verilənlərə daxil olmaq və həmin məlumatları Java proqramlaşdırma dili obyektlərinə və əksinə çevirmək üçün API. |
Java EE tərəfindən idarə olunan lobya | Tətbiqin biznes məntiqini təmin edən, lakin EJB-nin əməliyyat və ya təhlükəsizlik xüsusiyyətlərini tələb etməyən idarə olunan lobya. |
Java Mesaj Xidməti | Java Mesaj Xidməti (JMS) API Java EE proqram komponentlərinə mesajlar yaratmağa, göndərməyə, qəbul etməyə və oxumağa imkan verən mesajlaşma standartıdır. Bu, komponentlər arasında paylanmış, etibarlı və asinxron rabitəni təmin edir. |
Texnologiya | Məqsəd |
---|---|
Java Database Connectivity API (JDBC) | Məlumat mağazalarından məlumat əldə etmək və əldə etmək üçün aşağı səviyyəli API. JDBC-nin tipik istifadəsi xüsusi verilənlər bazasına qarşı SQL sorğularının yazılmasıdır. |
Java Persistence API | Məlumat anbarlarında verilənlərə daxil olmaq və həmin məlumatları Java proqramlaşdırma dili obyektlərinə və əksinə çevirmək üçün API. JDBC ilə müqayisədə daha yüksək səviyyəli API. Başlıq altında tərtibatçıdan JDBC-nin bütün mürəkkəbliyini gizlədir. |
Java EE Connector Arxitekturası | Digər korporativ resursları birləşdirmək üçün API, məsələn:
|
Java Transaction API (JTA) | Çoxlu məlumat mağazalarında paylanmış əməliyyatlar və əməliyyatlar daxil olmaqla, əməliyyatları müəyyən etmək və idarə etmək üçün API. |
GO TO FULL VERSION