Comment contourner les mines de technologie de l'information

L'article formule certains problèmes des technologies de l'information (TI) et envisage une approche de leur solution, qui peut intéresser les développeurs d'architectures de systèmes informatiques et de langages de programmation, ainsi que les entreprises du domaine des TI. Mais tous, à l'exception de certains , ne croient guère qu'il y ait des problèmes, du moins dans ce qui est décrit dans cet article, d'autant plus que l'industrie se développe plus que. Mais, bien que certains problèmes ne soient pas reconnus, ils doivent cependant être résolus de façon «rampante» pendant longtemps et progressivement. Et il serait possible d'économiser de la main-d'œuvre et de l'argent si vous les résolvez consciemment dans leur intégralité et immédiatement.

Ni l'économie ni les communications sociales ne sont déjà possibles sans l'utilisation de l'informatique avancée. Voyons donc pourquoi les technologies actuellement utilisées ne sont plus adaptées et ce qui devrait être remplacé par elles. L'auteur sera reconnaissant de la discussion constructive et qualifiée et espère trouver des informations utiles sur les solutions modernes aux «problèmes» soulevés.

Les idées qui définissent l'architecture des ordinateurs n'ont pas beaucoup changé depuis l'époque de von Neumann. Il est basé sur un algorithme en cours d'exécution d'une séquence de commandes dont les données sont traitées. Par conséquent, les principaux acteurs sont les processus (Controlflow), qui sont fournis (selon les priorités et la hiérarchie) des ressources informatiques sous le contrôle du système d'exploitation (OS).

La séquence et la dépendance du traitement de toutes les données dans l'ensemble sont décrites dans le programme central (principal). Et lors de la création d'un nouveau type de données, il est nécessaire de prévoir dans le programme phare le lancement d'un algorithme pour leur génération en temps opportun, et d'organiser les moments et la méthode de leur utilisation ("rendez-vous") avec d'autres programmes. Mais pour cela, il faut encore coordonner les structures de données qui doivent être découvertes auprès du développeur (non sans l'intérêt commercial de ce dernier). Et si les ensembles de données précédemment traités par des processus pilotes indépendants, selon la logique de développement de l'intégration, commencent à se croiser, alors il sera nécessaire de développer un nouveau processus pilote qui intègre des programmes précédemment indépendants.
Tout cela se produit en continu à mesure que la technologie numérique progresse et se développe. Et en conséquence, de plus en plus de forces et de moyens ne sont nécessaires que pour maintenir les systèmes en état de marche, qui deviennent de plus en plus monopolistiques et moins visibles. Même au niveau de l'entreprise, le nombre de classes de données différentes (tables ou structures contenant des données) atteint des centaines et des milliers. Il est peu probable que là où il y a des spécialistes qui, dans l'ensemble, s'imaginent qu'en fait, ils sont tous stockés. Il arrive qu'avec le développement de systèmes de traitement dans les bases de données (DB), les «déchets» des données dans les anciennes structures s'accumulent, ce qui ne participe pas déjà aux nouveaux algorithmes de traitement, mais il peut être «récupéré» lors de la génération d'une demande de données.

Il est souvent plus facile d'ajouter un nouveau module complémentaire aux anciens aux nouvelles fonctionnalités d'application que d'utiliser les technologies de programmation d'objets existantes, plutôt que de comprendre les algorithmes et les structures de données existants. Et tant de fois. Il est facile de voir que c'est une impasse.

Bien sûr, ils cherchent et trouvent des moyens de sortir de l'impasse. Il s'agit de systèmes de modification de base de données «à la volée», de protocoles de messagerie, de dorsales multiplateformes (bus) pour l'échange de données, etc. Et toutes ces technologies et plates-formes d'outils logiciels sont parfois mises à jour plusieurs fois par mois. Mais si cela continue, le gain du prochain développement informatique deviendra inférieur aux coûts de ce développement même. L'informatique visait une impasse pour les raisons suivantes:

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

L'auteur ne prétend pas avoir une connaissance approfondie des plates-formes système et des langages de programmation modernes, qui ont surtout commencé à se développer après avoir atteint l'âge de la retraite. Mon expérience en programmation a commencé avec le développement de pilotes pour l'échantillonnage de données à partir d'enregistreurs de télémétrie pour tester des moteurs d'avion et de fusée (y compris pour une fusée lunaire).

À cette époque, tous les logiciels du complexe IVC (deux mashrooms de près de 200 mètres carrés chacun) étaient épuisés par un programme câblé pour l'entrée initiale d'une carte perforée et le lancement du code qu'il contenait ainsi qu'un minimum de routines sous la forme d'un paquet maigre de cartes perforées. Le reste qui comme il peut. Mais pour les appareils d'enregistrement de télémétrie spéciaux, il n'y avait pas de logiciel.

J'ai dû programmer des codes machine et des adresses absolues, développer en même temps un tas de pilotes pour divers périphériques d'entrée / sortie et sous-programmes, en commençant par la conversion des nombres décimaux en codes binaires et le formatage. Eh bien, je ferais alors référence à «nous ne sommes pas passés par là», et même à faire une chute à l'automne pendant six mois à Baïkonour, où un système similaire a été déployé - puis même là-bas, même en voyage d'affaires, ils ont donné de très bons manteaux en peau de mouton. Et quand je suis enfin arrivé, ce n'était plus le cas. Les programmeuses y avaient déjà étudié, mais comme elles venaient d'une fiducie spéciale d'un autre département, elles n'étaient pas censées le faire, surtout en été. Au fait, ils ont dit qu'il y avait encore des montages et des prises de vues au plafond. Et donc, lorsque l'une des filles a appuyé pour la première fois sur la touche «Saisie initiale»,en même temps, le premier coup du pistolet de montage gronde. La fille et la chaise ont été emportées à quelques mètres de la télécommande.

Oui, et je ne pouvais pas me laisser distraire par le développement de l'architecture de l'ensemble du complexe logiciel et les étapes du traitement de la télémétrie, bien que je n'étais pas alors un patron. J'ai donc dû personnellement et en temps supplémentaire développer un assembleur, puis des débogueurs (pour 2 types d'ordinateurs différents, dont l'un était également une carte perforée et l'autre une bande perforée) en temps réel avec interception des interruptions du système et détection d'une boucle. En tant que diplômé de l'Institut de physique et de technologie (MIPT), j'ai dû assumer toutes ces bêtises binaires, laissant aux autres des algorithmes de calcul clairs. Et ils m'ont emmené dans ce bureau parce que dans un bureau d'études voisin (qui a été créé après la guerre et la moitié des employés étaient d'abord des ingénieurs et des concepteurs des usines allemandes Junkers et Messerschmidt qui ont été exportés vers l'URSS avec l'équipement,personnel et leurs familles) Je modélisais des systèmes de turboréacteurs sur le complexe informatique analogique MPT-9 (lampe, photo ci-dessous - pas de meilleures images; les armoires sont de la taille d'une personne et les rectangles blancs sont des échelles de voltmètres pour 100 volts) pour le débogage des systèmes de contrôle du moteur .



Type AVM ou ordinateur numérique - quelle est la différence? Et je dois dire que pour les diplômés du département d'éducation physique de cette époque, il n'y en a pratiquement pas. À ma faculté, cependant, ce n'était en aucun cas enseigné et, comme cela s'est produit, par la suite, pas demandé. Les principes de fonctionnement des ordinateurs analogiques et numériques (demi-additionneurs, registres à décalage et tout cela) nous ont été enseignés au département militaire, tels que les compétences de calcul des paramètres de lancement de missiles Terre-Terre de classe cible au 5ème chiffre sur une règle à calcul mètre de longueur. Je crois qu'il n'y a rien de tel maintenant. Mais quand ils ont décidé d'introduire un cours de programmation dans notre cours, presque tous (!) Les étudiants ont déclaré qu'ils, en tant que futurs «purs scientifiques», n'en auraient jamais besoin - et ont boycotté les cours. Bien sûr, cela ne s'appliquait pas aux étudiants du Département de génie informatique - pour eux chaque microseconde économisée dans les routines pour BESM-6,a donné, selon les rumeurs, une prime de près de 20 roubles. Ceci malgré le fait que la bourse dans les cours supérieurs était de 55 roubles. Et nous, les grévistes, avons annulé la livraison des articles de trimestre sur la programmation - mais ensuite, moi et beaucoup de mes camarades, nous avons fini par programmer.

Au fil du temps, pour notre ordinateur (enfin, ce n'était toujours pas BESM-6, mais plus simple et beaucoup moins connu), un traducteur avec Algol-60 est apparu, mais sans bibliothèques de sous-programmes, il n'y avait en quelque sorte pas besoin d'eux. En langage assembleur, oui avec un débogueur, il était facile de programmer n'importe quoi. En outre, il est venu au développement de systèmes d'exploitation de bandes magnétiques et de disques interchangeables (transparents du côté du logiciel d'application et de l'interface opérateur - c'est une façon possible de sortir des disques sur pied) avec les gestionnaires, maintenant ils diraient, des fichiers Bat. Enfin, un superviseur de tâches a été développé qui a exécuté des fichiers de chauves-souris de script pour récupérer les données demandées par l'opérateur. Il a même voulu développer un système d'exploitation à part entière, car il s'est avéré plus tard être de type Unix, mais dans le cadre de la transition vers les ordinateurs de type Ryad, cela n'est pas devenu inapproprié.

En toute honnêteté, je dirai que je n’étais pas seulement engagé dans les logiciels système. Quand il est devenu nécessaire de développer un programme de transformée de Fourier rapide pour l'analyse spectrale, j'ai dû le faire rapidement et rapidement, d'autant plus que je n'ai pas pu trouver une description intelligible de l'algorithme FFT. J'ai dû le réinventer. Eh bien, des choses comme ça.

Je note que tous les algorithmes et systèmes de traitement développés n'ont été publiés nulle part en raison du secret de tout et de tout dans ce département et, en outre, n'étaient pas conformes au profil de l'entreprise - juste un service.

Déjà avant la "perestroïka", j'ai été invitée à diriger le laboratoire de logiciel système dans une branche d'un institut de recherche spécialisé de Moscou. La tâche consistait à développer un système informatique distribué dans un contrôleur de contrôle multiprocesseur, comprenant du matériel et des logiciels. Eh bien, cet institut de recherche, comme beaucoup d'autres, a cessé d'exister. J'ai jugé nécessaire d'inclure cette «nostalgie» dans l'article uniquement dans le but de montrer que l'auteur a des notions sur les systèmes d'automatisation, peut-être légèrement dépassées.

Donc, si nous devons construire un organisme social dynamique et attractif en évolution et une économie qui lui soit adéquate, alors, comme le pense l'auteur, il est conseillé de changer les principes d'organisation des technologies de l'information. À savoir:

  • , , .

Une base de données distribuée mondiale devrait être un conglomérat de bases de données organisées hiérarchiquement construites sur un principe unique.

Si jamais l'humanité accepte de créer un langage scientifique international dans lequel la relation "qui (quoi), qui (quoi), contient (inclut), appartient à ..., est absente de ..., quand, où, était, sera, avant, après, maintenant, toujours, de ... à, si ... alors, par quoi, comment, pourquoi, etc. " S'ils étaient représentés explicitement et sans ambiguïté par des constructions linguistiques et / ou des symboles de relations (qui peuvent refléter les relations des structures de données décrites dans les métadonnées), alors les articles scientifiques pourraient être directement chargés dans cette base de connaissances, et avec la possibilité d'utiliser du contenu sémantique.

L'architecture et les principes d'un tel auteur de base de données développés. Certaines de ses variantes ont été introduites et ont été utilisées pendant plusieurs années sans faille dans le système administratif de l'hôtel de ville avec près d'un million de personnes.

  • Pour chaque type de données, son objectif (et une description textuelle suffisamment détaillée), sa relation avec d'autres données et l'algorithme pour les obtenir à partir de données précédemment reçues (ou calculées) doivent être indiqués. De même, la forme de leur présentation dans une interface utilisateur typique doit être décrite et les outils associés doivent être indiqués. Ces caractéristiques et outils, appelés métadonnées , sont également des données ordinaires et doivent donc être contenues dans une base de données. Au moins dans la base de données où ils étaient nécessaires, sinon présentés dans une base de données de niveau supérieur.

Les métadonnées servent à indiquer l'existence potentielle et à assurer la sélection des données existantes en fonction de leur signification sémantique. Les métadonnées locales doivent, si possible, être mises en correspondance avec des métadonnées dans le classificateur d'une base de données d'une hiérarchie supérieure. L'auteur a utilisé un analogue des métadonnées à l'époque à la fois dans le superviseur des tâches et dans le système de paiement des pensions et des prestations de la ville, dont l'architecture de la base de données a été développée par l'auteur, où il dirigeait le service d'automatisation à un moment où les algorithmes de paiement et d'indexation des pensions changeaient par le gouvernement sinon 3 fois par mois.

Cela ne veut pas dire qu'ils ne traitent pas ce problème. Tout d'abord, les normes XML vous permettent de caractériser les données avec des balises, bien que dans des fichiers linéaires. Il existe des approches plus globales du problème: google, par exemple, «langage de description de l'ontologie OWL». Et ici, l'auteur propose des solutions extrêmement radicales lorsque les données sont stockées dans la base de données sans référence à aucune des structures d'origine, et que les structures requises par les utilisateurs sont formées conformément à leur description dans les métadonnées.

  • Les calculs de flux doivent être effectués à l'aide de la technologie Dataflow , c'est-à-dire que la gestion des données doit être effectuée. Les nouvelles données doivent être calculées conformément à l'algorithme spécifié pour elles, dès que les données initiales nécessaires apparaissent. Les calculs doivent être effectués de manière décentralisée et en parallèle sur le réseau.

Le traitement des données devrait consister à écrire de nouvelles données dans la base de données, calculées selon l'algorithme qu'il compare en utilisant un échantillon qui remplit les conditions de spécification des données sources précédemment calculées ou entrées. Les nouvelles données seront automatiquement reçues dès que l'échantillon nécessaire sera formé - et ainsi de suite dans l'ensemble du réseau de bases de données distribuées. La séquence d'actions n'a pas besoin d'être spécifiée (c'est-à-dire qu'il n'est pas nécessaire d'écrire le code de programme du programme de contrôle), car lors de la gestion en fonction des données, les actions suivantes sont effectuées en fonction de la disponibilité des sources nécessaires pour cela.

(Environ la même technologie informatique est utilisée dans la base de données de feuille de calcul Excel, où les données suivantes dans les cellules sont calculées comme elles sont calculées dans les cellules avec les données source. Et là, vous n'avez également pas besoin de décrire la séquence de commandes pour cela.)

Toute la «programmation» revient à décrire les nouvelles données dans les métadonnées avec leurs attributs (y compris les droits d'accès), les relations, les caractéristiques d'affichage dans l'interface utilisateur (si nécessaire), à ​​spécifier les conditions pour les attributs des données sources dont les valeurs déterminent leur occurrence dans l'échantillon et à définir algorithme de traitement. L'algorithme, dans plus de 99% des situations, revient à indiquer ce qu'il faut faire avec les données d'une série d'échantillons: additionner, calculer la moyenne, trouver le maximum ou le minimum, calculer les écarts statistiques, déterminer la fonction de régression, etc. par tableau de la sélection spécifiée. Dans le cas général, des calculs (la somme des produits, etc.) sont possibles pour plusieurs échantillons, par exemple, A N de l'échantillon {N} et B K de l'échantillon{K} , etc., où k , par exemple, est à son tour un échantillon du paramètre K N de l'échantillon {N} . etc. Les formules qui tiennent dans les cellules pour calculer de nouvelles données dans l'exemple Excel peuvent de la même manière composer une description de l'algorithme dans un module de programme pour obtenir de nouvelles données à partir des données source dans la technologie Dataflow. Et pour cela, comme dans Excel, vous n'aurez généralement pas besoin d'attirer des programmeurs professionnels. Est-ce parfois et uniquement pour une tâche spécifique.

Ainsi, à quelques exceptions près, l'ensemble des tâches de l'informatisation peuvent être créées par des spécialistes des industries appliquées sans la participation de programmeurs professionnels. Les données dont ils traitent peuvent être décrites par les mêmes experts en métadonnées indépendamment (s'il n'y a pas d'analogue) et en termes de contenu, de finalité et d'image, ils peuvent copier des documents papier qui leur sont familiers. Un simple concepteur constructeur suffira pour cela. Tout document (également un rapport ou un article scientifique) ne sera pas seulement un fichier texte, mais une combinaison d'informations de la base de données, également fournies avec des outils pour leur présentation et leur travail, indiqués dans les métadonnées.

Maintenant, pour fournir de telles capacités, les navigateurs étendent constamment leurs fonctionnalités en ajoutant des lecteurs flash, des options pour un script Java, en introduisant de nouvelles balises, des services Web, etc. Les métadonnées permettraient d'organiser, de localiser et d'organiser ces processus.
Et vous pouvez toujours organiser la réception d'un nouveau document arbitraire (ensemble de données) sans modifier les algorithmes existants pour le fonctionnement de l'ensemble du système, car les mêmes données d'une base de données distribuée, en fait, peuvent participer à une variété d'algorithmes différents pour obtenir de nouveaux documents à partir des échantillons souhaités. Pour la mise en œuvre de la comptabilité intégrée du commerce dans la gestion des données et la mise en œuvre d'une base de données distribuée unifiée, vous n'avez même pas besoin d'envoyer vos rapports n'importe où - commencez simplement à fonctionner. Les données qui apparaissent seront récupérées et prises en compte automatiquement.

Les développeurs impliqués dans l'automatisation par rapport aux processus métier peuvent indiquer que toutes ces fonctionnalités ont longtemps été implémentées dans les spécificités des systèmes BPM. Et juste sur l'exemple des systèmes BPM, nous voyons comment les idées de gestion des données sont secrètes, c'est-à-dire sans se rendre compte de l'essence du phénomène, ils s'infiltrent dans la pratique - bien sûr, jusqu'à présent, sous le contrôle d'un programme central d'accueil. Mais, hélas, pour que le système BPM fonctionne, comme le «ELMA» le plus «cool», l'entreprise devrait avoir un programmeur avec une bonne maîtrise du langage de programmation C-sharpe. L'auteur a pu participer à l'administration de ce système.. Et sans programmeur à temps plein, vous devez ajuster vos structures et procédures commerciales aux modèles proposés. Mais cette approche n'est pas différente de la pratique habituelle d'acquérir des applications applicatives avec tous les problèmes de leur adaptation et de leur intégration.

Les idées de gestion des données purement formalisées mathématiquement sous forme de graphiques orientés et de données mobiles sous forme de «jetons» se sont avérées difficiles à mettre en œuvre dans la pratique. De plus, nécessitant l'utilisation d'une mémoire associative coûteuse et énergivore. Par conséquent, l'auteur propose une implémentation sous la forme d'un modèle «à grain grossier», où chaque module effectue complètement le traitement de la source dans la base de données locale. Des modules similaires fonctionneront dans d'autres bases de données locales, combinant les résultats dans une base de données de niveau supérieur. Lorsque toutes les sources de données enregistrées sont traitées, les nouvelles données reçoivent l'état de prêt.
S'il n'y a pas de données dans la base de données locale, la demande est envoyée à la base de données d'un niveau supérieur, etc. Et déjà à partir d'elle, la demande sera répliquée selon des bases de données locales subordonnées. Les résultats de son affinement seront également intégrés à la base de données de niveau supérieur, puis envoyés à la base de données locale à l'origine de la demande, ou plus haut dans la hiérarchie si la demande venait d'en haut. Ainsi, il n'est pas nécessaire de connaître les adresses e-mail de toutes les sources et destinataires. Pour chaque base de données locale, il suffit de connaître uniquement l'adresse d'une base de données de hiérarchie supérieure. Ce principe d'organisation des transactions permet un système facilement évolutif et évolutif.
L'algorithme de calcul le plus simple et le plus clair peut être affiché à l'aide d'organigrammes. Ils montrent quelles données sont entrées dans chaque module logiciel et où la sortie calculée est transmise. L'auteur a développé le langage DFCS pour programmer l'informatique parallèle dans un système contrôlé par des flux de données , sur lequel toutes les connexions des organigrammes peuvent être décrites.

Dans l'exemple du diagramme ci-dessous, les parallélogrammes de couleur (grands et petits) indiquent les données, et dans les blocs blancs - les modules de programme avec des algorithmes de traitement des données. Les lignes pointillées indiquent les actions effectuées par les appareils électromécaniques.



Dans le schéma fonctionnel, il est déterminé avec précision quels modules sont connectés avec lesquels, et aucune mémoire associative n'est nécessaire, mais certaines mesures de synchronisation des données doivent être fournies, en particulier si la parallélisation de la section «étroite» de la branche d'algorithme est utilisée. Les modules logiciels (PM) dans une combinaison optimale sont chargés dans une unité informatique (WB). Les données du PM au PM sont transmises via des ports qui peuvent être représentés virtuellement ou par des registres de dispositifs physiques. Lors de la gestion des données, un module, un périphérique ou un port, un fichier ou une requête vers la base de données sont fonctionnellement identiques et interchangeables. Les ports physiques sont utilisés pour échanger des données entre WB sur des canaux de données et, éventuellement, également entre PM dans un WB.Les données sont temporairement stockées uniquement dans des ports (registres) et parfois, éventuellement dans une file d'attente. Et les principaux tableaux de données doivent être stockés dans la base de données, qui doit être exécutée en tant que périphériques spécialisés distincts , car l'interface d'accès aux données doit être la même, quelles que soient la structure et les relations de données spécifiques.

Les données entre les appareils sont transmises via un bus de données sur lequel de nombreux appareils et modules les utilisant peuvent être placés. Avant de commencer à échanger des données, les dispositifs d'échange doivent «saisir» le bus pour que personne n'intervienne. La capture se produit généralement selon l'algorithme de pondération des adresses des périphériques sur le bus et prend au moins autant de cycles d'horloge que la profondeur de bits de leurs adresses.
toutefoisil existe et a même été implémenté dans le matériel de l'institut de recherche précité la technologie de capture de bus en 1 à 2 cycles par des appareils, quel que soit leur nombre . Compte tenu des progrès de la technologie, vous pouvez utiliser des dizaines ou des centaines de bus de données pour l'échange, en choisissant un libre. L'architecture du complexe informatique est illustrée dans la figure ci-dessous. Les complexes peuvent être mis en réseau en connectant leurs bus via des adaptateurs de transfert de données.

Ce n'est pas le système d'exploitation (OS) qui contrôle le fonctionnement des modules, mais le protocole de transfert de données (SDA) avec le programme de transport. Le programme de contrôle du trafic est très compact et se trouve dans chaque unité informatique.

C'est SDA qui lance le module si les données d'entrée sont dans le port. Les données de sortie résultantes sont placées dans le port de sortie, d'où le programme de transport (ou le pilote) les transfère via le bus de données au port d'entrée du module suivant connecté au premier, et déjà là son propre programme SDA le lance. Si les modules sont dans la même unité de calcul, le programme de transport n'est pas utilisé, etc. Si le module a fonctionné, mais qu'il n'y a pas de nouvelle entrée, le SDA arrête l'exécution de ce module. Le module reprendra son fonctionnement lorsque ce port apparaîtra dans le port. Cependant, de telles règles apparemment évidentes du SDA dans la pratique ne sont pas en mesure d'assurer le fonctionnement stable du système Dataflow. Les «bonnes» règles de circulation sont donc beaucoup plus intéressantes et, j'ai des raisons de penser, réalisables .

Grâce aux règles de circulation, un système piloté par les données est fondamentalement décentralisé. Le système d'exploitation, en tant que système qui contrôle l'exécution et le partage des tâches, des files d'attente, etc., n'est pas du tout nécessaire, même pour la gestion des ressources. Toutes ces demandes sont faites en accédant aux services (en tant que modules de bibliothèque) via leurs ports en y plaçant des données avec des exigences. S'il n'y a pas de ressources (occupées), alors la réponse devra attendre, éventuellement avec une sortie via le port de temporisation. En raison de la décentralisation complète de tous les appareils et fonctions du complexe informatique, il est facilement évolutif et des ensembles de blocs de tâches peuvent être chargés et dupliqués si nécessaire et si des ressources libres sont disponibles. En principe, les règles de trafic peuvent être complétées par un service de parallélisation des flux et un chargement supplémentaire de copies de blocs devant lesquels une file d'attente de données est créée. Avec la distribution réussie de modules parmi les ressources informatiques autonomes d'un réseau informatique, un pipeline de calcul peut être mis en œuvre,lorsque le résultat (pour les données antérieures) à la sortie est obtenu simultanément avec la réception du prochain lot de (nouvelles) données source.

Alors, quelles mesures devraient être prises pour mettre en œuvre l'informatique avancée?

  1. Développer une structure de base de données unifiée appropriée pour stocker toutes les données dans leur interconnexion, y compris les descriptions de métadonnées.
    En principe, cela a été fait, mais n'a été publié nulle part (bien que testé).
  2. Développer un système d'organisation hiérarchique des bases de données et de technologie de transaction (de haut en bas) basé sur des métadonnées pour exclure un adressage spécifique aux sources de données et aux consommateurs.
  3. Développer et enfin mettre en œuvre quelque part une imitation de la technologie Dataflow dans le cadre des technologies Web existantes sur des serveurs Web en utilisant un modèle de base de données à structure unifiée implémenté dans la technologie de base de données relationnelle. Pour le moment, ce serait l'investissement le plus efficace.
  4. ().
    , , .
  5. , .
    DFCS . .
  6. .1, .
  7. , .
  8. .
  9. .
    .

Il est clair qu'en utilisant la simulation Dataflow dans les technologies Web existantes (voir l'article 3), un système de contrôle de processus automatisé (APCS) ne peut pas être construit. Pour ce faire, il est nécessaire de mettre en œuvre Dataflow «en matériel», ce qu'ils faisaient, jusqu'à la «perestroïka», dans l'institut de recherche précité à des fins d'utilisation dans des contrôleurs multiprocesseurs. Mais vous pouvez facilement réaliser toutes les possibilités de création de systèmes de gestion d'entreprise, de développement de réseaux sociaux indépendants et de gestion des processus métier.

Je crois que, tout d'abord, il serait nécessaire de remplir le point 1, d'autant plus que la solution existe définitivement, puis les points 2 et 3, qui peuvent être effectués à l'aide des technologies Web standard. Cela suffira déjà à tout le monde pour créer indépendamment un système de gestion à part entière, tenant compte des ressources, des produits et de la clientèle d'une entreprise distribuée sans recourir à des programmeurs professionnels. Presque les mêmes moyens peuvent être organisés et créés "réseau social" au sein du département, de l'entreprise et, plus loin, partout.

Mais cela ne signifie pas que les programmeurs sont confrontés au chômage. Au contraire, grâce à l'interface d'échange de données unifiée et aux classificateurs de métadonnées, les services développés par eux ( Software as a Service ) pourront obtenir le champ d'application le plus large, et les développeurs seront payés proportionnellement. Bien sûr, quelque chose de similaire est déjà en cours, mais par des moyens spéciaux grâce à des transformations intermédiaires de la présentation des données.

ETceux qui fourniront des services système pour l'intégration dans les technologies Dataflow pourront tirer le maximum d'avantages du projet . Ce n'est pas de la publicité, d'autant plus qu'il n'y a ni développeur ni distributeurs. Mais il est évident qu'il y a beaucoup plus d'utilisateurs qui sont capables de développer leurs tâches appliquées dans des images papier de manière indépendante et à moindre coût dans le cadre d'une interface compréhensible (plus facile que dans Excel) que ceux qui sont prêts à payer pour un logiciel professionnel coûteux, qui ne couvre généralement pas tous les aspects de l'activité. De plus, très probablement, les développeurs professionnels de logiciels appliqués utiliseront également le service offert, car ils résoudront ainsi une fois pour toutes les problèmes d'intégration de données au fur et à mesure du développement des projets en cours de développement.

Si la simulation de Dataflow dans les technologies Web réussit, il y aura lieu d'implémenter la technologie Dataflow dans le matériel. Le développement technique devrait très probablement commencer par les articles 4 et 6, c'est-à-dire la production de bases de données sous forme de dispositifs universels et, en conséquence, l'abandon des systèmes de fichiers. La mémoire Gigabyte doit être utilisée dans l'interface de base de données (où elle appartient) pour placer des tableaux sur les demandes de données. Dans les modules, la mémoire principale n'est nécessaire que pour les commandes (en mode lecture seule), et pour les données, elle ne prendra, disons, que plusieurs centaines (ou milliers) de registres (ports). Par exemple, avec interruption lorsqu'un état change. Et ici, «demander» quelque chose comme les derniers développements d'IBM Research, apparemment «permettre d'effectuer des calculs dans des cellules de mémoire». Plus un cache pour la mise en file d'attente.

Le langage de programmation mentionné à l'article 5 peut également être nécessaire pour programmer les unités de calcul utilisées dans les entrepôts de données (voir l'article 6). Le DFCS se caractérise par les caractéristiques suivantes. Dans chaque section du réseau de modules (et à l'intérieur de n'importe quel module), les données n'apparaissent qu'en appartenance aux entrées et sorties, appelées ports. Autrement dit, il suffit de déclarer la présentation des données dans les ports du module. Étant donné que l'ordre d'exécution des modules est déterminé lorsque les données sont prêtes, il n'est pas nécessaire de prescrire une certaine séquence d'exécution des modules - il suffit de décrire leur commutation les uns avec les autres - de toute façon, dans quel ordre. Autrement dit, le langage est déclaratif. Comme tout se résume à des instructions avec des paramètres, l'analyse de toute construction syntaxique n'est pas requise.Le programme en cours de "compilation" peut être directement chargé en mémoire.

La structure modulaire des organigrammes correspond parfaitement au concept de programmation descendante, et l'interaction des modules uniquement via les ports garantit le respect des principes d'encapsulation. De plus, le principe modulaire et une interface naturelle pour les données créent les meilleures conditions pour organiser un développement collectif de programmes.

Dans la partie logicielle du langage DFCS, il est censé utiliser des labels et des commandes de transition, ce qui semble contredire les principes de programmation structurelle. Cependant, sur la base de ma propre expérience de programmation, je peux affirmer qu'un programme avec des étiquettes et des instructions de transition est généralement plus compact et plus compréhensible qu'avec des copies dupliquées de blocs et un ensemble de «drapeaux» pour exclure les commandes de transition. Une opinion similaire est partagée par certains pros .

Une brève description de la langue peut être téléchargée à partir du disque Yandex.

All Articles