Cómo evitar las minas de tecnología de la información

El artículo formula algunos problemas de las tecnologías de la información (TI) y considera un enfoque para su solución, que puede ser de interés para los desarrolladores de arquitecturas de sistemas informáticos y lenguajes de programación, así como para las empresas en el campo de las TI. Pero todos, con la excepción de algunos , apenas creen que haya problemas, al menos en lo que se describe en este artículo, especialmente porque la industria se está desarrollando más que eso. Pero, aunque algunos problemas no se reconocen, sin embargo, deben resolverse de manera "progresiva" durante mucho tiempo y gradualmente. Y sería posible ahorrar mano de obra y dinero si los resuelve conscientemente en su totalidad e inmediatamente.

Ni la economía ni las comunicaciones sociales ya son posibles sin el uso de TI avanzada. Así que veamos por qué las tecnologías actualmente en uso ya no son adecuadas y qué se debe reemplazar con ellas. El autor agradecerá la constructiva discusión calificada y espera encontrar información útil sobre soluciones modernas a los "problemas" planteados.

Las ideas que definen la arquitectura de las computadoras no han cambiado mucho desde la época de von Neumann. Se basa en un algoritmo en el proceso de ejecución de una secuencia de comandos cuyos datos se procesan. Por lo tanto, los principales actores son los procesos (Controlflow), que se proporcionan (de acuerdo con las prioridades y la jerarquía) recursos informáticos bajo el control del sistema operativo (SO).

La secuencia y la dependencia del procesamiento de todos los datos en el agregado se describen en el programa central (principal). Y al crear un nuevo tipo de datos, es necesario prever en el programa líder el lanzamiento de un algoritmo para su generación oportuna, y organizar los momentos y el método de su uso ("cita") con otros programas. Pero para esto, todavía es necesario coordinar las estructuras de datos que deben ser descubiertas por el desarrollador (no sin el interés comercial de este último). Y si los conjuntos de datos previamente procesados ​​por procesos líderes independientes, de acuerdo con la lógica del desarrollo de la integración, comienzan a cruzarse, entonces será necesario desarrollar un nuevo proceso líder que integre programas previamente independientes.
Todo esto sucede continuamente a medida que la tecnología digital progresa y se desarrolla. Y en consecuencia, cada vez se requieren más fuerzas y medios para mantener los sistemas en condiciones de trabajo, que se vuelven más monopolísticos y menos visibles. Incluso a nivel empresarial, el número de diferentes clases de datos (tablas o estructuras que contienen datos) alcanza cientos y miles. Es poco probable que donde haya especialistas que, en general, imaginen que, de hecho, todos están almacenados. Sucede que con el desarrollo de sistemas de procesamiento en bases de datos (DB), se acumula "basura" de los datos en estructuras antiguas, que todavía no participa en nuevos algoritmos de procesamiento, pero puede ser "recogido" al generar una solicitud de datos.

A menudo es más fácil agregar un nuevo complemento sobre los antiguos a las nuevas características de la aplicación que usar las tecnologías de programación de objetos existentes, en lugar de comprender los algoritmos y las estructuras de datos existentes. Y tantas veces Es fácil ver que este es un callejón sin salida.

Por supuesto, buscan y encuentran formas de salir del callejón sin salida. Estos son sistemas de modificación de bases de datos "sobre la marcha", y protocolos de mensajería, y backbones multiplataforma (buses) para el intercambio de datos, etc. Y todas estas tecnologías y plataformas de herramientas de software a veces se actualizan varias veces al mes. Pero si esto continúa aún más, la ganancia del próximo desarrollo de TI será menor que los costos de este mismo desarrollo. TI apuntó a un callejón sin salida por las siguientes razones:

  • -, ;
  • -, , ;
  • -, , ( ), ;
  • , , . , -.

El autor no afirma tener un conocimiento exhaustivo de las plataformas de sistemas modernos y los lenguajes de programación, que comenzaron a desarrollarse especialmente después de alcanzar la edad de jubilación. Mi experiencia en programación comenzó con el desarrollo de controladores para muestrear datos de registradores de telemetría para probar motores de aviones y cohetes (incluso para un cohete lunar).

En esos días, todo el software para el complejo IVC (dos mashrooms de casi 200 metros cuadrados cada uno) se agotó por un programa cableado para la entrada inicial de una tarjeta perforada y el lanzamiento del código contenido en él más un mínimo de rutinas en forma de un paquete delgado de tarjetas perforadas. El resto lo que pueda. Pero para los dispositivos especiales de grabación de telemetría no había software.

Tuve que programar en códigos de máquina y en direcciones absolutas, desarrollando al mismo tiempo un conjunto de controladores para varios dispositivos de entrada / salida y subprogramas, comenzando con la conversión de números decimales a códigos binarios y formateando de nuevo. Bueno, entonces me referiría a "no pasamos por esto", e incluso le di una caída a la caída durante seis meses en Baikonur, donde se implementó un sistema similar; incluso allí, incluso en viajes de negocios, entregaron abrigos de piel de oveja bastante buenos. Y cuando finalmente llegué allí, ya no estaba. Los programadores femeninos estudiaron previamente allí, pero como eran de un fideicomiso especial de otro departamento, no debían hacerlo, especialmente en el verano. Por cierto, dijeron que aún había accesorios de montaje y disparos en el techo. Y así, cuando una de las chicas presionó por primera vez la tecla "Entrada inicial",Al mismo tiempo, el primer disparo de la pistola de montaje retumbó. Tanto la niña como la silla fueron llevadas a pocos metros del control remoto.

Sí, y no podía distraerme del desarrollo de la arquitectura de todo el complejo de software y las etapas del procesamiento de telemetría, aunque no era ningún jefe en ese momento. Así que tuve que desarrollar personalmente y en tiempo extra un ensamblador, luego depuradores (para 2 tipos diferentes de computadoras, una de las cuales era también tarjeta perforada y la otra cinta perforada) en tiempo real con la intercepción de las interrupciones del sistema y la detección de un bucle. Como graduado del Instituto de Física y Tecnología (MIPT), tuve que asumir todas estas tonterías binarias, dejando a otros algoritmos computacionales claros. Y me llevaron a esta oficina porque en la oficina de diseño vecina (que fue creada después de la guerra y la mitad de los empleados al principio eran ingenieros y diseñadores de las fábricas alemanas Junkers y Messerschmidt, que fueron exportados a la URSS junto con el equipo,personal y sus familias) Estaba modelando sistemas de motores turborreactores en el complejo de computadoras analógicas MPT-9 (lámpara, la foto de abajo, no hay mejores imágenes; los gabinetes son del tamaño de una persona, y los pequeños rectángulos blancos son escalas de voltímetros por 100 voltios) para depurar los sistemas de control del motor .



Escriba AVM o computadora digital: ¿cuál es la diferencia? Y debo decir que para el graduado del departamento de educación física de esos tiempos realmente no hay casi ninguno. En mi facultad, sin embargo, esto no se enseñó de ninguna manera y, como sucedió, posteriormente no tuvo demanda. En el departamento militar se nos enseñaron los principios de funcionamiento de las computadoras analógicas y digitales (medios sumadores, registros de desplazamiento y todo eso), como las habilidades para calcular los parámetros de lanzamiento de misiles Tierra-Tierra de clase objetivo al quinto dígito en una regla de cálculo. longitud del metro Creo que no hay nada como esto ahora. Pero cuando decidieron introducir un curso de programación en nuestro curso, casi todos (!) Los estudiantes declararon que ellos, como futuros "científicos puros", nunca necesitarían esto, y boicotearon las conferencias. Por supuesto, esto no se aplicaba a los estudiantes del Departamento de Ingeniería Informática, ya que cada microsegundo guardado en las rutinas de BESM-6,dio, según los rumores, una prima de casi 20 rublos. Esto a pesar del hecho de que la beca en cursos superiores fue de 55 rublos. Y nosotros, los huelguistas, cancelamos la entrega de trabajos académicos sobre programación, pero luego, yo y muchos de mis compañeros, terminamos de alguna manera programando.

Con el tiempo, para nuestra computadora (bueno, todavía no era BESM-6, sino más simple y mucho menos conocido), apareció un traductor con Algol-60, pero sin bibliotecas de subprogramas, de alguna manera no era necesario. En lenguaje ensamblador, sí con un depurador, fue fácil programar cualquier cosa. A continuación, se llegó al desarrollo de sistemas operativos de cinta magnética y disco intercambiables (transparentes desde el lado del software de la aplicación y la interfaz del operador, esto es para una posible salida de los discos permanentes) con el control, ahora dirían, archivos Bat. Finalmente, se desarrolló un supervisor de tareas que ejecutó archivos de secuencia de comandos para recuperar los datos solicitados por el operador. Incluso quería desarrollar un sistema operativo completo, ya que luego resultó ser similar a Unix, pero en relación con la transición al tipo de computadoras Ryad, esto no se volvió inapropiado.

Para ser justos, diré que participé no solo en el software del sistema. Cuando fue necesario desarrollar un programa de transformación rápida de Fourier para el análisis espectral, tuve que hacer esto rápida y rápidamente, especialmente porque no pude encontrar una descripción inteligible del algoritmo FFT. Tuve que reinventarlo. Bueno, cosas así.

Observo que todos los algoritmos y sistemas de procesamiento desarrollados no se publicaron en ninguna parte debido al secreto de todo y de todo en este departamento y, además, no estaban de acuerdo con el perfil de la empresa, solo un departamento de servicio.

Ya antes de la "perestroika", me invitaron a dirigir el laboratorio de software del sistema en una sucursal de un instituto especializado de investigación de Moscú. La tarea consistía en desarrollar un sistema informático distribuido en un controlador de control multiprocesador, que incluye hardware y software. Bueno, entonces este instituto de investigación, como muchos otros, dejó de existir. Considero que es necesario incluir esta "nostalgia" en el artículo solo con el fin de demostrar que el autor tiene algunas nociones sobre los sistemas de automatización, posiblemente un poco desactualizadas.

Entonces, si necesitamos construir un organismo social vibrante y atractivo en evolución y una economía adecuada para él, entonces, como cree el autor, es aconsejable cambiar los principios de organización de la tecnología de la información. A saber:

  • , , .

Una base de datos distribuida global debe ser un conglomerado de bases de datos organizadas jerárquicamente basadas en un principio único.

Si la humanidad alguna vez acepta crear un lenguaje científico internacional en el que la relación "quién (qué), quién (qué), contiene (incluye), pertenece a ..., está ausente de ..., cuándo, dónde, fue, será, antes, después, ahora, siempre, de ... a, si ... entonces, por qué, cómo, por qué, etc. " Si se representaran explícita e inequívocamente mediante construcciones lingüísticas y / o símbolos de relaciones (que pueden reflejar las relaciones de las estructuras de datos descritas en los metadatos), los artículos científicos podrían cargarse directamente en esta base de conocimiento y con la posibilidad de utilizar contenido semántico.

La arquitectura y los principios de tal autor de base de datos desarrollado. Algunas de sus variantes se introdujeron y durante varios años se utilizaron sin quejas en el sistema administrativo del ayuntamiento con casi un millón de personas.

  • Para cada tipo de datos, se debe indicar su propósito (y una descripción de texto suficientemente detallada), su relación con otros datos y el algoritmo para obtenerlos de datos recibidos (o calculados) previamente. Del mismo modo, se debe describir la forma de su presentación en una interfaz de usuario típica y se deben indicar las herramientas asociadas. Estas características y herramientas, llamadas metadatos , también son datos ordinarios y, por lo tanto, deben estar contenidos en una base de datos. Al menos en la base de datos donde se necesitaban, si no se presenta en una base de datos de nivel superior.

Los metadatos sirven para indicar la existencia potencial y para garantizar la selección de datos existentes de acuerdo con su significado semántico. Los metadatos locales deberían, si es posible, asignarse a metadatos en el clasificador de una base de datos de una jerarquía superior. El autor utilizó algún análogo de metadatos en su tiempo tanto en el supervisor de tareas como en el sistema de pensiones y beneficios de la ciudad, cuya arquitectura de base de datos fue desarrollada por el autor, donde dirigió el departamento de automatización en un momento en que los algoritmos de pago e indexación de las pensiones estaban cambiando por el gobierno Si no 3 veces al mes.

Esto no quiere decir que no estén lidiando con este problema. Primero, los estándares XML le permiten caracterizar los datos con etiquetas, aunque en archivos lineales. Hay más enfoques globales para el problema: google, por ejemplo, "lenguaje de descripción de ontología OWL". Y aquí el autor propone soluciones extremadamente radicales cuando los datos se almacenan en la base de datos sin referencia a ninguna de las estructuras originales, y las estructuras requeridas por los usuarios se forman de acuerdo con su descripción en los metadatos.

  • Los cálculos de flujo deben realizarse utilizando la tecnología Dataflow , es decir, la gestión de datos debe llevarse a cabo. Los nuevos datos deben calcularse de acuerdo con el algoritmo especificado para ellos, tan pronto como aparezcan los datos iniciales necesarios. Los cálculos deben realizarse descentralmente y en paralelo en la red.

El procesamiento de datos debe consistir en escribir nuevos datos en la base de datos, calculados de acuerdo con el algoritmo que compara utilizando una muestra que cumpla las condiciones para especificar datos de origen previamente calculados o de entrada. Los nuevos datos se recibirán automáticamente tan pronto como se forme la muestra necesaria, y así sucesivamente en toda la red de bases de datos distribuidas. No es necesario especificar la secuencia de acciones (es decir, no es necesario escribir el código de programa del programa de control), ya que cuando se gestiona de acuerdo con los datos, las siguientes acciones se realizan sobre el hecho de la disponibilidad de las fuentes necesarias para esto.

(Aproximadamente la misma tecnología informática se usa en la base de datos de la hoja de cálculo de Excel, donde se calculan los siguientes datos en las celdas como se calculan en las celdas con los datos de origen. Y allí tampoco es necesario que describa la secuencia de comandos para esto).

Toda la "programación" se reduce a describir nuevos datos en metadatos con sus atributos (incluidos los derechos de acceso), relaciones, características de visualización en la interfaz de usuario (si es necesario), especificando condiciones para los atributos de los datos fuente cuyos valores determinan su ocurrencia en la muestra y estableciendo algoritmo de procesamiento. El algoritmo, en más del 99% de las situaciones, se reduce a indicar qué se debe hacer con los datos de una serie de muestras: sumar, calcular el promedio, encontrar el máximo o mínimo, calcular las desviaciones estadísticas, determinar la función de regresión, etc. por conjunto de la selección especificada. En el caso general, los cálculos (la suma de productos, etc.) son posibles para varias muestras, por ejemplo, A N de la muestra {N} y B K de la muestra{K} , etc., donde k , por ejemplo, es a su vez una muestra del parámetro K N de la muestra {N} . etc. Las fórmulas que se ajustan a las celdas para calcular nuevos datos en el ejemplo de Excel pueden componer de manera similar una descripción del algoritmo en un módulo de software para obtener nuevos datos de los datos de origen en la tecnología Dataflow. Y para esto, como en Excel, generalmente no necesitará atraer programadores profesionales. ¿Es a veces y solo para una tarea específica?

Por lo tanto, con pocas excepciones, todo el alcance de las tareas de informatización puede ser creado por especialistas en industrias aplicadas sin la participación de programadores profesionales. Los mismos datos que tratan pueden ser descritos por los mismos expertos en metadatos de forma independiente (si no hay análogos) y en términos de contenido, propósito e imagen pueden copiar documentos en papel que les son familiares. Un simple constructor diseñador será suficiente para esto. Cualquier documento (también un informe o un artículo científico) no será solo un archivo de texto, sino una combinación de información de la base de datos, también provista de herramientas para su presentación y trabajo con ellos, indicada en los metadatos.

Ahora, para proporcionar tales capacidades, los navegadores están expandiendo constantemente su funcionalidad al agregar reproductores flash, opciones para un script Java, introducir nuevas etiquetas, servicios web, etc. Los metadatos permitirían organizar, localizar y organizar estos procesos.
Y siempre puede organizar la recepción de un nuevo documento arbitrario (conjunto de datos) sin editar los algoritmos existentes para el funcionamiento de todo el sistema, ya que los mismos datos de una base de datos distribuida, de hecho, pueden participar en una variedad de algoritmos diferentes para obtener nuevos documentos de las muestras deseadas. Para la implementación de la contabilidad integrada del comercio en la gestión de datos y la implementación de una base de datos distribuida unificada, ni siquiera tiene que enviar sus informes a ninguna parte, simplemente comience a funcionar. Los datos que aparecen se recogerán y se tendrán en cuenta automáticamente.

Los desarrolladores que participan en la automatización en relación con los procesos comerciales pueden indicar que todas estas características se han implementado durante mucho tiempo en los detalles de los sistemas BPM. Y solo en el ejemplo de los sistemas BPM vemos cómo las ideas de gestión de datos son secretas, es decir sin darse cuenta de la esencia del fenómeno, se infiltran en la práctica, por supuesto, mientras todavía están bajo el control del programa central de acogida. Pero, por desgracia, para que el sistema BPM funcione, como el "ELMA" "más cool", la compañía debe tener un programador con un buen dominio del lenguaje de programación C-sharpe. El autor pudo participar en la administración de este sistema.. Y sin un programador a tiempo completo, debe ajustar sus estructuras y procedimientos comerciales a las plantillas propuestas. Pero este enfoque no es diferente de la práctica habitual de adquirir aplicaciones de aplicaciones con todos los problemas de su adaptación e integración.

Las ideas de gestión de datos que se formalizaron puramente matemáticamente en forma de gráficos orientados y datos móviles en forma de "tokens" resultaron difíciles de implementar en la práctica. Además, requiere el uso de memoria asociativa costosa y de alto consumo energético. Por lo tanto, el autor propone una implementación en forma de un modelo de "grano grueso", donde cada módulo realiza completamente el procesamiento de la fuente dentro de la base de datos local. Módulos similares funcionarán en otras bases de datos locales, combinando los resultados en una base de datos de nivel superior. Cuando se procesan todas las fuentes de datos registradas, los nuevos datos recibirán el estado de listo.
Si no hay datos en la base de datos local, la solicitud se envía a la base de datos de un nivel superior, etc. Y ya desde allí, la solicitud se replicará de acuerdo con las bases de datos locales subordinadas. Los resultados de su refinamiento también se integrarán en la base de datos de nivel superior y luego se enviarán a la base de datos local que inició la solicitud, o más arriba en la jerarquía si la solicitud proviene de arriba. Por lo tanto, no es necesario conocer las direcciones de correo electrónico de todas las fuentes y destinatarios. Para cada base de datos local, es suficiente conocer solo la dirección de una base de datos de mayor jerarquía. Este principio de organizar transacciones permite un sistema fácilmente escalable y escalable.
El algoritmo de cálculo más simple y claro se puede mostrar utilizando diagramas de flujo. Muestran qué datos se ingresan a cada módulo de software y dónde se transmite la salida calculada en ellos. El autor desarrolló el lenguaje DFCS para programar computación paralela en un sistema controlado por flujos de datos , en el cual se pueden describir todas las conexiones de diagramas de flujo.

En el ejemplo en el diagrama de bloques a continuación, los paralelogramos de color (grandes y pequeños) indican datos, y en bloques blancos, módulos de programa con algoritmos de procesamiento de datos. Las líneas punteadas indican acciones realizadas por dispositivos electromecánicos.



En el diagrama de bloques se determina con precisión qué módulos están conectados con cada uno, y no se necesita memoria asociativa, pero se deben proporcionar algunas medidas de sincronización de datos, especialmente si se utiliza la paralelización de la sección "estrecha" de la rama del algoritmo. Los módulos de software (PM) en alguna combinación óptima se cargan en una unidad informática (WB). Los datos del PM al PM se transmiten a través de puertos que pueden representarse virtualmente o mediante registros de dispositivos físicos. Al administrar datos, un módulo, dispositivo o puerto, archivo o consulta a la base de datos son funcionalmente iguales e intercambiables. Los puertos físicos se utilizan para intercambiar datos entre WB a través de canales de datos y, posiblemente, también entre PM en un WB.Los datos se almacenan temporalmente solo en puertos (registros) y, a veces, posiblemente en alguna cola. Y las matrices de datos principales deben almacenarse en la base de datos, que debe ejecutarse como dispositivos especializados separados , ya que la interfaz de acceso a datos debe ser la misma, independientemente de la estructura y las relaciones de datos específicos.

Los datos entre dispositivos se transmiten a través de un bus de datos a lo largo del cual se pueden colocar muchos dispositivos y módulos que lo usan. Antes de comenzar a intercambiar datos, los dispositivos de intercambio deben "agarrar" el bus para que nadie intervenga. La captura generalmente ocurre de acuerdo con el algoritmo para ponderar las direcciones de los dispositivos en el bus y toma al menos tantos ciclos de reloj como la profundidad de bits de sus direcciones.
sin embargoexiste e incluso se implementó en el hardware en el mencionado instituto de investigación la tecnología de captura de bus en 1 a 2 ciclos por dispositivos, independientemente de su número . Dado el progreso de la tecnología, puede utilizar decenas o cientos de buses de datos para el intercambio, eligiendo uno gratuito. La arquitectura del complejo informático se muestra en la figura a continuación. Los complejos pueden conectarse en red conectando sus buses a través de adaptadores de transferencia de datos.

No es el sistema operativo (SO) el que controla el funcionamiento de los módulos, sino el protocolo de movimiento de datos (SDA) junto con el programa de transporte. El programa de control de tráfico es muy compacto y se encuentra en cada unidad informática.

Es SDA que inicia el módulo si los datos de entrada están en el puerto. Los datos de salida resultantes se colocan en el puerto de salida, desde donde el programa de transporte (o controlador) los transfiere a través del bus de datos al puerto de entrada del siguiente módulo conectado al primero, y ya allí su propio programa SDA lo inicia. Si los módulos están en la misma unidad de computación, entonces no se utiliza el programa de transporte, etc. Si el módulo ha funcionado, pero no hay nuevas entradas, el SDA detiene la ejecución de este módulo. El módulo reanudará la operación cuando este puerto aparezca en el puerto. Sin embargo, tales reglas aparentemente obvias del SDA en la práctica no pueden garantizar el funcionamiento estable del sistema Dataflow. Entonces, las reglas de tráfico "correctas" son mucho más interesantes y, tengo razones para pensar, son realizables .

Gracias a las reglas de tráfico, un sistema basado en datos está fundamentalmente descentralizado. El sistema operativo, como un sistema que controla la ejecución y el intercambio de tareas, colas, etc., no es necesario en absoluto, incluso para la gestión de recursos. Todas estas solicitudes se realizan accediendo a servicios (como módulos de biblioteca) a través de sus puertos colocando datos con requisitos en ellos. Si no hay recursos (ocupado), la respuesta tendrá que esperar, posiblemente con una salida a través del puerto de tiempo de espera. Debido a la completa descentralización de todos los dispositivos y funciones del complejo informático, es fácilmente escalable, y los conjuntos de bloques de tareas se pueden cargar y duplicar según sea necesario y si hay recursos disponibles. En principio, las reglas de tráfico pueden complementarse con un servicio de paralelización para flujos y carga adicional de copias de bloques frente a los cuales se crea una cola de datos. Con la distribución exitosa de módulos entre los recursos informáticos autónomos de una red informática, se puede implementar una tubería de cálculo,cuando el resultado (para datos pasados) en la salida se obtiene simultáneamente con la recepción del siguiente lote de datos (nuevos) de origen.

Entonces, ¿qué pasos se deben tomar para implementar TI avanzada?

  1. Desarrollar una estructura de base de datos unificada adecuada para almacenar cualquier dato en su interconexión, incluidas las descripciones de metadatos.
    En principio, esto se ha hecho, pero no se ha publicado en ninguna parte (aunque probado).
  2. Desarrolle un sistema de organización de base de datos jerárquica y tecnología de transacción (arriba y abajo) basada en metadatos para excluir el direccionamiento específico a fuentes de datos y consumidores.
  3. Desarrollar y finalmente implementar en algún lugar una imitación de la tecnología Dataflow en el marco de las tecnologías web existentes en los servidores web utilizando un modelo de base de datos de estructura unificada implementado en tecnología de base de datos relacional. Por el momento, esta sería la inversión más efectiva.
  4. ().
    , , .
  5. , .
    DFCS . .
  6. .1, .
  7. , .
  8. .
  9. .
    .

Está claro que al usar la simulación de flujo de datos en las tecnologías web existentes (consulte la Sección 3), no se puede construir un sistema de control de procesos automatizado (APCS). Para hacer esto, es necesario implementar Dataflow “en hardware”, que es lo que estaban haciendo, hasta “perestroika”, en el instituto de investigación mencionado anteriormente con el propósito de usarlo en controladores multiprocesador. Pero puede darse cuenta fácilmente de todas las posibilidades para crear sistemas de gestión empresarial, desarrollar redes sociales independientes y gestionar procesos empresariales.

Creo que, en primer lugar, sería necesario cumplir con el ítem 1, especialmente porque la solución definitivamente existe, y luego con los ítems 2 y 3, que pueden realizarse utilizando tecnologías web estándar. Esto ya será suficiente para que todos puedan crear de manera independiente un sistema de gestión completo, que represente los recursos, los productos y la clientela de una empresa distribuida sin recurrir a programadores profesionales. Casi el mismo medio puede organizarse y crearse una "red social" dentro del departamento, la empresa y, además, en todas partes.

Pero esto no significa que los programadores se enfrenten al desempleo. Por el contrario, gracias a una interfaz unificada de intercambio de datos y clasificadores de metadatos, los servicios desarrollados por ellos ( Software as a Service ) podrán obtener el campo de aplicación más amplio y los desarrolladores recibirán un pago proporcional. Por supuesto, ya se está haciendo algo similar, pero por medios especiales a través de transformaciones intermedias de la presentación de datos.

Yquienes proporcionarán servicios de sistema para la integración en tecnologías de flujo de datos podrán obtener el máximo beneficio del proyecto . Esto no es publicidad, especialmente porque no hay un desarrollador ni distribuidores. Pero es obvio que hay muchos más usuarios que pueden desarrollar sus tareas aplicadas en imágenes en papel de forma económica e independiente y en el marco de una interfaz comprensible (más fácil que en Excel) que aquellos que están dispuestos a pagar por un software profesional costoso, que generalmente no cubre Todos los aspectos de la actividad. Además, lo más probable es que los desarrolladores profesionales de software aplicado también utilicen el servicio ofrecido, ya que de esta manera resolverán de una vez por todas los problemas de integración de datos a medida que se desarrollen los proyectos en desarrollo.

Si la simulación de Dataflow en tecnologías web es exitosa, habrá motivos para implementar la tecnología Dataflow en hardware. Lo más probable es que el desarrollo técnico comience con la cláusula 4 y la cláusula 6, es decir, producción de bases de datos en forma de dispositivos universales y, en consecuencia, abandonar los sistemas de archivos. La memoria Gigabyte debe usarse en la interfaz de la base de datos (donde pertenece) para colocar matrices en las solicitudes de datos. En los módulos, la memoria principal solo se necesita para comandos (en modo de solo lectura), y para datos solo necesitará, por ejemplo, varios cientos (o miles) de registros (puertos). Por ejemplo, con interrupción cuando cambia un estado. Y aquí, "pedir" algo como los últimos desarrollos de IBM Research, aparentemente "permitir realizar cálculos en celdas de memoria". Además de un caché para hacer cola.

El lenguaje de programación mencionado en la cláusula 5 también puede ser necesario para programar las unidades informáticas utilizadas en los almacenes de datos (véase la cláusula 6). DFCS se caracteriza por las siguientes características. En cada sección de la red de módulos (y dentro de cualquier módulo), los datos aparecen solo en las entradas y salidas, llamadas puertos. Es decir, es suficiente declarar la presentación de datos en los puertos de los módulos. Dado que el orden de ejecución de los módulos se determina a medida que los datos están listos, no es necesario prescribir una determinada secuencia de ejecución de los módulos; solo necesita describir su conmutación entre sí, no importa en qué orden. Es decir, el lenguaje es declarativo. Como todo se reduce a instrucciones con parámetros, no es necesario analizar ninguna construcción sintáctica.El programa en el proceso de "compilación" se puede cargar directamente en la memoria.

La estructura modular de los diagramas de flujo coincide perfectamente con el concepto de programación de arriba hacia abajo, y la interacción de los módulos solo a través de los puertos garantiza que se respeten los principios de encapsulación. Además, el principio modular y una interfaz natural para los datos crean las mejores condiciones para organizar un desarrollo colectivo de programas.

En la parte del software del lenguaje DFCS, se supone que usa etiquetas y comandos de transición, lo que parece contradecir los principios de la programación estructural. Sin embargo, en base a mi propia experiencia de programación, puedo argumentar que un programa con etiquetas e instrucciones de transición suele ser más compacto y más comprensible que con copias duplicadas duplicadas de bloques y un conjunto de "indicadores" para excluir los comandos de transición. Una opinión similar es compartida por algunos profesionales .

Se puede descargar una breve descripción del idioma del disco Yandex.

All Articles