Java EE - ano ito?
Ang Java EE ay isang platform na binuo sa ibabaw ng Java SE na nagbibigay ng isang API at runtime na kapaligiran para sa pagbuo at pagpapatakbo ng malakihan, multi-tier, scalable, maaasahan, at secure na mga application ng network. Ang ganitong mga aplikasyon ay tinatawag na mga aplikasyon ng negosyo dahil nalulutas nila ang mga problemang kinakaharap ng malalaking negosyo. Gayunpaman, ang malalaking korporasyon at ahensya ng gobyerno ay hindi lamang ang maaaring makinabang mula sa mga naturang aplikasyon at ang mga benepisyong ibinibigay ng Java EE. Ang mga solusyon na inaalok ng platform ng Java EE ay kapaki-pakinabang, at kung minsan ay kailangan lang, para sa mga indibidwal na developer at maliliit na organisasyon.Pag-unlad ng Java EE
Ang Java EE ay binuo sa pamamagitan ng Java Community Process (JCP), na nabuo noong 1998. Nagbibigay-daan ito sa mga interesadong partido na lumahok sa paghubog ng mga hinaharap na bersyon ng mga detalye ng platform ng wikang Java. Ang batayan ng prosesong ito ay ang JSR (Java Specification Request), mga pormal na dokumento na naglalarawan sa mga detalye at teknolohiya na iminungkahing idagdag sa Java platform. Ang mga naturang kahilingan ay ginawa ng mga miyembro ng komunidad - mga ordinaryong developer at kumpanya. Kasama sa huli ang Oracle, Red Hat, IBM, Apache at marami pang iba. Yung. ang mga lalaki ay nagmumungkahi ng mga bagong feature at goodies para sa pagsasaalang-alang na gusto nilang isama sa Java. At pagkatapos ay humawak sila ng isang boto, sa batayan kung saan ang isang desisyon ay ginawa sa kung ano ang isasama sa susunod na bersyon. Ang kasaysayan ng bersyon ng Java EE ay ganito:- J2EE 1.2 (Disyembre 1999)
- J2EE 1.3 (Setyembre 2001)
- J2EE 1.4 (Nobyembre 2003)
- Java EE 5 (Mayo 2006)
- Java EE 6 (Disyembre 2009)
- Java EE 7 (Mayo)
- Java EE 8 (Agosto 2017)
- Jakarta EE 8 (Setyembre 2019)
Arkitektura ng Application ng Java EE
Isang maikling pagpapakilala. Upang gawing mas madaling maunawaan, pag-usapan natin ang tungkol sa istruktura ng mga aplikasyon ng Java EE at ilan sa mga terminong gagamitin pa natin. Ang mga application ng Java EE ay may istraktura na may dalawang pangunahing katangian:- Una, multi-level. Ang mga aplikasyon ng Java EE ay multi-tiered, at pag-uusapan natin ito nang mas detalyado sa ibang pagkakataon;
- pangalawa, pugad. Mayroong Java EE server (o application server), na may mga bahaging lalagyan na matatagpuan sa loob nito. Ang mga lalagyang ito ay naglalaman ng (bingo!) na mga bahagi.
Mga antas ng aplikasyon
Ang mga multi-tier na application ay mga application na hinati ayon sa mga functional na prinsipyo sa mga nakahiwalay na module (mga antas, mga layer). Karaniwan (kabilang sa konteksto ng Java EE development), nahahati ang mga enterprise application sa tatlong antas:- kliyente;
- average na antas;
- antas ng pag-access ng data.
-
Ang client layer ay isang application na humihiling ng data mula sa Java EE server (gitnang layer). Ang server, sa turn, ay nagpoproseso ng kahilingan ng kliyente at nagbabalik ng tugon dito. Ang application ng kliyente ay maaaring isang browser, isang standalone na application (mobile o desktop), o iba pang mga application ng server na walang graphical na interface.
-
Ang gitnang antas ay nahahati, sa turn, sa antas ng web at antas ng lohika ng negosyo.
-
Ang web layer ay binubuo ng ilang bahagi na nagbibigay ng pakikipag-ugnayan sa pagitan ng mga kliyente at ng business logic layer.
Ang mga sumusunod na teknolohiya ng Java EE ay ginagamit sa antas ng web:
- teknolohiya ng JavaServer Faces (JSF);
- Mga Pahina ng Java Server (JSP);
- Expression Language (EL);
- Mga Servlet;
- Mga Konteksto at Dependency Injection para sa Java EE (CDI).
-
Ang business logic layer ay binubuo ng mga bahagi na nagpapatupad ng lahat ng business logic ng application. Ang logic ng negosyo ay code na nagbibigay ng functionality na sumasaklaw sa mga pangangailangan ng ilang partikular na lugar ng negosyo (industriya ng pananalapi, pagbabangko, e-commerce). Ang antas na ito ay maaaring ituring na core ng buong sistema.
Mga teknolohiyang kasangkot sa antas na ito:
- Enterprise JavaBeans (EJB);
- JAX-RS RESTful web services;
- Mga entity ng Java Persistence API;
- Java Message Service.
-
-
Antas ng pag-access ng data. Ang antas na ito ay kung minsan ay tinatawag na antas ng enterprise information system (EIS). Ang EIS ay binubuo ng iba't ibang database server, ERP (Enterprise Resource Planning) enterprise resource planning system at iba pang data source. Ina-access ng business logic layer ang layer na ito para sa data.
Sa antas na ito makakahanap ka ng mga teknolohiya tulad ng:
- Java Database Connectivity API (JDBC);
- Java Persistence API;
- Arkitektura ng Java EE Connector;
- Java Transaction API (JTA).
Mga server ng application, mga lalagyan, mga bahagi
Tingnan natin ang kahulugan ng Java EE mula sa Wikipedia. Ang Java EE ay isang hanay ng mga detalye at kaugnay na dokumentasyon para sa wikang Java, na naglalarawan sa arkitektura ng platform ng server para sa mga gawain ng katamtaman at malalaking negosyo. Upang mas maunawaan kung ano ang ibig sabihin ng "set ng mga detalye" sa kontekstong ito, gumuhit tayo ng pagkakatulad sa isang Java interface. Ang Java interface mismo ay walang functionality. Tinutukoy lamang nito ang ilang kontrata ayon sa kung saan ipinatupad ang ilang functionality. Ngunit ang ibang mga klase ay nagpapatupad ng interface. Bukod dito, ang isang interface ay maaaring magkaroon ng ilang mga pagpapatupad, ang bawat isa ay maaaring magkaiba sa bawat isa sa ilang mga detalye. Sa pagtutukoy ang lahat ay eksaktong pareho. Ang Naked Java EE ay isang hanay lamang ng mga detalye. Ang mga pagtutukoy na ito ay ipinatupad ng iba't ibang mga server ng Java EE. Ang Java EE server ay isang server application na nagpapatupad ng mga Java EE platform API at nagbibigay ng mga karaniwang serbisyo ng Java EE. Ang mga server ng Java EE ay tinatawag na mga server ng aplikasyon. Maaaring maglaman ang data ng server ng mga bahagi ng application, na ang bawat isa ay tumutugma sa sarili nitong antas sa isang multi-level na hierarchy. Ang Java EE server ay nagbibigay ng iba't ibang serbisyo sa mga bahaging ito sa anyo ng isang lalagyan. Ang mga container ay ang interface sa pagitan ng mga bahagi na kanilang hino-host at ang mababang antas na paggana ng platform-independent na sumusuporta sa bahagi. Ang mga container ay nagbibigay ng mga partikular na serbisyo sa mga sangkap na kanilang na-host. Halimbawa, ang pamamahala sa lifecycle ng development, dependency injection, concurrency, atbp. Itinatago ng mga container ang teknikal na kumplikado at pinapataas ang portability. Mayroong apat na iba't ibang uri ng mga lalagyan sa Java EE :-
Ang mga lalagyan ng Applet ay ipinapatupad ng karamihan sa mga browser. Kapag bumubuo ng mga applet, maaari kang tumutok sa visual na bahagi ng application, habang ang lalagyan ay nagbibigay ng isang secure na kapaligiran.
-
Ang Application Client Container (ACC) ay naglalaman ng isang hanay ng mga Java class, library, at iba pang file na kailangan para ipatupad ang mga feature gaya ng injection, security management, at pagbibigay ng pangalan sa mga application ng Java SE.
-
Ang lalagyan ng web ay nagbibigay ng mga pangunahing serbisyo para sa pamamahala at pagpapatupad ng mga bahagi ng web (mga servlet, mga bahagi ng EJB Lite, mga pahina ng JSP, mga filter, mga tagapakinig, mga pahina ng JSF, at mga serbisyo sa web). Responsable ito sa pag-instantiate, pagsisimula at pag-invoke ng mga servlet, at pagsuporta sa mga protocol ng HTTP at HTTPS. Ang lalagyan na ito ay ginagamit upang maghatid ng mga web page sa mga browser ng kliyente.
-
Ang EJB (Enterprise Java Bean) container ay may pananagutan sa pamamahala at pagpapatupad ng mga bahagi ng modelo ng EJB na naglalaman ng business logic layer ng application. Lumilikha ito ng mga bagong EJB bean entity, pinamamahalaan ang kanilang lifecycle, at nagbibigay ng mga serbisyo tulad ng transaksyon, seguridad, concurrency, pamamahagi, pagbibigay ng pangalan, o mga kakayahan sa asynchronous na invocation.
-
Ang mga Applet ay mga graphical user interface (GUI) na mga application na tumatakbo sa isang browser. Ginagamit nila ang mayamang Swing API upang makabuo ng mga mahuhusay na interface ng gumagamit.
-
Ang mga application ay mga program na tumatakbo sa panig ng kliyente. Ang mga ito ay karaniwang graphical user interface (GUI) at ginagamit para sa batch processing.
-
Mga web application (binubuo ng mga servlet at mga filter ng mga ito, mga tagapakinig ng kaganapan sa web, mga pahina ng JSP at JSF) - tumatakbo sa isang lalagyan ng web at tumugon sa mga kahilingan ng HTTP mula sa mga web client. Sinusuportahan din ng mga Servlet ang SOAP at RESTful na mga endpoint ng serbisyo sa web.
-
Ang mga enterprise application (built with Enterprise Java Beans, Java Message Service, Java Transaction API, Asynchronous Calls, Time Services) ay tumatakbo sa isang EJB container. Pinangangasiwaan ng mga EJB na pinamamahalaan ng container ang transactional business logic. Maa-access ang mga ito sa lokal man o malayuan sa pamamagitan ng RMI (o HTTP para sa SOAP at RESTful na mga serbisyo sa web).
Mga teknolohiya
Kaya, inayos namin ang arkitektura. Ang pangkalahatang istraktura ay dapat na malinaw. Sa proseso ng paglalarawan ng mga bahagi ng arkitektura, hinawakan namin ang ilang mga teknolohiya ng Java EE tulad ng EJB, JSP, atbp. Tingnan natin ang mga ito nang mas malapitan. Ipinapakita ng talahanayan sa ibaba ang mga teknolohiyang pangunahing ginagamit sa antas ng kliyente:Teknolohiya | Layunin |
---|---|
Mga Servlet | Mga klase ng Java na dynamic na nagpoproseso ng mga kahilingan ng kliyente at bumubuo ng mga tugon (karaniwan ay mga HTML na pahina). |
Java Server Faces (JSF) | Isang balangkas para sa pagbuo ng mga web application na may user interface. Binibigyang-daan kang magsama ng mga bahagi ng user interface (halimbawa, mga field at button) sa isang page, ibahin ang anyo at patunayan ang mga bahaging ito, at iimbak ang data na ito sa storage sa gilid ng server. |
Ang teknolohiya ng Java Server Faces Facelets | Ito ay isang subtype ng JSF application na gumagamit ng XHTML page sa halip na JSP page |
Java Server Pages (JSP) | Mga tekstong dokumento na pinagsama-sama sa mga servlet. Binibigyang-daan kang magdagdag ng dynamic na nilalaman sa mga static na pahina (tulad ng mga HTML na pahina) |
Java Server Pages Standard Tag Library (JSTL) | Isang tag library na sumasaklaw sa pangunahing functionality sa konteksto ng mga JSP page. |
Wikang Pagpapahayag | Isang hanay ng mga karaniwang tag na ginagamit sa mga pahina ng JSP at Facelets upang ma-access ang mga bahagi ng Java EE. |
Mga Konteksto at Dependency Injection para sa Java EE (CDI) | Kinakatawan ang isang hanay ng mga serbisyong ibinibigay ng mga container ng Java EE para sa pamamahala sa siklo ng buhay ng mga bahagi, pati na rin ang pag-inject ng mga bahagi sa mga bagay ng kliyente sa isang secure na paraan. |
Mga Bahagi ng Java Beans | Mga bagay na nagsisilbing pansamantalang imbakan ng data para sa mga pahina ng application. |
Teknolohiya | Layunin |
---|---|
Mga bahagi ng Enterprise Java Beans (enterprise bean). | Ang mga EJB ay pinamamahalaang beans na naglalaman ng pangunahing functionality ng isang application. |
JAX-RS RESTful web services | Ito ay isang API para sa pagbuo ng mga serbisyo sa web na sumusunod sa istilo ng arkitektura ng REST. |
Mga endpoint ng serbisyo sa web ng JAX-WS | API para sa paglikha at paggamit ng SOAP web services. |
Mga entity ng Java Persistence API (JPA). | Isang API para sa pag-access ng data sa mga data store at pag-convert ng data na iyon sa Java programming language object at vice versa. |
Java EE pinamamahalaang beans | Mga pinamamahalaang beans na nagbibigay ng lohika ng negosyo ng application ngunit hindi nangangailangan ng mga transactional o security feature ng EJB. |
Java Message Service | Ang Java Message Service (JMS) API ay isang pamantayan sa pagmemensahe na nagpapahintulot sa mga bahagi ng application ng Java EE na gumawa, magpadala, tumanggap, at magbasa ng mga mensahe. Tinitiyak nito ang distributed, maaasahan at asynchronous na komunikasyon sa pagitan ng mga bahagi. |
Teknolohiya | Layunin |
---|---|
Ang Java Database Connectivity API (JDBC) | Mababang antas ng API para sa pag-access at pagkuha ng data mula sa mga data store. Ang karaniwang paggamit ng JDBC ay ang pagsulat ng mga query sa SQL laban sa isang partikular na database. |
Ang Java Persistence API | Isang API para sa pag-access ng data sa mga data store at pag-convert ng data na iyon sa Java programming language object at vice versa. Mas mataas na antas ng API kumpara sa JDBC. Itinatago ang lahat ng pagiging kumplikado ng JDBC mula sa developer sa ilalim ng hood. |
Ang Java EE Connector Architecture | API para sa pagkonekta ng iba pang mapagkukunan ng kumpanya, gaya ng:
|
Ang Java Transaction API (JTA) | Isang API para sa pagtukoy at pamamahala ng mga transaksyon, kabilang ang mga ipinamamahaging transaksyon at transaksyon sa maraming data store. |
GO TO FULL VERSION