Cuprins Ce reprezint a Java EE ? Avantajele platformei Tehnologiile de baz a Sisteme distribuite Aplicatii Java EE Tehnologii Java p.4/24 Contextul de lucru Bancar Bursa Telefonie Lanturi comerciale Transport, ... Caracteristici comune: Sisteme complexe Sisteme distribuite Tehnologii Java p.5/24 Imagine de ansamblu Ce avem la dispozitie (la momentul 0): Protocoale TCP, UDP, HTTP, SOAP, XML-RPC, ... Limbaje de programare Tehnici de programare n re tea Datagrame, Socket-uri, RMI, ... Ce vrem: un cadru de lucru pentru dezvoltarea de aplicatii complexe. Tehnologii Java p.6/24 Ce este Java EE ? Java Platform, Enterprise Edition (Java EE) dene ste standardul pentru dezvoltarea de aplicatii: distribuite multi-platform a bazate pe componente pe mai multe niveluri (Java EE = urma sul lui J2EE) Tehnologii Java p.7/24 Avantajele Java EE Bazat pe specicatii - implement ari Portabilitate Scalabilitate Interoperabilitate Performan t a Simplitate Costuri reduse Standard industrial Tehnologii Java p.8/24 Tehnologii Servlet JSP Java Server Pages JSF Java Server Faces JNDI Java Naming and Directoy Interface JTA Java Transaction API JMS Java Message Service EJB Enterprise Java Beans JAX-WS Web Services JDBC, JPA, JAXP, ... Tehnologii Java p.9/24 "Sustin atori" Sun: GlassFish IBM:IBM WebSphere Oracle: Oracle Application Server Apache: Apache Tomcat, Geronimo RedHat (JBoss): JBoss Application Server BEA: BEA WebLogic Application Server SAP: SAP NetWeave Macromedia: JRun ... Tehnologii Java p.10/24 Competitori Microsoft .NET "LAMP" (Linux, Apache, MySQL, PHP/Python/Perl) Tehnologii Java p.11/24 Sisteme distribuite Tehnologii Java p.12/24 Aplicatii distribuite Aplicatie distribuit a = aplicatie compus a din mai multe componente distincte ce ruleaz a pe platforme eterogene conectate prin retea. Modele 2-tier (client-server) 3-tier (client-middleware-server) multitier (client-multiple middleware-multiple servers) Tehnologii Java p.13/24 Aplicatii pe mai multe niveluri Tehnologii Java p.14/24 Nivelul client Responsabil cu interactiunea direct a cu utilizatorul. Clien ti Web (thin) Appleturi (plug-in, securitate) Aplicatii Webstart (smart client) Aplicatii desktop clasice (heavy) Comunicare: Client-Web-Business, Client-Business Tehnologii Java p.15/24 Nivelul Web Responsabil cu generarea de continut dinamic. Servlet-uri Pagini JSP Java Server Faces Java-based Web application framework Orientat pe componente GUI - AJAX Model bazat pe evenimente server-side. Suport pentru: navigare, validare, conversie, internationalizare, etc. Tehnologii Java p.16/24 Nivelul de logica aplicatiei Enterprise Java Beans (EJB) Modeleaz a actiuni: autenticare si autorizare, accesarea unui sistem extern sau a unei baze de date, apelarea altor componente, etc. Modeleaz a date, ind obiecte ce contin informatii dintr-un mediu persistent. Permit denirea de actiuni ce pot apelate prin mesaje. Tehnologii Java p.17/24 Nivelul informational Modalit ati de stocare a informatiei Baze de date relationale obiectuale Sisteme de siere Sisteme dedicate de persistent a Tehnici de accesare a informatiei JDBC, JPA JAXP, JAXB JNDI, ... Tehnologii Java p.18/24 Aplicatii Java EE Tehnologii Java p.19/24 Denitii Aplicatie Java EE = colectie de componente: servleturi, pagini html, clase, resurse, etc. care pot rulate n containere standard oferite de diver si produc atori. Container = interfat a ntre o component a si functionalit atile specice platformei care asigur a functionarea componentei. Server de aplicatii = Sistem software ce implementeaz a diverse tipuri de containere, oferind mecanismele necesare executiei unei aplicatii Java EE. Tehnologii Java p.20/24 Ciclul de via t a al unei aplicatii Containerul unei aplicatii va generara evenimente: Cnd o aplicatie este initializat a Cnd o aplicatie este eliminat a Cnd este primit a o cerere Cnd este creat a o sesiune de lucru etc. Tehnologii Java p.21/24 Organizarea componentelor La nivel de surse: Java EE blueprints La nivel executabil war, ear \aplicatie Pagini Web, Resurse \WEB-INF web.xml Alte fisiere de configurare \classes .class, .properties \lib .jar web.xml este sierul principal de congurare al oric arei aplicatii Web. Tehnologii Java p.22/24 Exemplu de sier web.xml <web-app> <display-name>aplicatie</display-name> <description>Prima mea aplicatie</description> <session-timeout>30</session-timeout> <welcome-file-list> <welcome-file>index.html</welcome-file> </welcome-file-list> <error-page> <exception-type>java.lang.Exception</exception-type> <location>/error.jsp</location> </error-page> <servlet> <servlet-name>FirstServlet</servlet-name> <servlet-class>com.samples.FirstServlet</servlet-class> </servlet> </web-app> Tehnologii Java p.23/24 Bibliograe The Java EE Tutorial http://java.sun.com/javaee/5/docs/tutorial/doc/ ... Tehnologii Java p.24/24