No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Estilos: Llamado y retorno

15/24
Recursos

Cada uno de los componentes hacen invocaciones a los componentes externos y estos retornan información.

Cada componente hace un llamado y espera una respuesta

Programa y subrutinas --> Instrucciones secuenciales que el programa ejecutaba una por una. Luego se hacían instrucciones de salto, de aquí surgieron las funciones que son bloques de código que podemos invocar en cualquier momento.

Orientado a objetos --> la abstracción es mayor en comparación con el paradigma anterior, se usa para aplicaciones que ya sabemos que vamos a usar durante mucho tiempo. La abstracción ya no es la subrutina, ahora tenemos objetos que se hacen llamados entre si y esperan respuestas.

Aportes 49

Preguntas 11

Ordenar por:

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

RESUMEN:

En este módulo se explica el estilo de arquitectura de llamada y retorno, consiste en que una parte A quiere comunicarse con una parte B, a veces con la necesidad de que b devuelva algo o no. Existen diferentes abstracciones de este suceso:

1. Programa y subrutinas.

Programa es el conjunto de instrucciones, sub rutina tiene la cualidad de ser fragmentos de código que utilizaremos muy a menudo, al que necesitamos hacer un llamado.

2. Orientado a objetos.

Objetos tienen diferentes propiedades y métodos que se comunican entre sí. Objetos pertenecen a una clase que instancia objetos que se llaman y otros responden.

3. Cliente Servidor

Una aplicación le habla a un servidor mediante una petición y servidor responde. Si ahondamos en este modelo el nivel de detalle aumenta. Aplicación le pregunta a REST/API y luego a server, y server devuelve.

Apuntes:

Llamada y retorno

Programa principal y subrutinas
Al principio en la programación había instrucciones ejecutadas secuencialmente. En medida que los programas se fueron complejizando era necesario re utilizar bloques de programa, entonces se hacían instrucciones de salto, la abstracción de eso fueron las subrutinas o funciones. Es el estilo más básico evolucionado de un script. Se siguen viendo en contextos de scripting para despliegues, por ejemplo.
Orientado a objetos
Es un estilo muy común y se usan para hacer aplicaciones que ya sabemos que vamos a necesitar mantener por mucho tiempo. Tratamos de juntar el estado de la aplicación con el comportamiento asociado a ese estado en particular, por lo tanto, creamos objetos que van a tener un comportamiento específico y un estado interno.
Multi-nivel
Tenemos diferentes componentes que se comunican entre sí en un orden específico. Pueden ser un mismo programa o múltiples programas que se ejecutan independientemente. Un caso específico son las arquitecturas cliente – servidor.

Con la arquitectura multinivel se pueden integrar fácil y rápidamente las diferentes capas (presentación, negocio e integración) utilizando patrones de software para desarrollar componentes reutilizables y organizados en estructuras flexibles que en su conjunto simplifiquen el desarrollo de las soluciones de software.

Me gustó mucho la expliación del profesor pero me hubiera gustado que mencionara ejemplos de aplicaciones conocidas de cada uno de los casos. Saludos AF!

¿Los programas y subrutinas es otro nombre para la programación funcional?

@@ LLAMADO Y RETORNO @@
El componente es armado para invocar otros y esperar una respuesta

Programa principal y subrutinas.- Modelar un bloque de código, también puedes hacer otros aparte e invocarlo en algún punto, cuando sea necesario. “Más básico y evolucionado de un script”

Orientado a Objetos.-  Sirve para hacer aplicaciones que ya sabemos que van a durar mucho tiempo, En este se crean objetos, familias de aciones con un nombre, también llamadas clases, estas se comunican con otras para así hacer la ejecución de algo, puede ser el primer comando y el tercero de la otra clase, así las combinaciones pueden ser infinitas.

Multinivel.- Se crean niveles, cada uno con su propia lógica, teniendo un nivel principal puede invocar subniveles para así combinar usar su lógica. “Ej: cliente/servidor”

Estilos de arquitectura de llamado y retorno

Programa principal y subrutinas
Instrucciones que el programa ejecuta de forma secuencial. De aquí salieron las subrutinas (también llamada procedimiento, función , rutina o método) las cuales son bloques de código que podemos citar/llamar en cualquier momento para resolver una tarea específica.

*Orientado a objetos
La programación orientada a objetos es un paradigma de programación que viene a innovar la forma de obtener resultados. Los objetos manipulan los datos de entrada para la obtención de datos de salida específicos, donde cada objeto ofrece una funcionalidad especial. Está basada en varias técnicas: herencia, cohesión, abstracción, polimorfismo, acoplamiento y encapsulamiento.
Fuente wikipedia

Estilo de arquitectura cliente servidor
es un modelo de diseño de software en el que las tareas se reparten entre los proveedores de recursos o servicios, llamados servidores, y los demandantes, llamados clientes

Estilo de arquitectura multi nivel
Sería algo similar a la arquitectura cliente servidor pero con mas capas.

Arquitectura Cliente/Servidor multinivel

En una aplicación distribuida en n-capas los diferentes procesos están distribuidos en diferentes capas no sólo lógicas, sino también físicas. los procesos se ejecutan en diferentes equipos, que pueden incluso residir en plataformas o sistemas operativos completamente distintos. cada equipo posee una configuración distinta y está optimizado para realizar el papel que le ha sido asignado dentro de la estructura de la aplicación, de modo que tanto los recursos como la eficiencia global del sistema se optimicen

Estilos Arquitectónicos

  • Pipes and Filters
  • Tipos abstractos de datos y OO
  • Invocación Implícita Basada en Eventos
  • Sistemas en Capas
  • Sistemas basados en depósitos
  • Máquina Virtual o Interprete

Conceptos extraídos de:
- http://pegasus.javeriana.edu.co/~mad/Arquitecturas de SW.pdf

La programación orientada a objetos (POO, u OOP según sus siglas en inglés) es un paradigma de programación que viene a innovar la forma de obtener resultados. Los objetos manipulan los datos de entrada para la obtención de datos de salida específicos, donde cada objeto ofrece una funcionalidad especial.

Estilos de Arquitectura Software.

Un estilo de arquitectura se define como como una familia de sistemas con patrones
comunes de una organización estructurada.(Garlan & Shaw, 1994a) Los estilos
arquitectónicos determinan las clases de arquitectura de software teniendo en cuenta los
tipos de elementos de la arquitectura y su topología, y los patrones de datos y control entre
los elementos.(Rapanotti et al., 2004)
Los estilos arquitectónicos, definen importantes decisiones sobre los elementos
arquitectónicos y su relación. Estos estilos se pueden usar para restringir la arquitectura
como para coordinar a los arquitectos que interactúan en su desarrollo.(Perry et al., 1992).
Son útiles durante el análisis y diseño de un sistema, porque el arquitecto puede determinar
el estilo que más se acople en la construcción del software y el que cumpla con los objetivos
deseados.(Klein et al., 2008)
Están compuesto por: Un conjunto de tipos de elementos (como ejemplo, un repositorio de
datos), una topología, un conjunto de restricciones semánticas y un conjunto de mecanismos
de interacción que determinan cómo los elementos coordinan a través de la topología
establecida.(Bash, 2015)
El uso de estilos puede mejorar algunos atributos de calidad definidos para un sistema, pero
disminuir otros, un ejemplo es el uso de un estilo en capas, aumenta la flexibilidad del
software pero generalmente disminuye el rendimiento, por eso es importante implementar y
adecuar un estilo que se adapte con las necesidades del sistema.(Science, 1999)
Los estilos arquitectónicos, definen importantes decisiones sobre los elementos
arquitectónicos y su relación. Estos estilos se pueden usar para restringir la arquitectura
como para coordinar a los arquitectos que interactúan en su desarrollo.(Perry et al., 1992)
Seguidamente se describirán algunos estilos de arquitectura de software:

** Tuberías y Filtros.**
En este estilo de arquitectura cada componente del sistema maneja de manera
independiente un flujo de entrada de datos y un flujo de salida de datos el cual es de forma
incremental. La forma como funciona este estilo de arquitectura es el siguiente:
Meta Análisis de los Estilos de Arquitectura de Software Orientados a la Web
Los datos ingresan por las tuberías y llegan a los filtros (componentes) los cuales se
encargan de manipular y realizar el proceso de transformación de los datos que ingresan y
les da salida por otras tuberías las cuales están conectadas con otros filtros los cuales irán
realizando la misma operación hasta que se finalice el flujo de entrada de datos.(Garlan &
Shaw, 1994a). Los ejemplos más comunes de este estilo de arquitectura son el Shell de
Unix, sistemas distribuidos y compiladores (Garlan & Shaw, 1994a).
Una topología importante en la arquitectura basada en este estilo, es la Tubería lineal en la
que cada filtro tiene precisamente un tubo de entrada (su fuente) y un tubo de salida (su
sumidero). Permitiendo transformar algo de entrada en alguna salida de un formato
particular, aplicando ciertas reglas en el proceso.(Rapanotti et al., 2004)

** Abstractos de Datos y POO.**
En estos estilos de arquitecturas los componentes son tomados como objetos abstractos
cuyos conectores son llamados invocaciones de métodos. Su función es ocultar las
características de los objetos y obviarlas puesto que necesariamente se debe conocer que
es lo que hace el objeto o que funciones tiene (Garlan & Shaw, 1994a).

Sistemas en Capas.
Este estilo de arquitectura se basa en jerarquías donde las capas superiores son servidas
por las inferiores y las inferiores proveen servicios a las superiores. Los componentes son
llamados capas y los conectores son llamados protocolos los cuales interactúan entre las
capas. Dos ejemplos de este estilo de arquitectura son los Sistemas Operativos y los
protocolos de comunicación en capas (Garlan & Shaw, 1994a).

Cliente – Servidor.

Este estilo de arquitectura se basa en que un proceso provee servicios (Servidor) por medio
de una o varias peticiones de otros procesos (Clientes), los cuales consumen dichos
servicios y son los encargados de enviar las peticiones al servidor. Un ejemplo son los sitios
Web. La acción de visitar un sitio Web requiere una arquitectura cliente-servidor, ya que el
servidor Web sirve las páginas Web al navegador (al cliente) (Garlan & Shaw, 1994a).
Este estilo siempre se debe ejecutar en una máquina que hará la tarea de cliente y por lo
menos un servidor que se ejecutara en una segunda máquina. El cliente y el servidor son
procesos computacionales que se ejecutan desde la memoria de sus respectivas máquinas,
estos son procesos independientes y pueden ser ejecutados en cualquier plataforma,
haciendo uso de sistemas de gestión cliente-servidor proporcionan una nueva capacidad
para crear elementos habilitados, como por ejemplo un sistema informático que ejecuta un
sistema conectado a la red o un usuario pueda editar un gestor.(View, Lu, Carlton, & Carlos,
2003)
Meta Análisis de los Estilos de Arquitectura de Software Orientados a la Web

Arquitectura Orientada a Servicios (SOA).

Este estilo de arquitectura se basa en la comunicación de varios sistemas de información
independientes desarrollados en diferentes lenguajes, desplegados en diferentes servidores
de aplicaciones tales como IIS, tomcat, glassfish, JBoss, WebLogic, ejecutados en diferentes
Sistemas Operativos como lo son Windows, Mac, Linux, y con motores de base de datos
diferentes como SQL Server, MySql, Oracle, Postgress, los cuales se pueden comunicar por
la red para ofrecer sus funcionalidades por medio de publicación de servicios. Esta
arquitectura de software se puede realizar mediante servicios Web. Un ejemplo claro de
Arquitectura Orientada a Servicios son los servicios REST (J & Sc, 2009).
Esta arquitectura comprende múltiples funciones, dentro de su propio nombre y espacio de
direcciones, interactuando remotamente a través de una red utilizando algún protocolo (No
requiere que los protocolos estén libres de contexto). En la mayoría de los casos, SOA de
basa en aplicaciones distribuidas, estas se distinguen de otros sistemas distribuidos, porque
los servicios pueden ser implementados en diferentes idiomas y pueden ejecutarse en varias
máquinas, cada petición realizada se aloja en espacios de direcciones separadas en
máquinas separadas.(Taylor, 2009)

** Peer to Peer**

Conjunto de recursos distribuidos heterogéneos que se conectan entre sí por medio de una
red. Una de sus principales características es, que puede funcionar al mismo tiempo como
cliente así como servidor, que a diferencia de la arquitectura Cliente – Servidor, esta puede
actuar como un servidor o como un cliente, pero no puede operar ambas
capacidades.(Schollmeier, Networks, & Universität, 2002)
Conjunto de recursos distribuidos heterogéneos que se conectan entre sí por medio de una
red. Una de sus principales características es, que puede funcionar al mismo tiempo como
cliente así como servidor, que a diferencia de la arquitectura Cliente – Servidor, esta puede
actuar como un servidor o como un cliente, pero no puede operar ambas
capacidades.(Schollmeier, Networks, & Universität, 2002). Este estilo contiene sistemas
distribuidos en donde el software que corre en cada nodo proporciona funciones
equivalentes y no se tiene control centralizado.(Fernando et al., 2006)

Fuente de información -->

  • Programa principal de subrutinas:En cada línea se puede hacer una instrucción o llamar a una subrutina, se sigue el programa en orden
  • Orientado a objetos: se usa para aplicaciones q se sabe se mantendrán mucho tiempo. Tratamos juntar el estado de la aplicación con el conportamiento, x eso se hacen objetos.( no va ser llamado a subrutina pero si se seguirán llamando objetos (clases- familia d objetos)
  • Multinivel: diferentes componentes q se van a comunicar entre si en un orden especifico, el nivel superior ( con su propia lógica puede llamar a otro nivel inferior con su propia lógica)

Hay que destacar que OOP no es un estilo de arquitectura, sino un paradigma de programación, pero que puede ser usado por diversos estilos de arquitectura como: N capas, Cliente-Servidor, Microservicios y demás.

Estilos de arquitectura
¿Qué es un estilo de arquitectura?
Algo genérico que nos habla SOLO de que problema se está resolviendo a nivel arquitectónicamente, como lo son los conectores… 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
Estilos
Llamada y Retorno
Los componentes que se van a armar serán invocaciones a otros componentes (hace llamado y espera respuesta

  • Programa principal y subrutinas:
    Un programa principal donde se puede llamar a una subrutina y puede tener un valor de retorno hasta terminar las subrutinas a ejecutar
    Es usado para deployment o se hace algo pequeño pero necesario ejecutar varias veces
    Orientado a objetos
    Estilo común usado para aplicaciones que se necesitarán mantener por mucho tiempo tratamos de juntar el estado de la aplicación creando objetos los cuales tienen una interfaz gráfica donde la llamada no es solo una subrutina sino objetos que interactúan entre sí
    Multinivel
    Vamos a tener diferentes componentes que se van a comunicar entre sí en un orden específico, el superior llamará el inferior y así sucesivamente de tal forma logran armar un programa, pero podríamos tener un estilo Cliente-Servidor, pero depende del nivel de detalle con el que lo veamos
    Cliente-Servidor
    Se tiene un componente Cliente que, al abrirse en el celular, se ejecuta, cuando necesite datos hace un llamado a un Servidor (puede ser un API REST) el cual se los devuelve, de tal forma quedando los dos niveles solos lo podemos ver como un Cliente-Servidor y dependiendo del nivel de detalle con el que lo veamos podemos por ejemplo tener Cliente-API-Backend tener un multinivel de 3 niveles

LLAMADO Y RETORNO
.
Programa principal y subrutinas
Al principio de la programación el programa ejecuta instrucciones linea por linea a medida que los problemas son mas complejos es necesario reutilizar bloques enteros del programa entonces se hacían instrucciones de salto que van de un punto a otro. La abstracción de esto fueron las subrutinas o subfunciones donde se podía modular un bloque de código y nombrarlo para llamarlo desde algún punto.
.
Orientado a objetos
Es un estilo muy comun usado para hacer aplicaciones que se van a requerir mantener por mucho tiempo. Se trata de juntar el estado de la aplicación con el comportamiento asociado a ese estado particular. Se hacen objetos donde tiene un comportamiento especifico y un estado interno que no se revela a menos que sea necesario pedirle algún dato a ese objeto.
.
A comparación del estilo de programa principal y subrutinas significa que la abstracción no es un llamado a una subrutina sino un llamado a función.
.
Multi-nivel
En este estilo se dispone de diferentes componentes que se comunican entre si en un orden especifico. Un caso especifico de multi-nivel son las arquitecturas cliente-servidor

Estilos de Arquitectura: Llamado y Retorno
En este estilo de Arquitectura, Ccda uno de los componentes hacen invocaciones a los componentes externos y estos retornan información.

Cada componente hace un llamado y espera una respuesta

Programa y subrutinas —> Instrucciones secuenciales que el programa ejecutaba una por una. Luego se hacían instrucciones de salto, de aquí surgieron las funciones que son bloques de código que podemos invocar en cualquier momento.

Orientado a objetos —> la abstracción es mayor en comparación con el paradigma anterior, se usa para aplicaciones que ya sabemos que vamos a usar durante mucho tiempo. La abstracción ya no es la subrutina, ahora tenemos objetos que se hacen llamados entre si y esperan respuestas.

Arquitectura multinivel —> Son diferentes componentes que se van a comunicar en un orden en especifico donde un componente principal crea el llamado a un componente inferior en algún momento, un ejemplo de esto son las aplicaciones cliente-servidor.

A la arquitectura multinivel también se le llama de maquinas virtuales. Esto por si así lo encuentran en otras fuentes, para que no se confundan

Programa principal y subrutinas

El programa empieza a delegar las a tareas a otras rutinas de donde deben de avisar o no cuando termine, este proceso de crear rutinas dentro de una, se logra gracias a que llamamos a ella y esta otra responde con la actividad que le corresponde.

De una maner en la que lo vemos más en nuestro día a día sería realizar las actividades antes de irme a la escuela

Me levanto

Me baño

Me cambio

Como

Listo

Pero si somos claros cada una de estas no es clara y podemos sacar más actividades

Me levanto: 

    Escucho la alarma 

    La pospongo 

    La vuelvo a escuchar 

    La quito 

    Me levanto de la cama 

El mismo proceso para las demás actividades a esto le llamamos rutinas y subrutinas

Ejemplo Lenguaje C

Aquí va un dato interesante del lenguaje C y es que todas las llamadas a función (o eso leí cuando recién empecé aprender) se hacen por este método aunque no lo hagamos explícitamente.


Orientado a objetos

La programación orientada a objetos se basa en la creación de objetos donde sólo se compartirá la información necesaria, pero para esto debe de ser solicitada de un objeto a otra y ser respondida


Multinivel

Este estilo se basa en estructurar el problema en varios niéveles que deben funcionar y entender sin la necesidad de ver los demás, sin embargo si se ve en su totalidad se comprenderá mejor el funcionamiento de cada uno

Multinivel

las instrucciones para llamada y retorno dependen de la arquitectura que se este utilizando ya sea funcional, objetos o multinivel estas tienen sus particularidades y formas de trabajo

Programa y subrutinas --> Instrucciones secuenciales que el programa ejecutba una por una. Luego se hacian instrucciones de salto, de aqui surgieron las funciones que son bloques de codigo que podemos invocar en cualquier momento.

La arquitectura de twitter que se mostro anteriormente podria ser considerada una arquitectura multi-nivel, donde se hace esa abstracción de la API que puede parecer una arquitectura normal de cliente-servidor pero que entrando en detalle, es más compleja

como cobol




Las subrutinas son helper functions.

Estilos: Llamado y retorno

Cada uno de los componentes hacen invocaciones a los componentes externos y estos retornan información.

Cada componente hace un llamado y espera una respuesta

Programa y subrutinas --> Instrucciones secuenciales que el programa ejecutaba una por una. Luego se hacían instrucciones de salto, de aquí surgieron las funciones que son bloques de código que podemos invocar en cualquier momento.

Orientado a objetos --> la abstracción es mayor en comparación con el paradigma anterior, se usa para aplicaciones que ya sabemos que vamos a usar durante mucho tiempo. La abstracción ya no es la subrutina, ahora tenemos objetos que se hacen llamados entre si y esperan respuestas.

15. Mis apuntes sobre: "Estilos: Llamada y retorno"
Los componentes que vamos a armar para estos estilos, van a hacer invocaciones a otros componentes
y van a esperar una respuesta. Toda la arquitectura está armada de esa forma.
Tenemos los siguientes estilos de “Llamada y retorno”:

15.1. Programa principal y subrutinas: Lo que había al principio eran instrucciones, y el
programa secuencialmente iba a ir ejecutando una por una. A medida que los programas se
fueron complejizando, se agregaron funciones y se invocaban de algún punto.

15.2. Orientada a objetos: Se usan para hacer aplicaciones que sabemos que vamos a necesitar
mantener bastante tiempo. Se trata de juntar el estado de la aplicación con el comportamiento
asociado a ese estado en particular. Para eso se hacen objetos, que van a tener un comportamiento
específico (interfaz pública) y van a tener un estado interno que idealmente no lo van a 
revelar a menos que sea necesario.

15.3 Multinivel: Diferentes componentes que se van a comunicar entre sí en un orden
específico. Ej: Arquitectura Cliente:Servidor

Estilos de llamada y retorno Programa principal y subrutinas( funciones)

Orientado a objetos

Muy buena explicación

Los estilos de arquitectura, son un nivel más alto , estos definen el comportamiento de patrones verdad?

Multi nivel tendria de una u otra manera que tener dentro de sus niveles o Programas y subrutinas o Orientado a objetos

Estilo: Llamado y Retorno
Los componentes son invocaciones a otros componentes del cual espera respuesta de ellos.

Los tipos de este estilo son:
**

  • Programa Principal y Subrutinas
  • Orientado a objetos
  • Multi-nivel - Cliente Servidor
    **

Cada vez que un componente requiera acceder a una funcionalidad de otro para operar o realizar alguna funcionalidad en base a la respuesta del segundo, estamos ante la implementación de este estilo.

.

LLamado y retorno:

  • Programa y subrutinas.
  • Orientado a objetos.
  • Multinivel

De manera bastante general…
Arquitectura de tres niveles: Pertenece al tipo de arquitectura multi-nivel donde cada componente solo puede hacer referencia a componentes de capas inferiores. La aplicación se divide en tres capas lógicas, cada una de ellas con un grupo de interfaces perfectamente definido.
-Capa de presentación: es la primera capa y normalmente consiste en una interfaz gráfica de usuario de algún tipo. Recibe los datos y los formatea de acuerdo a como sea necesario.
-Capa intermedia: consiste en la aplicación o lógica de empresa. Es básicamente el código al que recurre la capa de presentación para recuperar los datos necesarios.
-Capa de datos: contiene todos los datos necesarios para la aplicación.

I share my mind map.

Lo Estilos de llamado y retorno son una manera en la cual las arquitecturas de las aplicaciones funcionan. Yo lo veo como una manera que es la programación estructurada, la orientada a objetos y la cliente servidor, que esta ultima puede ser implementada en distintos niveles

Buen tema!

Cada uno de los componentes hacen invocaciones a los componentes externos y estos retornan información.
Cada componente hace un llamado y espera una respuesta