Tabla de contenido
Palanca¿Qué es abstracto?
Los conceptos abstractos pueden ayudarnos a ocultar algunos detalles irrelevantes durante el diseño del sistema, permitiéndonos centrarnos en la arquitectura general. Es importante romper con los detalles, porque la abstracción puede ocultar la complejidad dentro del diseño del sistema, permitiéndonos centrarnos más en los resultados del diseño del sistema.
En el mundo actual, rico en información, todos usamos computadoras para trabajar, pero no construimos hardware ni desarrollamos sistemas operativos desde cero. Usamos computadoras para hacer el trabajo que tenemos entre manos en lugar de profundizar en los sistemas de construcción.
Los kits también se utilizan aquí como ejemplo. Los ingenieros de software suelen utilizar kits que han sido escritos por otros para desarrollar sistemas grandes. Entonces, si todos tuvieran que desarrollar su propio kit, no todos podrían realizar su trabajo. Por el contrario, si usamos un paquete que ha sido escrito por otros, entonces solo necesitamos centrarnos en el desarrollo de otras funciones, lo que equivale a un concepto abstracto. La "suite" proporciona una interfaz simple para usar las funciones y. oculta sus detalles internos de cómo se implementa esto. Una buena abstracción permite a los desarrolladores reutilizarla en múltiples proyectos con necesidades similares.
abstracción de base de datos
Las transacciones son una abstracción de la base de datos. Cuando una gran cantidad de usuarios leen, escriben o modifican datos al mismo tiempo, las transacciones ocultan muchos problemas y solo proporcionan una interfaz simple. Por ejemplo: en caso de éxito, puede continuar, pero cancelar en caso de falla. . De cualquier manera, los datos se mueven de un estado consistente a un nuevo estado consistente (Consistencia).
Un concepto tan abstracto permite a los usuarios no tener que preocuparse por la modificación de datos de alta concurrencia (alta concurrencia), sino que pueden centrarse en la lógica empresarial (lógica empresarial).
Abstracción en sistemas descentralizados
Las abstracciones en la descentralización ayudan a los ingenieros a simplificar su trabajo y aliviarlos de la carga de lidiar con las complejidades subyacentes de los sistemas distribuidos.
El concepto abstracto de sistemas distribuidos se ha vuelto cada vez más popular a medida que muchos gigantes tecnológicos como Amazon AWS, Google Cloud y Microsoft Azure ofrecen servicios en la nube para sistemas distribuidos. Los servicios de estos sistemas distribuidos también se proporcionan directamente a los usuarios sin entenderlos realmente, como por ejemplo: CDN, Almacenamiento… La ventaja de esto es que los usuarios solo necesitan concentrarse en el desarrollo del programa, en lugar de perder mucho tiempo entendiendo cómo implementar algunos componentes del sistema desde cero.
Abstracción de red: llamadas a procedimientos remotos
Aquí me refiero al nombre chino de la documentación de IBM y también me refiero a lo siguientedocumento.
¿Qué es RPC?
La "llamada a procedimiento remoto (RPC)" es un protocolo de comunicación que proporciona un ejemplo de referencia de comunicación de alto nivel utilizada en sistemas operativos. También se puede decir que es un protocolo de comunicación entre procesos ampliamente utilizado en sistemas distribuidos. En el modelo OSI de comunicación de red, RPC abarca la capa de transporte de red y la capa de aplicación de red.
Aquí también se proporciona una explicación detallada de IBM: RPC asume la existencia de un protocolo de transmisión de bajo nivel, como el Protocolo de control de transmisión/Protocolo de Internet (TCP/IP) o el Protocolo de paquetes de datos de usuario (UDP), para enviar mensajes entre programas de comunicación. RPC implementa un sistema lógico de comunicación cliente-servidor diseñado para admitir aplicaciones web.
¿Cómo funciona RPC?
Cuando realizamos un RPC, primero se pausa el entorno de llamada y los parámetros del proceso se envían a través de la red al entorno donde se ejecutará el proceso. Cuando se completa la ejecución del procedimiento, los resultados se devuelven al entorno de intercall y la ejecución se reanuda como una llamada a un procedimiento normal.
Tomemos como ejemplo el programa Lado Cliente – Lado Servidor. El programa RPC se puede dividir en las siguientes partes. documentación oficial de microsoftImágenes para exhibición:
El sistema RPC consta de Cliente, Cliente Stub y un servicio RPC que se ejecuta en la máquina cliente. El servidor, el código auxiliar del servidor y un servicio en ejecución RPC se ejecutan en la máquina del servidor.
Aplicaciones RPC en la vida real
RPC se utiliza en muchos servicios del mundo real. Eche un vistazo a los ejemplos que se dan a continuación:
Google GCP, un conocido servicio en la nube, utilizará RPC para algunas partes del sistema distribuido. Ellos Desarrollaron gRPC, un marco de código abierto que utiliza RPC para construir sistemas descentralizados más eficientes y de alto rendimiento. Utilizada en servicios como Búsqueda de Google, YouTube, etc., esta aplicación RPC permite que todo el sistema de software establezca conexiones y comunicaciones entre diferentes componentes del sistema para lograr conexiones más eficientes y estables.
La mayoría de los servicios de Facebook utilizan Ahorro Para realizar RPC, algunos sistemas de almacenamiento utilizan Thrift para serializar registros en el disco (Serializing Record). Esta aplicación RPC también tiene varios beneficios. Por ejemplo, la interoperabilidad y la interoperabilidad se pueden llevar a cabo entre diferentes lenguajes de programación, como la conexión entre el cliente Python y el servidor C ++.
Conclusión
Aquí hay algunos puntos clave:
– La abstracción es un concepto que nos ayuda a ocultar detalles irrelevantes al diseñar un sistema, permitiéndonos centrarnos en la arquitectura general.
– La abstracción puede ocultar la complejidad dentro del diseño del sistema, permitiéndonos centrarnos más en los resultados del diseño del sistema.
– La abstracción de bases de datos, la abstracción de sistemas distribuidos y la abstracción de redes son aplicaciones de conceptos abstractos.
– RPC es un protocolo de comunicación que proporciona un ejemplo de referencia de comunicación de alto nivel utilizada en sistemas operativos.
– RPC se utiliza en muchos servicios del mundo real, como Google GCP y Facebook.
Cita
Otros artículos
Introducción al diseño de sistemas modernos – Diseño de sistemas 01
¿Entiendes realmente Monorepo? 5 minutos para presentarle la arquitectura front-end a gran escala
Experiencia de entrevista de ingeniero de software de Yahoo! 2023