SlideShare una empresa de Scribd logo
1 de 23
Descargar para leer sin conexión
Departamento de Ciencias de la Computación




         Arquitecturas de una
              aplicación

   Gestión I+D+i: Sistema de vigilancia
   tecnológica e inteligencia competitiva

Jesús Cáceres Tello
Índice I
 01 Conceptos iniciales
    01.01 Vigilancia Tecnológica
     01.02 Inteligencia competitiva
    01.03. La norma 166006
 02 Requisitos del Sistema de Vigilancia
    02.01 Tipos de Requisitos
    02.02 Requisitos Generales
    02.03 Requisitos de Documentación
    02.04 Requisitos de confidencialidad, legalidad y aspectos
    éticos
 03 Responsabilidades de la Dirección
    03.01 Compromiso
    03.02 Política de VT/IC
    03.03 Planificación y objetivos




                                                                 Arquitecturas de una aplicación
    03.04 Responsabilidad, autoridad y comunicación
    03.05 Revisión
 04 Gestión de Recursos
    04.01 Provisión de recursos
    04.02 Recursos humanos
    04.03 Recursos materiales e infraestructura

                                                                 2
01 Introducción
01.01 Estilos arquitecturales

 Son indicaciones abstractas de cómo dividir/organizar
  un sistema y de cómo se realiza en proceso de
  interacción entre ellas (No son patrones de diseño)
 Son herramientas básicas de un arquitecto a la hora de
  dar forma a la arquitectura de una aplicación
 Se organizan en torno al aspecto de la aplicación:
      Comunicación
      Despliegue
      Dominio




                                                           Arquitecturas de una aplicación
      Interacción
      Estructura
 Lo normal es que una arquitectura se base en varios
  estilos arquitecturales


                                                           3
02 Tipos de Estilos Arquitecturales
02.01 Cliente/Servidor (I)

   El estilo cliente/servidor define una relación entre dos
    aplicaciones en las cuales una de ellas (cliente) envía
    peticiones a la otra (servidor fuente de datos)




   Características:




                                                                               Arquitecturas de una aplicación
      Es para sistemas distribuidos
      Divide el sistema en dos aplciaciones
      Describe la relación cliente/servidor (uno envía peticiones y el otro
       envía respuestas)
      Puede usar un amplio rango de protocolos y formatos de datos
       para comunicar la información (SOAP, HTTP, HTTPS, XML,…)
                                                                               4
02 Tipos de Estilos Arquitecturales
02.01 Cliente/Servidor (II)
   Claves:
     El cliente realiza peticiones y espera a la recepción de la respuesta
      para posteriormente procesarla
     El cliente se suele conectar a un solo servidor al mismo tiempo
     Si existe interacción con el usuario, ésta se realiza en el lado del
      cliente (interfaz gráfica)
     El servidor no realiza ninguna petición al cliente
     El servidor envía los datos en repuesta a las peticiones realizadas
     El proceso en el servidor sería: autentificación y verificación del
      usuario, procesamiento de la petición y envío de resultados
   Beneficios:




                                                                              Arquitecturas de una aplicación
     Más seguridad
     Acceso centralizado a los datos
     Facilidad en el mantenimiento (roles)
   Cuándo usarlo:
       Cuando se soporte a varios clientes
       Cuando la aplicación se ejecute en una red (LAN, WAN)
       Implementación de procesos de negocio de uso en toda la Org.
                                                                              5
       Diferentes roles
02 Tipos de Estilos Arquitecturales
02.02 Basado en componentes (I)
   Describe un acercamiento al diseño de sistemas como un
    conjunto de componentes que exponen interfaces bien
    definidas y de colaboración conjunta para la resolución de
    problemas.




                                                                      Arquitecturas de una aplicación
   Características:
      Diseño de aplicaciones a partir de componentes individuales
      Da prioridad a la descomposición del sistema en componentes:
       métodos, eventos y propiedades




                                                                      6
02 Tipos de Estilos Arquitecturales
02.02 Basado en componentes (I)
   Claves:
     Diseño de componentes orientado a la reutilización en distintas
      aplicaciones (cuando se pueda), independientes.
     Diseñados para diferentes entornos y contextos, se le debe pasar
      toda la información, no debe contener ninguna información
     Puede existir herencia en los componentes y encapsulación
   Beneficios:
       Facilidad en el despliegue
       Reducción de costes, se pueden utilizar componentes de terceros
       Reusabilidad por su independencia del contexto
       Reducción de la complejidad: contenedores de componentes




                                                                          Arquitecturas de una aplicación
        (activación, gestión del ciclo de vida, etc.)
   Cuándo usarlo:
       Facilidad para conseguir esos componentes
       Ejecución de aplicaciones con pocos o ningún dato de entrada
       Combinación de componentes escritos en diferentes lenguajes
       Actualización de componentes de forma sencilla.
                                                                          7
02 Tipos de Estilos Arquitecturales
02.03 En Capas (N-Layer) (I)
   Se basa en una distribución jerárquica de los roles y las
    responsabilidades para proporcionar una división efectiva de
    los problemas a resolver. Los roles indican el tipo y la forma
    de la interacción con otras capas , y las responsabilidades la
    funcionalidad que implementan




                                                                        Arquitecturas de una aplicación
   Características:
      La mayoría de las interacciones ocurren sólo entre las capas
       vecinas
      Las capas pueden estar distribuidas en diferentes máquinas
      Comunicación entre capas a través de interfaces bien conocidas
      Herencia entre capas de distinto nivel
      Separación clara de las funcionalidades de cada capa
                                                                        8
02 Tipos de Estilos Arquitecturales
02.03 En Capas (N-Layer) (II)
   Claves:
     Cada capa contiene la funcionalidad relacionada solo con las
      tareas de esa capa
     No existe dependencia de las capas inferiores con las superiores
     La comunicación entre capas está basada en una abstracción que
      permite una acoplamiento entre capas
   Beneficios:
     Alto rendimiento basado en la distribución de capas en distintos
      niveles físicos, escalabilidad y tolerancia a fallos.
     Testeabilidad ya que cada capa tiene una interfaz bien definida
      sobre la que se pueden realizar pruebas
     Independencia del hardware, no hay despliegue y no hay




                                                                            Arquitecturas de una aplicación
      dependencia con interfaces externas.
   Cuándo usarlo:
     Si se tienen implementaciones de capas ya construidas
      (reusabilidad)
     Aplicaciones complejas con distintos equipos de desarrollo.
     La aplicación debe soportar distintos tipos de clientes y distintos
      dispositivos
     Idónea cuando se quieran implementar reglas y procesos de             9

      negocio complejos y/o configurables
02 Tipos de Estilos Arquitecturales
02.04 Presentación Desacoplada (I)
   Indica cómo debe realizarse el manejo de las acciones del
    usuario, la manipulación de la interfaz y los datos de la
    aplicación. Este estilo separa los componentes de la interfaz
    del flujo de datos y de la manipulación.




   Características:




                                                                       Arquitecturas de una aplicación
      Muy conveniente cuando se diseñan aplicaciones basadas en
       patrones de diseño.
      Separación de la lógica y de la presentación de los datos
      Permite trabajo paralelo entre diseñadores y desarrolladores
      Permite mejor testeo ya que se pueden testear comportamientos
       individualmente

                                                                       10
02 Tipos de Estilos Arquitecturales
02.04 Presentación Desacoplada (II)
   Claves:
     Puede separar el procesamiento de la interfaz en distintos roles
     Permiten la construcción de mocks para el testeo
     Utiliza eventos de notificación para la vista cuando ha habido
      modificación de datos.
     El controlador maneja los eventos disparados desde los controles
      de usuario en la vista
   Beneficios:
     Testeabilidad (moks)
     Reusabilidad, los controladores pueden ser utilizados por otras
      vistas y las vistas por otros controladores.
   Cuándo usarlo:




                                                                           Arquitecturas de una aplicación
     Cuando se quiera separar la creación del interfaz de la lógica que
      la maneja
     La interfaz no contenga ningún código de procesamiento de
      eventos
     El código de procesamiento de la interfaz no implementa ninguna
      lógica de negocio.

                                                                           11
02 Tipos de Estilos Arquitecturales
02.05 Presentación Desacoplada N-Niveles (N-Tier) (I)
   Define la separación de la funcionalidad en diferentes
    segmentos o niveles físicos. Es similar al estilo N-Capas pero
    sitúa cada segmento en una máquina distinta. En este caso
    hablamos de niveles físicos (Tiers)




   Características:




                                                                        Arquitecturas de una aplicación
      Separación de niveles físicos (Servidores normalmente) por
       distintas razones, escalabilidad, seguridad, o simplemente por
       necesidad




                                                                        12
02 Tipos de Estilos Arquitecturales
02.05 Presentación Desacoplada N-Niveles (N-Tier) (II)
   Claves:
     Es un estilo para definir el despliegue de las capas de la aplicación
     Descomposición funcional de las aplicaciones, componentes de
      servicio y su despliegue para múltiples mejoras (escalabilidad,
      disponibilidad, rendimiento, manejabilidad y uso de recursos)
     Independencia de niveles menos en el inmediatamente inferior
     Tiene al menos 3 niveles lógicos separadas en distintos servidores
     Despliegue de una capa en un nivel si uno o más servicios
      dependen de la funcionalidad expuesta por dicha capa.
   Beneficios:
     Mantenibilidad, independencia de los niveles (actualizaciones)
     Escalabilidad, los niveles están basados en el despliegue de capas




                                                                              Arquitecturas de una aplicación
     Disponibilidad, tolerancia a fallos de los distintos niveles
   Cuándo usarlo:
     Cuando los requisitos de procesamiento o de seguridad de las
      capas son diferentes
     Compartir la lógica de negocio entre varias aplicaciones
     Disponibilidad de hardware para desplegar el número necesario de
      servidores en cada nivel.
                                                                              13
02 Tipos de Estilos Arquitecturales
02.06 Arquitectura orientada a Dominio (DDD) (I)
   Es una forma de afrontar los proyectos a nivel equipo de
    desarrollo centrándose en lo que el cliente solicita.
   Contextualiza el problema a resolver dentro de un dominio. El
    conjunto de clases y operaciones asociadas deben estar
    diseñadas para solucionar el problema con independencia de
    cualquier otro aspecto del sistema, como la persistencia,
    servicios web, etc.
   Características:
     Utiliza patrones y otras arquitecturas para el diseño de una
      aplicación:
         Arquitectura N-Capas




                                                                     Arquitecturas de una aplicación
         Patrones de Diseño
               Repository
               Entity
               Aggregate
               Value-Object
               Unit Of Work
               Service
     Considera de vital importancia el desacoplamiento entre
      componentes                                                    14
02 Tipos de Estilos Arquitecturales
02.06 Arquitectura orientada a Dominio (DDD) (II)




                                                    Arquitecturas de una aplicación
                                                    15
02 Tipos de Estilos Arquitecturales
02.06 Arquitectura orientada a Dominio (DDD) (III)


   Claves:
     Se debe tener un buen entendimiento del Domino de Negocio que
      se desea modelar.
     Contacto permanente del equipo de desarrollo con los expertos del
      dominio.
     Todo el equipo debe manejar el mismo lenguaje sobre el Dominio
      de Negocio (Lenguaje Ubicuo)
     El core del software es el Modelo de Dominio carente de
      ambiguedades
     Debe aplicarse únicamente a dominios complejos donde el modelo




                                                                          Arquitecturas de una aplicación
      y los procesos lingüísticos proporcionen claros beneficios en la
      comunicación de la información.
     La complejidad arquitectural es mucho mayor aunque su
      mantenibilidad y desacoplamiento entre componentes es mucho
      mayor.



                                                                          16
02 Tipos de Estilos Arquitecturales
02.06 Arquitectura orientada a Dominio (DDD) (IV)


     Mejor Testing: facilita el Testing y el Mocking debido al
      desacoplamiento de objetos.



   Cuándo usarlo:
     En aplicaciones complejas con mucha lógica de negocio con
      mejora de la comunicación y minimización de malos entendidos
     En escenarios empresariales de gran tamaño difíciles de manejar
      con otras técnicas.




                                                                        Arquitecturas de una aplicación
                                                                        17
02 Tipos de Estilos Arquitecturales
02.07 Orientación a Objetos (I)
   Define el sistema como un conjunto de objetos que cooperan
    entre sí en lugar de cómo un conjunto de procedimientos. Los
    objetos son discretos, independientes y poco acoplados, se
    comunican mediante interfaces y permiten enviar y recibir
    mensajes.




   Características:
      Indicado para diseñar aplicaciones basadas en un número de
       unidades lógicas y código reusable.




                                                                         Arquitecturas de una aplicación
      Describe el uso de objetos que contienen los datos y el
       comportamiento para trabajar con esos datos y además tienen un
       rol o responsabilidad distinta
      Incide en la reutilización a través de la encapsulación, la
       modularidad, el polimorfismo y la herencia
      Contrasta con el acercamiento procedimental (secuencia definida
       de tareas y acciones)
                                                                         18
02 Tipos de Estilos Arquitecturales
02.07 Orientación a Objetos (II)
   Claves:
     Permite reducir operaciones complejas mediante generalizaciones
     Un objeto puede estar formado por otros objetos con visibilidad o
      no respecto a otras clases
     Existe la herencia entre objetos heredando sus funcionalidades o
      redefiniéndolas para implementar un nuevo comportamiento
     La herencia facilita el mantenimiento y actualización ya que los
      cambios se propagan automáticamente a todos los objetos
      herederos
   Beneficios:
     Mayor comprensión ya que los objetos son mucho más cercanos al
      mundo real




                                                                          Arquitecturas de una aplicación
     Mejor Reusabilidad apoyado por el polimorfismo y la abstracción
     Testeabilidad gracias a la encapsulación de los objetos
     Extensibilidad gracias a la encapsulación, polimorfismo y
      abstracción
   Cuándo usarlo:
     Modelo basado en objetos reales y sus acciones
     Ya se dispone de los objetos que encajan en el diseño
                                                                          19
     Encapsulación de lógica y datos juntos de forma transparente
02 Tipos de Estilos Arquitecturales
02.08 Orientación a Servicios (SOA) (I)
   Permite a una aplicación ofrecer su funcionalidad como un
    conjunto de servicios para que sean consumidos. Los servicios
    usan interfaces estándar que pueden ser invocadas,
    publicadas y descubiertas. Proporcionan un esquema basado
    en mensajes




                                                                           Arquitecturas de una aplicación
   Características:
      Interacción con el servicio muy desacoplada
      Puede empaquetar procesos de negocio como servicios
      Los clientes y otros servicios pueden acceder a servicios locales
       corriendo en el mismo nivel.
      Los clientes y otros servicios acceden a los servicios remotos a
       través de la red
      Puede usar un amplio rango de protocolos y formatos de datos        20
02 Tipos de Estilos Arquitecturales
02.08 Orientación a Servicios (SOA) (II)
   Claves:
       Los servicios son autónomos
       Los servicios pueden estar situados en cualquier nodo de una red local o
        remota mientras se soporten los protocolos de comunicación necesarios
       Los servicios comparten esquemas y contratos para comunicarse, no clases
       La compatibilidad se basa en factores como el mecanismo de transporte, el
        protocolo y la seguridad
   Beneficios:
       Alineamiento con el dominio de la empresa, reutilización de servicios =
        aumento de oportunidades tecnológicas y de negocio y reducción de costes.
       Abstracción ya que los servicios son autónomos
       Descubrimiento, mediante descripciones estándar (wsdl)
   Cuándo usarlo:




                                                                                     Arquitecturas de una aplicación
       Construcción de aplicaciones con múltiples servicios y una interfaz única.
       Creación de aplicaciones en la nube
       Comunicación basada en mensajes
       Funcionalidad con independencia de la plataforma
       Necesidad de establecer servicios federados, p.e. con autenticación
       Exposición de servicios con independencia del conocimiento por parte del
        cliente de su interfaz
       Adecuado para escenarios de interoperabilidad e integración.
                                                                                     21
03 Referencias

   C. de la Torre, U. Zorrilla, J. Calvarro, M.A. Ramos. “Guía de
    Arquitecturas N-Capas” (pp. 9-60). Cap. Estilos
    arquitecturales. Ed. Frasis Press, 2010.
    http://msdn.microsoft.com/es-es/architecture/default.aspx




                                                                     Arquitecturas de una aplicación
                                                                     22
Gracias por su atención
Jesús Cáceres Tello
jesus.caceres@uah.es




Departamento de Ciencias de la Computación
Escuela Universitaria Politécnica
Campus de Alcalá
http://www.cc.uah.es

Más contenido relacionado

La actualidad más candente

2 1 1_diseño arquitectónico
2 1 1_diseño arquitectónico2 1 1_diseño arquitectónico
2 1 1_diseño arquitectónicolandeta_p
 
DISEÑO DE LA ARQUITECTURA DEL SOFTWARE
DISEÑO DE LA ARQUITECTURA DEL SOFTWAREDISEÑO DE LA ARQUITECTURA DEL SOFTWARE
DISEÑO DE LA ARQUITECTURA DEL SOFTWAREjose_rob
 
Diseno de la arquitectura
Diseno de la arquitecturaDiseno de la arquitectura
Diseno de la arquitecturaFatima Cham
 
Arquitectura del sistema
Arquitectura del sistemaArquitectura del sistema
Arquitectura del sistemapierre R.
 
Arquitectura de software
Arquitectura de softwareArquitectura de software
Arquitectura de softwareLiliana Pacheco
 
2 1 vistas arquitectonicas
2 1 vistas arquitectonicas2 1 vistas arquitectonicas
2 1 vistas arquitectonicaslandeta_p
 
Descomposición modular y estilos de control
Descomposición modular y estilos de controlDescomposición modular y estilos de control
Descomposición modular y estilos de controlJuan Pablo Bustos Thames
 
Principios de diseño de la arquitectura del software
Principios de diseño de la arquitectura del softwarePrincipios de diseño de la arquitectura del software
Principios de diseño de la arquitectura del softwareJose Patricio Bovet Derpich
 
Arquitectura De Software Para Dummies
Arquitectura De Software Para DummiesArquitectura De Software Para Dummies
Arquitectura De Software Para DummiesSorey García
 
Diseño de-la-arquitectura-de-software
Diseño de-la-arquitectura-de-softwareDiseño de-la-arquitectura-de-software
Diseño de-la-arquitectura-de-softwareAndresRealp1
 
Arquitecturas de software - Parte 1
Arquitecturas de software - Parte 1Arquitecturas de software - Parte 1
Arquitecturas de software - Parte 1Marta Silvia Tabares
 
Diseno Software
Diseno SoftwareDiseno Software
Diseno Softwarealfmuny
 
Estilos y patrones arquitectónicos
Estilos y patrones arquitectónicosEstilos y patrones arquitectónicos
Estilos y patrones arquitectónicosIsrael Rey
 

La actualidad más candente (20)

2 1 1_diseño arquitectónico
2 1 1_diseño arquitectónico2 1 1_diseño arquitectónico
2 1 1_diseño arquitectónico
 
Arquitecturas de software
Arquitecturas de softwareArquitecturas de software
Arquitecturas de software
 
DISEÑO DE LA ARQUITECTURA DEL SOFTWARE
DISEÑO DE LA ARQUITECTURA DEL SOFTWAREDISEÑO DE LA ARQUITECTURA DEL SOFTWARE
DISEÑO DE LA ARQUITECTURA DEL SOFTWARE
 
Estilos Arquitectonicos-Capas
Estilos Arquitectonicos-CapasEstilos Arquitectonicos-Capas
Estilos Arquitectonicos-Capas
 
Diseno de la arquitectura
Diseno de la arquitecturaDiseno de la arquitectura
Diseno de la arquitectura
 
Arquitectura del sistema
Arquitectura del sistemaArquitectura del sistema
Arquitectura del sistema
 
Principales estilos arquitectónicos
Principales estilos arquitectónicosPrincipales estilos arquitectónicos
Principales estilos arquitectónicos
 
Arquitectura de software
Arquitectura de softwareArquitectura de software
Arquitectura de software
 
Modelos arquitectónicos
Modelos arquitectónicosModelos arquitectónicos
Modelos arquitectónicos
 
2 1 vistas arquitectonicas
2 1 vistas arquitectonicas2 1 vistas arquitectonicas
2 1 vistas arquitectonicas
 
Descomposición modular y estilos de control
Descomposición modular y estilos de controlDescomposición modular y estilos de control
Descomposición modular y estilos de control
 
Principios de diseño de la arquitectura del software
Principios de diseño de la arquitectura del softwarePrincipios de diseño de la arquitectura del software
Principios de diseño de la arquitectura del software
 
Arquitectura De Software Para Dummies
Arquitectura De Software Para DummiesArquitectura De Software Para Dummies
Arquitectura De Software Para Dummies
 
Arquitectura
ArquitecturaArquitectura
Arquitectura
 
Diseño de-la-arquitectura-de-software
Diseño de-la-arquitectura-de-softwareDiseño de-la-arquitectura-de-software
Diseño de-la-arquitectura-de-software
 
Arquitecturas de software - Parte 1
Arquitecturas de software - Parte 1Arquitecturas de software - Parte 1
Arquitecturas de software - Parte 1
 
3 1 mde mda
3 1 mde mda3 1 mde mda
3 1 mde mda
 
9.diseño de la arquitectura
9.diseño de la arquitectura9.diseño de la arquitectura
9.diseño de la arquitectura
 
Diseno Software
Diseno SoftwareDiseno Software
Diseno Software
 
Estilos y patrones arquitectónicos
Estilos y patrones arquitectónicosEstilos y patrones arquitectónicos
Estilos y patrones arquitectónicos
 

Destacado

Inmunogenética de las enfermedades reumáticas
Inmunogenética de las enfermedades reumáticasInmunogenética de las enfermedades reumáticas
Inmunogenética de las enfermedades reumáticasCECY50
 
Comunicación humana por interacción personal
Comunicación humana por interacción personalComunicación humana por interacción personal
Comunicación humana por interacción personalCinthia Lopez
 

Destacado (6)

Inmunogenética de las enfermedades reumáticas
Inmunogenética de las enfermedades reumáticasInmunogenética de las enfermedades reumáticas
Inmunogenética de las enfermedades reumáticas
 
Russia Fast Facts - CNN.com
Russia Fast Facts - CNN.comRussia Fast Facts - CNN.com
Russia Fast Facts - CNN.com
 
Comunicación humana por interacción personal
Comunicación humana por interacción personalComunicación humana por interacción personal
Comunicación humana por interacción personal
 
Exito
ExitoExito
Exito
 
Plantilla diapositivas
Plantilla diapositivasPlantilla diapositivas
Plantilla diapositivas
 
Las Proteínas
Las ProteínasLas Proteínas
Las Proteínas
 

Similar a Arquitecturas de una aplicación

Exposición Unidad I - Ingeniería en Software II.pptx
Exposición Unidad I - Ingeniería en Software II.pptxExposición Unidad I - Ingeniería en Software II.pptx
Exposición Unidad I - Ingeniería en Software II.pptxjuan351241
 
Ingenieria de software - Unidad 3 arquitecturas de software
Ingenieria de software - Unidad 3 arquitecturas de softwareIngenieria de software - Unidad 3 arquitecturas de software
Ingenieria de software - Unidad 3 arquitecturas de softwareJosé Antonio Sandoval Acosta
 
Patricio quiros tarea final
Patricio quiros tarea finalPatricio quiros tarea final
Patricio quiros tarea finalLeonel Ibarra
 
diseño de arquitectura de un sistema de informacion
diseño de arquitectura de un sistema de informaciondiseño de arquitectura de un sistema de informacion
diseño de arquitectura de un sistema de informacionzulaymaylin
 
Arquitectura aplicaciones clase3
Arquitectura aplicaciones clase3Arquitectura aplicaciones clase3
Arquitectura aplicaciones clase3Germania Rodriguez
 
Modelos de sistemas distribuidos
Modelos de sistemas distribuidosModelos de sistemas distribuidos
Modelos de sistemas distribuidosTensor
 
Modelos de sistemas distribuidos
Modelos de sistemas distribuidosModelos de sistemas distribuidos
Modelos de sistemas distribuidosTensor
 
Clase7 unidad1
Clase7 unidad1Clase7 unidad1
Clase7 unidad1zurda21
 
Modelos de los sistemas distribuidos
Modelos de los sistemas distribuidosModelos de los sistemas distribuidos
Modelos de los sistemas distribuidosMargarita Labastida
 
Fundam servclient
Fundam servclientFundam servclient
Fundam servclienttvazamar
 
Sesion 6 2 diseño análisis arquitectural
Sesion 6 2 diseño   análisis arquitecturalSesion 6 2 diseño   análisis arquitectural
Sesion 6 2 diseño análisis arquitecturalJulio Pari
 
Arquitecturas
ArquitecturasArquitecturas
Arquitecturasenlinea70
 
Sesion 7 1 diseño particionamiento arquitectural
Sesion 7 1 diseño   particionamiento arquitecturalSesion 7 1 diseño   particionamiento arquitectural
Sesion 7 1 diseño particionamiento arquitecturalJulio Pari
 
Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)
Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)
Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)Avanet
 
Sistemas arquitectónicos centralizados, descentralizados e híbridos.
Sistemas arquitectónicos centralizados, descentralizados e híbridos.Sistemas arquitectónicos centralizados, descentralizados e híbridos.
Sistemas arquitectónicos centralizados, descentralizados e híbridos.Universidad de Guadalajara
 
Arquitectura de software.docx
Arquitectura de software.docxArquitectura de software.docx
Arquitectura de software.docxKeiberOrtiz1
 
Clase 08a estilos_arquitectonicos
Clase 08a estilos_arquitectonicosClase 08a estilos_arquitectonicos
Clase 08a estilos_arquitectonicosDemián Gutierrez
 
Modelos de sistemas distribuidos
Modelos de sistemas distribuidosModelos de sistemas distribuidos
Modelos de sistemas distribuidosTensor
 

Similar a Arquitecturas de una aplicación (20)

Exposición Unidad I - Ingeniería en Software II.pptx
Exposición Unidad I - Ingeniería en Software II.pptxExposición Unidad I - Ingeniería en Software II.pptx
Exposición Unidad I - Ingeniería en Software II.pptx
 
Ingenieria de software - Unidad 3 arquitecturas de software
Ingenieria de software - Unidad 3 arquitecturas de softwareIngenieria de software - Unidad 3 arquitecturas de software
Ingenieria de software - Unidad 3 arquitecturas de software
 
Arquitectura multicapa
Arquitectura multicapaArquitectura multicapa
Arquitectura multicapa
 
Patricio quiros tarea final
Patricio quiros tarea finalPatricio quiros tarea final
Patricio quiros tarea final
 
diseño de arquitectura de un sistema de informacion
diseño de arquitectura de un sistema de informaciondiseño de arquitectura de un sistema de informacion
diseño de arquitectura de un sistema de informacion
 
Arquitectura aplicaciones clase3
Arquitectura aplicaciones clase3Arquitectura aplicaciones clase3
Arquitectura aplicaciones clase3
 
Modelos de sistemas distribuidos
Modelos de sistemas distribuidosModelos de sistemas distribuidos
Modelos de sistemas distribuidos
 
Modelos de sistemas distribuidos
Modelos de sistemas distribuidosModelos de sistemas distribuidos
Modelos de sistemas distribuidos
 
Clase7
Clase7Clase7
Clase7
 
Clase7 unidad1
Clase7 unidad1Clase7 unidad1
Clase7 unidad1
 
Modelos de los sistemas distribuidos
Modelos de los sistemas distribuidosModelos de los sistemas distribuidos
Modelos de los sistemas distribuidos
 
Fundam servclient
Fundam servclientFundam servclient
Fundam servclient
 
Sesion 6 2 diseño análisis arquitectural
Sesion 6 2 diseño   análisis arquitecturalSesion 6 2 diseño   análisis arquitectural
Sesion 6 2 diseño análisis arquitectural
 
Arquitecturas
ArquitecturasArquitecturas
Arquitecturas
 
Sesion 7 1 diseño particionamiento arquitectural
Sesion 7 1 diseño   particionamiento arquitecturalSesion 7 1 diseño   particionamiento arquitectural
Sesion 7 1 diseño particionamiento arquitectural
 
Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)
Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)
Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)
 
Sistemas arquitectónicos centralizados, descentralizados e híbridos.
Sistemas arquitectónicos centralizados, descentralizados e híbridos.Sistemas arquitectónicos centralizados, descentralizados e híbridos.
Sistemas arquitectónicos centralizados, descentralizados e híbridos.
 
Arquitectura de software.docx
Arquitectura de software.docxArquitectura de software.docx
Arquitectura de software.docx
 
Clase 08a estilos_arquitectonicos
Clase 08a estilos_arquitectonicosClase 08a estilos_arquitectonicos
Clase 08a estilos_arquitectonicos
 
Modelos de sistemas distribuidos
Modelos de sistemas distribuidosModelos de sistemas distribuidos
Modelos de sistemas distribuidos
 

Último

guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 

Último (16)

guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 

Arquitecturas de una aplicación

  • 1. Departamento de Ciencias de la Computación Arquitecturas de una aplicación Gestión I+D+i: Sistema de vigilancia tecnológica e inteligencia competitiva Jesús Cáceres Tello
  • 2. Índice I 01 Conceptos iniciales 01.01 Vigilancia Tecnológica 01.02 Inteligencia competitiva 01.03. La norma 166006 02 Requisitos del Sistema de Vigilancia 02.01 Tipos de Requisitos 02.02 Requisitos Generales 02.03 Requisitos de Documentación 02.04 Requisitos de confidencialidad, legalidad y aspectos éticos 03 Responsabilidades de la Dirección 03.01 Compromiso 03.02 Política de VT/IC 03.03 Planificación y objetivos Arquitecturas de una aplicación 03.04 Responsabilidad, autoridad y comunicación 03.05 Revisión 04 Gestión de Recursos 04.01 Provisión de recursos 04.02 Recursos humanos 04.03 Recursos materiales e infraestructura 2
  • 3. 01 Introducción 01.01 Estilos arquitecturales  Son indicaciones abstractas de cómo dividir/organizar un sistema y de cómo se realiza en proceso de interacción entre ellas (No son patrones de diseño)  Son herramientas básicas de un arquitecto a la hora de dar forma a la arquitectura de una aplicación  Se organizan en torno al aspecto de la aplicación:  Comunicación  Despliegue  Dominio Arquitecturas de una aplicación  Interacción  Estructura  Lo normal es que una arquitectura se base en varios estilos arquitecturales 3
  • 4. 02 Tipos de Estilos Arquitecturales 02.01 Cliente/Servidor (I)  El estilo cliente/servidor define una relación entre dos aplicaciones en las cuales una de ellas (cliente) envía peticiones a la otra (servidor fuente de datos)  Características: Arquitecturas de una aplicación  Es para sistemas distribuidos  Divide el sistema en dos aplciaciones  Describe la relación cliente/servidor (uno envía peticiones y el otro envía respuestas)  Puede usar un amplio rango de protocolos y formatos de datos para comunicar la información (SOAP, HTTP, HTTPS, XML,…) 4
  • 5. 02 Tipos de Estilos Arquitecturales 02.01 Cliente/Servidor (II)  Claves:  El cliente realiza peticiones y espera a la recepción de la respuesta para posteriormente procesarla  El cliente se suele conectar a un solo servidor al mismo tiempo  Si existe interacción con el usuario, ésta se realiza en el lado del cliente (interfaz gráfica)  El servidor no realiza ninguna petición al cliente  El servidor envía los datos en repuesta a las peticiones realizadas  El proceso en el servidor sería: autentificación y verificación del usuario, procesamiento de la petición y envío de resultados  Beneficios: Arquitecturas de una aplicación  Más seguridad  Acceso centralizado a los datos  Facilidad en el mantenimiento (roles)  Cuándo usarlo:  Cuando se soporte a varios clientes  Cuando la aplicación se ejecute en una red (LAN, WAN)  Implementación de procesos de negocio de uso en toda la Org. 5  Diferentes roles
  • 6. 02 Tipos de Estilos Arquitecturales 02.02 Basado en componentes (I)  Describe un acercamiento al diseño de sistemas como un conjunto de componentes que exponen interfaces bien definidas y de colaboración conjunta para la resolución de problemas. Arquitecturas de una aplicación  Características:  Diseño de aplicaciones a partir de componentes individuales  Da prioridad a la descomposición del sistema en componentes: métodos, eventos y propiedades 6
  • 7. 02 Tipos de Estilos Arquitecturales 02.02 Basado en componentes (I)  Claves:  Diseño de componentes orientado a la reutilización en distintas aplicaciones (cuando se pueda), independientes.  Diseñados para diferentes entornos y contextos, se le debe pasar toda la información, no debe contener ninguna información  Puede existir herencia en los componentes y encapsulación  Beneficios:  Facilidad en el despliegue  Reducción de costes, se pueden utilizar componentes de terceros  Reusabilidad por su independencia del contexto  Reducción de la complejidad: contenedores de componentes Arquitecturas de una aplicación (activación, gestión del ciclo de vida, etc.)  Cuándo usarlo:  Facilidad para conseguir esos componentes  Ejecución de aplicaciones con pocos o ningún dato de entrada  Combinación de componentes escritos en diferentes lenguajes  Actualización de componentes de forma sencilla. 7
  • 8. 02 Tipos de Estilos Arquitecturales 02.03 En Capas (N-Layer) (I)  Se basa en una distribución jerárquica de los roles y las responsabilidades para proporcionar una división efectiva de los problemas a resolver. Los roles indican el tipo y la forma de la interacción con otras capas , y las responsabilidades la funcionalidad que implementan Arquitecturas de una aplicación  Características:  La mayoría de las interacciones ocurren sólo entre las capas vecinas  Las capas pueden estar distribuidas en diferentes máquinas  Comunicación entre capas a través de interfaces bien conocidas  Herencia entre capas de distinto nivel  Separación clara de las funcionalidades de cada capa 8
  • 9. 02 Tipos de Estilos Arquitecturales 02.03 En Capas (N-Layer) (II)  Claves:  Cada capa contiene la funcionalidad relacionada solo con las tareas de esa capa  No existe dependencia de las capas inferiores con las superiores  La comunicación entre capas está basada en una abstracción que permite una acoplamiento entre capas  Beneficios:  Alto rendimiento basado en la distribución de capas en distintos niveles físicos, escalabilidad y tolerancia a fallos.  Testeabilidad ya que cada capa tiene una interfaz bien definida sobre la que se pueden realizar pruebas  Independencia del hardware, no hay despliegue y no hay Arquitecturas de una aplicación dependencia con interfaces externas.  Cuándo usarlo:  Si se tienen implementaciones de capas ya construidas (reusabilidad)  Aplicaciones complejas con distintos equipos de desarrollo.  La aplicación debe soportar distintos tipos de clientes y distintos dispositivos  Idónea cuando se quieran implementar reglas y procesos de 9 negocio complejos y/o configurables
  • 10. 02 Tipos de Estilos Arquitecturales 02.04 Presentación Desacoplada (I)  Indica cómo debe realizarse el manejo de las acciones del usuario, la manipulación de la interfaz y los datos de la aplicación. Este estilo separa los componentes de la interfaz del flujo de datos y de la manipulación.  Características: Arquitecturas de una aplicación  Muy conveniente cuando se diseñan aplicaciones basadas en patrones de diseño.  Separación de la lógica y de la presentación de los datos  Permite trabajo paralelo entre diseñadores y desarrolladores  Permite mejor testeo ya que se pueden testear comportamientos individualmente 10
  • 11. 02 Tipos de Estilos Arquitecturales 02.04 Presentación Desacoplada (II)  Claves:  Puede separar el procesamiento de la interfaz en distintos roles  Permiten la construcción de mocks para el testeo  Utiliza eventos de notificación para la vista cuando ha habido modificación de datos.  El controlador maneja los eventos disparados desde los controles de usuario en la vista  Beneficios:  Testeabilidad (moks)  Reusabilidad, los controladores pueden ser utilizados por otras vistas y las vistas por otros controladores.  Cuándo usarlo: Arquitecturas de una aplicación  Cuando se quiera separar la creación del interfaz de la lógica que la maneja  La interfaz no contenga ningún código de procesamiento de eventos  El código de procesamiento de la interfaz no implementa ninguna lógica de negocio. 11
  • 12. 02 Tipos de Estilos Arquitecturales 02.05 Presentación Desacoplada N-Niveles (N-Tier) (I)  Define la separación de la funcionalidad en diferentes segmentos o niveles físicos. Es similar al estilo N-Capas pero sitúa cada segmento en una máquina distinta. En este caso hablamos de niveles físicos (Tiers)  Características: Arquitecturas de una aplicación  Separación de niveles físicos (Servidores normalmente) por distintas razones, escalabilidad, seguridad, o simplemente por necesidad 12
  • 13. 02 Tipos de Estilos Arquitecturales 02.05 Presentación Desacoplada N-Niveles (N-Tier) (II)  Claves:  Es un estilo para definir el despliegue de las capas de la aplicación  Descomposición funcional de las aplicaciones, componentes de servicio y su despliegue para múltiples mejoras (escalabilidad, disponibilidad, rendimiento, manejabilidad y uso de recursos)  Independencia de niveles menos en el inmediatamente inferior  Tiene al menos 3 niveles lógicos separadas en distintos servidores  Despliegue de una capa en un nivel si uno o más servicios dependen de la funcionalidad expuesta por dicha capa.  Beneficios:  Mantenibilidad, independencia de los niveles (actualizaciones)  Escalabilidad, los niveles están basados en el despliegue de capas Arquitecturas de una aplicación  Disponibilidad, tolerancia a fallos de los distintos niveles  Cuándo usarlo:  Cuando los requisitos de procesamiento o de seguridad de las capas son diferentes  Compartir la lógica de negocio entre varias aplicaciones  Disponibilidad de hardware para desplegar el número necesario de servidores en cada nivel. 13
  • 14. 02 Tipos de Estilos Arquitecturales 02.06 Arquitectura orientada a Dominio (DDD) (I)  Es una forma de afrontar los proyectos a nivel equipo de desarrollo centrándose en lo que el cliente solicita.  Contextualiza el problema a resolver dentro de un dominio. El conjunto de clases y operaciones asociadas deben estar diseñadas para solucionar el problema con independencia de cualquier otro aspecto del sistema, como la persistencia, servicios web, etc.  Características:  Utiliza patrones y otras arquitecturas para el diseño de una aplicación:  Arquitectura N-Capas Arquitecturas de una aplicación  Patrones de Diseño  Repository  Entity  Aggregate  Value-Object  Unit Of Work  Service  Considera de vital importancia el desacoplamiento entre componentes 14
  • 15. 02 Tipos de Estilos Arquitecturales 02.06 Arquitectura orientada a Dominio (DDD) (II) Arquitecturas de una aplicación 15
  • 16. 02 Tipos de Estilos Arquitecturales 02.06 Arquitectura orientada a Dominio (DDD) (III)  Claves:  Se debe tener un buen entendimiento del Domino de Negocio que se desea modelar.  Contacto permanente del equipo de desarrollo con los expertos del dominio.  Todo el equipo debe manejar el mismo lenguaje sobre el Dominio de Negocio (Lenguaje Ubicuo)  El core del software es el Modelo de Dominio carente de ambiguedades  Debe aplicarse únicamente a dominios complejos donde el modelo Arquitecturas de una aplicación y los procesos lingüísticos proporcionen claros beneficios en la comunicación de la información.  La complejidad arquitectural es mucho mayor aunque su mantenibilidad y desacoplamiento entre componentes es mucho mayor. 16
  • 17. 02 Tipos de Estilos Arquitecturales 02.06 Arquitectura orientada a Dominio (DDD) (IV)  Mejor Testing: facilita el Testing y el Mocking debido al desacoplamiento de objetos.  Cuándo usarlo:  En aplicaciones complejas con mucha lógica de negocio con mejora de la comunicación y minimización de malos entendidos  En escenarios empresariales de gran tamaño difíciles de manejar con otras técnicas. Arquitecturas de una aplicación 17
  • 18. 02 Tipos de Estilos Arquitecturales 02.07 Orientación a Objetos (I)  Define el sistema como un conjunto de objetos que cooperan entre sí en lugar de cómo un conjunto de procedimientos. Los objetos son discretos, independientes y poco acoplados, se comunican mediante interfaces y permiten enviar y recibir mensajes.  Características:  Indicado para diseñar aplicaciones basadas en un número de unidades lógicas y código reusable. Arquitecturas de una aplicación  Describe el uso de objetos que contienen los datos y el comportamiento para trabajar con esos datos y además tienen un rol o responsabilidad distinta  Incide en la reutilización a través de la encapsulación, la modularidad, el polimorfismo y la herencia  Contrasta con el acercamiento procedimental (secuencia definida de tareas y acciones) 18
  • 19. 02 Tipos de Estilos Arquitecturales 02.07 Orientación a Objetos (II)  Claves:  Permite reducir operaciones complejas mediante generalizaciones  Un objeto puede estar formado por otros objetos con visibilidad o no respecto a otras clases  Existe la herencia entre objetos heredando sus funcionalidades o redefiniéndolas para implementar un nuevo comportamiento  La herencia facilita el mantenimiento y actualización ya que los cambios se propagan automáticamente a todos los objetos herederos  Beneficios:  Mayor comprensión ya que los objetos son mucho más cercanos al mundo real Arquitecturas de una aplicación  Mejor Reusabilidad apoyado por el polimorfismo y la abstracción  Testeabilidad gracias a la encapsulación de los objetos  Extensibilidad gracias a la encapsulación, polimorfismo y abstracción  Cuándo usarlo:  Modelo basado en objetos reales y sus acciones  Ya se dispone de los objetos que encajan en el diseño 19  Encapsulación de lógica y datos juntos de forma transparente
  • 20. 02 Tipos de Estilos Arquitecturales 02.08 Orientación a Servicios (SOA) (I)  Permite a una aplicación ofrecer su funcionalidad como un conjunto de servicios para que sean consumidos. Los servicios usan interfaces estándar que pueden ser invocadas, publicadas y descubiertas. Proporcionan un esquema basado en mensajes Arquitecturas de una aplicación  Características:  Interacción con el servicio muy desacoplada  Puede empaquetar procesos de negocio como servicios  Los clientes y otros servicios pueden acceder a servicios locales corriendo en el mismo nivel.  Los clientes y otros servicios acceden a los servicios remotos a través de la red  Puede usar un amplio rango de protocolos y formatos de datos 20
  • 21. 02 Tipos de Estilos Arquitecturales 02.08 Orientación a Servicios (SOA) (II)  Claves:  Los servicios son autónomos  Los servicios pueden estar situados en cualquier nodo de una red local o remota mientras se soporten los protocolos de comunicación necesarios  Los servicios comparten esquemas y contratos para comunicarse, no clases  La compatibilidad se basa en factores como el mecanismo de transporte, el protocolo y la seguridad  Beneficios:  Alineamiento con el dominio de la empresa, reutilización de servicios = aumento de oportunidades tecnológicas y de negocio y reducción de costes.  Abstracción ya que los servicios son autónomos  Descubrimiento, mediante descripciones estándar (wsdl)  Cuándo usarlo: Arquitecturas de una aplicación  Construcción de aplicaciones con múltiples servicios y una interfaz única.  Creación de aplicaciones en la nube  Comunicación basada en mensajes  Funcionalidad con independencia de la plataforma  Necesidad de establecer servicios federados, p.e. con autenticación  Exposición de servicios con independencia del conocimiento por parte del cliente de su interfaz  Adecuado para escenarios de interoperabilidad e integración. 21
  • 22. 03 Referencias  C. de la Torre, U. Zorrilla, J. Calvarro, M.A. Ramos. “Guía de Arquitecturas N-Capas” (pp. 9-60). Cap. Estilos arquitecturales. Ed. Frasis Press, 2010. http://msdn.microsoft.com/es-es/architecture/default.aspx Arquitecturas de una aplicación 22
  • 23. Gracias por su atención Jesús Cáceres Tello jesus.caceres@uah.es Departamento de Ciencias de la Computación Escuela Universitaria Politécnica Campus de Alcalá http://www.cc.uah.es