Java EE - бул эмне?
Java EE — Java SEнин үстүнө курулган платформа, ал масштабдуу, көп баскычтуу, масштабдуу, ишенимдүү жана коопсуз тармактык тиркемелерди иштеп чыгуу жана иштетүү үчүн API жана иштөө чөйрөсүн камсыз кылат. Мындай тиркемелер ишкананын тиркемелери деп аталат, анткени алар ири ишканалар туш болгон маселелерди чечет. Бирок, бул түрдөгү тиркемелерден жана Java EE камсыз кылган артыкчылыктардан чоң корпорациялар жана мамлекеттик органдар гана эмес. Java EE платформасы сунуш кылган чечимдер жеке иштеп чыгуучулар жана чакан уюмдар үчүн пайдалуу, кээде жөн гана зарыл.Java EE өнүктүрүү
Java EE 1998-жылы түзүлгөн Java Community Process (JCP) аркылуу иштелип чыккан. Бул кызыкдар тараптарга Java тил платформасынын спецификацияларынын келечектеги versionларын түзүүгө катышууга мүмкүнчүлүк берет. Бул процесстин негизин JSR (Java Specification Request) түзөт, Java платформасына кошуу сунушталган спецификацияларды жана технологияларды сүрөттөгөн расмий documentтер. Мындай суроо-талаптарды коомчулуктун мүчөлөрү – катардагы иштеп чыгуучулар жана компаниялар жасашат. Акыркыларына Oracle, Red Hat, IBM, Apache жана башка көптөгөн программалар кирет. Ошол. балдар Java-га киргизгиси келген жаңы функцияларды жана жакшы нерселерди сунушташат. Анан алар добуш берип, анын негизинде кийинки вариантка эмнени киргизүү боюнча чечим кабыл алынат. Java EE versionсынын тарыхы төмөнкүдөй көрүнөт:- 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и (же колдонмо serverи) бар, анын ичинде компоненттик контейнерлер жайгашкан. Бул контейнерлер (бинго!) компоненттерин камтыйт.
Колдонмо деңгээли
Көп деңгээлдүү тиркемелер – функционалдык принциптери боюнча обочолонгон модулдарга (деңгээлдерге, катмарларга) бөлүнгөн тиркемелер. Адатта (анын ичинде Java EE өнүктүрүү контекстинде) ишкана колдонмолору үч деңгээлге бөлүнөт:- кардар;
- орто деңгээл;
- маалыматтарга кирүү деңгээли.
-
Кардар катмары Java EE serverинен (орто катмар) маалыматтарды сураган тиркеме. Сервер өз кезегинде кардардын суроо-талабын иштеп чыгат жана ага жооп кайтарат. Кардар тиркемеси браузер, өз алдынча тиркеме (мобилдик же рабочий) же графикалык интерфейси жок башка serverдик тиркемелер болушу мүмкүн.
-
Орто деңгээл, өз кезегинде, веб-деңгээлге жана бизнес-логикалык деңгээлге бөлүнөт.
-
Веб катмар кардарлар менен бизнес-логикалык катмардын ортосундагы өз ара аракеттенүүнү камсыз кылган кээ бир компоненттерден турат.
Төмөнкү Java EE технологиялары веб деңгээлинде колдонулат:
- JavaServer Faces технологиясы (JSF);
- Java Server Pages (JSP);
- Expression Language (EL);
- Сервлеттер;
- Java EE (CDI) үчүн контексттер жана көз карандылык инъекциясы.
-
Бизнес-логикалык катмар тиркеменин бардык бизнес логикасын ишке ашыруучу компоненттерден турат. Бизнес логикасы – бул белгилүү бир бизнес чөйрөсүнүн (финансылык индустрия, банк иши, электрондук коммерция) муктаждыктарын камтыган функцияларды камсыз кылган code. Бул деңгээлди бүткүл системанын өзөгү деп эсептесе болот.
Бул деңгээлдеги технологиялар:
- Enterprise JavaBeans (EJB);
- JAX-RS RESTful веб кызматтары;
- Java Persistence API an objectилери;
- Java билдирүү кызматы.
-
-
Берorштерге жетүү деңгээли. Бул деңгээл кээде ишкананын маалымат системаларынын деңгээли (EIS) деп аталат. EIS ар кандай маалыматтар базасынын serverлеринен, ERP (Ишкананын ресурстарын пландаштыруу) ишкананын ресурстарын пландаштыруу системаларынан жана башка маалымат булактарынан турат. Бизнес логикалык катмар маалыматтар үчүн бул катмарга жетет.
Бул деңгээлде сиз төмөнкүдөй технологияларды таба аласыз:
- Java Database Connectivity API (JDBC);
- Java Persistence API;
- Java EE Connector Architecture;
- Java Transaction API (JTA).
Колдонмо serverлери, контейнерлер, компоненттер
Келгиле, Wikipediaдан Java EE аныктамасын карап көрөлү. Java EE – бул орто жана ири ишканалардын тапшырмалары үчүн serverдик платформанын архитектурасын сүрөттөгөн Java тor үчүн спецификациялардын жана тиешелүү documentтердин жыйындысы. Бул контекстте "спецификациялардын топтому" эмнени билдирерин жакшыраак түшүнүү үчүн, келгиле, Java интерфейсине окшоштуктарды көрөлү. Java интерфейсинин өзү функционалдуу эмес. Ал жөн гана кандайдыр бир функцияны ишке ашырган кандайдыр бир келишимди аныктайт. Бирок башка класстар интерфейсти ишке ашырышат. Мындан тышкары, бир интерфейсте бир нече ишке ашырылышы мүмкүн, алардын ар бири бири-биринен айрым деталдары боюнча айырмаланышы мүмкүн. спецификациясы менен баары так ошондой. Жылаңач Java EE бул жөн гана спецификациялардын жыйындысы. Бул спецификациялар ар кандай Java EE serverлери тарабынан ишке ашырылат. Java EE serverи Java EE платформасынын API'лерин ишке ашырган жана стандарттуу Java EE кызматтарын көрсөткөн serverдик тиркеме. Java EE serverлери кээде колдонмо serverлери деп аталат. Сервер маалыматтары тиркеме компоненттерин камтышы мүмкүн, алардын ар бири көп деңгээлдүү иерархияда өзүнүн деңгээлине туура келет. Java EE serverи бул компоненттерге контейнер түрүндө ар кандай кызматтарды көрсөтөт. Контейнерлер алар жайгаштырган компоненттер менен компонентти колдогон төмөнкү деңгээлдеги платформадан көз карандысыз функциянын ортосундагы интерфейс. Контейнерлер алар жайгаштырган компоненттерге белгилүү кызматтарды көрсөтөт. Мисалы, иштеп чыгуунун жашоо циклин башкаруу, көз карандылыкты инъекциялоо, параллелдүүлүк ж. Java EEде контейнерлердин төрт түрү бар:-
Апплет контейнерлери көпчүлүк браузерлер тарабынан ишке ашырылат. Апплеттерди иштеп чыгууда, сиз колдонмонун визуалдык жагына көңүл бурсаңыз болот, ал эми контейнер коопсуз чөйрөнү камсыз кылат.
-
Колдонмо Кардар Контейнери (ACC) Java класстарынын, китепканалардын жана Java SE тиркемелеринде инъекция, коопсуздукту башкаруу жана ат коюу кызматтары сыяктуу функцияларды ишке ашыруу үчүн зарыл болгон башка файлдардын топтомун камтыйт.
-
Веб-контейнер желе компоненттерин (сервлеттер, EJB Lite компоненттери, JSP баракчалары, чыпкалары, угуучулары, JSF баракчалары жана веб кызматтары) башкаруу жана аткаруу үчүн негизги кызматтарды камсыз кылат. Ал сервлеттерди инстанциялоо, инициализациялоо жана чакыруу жана HTTP жана HTTPS протоколдорун колдоо үчүн жооптуу. Бул контейнер кардардын браузерлерине веб-баракчаларды тейлөө үчүн колдонулат.
-
EJB (Enterprise Java Bean) контейнери колдонмонун бизнес логикалык катмарын камтыган EJB моделинин компоненттерин башкаруу жана аткаруу үчүн жооптуу. Ал жаңы EJB буурчак an objectтерин түзөт, алардын жашоо циклин башкарат жана транзакция, коопсуздук, параллелдүүлүк, бөлүштүрүү, ат коюу же асинхрондук чакыруу мүмкүнчүлүктөрү сыяктуу кызматтарды көрсөтөт.
-
Апплеттер браузерде иштеген графикалык колдонуучу интерфейси (GUI) тиркемелери. Алар күчтүү колдонуучу интерфейстерин өндүрүү үчүн бай Swing API колдонушат.
-
Тиркемелер - бул кардар тарапта иштеген программалар. Адатта, алар графикалык колдонуучу интерфейси (GUI) жана пакеттик иштетүү үчүн колдонулат.
-
Веб тиркемелери (сервлеттерден жана алардын чыпкаларынан, веб-окуя угуучуларынан, JSP жана JSF барактарынан турат) - веб-контейнерде иштейт жана веб кардарлардын HTTP сурамдарына жооп берет. Сервлеттер ошондой эле SOAP жана RESTful веб кызматынын акыркы чекиттерин колдойт.
-
Ишкана тиркемелери (Enterprise Java Beans, Java Message Service, Java Transaction API, Асинхрондук чалуулар, убакыт кызматтары менен курулган) EJB контейнеринде иштейт. Контейнер менен башкарылган EJBлер транзакциялык бизнес логикасын иштетишет. Аларга жергorктүү же алыстан RMI (же SOAP жана RESTful веб кызматтары үчүн HTTP) аркылуу кирүүгө болот.
Technologies
Ошентип, биз архитектураны иретке келтирдик. Жалпы структура ачык болушу керек. Архитектуралык компоненттерди баяндоо процессинде биз EJB, JSP ж.б. сыяктуу кээ бир Java EE технологияларына токтолдук. Келгиле, аларды кененирээк карап чыгалы. Төмөнкү tableда негизинен кардар деңгээлинде колдонулган технологиялар көрсөтүлгөн:Технология | Максат |
---|---|
Сервлеттер | Кардардын суроо-талаптарын динамикалык түрдө иштеп чыгуучу жана жоопторду жаратуучу Java класстары (көбүнчө HTML баракчалары). |
Java Server Faces (JSF) | Колдонуучу интерфейси менен веб-тиркемелерди куруу үчүн негиз. Колдонуучу интерфейсинин компоненттерин (мисалы, талаалар жана баскычтар) баракка кошууга, бул компоненттерди трансформациялоого жана текшерүүгө жана бул маалыматтарды serverдик сактагычта сактоого мүмкүндүк берет. |
Java Server Faces Facelet технологиясы | Бул JSP барактарынын ордуна XHTML баракчаларын колдонгон JSF тиркемесинин бир түрү |
Java server баракчалары (JSP) | Сервлеттерге түзүлгөн тексттик documentтер. Статикалык барактарга динамикалык мазмунду кошууга мүмкүндүк берет (мисалы, HTML баракчалары) |
Java server баракчаларынын стандарттык тег китепканасы (JSTL) | JSP баракчаларынын контекстинде негизги функцияларды камтыган тег китепканасы. |
Экспрессия тor | Java EE компоненттерине кирүү үчүн JSP жана Facelets баракчаларында колдонулган стандарттык тегдердин жыйындысы. |
Java EE (CDI) үчүн контексттер жана көз карандылык инъекциясы | Компоненттердин жашоо циклин башкаруу, ошондой эле компоненттерди коопсуз жол менен кардар an objectтерине инъекциялоо үчүн Java EE контейнерлери тарабынан сунушталган кызматтардын жыйындысын билдирет. |
Java Beans компоненттери | Колдонмо баракчалары үчүн убактылуу маалымат сактагыч катары иштеген an objectтер. |
Технология | Максат |
---|---|
Enterprise Java Beans (ишкана буурчак) компоненттери | EJB - бул колдонмонун негизги функцияларын камтыган башкарылуучу буурчак. |
JAX-RS RESTful веб кызматтары | Бул REST архитектуралык стorне ылайык веб-кызматтарды иштеп чыгуу үчүн API болуп саналат. |
JAX-WS желе кызматынын акыркы чекиттери | SOAP желе кызматтарын түзүү жана керектөө үчүн API. |
Java Persistence API (JPA) an objectтери | Берorштер дүкөндөрүндөгү маалыматтарга жетүү жана ал маалыматтарды Java программалоо тorнин an objectтерине жана тескерисинче айландыруу үчүн API. |
Java EE башкарган буурчак | Колдонмонун бизнес логикасын камсыз кылган, бирок EJB транзакциялык же коопсуздук өзгөчөлүктөрүн талап кылбаган башкарылуучу буурчактар. |
Java билдирүү кызматы | Java Message Service (JMS) API Java EE колдонмо компоненттерине билдирүүлөрдү түзүүгө, жөнөтүүгө, кабыл алууга жана окууга мүмкүндүк берген билдирүү стандарты болуп саналат. Бул компоненттердин ортосунда бөлүштүрүлгөн, ишенимдүү жана асинхрондук байланышты камсыз кылат. |
Технология | Максат |
---|---|
Java маалымат базасынын туташуусу API (JDBC) | Маалымат дүкөндөрүнөн берorштерге жетүү жана алуу үчүн төмөнкү деңгээлдеги API. JDBC типтүү колдонуу белгилүү бир маалымат базасына каршы SQL суроо жазуу болуп саналат. |
Java Persistence API | Берorштер дүкөндөрүндөгү маалыматтарга жетүү жана ал маалыматтарды Java программалоо тorнин an objectтерине жана тескерисинче айландыруу үчүн API. JDBCге салыштырмалуу бир топ жогорку деңгээлдеги API. JDBCтин бардык татаалдыгын капоттун астындагы иштеп чыгуучудан жашырат. |
Java EE туташтыргычынын архитектурасы | Башка корпоративдик ресурстарды туташтыруу үчүн API, мисалы:
|
Java Transaction API (JTA) | Транзакцияларды, анын ичинде бөлүштүрүлгөн транзакцияларды жана бир нече маалымат дүкөндөрүндөгү транзакцияларды аныктоо жана башкаруу үчүн API. |
GO TO FULL VERSION