Sunteți pe pagina 1din 28

Facultatea de ŞTIINTE ECONOMICE si GESTIUNEA AFACERILOR

Department ul de Informatica Economica

Proiectare si programare eBusiness

Mediul Java Enterprise Edition

Prof. dr. Lucia Rusu


ucia.rusu@ econ.ubbcluj.ro
Topic
1. Introducere Java Enterprise Edition
2. Arhitectura multi-tier a aplicaţiilor Java EE
3. Containere Java EE
4. Support Web Services
5. GlassFish Server Tools
6. Tipuri de aplicaţii Java EE
7. Obiectele de business
Introducere Java EE

1. 1.Particularităţi Java Enterprise Edition

 Interactivitatea pe partea clientului


 Dezvoltarea API (Application Programming Interface)
 structuri de date gestionate de Security Manager
 caracteristici de securitate sunt accesibile din meniul Security Preferences
 Protocol handler este un progam care aparţine JDK şi permite unui browser
disponibil Java interpretarea unui nou tip de protocol.
 Dezvoltarea browserelor disponibile Java este modulară şi extensibilă
 Content handlers are rolul de a furniza o alternativă a ideii de aplicaţii standallone
Introducere Java EE

Platforma Java contine:


 Java Enterprise API :
 JDBC (Java Database Connectivity)– standard SQL
 Java RMI – invocarea la distanţă client-server;
 Java IDL – furnizează interoperabilitatea şi conectivitatea cu CORBA ;
 JNDI

 Java Bean API


 Java Security API
 Java Foundation Clases (JFC) API este GUI pentru programe
 Java Server API
 Java Commerce API
Introducere Java EE

Platforma Java contine (2):


 Java Media and Communication API
 Java 2D API
 Java 3D API
 Java Media FrameWork API;
 Java SOUND API
 Java Telephony API
 Java Speech API
 Java Management API
 Personal Java API
 Embeded Java API
Introducere Java EE
Java Reflection API contine :
 Class – furnizând instanţe pentru Field, Method şi Constructor;
 Field Method, Constructor – furnizează informaţii reflexive despre membri asociaţi,
implementează intefaţa Member. Numai JVM poate crea instanţe ale acestei clase.
 Field - poate fi o clasă statică sau o instanţă variabilă;
 Method – metodă abstractă, metodă (statică), a clasei sau instanţă a metodei;
 Array- furnizează metode de construcţie dinamică şi acces la tablouri. Sunt clase finale şi
de aceea neinstanţiabile.
 Modifier – permite modificarea informaţiilor (static şi public) despre clase şi membri. Sunt
clase neinstanţabile.
Security Model are 2 nivele de verificare :
metodele din clasa Class ce dau acces reflexiv sau set de membri.
o dacă ce system security manager dă acces la membru, orice membru, reflectat
poate apela pe obiecte Java (protected, default la package şi clase private pentru
membri);
1.1.2. Evolutia Java Enterprise
 Java EE 7 a apărut în iunie 2013 pentru a ţine pasul cu HTML5 (in prezent Java EE8)
 Tehnologii (exemple semnificative):
 Web Application
 Java Servlet 3.1 JSR340
 JavaServer Faces (JSF) 2.2 JSR344
 Expression Language (EL) 3.0 JSR341
 JavaServer Pages (JSP) 2.3 JSR245
 JavaServer Pages Standard Tag Library (JSTL) 1.2 JSR52
 Enterprise Application
 Web Services Technologies
 Management and Security
1.1.2. Evolutia Java Enterprise
 Tehnologii (exemple semnificative):
 Web Application
 Enterprise Application
 Bean Validation 1.1 JSR349
 Managed Beans 1.0 JSR316
 Enterprise JavaBeans (EJB) 3.2 JSR345
 Interceptors 1.2 JSR318
 Java EE Connector Architecture 1.7 JSR322
 Java Persistence API (JPA) 2.1 JSR338
 Common Annotations for the Java Platform 1.2 JSR250
 Java Message Service API (JMS) 2.0 JSR343
 Java Transaction API (JTA) 1.2 JSR907
 JavaMail API 1.5 JSR919

 Web Services Technologies


 Management and Security
1.1.2. Evolutia Java Enterprise
 Tehnologii (exemple semnificative):
 Web Application
 Enterprise Application
 Web Services Technologies
 Java API for RESTful Web Services (JAX-RS) 2.0 JSR339
 Implementing Enterprise Web Services 1.3 JSR109
 Java API for XML-Based Web Services (JAX-WS) 2.2 JSR224
 Web Services Metadata for the Java Platform JSR181
 Java API for XML-based RPC (JAX-RPC) (Optional) 1.1 JSR101
 Java Architecture for XML Binding (JAXB) 2.2 JSR222
 Java API for XML Registries (JAXR) 1.0 JSR93

 Management and Security


1.1.2. Evolutia Java Enterprise
 Tehnologii (exemple semnificative):
 Web Application
 Enterprise Application
 Web Services Technologies
 Management and Security
 Java Authentication Service Provider Interface for Containers 1.1 JSR196
 Java Authorization Service Provider Contract for Containers 1.5 JSR115
 Java EE Application Deployment (Optional) 1.2 JSR88
 Java EE Management 1.1 JSR77
 Java EE-related Specs in Java SE:
 Java Architecture for XML Binding (JAXB) 2.2 JSR222
 Java API for XML Processing (JAXP) 1.3 JSR206
 Java Database Connectivity 4.0 JSR221
 Java Management Extensions (JMX) 2.0 JSR3
 JavaBeans Activation Framework (JAF) 1.1 JSR925
 Java APIs for XML Messaging 1.3 JSR67
 Streaming API for XML (StAX) 1.0 JSR173
1.2. Arhitectura multi-tier a aplicaţiilor Java EE
 Modelul enterprise
partitionează munca
de implementare in 2
parţi:
 business şi
presentation logic,
implementată de
developer
 standard system
services, furnizate
de platforma Java
EE
 4 Componente Java
EE
Sursa:
https://docs.oracle.com/javaee/7/JE
ETT.pdf
1.2.1.Java EE Clients

1. Web Clients constă din 2 părti [1]:


 Pagini web dinamice
 web browser
 web client este denumit şi thin client
 smart client execută query pe bazele de date, execută reguli de
business complexe, sau conexiuni la aplicaţii legacy
2. Aplicaţii client cu interfeţe RIA (richer user interface). Ele au
graphical user interface (GUI) creată din Swing API sau Abstract
Window Toolkit (AWT) API
3. Appleturi
1.2.1.Java EE Clients

4. Arhitectura JavaBeans Component


 Atat server cât şi client tier pot include component bazate pe
JavaBeans :
 o aplicaţie client sau applet şi component ce rulează pe server Java EE
 component Server şi baza de date
 Componentele JavaBeans nu sunt considerate component Java EE . Ele
au propriertăţi şi trimit/primesc (get /set) metode de acces la aceste
proprietăţi şi reprezintă o cale simplă de implementare a JNDI în
arhitectura pe component JavaBean.
5. Communicaţii Java EE Server
 Clientul comunică pe partea de business tier rulând Java EE server
direct sau ca şi client ce rulează in browser, prin pagini web sau
servlets rulaţi în web tier.
1.2.2. Web Components

 Servlets sunt clase în limbajul Java care procesează dinamic request şi construiesc
response
 JSP pages (Java Server Pages ) sunt documente text-based ce se execută ca servleţi
dar permit un mod mult mai natural de creare a conţinutului static.
 Java Server Pages (JSP) extind funcţionalitatea paginlior Web asigurând manipulare şi
generare dinamică de conţinut.
 JavaServer Faces technology se construieşte pe servlets şi Tehnologie JSP şi furnizează
interfaţă user la framework-ul de componente pentru aplicaţii web.
1.2.3.Componente de business

 Componente de business sunt implementate ca şi enterprise beans sau


componente EJB (Enterprise Java Bean):
 entity beans
 session beans,
 driven messanger
 Session beans sunt fie resurse private fie destinate clienţilor care le-au creat
 Entity beans au în schimb o identitate unică prezentată sub forma unei chei
primare
 Enterprise bean defineşte în plus trei entităţi: servere, conteinere şi clienţi. EJB
există în interiorul unor conteinere care gestionează ciclul lor de viaţă şi
furnizează o serie de alte servicii.
1.2.3.Componente de business
1.2.4.Enterprise Information System Tier

 manipuleaza software EIS şi include:


 enterprise infrastructure systems ca şi enterprise resource planning (ERP),
 procese tranzactionale mainframe,
 şi sisteme de baze de date, sisteme legacy.
 Componenete Java EE din aplicatii trebuie să acceseze EIS (enterprise information
systems) pentru conectivitate la baza de date (Figura 1-4).
1.3. Containere Java EE

 Java EE server oferă servicii în formă de container pentru fiecare tip de


component (Figura 1-4).
 Conteinerul Web comunică cu browserul prin protocol HTTP, producând şi
consumând mesaje XML.
 Mesajele primite de la diversele platforme pot fi XML enable browser sau
renderings engines (motoare de afişare) .
 Web conteinerul este gazda paginilor JSP, servlets, JavaMail şi XML fiind orientat
spre JSP generate în mod dinamic.
 Conteinerul EJB găzduieşte Enterprise Beans, JMS, JTA, JDBC sau conectori ce
permit acces la resurse şi comunicaţie cu componentele de prezentare.
1.3. Containere Java EE

 Setările Container customizează suportul dat de serverul Java EE, incluzând


service ca: security, transaction management, Java Naming and Directory
Interface (JNDI) API lookups, şi remote connectivity
 Detaliem câteva aspecte:
 Modelul de securitate Java EE permite configurarea componentei web sau enterprise
bean astfel încât resorsele sistem sunt accesate doar de useri autorizaţi.
 Modelul de tranzacţii Java EE permite specificarea relatiilor de-a lungul metodelor
unei singure transactii astfel încât toate metodele dintr-o transactie sunt tratate ca o
unitate.
 Serviciile JNDI furnizează interfaţă unificată pentru multiple servicii de naming şi
directory in enterprise astfel încât componentele aplicatiei sa poată accesa aceste
servicii.
 Modelul RMI remote connectivity Java EE manageriază comunicatii low-level între
clienţi şi enterprise beans. După ce este creat un enterprise bean, clientul invocă
metode pe el ca şi cum ar fi pe aceeaşi maşină virtuală.
1.3. Tipuri de Containere Java EE
1.3. Tipuri de Containere Java EE

Java EE are urmatoarele servere şi containere:


 Java EE server porţiune runtime din produsul Java EE care
furnizează EJB şi containere web.
 EJB container conduce executia enterprise beans în aplicaţii
Java EE . Enterprise beans şi containerul lui rulează pe server
Java EE.
 Web container conduce executia web pages, servlets, şi anumite
componente EJB în aplicatii Java EE. Web components şi
containerul lui rulează pe server Java EE.
 Application client container: conduce executia componentelor
aplicatiei client. Aplicatia client şi containerul lui rulează pe client.
 Applet container conduce executia applet-urilor. Constă din web
browser şi Java Plug-in rulate împreună pe client.
1.4. Support Web Services

 XML Extensible Markup Language (XML) un standard de reprezentare a datelor


cross-platform, extensibil, text-based
 SOAP Transport Protocol
 Cererile client şi răspunsurile web service sunt transmise ca mesaje Simple Object
Access Protocol
 Protocol (SOAP) prin HTTP pentru a avea schimb complet interoperabil între clienţi şi
servicii web, toate rulând pe diverse platform şi pe diverse locatii pe Internet.

 WSDL Standard Format


 Web Services Description Language (WSDL) este XML format standardizat de
descriere a serviciilor reţea.
 Descrierea WSDL service poate fi publicată pe GlassFish Server ce furnizează tool de
generare a specificatiilor WSDL
1.5. GlassFish Server Tools

 este o implementare a platformei Java EE 7 care suportă toate API descrie


anterioar
 include o serie de tool-uri Java EE care nu sunt parte componentă a platformei
Java EE 7
 Exemple de line de comandă a utilitarului de administrare GlassFish Server:
 asadmin - El este utilizat pentru a stopa GlassFish Server şi pentru managementul
utilizatorilor, resurselor şi aplicaţiilor.
 appclient - leagă containerul aplicaţiei client şi invocă pacchetul client application în
fişierul JAR al aplicaţiei client.
 capture-schema - extrage informaţii din schema bazei de date, producând fişierul
schema pe care GlassFish Server îl poate tuliza pentru container-managed
persistence.
 package-appclient - împachetează containerul de bilioteci ale aplicaţiei client şi
fişierele JAR.
1.6. Tipuri de aplicaţii Java EE

 Aplicaţiile standalone au în vedere trei tipuri de clienţi: EJB, aplicaţii stand alone
şi clienţi Visual Basic de exemplu.
 Clienţii EJB interacţionează direct cu serverul EJB prin conteinerul EJB (figura
1.3) prin intermediul RMI-IIOP care accesează EJB.

Entity Data Access


Client Bean Object JDBC

Session
Data Access
Bean JDBC
Object

EJB tier

Figura 1.3. Interacţiunea client- componente EJB


1.6. Tipuri de aplicaţii Java EE

 Aplicaţiile centrata Web tier Web conteinerul găzduieşte logica de prezentare şî


logica de business

Figura 1.4. Interacţiunea client- componente EJB in aplicatia centrata Web tier
1.6. Tipuri de aplicaţii Java EE

 Aplicaţiile sunt centrate pe interacţiunea dintre conteinere folosind HTTP şi XML


pentru comunicarea între conteinerele Web şi RMI-IIOP pentru comunicarea
între conteinerele EJB

Figura 1.5. Arhitectura JAVA EE de complexitate maximă


1.7. Obiectele de business
 obiecte de business (business objects)
 sunt caracterizate de stare şi comportament.
 au o funcţionalitate bine precizată, un mod de comportament şi interacţionează între ele
pentru a obţine funcţionalitatea dorită.
 Regulile de business sau logica de business au ca scop identificarea structurii şi
comportamentului obiectelor de business, a pre condiţilor şi post condiţiilor impuse
atunci când unul sau mai mult obiecte îşi expun comportamentul în cadrul sistemului.
Cerinţe :
 primordială este de a-şi menţine starea (conversaţională sau persistentă)
 Starea conversaţională este caracteristică obiectelor care operează asupra datelor
legate de sesiunea cu clientul (cosul de cumparaturi)
 Starea persistentă este caracteristică obiectelor care operează asupra datelor
independente de sesiunea cu clientul (contul de email, contul bancar)
 Posibilitatea de a opera asupra datelor partajate
 Participarea la tranzacţii :
 roolled back (derulată) atunci când un tack din set nu s-a executat şi toate celelate sunt
derulate
 commited caz în care tranzacţia s-a execuat cu succes şi se salvează noua stare.
Thank you for your attention!

S-ar putea să vă placă și