Əsas konsepti nədir?
- Multitiered distributed application model
- Component-Based Development
- Java EE Containers
- Enterprise JavaBeans (EJBs)
- Unified Security Model
- Flexible Transaction Control
- Java EE APİs and Specifications
- Deployment descriptors
Multitiered distributed application model
Presentation Tier: İstifadəçi İnterfeysi (veb səhifələr və Uİ komponentlər)
Business Logic Tier: Biznes qaydalar və proseslər özündə toplayır.
İntegration Tier: Verilənlər bazasına, digər xarici servislərə və sistemlərə qoşulma.
Component-Based Development
Xüsusi funksionallığı əhatə edən komponentlərdən ibarət bir proqram təminatı qurmaq imkanı verir. Həmin komponentləri fərqli yerlərdə yenidən istifadə imkanı yaranır. Eyni zamanda komponentlər modul kimi olduğuna körə proyekti dəstəkləmək daha rahat olur. Proyekt daha aydın və şəffav alınır. Komponent rolunda EJBlər, servlet və JSPlər ola bilir.
Java EE Containers
Konteynerlər Java EE komponentləri üçün runtime mühiti yaradırlar. Ümumi olaraq 3 container növünü vurğulamaq istərdim: veb konteyner, EJB konteyner, application client konteyner. Adlarından da məlum olur ki, veb konteyner veb səhifələrin (JSPlər və HTML faylları) işlədilməsini, servlets (HTTP sorğuların) işlədilməsini və EJB komponentlərdən bəzilərinin (veb servis endpointləri) işlədilməsini idarə edir. Konteynerlərin həll etdiyi məsələlər təhlükəsizlik, tranzaksiyalar, resursların paylaşılmasıdır.
Enterprise Java Beans (EJBs)
Biznes məntiq və qaydalar üçün nəzərdə tutulan komponentləri özündə cəmləyən EJBlərdir. EJBlər tranzaksiya idarə edilməsi, təhlükəsizliyin təmin edilməsi və paralel işlər görmək üçün servislər təqdim edir. EJB növlərindən danışsaq deyərəm 3 növü var: Session Beans, Message-Driven Beans, Entity Beans.
Sonuncu Entity Beans yeni Java EE freymvorklarda JPA ilə əvəzlənib. Yəgin ki, Entity Beans data ilə işləmək üçün nəzərdə tutulduğunu artıq anladınız.
Message-Driven Beans asinxron mesajlaşmanı təmin etmək üçün istifadə olunur JMS (Java Message Service). Event-driven proseslər üçün Message-Driven Beans çox yararlıdır.
Session Beans də biznes məntiqin stateful/stateless olmasını təqdim edir. Use case-lər və vorkfloular (workflows), yəni biznes məntiqin müştəri caseləri və biznes vorkflousu üçün idealdır.
Unified Security Model
Java EE Authentication, Authorization və rollara əsaslanmış giriş idarəsi təqdim edir. Ayarlanma deployment descriptorlarda edilir.
Flexible Transaction Control
Java EE tranzaksiyaları idarə etmək üçün də container təqdim edir. EJB deyilən konteyner avtomatik tranzaksiya əməliyyatlarının öz üzərinə götürür. Yəni EJB metod işə salınanda, konteyner yoxlayır ki, tranzaksiya artıq aktivdir ya yox. Əgər tranzaksiya aktiv deyilsə, yenisini başaldır. Əgər tranzaksiya uğurla bitirsə, EJB onu commit edir, əks halda exception atılırsa, geri dönüş addımlarını (rollback) edir. Özünü necə aparacağı transaction attributlarından asılı olur, onu da @TransactionAttribute annotasiyası ilə ötürə bilirik. Bu mövzunu daha dərindən bilmək üçün JTA haaqında araşdırmanı davam etmək olar.
Java EE APİs and Specifications
API özü Application Programming İnterfacedir. Java EE təqdim etdiyi APİların vasitəsi ilə proqram təminatı yaradılır.
JPA — Java Persistence API
JMS — Java Message Service
JTA — Java Transaction API
Deployment Descriptors
Java EE proqram təminatının ayarlamaq üçün istifadə olunur. Misal: web.xml, ejb-jar.xml . Bu fayllarda resursları müəyyən edirik, təhlükəsizlik ayarlarını yazırıq, və komponentlərin davranışını müəyyən edirik.