SlideShare una empresa de Scribd logo
ARQUITECTURA Y DISEÑO DE APLICACIONES J2EE
                Andrés Guerrero
             andres.guerrero@coit.es
Objetivos del curso
●   Formar para diseñar los sistemas a nivel corporativo
●   Utilizar J2EE para implantar sistemas multicapa
●   Aprender a utilizar las tecnologías J2EE para
    mejorar la calidad de servicio de los sistemas
    corporativos
Conceptos básicos
●   ¿Qué es arquitectura y qué es diseño?
●   Arquitectura:
       –   Cubre toda la estructura de un sistema
       –   Escalabilidad, seguridad, portabilidad, rendimiento,
           fiabilidad, flexibilidad
       –   Los detalles de implementación están ocultos
●   Diseño:
       –   Opera a un nivel de abstracción más bajo
       –   Trata sobre los detalles de implementación
Problemas de los arquitectos
●   Tiempo
●   Coste
●   Experiencia
●   Habilidades
●   Visibilidad
●   Complejidad
●   Cambios
LA PRISA MATA
Fases en el desarrollo SW
●   Análisis de requisitos / Alcance del problema
       –   HW, SW, topología de la red, desarrollo, testeo,
           entorno de producción
       –   Generar el modelo de dominio: clases, objetos e
           interacciones
●   Análisis OO/Arquitectura
       –   UML
●   Diseño de la arquitectura
       –   Framework, protocolos
●   Implementación
Principios de arquitectura


    “Divide y vencerás”
         Julio César

    “Vamos por partes”
    Jack “El destripador”
Principios de arquitectura - Capas
●   Las capas (layers) es una división lógica de los
    elementos que componen una solución SW
Principios de arquitectura - Niveles
●   Es una división física de la infraestructura de un
    sistema
Características en la arquitectura
●   Disponibilidad
       –   Grado de accesibilidad de un sistema (ej: 24x7)
       –   Relacionado con el rendimiento
●   Fiabilidad
       –   Garantizar la integridad y consistencia de una
           aplicación y sus transacciones
●   Gestionabilidad
       –   Gestionar los recursos de un sistema para garantizar la
           disponibilidad y el rendimiento respecto a otros
           factores (plugins)
Características en la arquitectura

●   Flexibilidad
       –   Acometer cambios en la configuración de la
           arquitectura y el HW sin un gran impacto en el
           sistema
●   Rendimiento
       –   Cumplir las funcionalidades en un tiempo
           razonable
●   Capacidad
       –   Habilidad de un sistema para realizar múltiples
           tareas por unidad de tiempo
Características en la arquitectura

●   Escalabilidad
       –   Capacidad de que ante incrementos de
           transacciones el sistema cumpla con los
           requisitos de rendimiento y disponibilidad
●   Extensibilidad
       –   Capacidad de extender la funcionalidad
●   Validez
       –   Capacidad para predecir o confirmar resultados
           en función de determinadas entradas de usuario
Características en la arquitectura
●   Reusabilidad
      –   Poder utilizar un componente en más de un contexto
          sin modificarlo internamente
●   Seguridad
      –   Garantizar la accesibilidad e integridad de la
          información de acuerdo a la política de la empresa
J2EE - Introducción

●   Define un modelo para desarrollar aplicaciones
    distribuidas
●   Basado en un modelo multicapa
●   Define un conjunto de componentes que pueden
    reutilizarse
●   Destinado para estandarizar y simplificar el
    desarrollo de aplicaciones distribuidas
●   La utilización de componentes es flexible
Desarrollo de aplicaciones
             corporativas J2EE - Retos
●   Productividad
       –   Equipos de desarrollo con medios de estándar
       –   Evitar soluciones específicas y arquitecturas
           propietarias
       –   Facilitar la división del trabajo
●   Integración con sistemas existentes
       –   Legacy systems (CICS, DB2, Mainframes, ...)
Desarrollo de aplicaciones
          corporativas J2EE - Retos
●   Libertad de elección de herramientas,
    componentes (Websphere, Weblogic, Jboss, etc)
●   Respuesta a la demanda
      –   Disponibilidad, flexibilidad, escalabilidad
      –   Evitar la necesidad de rediseño, recodificación
          para conseguir lo anterior
●   Mantenimiento de la seguridad
      –   Conseguir un modelo de seguridad integrado en
          entornos heterogéneos
Plataforma J2EE
Plataforma J2EE
●   Modelo de aplicación distribuida multicapa
      –   Capa cliente (navegador)
      –   Capa de presentación (servlets, JSP)
      –   Capa de lógica de negocio (EJBs)
      –   Capa de datos (BD)
Plataforma J2EE
●   Gestión de componentes basados en contenedor
      –   Los contenedores son entornos de ejecución
          estándares que proveen servicios específicos a
          componentes
      –   Por ejemplo: El contenedor web proporciona
          respuestas a peticiones de clientes (invocando un
          JSP o servlet)
      –   Proporcionan selección de comportamiento en
          tiempo de despliegue
      –   Los contenedores pueden convivir o no en una
          misma plataforma
Plataforma J2EE
●   Soporte para componentes de cliente
      –   Páginas HTML estáticas
      –   HTML generado dinámicamente JSP
      –   Java applets
      –   Aplicaciones autónomas (stand-alone) Java o no
      –   Comunicación con el middle tier por medio de HTTP,
          HTML, XML
Plataforma J2EE
●   Soporte para componentes de negocio
      –   EJB (Enterprise Java Beans)
      –   Permite a los desarrolladores concentrarse en la lógica
          de negocio delegando las complejidades de las
          transacciones al contenedor
Contenidos de una aplicación J2EE
Ventajas de la plataforma J2EE

●   Desarrollo y arquitectura más simples
       –   Funcionalidad más fácil de implementar
       –   Permite especificar comportamientos en tiempo
           de despliegue
       –   Permite la división del trabajo
●   Integración con los sistemas de información
    corporativos
       –   JDBC, JTA, JNDI, JMS, JavaMail, JAXP,
           CORBA
Ventajas de la plataforma J2EE

●   Múltiples servidores, herramientas,
    componentes
       –   Servidores: Glashfish, Websphere, Weblogic,...
       –   Herramientas: Netbeans, Eclipse, Websphere,...
       –   Frameworks: Struts, Spring, Hibernate,...
●   Fácil escalabilidad
       –   Los contenedores implementan mecanismos para
           la escalabilidad de aplicaciones distribuidas
Ventajas de la plataforma J2EE
●   Modelo de seguridad unificado y simplificado
      –   Tanto en los contenedores Web como de EJB la
          seguridad puede definirse en los ficheros descriptores
          de despliegue (flexibilidad)
Modelos de aplicaciones J2EE
●   La arquitectura J2EE es flexible permite la elección
    de los contenedores a utilizar en cada caso
Modelo de aplicación multicapa
Modelo de aplicación centrada en la
               Web
CAPA DE CLIENTE
J2EE – Capa de cliente
●   Desde el punto de vista del usuario el cliente es la
    aplicación
●   Debe ser útil, usable, rápida
●   Dependiendo del tipo de cliente a utilizar hay una
    serie de consideraciones a tener en cuenta
Capa de cliente - Consideraciones
●   Consideraciones de la red
       –   Diferentes tipos de conexión
       –   Latencia
       –   Ancho de banda
       –   La red no siempre es fiable
       –   El cliente ideal se conecta con el servidor sólo lo
           necesario, transmite la información necesaria y
           funciona razonablemente bien cuando no puede
           conectarse
Capa de cliente - Consideraciones
●   Consideraciones de seguridad
      –   Cuando existe un cortafuegos se limita la elección de
          los protocolos (HTTP, HTTPS) para la comunicación
      –   Tipo de red: Internet, Intranet → Afecta a la
          autenticación
Capa de cliente - Consideraciones
●   Consideraciones de la plataforma cliente
       –   Tipo de terminal en el que se visualizará
       –   Periféricos: Tamaño de la pantalla, ratón, teclado
       –   Complejidad de las aplicaciones multiplataforma
Capa de cliente – Directrices
           generales de diseño
●   Aunque la plataforma J2EE recomienda el uso
    de clientes ligeros la capa cliente puede realizar
    las siguientes funciones:
       –   Presentación del interfaz de usuario
       –   Validar las entradas del usuario
       –   Comunicarse con el servidor
       –   Gestionar el estado de la conversación
●   Cuantas más funciones tenga la capa de cliente
    mayor rapidez de respuesta → RIA
Directrices de diseño para
                    navegadores
●   Ventajas de la utilización de navegadores:
       –   Son los clientes más ligeros
       –   No están afectados por los cambios de la aplicación
       –   Están en todas partes: Pcs, Móviles, Estaciones de
           trabajo
Directrices de diseño para
                  navegadores
●   Presentación del interfaz de usuario
       –   Descargan los documentos del servidor
       –   HTML, XML
       –   Son estáticos o generados dinámicamente (JSP,
           servlets)
       –   Los navegadores ofrecen un entorno familiar al
           usuario
       –   Pero ofrecen una limitada interactividad->
           requiere muchas conexiones con el servidor
       –   Javascript
Directrices de diseño para
                    navegadores
●   Validación de las entradas del usuario
       –   Utilizar Javascript (ECMA) para la validación de los
           campos del formulario
       –   El código de Javascript común debe estar incluido en
           un fichero-> el navegador lo guarda en la caché
       –   No exime la validación en el lado del servidor
       –   La aplicación debe funcionar si se desactiva Javascript
Directrices de diseño para
                 navegadores
●   Comunicación con el servidor
      –   Se realiza a través de HTTP(S)
      –   Métodos GET y POST
      –   Las peticiones para actualizar datos
          generalmente son a través de POST
      –   El API de servlet proporciona el interfaz para
          atender ambos métodos (doGet, doPost)
      –   Una aplicación J2EE debe utilizar JSP para
          generar documentos HTML
Directrices de diseño para
                  navegadores
●   Gestión de la sesión
       –   HTTP es un protocolo de petición-respuesta donde
           cada petición es tratada independientemente
       –   Sesión: Secuencia de peticiones realizadas por un
           usuario utilizando un único cliente
       –   Formas de guardar la sesión:
            ●   Cookies
            ●   Reescritura de URL (URL rewriting)
       –   Identificador de sesión (jsessionid)
       –   Los servidores deben manejar el estado de la sesión
Directrices de diseño para navegadores
●   Accesibilidad web
      –   Capacidad de acceso a la web y a sus contenidos por
          todas las personas independientemente de la
          discapacidad que presenten y del contexto de uso
          (ambientales, tecnológicas)
      –   Validación semántica del contenido (Test W3C)
      –   Herramientas de accesibilidad (TAW)
      –   Relacionado con el posicionamiento en buscadores

Más contenido relacionado

La actualidad más candente

Gestor de Base de Datos
Gestor de Base de DatosGestor de Base de Datos
Gestor de Base de Datos
Thalia Regalado Juape
 
Cuadro comp
Cuadro compCuadro comp
Cuadro comp
nenyta08
 
Gestores de bdd
Gestores de bddGestores de bdd
Gestores de bdd
Katherine Mendoza
 
Clase7 unidad1
Clase7 unidad1Clase7 unidad1
Clase7 unidad1
zurda21
 
Sistemas Gestores de Bases de Datos
Sistemas Gestores de Bases de DatosSistemas Gestores de Bases de Datos
Sistemas Gestores de Bases de Datos
latukiss
 
Gestión de datos e información 2 santamaria sosa luis
Gestión de datos e información 2   santamaria sosa luisGestión de datos e información 2   santamaria sosa luis
Gestión de datos e información 2 santamaria sosa luis
Luis Ricardo Santamaria Sosa
 
Arquitectura fisica y logica
Arquitectura fisica y logicaArquitectura fisica y logica
Gestores de base de datos
Gestores de base de datosGestores de base de datos
Gestores de base de datos
Fidel Manuel Conislla Yvala
 
03b arquitectura clienteservidor n capas
03b arquitectura clienteservidor n capas03b arquitectura clienteservidor n capas
03b arquitectura clienteservidor n capas
Walter Moo Guzmán
 
Escalabilidad - Apache y MySQL
Escalabilidad - Apache y MySQLEscalabilidad - Apache y MySQL
Escalabilidad - Apache y MySQL
Lorena Fernández
 
Sgbd comerciales vs libres
Sgbd comerciales vs libresSgbd comerciales vs libres
Sgbd comerciales vs libres
Madai Angeles
 
Aplicaciones En Capas
Aplicaciones En CapasAplicaciones En Capas
Aplicaciones En Capas
Fausto J Loja Mora
 
Gestores de base de datos
Gestores de base de datosGestores de base de datos
Gestores de base de datos
Jeison Cruz Yesan
 
Arquitecturas Distribuidas. (Edo Ostertag)
Arquitecturas Distribuidas. (Edo Ostertag)Arquitecturas Distribuidas. (Edo Ostertag)
Arquitecturas Distribuidas. (Edo Ostertag)
Aldo Ulloa Carrasco
 
Apache Servicemix
Apache ServicemixApache Servicemix
Apache Servicemix
Jose Patricio Bovet Derpich
 
Sistemas Gestores de Bases de Datos
Sistemas Gestores de Bases de DatosSistemas Gestores de Bases de Datos
Sistemas Gestores de Bases de Datos
Actimel
 
Conociendo Nuestro Fua interno
Conociendo Nuestro Fua internoConociendo Nuestro Fua interno
Conociendo Nuestro Fua interno
Jose Patricio Bovet Derpich
 

La actualidad más candente (17)

Gestor de Base de Datos
Gestor de Base de DatosGestor de Base de Datos
Gestor de Base de Datos
 
Cuadro comp
Cuadro compCuadro comp
Cuadro comp
 
Gestores de bdd
Gestores de bddGestores de bdd
Gestores de bdd
 
Clase7 unidad1
Clase7 unidad1Clase7 unidad1
Clase7 unidad1
 
Sistemas Gestores de Bases de Datos
Sistemas Gestores de Bases de DatosSistemas Gestores de Bases de Datos
Sistemas Gestores de Bases de Datos
 
Gestión de datos e información 2 santamaria sosa luis
Gestión de datos e información 2   santamaria sosa luisGestión de datos e información 2   santamaria sosa luis
Gestión de datos e información 2 santamaria sosa luis
 
Arquitectura fisica y logica
Arquitectura fisica y logicaArquitectura fisica y logica
Arquitectura fisica y logica
 
Gestores de base de datos
Gestores de base de datosGestores de base de datos
Gestores de base de datos
 
03b arquitectura clienteservidor n capas
03b arquitectura clienteservidor n capas03b arquitectura clienteservidor n capas
03b arquitectura clienteservidor n capas
 
Escalabilidad - Apache y MySQL
Escalabilidad - Apache y MySQLEscalabilidad - Apache y MySQL
Escalabilidad - Apache y MySQL
 
Sgbd comerciales vs libres
Sgbd comerciales vs libresSgbd comerciales vs libres
Sgbd comerciales vs libres
 
Aplicaciones En Capas
Aplicaciones En CapasAplicaciones En Capas
Aplicaciones En Capas
 
Gestores de base de datos
Gestores de base de datosGestores de base de datos
Gestores de base de datos
 
Arquitecturas Distribuidas. (Edo Ostertag)
Arquitecturas Distribuidas. (Edo Ostertag)Arquitecturas Distribuidas. (Edo Ostertag)
Arquitecturas Distribuidas. (Edo Ostertag)
 
Apache Servicemix
Apache ServicemixApache Servicemix
Apache Servicemix
 
Sistemas Gestores de Bases de Datos
Sistemas Gestores de Bases de DatosSistemas Gestores de Bases de Datos
Sistemas Gestores de Bases de Datos
 
Conociendo Nuestro Fua interno
Conociendo Nuestro Fua internoConociendo Nuestro Fua interno
Conociendo Nuestro Fua interno
 

Similar a Curso Arquitectura J2 Ee Parte1

Unidad_1.pdf
Unidad_1.pdfUnidad_1.pdf
Unidad_1.pdf
ZabdielMartinez2
 
Cuadro comparativo de SMBD
Cuadro comparativo de SMBD Cuadro comparativo de SMBD
Cuadro comparativo de SMBD
Jazmin Glez.
 
Herramientas CASE
Herramientas CASEHerramientas CASE
Herramientas CASE
I R
 
OpenProdoc Visión General
OpenProdoc Visión GeneralOpenProdoc Visión General
OpenProdoc Visión General
jhierrot
 
1/9 Curso JEE5, Soa, Web Services, ESB y XML
1/9 Curso JEE5, Soa, Web Services, ESB y XML1/9 Curso JEE5, Soa, Web Services, ESB y XML
1/9 Curso JEE5, Soa, Web Services, ESB y XML
Juan Carlos Rubio Pineda
 
Desarrollo modermo de aplicaciones web
Desarrollo modermo de aplicaciones webDesarrollo modermo de aplicaciones web
Desarrollo modermo de aplicaciones web
Roberto Sanz Ciriano
 
Introduccion_a_la_integracion_de_aplicaciones.ppt
Introduccion_a_la_integracion_de_aplicaciones.pptIntroduccion_a_la_integracion_de_aplicaciones.ppt
Introduccion_a_la_integracion_de_aplicaciones.ppt
IvonneRomero42
 
Tema1 seleccion de_arquitecturas_y_herramientas_de_programacion
Tema1 seleccion de_arquitecturas_y_herramientas_de_programacionTema1 seleccion de_arquitecturas_y_herramientas_de_programacion
Tema1 seleccion de_arquitecturas_y_herramientas_de_programacion
Juana Sánchez
 
SOA Open Source
SOA Open SourceSOA Open Source
SOA Open Source
Lenin Lozano
 
herramientas tecnológicas
herramientas tecnológicasherramientas tecnológicas
herramientas tecnológicas
Gerardo Linares
 
Clases 30 05
Clases 30 05Clases 30 05
Clases 30 05
Rodolfo Canelòn
 
Unac Experiencia De Un LíDer De Desarrollo J2 Ee
Unac Experiencia De Un LíDer De Desarrollo J2 EeUnac Experiencia De Un LíDer De Desarrollo J2 Ee
Unac Experiencia De Un LíDer De Desarrollo J2 Ee
guestca4f67c4
 
Unac-Experiencia De Un Lider De Desarrollo J2EE
Unac-Experiencia De Un Lider De Desarrollo J2EEUnac-Experiencia De Un Lider De Desarrollo J2EE
Unac-Experiencia De Un Lider De Desarrollo J2EE
Jose Luis Bugarin Peche
 
Gwt IV -mvp
Gwt IV -mvpGwt IV -mvp
Redhat Open Day - JBoss Middleware Portfolio
Redhat Open Day - JBoss Middleware PortfolioRedhat Open Day - JBoss Middleware Portfolio
Redhat Open Day - JBoss Middleware Portfolio
Adrian Gigante
 
Herramientas Digitales
Herramientas DigitalesHerramientas Digitales
Herramientas Digitales
Jonnathan Carrasco
 
Desarrollo en Android: Conceptos Básicos
Desarrollo en Android: Conceptos BásicosDesarrollo en Android: Conceptos Básicos
Desarrollo en Android: Conceptos Básicos
Gabriel Huecas
 
Manual 2014 i 04 lenguaje de programación ii (0870)
Manual 2014 i 04 lenguaje de programación ii (0870)Manual 2014 i 04 lenguaje de programación ii (0870)
Manual 2014 i 04 lenguaje de programación ii (0870)
Robert Rayco Quiroz
 
FASE DE DISEÑO-C3 ING DEL SOFTWARE1.pptx
FASE DE DISEÑO-C3 ING DEL SOFTWARE1.pptxFASE DE DISEÑO-C3 ING DEL SOFTWARE1.pptx
FASE DE DISEÑO-C3 ING DEL SOFTWARE1.pptx
JenifferJuliethPalen
 
Cap2 funcionalidad de cliente servidor
Cap2 funcionalidad de cliente servidorCap2 funcionalidad de cliente servidor
Cap2 funcionalidad de cliente servidor
Instituto Tecnológico Stanford
 

Similar a Curso Arquitectura J2 Ee Parte1 (20)

Unidad_1.pdf
Unidad_1.pdfUnidad_1.pdf
Unidad_1.pdf
 
Cuadro comparativo de SMBD
Cuadro comparativo de SMBD Cuadro comparativo de SMBD
Cuadro comparativo de SMBD
 
Herramientas CASE
Herramientas CASEHerramientas CASE
Herramientas CASE
 
OpenProdoc Visión General
OpenProdoc Visión GeneralOpenProdoc Visión General
OpenProdoc Visión General
 
1/9 Curso JEE5, Soa, Web Services, ESB y XML
1/9 Curso JEE5, Soa, Web Services, ESB y XML1/9 Curso JEE5, Soa, Web Services, ESB y XML
1/9 Curso JEE5, Soa, Web Services, ESB y XML
 
Desarrollo modermo de aplicaciones web
Desarrollo modermo de aplicaciones webDesarrollo modermo de aplicaciones web
Desarrollo modermo de aplicaciones web
 
Introduccion_a_la_integracion_de_aplicaciones.ppt
Introduccion_a_la_integracion_de_aplicaciones.pptIntroduccion_a_la_integracion_de_aplicaciones.ppt
Introduccion_a_la_integracion_de_aplicaciones.ppt
 
Tema1 seleccion de_arquitecturas_y_herramientas_de_programacion
Tema1 seleccion de_arquitecturas_y_herramientas_de_programacionTema1 seleccion de_arquitecturas_y_herramientas_de_programacion
Tema1 seleccion de_arquitecturas_y_herramientas_de_programacion
 
SOA Open Source
SOA Open SourceSOA Open Source
SOA Open Source
 
herramientas tecnológicas
herramientas tecnológicasherramientas tecnológicas
herramientas tecnológicas
 
Clases 30 05
Clases 30 05Clases 30 05
Clases 30 05
 
Unac Experiencia De Un LíDer De Desarrollo J2 Ee
Unac Experiencia De Un LíDer De Desarrollo J2 EeUnac Experiencia De Un LíDer De Desarrollo J2 Ee
Unac Experiencia De Un LíDer De Desarrollo J2 Ee
 
Unac-Experiencia De Un Lider De Desarrollo J2EE
Unac-Experiencia De Un Lider De Desarrollo J2EEUnac-Experiencia De Un Lider De Desarrollo J2EE
Unac-Experiencia De Un Lider De Desarrollo J2EE
 
Gwt IV -mvp
Gwt IV -mvpGwt IV -mvp
Gwt IV -mvp
 
Redhat Open Day - JBoss Middleware Portfolio
Redhat Open Day - JBoss Middleware PortfolioRedhat Open Day - JBoss Middleware Portfolio
Redhat Open Day - JBoss Middleware Portfolio
 
Herramientas Digitales
Herramientas DigitalesHerramientas Digitales
Herramientas Digitales
 
Desarrollo en Android: Conceptos Básicos
Desarrollo en Android: Conceptos BásicosDesarrollo en Android: Conceptos Básicos
Desarrollo en Android: Conceptos Básicos
 
Manual 2014 i 04 lenguaje de programación ii (0870)
Manual 2014 i 04 lenguaje de programación ii (0870)Manual 2014 i 04 lenguaje de programación ii (0870)
Manual 2014 i 04 lenguaje de programación ii (0870)
 
FASE DE DISEÑO-C3 ING DEL SOFTWARE1.pptx
FASE DE DISEÑO-C3 ING DEL SOFTWARE1.pptxFASE DE DISEÑO-C3 ING DEL SOFTWARE1.pptx
FASE DE DISEÑO-C3 ING DEL SOFTWARE1.pptx
 
Cap2 funcionalidad de cliente servidor
Cap2 funcionalidad de cliente servidorCap2 funcionalidad de cliente servidor
Cap2 funcionalidad de cliente servidor
 

Último

Second Life, informe de actividad del maestro Tapia
Second Life, informe de actividad del maestro TapiaSecond Life, informe de actividad del maestro Tapia
Second Life, informe de actividad del maestro Tapia
al050121024
 
modelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptxmodelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptx
evelinglilibethpeafi
 
Manual Web soporte y mantenimiento de equipo de computo
Manual Web soporte y mantenimiento de equipo de computoManual Web soporte y mantenimiento de equipo de computo
Manual Web soporte y mantenimiento de equipo de computo
mantenimientocarbra6
 
TIC en educacion.rtf.docxlolololololololo
TIC en educacion.rtf.docxlolololololololoTIC en educacion.rtf.docxlolololololololo
TIC en educacion.rtf.docxlolololololololo
KukiiSanchez
 
IA en entornos rurales aplicada a la viticultura
IA en entornos rurales aplicada a la viticulturaIA en entornos rurales aplicada a la viticultura
IA en entornos rurales aplicada a la viticultura
Miguel Rebollo
 
Gabinete, puertos y dispositivos que se conectan al case
Gabinete,  puertos y  dispositivos que se conectan al caseGabinete,  puertos y  dispositivos que se conectan al case
Gabinete, puertos y dispositivos que se conectan al case
JuanaNT7
 
HERRAMIENTAS WEB--------------------.pptx
HERRAMIENTAS WEB--------------------.pptxHERRAMIENTAS WEB--------------------.pptx
HERRAMIENTAS WEB--------------------.pptx
maralache30
 
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdfInformació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
Festibity
 
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVATECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
LilibethEstupian
 
Inteligencia Artificial
Inteligencia ArtificialInteligencia Artificial
Inteligencia Artificial
YashiraPaye
 
Computacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajasComputacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajas
sofiahuarancabellido
 
SISTESIS RETO4 Grupo4 co-creadores .ppsx
SISTESIS RETO4 Grupo4 co-creadores .ppsxSISTESIS RETO4 Grupo4 co-creadores .ppsx
SISTESIS RETO4 Grupo4 co-creadores .ppsx
tamarita881
 
Presentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre bloggerPresentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre blogger
larapalaciosmonzon28
 
Sitios web 3.0 funciones ventajas y desventajas
Sitios web 3.0 funciones ventajas y desventajasSitios web 3.0 funciones ventajas y desventajas
Sitios web 3.0 funciones ventajas y desventajas
paulroyal74
 
edublogs info.docx asdasfasfsawqrdqwfqwfqwfq
edublogs info.docx asdasfasfsawqrdqwfqwfqwfqedublogs info.docx asdasfasfsawqrdqwfqwfqwfq
edublogs info.docx asdasfasfsawqrdqwfqwfqwfq
larapalaciosmonzon28
 
Manual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputoManual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputo
doctorsoluciones34
 
Actividad Conceptos básicos de programación.pdf
Actividad Conceptos básicos de programación.pdfActividad Conceptos básicos de programación.pdf
Actividad Conceptos básicos de programación.pdf
NajwaNimri1
 
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
AMADO SALVADOR
 
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor OficialCatalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
AMADO SALVADOR
 
mantenimiento de chasis y carroceria1.pptx
mantenimiento de chasis y carroceria1.pptxmantenimiento de chasis y carroceria1.pptx
mantenimiento de chasis y carroceria1.pptx
MiguelAtencio10
 

Último (20)

Second Life, informe de actividad del maestro Tapia
Second Life, informe de actividad del maestro TapiaSecond Life, informe de actividad del maestro Tapia
Second Life, informe de actividad del maestro Tapia
 
modelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptxmodelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptx
 
Manual Web soporte y mantenimiento de equipo de computo
Manual Web soporte y mantenimiento de equipo de computoManual Web soporte y mantenimiento de equipo de computo
Manual Web soporte y mantenimiento de equipo de computo
 
TIC en educacion.rtf.docxlolololololololo
TIC en educacion.rtf.docxlolololololololoTIC en educacion.rtf.docxlolololololololo
TIC en educacion.rtf.docxlolololololololo
 
IA en entornos rurales aplicada a la viticultura
IA en entornos rurales aplicada a la viticulturaIA en entornos rurales aplicada a la viticultura
IA en entornos rurales aplicada a la viticultura
 
Gabinete, puertos y dispositivos que se conectan al case
Gabinete,  puertos y  dispositivos que se conectan al caseGabinete,  puertos y  dispositivos que se conectan al case
Gabinete, puertos y dispositivos que se conectan al case
 
HERRAMIENTAS WEB--------------------.pptx
HERRAMIENTAS WEB--------------------.pptxHERRAMIENTAS WEB--------------------.pptx
HERRAMIENTAS WEB--------------------.pptx
 
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdfInformació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
 
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVATECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
 
Inteligencia Artificial
Inteligencia ArtificialInteligencia Artificial
Inteligencia Artificial
 
Computacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajasComputacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajas
 
SISTESIS RETO4 Grupo4 co-creadores .ppsx
SISTESIS RETO4 Grupo4 co-creadores .ppsxSISTESIS RETO4 Grupo4 co-creadores .ppsx
SISTESIS RETO4 Grupo4 co-creadores .ppsx
 
Presentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre bloggerPresentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre blogger
 
Sitios web 3.0 funciones ventajas y desventajas
Sitios web 3.0 funciones ventajas y desventajasSitios web 3.0 funciones ventajas y desventajas
Sitios web 3.0 funciones ventajas y desventajas
 
edublogs info.docx asdasfasfsawqrdqwfqwfqwfq
edublogs info.docx asdasfasfsawqrdqwfqwfqwfqedublogs info.docx asdasfasfsawqrdqwfqwfqwfq
edublogs info.docx asdasfasfsawqrdqwfqwfqwfq
 
Manual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputoManual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputo
 
Actividad Conceptos básicos de programación.pdf
Actividad Conceptos básicos de programación.pdfActividad Conceptos básicos de programación.pdf
Actividad Conceptos básicos de programación.pdf
 
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
 
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor OficialCatalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
 
mantenimiento de chasis y carroceria1.pptx
mantenimiento de chasis y carroceria1.pptxmantenimiento de chasis y carroceria1.pptx
mantenimiento de chasis y carroceria1.pptx
 

Curso Arquitectura J2 Ee Parte1

  • 1. ARQUITECTURA Y DISEÑO DE APLICACIONES J2EE Andrés Guerrero andres.guerrero@coit.es
  • 2. Objetivos del curso ● Formar para diseñar los sistemas a nivel corporativo ● Utilizar J2EE para implantar sistemas multicapa ● Aprender a utilizar las tecnologías J2EE para mejorar la calidad de servicio de los sistemas corporativos
  • 3. Conceptos básicos ● ¿Qué es arquitectura y qué es diseño? ● Arquitectura: – Cubre toda la estructura de un sistema – Escalabilidad, seguridad, portabilidad, rendimiento, fiabilidad, flexibilidad – Los detalles de implementación están ocultos ● Diseño: – Opera a un nivel de abstracción más bajo – Trata sobre los detalles de implementación
  • 4. Problemas de los arquitectos ● Tiempo ● Coste ● Experiencia ● Habilidades ● Visibilidad ● Complejidad ● Cambios
  • 6. Fases en el desarrollo SW ● Análisis de requisitos / Alcance del problema – HW, SW, topología de la red, desarrollo, testeo, entorno de producción – Generar el modelo de dominio: clases, objetos e interacciones ● Análisis OO/Arquitectura – UML ● Diseño de la arquitectura – Framework, protocolos ● Implementación
  • 7. Principios de arquitectura “Divide y vencerás” Julio César “Vamos por partes” Jack “El destripador”
  • 8. Principios de arquitectura - Capas ● Las capas (layers) es una división lógica de los elementos que componen una solución SW
  • 9. Principios de arquitectura - Niveles ● Es una división física de la infraestructura de un sistema
  • 10. Características en la arquitectura ● Disponibilidad – Grado de accesibilidad de un sistema (ej: 24x7) – Relacionado con el rendimiento ● Fiabilidad – Garantizar la integridad y consistencia de una aplicación y sus transacciones ● Gestionabilidad – Gestionar los recursos de un sistema para garantizar la disponibilidad y el rendimiento respecto a otros factores (plugins)
  • 11. Características en la arquitectura ● Flexibilidad – Acometer cambios en la configuración de la arquitectura y el HW sin un gran impacto en el sistema ● Rendimiento – Cumplir las funcionalidades en un tiempo razonable ● Capacidad – Habilidad de un sistema para realizar múltiples tareas por unidad de tiempo
  • 12. Características en la arquitectura ● Escalabilidad – Capacidad de que ante incrementos de transacciones el sistema cumpla con los requisitos de rendimiento y disponibilidad ● Extensibilidad – Capacidad de extender la funcionalidad ● Validez – Capacidad para predecir o confirmar resultados en función de determinadas entradas de usuario
  • 13. Características en la arquitectura ● Reusabilidad – Poder utilizar un componente en más de un contexto sin modificarlo internamente ● Seguridad – Garantizar la accesibilidad e integridad de la información de acuerdo a la política de la empresa
  • 14. J2EE - Introducción ● Define un modelo para desarrollar aplicaciones distribuidas ● Basado en un modelo multicapa ● Define un conjunto de componentes que pueden reutilizarse ● Destinado para estandarizar y simplificar el desarrollo de aplicaciones distribuidas ● La utilización de componentes es flexible
  • 15. Desarrollo de aplicaciones corporativas J2EE - Retos ● Productividad – Equipos de desarrollo con medios de estándar – Evitar soluciones específicas y arquitecturas propietarias – Facilitar la división del trabajo ● Integración con sistemas existentes – Legacy systems (CICS, DB2, Mainframes, ...)
  • 16. Desarrollo de aplicaciones corporativas J2EE - Retos ● Libertad de elección de herramientas, componentes (Websphere, Weblogic, Jboss, etc) ● Respuesta a la demanda – Disponibilidad, flexibilidad, escalabilidad – Evitar la necesidad de rediseño, recodificación para conseguir lo anterior ● Mantenimiento de la seguridad – Conseguir un modelo de seguridad integrado en entornos heterogéneos
  • 18. Plataforma J2EE ● Modelo de aplicación distribuida multicapa – Capa cliente (navegador) – Capa de presentación (servlets, JSP) – Capa de lógica de negocio (EJBs) – Capa de datos (BD)
  • 19. Plataforma J2EE ● Gestión de componentes basados en contenedor – Los contenedores son entornos de ejecución estándares que proveen servicios específicos a componentes – Por ejemplo: El contenedor web proporciona respuestas a peticiones de clientes (invocando un JSP o servlet) – Proporcionan selección de comportamiento en tiempo de despliegue – Los contenedores pueden convivir o no en una misma plataforma
  • 20. Plataforma J2EE ● Soporte para componentes de cliente – Páginas HTML estáticas – HTML generado dinámicamente JSP – Java applets – Aplicaciones autónomas (stand-alone) Java o no – Comunicación con el middle tier por medio de HTTP, HTML, XML
  • 21. Plataforma J2EE ● Soporte para componentes de negocio – EJB (Enterprise Java Beans) – Permite a los desarrolladores concentrarse en la lógica de negocio delegando las complejidades de las transacciones al contenedor
  • 22. Contenidos de una aplicación J2EE
  • 23. Ventajas de la plataforma J2EE ● Desarrollo y arquitectura más simples – Funcionalidad más fácil de implementar – Permite especificar comportamientos en tiempo de despliegue – Permite la división del trabajo ● Integración con los sistemas de información corporativos – JDBC, JTA, JNDI, JMS, JavaMail, JAXP, CORBA
  • 24. Ventajas de la plataforma J2EE ● Múltiples servidores, herramientas, componentes – Servidores: Glashfish, Websphere, Weblogic,... – Herramientas: Netbeans, Eclipse, Websphere,... – Frameworks: Struts, Spring, Hibernate,... ● Fácil escalabilidad – Los contenedores implementan mecanismos para la escalabilidad de aplicaciones distribuidas
  • 25. Ventajas de la plataforma J2EE ● Modelo de seguridad unificado y simplificado – Tanto en los contenedores Web como de EJB la seguridad puede definirse en los ficheros descriptores de despliegue (flexibilidad)
  • 26. Modelos de aplicaciones J2EE ● La arquitectura J2EE es flexible permite la elección de los contenedores a utilizar en cada caso
  • 28. Modelo de aplicación centrada en la Web
  • 30. J2EE – Capa de cliente ● Desde el punto de vista del usuario el cliente es la aplicación ● Debe ser útil, usable, rápida ● Dependiendo del tipo de cliente a utilizar hay una serie de consideraciones a tener en cuenta
  • 31. Capa de cliente - Consideraciones ● Consideraciones de la red – Diferentes tipos de conexión – Latencia – Ancho de banda – La red no siempre es fiable – El cliente ideal se conecta con el servidor sólo lo necesario, transmite la información necesaria y funciona razonablemente bien cuando no puede conectarse
  • 32. Capa de cliente - Consideraciones ● Consideraciones de seguridad – Cuando existe un cortafuegos se limita la elección de los protocolos (HTTP, HTTPS) para la comunicación – Tipo de red: Internet, Intranet → Afecta a la autenticación
  • 33. Capa de cliente - Consideraciones ● Consideraciones de la plataforma cliente – Tipo de terminal en el que se visualizará – Periféricos: Tamaño de la pantalla, ratón, teclado – Complejidad de las aplicaciones multiplataforma
  • 34. Capa de cliente – Directrices generales de diseño ● Aunque la plataforma J2EE recomienda el uso de clientes ligeros la capa cliente puede realizar las siguientes funciones: – Presentación del interfaz de usuario – Validar las entradas del usuario – Comunicarse con el servidor – Gestionar el estado de la conversación ● Cuantas más funciones tenga la capa de cliente mayor rapidez de respuesta → RIA
  • 35. Directrices de diseño para navegadores ● Ventajas de la utilización de navegadores: – Son los clientes más ligeros – No están afectados por los cambios de la aplicación – Están en todas partes: Pcs, Móviles, Estaciones de trabajo
  • 36. Directrices de diseño para navegadores ● Presentación del interfaz de usuario – Descargan los documentos del servidor – HTML, XML – Son estáticos o generados dinámicamente (JSP, servlets) – Los navegadores ofrecen un entorno familiar al usuario – Pero ofrecen una limitada interactividad-> requiere muchas conexiones con el servidor – Javascript
  • 37. Directrices de diseño para navegadores ● Validación de las entradas del usuario – Utilizar Javascript (ECMA) para la validación de los campos del formulario – El código de Javascript común debe estar incluido en un fichero-> el navegador lo guarda en la caché – No exime la validación en el lado del servidor – La aplicación debe funcionar si se desactiva Javascript
  • 38. Directrices de diseño para navegadores ● Comunicación con el servidor – Se realiza a través de HTTP(S) – Métodos GET y POST – Las peticiones para actualizar datos generalmente son a través de POST – El API de servlet proporciona el interfaz para atender ambos métodos (doGet, doPost) – Una aplicación J2EE debe utilizar JSP para generar documentos HTML
  • 39. Directrices de diseño para navegadores ● Gestión de la sesión – HTTP es un protocolo de petición-respuesta donde cada petición es tratada independientemente – Sesión: Secuencia de peticiones realizadas por un usuario utilizando un único cliente – Formas de guardar la sesión: ● Cookies ● Reescritura de URL (URL rewriting) – Identificador de sesión (jsessionid) – Los servidores deben manejar el estado de la sesión
  • 40. Directrices de diseño para navegadores ● Accesibilidad web – Capacidad de acceso a la web y a sus contenidos por todas las personas independientemente de la discapacidad que presenten y del contexto de uso (ambientales, tecnológicas) – Validación semántica del contenido (Test W3C) – Herramientas de accesibilidad (TAW) – Relacionado con el posicionamiento en buscadores