Java EE 5: Күрделілігі аз қуат пен өнімділік

Новости мира

Java EE технологиясы масштабталатын, қуатты және портативті кәсіпорын қолданбаларын жасауға мүмкіндік беретін Java тіл платформасының кеңейтімі болып табылады. Ол қолданба құрамдастары үшін төрт контейнер түрін анықтайды: Web, Enterprise JavaBean (EJB), клиенттік қолданбалар және апплеттер. Бұл контейнерлер және олар қолдайтын Java API интерфейстері спецификацияға сәйкес келетін қолданбалар үшін сервердің тасымалдануын қамтамасыз ете отырып, Java EE өнім нарығында бәсекелестік тудыратын және қолдайтын Бағдарлама серверінің спецификациясында егжей-тегжейлі берілген (Java EE қысқаша тарихын бүйірлік тақтаны қараңыз).

Платформаның соңғы нұсқасы Java EE 5 2006 жылдың мамыр айында шығарылды. Ең алдымен әзірлеушілердің өнімділігіне бағытталған Java EE 5 платформаның қуаты мен функционалдығын бұзбай қарапайым бағдарламалау үлгісін ұсынады. Әзірлеу үлгілерін жеңілдету көп жағдайда екі механизммен қамтамасыз етіледі — Java аннотациялары және ақылға қонымды әдепкілер. Негізгі функционалдық жақсартулар веб-қызметтеріне кеңейтілген қолдауды және платформаға JavaServer Faces (JSF) және Java Standard Tag Library (JSTL) қосуды қамтиды.
Java EE-нің қысқаша тарихы

Java EE 5 Java Community Process арқылы JSR (Java Specification Request) қолшатыры ретінде шығарылды, ол өз кезегінде технологияның құрамдас бөліктерін егжей-тегжейлі сипаттайтын басқа спецификацияларға сілтеме жасайды (Ресурстарды қараңыз). Спецификацияның жетекші әзірлеушісі — Sun Microsystems компаниясынан Билл Шеннон, ол ірі IT-компаниялардың өкілдері мен жекелеген сарапшыларды қамтитын 31 мүшеден тұратын сарапшылар тобын басқарады. Java EE 5 ізашарлары:
J2EE 1.2 (1999 жылдың желтоқсанында шығарылған): Java 2 стандартты шығарылымынан (J2SE) кейінгі J2EE бірінші нұсқасы. Ол жалпы веб-деңгейді, бизнес логикасын, сақтау деңгейін және кәсіпорын қолданбалары үшін қажетті хабар алмасуды білдіретін 10 спецификация мен API интерфейсін қамтиды.

J2EE 1.3 (2001 жылдың қыркүйегінде шығарылған): JSR 28 ретінде шығарылды. Бұл нұсқа J2EE 1.2 техникалық сипаттамаларының шамамен жартысын жақсартады және XML API, Connector Architecture (JCA) және қауіпсіздік инфрақұрылымын қосады.

J2EE 1.4 (2003 жылдың қарашасында шығарылған): Бұл нұсқа J2EE 1.3 нұсқасында табылған 13 технологияның 9-ын жақсартады және веб-қызметтер мен қауіпсіздікке жаңа қолдауды қамтиды.

Java EE 5 – J2EE 1.4 нұсқасынан кейінгі келесі нұсқасы, себебі Sun атаудан 2-ні алып тастауды шешті (Java 1.2 «Java 2» деп өзгертілген кездегі қалдық) және енді қысқартылған «J» орнына «Java» сөзін пайдаланыңыз. технологияның атауы. Стандартты шығарылым қазір Java SE 6 (J2SE 1.6 емес) және Enterprise Edition Java EE 5 (J2EE 1.5 емес) деп аталады.

Бұл мақала Java EE 5 мүмкіндіктерін зерттейді және J2EE соңғы шығарылымынан бері орын алған өзгерістерді көрсетеді. (Бұл мақалада StaAX API, алдын ала жүктеу арқылы XML талдауға арналған API және көптеген API интерфейстерінің кейбір шағын немесе орташа жақсартулары сияқты инновациялар қамтылмайды.) Бұл мақала төрт негізгі санатқа толық шолу жасайды: веб-қызметтері, веб-қосымшалар, кәсіпорын қолданбалар, басқару және қауіпсіздік. Сондай-ақ, теорияға қосымша, мақалада Java EE 5 мүмкіндіктерін пайдаланатын шағын қолданба талқыланады және сервиске бағытталған архитектураны (SOA) пайдаланатын веб-қосымшаларды әзірлеу үлгісінің қарапайымдылығын көрсетеді.

Бұл мақала Java EE 5 жүйесін жан-жақты, жоғары деңгейде қарастырғысы келетін кәсіпорын бағдарламалық жүйелерімен таныс оқырмандарға арналған. Платформаның мүмкіндіктерін шолу үшін Java бағдарламалау тілін және J2EE тілін білу пайдалы, бірақ қажет емес. Үлгі қолданбаны талқылағанда, біз J2EE ішкі құрылғыларымен (немесе кем дегенде Java бағдарламалауымен) бұрыннан таныс адамдарға көбірек сәйкес келетін техникалық мәліметтерді зерттейміз.

Веб-қызметтердің технологиялары

Java EE 5 жүйесінде аннотацияларды енгізу арқылы әзірлеушілерге Java EE бұрынғы нұсқаларымен салыстырғанда аз кодтау және қысқа оқу қисығы бар күрделі веб-қызметтерді және клиенттік қолданбаларды жасау оңайырақ. Аннотациялар – Java SE 5-де алғаш рет енгізілген – кодқа метадеректер ретінде қосуға болатын модификаторлар. Олар бағдарлама семантикасына тікелей әсер етпейді, бірақ компилятор, әзірлеу құралдары және жұмыс уақыты кітапханалары оларды қосымша Java бастапқы файлдарын, XML құжаттарын және басқа артефактілерді жасау үшін және аннотациялары бар кодқа жаңа әрекетті қосу үшін пайдалана алады (бөлімді қараңыз). Ресурстар). Бұл мақалада біз кәдімгі Java класын веб-қызметке айналдыру үшін жай ғана аннотацияларды қосу қаншалықты оңай екенін көрсетеміз.

Веб-қызметтерді қолдау саласындағы серпіліс

Java EE 5 жүйесіндегі веб-қызметтерді қолдаудың негізі JAX-WS 2.0 болып табылады, ол JAX-RPC 1.1 қосымшасы болып табылады. Бұл технологиялардың екеуі де REST немесе SOAP архитектураларына негізделген веб-қызметтерді тікелей жалықтыратын XML өңдеуінсіз және веб-қызметтерге қажетті деректерді байланыстырусыз жасауға мүмкіндік береді. Әзірлеушілер JAX-RPC пайдалануды жалғастыра алады (ол әлі де Java EE 5 контейнерлері үшін қажет), бірақ JAX-WS жүйесіне көшу ұсынылады. Егер сіз веб-қызметтерді жаңадан бастасаңыз, JAX-RPC өткізіп жіберіп, бірден JAX-WS-ге назар аудара аласыз. Дегенмен, екеуі де HTTP 1.1 арқылы SOAP 1.1 нұсқасын қолдайтынын және толық үйлесімді екенін есте ұстаған жөн: JAX-WS веб-қызметінің клиенті JAX-RPC веб-қызметінің соңғы нүктесіне қол жеткізе алады және керісінше.

JAX-WS-тің JAX-RPC-тен артықшылықтары бар, атап айтқанда:
SOAP 1.2 стандартын қолдайды (SOAP 1.1-ге қосымша).

HTTP арқылы XML қолдайды. Қаласаңыз, SOAP қолданбай мүлдем жасай аласыз (қосымша ақпаратты «Веб қызметтері үшін HTTP арқылы тікелей XML пайдалану (тиісті болған жағдайда)» мақаласын қараңыз).

Модельге деректерді байланыстыру үшін Java архитектурасын XML Binding (JAXB) пайдаланады. JAXB XML схемасын толығымен қолдайды және жоғары өнімділікке ие (бұл туралы кейінірек).

Сервер мен клиент үшін динамикалық бағдарламалау үлгісін енгізеді. Клиент үлгісі хабарлама тәсілі мен асинхронды тәсілді қолдайды.

Хабарды жіберуді оңтайландыру механизмін (MTOM) қолдайды. MTOM SOAP хабарламаларының берілуі мен пішімін оңтайландыру үшін W3C арқылы ұсынылады.

Кросс-платформалық веб-қызметтердің өзара әрекеттесуіне (WS-I) жақсартылған қолдауды қамтамасыз етеді. (Негізгі профиль 1.1 нұсқасына қолдау көрсетіледі; JAX-WS тек Негізгі профиль 1.0 нұсқасына қолдау көрсетеді.).

SOAP тіркемелері үшін жақсартылған қолдауды қамтамасыз етеді. (Java үшін Attachments API бар SOAP арқылы пайдаланылады [SAAJ] 1.3; JAX-WS тек SAAJ 1.2.).

JAX-RPC және JAX-WS мақаласынан айырмашылықтар туралы көбірек біле аласыз.

JAX-WS жүйесіндегі wsimport құралы көптеген веб-қызмет әзірлеу мәліметтерін автоматты түрде қамтамасыз етеді және әзірлеушіге қызметті жүзеге асыратын немесе тұтынатын қолданбаның логикасын жүзеге асыруға назар аударуға мүмкіндік беретін кез келген платформада құрастыру процесіне оңай біріктірілуі мүмкін. Ол қызметтер, соңғы нүкте интерфейстері (SEI), асинхронды жауап коды, WSDL қателеріне негізделген ерекшеліктер және JAXB арқылы схема түрлеріне байланыстырылған Java сыныптары сияқты артефактілерді жасайды.

JAX-WS сонымен қатар өнімділігі жоғары веб-қызметтерді жасауға мүмкіндік береді. Жаңа JAX-WS стекіне (веб-қызметтерге арналған басқа Java EE 5 мүмкіндіктерін пайдаланады – JAXB және StAX) негізделген баламалы веб-қызметтерді енгізуді салыстырмалы зерттеу үшін Ресурстардағы «JAX-WS 2.0 көмегімен жоғары өнімді веб-қызметтерді енгізу» бөлімін қараңыз және JAX-RPC стек J2EE 1.4. Зерттеу JAX-WS көмегімен өнімділікті арттыру функционалдық аймаққа және жұмыс жүктемесіне байланысты 40% және 1000% арасында болатынын анықтады.

Басында

Веб қолданбалы технологиялар

Java EE 5 жүйесінде бар JavaServer Pages және Servlet спецификацияларына қоса, веб-қосымшалардың алдыңғы жағын әзірлеуге арналған технологияларға JSF және JSTL екі маңызды бөлік қосылды. JSF – пайдаланушы интерфейстерін әзірлеу кезінде құрамдасқа бағытталған тәсілді қабылдауға мүмкіндік беретін бағдарламалау интерфейстерінің (API) жиынтығы. JSTL — процедуралық логиканы ендіруді, JavaBeans және SQL пәрмендеріне қол жеткізуді, локализацияланған пішімдеу нұсқауларын және JSP XML өңдеуді қолдайтын тегтер кітапханаларының жиынтығы. JSF, JSTL және JSP ең соңғы нұсқалары Бірыңғай өрнек тілін (EL) қолдайды, бұл осы технологияларды біріктіруді жеңілдетеді (Ресурстарды қараңыз).

JSF 1.2

JSF құрамдас күйін басқару, оқиғаларды өңдеу, навигация, пайдаланушы енгізуін тексеру, интернационалдандыру сияқты жалпы пайдаланушы интерфейсін құру мәселелеріне кіріктірілген қолдауға ие. Тәжірибелі әзірлеушілер өздерінің күшті және қайта пайдалануға болатын құрамдастарын және веб-шолғыш емес клиенттік құрылғылар үшін көрсету ережелерін жасай алады. Аз техникалық пайдаланушылар Sun’s Java Studio Creator сияқты визуалды бағдарламалау орталарында HTML интерфейстері үшін JSF тегтер кітапханасына әдепкі бойынша енгізілген теңшелетін құрамдастарды қайта пайдалана алады. Бұл жаңадан бастаған бағдарламашыларға заманауи веб-интерфейстерді жасауға мүмкіндік береді.

Ашық бастапқы қауымдастықтардан және лицензияланған бағдарламалық жасақтама индустриясынан үшінші тараптар жазған JSF құрамдастары барған сайын көбейіп келеді. Интернетте «JSF компоненттері» немесе «JSF компоненттерінің кітапханалары» іздеу арқылы көптеген кітапханаларды табуға болады. Бұл компоненттердің көпшілігі Web 2.0 тәсілінің қозғаушы күші болып табылатын асинхронды JavaScript + XML (AJAX) көмегімен жұмыс істейді. Веб-бағдарламашылар оларды Ajax құрамдастарын нөлден жазудың қосымша жұмысын болдырмай, дәстүрлі веб-қосымшаларға қарағанда күштірек қосымшаларды жасау үшін пайдалана алады.

JSP 2.1

JSP технологиясы 1.2 нұсқасынан бастап J2EE бөлігі болды. Ол декларативті пайдаланушы интерфейсінің бағдарламалау мүмкіндіктерімен Java Servlet спецификациясын кеңейтеді. JSP сұрауларды өңдеу үшін веб-бағдарлама контейнері арқылы Java сервлеттеріне аударылатын, құрастырылатын және шақырылатын құжаттар ретінде пайдаланушы интерфейстерін бағдарламалауға қолдау көрсетеді. Бұл құжаттар әдетте JSP директивалары мен скрипттерді HTML сияқты белгілеу тілімен біріктіреді. JSP құжаттары — деп басталатын арнайы тегтерге негізделген ескі синтаксисті немесе жақсы қалыптасқан XML жаңа синтаксисін пайдалана алады. Олар үлгі-көрініс-контроллер (MVC) үлгісіне негізделген пайдаланушы интерфейсіндегі көріністің бөлігі ретінде пайда болады.

JSP 2.1 және JSF 1.2 алдыңғы нұсқаларға қарағанда бір-бірімен үйлесімді, ең алдымен олардың өрнек тілдерінің синтаксисінің бірыңғай EL-ге интеграциялануына байланысты. Бұл EL келесі операцияларды орындауға мүмкіндік береді:
Сұрауда, пайдаланушы сеансында және қолданбалы контексттерде JavaBeans сипаттарына қатынасу.
Белгілі бір элементті жасыру немесе көрсету керектігін анықтайтын логикалық шарттарды тексеру.
Пайдаланушы интерфейсінде көрсетілетін сандар мен жолдарға әсер ететін есептеулерді орындаңыз.

Бұрын JSP және JSF EL синтаксисі және контейнерлер оларды қалай өңдейтіні арасында айырмашылықтар болды. Unified EL бұл айырмашылықтарды жояды және сонымен қатар келесідей мүмкіндіктерді қосады:
EL интерпретациясын теңшеу үшін өзгертілетін құрылым.
JSP тег өңдеушісі қажетінше орындалатын кейінге қалдырылған өрнектерді қолдау.
Мысалы, JSP кодынан JavaBean сипатының мәнін орнату үшін EL өрнектерін пайдалана алатын тағайындау операцияларын қолдау.

JSP тегтер кітапханасын әзірлеушілер үшін үлкен олжа — аннотацияларды пайдалана отырып, тег өңдеушілеріне ресурстарды қосуды қолдау. Бұл бұрын JNDI іздеулерін орындау үшін ресурстарды және кодты конфигурациялауды қажет ететін тегтерді айтарлықтай жеңілдетеді.