Java EE - бұл не?
Java EE – кең ауқымды, көп деңгейлі, масштабталатын, сенімді және қауіпсіз желілік қосымшаларды әзірлеу және іске қосу үшін API және орындау ортасын қамтамасыз ететін Java SE үстіне құрылған платформа. Мұндай қолданбалар кәсіпорынның қосымшалары деп аталады, өйткені олар ірі кәсіпорындардың алдында тұрған мәселелерді шешеді. Дегенмен, бұл қолданбалардың түрлерінен және Java EE ұсынатын артықшылықтардан тек ірі корпорациялар мен мемлекеттік мекемелер ғана емес. Java EE платформасы ұсынатын шешімдер жеке әзірлеушілер мен шағын ұйымдар үшін пайдалы, ал кейде жай ғана қажет.Java EE әзірлеу
Java EE 1998 жылы құрылған Java Community Process (JCP) арқылы жасалған. Ол мүдделі тұлғаларға Java тілі платформасының техникалық сипаттамаларының болашақ нұсқаларын қалыптастыруға қатысуға мүмкіндік береді. Бұл процестің негізі JSR (Java Specification Request) болып табылады, Java платформасына қосу ұсынылатын спецификациялар мен технологияларды сипаттайтын ресми құжаттар. Мұндай сұраныстарды қауымдастық мүшелері – қарапайым әзірлеушілер мен компаниялар жасайды. Соңғыларына Oracle, Red Hat, IBM, Apache және басқалары кіреді. Анау. жігіттер Java-ға қосқысы келетін жаңа мүмкіндіктер мен жақсы нәрселерді ұсынады. Содан кейін олар дауыс беруді өткізеді, соның негізінде келесі нұсқаға нені енгізу туралы шешім қабылданады. 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і (немесе қолданбалы server) бар, оның ішінде құрамдас контейнерлері орналасқан. Бұл контейнерлерде (бинго!) құрамдас бөліктер бар.
Қолдану деңгейлері
Көп деңгейлі қосымшалар – функционалдық принциптері бойынша оқшауланған модульдерге (деңгейлер, қабаттар) бөлінген қолданбалы қолданбалар. Әдетте (соның ішінде Java EE әзірлеу контекстінде) кәсіпорын қолданбалары үш деңгейге бөлінеді:- клиент;
- орташа деңгей;
- деректерге қол жеткізу деңгейі.
-
Клиенттік деңгей Java EE serverінен деректерді сұрайтын қолданба (ортаңғы деңгей). Сервер өз кезегінде клиенттің сұранысын өңдейді және оған жауап қайтарады. Клиент қосымшасы браузер, дербес қолданба (мобильді немесе жұмыс үстелі) немесе графикалық интерфейсі жоқ басқа serverлік қолданбалар болуы мүмкін.
-
Орта деңгей, өз кезегінде, веб-деңгейге және бизнес-логикалық деңгейге бөлінеді.
-
Веб-деңгей клиенттер мен бизнес-логикалық деңгей арасындағы өзара әрекеттесуді қамтамасыз ететін кейбір құрамдас бөліктерден тұрады.
Веб деңгейінде келесі Java EE технологиялары қолданылады:
- JavaServer Faces технологиясы (JSF);
- Java server беттері (JSP);
- Экспрессия тілі (EL);
- Сервлеттер;
- Java EE (CDI) үшін мәтінмәндер және тәуелділік инъекциясы.
-
Іскерлік логикалық деңгей қолданбаның барлық бизнес логикасын жүзеге асыратын компоненттерден тұрады. Бизнес логикасы – бұл белгілі бір бизнес саласының (қаржы индустриясы, банк ісі, электрондық коммерция) қажеттіліктерін қамтитын функционалдылықты қамтамасыз ететін code. Бұл деңгейді бүкіл жүйенің өзегі деп санауға болады.
Осы деңгейде қолданылатын технологиялар:
- Enterprise JavaBeans (EJB);
- JAX-RS RESTful веб-қызметтері;
- Java Persistence API нысандары;
- Java хабарлама қызметі.
-
-
Деректерге қол жеткізу деңгейі. Бұл деңгей кейде кәсіпорынның ақпараттық жүйелерінің деңгейі (EIS) деп аталады. EIS әр түрлі дерекқор serverлерінен, ERP (Enterprise Resource Planning) кәсіпорын ресурстарын жоспарлау жүйелерінен және басқа деректер көздерінен тұрады. Бизнес логикалық деңгей деректер үшін осы деңгейге қатынасады.
Бұл деңгейде сіз келесідей технологияларды таба аласыз:
- Java Database Connectivity API (JDBC);
- Java Persistence API;
- Java EE қосқышының архитектурасы;
- Java Transaction API (JTA).
Қолданбалы serverлер, контейнерлер, компоненттер
Уикипедиядан Java EE анықтамасын қарастырайық. Java EE – орта және ірі кәсіпорындардың тапсырмалары үшін serverлік платформаның архитектурасын сипаттайтын Java тіліне арналған спецификациялар мен сәйкес құжаттамалар жиынтығы. Осы контексте «спецификациялар жинағы» нені білдіретінін жақсырақ түсіну үшін Java интерфейсімен ұқсастықты салайық. Java интерфейсінің өзі функционалдылыққа ие емес. Ол жай ғана кейбір функционалдылық жүзеге асырылатын кейбір келісімшартты анықтайды. Бірақ басқа сыныптар интерфейсті жүзеге асырады. Сонымен қатар, бір интерфейсте бірнеше іске асыру болуы мүмкін, олардың әрқайсысы бір-бірінен кейбір бөлшектермен ерекшеленуі мүмкін. Спецификациямен бәрі бірдей. Naked Java EE - бұл жай ғана техникалық сипаттамалар жиынтығы. Бұл сипаттамалар әртүрлі Java EE serverлері арқылы жүзеге асырылады. Java EE serverі Java EE платформасының API интерфейстерін жүзеге асыратын және стандартты Java EE қызметтерін ұсынатын serverлік қолданба болып табылады. Java EE serverлерін кейде қолданбалы serverлер деп те атайды. Сервер деректері көп деңгейлі иерархияда әрқайсысы өз деңгейіне сәйкес келетін қолданба компоненттерін қамтуы мүмкін. Java EE serverі бұл компоненттерге контейнер түрінде әртүрлі қызметтерді ұсынады. Контейнерлер олар орналастыратын құрамдас бөліктер мен құрамдасқа қолдау көрсететін төмен деңгейлі платформаға тәуелсіз функционалдық арасындағы интерфейс болып табылады. Контейнерлер орналасатын құрамдастарға арнайы қызметтерді ұсынады. Мысалы, әзірлеудің өмірлік циклін басқару, тәуелділікті енгізу, параллельдік және т.б.. Контейнерлер техникалық күрделілікті жасырады және тасымалдануды арттырады. Java EE-де контейнерлердің төрт түрі бар:-
Апплет контейнерлерін браузерлердің көпшілігі жүзеге асырады. Апплеттерді әзірлеу кезінде сіз қолданбаның көрнекі жағына назар аудара аласыз, ал контейнер қауіпсіз ортаны қамтамасыз етеді.
-
Application Client Container (ACC) Java SE қолданбаларында енгізу, қауіпсіздікті басқару және атау қызметтері сияқты мүмкіндіктерді іске асыру үшін қажетті Java сыныптарының, кітапханалардың және басқа файлдардың жинағын қамтиды.
-
Веб-контейнер веб-құрамдастарды (сервлеттер, EJB Lite құрамдастары, JSP беттері, сүзгілер, тыңдаушылар, JSF беттері және веб қызметтері) басқару және орындау үшін негізгі қызметтерді ұсынады. Ол сервлеттерді құруға, инициализациялауға және шақыруға және HTTP және HTTPS протоколдарын қолдауға жауап береді. Бұл контейнер клиент браузерлеріне веб-беттерге қызмет көрсету үшін пайдаланылады.
-
EJB (Enterprise Java Bean) контейнері қолданбаның іскери логикалық деңгейін қамтитын EJB үлгі құрамдастарын басқаруға және орындауға жауапты. Ол жаңа EJB бұршақ нысандарын жасайды, олардың өмірлік циклін басқарады және транзакция, қауіпсіздік, параллельдік, тарату, атау немесе асинхронды шақыру мүмкіндіктері сияқты қызметтерді ұсынады.
-
Апплеттер – браузерде жұмыс істейтін графикалық пайдаланушы интерфейсі (GUI) қолданбалары. Олар қуатты пайдаланушы интерфейстерін жасау үшін бай Swing API пайдаланады.
-
Қолданбалар - бұл клиент жағында жұмыс істейтін бағдарламалар. Әдетте олар графикалық пайдаланушы интерфейсі (GUI) және пакеттік өңдеу үшін пайдаланылады.
-
Веб-қосымшалар (сервлеттерден және олардың сүзгілерінен, веб-оқиға тыңдаушыларынан, JSP және JSF беттерінен тұрады) - веб-контейнерде іске қосылады және веб-клиенттерден HTTP сұрауларына жауап береді. Сервлеттер сонымен қатар SOAP және RESTful веб-қызметінің соңғы нүктелерін қолдайды.
-
Кәсіпорын қолданбалары (Enterprise Java Beans, Java Message Service, Java Transaction API, асинхронды қоңыраулар, уақыт қызметтерімен құрастырылған) EJB контейнерінде жұмыс істейді. Контейнермен басқарылатын EJB транзакциялық бизнес логикасын өңдейді. Оларға RMI (немесе SOAP және RESTful веб қызметтері үшін HTTP) арқылы жергілікті немесе қашықтан қол жеткізуге болады.
Технологиялар
Сонымен, біз архитектураны сұрыптадық. Жалпы құрылым анық болуы керек. Архитектуралық компоненттерді сипаттау барысында біз EJB, JSP және т.б. сияқты кейбір Java EE технологияларына тоқталдық. Оларды толығырақ қарастырайық. Төмендегі кестеде негізінен клиент деңгейінде қолданылатын технологиялар көрсетілген:Технология | Мақсат |
---|---|
Сервлеттер | Клиент сұрауларын динамикалық өңдейтін және жауаптарды генерациялайтын Java сыныптары (әдетте HTML беттері). |
Java server беттері (JSF) | Пайдаланушы интерфейсі бар веб-қосымшаларды құруға арналған құрылым. Бетке пайдаланушы интерфейсінің құрамдастарын (мысалы, өрістер мен түймелер) қосуға, осы құрамдастарды түрлендіруге және тексеруге және бұл деректерді serverлік жадта сақтауға мүмкіндік береді. |
Java Server Faces Facelet технологиясы | Бұл JSP беттерінің орнына XHTML беттерін пайдаланатын JSF қолданбасының ішкі түрі |
Java server беттері (JSP) | Сервлеттерге жинақталған мәтіндік құжаттар. Тұрақты беттерге (HTML беттері сияқты) динамикалық мазмұн қосуға мүмкіндік береді. |
Java server беттерінің стандартты тегтер кітапханасы (JSTL) | JSP беттерінің контекстіндегі негізгі функцияларды инкапсуляциялайтын тегтер кітапханасы. |
Экспрессия тілі | Java EE құрамдастарына қол жеткізу үшін JSP және Facelets беттерінде қолданылатын стандартты тегтер жинағы. |
Java EE (CDI) үшін мәтінмәндер және тәуелділік инъекциясы | Компоненттердің өмірлік циклін басқаруға, сондай-ақ құрамдастарды клиенттік нысандарға қауіпсіз жолмен енгізуге арналған Java EE контейнерлері ұсынатын қызметтер жиынтығын білдіреді. |
Java Beans компоненттері | Қолданба беттері үшін деректерді уақытша сақтау орны ретінде әрекет ететін нысандар. |
Технология | Мақсат |
---|---|
Enterprise Java Beans (кәсіпорындық бұршақ) құрамдастары | EJB - қолданбаның негізгі функцияларын қамтитын басқарылатын бұршақтар. |
JAX-RS RESTful веб-қызметтері | Бұл REST архитектуралық стиліне сәйкес веб-қызметтерді әзірлеуге арналған API. |
JAX-WS веб-қызметінің соңғы нүктелері | SOAP веб-қызметтерін жасауға және тұтынуға арналған API. |
Java Persistence API (JPA) нысандары | Деректер қоймаларындағы деректерге қол жеткізуге және сол деректерді Java бағдарламалау тілінің нысандарына және керісінше түрлендіруге арналған API. |
Java EE басқарылатын бұршақтар | Қолданбаның бизнес логикасын қамтамасыз ететін, бірақ EJB транзакциялық немесе қауіпсіздік мүмкіндіктерін талап етпейтін басқарылатын бұршақтар. |
Java хабарлама қызметі | Java Message Service (JMS) API Java EE қолданбасының құрамдастарына хабарларды жасауға, жіберуге, қабылдауға және оқуға мүмкіндік беретін хабар алмасу стандарты болып табылады. Бұл компоненттер арасындағы бөлінген, сенімді және асинхронды байланысты қамтамасыз етеді. |
Технология | Мақсат |
---|---|
Java Database Connectivity API (JDBC) | Деректер қоймаларынан деректерге қол жеткізуге және алуға арналған төменгі деңгейлі API. JDBC-ті әдеттегі пайдалану белгілі бір дерекқорға қарсы SQL сұрауларын жазу болып табылады. |
Java Persistence API | Деректер қоймаларындағы деректерге қол жеткізуге және сол деректерді Java бағдарламалау тілінің нысандарына және керісінше түрлендіруге арналған API. JDBC-пен салыстырғанда әлдеқайда жоғары деңгейлі API. JDBC-тің барлық күрделілігін сорғыштың астындағы әзірлеушіден жасырады. |
Java EE қосқышының архитектурасы | Басқа корпоративтік ресурстарды қосуға арналған API, мысалы:
|
Java Transaction API (JTA) | Бірнеше деректер қоймаларында таратылған транзакциялар мен транзакцияларды қоса, транзакцияларды анықтауға және басқаруға арналған API. |
GO TO FULL VERSION