Introducción al curso

1

Introducción al curso de Profesional de Arquitectura de Software

Atributos de calidad

2

Definición

3

Atributos: Idoneidad funcional

4

Atributos: Eficiencia de ejecución

5

Atributos: Compatibilidad

6

Atributos: Usabilidad

7

Atributos: Confiabilidad

8

Atributos: Seguridad

9

Atributos: Mantenibilidad

10

Atributos: Portabilidad

11

Tensiones entre atributos

12

Analizando PlatziServicios

Patrones de arquitectura

13

Patrones monolíticos vs distribuidos

14

Patrones: Modelo Vista Controlador

15

Patrones: Capas

16

Patrones: Orientado a eventos / Provisión de eventos.

17

Patrones: Microkernel - Plug-ins

18

Patrones: Comparte-nada

19

Patrones: Microservicios

20

Patrones: CQRS

21

Patrones: Hexagonal - Puertos y adaptadores

22

Patrones: Diseño orientado al dominio

23

Combinando patrones de arquitectura

24

Analizando nuevamente PlatziServicios

Diseño de una arquitectura

25

Pararse en hombros de gigantes

26

Herramientas y partes de un diseño: Tipos de conectores

27

Conectores: Llamado asincrónico / sincrónico. Modelo Cliente servidor.

28

Conectores: Enrutador, difusión

29

Conectores: Pizarra, repositorio, colas, modelo PUBSUB

30

Escenarios y tácticas

31

Escenarios: Disponibilidad, detección, reparación

32

Escenarios: Reintroducción y prevención

33

Escenarios: Mantenibilidad

34

Escenarios: Prevenir efectos dominó y diferir enlace

35

Escenarios: Eficiencia de ejecución

36

Escenarios: Seguridad

37

Escenarios: Capacidad de prueba

38

Escenarios: Usabilidad

39

Validar las decisiones de diseño: Arquitectura en evolución

40

Último análisis a PlatziServicios

Modelado y documentación de arquitectura

41

Cómo comunicar la arquitectura: Vistas y Puntos de vista

42

Documentación vs implementación

43

Conclusiones del curso

Crea una cuenta o inicia sesión

¡Continúa aprendiendo sin ningún costo! Únete y comienza a potenciar tu carrera

Atributos: Compatibilidad

5/43
Recursos

La coexistencia es medible a través de la cantidad de fallos por razones externas en un tiempo dado.

Aportes 25

Preguntas 3

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Compatibilidad

  • Este agrupa los atributos de cuanto el sistema coexiste o interopera con otros sistemas, es decir; Cuanto puede el sistema vivir en un contexto mas grande.
    .
    **Interoperabilidad:**Cuan fácil es comunicarse con este sistema, cuanto define su sistema de comunicación, incluso cuanto después este sistema puede comunicarse con otros.
    Se mide: A través de casos puntuales, por ejemplo una plataforma de pagos. que tan fácil o difícil es que nuestro sistema se integre son dicha plataforma.
    .
    Coexistencia: Esta dada por cuanto el sistema soporta o no el estar en un contexto dado con otro sistema también. ¿El sistema puede coexistir dentro del mismo servidor, la misma red? ¿Eso genera fallos al sistema?
    Se mide: A través de la cantidad de fallos que tenemos, sin que esos fallos sean generados por nuestra aplicación. Es decir, si nuestra aplicación convive con otras y estas otras nos quita recursos o porque la aplicación le genera un fallo de segmentación en el sistema operativo. (Cualquier cosa externa)

Viendo las definiciones en un contexto no tan técnico, hablemos del atributo de Compatibilidad de una persona
Interoperabilidad
Que tan sociable es y con cuantos amigos puede hablar sin tener problemas de comunicación
Coexistencia
En un departamento con otros 20 amigos, poder usar el baño, cocina, sala sin afectar el rendimiento de la persona

Compatibilidad Agruoa los atributos de calidad que tiene que ver con cuanto el sistema es capáz de coexistir con otros sistemas.

Atributo de calidad ++interoperabilidad ++:
El término interoperabilidad se usa para describir la capacidad técnica de distintos programas para intercambiar los datos a través de un conjunto común de formatos de intercambio, para leer y escribir los mismos formatos de archivo, y para usar los mismos protocolos. Ejemplo de esto sería la implementación de estándares y disponibilidad de esquemas. HATEOAS. JSON Schema, SOAP, OPEN API

Atributo de calidad Coexistencia: Es la capacidad del producto software de coexistir con otro software independiente en un entorno común compartiendo recursos comunes.

Apuntes:

Compatibilidad

Agrupa los atributos que tienen que ver con cuánto el sistema coexiste o interopera con otros sistemas, es decir, cuánto puede el sistema vivir en un contexto más grande.

Interoperabilidad. Cuán fácil es comunicarse con este sistema, cuánto este sistema define su forma de comunicación e incluso cuánto puede después comunicarse con otros.

Coexistencia. Cuánto el sistema soporta o no estar en un contexto dado con otros sistemas también.

Ejemplos:
Interoperabilidad: API- pública, SAS, plataforma de pagos, ecommerce que nos permita programar su API.

Coexistencia: Herramienta de (Transacciones), que lo que este haciendo en un esquema de BD no afecte.

Es interesante el ver como pueden nuestras aplicaciones no solamente hagan un trabajo especifico sino que lleguemos a tener en cuenta estos atributos y diseñarlas para te tenga un gran grado de compatibilidad, con otros sistemas cuando así sea necesario.

HATEOAS, JSON Schema, SOAP y Open API son tecnologías y metodologías utilizadas para asegurar la interoperabilidad entre sistemas de software. ### **HATEOAS** HATEOAS (Hypermedia as the Engine of Application State) es un principio en el diseño de servicios web RESTful. Establece que los clientes deben interactuar con una aplicación a través de hipermedios (como enlaces en respuesta a peticiones), en lugar de tener conocimiento previo de la estructura de la API. Esto permite que el servidor cambie su estructura sin romper la interacción con los clientes, ya que éstos siguen las guías proporcionadas por el hipermedio. HATEOAS puede mejorar la interoperabilidad al hacer que las interacciones con el servicio sean más flexibles y menos dependientes de la estructura interna del servidor. ### **JSON Schema** JSON Schema es un estándar que define la estructura y validación de documentos JSON. Proporciona una manera de especificar cómo se debe estructurar un documento JSON, qué tipos de datos son válidos, si ciertos campos son obligatorios, entre otros detalles. JSON Schema ayuda a garantizar la interoperabilidad al establecer reglas claras sobre cómo se debe formatear y validar la información que se intercambia entre diferentes sistemas. ### **SOAP** SOAP (Simple Object Access Protocol) es un protocolo para el intercambio de mensajes en servicios web. A diferencia de REST, que es un estilo arquitectónico, SOAP es más rígido y estructurado, utilizando XML para codificar mensajes y proporcionar un marco para definir y hacer cumplir contratos de servicios. SOAP puede ser utilizado para garantizar la interoperabilidad entre sistemas diferentes, ya que es compatible con múltiples lenguajes de programación y protocolos de transporte (como HTTP y SMTP). ### **Open API** Open API (anteriormente conocido como Swagger) es un estándar para describir y documentar APIs RESTful. Proporciona una manera consistente de describir las operaciones, los parámetros y las respuestas de una API. Al usar Open API, se puede mejorar la interoperabilidad al ofrecer documentación detallada y herramientas para generar código cliente automáticamente, facilitando la integración entre sistemas.

Atributos: Compatibilidad
La coexistencia es medible a través de la cantidad de fallos por razones externas en un tiempo dado.

  • Interoperabilidad: agrupa los atributos que tienen que ver con cuanto el sistema coexiste o interopera con otros sistemas, es decir, cuanto puede el sistema vivir en un contexto as grande, habla de cuan fácil es comunicarse con este sistema. Cuan fácil es integrarlo con otros sistemas como por ejemplo una plataforma de pagos, lo veremos muy claro en cualquier api publica.
    **Como medir la interoperabilidad: **
    implementacion de estandares y disponibilidad de esquemas: HATEOAS, JSON squema, SOAP, Open API.

  • **Coexistencia: ** habla mas de cuanto el sistema soporta o no estar en un contexto dado con otros sistemas, coexistir en el mismo servidor o red con otros sistema genera fallos? o puede coexistir normalmente?
    **como medir la coexistencia: ** por la cantidad de fallos por razones externas en un tiempo dado. Cualquier cosa que haga que nuestra aplicación falle habla de su coexistencia.

**Compatibilidad **
Atributo de calidad que hace referencia a la capacidad que tiene el sistema para integrarse con otros sistemas de información.
**Atributos: **
Interoperabilidad: La capacidad de comunicación del sistema con otros sistemas independientes de su entorno. Para ello es necesario implementar estándares y/o esquemas que facilitaran la forma en la que los demás pueden comunicarse con la aplicación.
Coexistencia: La capacidad de compartir recursos de un mismo entorno con otros sistemas de información. Para medirlo se obtiene una muestra de la cantidad de fallos generados por razones ajenas, existentes en el contexto de la aplicación.

Compatibilidad

Que tanto puede el sistema interoperar con otros sistemas y bajo otros contextos.

  • Interoperabilidad: Que tan facil es comunicarse con el sistema.

  • Coexistencia: Si puede convivir junto a otros sistemas dentro de la red sin ningún inconveniente.

Compatibilidad: Consiste en definir si mi sistema puede interactuar con otros o si se puede consumir fácilmente. Se divide en dos:
-Interoperabilidad: Se puede consumir fácilmente el sistema? Cómo otras aplicaciones pueden acceder a él?

  • Coexistencia: Puede mi sistema vivir con otros? Ejemplo si comparte una base de datos con otros, no se va a dañar porque otro aplicativo está consumiendo más de lo que debe?

COMPATIBILIDAD
.
La compatibilidad agrupa los atributos que se relacionan con que tanto el sistema coexiste o interopera con otros sistemas. Que tanto el sistema puede estar en un contexto mas grande.
.
Interoperabilidad
Se relaciona con que tan fácil es comunicarse con el sistema, cuando el sistema define su manera de comunicación y cuando el sistema puede comunicarse con otros.
.
Se puede medir implementando estándares y disponibilidad de esquemas.
.
Coexistencia
.
Se relaciona con cuando puede o no el sistema soportar estar en un contexto definido con otros sistemas. Los sistemas puede coexistir dentro del mismo servidor y la misma red y si esto genera fallos en el sistema o pueden coexistir.
.
Se puede medir a través de la cantidad de fallos obtenidos sin que estos fallos sean generado por la propia aplicación.

Compatibilidad
Cuanto puede vivir el sistema en un contexto más grande
Interoperabilidad
Cuan fácil es comunicarse con este sistema, cómo lo define y con otros
Para medirlo a través de casos puntuales (plataforma de pagos, por ejemplo) o adherirnos a estándares y disponibilidad de esquemas que nos ayudar a tener una alta calidad de Interoperabilidad: HATEOAS, JSONS chema, SOAP, Open API
Ejemplo
APIS públicas
Coexistencia
Cuanto el sistema soporta realizar funcione de manera eficiente mientras comparte un entorno y recursos comunes con otros productos
Es medible a través de la cantidad de fallos que tenemos sin que esos fallos sean generados por nuestra propia aplicación en un tiempo dado

Recomiendo:

Compatibilidad: Interoperabilidad: Cuanto vive el sistema en su contexto y su conexión con otros sistemas (mediciones por medio de estándares) y la coexistencia: Medible a través de fallos por razones externas en un tiempo dado.

¿Cómo podría evaluar el uso de un API antes de consumirla?

El atributo de Compatibilidad, es la capacidad de sistema de convivir en un ecosistema con otros sistemas.

Para ello se usas dos características que se llaman: interoperabilidad y coexistencia.

La interoperabilidad se mide usando estándares como: HATEOAS, JSON Schema, SOAP, Oen API.

La coexistencia, se refiere a la cantidad de fallas por razones externas que tiene un sistema en un tiempo dado.

<h4>Compatibilidad</h4>

Agrupa los atributos que tiene que ver con cuanto el sistema coesxite o interopera con otros sistemas.

  • Interoperabilidad
    cuan facil es comunicarse con el sistema
    • implementacion de estandares y disponibilidad de esquemas: HATEOAS, JSON schema, SOAP, open Api
  • Coexistencia
    Cuanto el sistema soporta o no el estar en un contexto dado con otro sistemas.
    • Cantidad de fallos por razones externas en un tiempo dado

Compatibilidad.
Forma en la cual un sistema/producto puede compartir información con otros

  • Interoperabilidad -> Que tan fácil es comunicarse con este sistema.
  • Coexistencia -> Que tanto soporta el sistema estar en conjunto con otros.
Los ejemplos de interoperabilidad tienen que ver con apis públicas en las cuales diversos sistemas están interactuando para dar un servicio. Para su medición se recomienda el uso de estándares. En cuanto a la coexistencia, se puede estudiar los casos en que varios sistemas utilizan una misma base de datos. En lo que es necesario observar la influencia que tiene el comportamiento de cada sistema sobre los demás mientras usan un recurso compartido, y los fallos que se puedan generar.

Interoperabilidad

Coexistencia