ARQUITECTURA TECNOL - PowerPoint PPT Presentation

1 / 202
About This Presentation
Title:

ARQUITECTURA TECNOL

Description:

ARQUITECTURA TECNOL GICA DE APLICACIONES WEB IN72J Ezequiel T. Mu oz K. etmunoz_at_gmail.com, etmunoz_at_yahoo.com Ingeniero Civil Industrial, MBE (i) – PowerPoint PPT presentation

Number of Views:463
Avg rating:3.0/5.0
Slides: 203
Provided by: etmkClin7
Category:

less

Transcript and Presenter's Notes

Title: ARQUITECTURA TECNOL


1
ARQUITECTURA TECNOLÓGICA DE APLICACIONES WEB
IN72J
  • Ezequiel T. Muñoz K.
  • etmunoz_at_gmail.com, etmunoz_at_yahoo.com
  • Ingeniero Civil Industrial, MBE (i)?
  • Departamento de Ingeniería Industrial
  • Universidad de Chile

2
Aplicaciones
3
Contexto Arquitectura
Arquitectura Empresarial CODELCO

Arquitectura del Negocio
Arquitectura de Calidad y Seguridad
Arquitectura de Desarrollo e Integración
Estrategia del Negocio y Organización
Arquitectura de Procesos de Negocios
Arquitectura de Datos
Arquitectura de Aplicaciones
Arquitectura de Información
Arquitectura de Aplicaciones (Portafolio)?
Arquitectura de Operaciones
Arquitectura de Aplicaciones (Diseño)?
Arquitectura Técnica
Arquitectura de Infraestructura
Arquitectura de Operaciones
4
Arquitectura Empresarial
Arquitectura del Negocio
Conductores del Negocio
Visión del Negocio
Misión Objetivos Impulsos Estratégicos
Visión Futuro Oportunidades
Maneja, Requiere
Arquitectura de Información
Guía el Desarrollo
Arquitectura de Aplicaciones
Se soporta con
Arquitectura de Infraestructura
5
Zachman
6
Arquitectura Empresarial
  • Procesos que soportan el Negocio
  • Funciones del Negocio
  • Organización que desarrolla el Negocio
  • Ubicaciones del Negocio
  • Factores y Conductores del Negocio
  • Componentes del Negocio
  • Modelo de Información
  • Conjuntos de Datos
  • Repositorios
  • Relación con Funciones del Negocio
  • Relación con Aplicaciones
  • Aplicaciones y sus Módulos
  • Relación con Procesos del Negocio
  • Relación entre Aplicaciones
  • Tecnología Empleada
  • Requerimientos de Interfaz
  • Hardware
  • Software
  • Redes de Comunicaciones
  • Telecomunicaciones
  • Radiocomunicaciones
  • Tecnología de Automatización

7
La Estandarización
Estándares de Negocio
Estándares de Información
Estándares de Desarrollo e Integración
Estándares de Calidad y Seguridad
Estándares de Aplicaciones
Estándares de Infraestructura
La estandarización es un proceso que apunta al
manejo óptimo de los recursos TIC.
8
Las Aplicaciones
9
Tipos de componentes
  • De cara a clasificar las diferentes
    arquitecturas, es necesario distinguir los tipos
    fundamentales de componentes que se dan en una
    aplicación
  • De presentación
  • Se encarga de la entrada de datos y de mostrar
    los resultados
  • De negocio
  • Realiza las funciones propias de la aplicación
  • Normalmente es necesario cierto procesamiento de
    datos
  • De acceso a datos
  • Permite comunicarse con el sistema de
    almacenamiento de datos (normalmente una base de
    datos, aunque también podría ser un sistema
    jerárquico de ficheros)

10
Antecedentes
  • Al principio, todo centralizado
  • Mainframe
  • Toda la lógica estaba en un único ordenador
    central
  • El usuario se comunicaba con él a través de
    terminales tontas
  • Compartimiento de archivos
  • Las primeras redes de ordenadores personales (PC)
    estaban basadas en arquitecturas de
    compartimiento de ficheros
  • Había un servidor de ficheros y todo el trabajo
    se realizaba en la máquina local
  • En los 90 cambia el modelo de computación, debido
    al aumento del número de usuarios y al
    advenimiento de las interfaces gráficas de
    usuario (GUI)?

11
Surgimiento de la arquitectura Cliente/Servidor
  • Suele llevar asociada una base de datos (SGBD)?
  • Hace falta algún mecanismo de comunicación
    distribuida
  • Por ejemplo, Remote Procedure Calls (RPC)?

12
Esquema de la arquitectura C/S
Aplicaciones clientes
Base de datos
13
Arquitectura Cliente/Servidor
  • También conocida como arquitectura en dos capas,
    ya que consiste en dos partes que cooperan entre
  • Los clientes se comunican directamente con el
    servidor
  • Puede haber varios tipos
  • Que los clientes se encarguen únicamente de
    mostrar los resultados, y en el servidor se
    ejecute toda la lógica del negocio, de acceso a
    datos e incluso la mayor parte de la presentación
  • El otro extremo sería cuando casi toda la lógica
    reside en el cliente, y el servidor sólo realiza
    el acceso a los datos
  • P. ej., mediante el uso de applets de Java

14
Características
  • La base de datos compartida reside en un servidor
    con el suficiente espacio en disco y capacidad de
    procesamiento para soportar grandes volúmenes de
    información y consultas
  • El término base de datos se usa aquí de modo
    genérico (puede referirse a cualquier origen de
    datos)
  • Balance
  • ó FAT ?CLIENT
  • Ó FAT SERVER

15
Ventajas (dos capas)?
  • La mayoría de las organizaciones necesitan un
    control centralizado sobre los datos que asegure
    su consistencia
  • Por el contrario, las aplicaciones que hacen uso
    de estos datos suelen requerir mucho menos
    control centralizado
  • La mayoría se limitan a presentar estos datos de
    alguna forma
  • La arquitectura en dos capas se adapta bien a
    estas necesidades

16
Inconvenientes (dos capas)?
  • La idea anterior de tener todos los datos
    compartidos y todo el procesamiento local no deja
    de ser una simplificación un tanto burda
  • Muchos de los aspectos de procesamiento de una
    empresa están compartidos
  • Las bases de datos distan mucho de proporcionar
    un lenguaje de programación completo
  • Los datos no están encapsulados, por lo que sigue
    siendo necesario que el programador de las
    aplicaciones realice bastantes tareas de control
    de la integridad
  • Todo ello hace que este enfoque sea difícil de
    mantener
  • No resulta fácil cambiar la estructura de una
    base de datos de la que dependen un montón de
    aplicaciones
  • Los procedimientos almacenados, aunque ayudan, no
    son la solución (cuidado con la portabilidad)

17
Complejidad Cliente/Servidor
18
(No Transcript)
19
(No Transcript)
20
(No Transcript)
21
(No Transcript)
22
(No Transcript)
23
(No Transcript)
24
(No Transcript)
25
(No Transcript)
26
(No Transcript)
27
(No Transcript)
28
(No Transcript)
29
(No Transcript)
30
(No Transcript)
31
Arquitectura de tres capas
  • El esquema anterior ha ido evolucionando en el
    tiempo y ha dado lugar a una arquitectura
    mejorada de tres capas (aunque realmente algo
    similar ya había sido propuesto a finales de los
    70).

32
Esquema de la arquitectura
Aplicaciones clientes
Dominio
Base de datos
Esquema externo
Esquema conceptual
Esquema interno
33
Nueva capa Dominio
  • Aparece una nueva capa la de Dominio
  • Representa realmente a la empresa
  • Debería obviar tanto la estructura de los datos
    como su ubicación
  • Es su contribución más importante
  • Permite describir las aplicaciones basándose
    únicamente en el dominio a modelar
  • También posibilita cambiar la estructura física
    de la base de datos y su ubicación sin afectar a
    las aplicaciones existentes
  • La Tecnología de Objetos representa el mejor modo
    de implementar (modelar) dicha capa

34
Arquitecturas de n capas
  • A la hora de la verdad (en el diseño detallado),
    las arquitecturas en tres capas suelen separarse
    aún más
  • Así, es posible diferenciar entre lógica de
    presentación y de aplicación
  • De un lado, estrictamente la interfaz de usuario
  • De otro, los servicios utilizados tanto por la
    capa de presentación como por el dominio

35
Despliegue
  • Una arquitectura lógica de tres capas admite
    varias implementaciones físicas
  • En el caso de las aplicaciones Web, normalmente
    los clientes pesados del modelo tradicional
    cliente/servidor se dividen en
  • Un cliente ligero
  • Normalmente, un navegador Web encargado de
    mostrar las páginas HTML que le envía el
    servidor, y que sirve también para la entrada de
    datos
  • La lógica de aplicación, que se traslada al
    servidor

36
Ventajas
  • Reutilización
  • La aplicación está formada por una serie de
    módulos que se comunican a través de interfaces,
    y que cooperan entre sí para dar lugar al
    comportamiento deseado
  • Idealmente, se trataría de objetos independientes
    que podrían ser empleados en otras aplicaciones
  • Facilidad de mantenimiento
  • Eficiencia en el acceso a los datos y en el uso
    de la red
  • Posibilita la especialización de los
    desarrolladores

37
Servidores de aplicaciones
  • Es un programa que provee la infraestructura
    necesaria para las aplicaciones Web empresariales
  • Qué quiere decir esto?
  • Que los programadores van a poder dedicarse casi
    en exclusiva a implementar la lógica del dominio,
    ya que servicios de uso común, como
    transacciones, seguridad, persistencia, etc. ya
    son proporcionados por el servidor Web
  • Se ha convertido en una pieza de software clave
    para cualquier empresa dedicada al comercio
    electrónico
  • Es una capa intermedia (middleware) que se sitúa
    entre el servidor Web y las aplicaciones y bases
    de datos subyacentes

38
Visión general
Aplicación cliente
Aplicación cliente
Aplicación cliente
SGBD
39
Motivación
  • Comienzan a surgir cuando queda claro que las
    aplicaciones cliente/servidor no iban a ser
    escalables a un gran número de usuarios
  • Debido a las características de los clientes
    pesados
  • Se hacía necesario mover las reglas de negocio a
    algún lugar intermedio entre los clientes y la
    base de datos
  • Empezaron a surgir productos para hacer esa tarea
  • Cada compañía los llamaba de una forma distinta
  • Servidores de transacciones, servidores de
    aplicaciones

40
Servicios proporcionados
  • Creación y gestión de los componentes del
    servidor
  • Clustering
  • Equilibrado de carga
  • Transacciones
  • Seguridad
  • Acceso a datos

41
Gestión de la sesión
El servidor ha de conservar información entre
peticiones del usuario a lo largo de la duración
de una sesión
  • HTTP es un protocolo sin sesión
  • No permite mantener una conexión abierta entre el
    cliente y el servidor más allá de lo que dura la
    transferencia del documento en cuestión
  • En cualquier aplicación de comercio electrónico,
    es necesario poder identificar al usuario a
    través de su navegación por el sitio Web
  • Autenticación, adición de productos al carrito de
    la compra, etc.

42
Gestión de la sesión
  • La implementación a mano se complicaría
    enormemente en el caso de contar con varios
    servidores (equilibrado de carga)?
  • La petición de un usuario registrado en la
    máquina A puede ser redirigida al servidor B
  • Lo lógico es que sea el servidor de aplicaciones
    quien se encargue de gestionar la sesión
  • Además, debería ser más eficiente que si lo
    programamos nosotros mismos

43
Equilibrado de carga
Los servidores de aplicaciones proporcionan
mecanismos de equilibrado de carga (aspecto clave
para la escalabilidad)?
  • Por equilibrado de carga (load balancing) se
    entiende la capacidad de repartir el
    procesamiento entre distintos servidores
  • Las peticiones de los clientes se redirigen a la
    máquina que más desocupada se encuentre en ese
    momento
  • Mejora de rendimiento de la aplicación
  • No es tan sencillo como añadir una nueva máquina
    y ya está
  • Además de la escalabilidad, se consigue una mayor
    tolerancia a fallos

44
Acceso a datos
  • Los servidores de aplicaciones proveen
    facilidades para administrar conexiones a bases
    de datos relacionales
  • Oracle, SQL Server, DB2
  • Los componentes (las clases que implementan la
    lógica del negocio) acceden a ellas de forma
    estándar
  • Independiente de la base de datos subyacente
  • También suelen permitir acceder a otros tipos de
    fuentes de datos
  • Tales como distintos ERP (SAP, Vaan...),
    repositorios XML, etc.
  • Los servidores de aplicaciones son también
    importantes, por tanto, como mecanismo de
    integración de sistemas heredados

45
Pooling de conexiones
  • Abrir una conexión a una base de datos suele ser
    un proceso costoso
  • No es viable abrir una nueva conexión por cada
    consulta a la base de datos
  • Penalizaría enormemente el rendimiento de la
    aplicación
  • Los servidores de aplicaciones suelen contar con
    una serie de conexiones permanentemente abiertas
    que distribuye de forma transparente a los
    distintos procesos
  • Se debería poder configurar el número de
    conexiones abiertas, e incluso la política de
    asignación

46
Gestión transaccional
Transacción secuencia de pasos que, o se
ejecutan todos, o si no el sistema queda en el
estado original
  • Son un elemento básico de cualquier aplicación
    comercial
  • Evitan que haya información inconsistente
  • Sería complejísimo implementarlas a mano
  • Con un servidor de aplicaciones que tenga esta
    característica, bastaría con indicarle dónde
    empieza y termina la transacción
  • Encargándose él de deshacer los pasos intermedios
    en caso de un error del sistema

47
Tecnologías actuales
  • Actualmente, las dos plataformas más comunes que
    implementan los servidores de aplicaciones son
    J2EE y, más recientemente, ha surgido .NET
  • De hecho, hasta hace poco hablar de servidores de
    aplicaciones era prácticamente hablar de J2EE
  • (aunque no debemos hacer tal asociación)?

48
Algunas Definiciones
49
Definiciones
  • El modelo de red muestra las principales
    componentes del sistema, donde están ubicadas y
    como se conectan unas con otras.
  • La especificación de hardware y software
    describen estas componentes en detalle y apoya la
    compra y adquisición de productos para la
    implementación.

50
Que es un Servidor?
  • Es un programa cuyo input son peticiones
    recibidas por la red, y cuyo output es enviado
    por la red al cliente que envió la petición.
  • Usualmente se le asocia a la máquina física, pero
    una máquina por si sola no hace nada...
  • Las peticiones/respuestas estan formalizadas por
    el llamado Protocolo de transmisión. El lenguage
    de la transmisión y los pasos que se deben
    cumplir para enviar/recibir los datos.

51
Exclamación TípicaSe cayó el servidor!
  • Un servidor no es una aplicación simple. En su
    estructura interna es muy similar a un Sistema
    Operativo. Ya conocen cuanto tiempo ha costado
    que los SO se estabilizen.
  • Entre los mas estables el servidor web apache
    (http//www.apache.org), la base de datos oracle
    (http//www.oracle.com).
  • Razones Típicas
  • Muchos clientes conectados.
  • Falta de memoria.
  • Errores del programa.
  • Problemas de concurrencia.

52
Arquitecturas Clásicas
  • Si concideramos separar la lógica del
    procesamiento de los datos según
  • Almacenamiento de Datos (archivos y prog que
    accede)?
  • Lógica de Acceso a los Datos (extraer los datos)?
  • Lógica de la Aplicación (negocio)?
  • Lógica de Presentación (interfaces)?
  • Podemos tener una variedad de arquitecturas según
    como distribuyamos los procesos anteriores en
    CAPAS.

53
Esquema de mainframe
  • Se trata de un computador que posee toda la
    lógica del negocio y los datos centralizados.
  • Se accede a través de un terminal tonto (no
    procesa)?
  • Este esquema quedó obsoleto, pero hoy en día ha
    vuelto a la vida con la introducción de los
    Network Computer

54
Una Capa Modelo Mainframe
  • Una capa es la encapsulación de lógica y de
    procesamiento. En este caso
  • Centraliza el procesamiento en un servidor
    llamado Host, con el que varios usuarios
    interactuaban a través de dispositivos como
    terminales, lectoras de tarjetas e impresoras.
  • En el Host se almacenan los datos y se realiza
    todo el procesamiento recibir el requerimiento
    del usuario, actualizar y rescatar información de
    las bases de datos, realizar el procesamiento
    necesario, entregar una respuesta al usuario y
    realizar la gestión de los recursos compartidos.

55
Una Capa Modelo Mainframe
  • Ventajas
  • Punto de control centralizado.
  • Actualizar cambios en la lógica del negocio es
    fácil (es 1 solo lugar).
  • Desventajas
  • Sobrecarga del servidor (mas cpu por tareas)?
  • Upgrade del servidor es caro
  • Se requiere mas disco duro (Programas Data)?
  • Más Riesgoso ante una Falla (todos los huevos en
    una misma canasta).

56
Dos Capas Arquitectura basada en el cliente.
57
Dos Capas Arquitectura basada en el cliente.
  • Todas las lógicas en el cliente, el servidor se
    dedica a almacenar los datos en archivos.
  • Típicamente muchos pcs con un programa (Visual
    Basic) que accede a un servidor de archivos común
    en la empresa.

58
Dos Capas Arquitectura basada en el cliente.
  • Ventajas
  • Los clientes son más baratos
  • Software
  • barato de desarrollar que MF (db-server
    simplifica).
  • fácil de usar.
  • Desventajas
  • Sobrecarga de la red por flujos de datos.
  • Costosos de mantener en el tiempo si son muchos
    clientes (el www podria funcionar asi?).
  • Acceso a la BD también se puede sobrecargar.

59
Dos Capas Arquitectura Cliente Servidor
(Tradicional).
L.presentacion L.Aplicación
Almacenamiento L.Accesos Datos L.Aplicación
60
Dos capas Cliente servidor tradicional
  • Se distribuye la carga de procesamiento entre la
    máquina cliente y el servidor.
  • En la máquina cliente se ejecuta una aplicación
    que se encarga de validar y procesar el
    requerimiento del usuario antes de ser enviado al
    servidor.
  • El servidor procesa dicho requerimiento, realiza
    las actualizaciones necesarias y devuelve los
    resultados al cliente. Los resultados son
    recibidos por la aplicación cliente y presentados
    al usuario.

61
Dos capas Desventajas del Cliente/Servidor (1)?
  • Distribución y Actualización de Aplicaciones
  • Se deben instalar porciones importantes de código
    en el Cliente
  • Problemas con el S.O
  • Manejo de Versiones (upgrade)?
  • Las actualizaciones generalmente requieren
    desinstalar y reinstalar el programa

62
Dos capas Desventajas del Cliente/Servidor (2)?
  • Capacitación de Usuarios
  • Distintas interfaces para las aplicaciones,
    incluso para versiones del mismo programa
    (dependiente del proveedor)?
  • Dificultar de estructura las aplicaciones en una
    aplicación central

63
Dos capas Desventajas del Cliente/Servidor (3)?
  • Evolución de las Aplicaciones
  • Cambios en las aplicaciones se deben replicar en
    cada cliente
  • Esto incluye errores y evolución normal de los
    programas

64
Dos capas Desventajas del Cliente/Servidor (4)?
  • Distribución de Carga del Sistema
  • No existe posibilidad de diferenciar los clientes
    según capacidad de proceso o ancho de banda
  • Programación en el Cliente incompatible
    completamente con la del Servidor (lenguajes,
    sistemas operativos, etc.)?

65
Dos capas Desventajas del Cliente/Servidor (5)?
  • Disponibilidad de las Aplicaciones
  • Se deben instalar las aplicaciones en los
    clientes para acceder a los servicios
  • Usuarios remotos
  • Usuarios temporales
  • No se puede definir con facilidad niveles de
    acceso a las aplicaciones

66
Arquitectura de Tres Capas
  • Pretende dar solución a los problemas enunciados
    anteriormente
  • Divide la aplicación en tres tipos de servicios
  • Visualización, Lógica y Datos

67
Capa de Presentación
  • Involucra toda la interacción con el usuario.
    Especifica operaciones como repintar una ventana,
    capturar el clic del Mouse y realizar
    validaciones mínimas. El modelo no permite la
    interacción del usuario con otras capas.
  • Esta capa no conoce sobre la tecnología de
    almacenamiento de datos y tiene un conjunto
    definido de interfaces que la habilitan para
    comunicarse con la capa Lógica del Negocio y
    generar transacciones de negocio.

68
Capa de Aplicación (Negocio)?
  • Es la capa media entre el usuario y el
    almacenamiento físico de datos, donde se efectúa
    la mayoría del procesamiento. Esta capa no conoce
    los detalles específicos de la capa servicio de
    datos ni el tipo de Presentación. Sólo puede
    procesar datos, no almacenarlos ni presentarlos.
  • Es en esta capa donde se resuelve toda la lógica
    del negocio asociada a las transacciones (reglas
    que definen las actividades que son factibles de
    realizar sobre los datos), y se realiza una
    conexión eficiente a la Base de Datos.

69
Capa de Datos
  • Esta capa se encarga de cualquier persistencia
    física requerida por la aplicación. Aquí van los
    mecanismos de servicios de datos específicos.
  • Aquí se definen los motores de bases de datos o
    manejadores de archivo que se usarán.

70
Ventajas
  • Pueden convivir distintos tipos de aplicaciones
    en la capa cliente aplicación Java, aplicación
    CORBA y clientes delgados HTML.
  • Aporta flexibilidad en la capa base de datos
    porque permite el acceso a variados servicios de
    datos distintos motores de bases de datos, con
    distintas tecnologías (relacionales u orientados
    a objetos), en distintos servidores.
  • Además de la posibilidad de utilizar al mismo
    tiempo más de un tipo de motor de base de datos.

71
Ventajas (2)?
  • Utilizando la programación multitareas es posible
    aumentar la cantidad de conexiones a los
    servidores de bases de datos.
  • Es posible compartir y reutilizar el código de
    los servicios de la capa intermedia. Por ejemplo
    un mismo servidor intermedio puede atender a
    diversas aplicaciones cliente.
  • Se pueden destinar los servidores de más memoria
    y capacidad de cálculo para el manejo de la capa
    de la aplicación, y destinar los que poseen mayor
    capacidad de manipulación de discos para la
    administración de la base de datos.

72
Ventajas (3)?
  • La carga de trabajo puede ser distribuida en
    varias aplicaciones o servidores de aplicación.
  • Es posible diseñar las aplicaciones trabajando
    inicialmente con un único servidor, para luego
    desdoblarla en sus capas intermedias cuando el
    crecimiento de los requerimientos del
    procesamiento así lo exijan.
  • Ante un incremento en las exigencias del sistema,
    es posible incorporar en la capa intermedia,
    máquinas de similares o diferentes
    características, logrando mayor eficiencia en la
    atención de requerimientos, gracias al
    procesamiento paralelo.

73
Tres capas (1)?
  • Lógica
  • Visualización presentación de información y
    recopilación de datos
  • Lógica todos los algoritmos y procesos que
    componen el sistema
  • Datos la información que maneja el sistema

74
Tres capas (2)?
  • Físicamente se puede estructurar esta
    arquitectura según el tipo de aplicación y las
    necesidades del sistema
  • Los parámetros principales para el análisis
  • Capacidad de Proceso
  • Ancho de Banda

75
Tres capas (3)?
  • Capacidad de Proceso
  • Si no se tiene una estimación clara de la
    capacidad de proceso de los clientes, se asume la
    mínima capacidad (P.ej Internet)?
  • Si se tiene una noción más precisa de la
    capacidad de los clientes, se considera
    incorporar un mayor nivel de lógica (P.ej
    Intranet)?

76
Tres capas (4)?
  • Ancho de Banda
  • Si se tiene un ancho de banda reducido se trata
    de transmitir la menor cantidad de información.
    Se privilegia el HTML
  • Si se tiene un ancho de banda más controlado, se
    considera el envío de cantidad de información
    mayores, incluyendo aplicaciones, al cliente

77
Tres capas (5)?
  • Se consideran dos escenarios típicos
  • Internet baja capacidad de proceso, ancho de
    banda reducido
  • Intranet, Extranet capacidad de proceso más
    controlada, mejor ancho de banda

78
Tres capas (6)?
  • Internet
  • Visualización principalmente HTML y algo de
    programación en el Cliente para validación o
    datos o cálculo centrales
  • Lógica se encuentra completamente en el servidor
    o parte de ella en la base de datos (Store
    Procedures)?
  • Datos se encuentra en el mismo servidor que la
    lógica de la aplicación o en un servidor aparte

79
Tres capas (7)?
  • Intranet
  • Visualización páginas HTML con Applets de Java
  • Lógica se contiene parte de la lógica del
    sistema en
  • Datos se encuentra en el mismo servidor o en un
    servidor aparte

80
Tres capas (8)?
  • Ventajas
  • Las aplicaciones siempre se encuentran en el
    servidor
  • Los cambios se realizan una vez en forma
    centralizada y se distribuyen automáticamente
  • Se puede controlar mejor el desempeño del sistema
    y mejorarlo si es necesario. Se pueden agregar
    clusters de servidores para soportar la carga

81
Tres capas (9)?
  • Ventajas (cont)?
  • El sistema puede estar integramente construído en
    Java
  • Visualización Applets y Servlets (próximo
    capítulo)?
  • Lógica Servlets y Java Beans
  • Datos Store Procedures en Java

82
La solución para sitios Web muy transaccionales.
  • Asumamos que la Internet es lenta.
  • Si agregamos lentitud en la respuesta a la
    solicitud del usuario, el resultado es que,
    después de un tiempo, nadie visite nuestro
    website.
  • En comercio electrónico, lo anterior es crítico.
  • El problema no se resuelve aumentando la
    capacidad del servidor de datos.
  • Actualmente, la mayoría de los servidores de
    datos son sistemas administradores de bases de
    datos relacionales ( Oracle, Informix, Sybase)?

83
La solución para (2)?
  • La operación tradicional de un Motor de datos en
    C/S, indica que por cada conexión a la base, se
    crea un proceso que atiende la solicitud.
  • La creación del proceso tiene su costo en tiempo
    y CPU.
  • Si hay muchas conexiones, no hay Motor que lo
    soporte.
  • Un requerimiento Web, tiene la característica de
    ser muy rápido y específico.
  • Los CGI tradicionales, levantan un proceso de
    comunicación y luego lo bajan, producto del tipo
    de transacción.

84
La solución para (3)?
  • La solución sería mantener un grupo de procesos
    que atienden a los usuarios Web y que mantienen
    la comunicación constante con el motor de datos.
  • Lo anterior define una arquitectura de tres
    capas.
  • Pero quién administra los procesos de la capa
    media?
  • Surge la idea de una solución transaccional para
    la capa media, la que depende de cuántas
    solicitudes recibirá el sitio

85
La solución para (4)
86
Consideraciones de diseño
  • Los sitios Web muy transaccionales, deben
    considerar capas medias complejas, incluso
    servidores de balanceo
  • En general, oriente el desarrollo a tres capas
    aunque físicamente sólo sean dos, en un futuro no
    lejano, puede necesitar la tercera capa.
  • Pese a toda la publicidad sobre motores de bases
    de datos, está claro que su mejor trabajo es
    administrar datos y no el Web.
  • Oriente la capa media al uso de monitores
    transaccionales

87
Una capa lógica no es una capa física
88
Múltiples capas
  • Extendiendo la lógica en que se basa esta
    arquitectura, es posible dotar al modelo de
    tantas capas como sean convenientes de acuerdo a
    las soluciones requeridas, dando origen a
    aplicaciones multi-capas.
  • La esencia del modelo de desarrollo de
    múltiples-capas, es dividir un sistema en partes
    lógicas bien definidas, que pueden ser diseñadas
    y construidas separadamente y ser expandidas
    flexiblemente a través de múltiples máquinas.

89
Múltiples capas (2)?
  • La idea es separar las diferentes partes del
    sistema, minimizar la interdependencia entre
    ellas y diseñarlas con un alto grado de cohesión
    en su funcionalidad interna.
  • Una capa particular no puede ver más que la
    interfaz pública expuesta de su capa adyacente.
    De este modo, los cambios en una capa tienen un
    impacto mínimo sobre las otras, facilitando la
    expansión y mejoras en el tiempo.

90
Nuevas Arquitecturas
  • Middleware (muchas-muchas capas)?
  • Peer to peer (gnutella, napster)?
  • Seti_at_Home
  • Mobile Agents (programas que migran)?

91
Middleware
  • Es el software que conecta aplicaciones.
  • Cual es la motivación? E-business tienen nuevas
    necesidades que no están soportadas
    explícitamente en las arquitecturas clásicas.
  • Requieren interconectarse para tener en línea
    informaciones como rastrear productos
    (amazon/DHL), disponibilidad de productos de
    terceros, estatus de cuentas bancarias.
  • Requieren de efectuar transacciones con terceros
    servicios de webpay, visa, amazon.
  • Abarca una gran variedad de tecnologías
    específicas.

92
Middleware para amazon
Conexión con DHL y TRANSBANK
93
Tipos de Middleware
  • Orientados a mensajes componentes que
    implementan un protocolo de comunicación con
    diferentes servicios en internet.
  • Orientados a RPC (Remote Procedure Call)
    Implementan la posibilidad de ejecutar
    procedimientos en servicios remotos (Ejemplo
    abortar transacción).
  • Orientados al acceso de datos típicamente
    parecidos a ODBC.
  • Orientados a las transacciones distribuidas
    Implementan un protocolo para ejecutar
    operaciones distribuidas en la red (inicio, fin y
    rollback).

94
Seti_at_Home
  • Proyecto de búsqueda de vida inteligente en el
    universo.
  • Reciben teras de datos de los radio telescopios
    que deben analizarse.
  • Los computadores disponibles no alcanzan para
    efectuar todo el procesamiento necesario.
  • El proyecto consiste en distribuir el
    procesamiento por la red mundial.

95
Seti_at_Home
96
Seti_at_Home
  • Se requiere procesar para cada punto del cielo
    las señales recibidas por el radio telescopio
    arecibo puerto rico.
  • Se distribuye el procesamiento en cada pc
    cliente-seti. Que procesa y envía el resultado a
    un repositorio centralizado.
  • Nos enseña lo poderosa que puede llegar a ser la
    red en cuanto a capacidad de proceso. Hay muchos
    computadores ociosos en el mundo cuya unión puede
    representar a un supercomputador cuya capacidad
    sobrepasa a las maquinas modernas. (GRID
    computing)?

97
Paradigma peer to peer (p2p)?
  • Gnutella
  • Intercambia archivos entre personas conectadas a
    la red.
  • Cada nodo actúa como cliente y servidor a la vez.
    Son los llamados servents (serverclients).
  • Existen servidores que almacenan a los usuarios
    conectados. Estos entregan direcciones de quienes
    se encuentran online
  • Como cliente envía requerimientos de búsquedas y
    solicita archivos.
  • Como servidor responde peticiones.

98
Paradigma peer to peer (p2p)?
  • Protocolo Gnutella
  • Mensajes de pertenencia al grupo Se efectúan
    broadcast para detectar nodos vecinos y mejorar
    continuamente la conectividad.
  • Búsquedas se envían búsquedas que son propagadas
    a través de los nodos para la búsqueda de
    archivos (numero máximo de up).
  • Transferencia FTP el protocolo de transmisión
    ftp.

99
Paradigma peer to peer (p2p)?
  • Resultados en promedio la red se auto ajusta
    transparentando la comunicación.

100
Paradigma peer to peer (p2p)?
  • Importancia ...
  • Problemas con las arquitecturas centralizadas
  • Ínter conectividad inter-empresa.
  • P2p entrega un canal de comunicación colaborativo
    que puede ser usado para integrar sistemas.
  • Se trasparenta la red, los archivos no se
    encuentran en 1 solo lugar sino en múltiples
    lugares, en realidad se encuentran en la GRID.
  • Futuro los servent no solo podrían usar ftp sino
    también rpc, tns, el servidor es la red.

101
Agentes Móviles
  • Perspectiva del usuario final un software que
    presta algún tipo de asistencia y que se comporta
    de forma autónoma.
  • Perspectiva del sistema objeto de software
    reactivo, autónomo, de ejecución continua, que se
    propaga por la red.

102
Agentes Móviles
  • Paradigma de agentes moviles vs cliente servidor

103
Agentes Móviles
  • Paradigma de agentes móviles vs cliente servidor

104
Agentes Móviles
  • Reduce la carga de la red
  • Sobrelleva cortes temporales en la red.
  • Encapsula protocolos.
  • Se ejecuta de manera asincrónica y autónoma.
  • Adapta dinámicamente
  • Se mueve en medios heterogéneos
  • Tolerante a fallas
  • Aplicaciones en Auditoria, configuración de
    sistemas, computación independiente de la maquina
    es decir en la red (GRID).

105
Herramientas de Desarrollo
106
Qué es Java ?
  • Java es
  • Lenguaje de Programación Orientado a Objetos
  • Independiente de la Plataforma
  • Multithreaded
  • Robusto
  • Sintaxis Similar a C
  • Compilador Estricto

107
Por qué se habla tanto de Java?
  • Java en el Browser
  • Permitió el Desarrollo de Aplicaciones Genéricas
    para el Web
  • Posee una interfaz Gráfica Independiente de la
    Plataforma
  • Posee un modelo de Seguridad acorde al escenario
    de Internet

108
Por qué se habla tanto de Java?
  • Java en el Servidor
  • Permite cambiar una aplicación Java de plataforma
    sin cambios en el código
  • Permite un acceso a Base de Datos independiente
    del DBMS
  • Permite una ejecución eficiente de procesos en el
    servidor

109
Tipos de Aplicaciones JavaJava en el Cliente
Applets
  • Funcionamiento
  • El Código se Descarga del Sitio Web
  • Se ejecuta en la máquina Cliente
  • Independiente de la Plataforma
  • Independiente del Browser
  • Se ejecuta en un entorno de Seguridad Robusto
    (Sandbox)?
  • Sólo se permite una comunicación de Red con el
    Servidor de Origen
  • Aplicaciones Típicas
  • Formularios con Lógica Compleja
  • Gráficos
  • Acceso a Base de Datos
  • etc...

110
Tipos de Aplicaciones JavaJava en el Cliente
Applets
  • Aspectos Destacables
  • Se Pueden Programar Aplicaciones Completas que se
    Ejecuten en el Browser
  • Se Puede Incoporar Interacción Directa con la
    Base de Datos
  • Se Pueden Programar Aplicaciones con una Poderosa
    Interfaz Gráfica
  • La aplicación reside en el servidor
  • Si se modifica el código automáticamente los
    cambios se transmiten a los clientes
  • Se puede modificar el esquema de seguridad según
    las necesidades

111
Tipos de Aplicaciones JavaJava en el Servidor
Servlets
  • Funcionamiento
  • Se instalan los programas en un Servidor Web que
    Soporte este tipo de Aplicación
  • Se conectan los clientes en la URL del Servlet
  • Eejecuta distintos métodos según el tipo de
    requerimiento (GET, POST, PUT, etc.)?
  • Devuelve una página HTML normal.
  • Aplicaciones Típicas
  • Interacción con Base de Datos
  • Aplicaciones Transaccionales
  • etc.

112
Tipos de Aplicaciones JavaJava en el Servidor
Servlets
  • Aspectos Destacables
  • El Servlet permite manejar en forma separada cada
    tipo de Petición
  • Tiene un manejo muy eficiente de los threads
  • Permite manejo de Sesiones
  • Genera Páginas HTML legibles por cualquier
    Browser
  • Permite el desarrollo de aplicaciones utilizando
    Java, visibles desde cualquier Browser
  • Cualquier modificación del código se actualiza
    automáticamente
  • Permite el desarrollo de aplicaciones realmente
    escalables

113
Reseña Histórica
  • Las versiones de Java se denominan por el Java
    Developer Kit (JDK), de Sun
  • JDK 1.0.2 soportado por Browsers 3.0
  • JDK 1.1 soportado por Browser 4.0
  • JDK 1.2 aún sólo para algunos entornos de
    Servidor
  • El cambio de JDK 1.0.2 a JDK 1.1 fue bastante
    considerable
  • El cambio de JDK 1.1 a JDK 1.2 tiene relación
    principalmente con los servicios adicionales

114
CGI-BIN
  • El Web habla HTML. Qué pasa si deseamos
    hacerlo interactuar con datos que están en otro
    formato?
  • Surge la idea de hacer un conversor, algo así
    como un formateador de datos.
  • El formateador puede ser un programa escrito en
    algún lenguaje.
  • Por el funcionamiento del Web Server, el lenguaje
    debe soportar I/O estándar.

115
CGI-BIN (2)?
  • CGI (Common Gateway Interface)?
  • El CGI especifica como se pasan los datos desde
    el servicio WWW a una aplicación externa y como
    se recuperan los resultados. Como todo en el WWW,
    la interfaz CGI es simple pero muy potente.

116
CGI-BIN (3)?
117
CGI-BIN (4)?
  • Formulario en HTLM
  • Los formularios electrónicos sirven para recibir
    datos desde el usuario y almacenarlos en algún
    dispositivo.
  • Un formulario tiene la siguiente estructura
  • ltform actionltSCRIPTgt methodltPostGetgt
    targetltFrame de destinogtgt
  • ltELEMENTOSgt
  • .......
  • ltinput typesubmit valueEnviargt
  • ltinput typereset valueBorrargt
  • lt/formgt

118
CGI-BIN (5)?
  • Ejemplo de un CGI-BIN
  • El CGI-BIN se puede escribir en cualquier
    lenguaje que soporte STDIN y STDOUT
  • typedef struct
  • char name128
  • char val128
  • entry
  • int m,x
  • cl getenv("QUERY_STRING")
  • for(x0cl0 ! '\0'x)
  • mx
  • getword(entriesx.val,cl,'')
  • plustospace(entriesx.val)
  • unescape_url(entriesx.val)
  • getword(entriesx.name,entriesx.val,''
    )

119
CGI BIN El Método GET
  • El cliente WWW solicita un servicio de una
    aplicación CGI.
  • El servidor HTTPD recibe la solicitud y los datos
    de entrada.
  • El servidor crea un ambiente y variables con los
    datos de entrada.
  • El servidor ejecuta la ampliación CGI en este
    ambiente.
  • El CGI procesa las variables de ambiente y
    recupera los datos de entrada.
  • La aplicación CGI se ejecuta produciendo
    unresultado sobre su salida estándar.
  • El servidor HTTP redirecciona la salida estándar
    de la aplicación CGI hacia el cliente WWW.
  • El cliente WWW recibe el resultado de su
    consulta.

120
CGI BIN El Método POST
  • El cliente WWW solicita un servicio de una
    aplicación CGI.
  • El servidor HTTPD recibe la solicitud y los datos
    de entrada.
  • El servidor ejecuta la ampliación CGI pasándole
    la información a través de la entrada estándar.
  • La aplicación CGI procesa su entrada estándar y
    recupera los datos de entrada.
  • La aplicación CGI se ejecuta produciendo un
    resultado sobre su salida estándar.
  • EL servidor HTTP redirecciona la salida estándar
    de la aplicación CGI hacia el cliente WWW.
  • El cliente WWW recibe el resultado de su
    consulta.

121
Lenguajes de programación de CGI
  • El web server llama a un CGI creador de una
    página web. Luego toma el código de la página y
    lo envía al browser que lo solicitó.
  • Desde un punto de vista funcional, la transacción
    anterior fue un intercambio de archivos entre dos
    procesos.
  • El intercambio clásico de archivos entre procesos
    es a través de la I/O estándar.
  • Entonces, los lenguajes de programación de CGI
    deben soportar I/O
  • Perl. Practical Extraction and Report Language es
    un lenguaje de programación medianamente nuevo
  • Surgió de otras herramientas de UNIX como son
    sed, grep, awk, c-shell.
  • Sirve para labores de procesamiento de texto,
    para la programación de software de sistemas y
    ahora último para programar aplicaciones para
    Web
  • C Desde su creación, soporta la entrada y salida
    estándar, por cuanto siempre ha privilegiado la
    comunicación entre procesos
  • C
  • Para conectarlos con bases de datos, se han usado
    APIS y características adicionales de los
    lenguajes, tales como ProC

122
JavaScripts Historia
  • Antes dos eran los lenguajes que les daban vida a
    una página web HTML y JAVA
  • HTML es un lenguaje sencillo de capacidades
    limitadas
  • JAVA es un lenguaje muy poderoso, diseñado para
    programadores.
  • Entonces tenemos dos extremos en el Web, hacía
    falta un lenguaje intermedio sencillo hasta el
    punto que un diseñador HTML lo pudiese programar.
  • La respuesta JavaScript

123
JavaScript Qué es?
  • Se basa en JAVA en su uso y sintaxis, pero es
    compilado e interpretado en el browser. En el
    caso de Java, se compila en el Server y se
    interpreta en el browser ( el Byte Code)?
  • Un javascript se transmite como texto del server
    al browser. Un tag especial le dice al browser
    que las líneas siguientes se deben interpretar.
  • Por su sencillez, es muy utilizado en la
    validación de campos de un formulario. Por
    ejemplo revisar si el dígito verificador de un
    rut es correcto.

124
JavaScript JAVA v/s JavaScript
  • Ambos son lenguajes de programación.
  • JAVA se compila en el server y se interpreta en
    el browser, JavaScript se compila e interpreta en
    el Browser
  • JavaScript no Maneja Clases ni herencia
  • Un código JavaScript se encuentra incluido dentro
    de una página web. Las aplicaciones JAVA son
    referenciadas a través de un tag para
    transmitirlas desde el servidor

125
JavaScript Seguridad e integración con JAVA
  • JavaScript no permite el uso de punteros, por lo
    que no hay violación de integridad
  • No se permite el acceso a discos
  • Por ser un lenguaje interpretado, no hay problema
    con las peticiones de memoria en tiempo real.
  • Desde JavaScript se pueden invocar applets JAVA.

126
JavaScript Dónde se introduce el código ?
  • ltHTMLgt
  • ltHEADgtltTITLEgtlt/TITLEgt
  • ltSCRIPT LANGUAGE"JavaScript"gt
  • lt!--Código en JavaScript--gt
  • lt/SCRIPTgt
  • lt/HEADgt
  • ltBODYgt
  • ltFORMgt
  • Introducir los elementos.
  • lt/FORMgt

127
ASP
  • ASP, o Páginas de Servidor Activas, permite al
    usuario de Internet, recibir páginas generadas
    dinámicamente en el servidor.
  • La definición de Microsoft es Las Active Server
    Pages son un ambiente de aplicación abierto y
    gratuito en el que se puede combinar código HTML,
    scripts y componentes ActiveX del servidor para
    crear soluciones dinámicas y poderosas para el
    Web".
  • Las Componentes ActiveX, se han diseñado para que
    se ejecuten en el servidor Web. Proporcionan
    funcionalidad a las aplicaciones, como el acceso
    a archivos, Bases de datos, etc.

128
ASP (2)?
  • ASP es un lenguaje de script (guión), que
    contiene además de tags de HTML, secuencias de
    comandos que el servidor resuelve, para luego
    enviar al navegador el resultado al Cliente en
    código HTML. Las secuencias de comandos quedan
    ocultas a los usuarios, estos solo reciben el
    resultado de la ejecución en formato HTML.

129
ASP (3)?
  • El principio de la tecnología ASP es el VBScript,
    pero existe otra diversidad de lenguajes de
    programación que pueden ser utilizados como lo es
    Perl, JScript, etc.
  • Utilizando ASP es posible conectarse a gestores
    de Base de datos SQL, Access, Oracle, o cualquier
    otro motor que disponga de driver ODBC.
  • ASP es más eficiente que el CGI tradicional
    porque corre como un servicio en el servidor,
    tomando ventaja de la arquitectura de multitareas.

130
Servlets
  • Son aplicaciones del lado del servidor
    construídas en Java
  • Son equivalentes a los CGI.
  • Al usarlos con una base de datos, generan una
    sola conexión y atienden a los clientes a través
    de thread.

131
Qué son los Servlets ?
  • Ventajas sobre los CGI
  • Construídos en Java
  • Más ordenados
  • Amplio Soporte del Mercado
  • Excelente Manejo de Procesos
  • Cada conexión se maneja como un proceso liviano
  • Utilización de Recursos
  • Pueden compatir recursos para todos los proceso

132
Ciclo de Vida de un Servlet
  • Inicialización
  • Se realiza cuando el primer cliente hace una
    petición del Servlet
  • Se define mediante el método init
  • Se pueden especificar parámetros de configuración
  • Se pueden definir variables que son visibles para
    cualquier proceso de manejo de peticiones

133
Ciclo de Vida de un Servlet (2)?
  • Manejo de Petición
  • Para cada cliente que hace una petición del
    Servlet, se crea un proceso que lo maneja
  • Se ejecutan distintos métodos según el tipo de
    petición
  • Petición GET (URLs) método doGet
  • Petición POST (Formularios) método doPost
  • Petición PUT (Upload) método doPut

134
Ciclo de Vida de un Servlet (3)?
  • Destrucción
  • Se ejecuta cuando se baja el servidor de
    Aplicación
  • Se realiza mediante el método destroy
  • Sirve para realizar operaciones de finalización
    de la aplicación (desconexión de la BD,
    eliminación de archivos, etc.)?

135
Objeto Request
  • Objeto que contiene la información relacionada
    con la petición que realiza el cliente
  • Tipo MIME de la petición
  • Información del Browser
  • Parámetros de la URL o proveniente de Fomularios
    HTML

136
Objeto Response
  • Objeto que contiene la información que será
    enviada al cliente
  • Tipo MIME de la respuesta
  • Contenido de la página de respuesta

137
Objeto Response (2)?
  • El contenido se maneja mediante PrintWriter, que
    se obtiene con el método getWriter()?
  • El contenido se agrega con el método write() o
    writeln() sobre el PrintWriter

138
Objeto Response (3)?
  • PrintWriter (cont)?
  • Por ejemplo
  • public void doGet(HttpServletRequest request,
    HtttpServletResponse response) ...
    PrintWriter out response.getWriter()
    out.println(Hello world!) ...

139
Objeto Response (3)?
  • PrintWriter (cont)?
  • Se debe ejecutar el método close de PrintWriter
    el terminar el método
  • Permite que se envíe efectivamente el contenido
  • Si no se ejecuta por lo general no se ve nada en
    el browser

140
Manejo de Sesiones
  • Se realiza mediante el objeto HttpSesion
  • Se obtiene del objeto Request, con el método
    getSession()?
  • Se puede asignar cualquier objeto al objeto
    HttpSesion, que podrá ser visto por cualquier
    otro método de manejo de peticiones (mientras
    dure la sesión)?

141
Solución Transaccional
  • A través de los servlets es posible construir
    sistemas de alto rendimiento y en entornos
    transaccionales
  • La posibilidad de manejar objetos comunes permite
    una máxima utilización de recursos, como por
    ejemplo conexiones a la Base de Datos

142
Solución Transaccional (2)?
  • Su esquema de manejo de procesos es muy superior
    a otras tecnologías desarrolladas para este tipo
    de aplicaciones
  • Existe un gran soporte del mercado, de forma que
    existen interfaces para casi la totalidad de los
    sistemas comerciales que están en operación

143
MVC
144
Visión General de una Aplicación (I)?
El siguiente gráfico ilustra la interacción
disposición de una aplicación monocanal
145
Visión General de una Aplicación (II)?
146
Visión General de una Aplicación (III)?
La distribución, composición de la aplicación se
complica a medida que se usan diferentes tipos de
tecnología y se abren nuevos canales de reporting
147
MVC Controlador Frontal / Arquitectura JSP
Modelo 2
Las recomendaciones que propuso Sun para
implementar una arquitectura MVC JSP Modelo 1
diseños centrados en la página, las solicitudes
son realizadas a la página encargada de generar
la salida, sólo es aplicable para aplicaciones
extremadamente simples, no es válido en
aplicaciones complejas donde se requiera
generación dinámica de contenido, agilidad en el
cambio del flujo de la aplicación y del
contenido.
148
MVC Controlador Frontal / Arquitectura JSP
Modelo 2
  • JSP Modelo 2 o diseños de controlador. Permite
    llevar a cabo de una manera menos traumática los
    objetivos de generación dinámica de contenido,
    cambio del flujo de programa, cambio de contenido

149
MVC Controlador Frontal / Arquitectura JSP
Modelo 2 (I)?
Modelo Contiene el núcleo de la funcionalidad
(dominio) de la aplicación. Encapsula el estado
de la aplicación. No sabe nada / independiente
del Controlador y la Vista.
Vista Es la presentación del Modelo. Puede
acceder al Modelo pero nunca cambiar su estado.
Puede ser notificada cuando hay un cambio de
estado en el Modelo. Controlador Reacciona a
la petición del Cliente, ejecutando la acción
adecuada y creando el modelo pertinente.
150
MVC JSP Modelo 2 Struts (I)?
Una aplicación basada en Struts, tiene un
componente básico llamado ActionServlet. Este es
un servlet, que tramita las peticiones de los
clientes delegando a un componente definido por
el usuario por cada petición. Este Servlet es el
punto central del framework, aunque no es
necesario que todas la actividad fluya a través
de él. En una aplicación basada en Struts se
pueden hacer peticiones a una JSP que contengan o
no tag libraries de Struts, sin pasar por el
Servlet ActionServlet.
El ActionServlet (controlador) de Struts captura
y encamina las peticiones HTTP que llegan a la
aplicación (toma la decisión de a dónde enviar la
petición HTTP), a otros componentes de
aplicación. Estos componentes pueden ser páginas
JSP o instancias de una subclase de la clase
org.apache.struts.action.Action que el propio
framework suministra.
Cuando se inicia el Servlet ActionServlet, carga
y analiza la información de un fichero que
contiene la configuración de la aplicación para
aplicar las características de Struts. Entre
otras cosas, el fichero de configuración define
las correspondencias que existen entre las
peticiones HTTP que captura el Servlet
controlador y las acciones que van a tratar esa
petición. Estas correspondencias son manipuladas
como instancias de la clase org.apache.struts.acti
on.ActionMapping
151
MVC JSP Modelo 2 Struts (II)?
152
J2EE
153
Qué es J2EE?
  • J2EE (Java 2 Enterprise Edition)
  • J2EE es un grupo de especificaciones diseñadas
    por Sun que permiten la creación de aplicaciones
    empresariales, esto sería acceso a base de datos
    (JDBC), utilización de directorios distribuidos
    (JNDI), acceso a métodos remotos (RMI/CORBA),
    funciones de correo electrónico (JavaMail),
    aplicaciones Web(JSP y Servlets)...etc.
  • Es importante notar que J2EE es solo una
    especificación, esto permite que diversos
    productos sean diseñados alrededor de estas
    especificaciones algunos son Tomcat y Weblogic.
  • Aunque varios productos Java están diseñados
    alrededor de estas especificaciones, no todos
    cumplen con el estándar completo, esto es, Tomcat
    solo emplea / cumple las especificaciones de JSP
    y Servlets, sin embargo, existen productos como
    Websphere y algunos otros "Java Application
    Servers" que son considerados "Fully J2EE
    Compliant" , en otras palabras, cumplen con todas
    las especificaciones definidas por Sun.

154
Arquitectura de Sistemas
  • Arquitectura de 2 gradas
  • El servidor sólo actúa como un simple controlador
    de tráfico entre la aplicación y los datos.

Application
DB
155
Arquitectura de Sistemas
  • Arquitectura de 3 gradas
  • Capa de presentación
  • Capa de negocio
  • Capa de datos

User Interface
Application Logic
XML Documents
DB
156
Arquitectura de Sistemas
Browser
  • Arquitectura de n-gradas
  • No hay una manera rápida de definir las capas de
    aplicación del sistema.

Firewall
Application Client
Presentation Logic
Services
Bussines Logic
157
J2EE
  • Plataforma J2EE
  • J2EE Runtime
  • J2EE APIs
  • J2EE Arquitecture Containers
  • Tecnologías J2EE
  • Componentes Web
  • - Servlets
  • - Java Server Pages
  • Componentes EJB
  • - Beans de sesión
  • - Beans de entidad
  • Tecnologías de Servicio
  • JDBC
  • Java Transaction API and service
  • JNDI
  • Tecnologías de Comunicación
  • Protocolos de Internet
  • - HTTP
  • - TCP/IP
  • - SSL
  • Protocolos de objeto remoto
  • - RMI y RMI-IIOP
  • - Java IDL
  • JMS
  • JavaMail
  • XML

158
Application Logic
Client
Data
Web Container
JDBC
RDMS
Servlets
JSPs
HTTP(S)?
Java Mail
Tag Library
Mail Server
RMI
J2EE Application Server
Java Application
EJB Container
IIOP
CORBA Server
Session Beans
Entity Beans
JNDI
Directory Service
JMS
Message Queue
159
PLATAFORMA J2EE
160
Plataforma J2EE
La plataforma J2EE provee lo siguiente
  • J2EE Runtime
  • Una infraestructura en runtime para dar soporte a
    las aplicaciones.
  • J2EE APIs
  • Un conjunto de APIs que extienden java para
    co
Write a Comment
User Comments (0)
About PowerShow.com