4.-desarrollo de aplicaciones web

57
 “DESARROLLO DE APLICACIONES WEB EMPLEANDO EL MODELO J2EE” Andrés Ramos Magna

Upload: jaime-marchant-benavides

Post on 10-Jul-2015

183 views

Category:

Documents


0 download

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.

 

5/11/2018 4.-Desarrollo de Aplicaciones Web - slidepdf.com

http://slidepdf.com/reader/full/4-desarrollo-de-aplicaciones-web 57/57

Servidores J2EE

WebSphere IBM

Weblogic OracleSun

SunJava SystemApplicationSever Glassfish

EAServer Sybase

Jboss

JoNas

Otros Zope

IIS