SlideShare una empresa de Scribd logo
Estilos Arquitectónicos
  (Arquitectura de Software para Practicantes)




          Universidad de los Andes
                 Demián Gutierrez
                   Marzo 2013
                                                 1
Diseño Arquitectónico

                                              Arquitectura
                                              del Software
    Diseño
 Arquitectónico




                      Estilos                 Frameworks
                  Arquitectónicos              (Marcos)




                                Patrones de                   Bibliotecas /
                                  Diseño                     Componentes



                                                Clases /
                                               Funciones

                                                                              2
Diseño Arquitectónico




          ¿qué es un estilo?


           ¿qué es un estilo
            arquitectónico?

                               3
Estilos Arquitectónicos




            Art Deco                     Modernismo


     aunque conste que sigo pensando que la comparación
    del software con la ingeniería civil es muy desafortunada
                                                                4
Estilos Arquitectónicos




     aunque conste que sigo pensando que la comparación
    del software con la ingeniería civil es muy desafortunada   5
¿Estilos Arquitectónicos?




   Un estilo arquitectónico define una familia
    de sistemas (cierto tipo de sistemas) en
    términos de patrones estructurales, de
      control, de comunicación, etcétera




                     Sommerville (Cap 11)        6
Estilos Arquitectónicos

       un estilo arquitectónico describe
                 Un conjunto de componentes y
                  (con sus responsabilidades)

          Un conjunto de conectores entre componentes
       (comunicación, coordinación, cooperación, etcétera)

           Restricciones que definen cómo se integran
            los componentes para formar el sistema

              Modelos que permiten comprender las
       propiedades de un sistema general en función de las
       propiedades conocidas de las partes que lo integran

      ¿no suena todo esto sospechosamente parecido al
            concepto de arquitectura de software?
                                                             7
                      Fuente: Pressman (Cap 10)
Diseño Arquitectónico



   La arquitectura de un sistema de software
     puede basarse en uno (o en varios)
     modelos o estilos arquitectónicos bien
                   conocidos
                    Sommerville (Cap 11)




    un estilo arquitectónico define
              (a alto nivel)
     la arquitectura de un sistema
                                               8
Estilos Arquitectónicos


                   para todas los
              estilos arquitectónicos
                   (arquitecturas)
             es necesario preguntarse:



        ¿en qué contextos aplica?
       ¿qué ventajas tiene el estilo?
         ¿qué desventajas tiene?
    ¿cómo se combina con otros estilos?
                                          9
Estilos Arquitectónicos
Impacto en los Requisitos NF

       Seguridad             Confiabilidad      Rendimiento          Extensibilidad



                                       Eficiencia              Facilidad de
            Mantenibilidad
                                    Memoria/Ejecución            Prueba




    Portabilidad         Disponibilidad         Reusabilidad            Escalabilidad




                                    ...otras...

           ¿de qué forma impacta el uso de un estilo
               en las propiedades del sistema?
                                                                                        10
Estilos Arquitectónicos
¿Acoplamiento / Cohesión?



          ¿qué hay sobre estos dos conceptos?




   Acoplamiento                     Cohesión


       ¿será posible analizar un estilo arquitectónico
           en función de estos dos conceptos?
                                                         11
Estilos Arquitectónicos
¿La importancia de la responsabilidad?




             Responsabilidades



           ¿cuáles son las responsabilidades de
           cada bloque/parte de la arquitectura?
                                                   12
Diseño Arquitectónico




           algunos estilos
        arquitectónicos bien
              conocidos


                               13
Arquitectura Monolítica

          Una arquitectura monolítica describe
             una aplicación en la que toda la
          funcionalidad del sistema (ej. acceso
           a datos, interfaz de usuario, lógica,
              etcétera) está implementada y
               mezclada en un solo bloque.
             Esto, en la gran mayoría de los
             casos, no es una buena idea...
                        ¿por qué?
                                                           Sistema
                                                           TODO EL
                                                           SISTEMA

     ¿impacto sobre el acoplamiento y la cohesión
       responsabilidades, otras características?
           Fuente: http://en.wikipedia.org/wiki/Monolithic_application   14
Arquitectura Monolítica
(Un Ejemplo)
                                                   Código cliente general,
        Programa Cliente                           interfaces de usuario,
                                                   lógica, todo mezclado
                                                     con el SQL, con el
                                                   código encargado del
                                                    acceso a la BD, etc.




         Si es necesario cambiar el código de acceso a la BD,
            (por ejemplo, migrar de MySQL a PostgreSQL)
                    ¿el trabajo se hace fácil o difícil?                     15
Arquitectura Monolítica
(Un Ejemplo / Una Mejora)
                                                  Código cliente general,
        Programa Cliente                          interfaces de usuario,
                                                        lógica, etc.




                                                    Código SQL junto al
                                                   código encargado del
                                                      acceso a la BD
                         DAOs / DTO




        Si es necesario cambiar el código de acceso a la BD,
           (por ejemplo, migrar de MySQL a PostgreSQL)
                   ¿el trabajo se hace fácil o difícil?                     16
Estilos Arquitectónicos
(Tuberías y Filtros)

          Filtros                           Tuberías
    (Transformación                         (Flujo de
       de Datos /                            Datos /
      Información)                        Información)
                         Filtro 3



             Filtro 1                 Filtro 4       Filtro 5



                         Filtro 2



                        Tuberías y Filtros
     ¿Impacto sobre el acoplamiento y la cohesión?
                                                                17
Estilos Arquitectónicos
(Tuberías y Filtros)




                   Tuberías y Filtros
                                        18
Estilos Arquitectónicos
(Tuberías y Filtros)




                    Tuberías y Filtros
                El “pipeline” de OpenGL
                                          19
Arquitectura por Capas

                                                             API
                                                           (Application
                                         Capa 1           Programming
    Mas Seguridad / Protección




                                                            Interface)
                                                          Interfaz
       Menos Abstracción




                                         Capa 2



                                          ...

                                         Capa N



                                 Arquitectura por Capas
     ¿Impacto sobre el acoplamiento y la cohesión?                        20
Arquitectura por Capas
(La Infame Arquitectura a 3 Capas)




           Capa de
         Presentación
                              Capa de
                              Proceso /
           (Interfaz
                              Negocio
          Gráfica de                          Capa de
           Usuario)                         Persistencia   BD
                              (Lógica /
                              Reglas de
        (HTML, Swing,
                              Negocio)
          Qt, GTK,
          etcétera)




                       Arquitectura a tres Capas
       (muy utilizada en aplicaciones empresariales)            21
Arquitectura por Capas
(Sistemas Operativos)




                Arquitectura por Capas
                                         22
Estilos Arquitectónicos
(Repositorio / Pizarrón)

              Aplicación /          Aplicación /           Aplicación /
               Modulo 1              Modulo 2               Modulo 3




                               Repositorio
                    (Base de Datos, Sistema de Archivos,
                       Memoria Compartida, etcétera)




              Aplicación /                                 Aplicación /
                                         ...
               Modulo 4                                     Modulo N



                     Repositorio / Pizarrón
     ¿Impacto sobre el acoplamiento y la cohesión?
                                                                          23
Estilos Arquitectónicos
(Control Centralizado - Síncrono)


                                     Programa
                                     Principal




           Rutina 1                  Rutina 2                  Rutina 3



    Rutina 1.1   Rutina 1.2   Rutina 2.1   Rutina 2.1   Rutina 3.1   Rutina 3.2




                         Control Centralizado
                                                                                  24
Estilos Arquitectónicos
(Control Centralizado - Asíncrono)

           Procesos                                  Procesos
              Tipo 1                                   Tipo 4
         (Ej: Sensores)                          (Ej: Actuadores)




                                Controlador
                                del Sistema



           Procesos                Procesos         Procesos
             Tipo 2                 Tipo 3           Tipo 5
          (Ej: Cálculo)           (Ej: Fallos)     (Ej: Fallos)


                          Control Centralizado
     ¿Impacto sobre el acoplamiento y la cohesión?                  25
Estilos Arquitectónicos
(Sistemas Dirigidos por Eventos)

   Cada subsistema genera eventos según su condición y define que
            eventos de otros subsistemas desea atender


    Subsistema       Subsistema                      Subsistema
                                          ...
        1                2                               N




                       Manejador de Eventos


     El manejador de eventos se encarga de enviar los eventos
      generados a aquellos sistemas interesados en recibirlos

     ¿Impacto sobre el acoplamiento y la cohesión?                  26
Arquitectura Cliente-Servidor

                          Petición

                         Respuesta

     Cliente 1



                         Red           Servidor 1
                                          ...
                          Internet,
     Cliente 2           LAN, WAN
       ...

                                       Servidor N
     Cliente N


                    Cliente Servidor
                                                    27
Arquitectura Cliente-Servidor
(Liviano vs Pesado)


                           Petición

                          Respuesta



                             Red

      Cliente
                                              Servidor




           ¿Cliente “Liviano” vs Cliente Pesado?

                                                         28
Arquitectura WEB
(Contenido Estático)



                       Petición: GET index.html

      Cliente

     navegador
        WEB                                        Servidor
    (Ej. Firefox)
                                                    servidor
                                                      WEB
                             index.html           (Ej. Apache)

                         Respuesta:




                     Arquitectura WEB
                    (Contenido Estático)
                                                                 29
Arquitectura WEB
(Contenido Dinámico)


                   Petición: GET index.php


     Cliente

    navegador
       WEB
                                             Servidor     Servidor
   (Ej. Firefox)
                              resultado
                              en HTML

                                             motor de
                    Respuesta:                PHP           BD

                                              index.php


                              Arquitectura WEB
                            (Contenido Dinámico)
                                                                     30
Diseño Arquitectónico




  ¿cómo se podría combinar
   el estilo cliente-servidor
   con los otros estilos que
       hemos discutido?

                                31
Estilos Arquitectónicos
(Sistema Distribuido / Arquitecturas Peer To Peer)

                                P2                        P6

                                            P5
     Un par puede
    jugar un rol de   P1
       cliente y/o
      de servidor,
   dependiendo de                                          P7
                                      P4
   las necesidades
     del momento



                           P3                        P8
                                      P9


     Cada uno de los pares descubre a sus otros pares y
           establecen conexiones al mismo nivel
                  (no de forma jerárquica)
      cooperando para lograr un objetivo determinado            32
Estilos Arquitectónicos
(Arquitecturas de Referencia)


                           Normalmente se obtienen
                           por medio del estudio de
                             un tipo de aplicación
                              (de un dominio en
                                   particular)


                                Representan una
                             arquitectura “ideal” que
                                incluye todas las
                            características que cierto
                                 tipo de sistema
                            podría/debería incorporar
                                                         33
Gracias




   ¡Gracias!


               34

Más contenido relacionado

PDF
Estilos de Software
DOCX
Arquitectura del software
PPT
Patrones de Diseño
PDF
Clase 04 diseno_ui
PPT
Arquitecturas de software
PPT
Fundamentos de la arquitectura de software
PPTX
Diseño de-la-arquitectura-de-software
PPT
Capitulo 3 arquitecturas_de_desarrollo_web
Estilos de Software
Arquitectura del software
Patrones de Diseño
Clase 04 diseno_ui
Arquitecturas de software
Fundamentos de la arquitectura de software
Diseño de-la-arquitectura-de-software
Capitulo 3 arquitecturas_de_desarrollo_web

La actualidad más candente (20)

PPSX
3 1 mde mda
PDF
Arquitecturas de software - Parte 1
PPTX
Arquitectura de software
PPTX
Diseno de la arquitectura
PDF
Arquitectura De Software Para Dummies
PPTX
2 1 1_diseño arquitectónico
PPT
Diseño arquitectónico
PDF
Clase 06 diseno_arquitectura
PPTX
Arquitectura del software
PPTX
Fundamentos arquitectura del software
PPTX
1 3 ingenieria software y patrones de diseño
PDF
Arquitectura de Software
PPTX
DiseñO Del Software E IngenieríA Del Software
PDF
Conceptos basicos arquitectura de software
PDF
Arquitectura software capitulo i
PPTX
Arquitectura de software y Generación de computadores.
PDF
Principios diseño del software
PPTX
Estilos arquitectónicos
DOC
Diseno Software
3 1 mde mda
Arquitecturas de software - Parte 1
Arquitectura de software
Diseno de la arquitectura
Arquitectura De Software Para Dummies
2 1 1_diseño arquitectónico
Diseño arquitectónico
Clase 06 diseno_arquitectura
Arquitectura del software
Fundamentos arquitectura del software
1 3 ingenieria software y patrones de diseño
Arquitectura de Software
DiseñO Del Software E IngenieríA Del Software
Conceptos basicos arquitectura de software
Arquitectura software capitulo i
Arquitectura de software y Generación de computadores.
Principios diseño del software
Estilos arquitectónicos
Diseno Software
Publicidad

Destacado (16)

PPT
Tema 14 El Renacimiento Español 2017
PPT
Elementos del Neoclasico
PPTX
Elementos arquitectónicos del estilo neoclásico
PPTX
Estilos arquitectónicos de casas en Culiacán
PPTX
Partido Arquitectonico
PPT
Arte Renacimiento Arquitectura España
PPTX
Identificación de elementos arquitectónicos del estilo neoclásico
PPTX
Identificación de Elementos Arquitectónicos del Estilo Neoclásico
PPTX
El gran hotel Bolívar Perú
PPTX
Análisis arquitectónico, FORMA, VALLES BOLIVIANOS, U.A.G.R.M., Arquitectura
PPTX
Estilos y tendencias del diseño arquitectonico
PPTX
Analisis elementos arquitectura estilo neoclasico
PPTX
Identificación de elementos arquitectónicos del estilo neoclásico
PPTX
Analisis Arquitectonico
PPTX
Algunos estilos arquitectonicos de la antigüedad
PPT
LA ARQUITECTURA NEOCLÁSICA
Tema 14 El Renacimiento Español 2017
Elementos del Neoclasico
Elementos arquitectónicos del estilo neoclásico
Estilos arquitectónicos de casas en Culiacán
Partido Arquitectonico
Arte Renacimiento Arquitectura España
Identificación de elementos arquitectónicos del estilo neoclásico
Identificación de Elementos Arquitectónicos del Estilo Neoclásico
El gran hotel Bolívar Perú
Análisis arquitectónico, FORMA, VALLES BOLIVIANOS, U.A.G.R.M., Arquitectura
Estilos y tendencias del diseño arquitectonico
Analisis elementos arquitectura estilo neoclasico
Identificación de elementos arquitectónicos del estilo neoclásico
Analisis Arquitectonico
Algunos estilos arquitectonicos de la antigüedad
LA ARQUITECTURA NEOCLÁSICA
Publicidad

Similar a Clase 08a estilos_arquitectonicos (20)

DOCX
Arquitectura de software.docx
PPTX
Ingenieria de software - Unidad 3 arquitecturas de software
DOCX
Patrones
PDF
Arquitecturas de una aplicación
PPT
Arquitecturas
PPTX
Arquitectura software.taxonomias.definiciones.001
PDF
Clase7
PDF
Clase7 unidad1
PPTX
Diseño arquitectónico
PPT
Unidad 2.1 DiseñO De Sistemas
PPTX
PDF
Desarrollo de software
PPTX
SESION 1 - ARQUITECTURA DE SOFTWARE.pptx
PDF
Arquitectura. de Software. en ambientes distribuidos.
PPT
MVC.ppt
PDF
DDS 2019 - Modulo 5 - Diseño - 1x1.pdf
PPT
050608 architect academy webcast 1
PPTX
2 1 vistas arquitectonicas
PPTX
Fundamentos de Diseño - Grupo Delta
DOCX
La arquitectura de 41 vistas
Arquitectura de software.docx
Ingenieria de software - Unidad 3 arquitecturas de software
Patrones
Arquitecturas de una aplicación
Arquitecturas
Arquitectura software.taxonomias.definiciones.001
Clase7
Clase7 unidad1
Diseño arquitectónico
Unidad 2.1 DiseñO De Sistemas
Desarrollo de software
SESION 1 - ARQUITECTURA DE SOFTWARE.pptx
Arquitectura. de Software. en ambientes distribuidos.
MVC.ppt
DDS 2019 - Modulo 5 - Diseño - 1x1.pdf
050608 architect academy webcast 1
2 1 vistas arquitectonicas
Fundamentos de Diseño - Grupo Delta
La arquitectura de 41 vistas

Más de Demián Gutierrez (20)

PDF
Estructuras de Datos Espaciales (Topico Especial)
PDF
Hg mini manual
PDF
Clase 14b uml_actividades
PDF
Clase 14a uml_estados
PDF
Clase 13 uml_paquetes
PDF
Clase 12b uml_clases_ejemplos
PDF
Clase 12a uml_clases
PDF
Clase 11 uml_casos_de_uso
PDF
Clase 10 mvc
PDF
Clase 09c seleccion
PDF
Clase 09a frameworks_ejemplo
PDF
Clase 09a frameworks
PDF
Clase 08c ejemplo_maquina_virtual
PDF
Clase 08b ejemplo_capas_cleda
PDF
Clase 07b patrones_diseno_ejemplo
PDF
Clase 07a patrones_diseno
PDF
Clase 05d cobertura de codigo
PDF
Clase 05c niveles de pruebas
PDF
Clase 05b pruebas introduccion
PDF
Clase 05a calidad verificacion validacion
Estructuras de Datos Espaciales (Topico Especial)
Hg mini manual
Clase 14b uml_actividades
Clase 14a uml_estados
Clase 13 uml_paquetes
Clase 12b uml_clases_ejemplos
Clase 12a uml_clases
Clase 11 uml_casos_de_uso
Clase 10 mvc
Clase 09c seleccion
Clase 09a frameworks_ejemplo
Clase 09a frameworks
Clase 08c ejemplo_maquina_virtual
Clase 08b ejemplo_capas_cleda
Clase 07b patrones_diseno_ejemplo
Clase 07a patrones_diseno
Clase 05d cobertura de codigo
Clase 05c niveles de pruebas
Clase 05b pruebas introduccion
Clase 05a calidad verificacion validacion

Clase 08a estilos_arquitectonicos

  • 1. Estilos Arquitectónicos (Arquitectura de Software para Practicantes) Universidad de los Andes Demián Gutierrez Marzo 2013 1
  • 2. Diseño Arquitectónico Arquitectura del Software Diseño Arquitectónico Estilos Frameworks Arquitectónicos (Marcos) Patrones de Bibliotecas / Diseño Componentes Clases / Funciones 2
  • 3. Diseño Arquitectónico ¿qué es un estilo? ¿qué es un estilo arquitectónico? 3
  • 4. Estilos Arquitectónicos Art Deco Modernismo aunque conste que sigo pensando que la comparación del software con la ingeniería civil es muy desafortunada 4
  • 5. Estilos Arquitectónicos aunque conste que sigo pensando que la comparación del software con la ingeniería civil es muy desafortunada 5
  • 6. ¿Estilos Arquitectónicos? Un estilo arquitectónico define una familia de sistemas (cierto tipo de sistemas) en términos de patrones estructurales, de control, de comunicación, etcétera Sommerville (Cap 11) 6
  • 7. Estilos Arquitectónicos un estilo arquitectónico describe Un conjunto de componentes y (con sus responsabilidades) Un conjunto de conectores entre componentes (comunicación, coordinación, cooperación, etcétera) Restricciones que definen cómo se integran los componentes para formar el sistema Modelos que permiten comprender las propiedades de un sistema general en función de las propiedades conocidas de las partes que lo integran ¿no suena todo esto sospechosamente parecido al concepto de arquitectura de software? 7 Fuente: Pressman (Cap 10)
  • 8. Diseño Arquitectónico La arquitectura de un sistema de software puede basarse en uno (o en varios) modelos o estilos arquitectónicos bien conocidos Sommerville (Cap 11) un estilo arquitectónico define (a alto nivel) la arquitectura de un sistema 8
  • 9. Estilos Arquitectónicos para todas los estilos arquitectónicos (arquitecturas) es necesario preguntarse: ¿en qué contextos aplica? ¿qué ventajas tiene el estilo? ¿qué desventajas tiene? ¿cómo se combina con otros estilos? 9
  • 10. Estilos Arquitectónicos Impacto en los Requisitos NF Seguridad Confiabilidad Rendimiento Extensibilidad Eficiencia Facilidad de Mantenibilidad Memoria/Ejecución Prueba Portabilidad Disponibilidad Reusabilidad Escalabilidad ...otras... ¿de qué forma impacta el uso de un estilo en las propiedades del sistema? 10
  • 11. Estilos Arquitectónicos ¿Acoplamiento / Cohesión? ¿qué hay sobre estos dos conceptos? Acoplamiento Cohesión ¿será posible analizar un estilo arquitectónico en función de estos dos conceptos? 11
  • 12. Estilos Arquitectónicos ¿La importancia de la responsabilidad? Responsabilidades ¿cuáles son las responsabilidades de cada bloque/parte de la arquitectura? 12
  • 13. Diseño Arquitectónico algunos estilos arquitectónicos bien conocidos 13
  • 14. Arquitectura Monolítica Una arquitectura monolítica describe una aplicación en la que toda la funcionalidad del sistema (ej. acceso a datos, interfaz de usuario, lógica, etcétera) está implementada y mezclada en un solo bloque. Esto, en la gran mayoría de los casos, no es una buena idea... ¿por qué? Sistema TODO EL SISTEMA ¿impacto sobre el acoplamiento y la cohesión responsabilidades, otras características? Fuente: http://en.wikipedia.org/wiki/Monolithic_application 14
  • 15. Arquitectura Monolítica (Un Ejemplo) Código cliente general, Programa Cliente interfaces de usuario, lógica, todo mezclado con el SQL, con el código encargado del acceso a la BD, etc. Si es necesario cambiar el código de acceso a la BD, (por ejemplo, migrar de MySQL a PostgreSQL) ¿el trabajo se hace fácil o difícil? 15
  • 16. Arquitectura Monolítica (Un Ejemplo / Una Mejora) Código cliente general, Programa Cliente interfaces de usuario, lógica, etc. Código SQL junto al código encargado del acceso a la BD DAOs / DTO Si es necesario cambiar el código de acceso a la BD, (por ejemplo, migrar de MySQL a PostgreSQL) ¿el trabajo se hace fácil o difícil? 16
  • 17. Estilos Arquitectónicos (Tuberías y Filtros) Filtros Tuberías (Transformación (Flujo de de Datos / Datos / Información) Información) Filtro 3 Filtro 1 Filtro 4 Filtro 5 Filtro 2 Tuberías y Filtros ¿Impacto sobre el acoplamiento y la cohesión? 17
  • 18. Estilos Arquitectónicos (Tuberías y Filtros) Tuberías y Filtros 18
  • 19. Estilos Arquitectónicos (Tuberías y Filtros) Tuberías y Filtros El “pipeline” de OpenGL 19
  • 20. Arquitectura por Capas API (Application Capa 1 Programming Mas Seguridad / Protección Interface) Interfaz Menos Abstracción Capa 2 ... Capa N Arquitectura por Capas ¿Impacto sobre el acoplamiento y la cohesión? 20
  • 21. Arquitectura por Capas (La Infame Arquitectura a 3 Capas) Capa de Presentación Capa de Proceso / (Interfaz Negocio Gráfica de Capa de Usuario) Persistencia BD (Lógica / Reglas de (HTML, Swing, Negocio) Qt, GTK, etcétera) Arquitectura a tres Capas (muy utilizada en aplicaciones empresariales) 21
  • 22. Arquitectura por Capas (Sistemas Operativos) Arquitectura por Capas 22
  • 23. Estilos Arquitectónicos (Repositorio / Pizarrón) Aplicación / Aplicación / Aplicación / Modulo 1 Modulo 2 Modulo 3 Repositorio (Base de Datos, Sistema de Archivos, Memoria Compartida, etcétera) Aplicación / Aplicación / ... Modulo 4 Modulo N Repositorio / Pizarrón ¿Impacto sobre el acoplamiento y la cohesión? 23
  • 24. Estilos Arquitectónicos (Control Centralizado - Síncrono) Programa Principal Rutina 1 Rutina 2 Rutina 3 Rutina 1.1 Rutina 1.2 Rutina 2.1 Rutina 2.1 Rutina 3.1 Rutina 3.2 Control Centralizado 24
  • 25. Estilos Arquitectónicos (Control Centralizado - Asíncrono) Procesos Procesos Tipo 1 Tipo 4 (Ej: Sensores) (Ej: Actuadores) Controlador del Sistema Procesos Procesos Procesos Tipo 2 Tipo 3 Tipo 5 (Ej: Cálculo) (Ej: Fallos) (Ej: Fallos) Control Centralizado ¿Impacto sobre el acoplamiento y la cohesión? 25
  • 26. Estilos Arquitectónicos (Sistemas Dirigidos por Eventos) Cada subsistema genera eventos según su condición y define que eventos de otros subsistemas desea atender Subsistema Subsistema Subsistema ... 1 2 N Manejador de Eventos El manejador de eventos se encarga de enviar los eventos generados a aquellos sistemas interesados en recibirlos ¿Impacto sobre el acoplamiento y la cohesión? 26
  • 27. Arquitectura Cliente-Servidor Petición Respuesta Cliente 1 Red Servidor 1 ... Internet, Cliente 2 LAN, WAN ... Servidor N Cliente N Cliente Servidor 27
  • 28. Arquitectura Cliente-Servidor (Liviano vs Pesado) Petición Respuesta Red Cliente Servidor ¿Cliente “Liviano” vs Cliente Pesado? 28
  • 29. Arquitectura WEB (Contenido Estático) Petición: GET index.html Cliente navegador WEB Servidor (Ej. Firefox) servidor WEB index.html (Ej. Apache) Respuesta: Arquitectura WEB (Contenido Estático) 29
  • 30. Arquitectura WEB (Contenido Dinámico) Petición: GET index.php Cliente navegador WEB Servidor Servidor (Ej. Firefox) resultado en HTML motor de Respuesta: PHP BD index.php Arquitectura WEB (Contenido Dinámico) 30
  • 31. Diseño Arquitectónico ¿cómo se podría combinar el estilo cliente-servidor con los otros estilos que hemos discutido? 31
  • 32. Estilos Arquitectónicos (Sistema Distribuido / Arquitecturas Peer To Peer) P2 P6 P5 Un par puede jugar un rol de P1 cliente y/o de servidor, dependiendo de P7 P4 las necesidades del momento P3 P8 P9 Cada uno de los pares descubre a sus otros pares y establecen conexiones al mismo nivel (no de forma jerárquica) cooperando para lograr un objetivo determinado 32
  • 33. Estilos Arquitectónicos (Arquitecturas de Referencia) Normalmente se obtienen por medio del estudio de un tipo de aplicación (de un dominio en particular) Representan una arquitectura “ideal” que incluye todas las características que cierto tipo de sistema podría/debería incorporar 33
  • 34. Gracias ¡Gracias! 34