PDF de programación - Arquitectura de Aplicaciones Empresariales en Java

Imágen de pdf Arquitectura de Aplicaciones Empresariales en Java

Arquitectura de Aplicaciones Empresariales en Javagráfica de visualizaciones

Publicado el 9 de Junio del 2018
332 visualizaciones desde el 9 de Junio del 2018
1,7 MB
57 paginas
Arquitectura de Aplicaciones
Empresariales en Java

Relator: Juan Claudio Navarro
jcnavarro@optimisa.cl, jnavarro@dcc.uchile.cl,
juancla.navarro@gmail.com

Agenda

n  Bloque 1 (18:30 – 20:00)

n  Java EE
n  La capa de presentación
n  La capa de negocio

n  Bloque 2 (20:30 – 21:30)

n  La capa de datos
n  Discusión

2

JAVA EE

3

Aplicaciones Empresariales

n  Las aplicaciones empresariales suelen

presentar algunos de los siguientes
requerimientos
n  Interacción con diversas fuentes de datos
n  Interacción con otros sistemas (actuales

y/o legados)
n  Acceso Web
n  Concurrencia
n  Alta carga de procesamiento
n  Usuarios con diferentes perfiles
n  Requerimientos de seguridad

4

Java Platform, Enterprise Edition

n  Java EE es la plataforma de Java para el desarrollo

de aplicaciones en el servidor (anteriormente llamada
J2EE: Java 2, Enterprise Edition)

n  Provee un ambiente de ejecución y un conjunto de
APIs: Servlets, JSP, JSF, EJB, JMS, JDBC, JPA, JNDI,
JavaMail, JAXB, JAXP, JAX-WS, etc.

5

Beneficios de Java EE

n  Transparencia de la ubicación
n  Visión OO de la base de datos
n  Manejo transaccional
n  Pools de recursos
n  Seguridad
n  Alta disponibilidad
n  Portabilidad

6

Contenedores Java EE

n  La especificación Java EE define dos

contenedores:
n  Web Container
n  EJB Container

n  Estos contenedores son los responsables de
manejar los componentes correspondientes

7

Servidores Java EE

Servidor
Weblogic Server
WebSphere
Application Server
Tomcat
JBoss Application
Server
GlassFish
JOnAS

Proveedor
Oracle (antes BEA)
IBM

Tipo
comercial
comercial

Notas

Apache
Red Hat (antes JBoss)

libre
libre

Oracle (antes Sun)
OW2 Consortium

libre
libre

Sólo Web Container
EJB Container, se
integra con Tomcat

EJB Container, se
integra con Tomcat

n  Lista de servidores en

http://en.wikipedia.org/wiki/Comparison_of_application_servers

n  Análisis de Gartner sobre servidores de aplicaciones:

http://www.gartner.com/technology/reprints.do?
id=1-17GUO5Z&ct=110928&st=sb

8

Servlets
JSP – JavaServer Pages
JSF – JavaServer Faces
Otras tecnologías: ZK
LA CAPA DE PRESENTACION

9

La Capa Web

n  La operación de la capa Web es soportada por el

contenedor Web
n  Maneja la interacción con el cliente (protocolo HTTP(S))
n  Reenvía cada requerimiento HTTP al componente Web que
corresponda, entregándole los parámetros necesarios para
que éste pueda realizar su tarea

n  Maneja sesiones, filtros, eventos, seguridad, etc.

10

Servlets

n  El contenedor Web maneja la interacción con los

clientes Web (browser’s), y delega los requerimientos
dinámicos a componentes Web (servlets y páginas
JSP)

n  Un servlet es una clase Java que es instanciada e
invocada por el contenedor Web, en respuesta a
requerimientos HTTP

11

Servlets

n  Tareas que puede realizar un servlet

n  Leer data enviada por el usuario (por ejemplo a través

de un Form de una página Web)

n  Obtener otra información del requerimiento (browser

utilizado, cookies, dirección IP cliente, etc.)

n  Generar el resultado
n  Formatear el resultado en un documento (típicamente

una página HTML)

n  Establecer parámetros de respuesta (tipo de

documento retornado, cookies, etc.)

n  Enviar la respuesta al cliente (formato text/html,

image/gif, etc.)

12

Servlets - un Ejemplo Sencillo

WEB-INF/web.xml
<servlet>
<servlet-name>ServletHolaMundo
</servlet-name>
<servlet-class>cl.servlets.ServletHolaMundo
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ServletHolaMundo
</servlet-name>
<url-pattern>/holamundo
</url-pattern>
</servlet-mapping>

ServletHolaMundo.java
public class ServletHolaMundo extends HttpServlet
{
protected void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<title>Hola, mundo!</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Hola, mundo!</h1>");
out.println("</body>");
out.println("</html>");
out.close();
}
}

13

Limitaciones de Servlets

n  Con Servlets, es fácil:

n  Leer parámetros y form data
n  Manejar cookies y sesiones
n  Manejar HTTP: request/response headers, códigos

de estado

n  Compartir datos entre servlets

n  Pero no resulta cómodo:

n  Usar sentencias println para generar HTML
n  Mantener el código HTML

14

JSP – JavaServer Pages

n  La tecnología JSP facilita la construcción de aplicaciones Web dinámicas
n  Una página JSP (JavaServer Pages) es un documento de texto que

incluye dos tipos de texto:
n  Texto estático (template data), que puede ser expresado en cualquier

formato basado en texto (HTML, XML, WML, etc.)

n  Elementos JSP, que construyen contenido dinámico

Página JSP

Página HTML generada en

request time y enviada al cliente

Página HTML
desplegada
en el browser

15

Páginas JSP

n  El contenedor Web genera un servlet a partir

de una página JSP

n  Elementos JSP al interior de una página

n  Elementos de scripting

n  Scriptlets: <% código Java %>
n  Expresiones Java: <%= expresión Java %>
n  Declaraciones: <%! declaraciones Java %>

n  Expression Language: ${ expresión }
n  Otros: directivas, custom tags, etc.

n  Objetos predefinidos en una página JSP:

request, response, out, session, application,
exception

16

JSF – JavaServer Faces

n  JSF es el framework para la capa de presentación

provisto por Java EE

n  JSF provee una arquitectura para manejar el estado

de componentes, procesamiento de información,
validación de información ingresada por el usuario,
atención de eventos, y navegación entre páginas

n  JSF separa la lógica de presentación y de aplicación,

facilitando la conexión entre las correspondientes
capas

17

JSF – Eventos y Navegación

Página JSP

Managed
bean

Flujo de
navegación
(faces-
config.xml)

...
<h:inputText value="#{algoritmoBean.iteraciones}"/>
<h:commandButton value="Calcular" action="#{algoritmoBean.calcular}"/>

public class Algoritmo {
private int iteraciones = 10;
public int getIteraciones() { return iteraciones; }
public int setIteraciones(int n) { iteraciones = n; }
public String calcular() { for (int i=0; i<iteraciones; i++) {…}; return "ok"; }
}

<managed-bean>
<managed-bean-name>algoritmoBean</managed-bean-name>
<managed-bean-class>modelo.algoritmos.Algoritmo</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
<navigation-rule>
<from-view-id>algoritmo.jspx</from-view-id>
<navigation-case>
<from-outcome>ok</from-outcome>
<to-view-id>home.jspx</to-view-id>
</navigation-case>
</navigation-rule>

evento

outcome

18

ZK – http://www.zkoss.org

n  ZK Framework permite construir Rich Internet

Applications (RIA) haciendo uso de Ajax de manera
transparente para el programador

19

ZK Spreadsheet Demo

20

EJB – Enterprise JavaBeans
Session Beans
Message-Driven Beans
Otras tecnologías: Spring
LA CAPA DE NEGOCIO

21

EJB - Enterprise JavaBeans

n  Un Enterprise JavaBean es un componente que opera en el

servidor, y que encapsula lógica de negocio de una aplicación

n  La tecnología de EJB’s provee servicios de nivel de sistema

(distribución, transacciones, pools de objetos, …), permitiendo
que el programador se concentre en la lógica de negocio

n  La especificación de EJB 3 (mayo 2006) incorporó el uso de

anotaciones e inyección de dependencias, simplificando el
desarrollo

22

Tipos de EJB
n  Existen 2 tipos de EJB

n  Session Beans
n  Message-Driven Beans (MDB)

Session Bean

Invocación

Sincrónica

Interfaz

Local y/o remota

Message-Driven
Bean
Asincrónica: el cliente
envía un mensaje JMS
a una cola, y el
servidor invoca al MDB
de manera asíncrona
para procesar el
mensaje
No requiere, el cliente
no invoca al MDB

23

Session Beans

n  Un session bean representa una sesión de trabajo de un cliente

al interior del servidor de aplicaciones

n  El cliente invoca sincrónicamente los métodos del bean
n  No hay concurrencia en session beans: si varios clientes

ejecutan simultáneamente operaciones de un mismo session
bean, cada uno de ellos opera con una instancia diferente del
bean

n  Dos tipos de session beans:

n  Stateless (SLSB):

n  No mantiene estado conversacional para el cliente
n  El servidor crea un pool de instancias para cada SLSB
n  Cuando un cliente invoca un método de un SLSB, el servidor escoge

una instancia del pool para atender el requerimiento, y luego la
instancia vuelve al pool

n  Stateful (SFSB):

n  Mantiene estado conversacional en variables de instancia
n  Una instancia de un stateful session bean pertenece a un cliente, y

permanece asociado a él hasta que se da por terminada la sesión

24

Elementos de un Session Bean

n  Un session bean se define mediante:

n  La interfaz de negocio (business interface)
n  La clase de implementación, que implementa la interfaz de

negocio

n  La interfaz de negocio puede ser:

n  Local: utilizada por clientes locales (que se ejecutan en la

misma instancia del servidor de aplicaciones), con semántica
Java

n  Remote: utilizada por clientes Java remotos que interactúan

con el bean mediante RMI

25

Objetos Remotos

n  EJB utiliza RMI (Remote Method Invocation) para la

invocación de objetos remotos

n  El cliente invoca un stub (proxy del objeto remoto, en el

cliente)

n  El stub invoca al skel
  • Links de descarga
http://lwp-l.com/pdf11728

Comentarios de: Arquitectura de Aplicaciones Empresariales en Java (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad