Interoperabilidad del sistema de software

imagen

En este artículo, hablaré sobre las relaciones entre los programas. La relación entre programas o, en otras palabras, la interacción de los programas entre sí en la gran mayoría de los casos es recibir datos de un programa de otro.. Por ejemplo, un programa de licitación electrónica puede solicitar una tasa de cambio de algún otro programa. O bien, el usuario puede ingresar el editor de texto mediante el controlador del teclado. Los programas pueden proporcionar un conjunto de funciones para la interacción: API. O incluso tener mecanismos de interacción completos llamados protocolos cuando se utilizan muchas llamadas de función consecutivas, por ejemplo, para una coordinación compleja de cualquier parámetro. Un gran paso adelante es la creación de estructuras universales: XML y Json. Los programas pueden interactuar con otros programas de una manera "descortés", sin protocolos y API abiertas: paso a paso de los datos de la página en caso de capturadores, introduciéndose en archivos ejecutables como virus o, por el contrario, matándolos en caso de antivirus.

En las tecnologías de la información, como los ecosistemas vivos, existe una fuerte influencia mutua de los sistemas de software entre sí y, en general, puede ser de dos tipos:

  1. En primer lugar, el sistema puede usar la capa subyacente de acuerdo con el nivel de jerarquía (mientras que, por regla general, las capas ubicadas arriba no afectan a las subyacentes).
  2. En segundo lugar, un sistema puede interactuar con otro sistema en el mismo nivel de jerarquía utilizando varias interfaces.

Puede hablar sobre la jerarquía por separado, pero simplificándola, nos referimos a capas como las siguientes: SO (a su vez con sus propias capas), plataforma, programa, complementos (complementos), etc.

Además, por la naturaleza de los programas que interactúan, la interacción puede ser de dos tipos: diferentes partes interactúan o lo mismo. Las observaciones muestran que en el primer caso, su número puede ser relativamente pequeño, por ejemplo, con una docena de órganos en el cuerpo o varios componentes de una computadora, y si los términos son los mismos, generalmente hay muchos de ellos: células en el órgano, transistores en el procesador, personas en la civilización, Los programas también consisten en millones de instrucciones de máquina de varias decenas de tipos. Además, cada comando de máquina, célula, cada transistor o cada neurona en la red neuronal realiza una función muy simple. Se puede suponer que en la base misma de cualquier cosa, de cualquier sistema, se encuentran precisamente componentes básicos tan simples.

La diferencia con respecto a la vida silvestre es que los sistemas en diferentes niveles son bastante independientes y pueden continuar funcionando cuando la capa subyacente cambia a otra: por ejemplo, el sitio web continuará abriéndose si cambia el cable Ethernet de par trenzado a Wifi.

En general, la interacción de los sistemas de software puede ser de varios tipos:

  • Construido sobre "infraestructura" (por ejemplo, en el sistema operativo o en alguna plataforma, por ejemplo, IBM Notes, o dentro de una red social).

  • Utiliza otros sistemas de software (por ejemplo, un sitio web puede usar un DBMS relacional, como MySQL, MS SQL Server u Oracle).

  • Consiste en (se pueden usar varias bibliotecas y productos individuales, por ejemplo, los sitios usan tinyMCE o componentes para mostrar un calendario).

  • Se integra con (por ejemplo, nuestro sistema CPM está integrado con 1C, sistemas de telefonía IP, sistemas de adquisición. Los sitios pueden integrarse con sistemas de pago, con redes sociales, etc.).

Como cualquier otro sistema, el programa consta de componentes. En programación, les gusta reutilizar componentes si ya tienen componentes que implementan una funcionalidad similar. Esto es más rápido que escribir su componente, depurarlo y posteriormente mantenerlo. Enviar una carta es un componente, escribir en el registro es otro componente, los gráficos son el tercero, un editor de texto en el sitio es tineyMCE y la búsqueda es lucene. Por lo tanto, muchos programas usan los mismos componentes.

A menudo, los programas le permiten ampliar su funcionalidad: los editores de texto y las hojas de cálculo le permiten crear macros, navegadores (agregar extensiones, todos los CMS) y complementarlos con componentes y complementos de terceros. Algunos programas van más allá en este camino y son esencialmente plataformas para lanzar otras aplicaciones: por ejemplo, navegadores o notas de ibm lotus.

El sistema operativo en sí es un programa cuyo único propósito es la existencia de otros programas. Simplifica su existencia, aísla del hierro, proporciona la capacidad de utilizar una interfaz gráfica y da acceso a la red, su propósito es garantizar el trabajo de otros programas.

Al mismo tiempo, los sistemas operativos, las plataformas e incluso los CMS, que se instalan debido a un solo componente, en muchos casos son mucho más complicados que el programa para el que se utilizan, pueden incluir muchas funciones diferentes que proporcionan trabajo: compartir recursos, proporcionar un mecanismo de autorización , simplifica el acceso a la base de datos. Esto se debe a su versatilidad (por ejemplo, el sistema operativo Windows contiene varios subsistemas Win32, OS / 2) para garantizar el funcionamiento de todos los programas posibles.

La versatilidad siempre conduce a una complejidad adicional. Esto también se aplica a aquellos componentes que los programadores usan cuando escriben un programa, son mucho más complejos y tienen un conjunto mucho más amplio de funciones, muchas de las cuales no son necesarias ni se usan. Los programas a menudo se ven obligados a proporcionar compatibilidad con versiones anteriores; por ejemplo, en Windows era posible ejecutar aplicaciones de DOS. Cuando los sistemas interactúan, pueden ocurrir varios efectos interesantes.

El primero se llama sinergia.y su idea es que el término es más que solo la suma de los términos. Es decir, si agrega alguna otra a una tecnología, entonces, con sinergia, la tecnología resultante superará tanto la primera como la segunda. Y puede ser un producto cualitativamente diferente. Es decir, si agrega un esqueleto de hierro a la computadora con el programa, obtendrá un robot que es más grande que la pieza de hierro y la computadora. La interacción de una gran cantidad de cosas simples puede conducir a algún tipo de interacciones complejas. La suma de cosas simples lo hace difícil: un conjunto de transistores crea una computadora, un conjunto de átomos crea un objeto, las células del cuerpo crean órganos. La suma de personas, la civilización, no es solo siete mil millones de personas, es algo más.

El segundo pensamiento fue expresado por Peter Norvig en el informe Everything is Miscellaneous. Me pareció sorprendente: si miras a un solo chimpancé y a una sola persona, verás que hay mucho en común entre ellos. Bueno, es decir, está claro que los chimpancés son un poco más fuertes, la persona es un poco más inteligente, pero en general, su apariencia es un poco similar, sus capacidades físicas e incluso intelectuales son comparables. Pero ahora, si observa la cultura de los chimpancés y la cultura de la humanidad, verá una gran diferencia. La civilización de las personas ni siquiera se puede comparar con la civilización de los chimpancés. Por alguna razón, esto me recordó que 0,99 y 1,01 no parecen ser muy diferentes, pero cuando se eleva en gran medida, un número tenderá a cero y el otro irá al infinito.

Para aquellos que simplemente se desplazaron hasta el final: la interacción de los programas puede ser de varios tipos y su resultado puede conducir a un nivel fundamentalmente nuevo del sistema de software. El todo no siempre refleja lo que está sucediendo en sus partes constituyentes. Gracias por su atencion!

Source: https://habr.com/ru/post/es399489/


All Articles