4.-desarrollo de aplicaciones web
TRANSCRIPT
5/11/2018 4.-Desarrollo de Aplicaciones Web - slidepdf.com
http://slidepdf.com/reader/full/4-desarrollo-de-aplicaciones-web 1/57
“DESARROLLO DE
APLICACIONES WEB
EMPLEANDO EL MODELOJ2EE”
Andrés Ramos Magna
5/11/2018 4.-Desarrollo de Aplicaciones Web - slidepdf.com
http://slidepdf.com/reader/full/4-desarrollo-de-aplicaciones-web 2/57
Java
Historia Lenguaje orientado a objetos creado por Sun
Microsystems Encapsulación – ocultacion de datos y metodos
Herencia
Polimorfismo – circulo.area() , cuadrado.area()
Éxito alcanzado gracias a:
Internet: aplicaciones web
“Independencia” del S.O. y plataforma
Marketing
5/11/2018 4.-Desarrollo de Aplicaciones Web - slidepdf.com
http://slidepdf.com/reader/full/4-desarrollo-de-aplicaciones-web 3/57
Plataforma Java
Java Language
Java Bytecode
Java Virtual Machine
Java API
Plataform
5/11/2018 4.-Desarrollo de Aplicaciones Web - slidepdf.com
http://slidepdf.com/reader/full/4-desarrollo-de-aplicaciones-web 4/57
Características
El código Java se estructura en clases Las clases se estructuran a su vez en paquetes
Clase Object de la que derivan las demás
Los tipos básicos no son clases void, char, boolean, byte, int, array
Herencia simple: las clases derivadas pueden añadir variables y (re)definir métodos
Herencia múltiple: interfaces no definen ninguno de sus métodos y únicamente declaran constantesclass Circulo extends Figura implements Superficie
5/11/2018 4.-Desarrollo de Aplicaciones Web - slidepdf.com
http://slidepdf.com/reader/full/4-desarrollo-de-aplicaciones-web 5/57
CONTROL DE ACCESO
- En variables y métodos miembro
- Tres tipos:- public
- protected
- private
Modificador acceso Public Protected Private
Misma clase
Subclase [*]
Clase externa en elmismo paquete
Clase externa en
otro paquete
5/11/2018 4.-Desarrollo de Aplicaciones Web - slidepdf.com
http://slidepdf.com/reader/full/4-desarrollo-de-aplicaciones-web 6/57
Concepto de static
- Afecta a variables y métodos
- Hacen referencia a la clase (no al objeto)
- Se inicializan justo antes de utilizar por primera vezla clase
- Llamada:
- Clase.variable (objeto.variable -> no aconsejado).
- Clase.metodo()
- Ej: Math.cos()
5/11/2018 4.-Desarrollo de Aplicaciones Web - slidepdf.com
http://slidepdf.com/reader/full/4-desarrollo-de-aplicaciones-web 7/57
APLICACIONES WEB
5/11/2018 4.-Desarrollo de Aplicaciones Web - slidepdf.com
http://slidepdf.com/reader/full/4-desarrollo-de-aplicaciones-web 8/57
Pila de protocolos
HTTP
TCP
MAC - LLC
FÍSICO
IP
HTML
5/11/2018 4.-Desarrollo de Aplicaciones Web - slidepdf.com
http://slidepdf.com/reader/full/4-desarrollo-de-aplicaciones-web 9/57
Modelo Cliente Servidor
Cuando un usuario desea acceder a unadeterminada página web, utiliza un navegador
Similarmente en el otro extremo se precisa un
servidor
HTTP
5/11/2018 4.-Desarrollo de Aplicaciones Web - slidepdf.com
http://slidepdf.com/reader/full/4-desarrollo-de-aplicaciones-web 10/57
Evolución
Inicialmente, únicamente información estática.
HTML estático
Aplicaciones “pobres”
Posteriormente, ejecución de código en el lado
del cliente:
HTML dinámico: JavaScript
Principalmente mejoras de interfaz
5/11/2018 4.-Desarrollo de Aplicaciones Web - slidepdf.com
http://slidepdf.com/reader/full/4-desarrollo-de-aplicaciones-web 11/57
Evolución (II)
Programación en el lado del servidor:
CGIs
Páginas ASP
Páginas JSP, servlets PHP
J2EE, .NET
Zope, Ruby on Rails…
5/11/2018 4.-Desarrollo de Aplicaciones Web - slidepdf.com
http://slidepdf.com/reader/full/4-desarrollo-de-aplicaciones-web 12/57
Evolución (III)
Web Services
Interoperabilidad entre servidores y clientes
Programación de procedimientos remotos
WSDL SOAP, XML-RPC
WS-Security
5/11/2018 4.-Desarrollo de Aplicaciones Web - slidepdf.com
http://slidepdf.com/reader/full/4-desarrollo-de-aplicaciones-web 13/57
Esquema de Implementación
5/11/2018 4.-Desarrollo de Aplicaciones Web - slidepdf.com
http://slidepdf.com/reader/full/4-desarrollo-de-aplicaciones-web 14/57
Arquitectura Cliente-Servidor
1 sola capa 1 cliente
1 servidorServidor
Cliente
5/11/2018 4.-Desarrollo de Aplicaciones Web - slidepdf.com
http://slidepdf.com/reader/full/4-desarrollo-de-aplicaciones-web 15/57
Arquitecturas de sistemas distribuídos:2-tier Dos divisiones (2-tier) Usualmente dividido en presentación y datos El cliente realiza todo el trabajo de cómputo
mientras el servidor provee los datos Emplea mucho ancho de banda Requiere múltiples llamadas al servidor para
operaciones simples Corre el riesgo de saturar de conexiones al servidor El mantenimiento de la aplicación y su actualización
es muy difícil
5/11/2018 4.-Desarrollo de Aplicaciones Web - slidepdf.com
http://slidepdf.com/reader/full/4-desarrollo-de-aplicaciones-web 16/57
2 capas
UABC. Instituto y Facultad de Ingeniería. 2007
5/11/2018 4.-Desarrollo de Aplicaciones Web - slidepdf.com
http://slidepdf.com/reader/full/4-desarrollo-de-aplicaciones-web 17/57
2 capas con acceso de datos en capa lógica
UABC. Instituto y Facultad de Ingeniería. 2007
5/11/2018 4.-Desarrollo de Aplicaciones Web - slidepdf.com
http://slidepdf.com/reader/full/4-desarrollo-de-aplicaciones-web 18/57
Arquitecturas de sistemas distribuídos:3-tier Tres divisiones (3-tier) Cada capa está separada del resto
La interacción se realiza mediante interfases bien denifidas
Comunmente se compone de Despliegue (presentation layer)
Lógica de la aplicación (bussiness layer)
Datos (data layer)
Facilita el mantenimiento al tener separados los
componentes del sistema El origen de los datos es independiente del cliente
5/11/2018 4.-Desarrollo de Aplicaciones Web - slidepdf.com
http://slidepdf.com/reader/full/4-desarrollo-de-aplicaciones-web 19/57
3 capas
UABC. Instituto y Facultad de Ingeniería. 2007
5/11/2018 4.-Desarrollo de Aplicaciones Web - slidepdf.com
http://slidepdf.com/reader/full/4-desarrollo-de-aplicaciones-web 20/57
3 capas y seguridad
UABC. Instituto y Facultad de Ingeniería. 2007
5/11/2018 4.-Desarrollo de Aplicaciones Web - slidepdf.com
http://slidepdf.com/reader/full/4-desarrollo-de-aplicaciones-web 21/57
Arquitecturas de sistemas distribuídos:n-tier
N divisiones (n-tier) No tiene un esquema único Se compone de:
Interfaz de usuarios Lógica de presentación Lógica del negocio Infraestructura de servicios Capa de datos
La capa lógica se divide por funciones más quefísicamente Pueden estar involucrados más de un servidor para cada
componente
5/11/2018 4.-Desarrollo de Aplicaciones Web - slidepdf.com
http://slidepdf.com/reader/full/4-desarrollo-de-aplicaciones-web 22/57
Optimización de recursos
5/11/2018 4.-Desarrollo de Aplicaciones Web - slidepdf.com
http://slidepdf.com/reader/full/4-desarrollo-de-aplicaciones-web 23/57
¿Porqué usar componentes?
• Fomentan la reutilización de código
• Optimiza recursos.
• Accede a recursos distribuídos
• Facilita el acceso a sistemas legados.
•
Permite desarrollar soluciones para una variedad grande de clientes
5/11/2018 4.-Desarrollo de Aplicaciones Web - slidepdf.com
http://slidepdf.com/reader/full/4-desarrollo-de-aplicaciones-web 24/57
5/11/2018 4.-Desarrollo de Aplicaciones Web - slidepdf.com
http://slidepdf.com/reader/full/4-desarrollo-de-aplicaciones-web 25/57
Componente en e-commerce
5/11/2018 4.-Desarrollo de Aplicaciones Web - slidepdf.com
http://slidepdf.com/reader/full/4-desarrollo-de-aplicaciones-web 26/57
Relación entre un componente y suinterfaz
UABC. Instituto y Facultad de Ingeniería. 2007
5/11/2018 4.-Desarrollo de Aplicaciones Web - slidepdf.com
http://slidepdf.com/reader/full/4-desarrollo-de-aplicaciones-web 27/57
Patrones de diseño
Patrón de diseño Modelo-Vista-Controlador(MVC) Uno de los más socorridos en el modelo J2EE
Separa la presentación, la manipulación de los datosy la introducción de información Modelo (Modelo). Se encarga de la lógica de la aplicación y
la manipulación de datos
Vista (View). Se encarga del despliegue y la actualización delos elementos que la componen
Controlador (Controller). Se encarga de la introducción dedatos a la aplicación, por lo general de parte del usuario
5/11/2018 4.-Desarrollo de Aplicaciones Web - slidepdf.com
http://slidepdf.com/reader/full/4-desarrollo-de-aplicaciones-web 28/57
Modelo-Vista-Controlador
MVC es un patrón de diseño orientado a objetos.
Fue desarrollado en el Centro de InvestigacionesXerox Palo Alto a finales de los años setenta.
5/11/2018 4.-Desarrollo de Aplicaciones Web - slidepdf.com
http://slidepdf.com/reader/full/4-desarrollo-de-aplicaciones-web 29/57
¿Por qué utilizar en MVC en el web?
Es una solución que va muy bien con los sitios web.
Cada hit en una página es la interacción de unusuario (entrada) con el sistema (el servidor web
procesando los scripts PHP). Asumiendo que senecesita mantener persistencia y que se necesitapresentar la información en una variedad demaneras, el patrón MVC es una buena solución.
5/11/2018 4.-Desarrollo de Aplicaciones Web - slidepdf.com
http://slidepdf.com/reader/full/4-desarrollo-de-aplicaciones-web 30/57
Diagrama de MVC
5/11/2018 4.-Desarrollo de Aplicaciones Web - slidepdf.com
http://slidepdf.com/reader/full/4-desarrollo-de-aplicaciones-web 31/57
El Modelo
El modelo es la porción que implementa la “Lógica
del Negocio”.
Se le suele llamar el modelo porque representa
objetos y sus interacciones del mundo real.
5/11/2018 4.-Desarrollo de Aplicaciones Web - slidepdf.com
http://slidepdf.com/reader/full/4-desarrollo-de-aplicaciones-web 32/57
La vista
Las vistas son las porciones de la aplicación MVCque presentan salida al usuario.
La salida más común para aplicaciones web es el
HTML. Podrían ser otras.
5/11/2018 4.-Desarrollo de Aplicaciones Web - slidepdf.com
http://slidepdf.com/reader/full/4-desarrollo-de-aplicaciones-web 33/57
El controlador
El controlador es el corazón de la aplicación MVC.Este componente es el objeto que debería estarpendiente de las solicitudes HTTP hechas por el
usuario. El controlador generalmente crea instancias de los
modelos y utiliza métodos de esos modelos paraconseguir los datos que se presentan a los usuarios,
enviándolos a la vista correspondiente.
5/11/2018 4.-Desarrollo de Aplicaciones Web - slidepdf.com
http://slidepdf.com/reader/full/4-desarrollo-de-aplicaciones-web 34/57
Diagrama de MVC con tecnologías
5/11/2018 4.-Desarrollo de Aplicaciones Web - slidepdf.com
http://slidepdf.com/reader/full/4-desarrollo-de-aplicaciones-web 35/57
Flujo solicitud para ver
5/11/2018 4.-Desarrollo de Aplicaciones Web - slidepdf.com
http://slidepdf.com/reader/full/4-desarrollo-de-aplicaciones-web 36/57
Flujo modificación de los datos
5/11/2018 4.-Desarrollo de Aplicaciones Web - slidepdf.com
http://slidepdf.com/reader/full/4-desarrollo-de-aplicaciones-web 37/57
Modelo MVC
5/11/2018 4.-Desarrollo de Aplicaciones Web - slidepdf.com
http://slidepdf.com/reader/full/4-desarrollo-de-aplicaciones-web 38/57
Espacios de ejecución de un sistema distribuído
UABC. Instituto y Facultad de Ingeniería. 2007
5/11/2018 4.-Desarrollo de Aplicaciones Web - slidepdf.com
http://slidepdf.com/reader/full/4-desarrollo-de-aplicaciones-web 39/57
Requerimientos del J2EE
Independencia de la plataforma Especialmente del lado del cliente
Reusabilidad Modularidad Escalabilidad Facilidad de administración y mantenimiento
La idea detrás del J2EE es la de proveer un estandar simple y unificado para aplicaciones distribuídas através de modelos de aplicación basado en
componentes.
5/11/2018 4.-Desarrollo de Aplicaciones Web - slidepdf.com
http://slidepdf.com/reader/full/4-desarrollo-de-aplicaciones-web 40/57
La plataforma J2EE
Es en escencia un ambiente de servicios deaplicaciones distribuídas
Se compone de:
Una infraestructura de ejecución para el hospedaje deaplicaciones (runtime hosting applications)
Una familia de APIs para construir aplicaciones
5/11/2018 4.-Desarrollo de Aplicaciones Web - slidepdf.com
http://slidepdf.com/reader/full/4-desarrollo-de-aplicaciones-web 41/57
J2EE APIs
Java Database Connectivity (jdbc)
Remote Method Invocation Inter-ORB protocol (RMI-IIOP)
Enterprise Java Beans (EJB)
Java Servlets 2.2
Java Server Pages 1.1 (jsp)
Java Message Service (JMS)
Java Naming and Directory Interface (JNDI)
Java Transaction API
Java Mail
Standard Java API
5/11/2018 4.-Desarrollo de Aplicaciones Web - slidepdf.com
http://slidepdf.com/reader/full/4-desarrollo-de-aplicaciones-web 42/57
Arquitectura de J2EE
Contenedores La arquitectura se compone de cuatro contenedores
Un contenedor de WEB. Para hospedar Java servlets y páginas JSP.
Un contenedor de EJB. Para hospedar componentes JavaBeans
Un contenedor de Applets. Para ejecutar applets.
Un contenedor de aplicaciones clientes. Para ejecutar aplicacionesclientes de consola.
Un contenedor es un ejecutor (runtime) Java 1.2 Standar
Edition para componentes de aplicaciones
5/11/2018 4.-Desarrollo de Aplicaciones Web - slidepdf.com
http://slidepdf.com/reader/full/4-desarrollo-de-aplicaciones-web 43/57
Arquitectura de un contenedor
Componentes de aplicaciones (applicationcomponents). Incluye servlets, jsp, ejb, etc. Pueden ser empaquetados
en archivos. Definidores del despliegue e iniciación (deployment
descriptors). Un archivo en XML que describe los componentes de la
aplicación. Incluye también información adicional para la
administración efectiva de componentes de la aplicación.
5/11/2018 4.-Desarrollo de Aplicaciones Web - slidepdf.com
http://slidepdf.com/reader/full/4-desarrollo-de-aplicaciones-web 44/57
Partes de la arquitectura de un contenedor
Contratos de componentes Definidos por la JVM Para el contenedor WEB el contrato es para seguir los APIs de Servlets y JSP
APIs de servicios del contenedor Un contenedor provee una vista global a varios APIs corporativos especificados
en la plataforma J2EE Accesibles via JNDI
Servicios declarativos Son servicios o aciones que se llevan a cabo por el contenedor en el que se
encuentra una aplicación via una invocación específica en los deploymentdescriptors
Otros servicios del contenedor Recolección de basura Colecciones de recursos (resource pooling)
5/11/2018 4.-Desarrollo de Aplicaciones Web - slidepdf.com
http://slidepdf.com/reader/full/4-desarrollo-de-aplicaciones-web 45/57
Tecnologías en J2EE
Tecnologías de componentes Contienen la lógica de la aplicación
Servlets, JSP, EJB
Tecnologías de servicio
Servicios de soporte para los componentes de aplicaciones JDBC, JNDI, JTA
Tecnologías de comunicación Proveen los mecanismos de comunicación entre las diferentes partes de
la aplicación, ya sean locales o remotas
HTTP, TCP/IP, SSL, RMI, RMI-IIOP,JMS,JavaMail
5/11/2018 4.-Desarrollo de Aplicaciones Web - slidepdf.com
http://slidepdf.com/reader/full/4-desarrollo-de-aplicaciones-web 46/57
UABC. Instituto y Facultad de Ingeniería. 2007
5/11/2018 4.-Desarrollo de Aplicaciones Web - slidepdf.com
http://slidepdf.com/reader/full/4-desarrollo-de-aplicaciones-web 47/57
Desarrollando aplicaciones J2EE
1. Desarrollo del componente de la aplicación• Se modelas las lógica del sistema en la forma de componentes de
aplicaciones
2. Composición de los componentes de la aplicación en módulos• Los componentes de la aplicación se empaquetan en módulos. Se
proveen deployment descriptors para cada módulo3. Composición de módulos en la aplicación
• Integración de múltiples módulos en aplicaciones J2EE proveyendo susdeployment descriptors
4. Despliegue de la aplicación• Se despliega e instala la aplicación empaquetada en un servidorJ2EE
5/11/2018 4.-Desarrollo de Aplicaciones Web - slidepdf.com
http://slidepdf.com/reader/full/4-desarrollo-de-aplicaciones-web 48/57
Estructura de despliegue de una aplicaciónJ2EE
Se distribuye en un solo archivo .WAR Cada directorio a nivel raíz del servidor se considera
un contenedor de aplicaciones Cada aplicación WEB debe contener: Directorio WEB-INF en donde se coloca el material no visible
para el cliente Archivo web.xml, que es el deployment descriptor para cada
aplicación WEB Directorio lib, se colocan todas las librerias en archivos .jar (opcional)
Directorio classes, se colocan todas las clases en java manteniendo laestructura jerarquica de sus paquetes
5/11/2018 4.-Desarrollo de Aplicaciones Web - slidepdf.com
http://slidepdf.com/reader/full/4-desarrollo-de-aplicaciones-web 49/57
Data Acces Object (DAO)
5/11/2018 4.-Desarrollo de Aplicaciones Web - slidepdf.com
http://slidepdf.com/reader/full/4-desarrollo-de-aplicaciones-web 50/57
Definido como un “Core J2EE Patterns” Objetivo:
Abstraer y encapsular todos los accesos a la fuente dedatos
Características: DAO oculta completamente los detalles de
implementación de la fuente de datos a sus clientes
El interface expuesto por DAO no cambia cuandocambia la implementación de la fuente de datossubyacente (diferentes esquemas de almacenamiento)
d f l l l l d
5/11/2018 4.-Desarrollo de Aplicaciones Web - slidepdf.com
http://slidepdf.com/reader/full/4-desarrollo-de-aplicaciones-web 51/57
define la relación entre la lógica de presentación yempresa por una parte y por otra los datos
5/11/2018 4.-Desarrollo de Aplicaciones Web - slidepdf.com
http://slidepdf.com/reader/full/4-desarrollo-de-aplicaciones-web 52/57
Ejemplo Interface
package dao.accesoDatos;import java.sql.SQLException;import java.util.Vector;import dao.bean.Bean;public interface InterfaceDAO {
public int insert( Bean bean ) throws SQLException;public int update( Bean bean, String condicion ) throws
SQLException;
public Bean find( String codigo ) throws SQLException;public Vector select( String condicion ) throws SQLException;public int delete(String condicion) throws SQLException; }
5/11/2018 4.-Desarrollo de Aplicaciones Web - slidepdf.com
http://slidepdf.com/reader/full/4-desarrollo-de-aplicaciones-web 53/57
Ejemplo Bean DAO
5/11/2018 4.-Desarrollo de Aplicaciones Web - slidepdf.com
http://slidepdf.com/reader/full/4-desarrollo-de-aplicaciones-web 54/57
Ejemplo Bean DAO
5/11/2018 4.-Desarrollo de Aplicaciones Web - slidepdf.com
http://slidepdf.com/reader/full/4-desarrollo-de-aplicaciones-web 55/57
Ventajas de Usar DAO
Independencia del DBMS
Reusabilidad y fácil Acceso
Especialización de la capa
Modificación simple. (ejemplo cambio de motor dedatos)
5/11/2018 4.-Desarrollo de Aplicaciones Web - slidepdf.com
http://slidepdf.com/reader/full/4-desarrollo-de-aplicaciones-web 56/57
Desventaja
Es mas lento en el acceso a datos.
No es directo el acceso a la base de datos.