Sie sind auf Seite 1von 57

DESARROLLO DE APLICACIONES WEB EMPLEANDO EL MODELO J2EE

Andrs Ramos Magna

Java

Historia
Lenguaje

orientado a objetos creado por Sun Microsystems


Encapsulacin ocultacion de datos y metodos Herencia Polimorfismo circulo.area() , cuadrado.area()

xito

alcanzado gracias a:
aplicaciones web
del S.O. y plataforma

Internet:

Independencia Marketing

Plataforma Java
Java Language

Java Bytecode Java API Java Virtual Machine Plataform

Caractersticas

El cdigo Java se estructura en clases

Las clases se estructuran a su vez en paquetes

Clase Object de la que derivan las dems Los tipos bsicos no son clases

void, char, boolean, byte, int, array las clases derivadas pueden aadir variables y (re)definir mtodos no definen ninguno de sus mtodos y nicamente declaran constantes

Herencia simple:

Herencia mltiple: interfaces

class Circulo extends Figura implements Superficie

CONTROL DE ACCESO
-

En variables y mtodos miembro Tres tipos:


-

public protected private


Modificador acceso Misma clase Subclase Clase externa en el mismo paquete Clase externa en otro paquete Public Protected Private

[*]

Concepto de static
-

Afecta a variables y mtodos Hacen referencia a la clase (no al objeto) Se inicializan justo antes de utilizar por primera vez la clase Llamada:
-

Clase.variable (objeto.variable -> no aconsejado). Clase.metodo()

Ej: Math.cos()

APLICACIONES WEB

Pila de protocolos
HTML HTTP TCP

IP MAC - LLC
FSICO

Modelo Cliente Servidor

Cuando un usuario desea acceder a una determinada pgina web, utiliza un navegador Similarmente en el otro extremo se precisa un servidor

HTTP

Evolucin

Inicialmente, nicamente informacin esttica.


HTML

esttico Aplicaciones pobres

Posteriormente, ejecucin de cdigo en el lado del cliente:


HTML

dinmico: JavaScript Principalmente mejoras de interfaz

Evolucin (II)

Programacin en el lado del servidor:


CGIs Pginas

ASP Pginas JSP, servlets PHP J2EE, .NET Zope, Ruby on Rails

Evolucin (III)

Web Services
Interoperabilidad

entre servidores y clientes Programacin de procedimientos remotos WSDL SOAP, XML-RPC WS-Security

Esquema de Implementacin

Arquitectura Cliente-Servidor

1 sola capa
1

cliente 1 servidor

Servidor

Cliente

Arquitecturas de sistemas distribudos: 2-tier

Dos divisiones (2-tier)


Usualmente dividido en presentacin y datos El cliente realiza todo el trabajo de cmputo mientras el servidor provee los datos Emplea mucho ancho de banda Requiere mltiples llamadas al servidor para operaciones simples Corre el riesgo de saturar de conexiones al servidor El mantenimiento de la aplicacin y su actualizacin es muy difcil

2 capas

UABC. Instituto y Facultad de Ingeniera. 2007

2 capas con acceso de datos en capa lgica

UABC. Instituto y Facultad de Ingeniera. 2007

Arquitecturas de sistemas distribudos: 3-tier

Tres divisiones (3-tier)


Cada capa est separada del resto La interaccin se realiza mediante interfases bien denifidas Comunmente se compone de

Despliegue (presentation layer) Lgica de la aplicacin (bussiness layer) Datos (data layer)

Facilita el mantenimiento al tener separados los componentes del sistema El origen de los datos es independiente del cliente

3 capas

UABC. Instituto y Facultad de Ingeniera. 2007

3 capas y seguridad

UABC. Instituto y Facultad de Ingeniera. 2007

Arquitecturas de sistemas distribudos: n-tier

N divisiones (n-tier)
No tiene un esquema nico Se compone de:

Interfaz de usuarios Lgica de presentacin Lgica del negocio Infraestructura de servicios Capa de datos

La capa lgica se divide por funciones ms que fsicamente Pueden estar involucrados ms de un servidor para cada componente

Optimizacin de recursos

Porqu usar componentes?

Fomentan la reutilizacin de cdigo Optimiza recursos. Accede a recursos distribudos Facilita el acceso a sistemas legados. Permite desarrollar soluciones para una variedad grande de clientes

Componente en e-commerce

Relacin entre un componente y su interfaz

UABC. Instituto y Facultad de Ingeniera. 2007

Patrones de diseo

Patrn de diseo Modelo-Vista-Controlador (MVC)


Uno de los ms socorridos en el modelo J2EE Separa la presentacin, la manipulacin de los datos y la introduccin de informacin

Modelo (Modelo). Se encarga de la lgica de la aplicacin y la manipulacin de datos Vista (View). Se encarga del despliegue y la actualizacin de los elementos que la componen Controlador (Controller). Se encarga de la introduccin de datos a la aplicacin, por lo general de parte del usuario

Modelo-Vista-Controlador

MVC es un patrn de diseo orientado a objetos. Fue desarrollado en el Centro de Investigaciones Xerox Palo Alto a finales de los aos setenta.

Por qu utilizar en MVC en el web?

Es una solucin que va muy bien con los sitios web. Cada hit en una pgina es la interaccin de un usuario (entrada) con el sistema (el servidor web procesando los scripts PHP). Asumiendo que se necesita mantener persistencia y que se necesita presentar la informacin en una variedad de maneras, el patrn MVC es una buena solucin.

Diagrama de MVC

El Modelo

El modelo es la porcin que implementa la Lgica del Negocio. Se le suele llamar el modelo porque representa objetos y sus interacciones del mundo real.

La vista

Las vistas son las porciones de la aplicacin MVC que presentan salida al usuario. La salida ms comn para aplicaciones web es el HTML. Podran ser otras.

El controlador

El controlador es el corazn de la aplicacin MVC. Este componente es el objeto que debera estar pendiente de las solicitudes HTTP hechas por el usuario. El controlador generalmente crea instancias de los modelos y utiliza mtodos de esos modelos para conseguir los datos que se presentan a los usuarios, envindolos a la vista correspondiente.

Diagrama de MVC con tecnologas

Flujo solicitud para ver

Flujo modificacin de los datos

Modelo MVC

Espacios de ejecucin de un sistema distribudo

UABC. Instituto y Facultad de Ingeniera. 2007

Requerimientos del J2EE

Independencia de la plataforma

Especialmente del lado del cliente

Reusabilidad Modularidad Escalabilidad Facilidad de administracin y mantenimiento

La idea detrs del J2EE es la de proveer un estandar simple y unificado para aplicaciones distribudas a travs de modelos de aplicacin basado en componentes.

La plataforma J2EE

Es en escencia un ambiente de servicios de aplicaciones distribudas Se compone de:


Una

infraestructura de ejecucin para el hospedaje de aplicaciones (runtime hosting applications) Una familia de APIs para construir aplicaciones

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

Arquitectura de J2EE

Contenedores

La arquitectura se compone de cuatro contenedores


Un contenedor de WEB. Para hospedar Java servlets y pginas JSP. Un contenedor de EJB. Para hospedar componentes JavaBeans Un contenedor de Applets. Para ejecutar applets. Un contenedor de aplicaciones clientes. Para ejecutar aplicaciones clientes de consola.

Un contenedor es un ejecutor (runtime) Java 1.2 Standar Edition para componentes de aplicaciones

Arquitectura de un contenedor

Componentes de aplicaciones (application components).

Incluye servlets, jsp, ejb, etc. Pueden ser empaquetados en archivos.

Definidores del despliegue e iniciacin (deployment descriptors).


Un archivo en XML que describe los componentes de la aplicacin. Incluye tambin informacin adicional para la administracin efectiva de componentes de la aplicacin.

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 Un contenedor provee una vista global a varios APIs corporativos especificados en la plataforma J2EE Accesibles via JNDI
Son servicios o aciones que se llevan a cabo por el contenedor en el que se encuentra una aplicacin via una invocacin especfica en los deployment descriptors

APIs de servicios del contenedor

Servicios declarativos

Otros servicios del contenedor

Recoleccin de basura Colecciones de recursos (resource pooling)

Tecnologas en J2EE

Tecnologas de componentes

Contienen la lgica de la aplicacin

Servlets, JSP, EJB

Tecnologas de servicio

Servicios de soporte para los componentes de aplicaciones

JDBC, JNDI, JTA

Tecnologas de comunicacin

Proveen los mecanismos de comunicacin entre las diferentes partes de la aplicacin, ya sean locales o remotas

HTTP, TCP/IP, SSL, RMI, RMI-IIOP,JMS,JavaMail

UABC. Instituto y Facultad de Ingeniera. 2007

Desarrollando aplicaciones J2EE


1.

Desarrollo del componente de la aplicacin


Se modelas las lgica del sistema en la forma de componentes de aplicaciones

2.

Composicin de los componentes de la aplicacin en mdulos


Los componentes de la aplicacin se empaquetan en mdulos. Se proveen deployment descriptors para cada mdulo

3.

Composicin de mdulos en la aplicacin


Integracin de mltiples mdulos en aplicaciones J2EE proveyendo sus deployment descriptors

4.

Despliegue de la aplicacin
Se despliega e instala la aplicacin empaquetada en un servidor J2EE

Estructura de despliegue de una aplicacin J2EE

Se distribuye en un solo archivo .WAR Cada directorio a nivel raz del servidor se considera un contenedor de aplicaciones Cada aplicacin 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 aplicacin WEB Directorio lib, se colocan todas las librerias en archivos .jar (opcional) Directorio classes, se colocan todas las clases en java manteniendo la estructura jerarquica de sus paquetes

Data Acces Object (DAO)

Definido como un Core J2EE Patterns


Objetivo: Abstraer y encapsular todos los accesos a la fuente de datos

Caractersticas:
DAO oculta completamente los detalles de implementacin de la fuente de datos a sus clientes El interface expuesto por DAO no cambia cuando cambia la implementacin de la fuente de datos subyacente (diferentes esquemas de almacenamiento)

define la relacin entre la lgica de presentacin y empresa por una parte y por otra los datos

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; }

Ejemplo Bean DAO

Ejemplo Bean DAO

Ventajas de Usar DAO

Independencia del DBMS Reusabilidad y fcil Acceso Especializacin de la capa Modificacin simple. (ejemplo cambio de motor de datos)

Desventaja

Es mas lento en el acceso a datos. No es directo el acceso a la base de datos.

Servidores J2EE
WebSphere IBM Weblogic OracleSun SunJava SystemApplicationSever Glassfish EAServer Sybase Jboss JoNas Otros Zope IIS

Das könnte Ihnen auch gefallen