From b5f1f10d121c0694c18597ade9318b27b8fd71b0 Mon Sep 17 00:00:00 2001 From: Fernando Machado Date: Wed, 26 Jun 2024 16:09:40 -0300 Subject: [PATCH 01/12] Added layered architecture --- 3_Plantillas/3_9_Layered_Architecture.md | 64 ++++++++++++++++ diagrams/Architecture_Layered.drawio | 67 +++++++++++++++++ diagrams/Architecture_Layered.svg | 1 + .../Architecture_Layered_Variation_1.drawio | 70 ++++++++++++++++++ diagrams/Architecture_Layered_Variation_1.svg | 1 + .../Architecture_Layered_Variation_2.drawio | 73 +++++++++++++++++++ diagrams/Architecture_Layered_Variation_2.svg | 1 + .../Architecture_Layered_Variation_3.drawio | 55 ++++++++++++++ diagrams/Architecture_Layered_Variation_3.svg | 1 + 9 files changed, 333 insertions(+) create mode 100644 3_Plantillas/3_9_Layered_Architecture.md create mode 100644 diagrams/Architecture_Layered.drawio create mode 100644 diagrams/Architecture_Layered.svg create mode 100644 diagrams/Architecture_Layered_Variation_1.drawio create mode 100644 diagrams/Architecture_Layered_Variation_1.svg create mode 100644 diagrams/Architecture_Layered_Variation_2.drawio create mode 100644 diagrams/Architecture_Layered_Variation_2.svg create mode 100644 diagrams/Architecture_Layered_Variation_3.drawio create mode 100644 diagrams/Architecture_Layered_Variation_3.svg diff --git a/3_Plantillas/3_9_Layered_Architecture.md b/3_Plantillas/3_9_Layered_Architecture.md new file mode 100644 index 0000000..698fb24 --- /dev/null +++ b/3_Plantillas/3_9_Layered_Architecture.md @@ -0,0 +1,64 @@ +# 3 Plantillas + +## 3.9 Arquitectura en capas + +Esta es la plantilla para una arquitectura en capas o *layered architecture*; +esta es una arquitectura monolítica. + +> [!NOTE] +> En esta plantilla no aparecen los componentes en cada capa por simplicidad; en +> un diagrama de arquitectura deberían aparecer, además de las capas, los +> componentes en ellas. + +La figura 1, a continuación, combina las capas `Presentation Layer`, `Business +Layer`, `Persistence Layer` y `Database Layer` en una sola unidad de despliegue; +por ejemplo, una aplicación de escritorio con una base embebida o en memoria. + +![Plantilla de layered architecture desplegada en una sola +unidad de despliegue](/diagrams/Architecture_Layered.svg) + +*Figura 1: Plantilla de layered architecture desplegada en una sola unidad de +despliegue.* + +La figura 2, a continuación, muestra una variante de despliegue donde la capa +`Database Layer` está físicamente separada en una unidad de despliegue diferente +de la del resto de las capas; por ejemplo, una aplicación de escritorio que usa +un motor de base de datos local. + +![Plantilla de layered architecture con la base de datos desplegada en una +unidad de despliegue físicamente separada del +resto](/diagrams/Architecture_Layered_Variation_1.svg) + +*Figura 2: Plantilla de layered architecture con la base de datos desplegada +en una unidad físicamente separada del resto.* + +La figura 3, a continuación, muestra otra variante de despliegue, donde la capa +`Presentation Layer` está físicamente separada del resto en una unidad de +despliegue diferente; también está separada del resto la capa `Database Layer`; por +ejemplo, una aplicación de escritorio implementada con un cliente delgado, +librerías, y un motor de base de datos local. + +![Plantilla de layered architecture con la capa de presentación y la de base de +datos desplegadas en una unidad de despliegue físicamente separada del +resto](/diagrams/Architecture_Layered_Variation_2.svg) + +*Figura 3: Plantilla de layered architecture con la capa de presentación y la +de base de datos desplegadas en una unidad de despliegue físicamente separada +del resto*. + +La figura 4, a continuación, muestra una variante de la arquitectura en capas +donde: + +* Las capas pueden ser abiertas o cerradas; si son abiertas las capas superiores + pueden comunicarse directamente con las inferiores —"pasan" a través de la + capa abierta—, mientras que por el contrario, si son cerradas, las capas + superiores se comunican solamente con la capa inmediata. +* Se agrega una capa `Services Layer` abierta que expone componentes + compartidos para la capa `Business Layer` pero ocultos para la capa + `Presentation Layer`. + +![Plantilla de arquitectura en capas con una capa `Service Layer` abierta y +cerradas](/diagrams/Architecture_Layered_Variation_3.svg) + +*Figura 4: Plantilla de arquitectura en capas con una capa `Service Layer` +abierta y las demás cerradas.* diff --git a/diagrams/Architecture_Layered.drawio b/diagrams/Architecture_Layered.drawio new file mode 100644 index 0000000..c980a57 --- /dev/null +++ b/diagrams/Architecture_Layered.drawio @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/diagrams/Architecture_Layered.svg b/diagrams/Architecture_Layered.svg new file mode 100644 index 0000000..f04db58 --- /dev/null +++ b/diagrams/Architecture_Layered.svg @@ -0,0 +1 @@ +
Presentation Layer
Presentation Layer
Business Layer
Business Layer
Persistence Layer
Persistence Layer
Database Layer
Database Layer
<<access>>
<<access>>
<<access>>
<<access>>
<<access>>
<<access>>
Deployment Target
Deployment Target
<<deployed>>
<<deployed>>
<<deployed>>
<<deployed>>
<<deployed>>
<<deployed>>
<<deployed>>
<<deployed>>
Text is not SVG - cannot display
\ No newline at end of file diff --git a/diagrams/Architecture_Layered_Variation_1.drawio b/diagrams/Architecture_Layered_Variation_1.drawio new file mode 100644 index 0000000..3e12248 --- /dev/null +++ b/diagrams/Architecture_Layered_Variation_1.drawio @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/diagrams/Architecture_Layered_Variation_1.svg b/diagrams/Architecture_Layered_Variation_1.svg new file mode 100644 index 0000000..d8a9ec7 --- /dev/null +++ b/diagrams/Architecture_Layered_Variation_1.svg @@ -0,0 +1 @@ +
Presentation Layer
Presentation Layer
Business Layer
Business Layer
Persistence Layer
Persistence Layer
Database Layer
Database Layer
<<access>>
<<access>>
<<access>>
<<access>>
<<access>>
<<access>>
Deployment Target
Deployment Target
<<deployed>>
<<deployed>>
<<deployed>>
<<deployed>>
<<deployed>>
<<deployed>>
<<deployed>>
<<deployed>>
Deployment Target
Deployment Target
Text is not SVG - cannot display
\ No newline at end of file diff --git a/diagrams/Architecture_Layered_Variation_2.drawio b/diagrams/Architecture_Layered_Variation_2.drawio new file mode 100644 index 0000000..e5ad813 --- /dev/null +++ b/diagrams/Architecture_Layered_Variation_2.drawio @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/diagrams/Architecture_Layered_Variation_2.svg b/diagrams/Architecture_Layered_Variation_2.svg new file mode 100644 index 0000000..4b4c2ca --- /dev/null +++ b/diagrams/Architecture_Layered_Variation_2.svg @@ -0,0 +1 @@ +
Presentation Layer
Presentation Layer
Business Layer
Business Layer
Persistence Layer
Persistence Layer
Database Layer
Database Layer
<<access>>
<<access>>
<<access>>
<<access>>
<<access>>
<<access>>
Deployment Target
Deployment Target
<<deployed>>
<<deployed>>
<<deployed>>
<<deployed>>
<<deployed>>
<<deployed>>
<<deployed>>
<<deployed>>
Deployment Target
Deployment Target
Deployment Target
Deployment Target
Text is not SVG - cannot display
\ No newline at end of file diff --git a/diagrams/Architecture_Layered_Variation_3.drawio b/diagrams/Architecture_Layered_Variation_3.drawio new file mode 100644 index 0000000..0854d15 --- /dev/null +++ b/diagrams/Architecture_Layered_Variation_3.drawio @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/diagrams/Architecture_Layered_Variation_3.svg b/diagrams/Architecture_Layered_Variation_3.svg new file mode 100644 index 0000000..812ce81 --- /dev/null +++ b/diagrams/Architecture_Layered_Variation_3.svg @@ -0,0 +1 @@ +
<<closed>>
Presentation Layer
<<closed>>...
<<closed>>
Business Layer
<<closed>>...
<<closed>>
Persistence Layer
<<closed>>...
<<closed>>
Database Layer
<<closed>>...
<<access>>
<<access>>
<<access>>
<<access>>
<<access>>
<<access>>
<<open>>
Services Layer
<<open>>...
<<access>>
<<access>>
<<access>>
<<access>>
Text is not SVG - cannot display
\ No newline at end of file From 419c720d49ec72083031718501bbb399740026f7 Mon Sep 17 00:00:00 2001 From: Fernando Machado Date: Wed, 26 Jun 2024 16:33:39 -0300 Subject: [PATCH 02/12] Added pipes and filters architecture --- .../3_10_Pipes_and_Filters_Architecture.md | 21 +++ 3_Plantillas/3_9_Layered_Architecture.md | 4 +- .../Architecture_Pipes_And_Filters.drawio | 129 ++++++++++++++++++ diagrams/Architecture_Pipes_And_Filters.svg | 1 + 4 files changed, 153 insertions(+), 2 deletions(-) create mode 100644 3_Plantillas/3_10_Pipes_and_Filters_Architecture.md create mode 100644 diagrams/Architecture_Pipes_And_Filters.drawio create mode 100644 diagrams/Architecture_Pipes_And_Filters.svg diff --git a/3_Plantillas/3_10_Pipes_and_Filters_Architecture.md b/3_Plantillas/3_10_Pipes_and_Filters_Architecture.md new file mode 100644 index 0000000..cc4586b --- /dev/null +++ b/3_Plantillas/3_10_Pipes_and_Filters_Architecture.md @@ -0,0 +1,21 @@ +# Plantillas + +## 3.10 Arquitectura tuberías y filtros + +Esta es la plantilla para una arquitectura tuberías y filtros o *pipes and +filters*; esta es una arquitectura monolítica. + +> [!NOTE] +> En esta plantilla aparecen componentes de ejemplo estereotipados; en +> un diagrama de arquitectura deberían aparecer los componentes propios del +> proyecto, usando estos mismos estereotipos. + +La figura 1, a continuación, muestra un ejemplo de cada uno de los cuatro tipos +típicos de filtros, usando los estereotipos `≪producer≫`, `≪transformer≫`, +`≪tester≫` y `≪consumer≫` para identificarlos, con sus respectivas tuberías +conectando esos filtros. + +![Plantilla de la arquitectura pipes and +filters](/diagrams/Architecture_Pipes_And_Filters.svg) + +*Figura 1: Plantilla de la arquitectura pipes and filters.* diff --git a/3_Plantillas/3_9_Layered_Architecture.md b/3_Plantillas/3_9_Layered_Architecture.md index 698fb24..543a5f4 100644 --- a/3_Plantillas/3_9_Layered_Architecture.md +++ b/3_Plantillas/3_9_Layered_Architecture.md @@ -57,8 +57,8 @@ donde: compartidos para la capa `Business Layer` pero ocultos para la capa `Presentation Layer`. -![Plantilla de arquitectura en capas con una capa `Service Layer` abierta y +![Plantilla de layered architecture con una capa `Service Layer` abierta y cerradas](/diagrams/Architecture_Layered_Variation_3.svg) -*Figura 4: Plantilla de arquitectura en capas con una capa `Service Layer` +*Figura 4: Plantilla de layered architecture con una capa `Service Layer` abierta y las demás cerradas.* diff --git a/diagrams/Architecture_Pipes_And_Filters.drawio b/diagrams/Architecture_Pipes_And_Filters.drawio new file mode 100644 index 0000000..4cca116 --- /dev/null +++ b/diagrams/Architecture_Pipes_And_Filters.drawio @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/diagrams/Architecture_Pipes_And_Filters.svg b/diagrams/Architecture_Pipes_And_Filters.svg new file mode 100644 index 0000000..d11e810 --- /dev/null +++ b/diagrams/Architecture_Pipes_And_Filters.svg @@ -0,0 +1 @@ +
«producer»
Filter 1
«producer»...
Deployment
Target
Deployment...
«pipe»
Pipe 1
«pipe»...
«transformer»
Filter 2
«transformer»...
«pipe»
Pipe 2
«pipe»...
«tester»
Filter 3
«tester»...
«pipe»
Pipe 3
«pipe»...
«consumer»
Filter 4
«consumer»...
deployed
deployed
deployed
deployed
deployed
deployed
deployed
deployed
deployed
deployed
deployed
deployed
deployed
deployed
Text is not SVG - cannot display
\ No newline at end of file From 8edacedf386b08c1d9b0e24658c19e7f417608ab Mon Sep 17 00:00:00 2001 From: Fernando Machado Date: Wed, 26 Jun 2024 16:47:42 -0300 Subject: [PATCH 03/12] Added microkernel architecture --- .../3_10_Pipes_and_Filters_Architecture.md | 5 + 3_Plantillas/3_11_Microkernel_Architecture.md | 23 +++++ 3_Plantillas/3_9_Layered_Architecture.md | 5 + diagrams/Architecture_Microkernel.drawio | 95 +++++++++++++++++++ diagrams/Architecture_Microkernel.svg | 1 + .../Architecture_Pipes_And_Filters.drawio | 58 +++++------ 6 files changed, 158 insertions(+), 29 deletions(-) create mode 100644 3_Plantillas/3_11_Microkernel_Architecture.md create mode 100644 diagrams/Architecture_Microkernel.drawio create mode 100644 diagrams/Architecture_Microkernel.svg diff --git a/3_Plantillas/3_10_Pipes_and_Filters_Architecture.md b/3_Plantillas/3_10_Pipes_and_Filters_Architecture.md index cc4586b..8aece11 100644 --- a/3_Plantillas/3_10_Pipes_and_Filters_Architecture.md +++ b/3_Plantillas/3_10_Pipes_and_Filters_Architecture.md @@ -5,6 +5,8 @@ Esta es la plantilla para una arquitectura tuberías y filtros o *pipes and filters*; esta es una arquitectura monolítica. +Esta plantilla está basada en [^1]. + > [!NOTE] > En esta plantilla aparecen componentes de ejemplo estereotipados; en > un diagrama de arquitectura deberían aparecer los componentes propios del @@ -19,3 +21,6 @@ conectando esos filtros. filters](/diagrams/Architecture_Pipes_And_Filters.svg) *Figura 1: Plantilla de la arquitectura pipes and filters.* + +[^1]: Richards, M. & Ford, N. (2020). Fundamentals of Software Architecture-An + Engineering Approach. O'Reilly. diff --git a/3_Plantillas/3_11_Microkernel_Architecture.md b/3_Plantillas/3_11_Microkernel_Architecture.md new file mode 100644 index 0000000..67ce36d --- /dev/null +++ b/3_Plantillas/3_11_Microkernel_Architecture.md @@ -0,0 +1,23 @@ +# 3 Plantillas + +## 3.11 Arquitectura micro kernel + +Esta es la plantilla para una arquitectura micronúcleo o *microkernel +architecture*; esta es una arquitectura monolítica. + +Esta plantilla está basada en [^1]. + +> [!NOTE] +> En esta plantilla aparecen componentes de ejemplo estereotipados; en +> un diagrama de arquitectura deberían aparecer los componentes propios del +> proyecto, usando estos mismos estereotipos. + +La figura 1, a continuación, muestra un ejemplo con el núcleo del sistema con el +estereotipo `≪core≫` y los complementos con el estereotipo `≪plugin≫`. + +![Plantilla de microkernel architecture](/diagrams/Architecture_Microkernel.svg) + +*Figura 1: Plantilla de microkernel architecture.* + +[^1]: Richards, M. & Ford, N. (2020). Fundamentals of Software Architecture-An + Engineering Approach. O'Reilly. \ No newline at end of file diff --git a/3_Plantillas/3_9_Layered_Architecture.md b/3_Plantillas/3_9_Layered_Architecture.md index 543a5f4..cb67309 100644 --- a/3_Plantillas/3_9_Layered_Architecture.md +++ b/3_Plantillas/3_9_Layered_Architecture.md @@ -5,6 +5,8 @@ Esta es la plantilla para una arquitectura en capas o *layered architecture*; esta es una arquitectura monolítica. +Esta plantilla está basada en [^1]. + > [!NOTE] > En esta plantilla no aparecen los componentes en cada capa por simplicidad; en > un diagrama de arquitectura deberían aparecer, además de las capas, los @@ -62,3 +64,6 @@ cerradas](/diagrams/Architecture_Layered_Variation_3.svg) *Figura 4: Plantilla de layered architecture con una capa `Service Layer` abierta y las demás cerradas.* + +[^1]: Richards, M. & Ford, N. (2020). Fundamentals of Software Architecture-An + Engineering Approach. O'Reilly. \ No newline at end of file diff --git a/diagrams/Architecture_Microkernel.drawio b/diagrams/Architecture_Microkernel.drawio new file mode 100644 index 0000000..f750fb0 --- /dev/null +++ b/diagrams/Architecture_Microkernel.drawio @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/diagrams/Architecture_Microkernel.svg b/diagrams/Architecture_Microkernel.svg new file mode 100644 index 0000000..a55cbaf --- /dev/null +++ b/diagrams/Architecture_Microkernel.svg @@ -0,0 +1 @@ +
«plugin»
Plugin 1
«plugin»...
Deployment
Target
Deployment...
«plugin»
Plugin 2
«plugin»...
«core»
Core System
«core»...
«plugin»
Plugin 3
«plugin»...
«plugin»
Plugin 4
«plugin»...
deployed
deployed
deployed
deployed
deployed
deployed
deployed
deployed
deployed
deployed
Text is not SVG - cannot display
\ No newline at end of file diff --git a/diagrams/Architecture_Pipes_And_Filters.drawio b/diagrams/Architecture_Pipes_And_Filters.drawio index 4cca116..adc7681 100644 --- a/diagrams/Architecture_Pipes_And_Filters.drawio +++ b/diagrams/Architecture_Pipes_And_Filters.drawio @@ -1,123 +1,123 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + From 4807e33f1b47f04001164c60137177bda436d365 Mon Sep 17 00:00:00 2001 From: Fernando Machado Date: Wed, 26 Jun 2024 17:05:47 -0300 Subject: [PATCH 04/12] Added service-based architecture --- .../3_10_Pipes_and_Filters_Architecture.md | 6 +- .../3_12_Service_Based_Architecture.md | 26 ++++++ 3_Plantillas/3_9_Layered_Architecture.md | 2 +- diagrams/Architecture_Service_Based.drawio | 85 +++++++++++++++++++ diagrams/Architecture_Service_Based.svg | 1 + 5 files changed, 116 insertions(+), 4 deletions(-) create mode 100644 3_Plantillas/3_12_Service_Based_Architecture.md create mode 100644 diagrams/Architecture_Service_Based.drawio create mode 100644 diagrams/Architecture_Service_Based.svg diff --git a/3_Plantillas/3_10_Pipes_and_Filters_Architecture.md b/3_Plantillas/3_10_Pipes_and_Filters_Architecture.md index 8aece11..92d222b 100644 --- a/3_Plantillas/3_10_Pipes_and_Filters_Architecture.md +++ b/3_Plantillas/3_10_Pipes_and_Filters_Architecture.md @@ -17,10 +17,10 @@ típicos de filtros, usando los estereotipos `≪producer≫`, `≪transformer `≪tester≫` y `≪consumer≫` para identificarlos, con sus respectivas tuberías conectando esos filtros. -![Plantilla de la arquitectura pipes and -filters](/diagrams/Architecture_Pipes_And_Filters.svg) +![Plantilla de pipes and filters +architecture](/diagrams/Architecture_Pipes_And_Filters.svg) -*Figura 1: Plantilla de la arquitectura pipes and filters.* +*Figura 1: Plantilla de pipes and filters architecture.* [^1]: Richards, M. & Ford, N. (2020). Fundamentals of Software Architecture-An Engineering Approach. O'Reilly. diff --git a/3_Plantillas/3_12_Service_Based_Architecture.md b/3_Plantillas/3_12_Service_Based_Architecture.md new file mode 100644 index 0000000..67b472e --- /dev/null +++ b/3_Plantillas/3_12_Service_Based_Architecture.md @@ -0,0 +1,26 @@ +# 3 Plantillas + +## 3.9 Arquitectura basada en servicios + +Esta es la plantilla para una arquitectura basada en servicios o *service-based +architecture*; esta es una arquitectura distribuida. + +Esta plantilla está basada en [^1]. + +> [!NOTE] +> En esta plantilla no aparecen los componentes en cada paquete por simplicidad; +> en un diagrama de arquitectura deberían aparecer, además de los paquetes, los +> componentes en ellos. + +La figura 1, a continuación, muestra la interfaz de usuario, los servicios, y la +base de datos, desplegados en unidades de despliegue independientes. + +![Plantilla de service-based +architecture](/diagrams/Architecture_Service_Based.svg) + +*Figura 1: Plantilla de service-based architecture.* + + + +[^1]: Richards, M. & Ford, N. (2020). Fundamentals of Software Architecture-An + Engineering Approach. O'Reilly. \ No newline at end of file diff --git a/3_Plantillas/3_9_Layered_Architecture.md b/3_Plantillas/3_9_Layered_Architecture.md index cb67309..c160c59 100644 --- a/3_Plantillas/3_9_Layered_Architecture.md +++ b/3_Plantillas/3_9_Layered_Architecture.md @@ -66,4 +66,4 @@ cerradas](/diagrams/Architecture_Layered_Variation_3.svg) abierta y las demás cerradas.* [^1]: Richards, M. & Ford, N. (2020). Fundamentals of Software Architecture-An - Engineering Approach. O'Reilly. \ No newline at end of file + Engineering Approach. O'Reilly. diff --git a/diagrams/Architecture_Service_Based.drawio b/diagrams/Architecture_Service_Based.drawio new file mode 100644 index 0000000..9468d7f --- /dev/null +++ b/diagrams/Architecture_Service_Based.drawio @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/diagrams/Architecture_Service_Based.svg b/diagrams/Architecture_Service_Based.svg new file mode 100644 index 0000000..51c9a1b --- /dev/null +++ b/diagrams/Architecture_Service_Based.svg @@ -0,0 +1 @@ +
User Interface
User Interface
Service 1
Service 1
Service 2
Service 2
Database
Database
<<access>>
<<access>>
<<access>>
<<access>>
<<access>>
<<access>>
Deployment Target
Deployment Target
<<deployed>>
<<deployed>>
<<deployed>>
<<deployed>>
<<deployed>>
<<deployed>>
Deployment Target
Deployment Target
Deployment Target
Deployment Target
<<access>>
<<access>>
<<deployed>>
<<deployed>>
Deployment Target
Deployment Target
Text is not SVG - cannot display
\ No newline at end of file From d924b9d6d814991376f5d45c95e7d64afb7eab73 Mon Sep 17 00:00:00 2001 From: Fernando Machado Date: Thu, 27 Jun 2024 11:14:16 -0300 Subject: [PATCH 05/12] Added event driven architecture --- 3_Plantillas/3_11_Microkernel_Architecture.md | 2 +- .../3_12_Service_Based_Architecture.md | 4 +- .../3_13_Event_Driven_Architecture.md | 28 ++++++ diagrams/Architecture_Event_Driven.drawio | 93 +++++++++++++++++++ diagrams/Architecture_Event_Driven.svg | 1 + 5 files changed, 125 insertions(+), 3 deletions(-) create mode 100644 3_Plantillas/3_13_Event_Driven_Architecture.md create mode 100644 diagrams/Architecture_Event_Driven.drawio create mode 100644 diagrams/Architecture_Event_Driven.svg diff --git a/3_Plantillas/3_11_Microkernel_Architecture.md b/3_Plantillas/3_11_Microkernel_Architecture.md index 67ce36d..c8fdc0a 100644 --- a/3_Plantillas/3_11_Microkernel_Architecture.md +++ b/3_Plantillas/3_11_Microkernel_Architecture.md @@ -20,4 +20,4 @@ estereotipo `≪core≫` y los complementos con el estereotipo `≪plugin≫`. *Figura 1: Plantilla de microkernel architecture.* [^1]: Richards, M. & Ford, N. (2020). Fundamentals of Software Architecture-An - Engineering Approach. O'Reilly. \ No newline at end of file + Engineering Approach. O'Reilly. diff --git a/3_Plantillas/3_12_Service_Based_Architecture.md b/3_Plantillas/3_12_Service_Based_Architecture.md index 67b472e..cddf83a 100644 --- a/3_Plantillas/3_12_Service_Based_Architecture.md +++ b/3_Plantillas/3_12_Service_Based_Architecture.md @@ -1,6 +1,6 @@ # 3 Plantillas -## 3.9 Arquitectura basada en servicios +## 3.12 Arquitectura basada en servicios Esta es la plantilla para una arquitectura basada en servicios o *service-based architecture*; esta es una arquitectura distribuida. @@ -23,4 +23,4 @@ architecture](/diagrams/Architecture_Service_Based.svg) [^1]: Richards, M. & Ford, N. (2020). Fundamentals of Software Architecture-An - Engineering Approach. O'Reilly. \ No newline at end of file + Engineering Approach. O'Reilly. diff --git a/3_Plantillas/3_13_Event_Driven_Architecture.md b/3_Plantillas/3_13_Event_Driven_Architecture.md new file mode 100644 index 0000000..23f6912 --- /dev/null +++ b/3_Plantillas/3_13_Event_Driven_Architecture.md @@ -0,0 +1,28 @@ +# 3 Plantillas + +## 3.13 Arquitectura dirigida por eventos + +Esta es la plantilla para una arquitectura dirigida por eventos o *event-driven +architecture*; esta es una arquitectura distribuida. + +Esta plantilla está basada en [^1]. + +> [!NOTE] +> En esta plantilla aparecen componentes de ejemplo estereotipados; en +> un diagrama de arquitectura deberían aparecer los componentes propios del +> proyecto, usando estos mismos estereotipos. + +La figura 1, a continuación, muestra un ejemplo con el orquestador que recibe +los eventos con el +estereotipo `≪orchestrator≫` y varios procesadores de eventos con el estereotipo `≪processor≫`. + + +![Plantilla de event-driven +architecture](/diagrams/Architecture_Event_Driven.svg) + +*Figura 1: Plantilla de event-driven architecture.* + + + +[^1]: Richards, M. & Ford, N. (2020). Fundamentals of Software Architecture-An + Engineering Approach. O'Reilly. diff --git a/diagrams/Architecture_Event_Driven.drawio b/diagrams/Architecture_Event_Driven.drawio new file mode 100644 index 0000000..3037c65 --- /dev/null +++ b/diagrams/Architecture_Event_Driven.drawio @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/diagrams/Architecture_Event_Driven.svg b/diagrams/Architecture_Event_Driven.svg new file mode 100644 index 0000000..23396fd --- /dev/null +++ b/diagrams/Architecture_Event_Driven.svg @@ -0,0 +1 @@ +
«orchestrator»
Request Orchestrator
«orchestrator»...
Deployment
Target
Deployment...
«processor»
Request Processor 1
«processor»...
deployed
deployed
deployed
deployed
«processor»
Request Processor 2
«processor»...
«processor»
Request Processor 3
«processor»...
Deployment
Target
Deployment...
Deployment
Target
Deployment...
deployed
deployed
Deployment
Target
Deployment...
deployed
deployed
Text is not SVG - cannot display
\ No newline at end of file From cff181e7f4f04702d38d80e7c0de0b712022dc16 Mon Sep 17 00:00:00 2001 From: Fernando Machado Date: Thu, 27 Jun 2024 12:08:14 -0300 Subject: [PATCH 06/12] Rationalized stereotipes --- diagrams/Architecture_Event_Driven.drawio | 40 ++++++++++--------- diagrams/Architecture_Event_Driven.svg | 2 +- diagrams/Architecture_Layered.drawio | 29 ++++++++------ diagrams/Architecture_Layered.svg | 2 +- .../Architecture_Layered_Variation_1.drawio | 23 ++++++----- diagrams/Architecture_Layered_Variation_1.svg | 2 +- .../Architecture_Layered_Variation_2.drawio | 24 ++++++----- diagrams/Architecture_Layered_Variation_2.svg | 2 +- .../Architecture_Layered_Variation_3.drawio | 27 ++++++++----- diagrams/Architecture_Layered_Variation_3.svg | 2 +- diagrams/Architecture_Microkernel.drawio | 10 ++--- diagrams/Architecture_Microkernel.svg | 2 +- .../Architecture_Pipes_And_Filters.drawio | 16 ++++---- diagrams/Architecture_Pipes_And_Filters.svg | 2 +- diagrams/Architecture_Service_Based.drawio | 36 +++++++++-------- diagrams/Architecture_Service_Based.svg | 2 +- 16 files changed, 123 insertions(+), 98 deletions(-) diff --git a/diagrams/Architecture_Event_Driven.drawio b/diagrams/Architecture_Event_Driven.drawio index 3037c65..e24ed94 100644 --- a/diagrams/Architecture_Event_Driven.drawio +++ b/diagrams/Architecture_Event_Driven.drawio @@ -1,6 +1,6 @@ - + @@ -26,62 +26,66 @@
- - + + + - - + + + - + - + - + - + - + - + - - + + + - + - - + + + - + - + diff --git a/diagrams/Architecture_Event_Driven.svg b/diagrams/Architecture_Event_Driven.svg index 23396fd..92d60b6 100644 --- a/diagrams/Architecture_Event_Driven.svg +++ b/diagrams/Architecture_Event_Driven.svg @@ -1 +1 @@ -
«orchestrator»
Request Orchestrator
«orchestrator»...
Deployment
Target
Deployment...
«processor»
Request Processor 1
«processor»...
deployed
deployed
deployed
deployed
«processor»
Request Processor 2
«processor»...
«processor»
Request Processor 3
«processor»...
Deployment
Target
Deployment...
Deployment
Target
Deployment...
deployed
deployed
Deployment
Target
Deployment...
deployed
deployed
Text is not SVG - cannot display
\ No newline at end of file +
«orchestrator»
Request Orchestrator
«orchestrator»...
Deployment
Target
Deployment...
«processor»
Request Processor 1
«processor»...
«deploy»
«deploy»
«deploy»
«deploy»
«processor»
Request Processor 2
«processor»...
«processor»
Request Processor 3
«processor»...
Deployment
Target
Deployment...
Deployment
Target
Deployment...
«deploy»
«deploy»
Deployment
Target
Deployment...
«deploy»
«deploy»
Text is not SVG - cannot display
\ No newline at end of file diff --git a/diagrams/Architecture_Layered.drawio b/diagrams/Architecture_Layered.drawio index c980a57..de13dfd 100644 --- a/diagrams/Architecture_Layered.drawio +++ b/diagrams/Architecture_Layered.drawio @@ -16,49 +16,54 @@ - - + + + - - + + + - - + + + - - + + + - + - + - - + + +
diff --git a/diagrams/Architecture_Layered.svg b/diagrams/Architecture_Layered.svg index f04db58..fc19b6e 100644 --- a/diagrams/Architecture_Layered.svg +++ b/diagrams/Architecture_Layered.svg @@ -1 +1 @@ -
Presentation Layer
Presentation Layer
Business Layer
Business Layer
Persistence Layer
Persistence Layer
Database Layer
Database Layer
<<access>>
<<access>>
<<access>>
<<access>>
<<access>>
<<access>>
Deployment Target
Deployment Target
<<deployed>>
<<deployed>>
<<deployed>>
<<deployed>>
<<deployed>>
<<deployed>>
<<deployed>>
<<deployed>>
Text is not SVG - cannot display
\ No newline at end of file +
Presentation Layer
Presentation Layer
Business Layer
Business Layer
Persistence Layer
Persistence Layer
Database Layer
Database Layer
«access»
«access»
«access»
«access»
«access»
«access»
Deployment Target
Deployment Target
«deploy»
«deploy»
«deploy»
«deploy»
«deploy»
«deploy»
«deploy»
«deploy»
Text is not SVG - cannot display
\ No newline at end of file diff --git a/diagrams/Architecture_Layered_Variation_1.drawio b/diagrams/Architecture_Layered_Variation_1.drawio index 3e12248..64f7489 100644 --- a/diagrams/Architecture_Layered_Variation_1.drawio +++ b/diagrams/Architecture_Layered_Variation_1.drawio @@ -16,46 +16,49 @@ - - + + + - - + + + - - + + + - + - + - + - + diff --git a/diagrams/Architecture_Layered_Variation_1.svg b/diagrams/Architecture_Layered_Variation_1.svg index d8a9ec7..e4b4b88 100644 --- a/diagrams/Architecture_Layered_Variation_1.svg +++ b/diagrams/Architecture_Layered_Variation_1.svg @@ -1 +1 @@ -
Presentation Layer
Presentation Layer
Business Layer
Business Layer
Persistence Layer
Persistence Layer
Database Layer
Database Layer
<<access>>
<<access>>
<<access>>
<<access>>
<<access>>
<<access>>
Deployment Target
Deployment Target
<<deployed>>
<<deployed>>
<<deployed>>
<<deployed>>
<<deployed>>
<<deployed>>
<<deployed>>
<<deployed>>
Deployment Target
Deployment Target
Text is not SVG - cannot display
\ No newline at end of file +
Presentation Layer
Presentation Layer
Business Layer
Business Layer
Persistence Layer
Persistence Layer
Database Layer
Database Layer
«access»
«access»
«access»
«access»
«access»
«access»
Deployment Target
Deployment Target
«deploy»
«deploy»
«deploy»
«deploy»
«deploy»
«deploy»
«deploy»
«deploy»
Deployment Target
Deployment Target
Text is not SVG - cannot display
\ No newline at end of file diff --git a/diagrams/Architecture_Layered_Variation_2.drawio b/diagrams/Architecture_Layered_Variation_2.drawio index e5ad813..05ab36e 100644 --- a/diagrams/Architecture_Layered_Variation_2.drawio +++ b/diagrams/Architecture_Layered_Variation_2.drawio @@ -16,49 +16,53 @@ - - + + + - - + + + - - + + + - + - + - + - + + diff --git a/diagrams/Architecture_Layered_Variation_2.svg b/diagrams/Architecture_Layered_Variation_2.svg index 4b4c2ca..82b9c32 100644 --- a/diagrams/Architecture_Layered_Variation_2.svg +++ b/diagrams/Architecture_Layered_Variation_2.svg @@ -1 +1 @@ -
Presentation Layer
Presentation Layer
Business Layer
Business Layer
Persistence Layer
Persistence Layer
Database Layer
Database Layer
<<access>>
<<access>>
<<access>>
<<access>>
<<access>>
<<access>>
Deployment Target
Deployment Target
<<deployed>>
<<deployed>>
<<deployed>>
<<deployed>>
<<deployed>>
<<deployed>>
<<deployed>>
<<deployed>>
Deployment Target
Deployment Target
Deployment Target
Deployment Target
Text is not SVG - cannot display
\ No newline at end of file +
Presentation Layer
Presentation Layer
Business Layer
Business Layer
Persistence Layer
Persistence Layer
Database Layer
Database Layer
«access»
«access»
«access»
«access»
«access»
«access»
Deployment Target
Deployment Target
«deploy»
«deploy»
«deploy»
«deploy»
«deploy»
«deploy»
«deploy»
«deploy»
Deployment Target
Deployment Target
Deployment Target
Deployment Target
Text is not SVG - cannot display
\ No newline at end of file diff --git a/diagrams/Architecture_Layered_Variation_3.drawio b/diagrams/Architecture_Layered_Variation_3.drawio index 0854d15..8fb4ab1 100644 --- a/diagrams/Architecture_Layered_Variation_3.drawio +++ b/diagrams/Architecture_Layered_Variation_3.drawio @@ -16,37 +16,42 @@ - - + + + - - + + + - - + + + - + - - + + + - - + + + diff --git a/diagrams/Architecture_Layered_Variation_3.svg b/diagrams/Architecture_Layered_Variation_3.svg index 812ce81..7d1c3ec 100644 --- a/diagrams/Architecture_Layered_Variation_3.svg +++ b/diagrams/Architecture_Layered_Variation_3.svg @@ -1 +1 @@ -
<<closed>>
Presentation Layer
<<closed>>...
<<closed>>
Business Layer
<<closed>>...
<<closed>>
Persistence Layer
<<closed>>...
<<closed>>
Database Layer
<<closed>>...
<<access>>
<<access>>
<<access>>
<<access>>
<<access>>
<<access>>
<<open>>
Services Layer
<<open>>...
<<access>>
<<access>>
<<access>>
<<access>>
Text is not SVG - cannot display
\ No newline at end of file +
<<closed>>
Presentation Layer
<<closed>>...
<<closed>>
Business Layer
<<closed>>...
<<closed>>
Persistence Layer
<<closed>>...
<<closed>>
Database Layer
<<closed>>...
«access»
«access»
«access»
«access»
«access»
«access»
<<open>>
Services Layer
<<open>>...
«access»
«access»
«access»
«access»
Text is not SVG - cannot display
\ No newline at end of file diff --git a/diagrams/Architecture_Microkernel.drawio b/diagrams/Architecture_Microkernel.drawio index f750fb0..840ed80 100644 --- a/diagrams/Architecture_Microkernel.drawio +++ b/diagrams/Architecture_Microkernel.drawio @@ -59,31 +59,31 @@
- + - + - + - + - + diff --git a/diagrams/Architecture_Microkernel.svg b/diagrams/Architecture_Microkernel.svg index a55cbaf..f61193d 100644 --- a/diagrams/Architecture_Microkernel.svg +++ b/diagrams/Architecture_Microkernel.svg @@ -1 +1 @@ -
«plugin»
Plugin 1
«plugin»...
Deployment
Target
Deployment...
«plugin»
Plugin 2
«plugin»...
«core»
Core System
«core»...
«plugin»
Plugin 3
«plugin»...
«plugin»
Plugin 4
«plugin»...
deployed
deployed
deployed
deployed
deployed
deployed
deployed
deployed
deployed
deployed
Text is not SVG - cannot display
\ No newline at end of file +
«plugin»
Plugin 1
«plugin»...
Deployment
Target
Deployment...
«plugin»
Plugin 2
«plugin»...
«core»
Core System
«core»...
«plugin»
Plugin 3
«plugin»...
«plugin»
Plugin 4
«plugin»...
«deploy»
«deploy»
«deploy»
«deploy»
«deploy»
«deploy»
«deploy»
«deploy»
«deploy»
«deploy»
Text is not SVG - cannot display
\ No newline at end of file diff --git a/diagrams/Architecture_Pipes_And_Filters.drawio b/diagrams/Architecture_Pipes_And_Filters.drawio index adc7681..e524e83 100644 --- a/diagrams/Architecture_Pipes_And_Filters.drawio +++ b/diagrams/Architecture_Pipes_And_Filters.drawio @@ -1,6 +1,6 @@ - + @@ -81,43 +81,43 @@
- + - + - + - + - + - + - + diff --git a/diagrams/Architecture_Pipes_And_Filters.svg b/diagrams/Architecture_Pipes_And_Filters.svg index d11e810..ecd32d8 100644 --- a/diagrams/Architecture_Pipes_And_Filters.svg +++ b/diagrams/Architecture_Pipes_And_Filters.svg @@ -1 +1 @@ -
«producer»
Filter 1
«producer»...
Deployment
Target
Deployment...
«pipe»
Pipe 1
«pipe»...
«transformer»
Filter 2
«transformer»...
«pipe»
Pipe 2
«pipe»...
«tester»
Filter 3
«tester»...
«pipe»
Pipe 3
«pipe»...
«consumer»
Filter 4
«consumer»...
deployed
deployed
deployed
deployed
deployed
deployed
deployed
deployed
deployed
deployed
deployed
deployed
deployed
deployed
Text is not SVG - cannot display
\ No newline at end of file +
«producer»
Filter 1
«producer»...
Deployment
Target
Deployment...
«pipe»
Pipe 1
«pipe»...
«transformer»
Filter 2
«transformer»...
«pipe»
Pipe 2
«pipe»...
«tester»
Filter 3
«tester»...
«pipe»
Pipe 3
«pipe»...
«consumer»
Filter 4
«consumer»...
«deploy»
«deploy»
«deploy»
«deploy»
«deploy»
«deploy»
«deploy»
«deploy»
«deploy»
«deploy»
«deploy»
«deploy»
«deploy»
«deploy»
Text is not SVG - cannot display
\ No newline at end of file diff --git a/diagrams/Architecture_Service_Based.drawio b/diagrams/Architecture_Service_Based.drawio index 9468d7f..0cf1609 100644 --- a/diagrams/Architecture_Service_Based.drawio +++ b/diagrams/Architecture_Service_Based.drawio @@ -1,6 +1,6 @@ - + @@ -16,34 +16,37 @@ - - + + + - - + + + - - + + + - + - + @@ -52,31 +55,32 @@ - + - + - + - - + + + - + - + diff --git a/diagrams/Architecture_Service_Based.svg b/diagrams/Architecture_Service_Based.svg index 51c9a1b..555b3d5 100644 --- a/diagrams/Architecture_Service_Based.svg +++ b/diagrams/Architecture_Service_Based.svg @@ -1 +1 @@ -
User Interface
User Interface
Service 1
Service 1
Service 2
Service 2
Database
Database
<<access>>
<<access>>
<<access>>
<<access>>
<<access>>
<<access>>
Deployment Target
Deployment Target
<<deployed>>
<<deployed>>
<<deployed>>
<<deployed>>
<<deployed>>
<<deployed>>
Deployment Target
Deployment Target
Deployment Target
Deployment Target
<<access>>
<<access>>
<<deployed>>
<<deployed>>
Deployment Target
Deployment Target
Text is not SVG - cannot display
\ No newline at end of file +
User Interface
User Interface
Service 1
Service 1
Service 2
Service 2
Database
Database
«access»
«access»
«access»
«access»
«access»
«access»
Deployment Target
Deployment Target
«deploy»
«deploy»
«deploy»
«deploy»
«deploy»
«deploy»
Deployment Target
Deployment Target
Deployment Target
Deployment Target
«access»
«access»
«deploy»
«deploy»
Deployment Target
Deployment Target
Text is not SVG - cannot display
\ No newline at end of file From c6ea33534c58691b27bd98e1582457cb7b64f035 Mon Sep 17 00:00:00 2001 From: Fernando Machado Date: Thu, 27 Jun 2024 12:13:29 -0300 Subject: [PATCH 07/12] Added brief descriptions --- 3_Plantillas/3_10_Pipes_and_Filters_Architecture.md | 7 +++++++ 3_Plantillas/3_11_Microkernel_Architecture.md | 4 ++++ 3_Plantillas/3_12_Service_Based_Architecture.md | 5 +++++ 3_Plantillas/3_13_Event_Driven_Architecture.md | 5 +++++ 3_Plantillas/3_9_Layered_Architecture.md | 4 ++++ 5 files changed, 25 insertions(+) diff --git a/3_Plantillas/3_10_Pipes_and_Filters_Architecture.md b/3_Plantillas/3_10_Pipes_and_Filters_Architecture.md index 92d222b..535f074 100644 --- a/3_Plantillas/3_10_Pipes_and_Filters_Architecture.md +++ b/3_Plantillas/3_10_Pipes_and_Filters_Architecture.md @@ -7,6 +7,13 @@ filters*; esta es una arquitectura monolítica. Esta plantilla está basada en [^1]. +Tiene entidades independientes llamadas filtros —*filters*— que realizan +transformaciones en los datos y procesan la entrada que reciben, y tuberías +—*pipes*— que sirven como conectores para el flujo de datos que se está +transformando. Transforma datos, desde la entrada hasta la salida. Es deseable +crear estas partes como componentes independientes y reutilizables. + + > [!NOTE] > En esta plantilla aparecen componentes de ejemplo estereotipados; en > un diagrama de arquitectura deberían aparecer los componentes propios del diff --git a/3_Plantillas/3_11_Microkernel_Architecture.md b/3_Plantillas/3_11_Microkernel_Architecture.md index c8fdc0a..a168101 100644 --- a/3_Plantillas/3_11_Microkernel_Architecture.md +++ b/3_Plantillas/3_11_Microkernel_Architecture.md @@ -7,6 +7,10 @@ architecture*; esta es una arquitectura monolítica. Esta plantilla está basada en [^1]. +Este estilo de arquitectura es adecuado para aplicaciones basadas en productos +—empaquetadas y disponibles para su descarga e instalación como una única +implementación monolítica, generalmente instalada en el sitio del cliente—. + > [!NOTE] > En esta plantilla aparecen componentes de ejemplo estereotipados; en > un diagrama de arquitectura deberían aparecer los componentes propios del diff --git a/3_Plantillas/3_12_Service_Based_Architecture.md b/3_Plantillas/3_12_Service_Based_Architecture.md index cddf83a..dbff8ab 100644 --- a/3_Plantillas/3_12_Service_Based_Architecture.md +++ b/3_Plantillas/3_12_Service_Based_Architecture.md @@ -7,6 +7,11 @@ architecture*; esta es una arquitectura distribuida. Esta plantilla está basada en [^1]. +Aunque la arquitectura basada en servicios es una arquitectura distribuida, no +tiene el mismo nivel de complejidad y costo que otras arquitecturas +distribuidas, como los microservicios o la arquitectura orientada a eventos. + + > [!NOTE] > En esta plantilla no aparecen los componentes en cada paquete por simplicidad; > en un diagrama de arquitectura deberían aparecer, además de los paquetes, los diff --git a/3_Plantillas/3_13_Event_Driven_Architecture.md b/3_Plantillas/3_13_Event_Driven_Architecture.md index 23f6912..4222851 100644 --- a/3_Plantillas/3_13_Event_Driven_Architecture.md +++ b/3_Plantillas/3_13_Event_Driven_Architecture.md @@ -7,6 +7,11 @@ architecture*; esta es una arquitectura distribuida. Esta plantilla está basada en [^1]. +El estilo de arquitectura orientada a eventos es ampliamente utilizado para +crear aplicaciones altamente escalables y de alto rendimiento. Se basa en +componentes de procesamiento de eventos que operan de manera independiente y +procesan eventos de forma asíncrona. + > [!NOTE] > En esta plantilla aparecen componentes de ejemplo estereotipados; en > un diagrama de arquitectura deberían aparecer los componentes propios del diff --git a/3_Plantillas/3_9_Layered_Architecture.md b/3_Plantillas/3_9_Layered_Architecture.md index c160c59..7c5f01d 100644 --- a/3_Plantillas/3_9_Layered_Architecture.md +++ b/3_Plantillas/3_9_Layered_Architecture.md @@ -7,6 +7,10 @@ esta es una arquitectura monolítica. Esta plantilla está basada en [^1]. +La arquitectura en capas es uno de los estilos de arquitectura más comunes. Es +la elección predeterminada para muchas aplicaciones debido a su simplicidad, +familiaridad y bajo costo. + > [!NOTE] > En esta plantilla no aparecen los componentes en cada capa por simplicidad; en > un diagrama de arquitectura deberían aparecer, además de las capas, los From 3b34cdcb0459f57d1463d580c9591e5f9a9770c8 Mon Sep 17 00:00:00 2001 From: Fernando Machado Date: Thu, 27 Jun 2024 13:53:08 -0300 Subject: [PATCH 08/12] Added space based architecture --- .../3_12_Service_Based_Architecture.md | 1 - .../3_13_Event_Driven_Architecture.md | 5 +- 3_Plantillas/3_14_Space_Based_Architecture.md | 71 +++++ diagrams/Architecture_Space_Based.drawio | 265 ++++++++++++++++++ diagrams/Architecture_Space_Based.svg | 1 + 5 files changed, 339 insertions(+), 4 deletions(-) create mode 100644 3_Plantillas/3_14_Space_Based_Architecture.md create mode 100644 diagrams/Architecture_Space_Based.drawio create mode 100644 diagrams/Architecture_Space_Based.svg diff --git a/3_Plantillas/3_12_Service_Based_Architecture.md b/3_Plantillas/3_12_Service_Based_Architecture.md index dbff8ab..e904da0 100644 --- a/3_Plantillas/3_12_Service_Based_Architecture.md +++ b/3_Plantillas/3_12_Service_Based_Architecture.md @@ -11,7 +11,6 @@ Aunque la arquitectura basada en servicios es una arquitectura distribuida, no tiene el mismo nivel de complejidad y costo que otras arquitecturas distribuidas, como los microservicios o la arquitectura orientada a eventos. - > [!NOTE] > En esta plantilla no aparecen los componentes en cada paquete por simplicidad; > en un diagrama de arquitectura deberían aparecer, además de los paquetes, los diff --git a/3_Plantillas/3_13_Event_Driven_Architecture.md b/3_Plantillas/3_13_Event_Driven_Architecture.md index 4222851..70cce7d 100644 --- a/3_Plantillas/3_13_Event_Driven_Architecture.md +++ b/3_Plantillas/3_13_Event_Driven_Architecture.md @@ -18,9 +18,8 @@ procesan eventos de forma asíncrona. > proyecto, usando estos mismos estereotipos. La figura 1, a continuación, muestra un ejemplo con el orquestador que recibe -los eventos con el -estereotipo `≪orchestrator≫` y varios procesadores de eventos con el estereotipo `≪processor≫`. - +los eventos con el estereotipo `≪orchestrator≫` y varios procesadores de eventos +con el estereotipo `≪processor≫`. ![Plantilla de event-driven architecture](/diagrams/Architecture_Event_Driven.svg) diff --git a/3_Plantillas/3_14_Space_Based_Architecture.md b/3_Plantillas/3_14_Space_Based_Architecture.md new file mode 100644 index 0000000..72d91a5 --- /dev/null +++ b/3_Plantillas/3_14_Space_Based_Architecture.md @@ -0,0 +1,71 @@ +# 3 Plantillas + +## 3.13 Arquitectura basada en espacios + +Esta es la plantilla para una arquitectura basada en espacios o *space-based +architecture*; esta es una arquitectura distribuida. + +Esta plantilla está basada en [^1]. + +Con este estilo de arquitectura se logra alta escalabilidad, elasticidad y +rendimiento al eliminar la base de datos central como limitación sincrónica en +el sistema. En su lugar, se utilizan redes replicadas de datos en memoria. Los +datos de la aplicación se mantienen en memoria y se replican entre las unidades +de procesamiento activas. + +Las actualizaciones de datos se envían de manera asíncrona a la base de datos a +través de colas persistentes. Las unidades de procesamiento se inician y +detienen según la carga del usuario, logrando una escalabilidad variable. + +Al no depender de una base de datos central en el procesamiento transaccional +estándar, se elimina el cuello de botella de la base de datos, permitiendo una +escalabilidad casi infinita en la aplicación. + +> [!NOTE] +> En esta plantilla aparecen componentes de ejemplo estereotipados; en +> un diagrama de arquitectura deberían aparecer los componentes propios del +> proyecto, usando estos mismos estereotipos. + +En la figura 1, a continuación, aparecen los siguientes elementos: + +* `Processing Units` son nodos que tienen la lógica de la aplicación que en la + plantilla se muestra como el componente `Application Logic` estereotipado como + `≪service≫`; además de la lógica de la aplicación estos nodos contienen datos + en memoria en el componente `In Memory Data Grid` estereotipado como `≪cache≫` + y un motor de replicación de datos `Data Replication Engine` estereotipado + como `≪engine≫`. Estos nodos pueden ser iniciados a demanda para escalar la + aplicación. + +* `Virtualized Middleware` es el nodo que alberga la infraestructura que + controla varios aspectos de esta arquitectura: el componente `Messaging Grid` + estereotipado como `≪proxy≫` recibe los eventos y los direcciona al nodo de + procesamiento adecuado; además maneja la sesión. El componente `Data Grid` + estereotipado como `≪cache≫` se encarga de sincronizar los componentes `In + Memory Data Grid` de los nodos de procesamiento, en caso de que esos caché no + se sincronicen entre sí —por eso es opcional—. El componente `Processing Grid` + estereotipado como `≪orchestrator≫` es encargado de orquestar el procesamiento + de eventos entre varios nodos de procesamiento si fuera necesario —por es es + opcional—. El componente `Deployment Manager` estereotipado como `≪agent≫` + monitorea los nodos de procesamiento e inicia —o detiene— instancias de estos + nodos si fuera necesario. + +* El componente `Write Data Pump` es una cola —por eso está estereotipado con + `≪queue≫`— utilizada como buffer para enviar pedidos de escritura al + componente `Data Writer`; este último es el encargado de escribir realmente en + la base de datos. + +* El componente `Read Request` es también una cola —por eso también está + estereotipado con `≪queue≫`— utilizada como buffer para recibir pedidos de + lectura consumidos por el componente `Data Reader`; este último es el + encargado de leer desde la base de datos y poner el resultado en otra cola + `Reverse Data Pump`. + +![Plantilla de space-based +architecture](/diagrams/Architecture_Space_Based.svg) + +*Figura 1: Plantilla de space-based architecture.* + + + +[^1]: Richards, M. & Ford, N. (2020). Fundamentals of Software Architecture-An + Engineering Approach. O'Reilly. diff --git a/diagrams/Architecture_Space_Based.drawio b/diagrams/Architecture_Space_Based.drawio new file mode 100644 index 0000000..5f31c3f --- /dev/null +++ b/diagrams/Architecture_Space_Based.drawio @@ -0,0 +1,265 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/diagrams/Architecture_Space_Based.svg b/diagrams/Architecture_Space_Based.svg new file mode 100644 index 0000000..5b93751 --- /dev/null +++ b/diagrams/Architecture_Space_Based.svg @@ -0,0 +1 @@ +
«service»
Application Logic
«service»...
Processing
Unit
Processing...
«proxy»
Messaging Grid
«proxy»...
«cache»
In Memory Data Grid
«cache»...
«agent»
Deployment Manager
«agent»...
«deploy»
«deploy»
«deploy»
«deploy»
«deploy»
«deploy»
«deploy»
«deploy»
«driver»
Data Replication Engine
«driver»...
Virtualized
Middleware
Virtualized...
«cache»
In Memory Data Grid
«cache»...
Optional
Optional
«orchestrator»
Processing Grid
«orchestrator»...
«deploy»
«deploy»
«deploy»
«deploy»
«deploy»
«deploy»
«deploy»
«deploy»
Processing
Unit
Processing...
Processing
Unit
Processing...
«queue»
Write Data Pump
«queue»...
«data writer»
Data Writer
«data writer»...
«data reader»
Data Reader
«data reader»...
«queue»
Read Requests
«queue»...
«queue»
Reverse Data Pump
«queue»...
read request
read request
read request
read request
read response
read response
read response
read response
write request
write request
write request
write request
Database
Database
Text is not SVG - cannot display
\ No newline at end of file From 862cde48957ccead09a3148b37d28227fcf2c40b Mon Sep 17 00:00:00 2001 From: Fernando Machado Date: Thu, 27 Jun 2024 14:34:48 -0300 Subject: [PATCH 09/12] Added orchestration-driven service-oriented architecture --- ...on_Driven_Service_Oriented_Architecture.md | 22 ++ ...chestration_Driven_Service_Oriented.drawio | 222 ++++++++++++++++++ ..._Orchestration_Driven_Service_Oriented.svg | 1 + 3 files changed, 245 insertions(+) create mode 100644 3_Plantillas/3_15_Orchestration_Driven_Service_Oriented_Architecture.md create mode 100644 diagrams/Architecture_Orchestration_Driven_Service_Oriented.drawio create mode 100644 diagrams/Architecture_Orchestration_Driven_Service_Oriented.svg diff --git a/3_Plantillas/3_15_Orchestration_Driven_Service_Oriented_Architecture.md b/3_Plantillas/3_15_Orchestration_Driven_Service_Oriented_Architecture.md new file mode 100644 index 0000000..b5285c2 --- /dev/null +++ b/3_Plantillas/3_15_Orchestration_Driven_Service_Oriented_Architecture.md @@ -0,0 +1,22 @@ +# 3 Plantillas + +## 3.13 Arquitectura orientada a servicios dirigida por la orquestación + +Esta es la plantilla para una arquitectura orientada a servicios dirigida por la +orquestación u *orchestration-driven service-oriented architecture*; esta es una +arquitectura distribuida. + +Esta plantilla está basada en [^1]. + +Este estilo de arquitectura orientada a servicios surgió justo cuando las +empresas estaban convirtiéndose en grandes corporaciones a finales de la década +de 1990: fusionándose con empresas más pequeñas, creciendo a un ritmo +vertiginoso y requiriendo de soluciones tecnológicas más sofisticadas para +acomodar este crecimiento. + +![Plantilla de orchestration-driven service-oriented](/diagrams/Architecture_Orchestration_Driven_Service_Oriented.svg) + +*Figura 1: Plantilla de orchestration-driven service-oriented architecture.* + +[^1]: Richards, M. & Ford, N. (2020). Fundamentals of Software Architecture-An + Engineering Approach. O'Reilly. diff --git a/diagrams/Architecture_Orchestration_Driven_Service_Oriented.drawio b/diagrams/Architecture_Orchestration_Driven_Service_Oriented.drawio new file mode 100644 index 0000000..4a143b6 --- /dev/null +++ b/diagrams/Architecture_Orchestration_Driven_Service_Oriented.drawio @@ -0,0 +1,222 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/diagrams/Architecture_Orchestration_Driven_Service_Oriented.svg b/diagrams/Architecture_Orchestration_Driven_Service_Oriented.svg new file mode 100644 index 0000000..6182dd7 --- /dev/null +++ b/diagrams/Architecture_Orchestration_Driven_Service_Oriented.svg @@ -0,0 +1 @@ +
Business Services
Business Services
«service»
Business
Service 2
«service»...
«service»
Business
Service 1
«service»...
«service»
Business
Service 3
«service»...
«service»
Business
Service 4
«service»...
Enterprise Service Bus
Enterprise Service Bus
Orchestration Engine
Orchestration Engine
Integration Hub
Integration Hub
Enterprise Services
Enterprise Services
«service»
Enterprise
Service 1
«service»...
«service»
Enterprise
Service 2
«service»...
«service»
Enterprise
Service 3
«service»...
«service»
Enterprise
Service 4
«service»...
Application Services
Application Services
«service»
Application
Service 1
«service»...
«service»
Application
Service 2
«service»...
Infrastructure Services
Infrastructure Services
«service»
Infrastructure
Service 1
«service»...
«service»
Infrastructure
Service 2
«service»...
Text is not SVG - cannot display
\ No newline at end of file From e10dc679b99b8c89769cee95f18dd3ef2366df90 Mon Sep 17 00:00:00 2001 From: Fernando Machado Date: Fri, 28 Jun 2024 10:55:12 -0300 Subject: [PATCH 10/12] Added microservices architecture --- .../3_16_Microservice_Architecture.md | 32 ++++ diagrams/Architecture_Microservices.drawio | 142 ++++++++++++++++++ diagrams/Architecture_Microservices.svg | 1 + .../Architecture_Microservices_Sidecar.drawio | 76 ++++++++++ .../Architecture_Microservices_Sidecar.svg | 1 + 5 files changed, 252 insertions(+) create mode 100644 3_Plantillas/3_16_Microservice_Architecture.md create mode 100644 diagrams/Architecture_Microservices.drawio create mode 100644 diagrams/Architecture_Microservices.svg create mode 100644 diagrams/Architecture_Microservices_Sidecar.drawio create mode 100644 diagrams/Architecture_Microservices_Sidecar.svg diff --git a/3_Plantillas/3_16_Microservice_Architecture.md b/3_Plantillas/3_16_Microservice_Architecture.md new file mode 100644 index 0000000..fb95b60 --- /dev/null +++ b/3_Plantillas/3_16_Microservice_Architecture.md @@ -0,0 +1,32 @@ +# 3 Plantillas + +## 3.13 Arquitectura de microservicios + +Esta es la plantilla para una arquitectura de microservicios o *microservices +architecture*; esta es una arquitectura distribuida. + +Esta plantilla está basada en [^1]. + +En este estilo de arquitectura cada servicio opera como una unidad separada con +su propia base de datos y demás recursos. Estos servicios se comunican entre sí +a través de API bien definidas, generalmente mediante protocolos ligeros como +HTTP o colas de mensajes. + +Esta comunicación desacoplada permite que los servicios evolucionen y escalen de +manera independiente sin afectar a la aplicación completa. + +![Plantilla de estilo microservices +architecture](/diagrams/Architecture_Microservices.svg) + +*Figura 1: Plantilla de estilo microservices architecture.* + +Cada servicio suele implementar el patrón +[Sidecar](https://learn.microsoft.com/en-us/azure/architecture/patterns/sidecar) +tal como se muestra en la figura 2, a continuación: + +![Sidecar](/diagrams/Architecture_Microservices_Sidecar.svg) + +*Figura 2: Sidecar.* + +[^1]: Richards, M. & Ford, N. (2020). Fundamentals of Software Architecture-An + Engineering Approach. O'Reilly. diff --git a/diagrams/Architecture_Microservices.drawio b/diagrams/Architecture_Microservices.drawio new file mode 100644 index 0000000..e3ad0c3 --- /dev/null +++ b/diagrams/Architecture_Microservices.drawio @@ -0,0 +1,142 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/diagrams/Architecture_Microservices.svg b/diagrams/Architecture_Microservices.svg new file mode 100644 index 0000000..c22dc1d --- /dev/null +++ b/diagrams/Architecture_Microservices.svg @@ -0,0 +1 @@ +
Deployment Target
Deployment Target
«service»
Service 1
«service»...
Database
Database
Deployment Target
Deployment Target
«service»
Service 2
«service»...
Database
Database
Deployment Target
Deployment Target
«service»
Service 3
«service»...
Database
Database
Deployment Target
Deployment Target
«service»
Service 4
«service»...
Database
Database
«queue»
Messaging Queue
«queue»...
API Layer
API Layer
Client
Client
Text is not SVG - cannot display
\ No newline at end of file diff --git a/diagrams/Architecture_Microservices_Sidecar.drawio b/diagrams/Architecture_Microservices_Sidecar.drawio new file mode 100644 index 0000000..c5cd9e3 --- /dev/null +++ b/diagrams/Architecture_Microservices_Sidecar.drawio @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/diagrams/Architecture_Microservices_Sidecar.svg b/diagrams/Architecture_Microservices_Sidecar.svg new file mode 100644 index 0000000..35f667b --- /dev/null +++ b/diagrams/Architecture_Microservices_Sidecar.svg @@ -0,0 +1 @@ +
Deployment Target
Deployment Target
«service»
Service 1
«service»...
Sidecar
Sidecar
«component»
Logging
«component»...
«component»
Monitoring
«component»...
«component»
Configuration
«component»...
«component»
Circuit Breaker
«component»...
Database
Database
Text is not SVG - cannot display
\ No newline at end of file From adbebd7d3453b86b85751ede48b02c4627033b56 Mon Sep 17 00:00:00 2001 From: Fernando Machado Date: Fri, 28 Jun 2024 11:42:06 -0300 Subject: [PATCH 11/12] Standarized wording --- .../3_10_Pipes_and_Filters_Architecture.md | 11 +++-- 3_Plantillas/3_11_Microkernel_Architecture.md | 10 ++--- .../3_12_Service_Based_Architecture.md | 11 +++-- .../3_13_Event_Driven_Architecture.md | 13 +++--- 3_Plantillas/3_14_Space_Based_Architecture.md | 11 +++-- ...on_Driven_Service_Oriented_Architecture.md | 13 +++--- .../3_16_Microservice_Architecture.md | 11 +++-- 3_Plantillas/3_9_Layered_Architecture.md | 43 ++++++++++--------- 8 files changed, 60 insertions(+), 63 deletions(-) diff --git a/3_Plantillas/3_10_Pipes_and_Filters_Architecture.md b/3_Plantillas/3_10_Pipes_and_Filters_Architecture.md index 535f074..343eb21 100644 --- a/3_Plantillas/3_10_Pipes_and_Filters_Architecture.md +++ b/3_Plantillas/3_10_Pipes_and_Filters_Architecture.md @@ -1,9 +1,9 @@ # Plantillas -## 3.10 Arquitectura tuberías y filtros +## 3.10 Estilo de arquitectura tuberías y filtros -Esta es la plantilla para una arquitectura tuberías y filtros o *pipes and -filters*; esta es una arquitectura monolítica. +Esta es la plantilla para un estilo de arquitectura tuberías y filtros o *pipes +and filters*; este es un estilo de arquitectura monolítica. Esta plantilla está basada en [^1]. @@ -13,7 +13,6 @@ transformaciones en los datos y procesan la entrada que reciben, y tuberías transformando. Transforma datos, desde la entrada hasta la salida. Es deseable crear estas partes como componentes independientes y reutilizables. - > [!NOTE] > En esta plantilla aparecen componentes de ejemplo estereotipados; en > un diagrama de arquitectura deberían aparecer los componentes propios del @@ -24,10 +23,10 @@ típicos de filtros, usando los estereotipos `≪producer≫`, `≪transformer `≪tester≫` y `≪consumer≫` para identificarlos, con sus respectivas tuberías conectando esos filtros. -![Plantilla de pipes and filters +![Estilo pipes and filters architecture](/diagrams/Architecture_Pipes_And_Filters.svg) -*Figura 1: Plantilla de pipes and filters architecture.* +*Figura 1: Estilo pipes and filters architecture.* [^1]: Richards, M. & Ford, N. (2020). Fundamentals of Software Architecture-An Engineering Approach. O'Reilly. diff --git a/3_Plantillas/3_11_Microkernel_Architecture.md b/3_Plantillas/3_11_Microkernel_Architecture.md index a168101..9390303 100644 --- a/3_Plantillas/3_11_Microkernel_Architecture.md +++ b/3_Plantillas/3_11_Microkernel_Architecture.md @@ -1,9 +1,9 @@ # 3 Plantillas -## 3.11 Arquitectura micro kernel +## 3.11 Estilo de arquitectura micro kernel -Esta es la plantilla para una arquitectura micronúcleo o *microkernel -architecture*; esta es una arquitectura monolítica. +Esta es la plantilla para un estilo de arquitectura micronúcleo o *microkernel +architecture*; esta es un estilo de arquitectura monolítica. Esta plantilla está basada en [^1]. @@ -19,9 +19,9 @@ implementación monolítica, generalmente instalada en el sitio del cliente—. La figura 1, a continuación, muestra un ejemplo con el núcleo del sistema con el estereotipo `≪core≫` y los complementos con el estereotipo `≪plugin≫`. -![Plantilla de microkernel architecture](/diagrams/Architecture_Microkernel.svg) +![Estilo microkernel architecture](/diagrams/Architecture_Microkernel.svg) -*Figura 1: Plantilla de microkernel architecture.* +*Figura 1: Estilo microkernel architecture.* [^1]: Richards, M. & Ford, N. (2020). Fundamentals of Software Architecture-An Engineering Approach. O'Reilly. diff --git a/3_Plantillas/3_12_Service_Based_Architecture.md b/3_Plantillas/3_12_Service_Based_Architecture.md index e904da0..968b7a6 100644 --- a/3_Plantillas/3_12_Service_Based_Architecture.md +++ b/3_Plantillas/3_12_Service_Based_Architecture.md @@ -1,9 +1,9 @@ # 3 Plantillas -## 3.12 Arquitectura basada en servicios +## 3.12 Estilo de arquitectura basada en servicios -Esta es la plantilla para una arquitectura basada en servicios o *service-based -architecture*; esta es una arquitectura distribuida. +Esta es la plantilla para un estilo de arquitectura basada en servicios o +*service-based architecture*; este es un estilo de arquitectura distribuida. Esta plantilla está basada en [^1]. @@ -19,10 +19,9 @@ distribuidas, como los microservicios o la arquitectura orientada a eventos. La figura 1, a continuación, muestra la interfaz de usuario, los servicios, y la base de datos, desplegados en unidades de despliegue independientes. -![Plantilla de service-based -architecture](/diagrams/Architecture_Service_Based.svg) +![Estilo service-based architecture](/diagrams/Architecture_Service_Based.svg) -*Figura 1: Plantilla de service-based architecture.* +*Figura 1: Estilo service-based architecture.* diff --git a/3_Plantillas/3_13_Event_Driven_Architecture.md b/3_Plantillas/3_13_Event_Driven_Architecture.md index 70cce7d..b83d3d0 100644 --- a/3_Plantillas/3_13_Event_Driven_Architecture.md +++ b/3_Plantillas/3_13_Event_Driven_Architecture.md @@ -1,13 +1,13 @@ # 3 Plantillas -## 3.13 Arquitectura dirigida por eventos +## 3.13 Estilo de arquitectura dirigida por eventos -Esta es la plantilla para una arquitectura dirigida por eventos o *event-driven -architecture*; esta es una arquitectura distribuida. +Esta es la plantilla para un estilo de arquitectura dirigida por eventos o +*event-driven architecture*; este es un estilo de arquitectura distribuida. Esta plantilla está basada en [^1]. -El estilo de arquitectura orientada a eventos es ampliamente utilizado para +El estilo de arquitectura dirigida por eventos es ampliamente utilizado para crear aplicaciones altamente escalables y de alto rendimiento. Se basa en componentes de procesamiento de eventos que operan de manera independiente y procesan eventos de forma asíncrona. @@ -21,10 +21,9 @@ La figura 1, a continuación, muestra un ejemplo con el orquestador que recibe los eventos con el estereotipo `≪orchestrator≫` y varios procesadores de eventos con el estereotipo `≪processor≫`. -![Plantilla de event-driven -architecture](/diagrams/Architecture_Event_Driven.svg) +![Estilo event-driven architecture](/diagrams/Architecture_Event_Driven.svg) -*Figura 1: Plantilla de event-driven architecture.* +*Figura 1: Estilo event-driven architecture.* diff --git a/3_Plantillas/3_14_Space_Based_Architecture.md b/3_Plantillas/3_14_Space_Based_Architecture.md index 72d91a5..3776dff 100644 --- a/3_Plantillas/3_14_Space_Based_Architecture.md +++ b/3_Plantillas/3_14_Space_Based_Architecture.md @@ -1,9 +1,9 @@ # 3 Plantillas -## 3.13 Arquitectura basada en espacios +## 3.13 Estilo de arquitectura basada en espacios -Esta es la plantilla para una arquitectura basada en espacios o *space-based -architecture*; esta es una arquitectura distribuida. +Esta es la plantilla para un estilo de arquitectura basada en espacios o +*space-based architecture*; este es un estilo de arquitectura distribuida. Esta plantilla está basada en [^1]. @@ -60,10 +60,9 @@ En la figura 1, a continuación, aparecen los siguientes elementos: encargado de leer desde la base de datos y poner el resultado en otra cola `Reverse Data Pump`. -![Plantilla de space-based -architecture](/diagrams/Architecture_Space_Based.svg) +![Estilo space-based architecture](/diagrams/Architecture_Space_Based.svg) -*Figura 1: Plantilla de space-based architecture.* +*Figura 1: Estilo space-based architecture.* diff --git a/3_Plantillas/3_15_Orchestration_Driven_Service_Oriented_Architecture.md b/3_Plantillas/3_15_Orchestration_Driven_Service_Oriented_Architecture.md index b5285c2..4a3468b 100644 --- a/3_Plantillas/3_15_Orchestration_Driven_Service_Oriented_Architecture.md +++ b/3_Plantillas/3_15_Orchestration_Driven_Service_Oriented_Architecture.md @@ -1,10 +1,10 @@ # 3 Plantillas -## 3.13 Arquitectura orientada a servicios dirigida por la orquestación +## 3.13 Estilo de arquitectura orientada a servicios dirigida por la orquestación -Esta es la plantilla para una arquitectura orientada a servicios dirigida por la -orquestación u *orchestration-driven service-oriented architecture*; esta es una -arquitectura distribuida. +Esta es la plantilla para un estilo de arquitectura orientada a servicios +dirigida por la orquestación u *orchestration-driven service-oriented +architecture*; este es un estilo de arquitectura distribuida. Esta plantilla está basada en [^1]. @@ -14,9 +14,10 @@ de 1990: fusionándose con empresas más pequeñas, creciendo a un ritmo vertiginoso y requiriendo de soluciones tecnológicas más sofisticadas para acomodar este crecimiento. -![Plantilla de orchestration-driven service-oriented](/diagrams/Architecture_Orchestration_Driven_Service_Oriented.svg) +![Estilo orchestration-driven +service-oriented](/diagrams/Architecture_Orchestration_Driven_Service_Oriented.svg) -*Figura 1: Plantilla de orchestration-driven service-oriented architecture.* +*Figura 1: Estilo orchestration-driven service-oriented architecture.* [^1]: Richards, M. & Ford, N. (2020). Fundamentals of Software Architecture-An Engineering Approach. O'Reilly. diff --git a/3_Plantillas/3_16_Microservice_Architecture.md b/3_Plantillas/3_16_Microservice_Architecture.md index fb95b60..e80346b 100644 --- a/3_Plantillas/3_16_Microservice_Architecture.md +++ b/3_Plantillas/3_16_Microservice_Architecture.md @@ -1,9 +1,9 @@ # 3 Plantillas -## 3.13 Arquitectura de microservicios +## 3.13 Estilo de arquitectura de microservicios -Esta es la plantilla para una arquitectura de microservicios o *microservices -architecture*; esta es una arquitectura distribuida. +Esta es la plantilla para un estilo de arquitectura de microservicios o +*microservices architecture*; este es un estilo de arquitectura distribuida. Esta plantilla está basada en [^1]. @@ -15,10 +15,9 @@ HTTP o colas de mensajes. Esta comunicación desacoplada permite que los servicios evolucionen y escalen de manera independiente sin afectar a la aplicación completa. -![Plantilla de estilo microservices -architecture](/diagrams/Architecture_Microservices.svg) +![Estilo microservices architecture](/diagrams/Architecture_Microservices.svg) -*Figura 1: Plantilla de estilo microservices architecture.* +*Figura 1: Estilo microservices architecture.* Cada servicio suele implementar el patrón [Sidecar](https://learn.microsoft.com/en-us/azure/architecture/patterns/sidecar) diff --git a/3_Plantillas/3_9_Layered_Architecture.md b/3_Plantillas/3_9_Layered_Architecture.md index 7c5f01d..b0d0818 100644 --- a/3_Plantillas/3_9_Layered_Architecture.md +++ b/3_Plantillas/3_9_Layered_Architecture.md @@ -1,15 +1,15 @@ # 3 Plantillas -## 3.9 Arquitectura en capas +## 3.9 Estilo de arquitectura en capas -Esta es la plantilla para una arquitectura en capas o *layered architecture*; -esta es una arquitectura monolítica. +Esta es la plantilla para un estilo de arquitectura en capas o *layered +architecture*; este es un estilo de arquitectura monolítica. Esta plantilla está basada en [^1]. -La arquitectura en capas es uno de los estilos de arquitectura más comunes. Es -la elección predeterminada para muchas aplicaciones debido a su simplicidad, -familiaridad y bajo costo. +El estilo de arquitectura en capas es uno de los estilos de arquitectura más +comunes. Es la elección predeterminada para muchas aplicaciones debido a su +simplicidad, familiaridad y bajo costo. > [!NOTE] > En esta plantilla no aparecen los componentes en cada capa por simplicidad; en @@ -18,12 +18,13 @@ familiaridad y bajo costo. La figura 1, a continuación, combina las capas `Presentation Layer`, `Business Layer`, `Persistence Layer` y `Database Layer` en una sola unidad de despliegue; -por ejemplo, una aplicación de escritorio con una base embebida o en memoria. +por ejemplo, una aplicación de escritorio con una base de datos embebida o en +memoria. -![Plantilla de layered architecture desplegada en una sola +![Plantilla del estilo layered architecture desplegada en una sola unidad de despliegue](/diagrams/Architecture_Layered.svg) -*Figura 1: Plantilla de layered architecture desplegada en una sola unidad de +*Figura 1: Plantilla del estilo layered architecture desplegada en una sola unidad de despliegue.* La figura 2, a continuación, muestra una variante de despliegue donde la capa @@ -31,12 +32,12 @@ La figura 2, a continuación, muestra una variante de despliegue donde la capa de la del resto de las capas; por ejemplo, una aplicación de escritorio que usa un motor de base de datos local. -![Plantilla de layered architecture con la base de datos desplegada en una -unidad de despliegue físicamente separada del +![Estilo layered architecture con la base de datos desplegada en una unidad de +despliegue físicamente separada del resto](/diagrams/Architecture_Layered_Variation_1.svg) -*Figura 2: Plantilla de layered architecture con la base de datos desplegada -en una unidad físicamente separada del resto.* +*Figura 2: Estilo layered architecture con la base de datos desplegada en una +unidad físicamente separada del resto.* La figura 3, a continuación, muestra otra variante de despliegue, donde la capa `Presentation Layer` está físicamente separada del resto en una unidad de @@ -44,13 +45,13 @@ despliegue diferente; también está separada del resto la capa `Database Layer` ejemplo, una aplicación de escritorio implementada con un cliente delgado, librerías, y un motor de base de datos local. -![Plantilla de layered architecture con la capa de presentación y la de base de -datos desplegadas en una unidad de despliegue físicamente separada del +![Estilo layered architecture con la capa de presentación y la de base de datos +desplegadas en una unidad de despliegue físicamente separada del resto](/diagrams/Architecture_Layered_Variation_2.svg) -*Figura 3: Plantilla de layered architecture con la capa de presentación y la -de base de datos desplegadas en una unidad de despliegue físicamente separada -del resto*. +*Figura 3: Estilo layered architecture con la capa de presentación y la de base +de datos desplegadas en una unidad de despliegue físicamente separada del +resto*. La figura 4, a continuación, muestra una variante de la arquitectura en capas donde: @@ -63,11 +64,11 @@ donde: compartidos para la capa `Business Layer` pero ocultos para la capa `Presentation Layer`. -![Plantilla de layered architecture con una capa `Service Layer` abierta y +![Estilo layered architecture con una capa `Service Layer` abierta y cerradas](/diagrams/Architecture_Layered_Variation_3.svg) -*Figura 4: Plantilla de layered architecture con una capa `Service Layer` -abierta y las demás cerradas.* +*Figura 4: Estilo layered architecture con una capa `Service Layer` abierta y +las demás cerradas.* [^1]: Richards, M. & Ford, N. (2020). Fundamentals of Software Architecture-An Engineering Approach. O'Reilly. From 5966504fc3adeddb0e4e7f53abcce92762e68f78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fernando=20Machado=20P=C3=ADriz?= Date: Mon, 1 Jul 2024 13:29:04 -0300 Subject: [PATCH 12/12] Apply suggestions from code review Co-authored-by: Paolo Mazza <47277080+mazzapao@users.noreply.github.com> --- 3_Plantillas/3_14_Space_Based_Architecture.md | 4 ++-- ...3_15_Orchestration_Driven_Service_Oriented_Architecture.md | 2 +- 3_Plantillas/3_16_Microservice_Architecture.md | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/3_Plantillas/3_14_Space_Based_Architecture.md b/3_Plantillas/3_14_Space_Based_Architecture.md index 3776dff..fbae455 100644 --- a/3_Plantillas/3_14_Space_Based_Architecture.md +++ b/3_Plantillas/3_14_Space_Based_Architecture.md @@ -1,6 +1,6 @@ # 3 Plantillas -## 3.13 Estilo de arquitectura basada en espacios +## 3.14 Estilo de arquitectura basada en espacios Esta es la plantilla para un estilo de arquitectura basada en espacios o *space-based architecture*; este es un estilo de arquitectura distribuida. @@ -44,7 +44,7 @@ En la figura 1, a continuación, aparecen los siguientes elementos: Memory Data Grid` de los nodos de procesamiento, en caso de que esos caché no se sincronicen entre sí —por eso es opcional—. El componente `Processing Grid` estereotipado como `≪orchestrator≫` es encargado de orquestar el procesamiento - de eventos entre varios nodos de procesamiento si fuera necesario —por es es + de eventos entre varios nodos de procesamiento si fuera necesario —por eso es opcional—. El componente `Deployment Manager` estereotipado como `≪agent≫` monitorea los nodos de procesamiento e inicia —o detiene— instancias de estos nodos si fuera necesario. diff --git a/3_Plantillas/3_15_Orchestration_Driven_Service_Oriented_Architecture.md b/3_Plantillas/3_15_Orchestration_Driven_Service_Oriented_Architecture.md index 4a3468b..a516674 100644 --- a/3_Plantillas/3_15_Orchestration_Driven_Service_Oriented_Architecture.md +++ b/3_Plantillas/3_15_Orchestration_Driven_Service_Oriented_Architecture.md @@ -1,6 +1,6 @@ # 3 Plantillas -## 3.13 Estilo de arquitectura orientada a servicios dirigida por la orquestación +## 3.15 Estilo de arquitectura orientada a servicios dirigida por la orquestación Esta es la plantilla para un estilo de arquitectura orientada a servicios dirigida por la orquestación u *orchestration-driven service-oriented diff --git a/3_Plantillas/3_16_Microservice_Architecture.md b/3_Plantillas/3_16_Microservice_Architecture.md index e80346b..97d5a5e 100644 --- a/3_Plantillas/3_16_Microservice_Architecture.md +++ b/3_Plantillas/3_16_Microservice_Architecture.md @@ -1,6 +1,6 @@ # 3 Plantillas -## 3.13 Estilo de arquitectura de microservicios +## 3.16 Estilo de arquitectura de microservicios Esta es la plantilla para un estilo de arquitectura de microservicios o *microservices architecture*; este es un estilo de arquitectura distribuida.