Java EE - ин чист?
Java EE платформаест, ки дар болои Java SE сохта шудааст, ки API ва муҳити кориро барои таҳия ва иҷро кардани барномаҳои шабакавии миқёси васеъ, бисёрсатҳа, миқёспазир, боэътимод ва бехатар таъмин мекунад. Чунин барномаҳо барномаҳои корпоративӣ номида мешаванд, зеро онҳо мушкилотеро, ки тиҷорати калон дучор меоянд, ҳал мекунанд. Аммо, на танҳо корпоратсияҳои калон ва муассисаҳои давлатӣ метавонанд аз ин намуди барномаҳо ва бартариҳое, ки Java EE пешниҳод мекунанд, баҳра баранд. Қарорҳое, ки платформаи Java EE пешниҳод мекунанд, барои таҳиягарони инфиродӣ ва созмонҳои хурд муфид ва баъзан танҳо заруранд.Таҳияи Java EE
Java EE тавассути раванди Java Community Process (JCP), ки соли 1998 таъсис ёфтааст, таҳия шудааст. Он ба ҷонибҳои манфиатдор имкон медиҳад, ки дар ташаккули versionҳои ояндаи мушаххасоти платформаи забони Java иштирок кунанд. Асоси ин раванд JSR (Java Specification Request), ҳуҷҷатҳои расмӣ мебошад, ки мушаххасот ва технологияҳоро тавсиф мекунанд, ки ба платформаи Java илова карда мешаванд. Чунин дархостҳоро аъзоёни ҷомеа - таҳиягарон ва ширкатҳои оддӣ пешниҳод мекунанд. Ба охирин Oracle, Red Hat, IBM, Apache ва бисёр дигарон дохил мешаванд. Онхое. бачаҳо хусусиятҳо ва чизҳои навро барои баррасӣ пешниҳод мекунанд, ки онҳо мехоҳанд ба Java дохил кунанд. Ва он гоҳ онҳо овоз медиҳанд, ки дар асоси он тасмим гирифта мешавад, ки ба варианти оянда чӣ дохил карда шавад. Таърихи versionи Java EE чунин менамояд:- J2EE 1.2 (декабри 1999)
- J2EE 1.3 (сентябри 2001)
- J2EE 1.4 (ноябри 2003)
- Java EE 5 (майи 2006)
- Java EE 6 (декабри 2009)
- Java EE 7 (май)
- Java EE 8 (августи 2017)
- Ҷакарта EE 8 (сентябри 2019)
Архитектураи барномаҳои Java EE
Муқаддимаи кӯтоҳ. Барои осонтар фаҳмидани он, биёед дар бораи сохтори барномаҳои Java EE ва баъзе истилоҳоте, ки минбаъд истифода хоҳем кард, сӯҳбат кунем. Барномаҳои Java EE сохторе доранд, ки ду сифатҳои калидӣ доранд:- Якум, бисёрсатҳа. Барномаҳои Java EE бисёрсатҳа мебошанд ва мо дар ин бора муфассалтар сӯҳбат хоҳем кард;
- дуюм, лона кардан. Сервери Java EE (ё serverи барномавӣ) мавҷуд аст, ки дар дохor он контейнерҳои ҷузъӣ ҷойгиранд. Ин контейнерҳо ҷузъҳои хона (bingo!).
Сатҳи татбиқ
Барномаҳои бисёрсатҳа барномаҳое мебошанд, ки аз рӯи принсипҳои функсионалӣ ба модулҳои ҷудошуда (сатҳҳо, қабатҳо) тақсим мешаванд. Одатан (аз ҷумла дар заминаи рушди Java EE), замимаҳои корхона ба се сатҳ тақсим мешаванд:- муштарӣ;
- сатҳи миёна;
- сатҳи дастрасии маълумот.
-
Қабати муштарӣ барномаест, ки маълумотро аз serverи Java EE (қабати миёна) дархост мекунад. Сервер дар навбати худ дархости муштариро коркард мекунад ва ба он посух медиҳад. Замимаи муштарӣ метавонад браузер, барномаи мустақил (мобилӣ ё мизи корӣ) ё дигар барномаҳои serverӣ бе интерфейси графикӣ бошад.
-
Сатҳи миёна дар навбати худ ба сатҳи веб ва сатҳи мантиқи тиҷорат тақсим мешавад.
-
Қабати веб аз баъзе ҷузъҳо иборат аст, ки ҳамкории байни муштариён ва қабати мантиқии тиҷоратро таъмин мекунанд.
Технологияҳои зерини Java EE дар сатҳи веб истифода мешаванд:
- Технологияи JavaServer Faces (JSF);
- Java Server Pages (JSP);
- Забони ифода (EL);
- Сервлетҳо;
- Контекстҳо ва тазриқи вобастагӣ барои Java EE (CDI).
-
Қабати мантиқи тиҷорӣ аз ҷузъҳое иборат аст, ки тамоми мантиқи тиҷории барномаро амалӣ мекунанд. Мантиқи тиҷорат ин codeест, ки функсияҳоеро таъмин мекунад, ки эҳтиёҷоти баъзе соҳаи мушаххаси тиҷоратро (саноати молиявӣ, бонкдорӣ, тиҷорати электронӣ) фаро мегирад. Ин сатҳро метавон асоси тамоми система ҳисоб кард.
Технологияҳое, ки дар ин сатҳ иштирок мекунанд:
- Enterprise JavaBeans (EJB);
- JAX-RS RESTful хидматҳои веб;
- Объектҳои Java Persistence API;
- Хадамоти паёмнависии Java.
-
-
Сатҳи дастрасии маълумот. Ин сатҳро баъзан сатҳи системаҳои иттилоотии корхона (EIS) меноманд. EIS аз serverҳои гуногуни пойгоҳи додаҳо, системаҳои банақшагирии захираҳои ERP (Enterprise Resource Planning) ва дигар манбаъҳои додаҳо иборат аст. Қабати мантиқи тиҷорӣ ба ин қабат барои маълумот дастрасӣ пайдо мекунад.
Дар ин сатҳ шумо метавонед технологияҳои зеринро пайдо кунед:
- API Java Database Connectivity (JDBC);
- Java Persistence API;
- Архитектураи Java EE Connector;
- API Transaction Java (JTA).
Серверҳои барномаҳо, контейнерҳо, ҷузъҳо
Биёед ба таърифи Java EE аз Википедиа назар андозем. Java EE маҷмӯи мушаххасот ва ҳуҷҷатҳои марбут барои забони Java мебошад, ки меъмории платформаи serverро барои вазифаҳои корхонаҳои миёна ва калон тавсиф мекунад. Барои беҳтар фаҳмидани он ки "маҷмӯи мушаххасот" дар ин замина чӣ маъно дорад, биёед бо интерфейси Java муқоиса кунем. Худи интерфейси Java аз функсияҳо маҳрум аст. Он танҳо як шартномаро муайян мекунад, ки тибқи он баъзе функсияҳо амалӣ карда мешаванд. Аммо синфҳои дигар интерфейсро амалӣ мекунанд. Гузашта аз ин, як интерфейс метавонад якчанд амалия дошта бошад, ки ҳар кадоми онҳо метавонанд бо баъзе ҷузъиёт аз ҳамдигар фарқ кунанд. Бо тавсиф ҳама чиз комилан якхела аст. Бараҳна Java EE танҳо маҷмӯи мушаххасот аст. Ин мушаххасот аз ҷониби serverҳои гуногуни Java EE амалӣ карда мешаванд. Сервери Java EE як барномаи serverест, ки API-ҳои платформаи Java EE-ро амалӣ мекунад ва хидматҳои стандартии Java EE-ро пешниҳод мекунад. Серверҳои Java EE баъзан serverҳои барнома номида мешаванд. Маълумоти server метавонад ҷузъҳои барномаро дар бар гирад, ки ҳар яки онҳо ба сатҳи худ дар иерархияи бисёрсатҳа мувофиқат мекунанд. Сервери Java EE ба ин ҷузъҳо дар шакли контейнер хидматҳои гуногун пешкаш мекунад. Контейнерҳо интерфейси байни ҷузъҳои дар онҳо ҷойгиршуда ва функсияи мустақor платформаи сатҳи паст, ки ҷузъро дастгирӣ мекунанд, мебошанд. Контейнерҳо ба ҷузъҳои ҷойгиршуда хидматҳои мушаххас пешниҳод мекунанд. Масалан, идоракунии давраи зиндагии рушд, тазриқи вобастагӣ, ҳамзамон ва ғайра. Контейнерҳо мураккабии техникиро пинҳон мекунанд ва интиқолпазириро зиёд мекунанд. Дар Java EE чор намуди контейнерҳо мавҷуданд:-
Контейнерҳои апплет аз ҷониби аксари браузерҳо амалӣ карда мешаванд. Ҳангоми таҳияи апплетҳо, шумо метавонед ба тарафи визуалии барнома тамаркуз кунед, дар ҳоле ки контейнер муҳити бехатарро таъмин мекунад.
-
Контейнери мизоҷи Application (ACC) маҷмӯи синфҳои Java, китобхонаҳо ва дигар файлҳоро дар бар мегирад, ки барои татбиқи хусусиятҳо ба монанди тазриқ, идоракунии амният ва хидматҳои номгузорӣ дар барномаҳои Java SE лозиманд.
-
Контейнери веб хидматҳои асосиро барои идора ва иҷрои ҷузъҳои веб (сервлетҳо, ҷузъҳои EJB Lite, саҳифаҳои JSP, филтрҳо, шунавандагон, саҳифаҳои JSF ва хидматҳои веб) пешкаш мекунад. Он барои эҷод кардан, оғоз кардан ва даъват кардани сервлетҳо ва дастгирии протоколҳои HTTP ва HTTPS масъул аст. Ин контейнер барои хидматрасонии саҳифаҳои веб ба браузерҳои муштарӣ истифода мешавад.
-
Контейнери EJB (Enterprise Java Bean) барои идора ва иҷрои ҷузъҳои модели EJB, ки қабати мантиқии тиҷории барномаро дар бар мегирад, масъул аст. Он воҳидҳои нави лӯбиёи EJB-ро эҷод мекунад, давраи зиндагии онҳоро идора мекунад ва хидматҳо ба монанди транзаксия, амният, ҳамоҳангӣ, тақсимот, номгузорӣ ё қобorятҳои даъвати асинхронӣ пешниҳод мекунад.
-
Апплетҳо барномаҳои интерфейси графикии корбар (GUI) мебошанд, ки дар браузер кор мекунанд. Онҳо аз Swing API-и бой истифода мебаранд, то интерфейсҳои тавонои корбарро тавлид кунанд.
-
Барномаҳо барномаҳое мебошанд, ки дар тарафи муштарӣ кор мекунанд. Одатан, онҳо интерфейси графикии корбар (GUI) мебошанд ва барои коркарди партия истифода мешаванд.
-
Барномаҳои веб (иборат аз сервлетҳо ва филтрҳои онҳо, шунавандагони рӯйдодҳои веб, саҳифаҳои JSP ва JSF) - дар як контейнери веб кор мекунанд ва ба дархостҳои HTTP аз муштариёни веб посух медиҳанд. Сервлетҳо инчунин нуқтаҳои ниҳоии хидмати веби SOAP ва RESTful -ро дастгирӣ мекунанд.
-
Барномаҳои корпоративӣ (бо Enterprise Java Beans, Java Message Service, Java Transaction API, зангҳои асинхронӣ, хидматҳои вақт сохта шудаанд) дар контейнери EJB кор мекунанд. EJB-ҳои аз контейнер идорашаванда мантиқи тиҷорати транзаксияро идора мекунанд. Онҳоро метавон тавассути RMI (ё HTTP барои SOAP ва хидматҳои веби RESTful) ба таври маҳаллӣ ё дурдаст дастрас кард.
Технологияҳо
Ҳамин тавр, мо меъмориро ҷудо кардем. Сохтори умумӣ бояд равшан бошад. Дар ҷараёни тавсифи ҷузъҳои меъморӣ, мо ба баъзе технологияҳои Java EE, аз қабor EJB, JSP ва ғайра дахл кардем. Биёед ба онҳо муфассалтар назар кунем. Дар ҷадвали зер технологияҳое нишон дода шудаанд, ки асосан дар сатҳи муштарӣ истифода мешаванд:Технология | Мақсад |
---|---|
Сервлетҳо | Синфҳои Java, ки дархостҳои муштариро динамикӣ коркард мекунанд ва ҷавобҳо тавлид мекунанд (одатан саҳифаҳои HTML). |
Чеҳраҳои serverи Java (JSF) | Чаҳорчӯба барои сохтани барномаҳои веб бо интерфейси корбар. Ба шумо имкон медиҳад, ки ҷузъҳои интерфейси корбарро (масалан, майдонҳо ва тугмаҳо) ба саҳифа дохил кунед, ин ҷузъҳоро тағир диҳед ва тасдиқ кунед ва ин маълумотро дар нигаҳдории server нигоҳ доред. |
Технологияи Java Server Faces Facelets | Ин як зернавъи барномаи JSF мебошад, ки ба ҷои саҳифаҳои JSP саҳифаҳои XHTML-ро истифода мебарад |
Саҳифаҳои serverи Java (JSP) | Ҳуҷҷатҳои матние, ки ба сервлетҳо тартиб дода мешаванд. Ба шумо имкон медиҳад, ки мундариҷаи динамикиро ба саҳифаҳои статикӣ илова кунед (ба монанди саҳифаҳои HTML) |
Саҳифаҳои serverи Java Китобхонаи барчаспҳои стандартӣ (JSTL) | Китобхонаи барчасп, ки функсияҳои асосиро дар заминаи саҳифаҳои JSP фаро мегирад. |
Забони ифода | Маҷмӯи барчаспҳои стандартӣ, ки дар саҳифаҳои JSP ва Facelets барои дастрасӣ ба ҷузъҳои Java EE истифода мешаванд. |
Контекстҳо ва тазриқи вобастагӣ барои Java EE (CDI) | Маҷмӯи хидматҳоеро, ки контейнерҳои Java EE барои идоракунии давраи ҳаёти ҷузъҳо, инчунин ворид кардани ҷузъҳо ба an objectҳои муштарӣ ба таври бехатар пешниҳод мекунанд, намояндагӣ мекунад. |
Ҷузъҳои Java Beans | Объектҳое, ки ҳамчун нигаҳдории муваққатии маълумот барои саҳифаҳои барнома амал мекунанд. |
Технология | Мақсад |
---|---|
Ҷузъҳои Enterprise Java Beans (bean Enterprise). | EJB лӯбиёҳои идорашаванда мебошанд, ки дорои функсияҳои асосии барнома мебошанд. |
JAX-RS RESTful хидматҳои веб | Ин API барои таҳияи хидматҳои веб мебошад, ки ба услуби меъмории REST мувофиқат мекунанд. |
Нуқтаҳои хидматрасонии веб JAX-WS | API барои эҷод ва истеъмоли хидматҳои веби SOAP. |
Объектҳои Java Persistence API (JPA). | API барои дастрасӣ ба маълумот дар мағозаҳои додаҳо ва табдил додани ин маълумот ба an objectҳои забони барномасозии Java ва баръакс. |
Java EE лӯбиёи идорашаванда | Лӯбиёҳои идорашавандае, ки мантиқи тиҷорати барномаро таъмин мекунанд, аммо хусусиятҳои транзаксионӣ ё амниятии EJB-ро талаб намекунанд. |
Хадамоти паёмнависии Java | Java Message Service (JMS) API стандарти паёмнависӣ мебошад, ки ба ҷузъҳои замимаи Java EE имкон медиҳад, ки паёмҳоро эҷод, ирсол, қабул ва хонед. Ин алоқаи тақсимшуда, боэътимод ва асинхронӣ байни ҷузъҳоро таъмин мекунад. |
Технология | Мақсад |
---|---|
API Java Database Connectivity (JDBC) | API-и сатҳи паст барои дастрасӣ ва дарёфти маълумот аз мағозаҳои додаҳо. Истифодаи маъмулии JDBC ин навиштани дархостҳои SQL бар зидди пойгоҳи додаҳои мушаххас мебошад. |
API-и Java Persistence | API барои дастрасӣ ба маълумот дар мағозаҳои додаҳо ва табдил додани ин маълумот ба an objectҳои забони барномасозии Java ва баръакс. Дар муқоиса бо JDBC сатҳи хеле баландтари API. Тамоми мураккабии JDBC-ро аз таҳиякунанда дар зери сарпӯш пинҳон мекунад. |
Архитектураи Java EE Connector | API барои пайваст кардани дигар захираҳои корпоративӣ, ба монанди:
|
API Transaction Java (JTA) | API барои муайян ва идоракунии транзаксияҳо, аз ҷумла транзаксияҳои тақсимшуда ва транзаксияҳо дар мағозаҳои сершумори додаҳо. |
GO TO FULL VERSION