Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Arquitectura, panorama y definición

14/24
Recursos

Aportes 58

Preguntas 7

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

¿Qué es lo que está pasando arquitectónicamente en el software?
Hay muchas librerías, muchos frameworks y conocimiento arquitectónico implícito en las comunidades. Por ejemplo, si hablamos de palabras como MVC o FLUX (con React) estamos hablando de arquitectura, sin embargo, esta implícito dentro del uso de una tecnología específica, y de repente si hablamos de FLUX estando en Java o C# no tiene ningún sentido, ya que no es una arquitectura que se suele encontrar en esa tecnología, sin embargo arquitectónicamente tiene el mismo valor y podría ser implementado en otra tecnología. Asi también, hay decisiones arquitectónicas tales como si empezar un proyecto con un monolito o iniciarlo con una estructura de microservicio, que se dan por sentado que cualquier cosa seria de mucho mas valor iniciarlo como un microservicio ¿Por qué? Puede ser porque es la tendencia, porque es lo que se da más fácil para el equipo de desarrollo o porque las herramientas mas modernas de hoy están orientados a microservicios, sin embargo, falta un análisis más profundo de que es lo que define ese estilo o patrón de arquitectura y cuáles son los payloads o sacrificios que estamos pagando por usarlos y cuáles son los beneficios que esperamos que traigan.
Ningún patrón tiene solo beneficios, cuando hablábamos de que no hay balas de plata, recordemos que ninguno de estos patrones ni estilos nos va a solucionar todos los softwares, siempre hay beneficios y consecuencias de las decisiones de diseño que tomamos.

¿Qué es un estilo de arquitectura de software?
Al hablar de un estilo de arquitectura hablamos de algo genérico. Por ejemplo, podríamos entrar en detalles sobre diferentes páginas de internet: facebook, twitter, wordpress, Wikipedia, etc. todas esas paginas de internet implementan diferentes arquitecturas. Sin embargo, todas esas paginas son una pagina web, por lo tanto tienen una arquitectura cliente-servidor donde hay un navegador web que a través de un sistema de DNS y TCP/IP logra conseguir un documento en formato HTML que se lo muestra a través de un navegador al cliente. Esa estructura genérica define el estilo de una arquitectura, en donde, el estilo no nos va a hablar en detalles que problema esta resolviendo del dominio del problema, sino de que problema esta resolviendo arquitectónicamente a nivel de los conectores entre diferentes aplicaciones. Como dijimos recién podrían ser por ejemplo un navegador web y servidor, o podría ser una red de peer-to-peer, dos sistemas que están intentando intercomunicarse, o también una aplicación móvil que trata de comunicarse a una IP a través también de TCP/IP y HTTPS. Todo esto define algo genérico que si nos permite reutilizarlo a través de diferentes softwares, nos va a ayudar a poder reutilizar este conocimiento y aprender de soluciones anteriores que tuvieron éxito implementando esas comunicaciones o esos componentes con esos conectores. Si tuviéramos que bajarlo a una definición podemos decir que un estilo de arquitectura es una colección de decisiones arquitectónicas o decisiones de diseño que dado un contexto nos permite ya restringir las decisiones arquitectónicas, es decir, nos da un set de decisiones ya tomadas y nos restringe el resto de las decisiones arquitectónicas para un beneficio ya estimado, podemos usar estas decisiones ya tomadas en el pasado y que tuvieron éxito y aplicarlas en nuestro sistema que comparte un sistema general similar y esperar tener un éxito parecido al que tuvo quien lo implemento anteriormente.

Apuntes:

Arquitectura, panorama y definición

Panorama Arquitectónico
Hay muchas librerías, muchos frameworks, mucho conocimiento arquitectónico implícito entre las comunidades.

¿Qué es un estilo de arquitectura?
Cuando hablamos de estilo de arquitectura hablamos de algo genérico.

Un estilo de arquitectura es una colección de decisiones de diseño, aplicables a un contexto determinado, que restringen las decisiones arquitectónicas específicas en ese contexto y obtienen beneficios en cada sistema resultante.
_Software Architecture: Foundations, Theory and Practice (Taylor, 2010)
_

un curso de arquitectura orientada a micro servicios seria muy bueno!!!

Estilos Monolíticos:

Es más fácil darle prioridad a la eficiencia de las comunicaciones.
Son más fáciles de probar.
Curva de aprendizaje son más fáciles, todas las piezas estan en el mismo lugar. (Los microservicios son fáciles de entender).
La capacidad de modificación es más fácil.
La modularización es más fácil de romper, por lo que es más fácil no garantizar esa separación a largo plazo.
En la usabilidad, es mas costoso, porque habría que respaldar toda la aplicación y no pequeños microservicios.
Puede ser un desafío para el despliegue, porque habría que garantizar que toda la aplicación o sistema se adapta a ese contexto específico.
Estilos Distribuidos:

Es más fácil darle prioridad a la eficiencia de las comunicaciones.
Para hacer una prueba de principio a fin hay que tener todos los componentes disponibles .
La curva de aprendizaje es más difícil, porque habría que entender todas las piezas de los componentes.
Al ser desplegadas independientemente, son versionadas independientemente, y esta variación de serviones hace mas complejo su modificación.
La modularidad, es más fácil porque los componentes que son desplegados independiente.
la disponibilidad se pueden tener multiples copias del sistema. por lo que este disponible es mas barato.
La adaptabilidad es más fácil en el despliegue porque los componente se despliegan independientemente en múltiples contextos.

¿Qué es un estilo de arquitectura?
Es un conjunto de decisiones de diseño aplicadas a un contesto determinado. Las cuales nos permiten restringir decisiones de arquitectura específicas, esperando obtener beneficios en el sistema resultante. Este conjunto de decisiones suele sostenerse en experiencias pasadas propias o de terceros que fueron exitosas.

Estilo de arquitectura: Colección de decisiones en diseño para un contexto especifico, que restringen otras decisiones dentro del mismo contexto con el fin de obtener beneficios en cada desarrollo.

¿Se podría decir que un estilo de arquitectura son las diferentes formas que hay de resolver un problema?

Una analogía para este punto es igual que en la construcción. Existen diferentes soluciones para diferentes problemas y el mejor diseño arquitectónico es el que resuelve todas las necesidades con lo mínimo requerido. Saludos, AF.

Ejemplos de estilos de arquitectura:

*Cliente/Servidor (Paginas web, redes sociales)
*Apps y Programas
*Sistemas Operativos

Hasta la arquitectura de un software de una organización puede ser diferente, podría ser en capas (de la forma 3 o n capas) o DDD que es una forma "en capas" pero con otro puntonde vista. Se pueden tomar como plantillas bases pero el asignarle un patron de diseño fijo no funciona para todas las problemáticas. Seria como usar un martillo para todo, pero no es ma mejor herramienta cuando se quiere cortar o aserruchar

Esperando los comentarios de mi compañero ldlopez 😄

Un** Estilo de arquitectura **es una colección de decisiones de diseño, aplicables en un contexto determinado, que restringen las decisiones arquitectónicas especificas en ese contexto y obtienen beneficios en cada sistema resultante.

Un estilo de arquitectura es como un framework, un conjunto o una estructura arquitectónica general que es util para desarrollos más especificos.

Los patrones o estilos de arquitectura no nos van a resolver todos los casos de software que tengamos. Hay que evaluar sacrificios, beneficios y también consecuencias de usar cada patrón o estilo.

Un **estilo de arquitectura** es una colección de decisiones de diseño, aplicables en un contexto determinado, que restringen las decisiones arquitectónicas específicas en ese contexto y obtienen beneficios en cada sistema resultante.

.

Panorama arquitectónico actual
Implícitas en los frameworks como lo son Flux en react o MVC en JAVA con SPRING

¿Qué es un estilo de arquitectura?

La estructura, Cliente-servidor por ejemplo, se define de forma genérica la forma en la que se gestiona un servicio por así decirlo ya que no habla del problema que soluciona

  • Colección de decisiones de diseño



Excelente clase

Un estilo de arquitectura es un buena practica de construcción comprobada por varios gurús del software, se puede ver como una guía de implementación para cuando se desea resolver algún problema arquitectónico común. Estos estilos son la base para la construcción de sistemas robustos y a su vez pueden ser el modelo en la construcción de nuevos estilos

¿Qué es un estilo de Arquitectura?

Es una colección de decisiones de diseño, una estructura genérica que define el estilo de la arquitectura, nos habla del problema que se resuelve arquitectonicamente, desde el nivel tecnológico hasta el nivel de negocio, con el fin de obtener beneficios en nuestra solución.

Nos permite reutilizar el conocimiento y aprendizajes en las diferentes soluciones de Software del problema

Hay que saber diferenciar entre arquitectura del sistema y arquitectura del software, son decisiones totalmente distintas

Un estilo de arquitectura es una colección de decisiones de diseño, aplicables a un contexto determinado, que restringen las decisiones arquitectónicas específicas en ese contexto y obtienen beneficios en cada sistema resultante.

En la uni voy llevando una clase de Arquitectura y Diseño de Software, viendo precisamente este tema de estilos y patrones, llevo varios días sin comprender bien la diferencia entre uno & otro hasta que llego a este video y todo mi panorama se aclaró! ✨

Un estilo de arquitectura es una colección de decisiones de diseño.

Según lo que entendi es respecto a “Facebook, Twitter, Instagram todas estas redes son páginas web, pero tienen diferentes arquitecturas.” Es que podemos utilizar arquitecturas específicas con patrones de diseño específicos, seria chevere que explicaran un poco mas del tema.

Buena explicación.

yo creo que en el ‘desarrollo web’, una aproximación a la bala de plata sería la arquitectura de micro servicios ya que es muy versátil y tiene mucha flexibilidad de adaptación y eficiencia , saludos

ESTILOS: CENTRADAS EN DATOS.

Estilo de pizarrón, permite centralizar los datos en una sola base de datos, alimentada por varias partes involucradas, una vez que todas las partes interesadas ingresan los datos, el sistema centralizado genera una salida.

Estilo Centralizado, En este caso el sistema posee los datos centralizados en una base de datos, y hay dos (02) sistemas que comparten la misma base de datos.

Estilo Experto, En este caso el sistema que centraliza los datos, tiene la capacidad de entender los datos y consultas que realiza el cliente, generando salidas inteligentes. (inteligencia artificial).

En este caso no estamos tan preocupados por cual es la secuencia de ejecución sino como los datos fluyen de un punto a otro.

Flujo de datos:

• Lote secuencial: Lo importante es ejecutar una pieza de código y que el final de esa pieza ya procesada pase a una siguiente etapa.

• Tubos y filtros: Se tiene un string o un flujo de datos continuo en donde cada aplicación recibe continuamente esos datos los procesa y los hace como salida a otra aplicación o al final de la ejecución.

Nota:

En el estilo de flujo de datos lo que se tiene son diferentes aplicaciones que van a estar conectadas en general en tiempo real por lo tanto ya no se necesita interacción con el usuario para decidir cuándo empieza un proceso o cuando termina otro.

Cuando usamos el estilo de arquitectura de flujo de datos:

• Cuando tenemos un proceso que tiene que tener una salida clara pero que puede ser separado en partes en donde tenemos parte a parte lo que necesitamos hacer.
• Cuando necesitamos un string de entrada parte a parte ir procesándolo y tener una salida al final del túnel.

COMPONENTE INDEPENDIENTES

Invocación implícita: Tiene que ver con que nuestra aplicación puedan mandar mensajes entre si, sin que sepa a quien le esta hablando.

Invocación explícita: Tiene que ver con el desarrollo de componentes que si se conocen entre si, pero que sean desarrollado independientemente.

ARQUITECTURA ORIENTADAS A SERVICIOS:
El Enterprise Services Busses, sabe que proceso tiene que llevar a cabo para lograr su cometido, dando a los componentes la información que éstos requieran. El ESB, es inteligente.

Es necesario tener en cuenta que cualquier actualización del sistema, mantiene conectado a los componentes que brindan servicios de consulta.

Esto sin duda cada vez se pone mucho mas interesante.

Sitios como Facebook y Twitter son páginas web, es decir tienen una estructura cliente-servidor, pero implementan diferentes arquitecturas.

entonces las decisiones de diseño te van dando una pauta a seguir dependiendo de lo que se este desarrollando te pone ciertas restricciones pero te da otras libertades por ejemplo existen vacas pintas, pero no todos los animales pintos son vacas, estas definiciones depende de los rasgos característicos de cada raza.

Entonces el <strong>estilo de arquitectura</strong> es la forma predefinida que tienes de enfrentar problemas a resolver?

¿Qué es un estilo de arquitectura? Software Architecture: Foundations, Theory and Practice (Taylor, 2010)

Aplicar el modelo de arquitectura acorde a la necesidad del momento a resolver. Llamese: cliente, unidad de negocio, usuarios o socios.

RESUMEN:

Arquitectura: contiene frameworks de referencia. El estiolo de arquitectura hace referencia a esos estilos, que es básicamente el set de desiciones funcionales en otros sistemas, desiciones que tuvieron éxito al solucionar un problema, y se esperan que dentro de nuestro proyecto también lo sean.

Un estilo de arquitectura permite, resumidamente, tomar un conjunto de decisiones de diseño que nos permiten aplicarlas a un sistema de un contexto similar al que plantea el estilo para obtener buenos resultados y beneficios de él.

Que buena explicación 😄 😄

Arquitectura, panorama y definición

Panorama:

  • Muchas opciones en las comunidades
  • Implícitos en alguna tecnología
  • Ningún estilo puede solucionar todos los softwares

Definición:

  • Estructura genérica
  • Habla de que problema resuelve arquitecnociamente a nivel de comunicación
  • “Es una colección de decisiones de diseño, aplicables en un contexto determinado, que restringen las decisiones arquitectónicas específicas en ese contexto y obtienen beneficios en cada sistema resultante”

“Un estilo de arquitectura es una colección de decisiones de diseño, aplicables en un contexto determinado, que restringen las decisiones arquitectónicas en este contexto y obtienen beneficios en cada sistema resultante”.

Aquí es donde se empieza a sentir la carnita del curso 😄

Buena explicación gracias 😃

Siempre la arquitectura que se elija tendrá beneficios y consecuencias. Por eso es importante hacer planeación de a dónde se quiere llegar con ese software y tomas la arquitectura que menos consecuencias tenga!

Estilos y Patrones de Arquitectura de Software

  • Influenciados por los Lenguajes de Programación. Programación estructurada. Orientado a Objetos.

  • Capas. Máquinas Virtuales. Cliente Servidor. n-Tier.

  • Peer-to-Peer.

  • Flujo de Datos. Batch. Pipes and Filters.

  • Memoria Compartida. Blackboard. Rule Based.

  • Interprete.

  • Invocación Implícita. Event-based. Publisher-suscriber.

Panorama y definición
El panorama arquitectónico actual es uno en el donde ya no sé menciona la actividad a realizar sino la tecnología que se opta para realizarlo.
Estilos de arquitectura

Nos referimos a la manera que caracteriza nuestro software, en el cuál no necesariamente estamos resolviendo un problema, simplemente es la manera en que usamos y gestionamos nuestros recursos tecnológicos.

Un estilo de arquitectura es una colección de decisiones de diseño, aplicables en un contexto determinado, que restringen las decisiones arquitectónicas específicas en ese contexto y obtienen beneficios en cada sistema resultante.

Muy buena clase

Algunos ejemplos de estilos arquitecturales:

Influenciados por los Lenguajes de Programación

  • Programación estructurada
  • Orientado a Objetos
    Capas
  • Máquinas Virtuales
  • Cliente Servidor
  • n-Tier
  • Peer-to-Peer
    Flujo de Datos
  • Batch
  • Pipes and Filters
    Memoria Compartida
  • Blackboard
  • Rule Based
    Interprete
    Invocación Implícita
  • Event-based
  • Publisher-suscriber

Estilo de Arquitectura

Un conjunto de decisiones tomadas sobre un contexto o dominio determinado que restringen las decisiones arquitectónicas futuras. Los beneficios de un estilo de arquitectura son estimables de acuerdo a experiencias de quienes ya han probado ese estilo.

Buena clase!

*14. Mis apuntes sobre: “Arquitectura, panorama y definición”.
Estilos de arquitectura. Siempre hay beneficios y consecuencias de las decisioens de diseño.

¿Qué es un estilo de arquitectura?
"Un estilo de arquitectura es una colección de decisiones de diseño, aplicables en un contexto
determinado, que restringen las decisiones arquitectónicas específicas en ese contexto y
obtienen beneficios en cada sistema resultante"
Software Arquitecture Foundations, Theory and Practice (Taylor, 2010).