SlideShare una empresa de Scribd logo
Patrones
arquitectónicos
    Layers.
    Hecho por Oscar Yima
   Martes 16 de Octubre 2012
Layers.
• Ayuda a estructurar aplicaciones que pueden ser
  descompuestas en grupos de subtareas con
  distintos niveles de abstracción (granularidad).
Características.
• Describe la descomposición de servicios de forma que
  la mayoría de la interacción ocurre solamente entre
  capas vecinas.
• Las capas de una aplicación pueden residir en la misma
  maquina física (misma capa) o puede estar distribuido
  sobre diferentes computadores (n-capas).
• Los componentes de cada capa se comunican con
  otros componentes en otras capas a través de
  interfaces muy bien definidas.
• Este modelo ha sido descrito como una “pirámide
  invertida de re-uso” donde cada capa agrega
  responsabilidad y abstracción a la capa directamente
  sobre ella.
Layers: Contexto
• Hay sistemas que utilizan distinta granularidad y
  naturaleza de servicios.




          Layers: Problema
 • Si los servicios no están bien organizados, el
   sistema podría tener problemas de
   mantenibilidad, adaptabilidad, y escalabilidad
Layers: Solución
• Estructurar el sistema en un número apropiado de
  capas.
• Empezar con la capa con el nivel más bajo de
  abstracción.
• Poner la capa J sobre la J-1 hasta alcanzar la
  capa N.
• Los servicios de J usan los servicios de J-1.
• No se requiere un orden en la implementación, ni
  ninguna sofisticación.
• Dentro de cada capa, las componentes tienen el
  mismo nivel de abstracción.
Layers: Estructura de la
          Solución
• Características principales de la estructura:
   o los servicios de la capa J se basan solamente en los de la capa J-1;
   o no existen otras dependencias entre las capas;
   o la estructura puede verse como una pila o una cebolla

    Usuario         Nivel N
                                                          Servicios Utilizables
                   Nivel N-1                              Servicios Básicos
                   Nivel N-2                                    Nivel
                                                               Básico
                     Nivel 2
                     Nivel 1
                                                               Usuario
Layers: Otra Estructura
• Cada capa puede ser una entidad compleja
  formada por distintas componentes.
• Una componente en la capa J puede llamar a:
   o otra componente en la capa J,
   o componentes en la capa J-1 directamente,
   o una interfaz definida en la capa J-1.


           comp. 2.1     comp. 2.1      comp. 2.3   Nivel 2



            comp. 1.1    comp. 1.2      comp. 1.3   Nivel 1
Layers: Dinámica
•   Escenario 1:                           •   Escenario 2:
     o el usuario hace una solicitud a          o se inicia una comunicación
        la capa N, ésta lo pasa a la
        capa N-1, y así sucesivamente             bottom-up cuando la capa 1
        hasta la capa 1 que                       detecta algún evento, por
        efectivamente lo resuelve;                ejemplo cierto input;
     o eventualmente la respuesta               o esta notificación sube a
        vuelve a la capa N y al                   través de las distintas capas.
        usuario;
     o generalmente una solicitud a        •   Escenario 3:
        la capa J se traduce en
        varias solicitudes a la capa J-1        o la comunicación sólo sucede
        (nivel de abstracción).                   entre ciertas capas.

        Debe definirse el comportamiento de las componentes para
                         todos los escenarios posibles.
              En todo momento debe haber certeza respecto al
                comportamiento que tomarán las componentes.
Layers: Implementación
• Definir los niveles de abstracción para agrupar las
  tareas.
   o Considerando la distancia desde el hardware o la complejidad
     conceptual;
   o Ej. Ajedrez: piezas, movimientos básicos, tácticas (ej.: defensa Siciliana),
     estrategias globales del juego.
• Determinar el número de capas.
   o decisión de compromiso; no siempre coinciden con los criterios definidos
     para los niveles de abstracción.
• Designar y asignar tareas a las distintas capas.
   o la capa superior es el sistema tal como lo ve el usuario.
Layers: Implementación
• Especificar los servicios de cada capa.
   o es conveniente poner la funcionalidad dependiente de la aplicación en
     las capas superiores, y mantener las inferiores genéricas y sencillas.
• Refinar las capas iterando sobre los 4 pasos
  anteriores.
   o reorganizar las tareas de modo que sólo se invoquen servicios de la capa
     inmediatamente anterior.
• Especificar la interfaz de cada capa.
   o se incluyen todos los servicios ofrecidos en la interfaz y la capa se trata
     como una caja negra.
Layers: Implementación
• Definir la estructura de cada capa.
   o distintos patrones pueden usarse para la estructura interna.

• Especificar la comunicación entre las capas.
   o push, pull, llamadas a procedimientos, RPCs, mensajes.

• Desacoplar capas adyacentes.
   o la capa J no debe saber quien usa sus servicios.

• Diseñar una estrategia de manejo de errores.
   o los errores deben manejarse en la capa más baja posible.
Layers: Consecuencias
•   Beneficios:
     o reutilización de       • Desventajas:
       niveles,                 o ineficiencia
     o soporte para la          o excesivo trabajo,
       estandarización,
                                o difícil establecer la correcta
     o los cambios en el          granularidad de los niveles:
       código son locales a
       cada nivel.                  • pocos niveles no
                                       explotan el potencial de
                                       reuso, portabilidad e
                                       intercambiabilidad,
                                    • muchos niveles crean
                                       complejidad e
                                       ineficiencia.
Arquitecturas de 2/3
    Capas… para Web
                       3-Tiers Architecture

2-Tiers Architecture
Arquitectura de 5
capas…para Web
Fin

Más contenido relacionado

PPTX
Diagrama de Casos de Uso UML
PPTX
Taller de Base de Datos - Unidad 5 transacciones
PDF
Programación MySQL-Ejercicios
PPTX
Interfaces gráficas de usuario
PPTX
Ingenieria de requerimientos 1
PPTX
Representacion del Conocimiento Inteligencia Artificial
PPTX
Analisis de requerimiento
Diagrama de Casos de Uso UML
Taller de Base de Datos - Unidad 5 transacciones
Programación MySQL-Ejercicios
Interfaces gráficas de usuario
Ingenieria de requerimientos 1
Representacion del Conocimiento Inteligencia Artificial
Analisis de requerimiento

La actualidad más candente (20)

DOCX
Etapas del Proceso de la Ingeniería del Software
PPTX
Técnicas de programación
DOCX
control de concurrencia
PDF
Unidad1 Lenguajes y automatas
PPT
diseño lógico y diseño físico
DOCX
Arquitectura pizarra
PDF
Analizador Léxico en C++
PDF
Unidad1 2 Lenguajes y automatas
PDF
Cuadro comparativo s.o
PPTX
Vistas Arquitectonicas Ingenieria de Software
PDF
Verificación y Validación de Software
PPTX
Técnicas de recolección de requerimientos
PPTX
Diagrama de Componentes
DOCX
Requerimientos Funcionales y No Funcionales
PPTX
Lenguajes de programación: Paradigmas de Programación
PPT
Modelos de dominio
DOCX
Requerimientos funcionales y no funcionales de la aplicación
Etapas del Proceso de la Ingeniería del Software
Técnicas de programación
control de concurrencia
Unidad1 Lenguajes y automatas
diseño lógico y diseño físico
Arquitectura pizarra
Analizador Léxico en C++
Unidad1 2 Lenguajes y automatas
Cuadro comparativo s.o
Vistas Arquitectonicas Ingenieria de Software
Verificación y Validación de Software
Técnicas de recolección de requerimientos
Diagrama de Componentes
Requerimientos Funcionales y No Funcionales
Lenguajes de programación: Paradigmas de Programación
Modelos de dominio
Requerimientos funcionales y no funcionales de la aplicación
Publicidad

Similar a Patrones arquitectónicos layers (20)

PPT
6 arquitectura desoftware
PPTX
PPT
Aplicaciones Distribuidas
PDF
Modelo De Referencia OSI
PPTX
Estilos Arquitectonicos-Capas
PDF
Arquitecturas de una aplicación
PDF
Clase7 unidad1
PDF
Clase7
PDF
Arquitectura del desarrollo del software
PPTX
Aplicaciones distribuidas
PDF
Principales estilos arquitectónicos
PPTX
Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)
DOCX
Reutilizacion de componentes en sistemas
PPTX
Diseño en-el-nivel-de-componentes
PPTX
Arquitectura
PDF
Arquitecturas centralizadas
PPTX
Trabajoartemio
PDF
ARQUITECTURA EN CAPAS.pdf
PPTX
MODELO DE DISEÑOOOOOOOOOOOOOOOOOOOOO.pptx
DOC
Unidad 1
6 arquitectura desoftware
Aplicaciones Distribuidas
Modelo De Referencia OSI
Estilos Arquitectonicos-Capas
Arquitecturas de una aplicación
Clase7 unidad1
Clase7
Arquitectura del desarrollo del software
Aplicaciones distribuidas
Principales estilos arquitectónicos
Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)
Reutilizacion de componentes en sistemas
Diseño en-el-nivel-de-componentes
Arquitectura
Arquitecturas centralizadas
Trabajoartemio
ARQUITECTURA EN CAPAS.pdf
MODELO DE DISEÑOOOOOOOOOOOOOOOOOOOOO.pptx
Unidad 1
Publicidad

Patrones arquitectónicos layers

  • 1. Patrones arquitectónicos Layers. Hecho por Oscar Yima Martes 16 de Octubre 2012
  • 2. Layers. • Ayuda a estructurar aplicaciones que pueden ser descompuestas en grupos de subtareas con distintos niveles de abstracción (granularidad).
  • 3. Características. • Describe la descomposición de servicios de forma que la mayoría de la interacción ocurre solamente entre capas vecinas. • Las capas de una aplicación pueden residir en la misma maquina física (misma capa) o puede estar distribuido sobre diferentes computadores (n-capas). • Los componentes de cada capa se comunican con otros componentes en otras capas a través de interfaces muy bien definidas. • Este modelo ha sido descrito como una “pirámide invertida de re-uso” donde cada capa agrega responsabilidad y abstracción a la capa directamente sobre ella.
  • 4. Layers: Contexto • Hay sistemas que utilizan distinta granularidad y naturaleza de servicios. Layers: Problema • Si los servicios no están bien organizados, el sistema podría tener problemas de mantenibilidad, adaptabilidad, y escalabilidad
  • 5. Layers: Solución • Estructurar el sistema en un número apropiado de capas. • Empezar con la capa con el nivel más bajo de abstracción. • Poner la capa J sobre la J-1 hasta alcanzar la capa N. • Los servicios de J usan los servicios de J-1. • No se requiere un orden en la implementación, ni ninguna sofisticación. • Dentro de cada capa, las componentes tienen el mismo nivel de abstracción.
  • 6. Layers: Estructura de la Solución • Características principales de la estructura: o los servicios de la capa J se basan solamente en los de la capa J-1; o no existen otras dependencias entre las capas; o la estructura puede verse como una pila o una cebolla Usuario Nivel N Servicios Utilizables Nivel N-1 Servicios Básicos Nivel N-2 Nivel Básico Nivel 2 Nivel 1 Usuario
  • 7. Layers: Otra Estructura • Cada capa puede ser una entidad compleja formada por distintas componentes. • Una componente en la capa J puede llamar a: o otra componente en la capa J, o componentes en la capa J-1 directamente, o una interfaz definida en la capa J-1. comp. 2.1 comp. 2.1 comp. 2.3 Nivel 2 comp. 1.1 comp. 1.2 comp. 1.3 Nivel 1
  • 8. Layers: Dinámica • Escenario 1: • Escenario 2: o el usuario hace una solicitud a o se inicia una comunicación la capa N, ésta lo pasa a la capa N-1, y así sucesivamente bottom-up cuando la capa 1 hasta la capa 1 que detecta algún evento, por efectivamente lo resuelve; ejemplo cierto input; o eventualmente la respuesta o esta notificación sube a vuelve a la capa N y al través de las distintas capas. usuario; o generalmente una solicitud a • Escenario 3: la capa J se traduce en varias solicitudes a la capa J-1 o la comunicación sólo sucede (nivel de abstracción). entre ciertas capas. Debe definirse el comportamiento de las componentes para todos los escenarios posibles. En todo momento debe haber certeza respecto al comportamiento que tomarán las componentes.
  • 9. Layers: Implementación • Definir los niveles de abstracción para agrupar las tareas. o Considerando la distancia desde el hardware o la complejidad conceptual; o Ej. Ajedrez: piezas, movimientos básicos, tácticas (ej.: defensa Siciliana), estrategias globales del juego. • Determinar el número de capas. o decisión de compromiso; no siempre coinciden con los criterios definidos para los niveles de abstracción. • Designar y asignar tareas a las distintas capas. o la capa superior es el sistema tal como lo ve el usuario.
  • 10. Layers: Implementación • Especificar los servicios de cada capa. o es conveniente poner la funcionalidad dependiente de la aplicación en las capas superiores, y mantener las inferiores genéricas y sencillas. • Refinar las capas iterando sobre los 4 pasos anteriores. o reorganizar las tareas de modo que sólo se invoquen servicios de la capa inmediatamente anterior. • Especificar la interfaz de cada capa. o se incluyen todos los servicios ofrecidos en la interfaz y la capa se trata como una caja negra.
  • 11. Layers: Implementación • Definir la estructura de cada capa. o distintos patrones pueden usarse para la estructura interna. • Especificar la comunicación entre las capas. o push, pull, llamadas a procedimientos, RPCs, mensajes. • Desacoplar capas adyacentes. o la capa J no debe saber quien usa sus servicios. • Diseñar una estrategia de manejo de errores. o los errores deben manejarse en la capa más baja posible.
  • 12. Layers: Consecuencias • Beneficios: o reutilización de • Desventajas: niveles, o ineficiencia o soporte para la o excesivo trabajo, estandarización, o difícil establecer la correcta o los cambios en el granularidad de los niveles: código son locales a cada nivel. • pocos niveles no explotan el potencial de reuso, portabilidad e intercambiabilidad, • muchos niveles crean complejidad e ineficiencia.
  • 13. Arquitecturas de 2/3 Capas… para Web 3-Tiers Architecture 2-Tiers Architecture
  • 15. Fin