Académique Documents
Professionnel Documents
Culture Documents
Java
Historia
Lenguaje
xito
alcanzado gracias a:
aplicaciones web
del S.O. y plataforma
Internet:
Independencia Marketing
Plataforma Java
Java Language
Caractersticas
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:
CONTROL DE ACCESO
-
[*]
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:
-
Ej: Math.cos()
APLICACIONES WEB
Pila de protocolos
HTML HTTP TCP
IP MAC - LLC
FSICO
Cuando un usuario desea acceder a una determinada pgina web, utiliza un navegador Similarmente en el otro extremo se precisa un servidor
HTTP
Evolucin
Evolucin (II)
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
2 capas
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
3 capas y seguridad
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
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
Patrones de diseo
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.
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.
Modelo MVC
Independencia de la plataforma
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
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
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
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
Servicios declarativos
Tecnologas en J2EE
Tecnologas de componentes
Tecnologas de servicio
Tecnologas de comunicacin
Proveen los mecanismos de comunicacin entre las diferentes partes de la aplicacin, ya sean locales o remotas
2.
3.
4.
Despliegue de la aplicacin
Se despliega e instala la aplicacin empaquetada en un servidor 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:
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
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; }
Independencia del DBMS Reusabilidad y fcil Acceso Especializacin de la capa Modificacin simple. (ejemplo cambio de motor de datos)
Desventaja
Servidores J2EE
WebSphere IBM Weblogic OracleSun SunJava SystemApplicationSever Glassfish EAServer Sybase Jboss JoNas Otros Zope IIS