Wie man Minen der Informationstechnologie umgeht

Der Artikel formuliert einige Probleme der Informationstechnologien (IT) und betrachtet einen Lösungsansatz, der für Entwickler von Architekturen von Computersystemen und Programmiersprachen sowie für Unternehmen im Bereich der IT von Interesse sein kann. Aber alle, mit Ausnahme einiger , glauben kaum, dass es Probleme gibt, zumindest in dem, was in diesem Artikel beschrieben wird, zumal sich die Branche mehr als entwickelt. Obwohl einige Probleme nicht erkannt werden, müssen sie lange und schrittweise „schleichend“ gelöst werden. Und es wäre möglich, Arbeitskräfte und Geld zu sparen, wenn Sie diese bewusst vollständig und sofort lösen.

Weder Wirtschaft noch soziale Kommunikation sind ohne den Einsatz fortschrittlicher IT bereits möglich. Schauen wir uns also an, warum die derzeit verwendeten Technologien nicht mehr geeignet sind und was durch sie ersetzt werden sollte. Der Autor wird für die konstruktive qualifizierte Diskussion dankbar sein und hofft, nützliche Informationen über moderne Lösungen für die aufgeworfenen „Probleme“ zu erhalten.

Die Ideen, die die Architektur von Computern definieren, haben sich seit der Zeit von Neumanns nicht wesentlich geändert. Es basiert auf einem Algorithmus, der gerade eine Folge von Befehlen ausführt, deren Daten verarbeitet werden. Hauptakteure sind daher die Prozesse (Controlflow), die (nach Prioritäten und Hierarchie) Rechenressourcen unter der Kontrolle des Betriebssystems (OS) bereitstellen.

Die Reihenfolge und Abhängigkeit der Verarbeitung aller Daten im Aggregat sind im zentralen (Leit-) Programm beschrieben. Und wenn ein neuer Datentyp erstellt wird, muss im führenden Programm der Start eines Algorithmus für die rechtzeitige Generierung vorgesehen und die Momente und Methoden ihrer Verwendung ("Rendezvous") mit anderen Programmen organisiert werden. Dafür ist es jedoch weiterhin erforderlich, die Datenstrukturen zu koordinieren, die vom Entwickler herausgefunden werden sollten (nicht ohne das kommerzielle Interesse des letzteren). Und wenn sich die Datensätze, die zuvor von unabhängigen führenden Prozessen verarbeitet wurden, gemäß der Logik der Integrationsentwicklung zu überschneiden beginnen, muss ein neuer führender Prozess entwickelt werden, der zuvor unabhängige Programme integriert.
All dies geschieht kontinuierlich, während sich die digitale Technologie weiterentwickelt. Dementsprechend sind immer mehr Kräfte und Mittel erforderlich, um Systeme in einem funktionsfähigen Zustand zu halten, die monopolistischer und weniger sichtbar werden. Selbst auf Unternehmensebene erreicht die Anzahl der verschiedenen Datenklassen (Tabellen oder Strukturen, die Daten enthalten) Hunderte und Tausende. Es ist unwahrscheinlich, dass es Spezialisten gibt, die sich im Großen und Ganzen vorstellen würden, dass sie tatsächlich alle gelagert werden. Es kommt vor, dass sich bei der Entwicklung von Verarbeitungssystemen in Datenbanken (DB) „Müll“ aus Daten in alten Strukturen ansammelt, der nicht bereits an neuen Verarbeitungsalgorithmen beteiligt ist, sondern beim Generieren einer Datenanforderung „aufgegriffen“ werden kann.

Es ist oft einfacher, neuen Anwendungsfunktionen ein neues Add-On gegenüber den alten hinzuzufügen, als vorhandene Objektprogrammiertechnologien zu verwenden, anstatt vorhandene Algorithmen und Datenstrukturen zu verstehen. Und so oft. Es ist leicht zu erkennen, dass dies eine Sackgasse ist.

Natürlich suchen und finden sie Wege aus der Sackgasse. Hierbei handelt es sich um "on the fly" -Datenbankänderungssysteme, Messaging-Protokolle und plattformübergreifende Backbones (Busse) für den Datenaustausch usw. All diese Technologien und Softwaretools werden manchmal mehrmals im Monat aktualisiert. Wenn dies jedoch weitergeht, wird der Gewinn aus der nächsten IT-Entwicklung geringer sein als die Kosten dieser Entwicklung. Die IT strebte aus folgenden Gründen eine Sackgasse an:

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

Der Autor erhebt keinen Anspruch auf umfassende Kenntnisse moderner Systemplattformen und Programmiersprachen, die sich insbesondere nach Erreichen des Rentenalters zu entwickeln begannen. Meine Programmiererfahrung begann mit der Entwicklung von Treibern für die Probenahme von Daten von Telemetrie-Rekordern zum Testen von Flugzeugen und Raketentriebwerken (einschließlich einer Mondrakete).

In jenen Tagen wurde die gesamte Software für den IVC-Komplex (zwei Mashrooms mit jeweils fast 200 Quadratmetern) durch ein Kabelprogramm für die anfängliche Eingabe einer Lochkarte und den Start des darin enthaltenen Codes sowie ein Minimum an Routinen in Form eines dünnen Lochkartenpakets erschöpft. Der Rest wer wie er kann. Für spezielle Telemetrie-Aufzeichnungsgeräte gab es jedoch keine Software.

Ich musste Maschinencodes und absolute Adressen programmieren und gleichzeitig eine Reihe von Treibern für verschiedene Ein- / Ausgabegeräte und Unterprogramme entwickeln, angefangen mit der Konvertierung von Dezimalzahlen in Binärcodes bis hin zur Rückformatierung. Nun, ich würde mich dann auf "Wir haben das nicht durchgemacht" beziehen und sogar den Sturz für sechs Monate in Baikonur, wo ein ähnliches System eingesetzt wurde, fallen lassen - selbst dort, sogar auf Geschäftsreisen, gaben sie ziemlich gute Schaffellmäntel aus. Und als ich dann endlich dort ankam, war es nicht mehr. Programmiererinnen haben dort zuvor studiert, aber da sie aus einem besonderen Trust einer anderen Abteilung stammten, sollten sie dies vor allem im Sommer nicht tun. Übrigens sagten sie, dass es damals noch Montage- und Schießdeckenbefestigungen gab. Als eines der Mädchen zum ersten Mal die Taste „Initial Input“ drückte,Gleichzeitig rumpelte der erste Schuss der Montagepistole. Sowohl das Mädchen als auch der Stuhl wurden einige Meter von der Fernbedienung entfernt weggetragen.

Ja, und ich konnte mich nicht von der Entwicklung der Architektur des gesamten Softwarekomplexes und den Phasen der Telemetrieverarbeitung ablenken lassen, obwohl ich damals kein Chef war. Also musste ich persönlich und im Laufe der Zeit einen Assembler entwickeln, dann Debugger (für 2 verschiedene Computertypen, von denen einer auch Lochkarte und der andere Lochband war) in Echtzeit mit Abfangen von Systemunterbrechungen und Erkennen einer Schleife. Als Absolvent des Physics and Technology Institute (MIPT) musste ich all diesen binären Unsinn auf mich nehmen und anderen klare Rechenalgorithmen hinterlassen. Und sie brachten mich in dieses Büro, weil in einem benachbarten Designbüro (das nach dem Krieg gegründet wurde und die Hälfte der Mitarbeiter zunächst Ingenieure und Designer der deutschen Junkers- und Messerschmidt-Fabriken waren, die zusammen mit der Ausrüstung in die UdSSR exportiert wurden).Mitarbeiter und ihre Familien) Ich habe Systeme von Turbostrahltriebwerken auf dem analogen Computerkomplex MPT-9 (Lampe, Foto unten - keine besseren Bilder; Schränke haben die Größe einer Person und die weißen Rechtecke sind Maßstäbe von Voltmetern pro 100 Volt) zum Debuggen von Motorsteuerungssystemen modelliert .



Typ AVM oder digitaler Computer - was ist der Unterschied? Und ich muss sagen, für den Absolventen der damaligen Sportabteilung gibt es wirklich fast keine. An meiner Fakultät wurde dies jedoch keineswegs gelehrt und später, wie es geschah, nicht nachgefragt. In der Militärabteilung wurden uns die Funktionsprinzipien von analogen und digitalen Computern (Halbaddierer, Schieberegister und all das) beigebracht, beispielsweise die Fähigkeit, die Parameter für den Abschuss von Erde-Erde-Raketen der Zielklasse auf die 5. Ziffer eines Rechenschiebers zu berechnen Meter Länge. Ich glaube, es gibt jetzt nichts Vergleichbares. Aber als sie beschlossen, einen Programmierkurs in unseren Kurs einzuführen, gaben fast alle (!) Studenten an, dass sie als zukünftige „reine Wissenschaftler“ dies niemals brauchen würden - und boykottierten die Vorlesungen. Dies galt natürlich nicht für Studenten der Fakultät für Computertechnik - für sie jede Mikrosekunde, die in den Routinen für BESM-6 gespeichert wurde,Gerüchten zufolge gab es eine Prämie von fast 20 Rubel. Dies trotz der Tatsache, dass das Stipendium in Seniorenkursen 55 Rubel betrug. Und wir, die Streikenden, haben die Lieferung von Hausarbeiten zum Programmieren abgesagt - aber dann haben ich und viele meiner Kommilitonen irgendwie programmiert.

Im Laufe der Zeit erschien für unseren Computer (nun, es war immer noch nicht BESM-6, aber einfacher und viel weniger bekannt) ein Übersetzer mit Algol-60, aber ohne Bibliotheken von Unterprogrammen waren sie irgendwie nicht erforderlich. In Assemblersprache, ja mit einem Debugger, war es einfach, alles zu programmieren. Als nächstes kam es zur Entwicklung von austauschbaren Magnetband- und Plattenbetriebssystemen (transparent von der Seite der Anwendungssoftware und der Bedienoberfläche - dies ist für einen möglichen Ausstieg aus stehenden Platten) mit der Steuerung, jetzt würden sie sagen, Bat-Dateien. Schließlich wurde ein Task-Supervisor entwickelt, der Skript-Bat-Dateien ausführte, um die vom Bediener angeforderten Daten abzurufen. Er wollte sogar ein vollwertiges Betriebssystem entwickeln, da es sich später als Unix-ähnlich herausstellte, aber im Zusammenhang mit dem Übergang zum Ryad-Computertyp wurde dies nicht unangemessen.

Fairerweise möchte ich sagen, dass ich mich nicht nur mit Systemsoftware beschäftigt habe. Als es notwendig wurde, ein schnelles Fourier-Transformationsprogramm für die Spektralanalyse zu entwickeln, musste ich dies schnell und schnell tun, zumal ich keine verständliche Beschreibung des FFT-Algorithmus finden konnte. Ich musste es neu erfinden. Nun, solche Dinge.

Ich stelle fest, dass alle entwickelten Algorithmen und Verarbeitungssysteme aufgrund der Geheimhaltung von allem und jedem in dieser Abteilung nirgendwo veröffentlicht wurden und darüber hinaus nicht dem Profil des Unternehmens entsprachen - nur einer Serviceabteilung.

Bereits vor der "Perestroika" wurde ich eingeladen, das Labor für Systemsoftware in einer Zweigstelle eines spezialisierten Moskauer Forschungsinstituts zu leiten. Die Aufgabe bestand darin, ein verteiltes Computersystem in einem Multiprozessor-Steuerungscontroller einschließlich Hardware und Software zu entwickeln. Nun, dann hörte dieses Forschungsinstitut wie viele andere auf zu existieren. Ich hielt es für notwendig, diese „Nostalgie“ nur in den Artikel aufzunehmen, um zu zeigen, dass der Autor einige Vorstellungen über Automatisierungssysteme hat, die möglicherweise etwas veraltet sind.

Wenn wir also einen sich entwickelnden, lebendigen und attraktiven sozialen Organismus und eine ihm entsprechende Wirtschaft aufbauen müssen, ist es nach Ansicht des Autors ratsam, die Prinzipien der Organisation der Informationstechnologie zu ändern. Nämlich:

  • , , .

Eine global verteilte Datenbank sollte ein Konglomerat hierarchisch organisierter Datenbanken sein, die auf einem einzigen Prinzip basieren.

Wenn die Menschheit jemals zustimmt, eine internationale wissenschaftliche Sprache zu schaffen, in der die Beziehung „wer (was), wen (was) enthält (enthält), zu ... gehört, fehlt von ..., wann, wo, war, wird, vor, nach, jetzt immer von ... bis, wenn ... dann, durch was, wie, warum usw. " Wenn sie explizit und eindeutig durch sprachliche Konstruktionen und / oder Beziehungssymbole dargestellt würden (die die in Metadaten beschriebenen Beziehungen von Datenstrukturen widerspiegeln können), könnten wissenschaftliche Artikel direkt in diese Wissensbasis geladen werden und die Möglichkeit bieten, semantischen Inhalt zu verwenden.

Die Architektur und Prinzipien eines solchen Datenbankautors entwickelten sich. Einige seiner Varianten wurden eingeführt und mehrere Jahre lang ohne Beschwerden im Büro des Rathauses mit fast einer Million Menschen eingesetzt.

  • Für jeden Datentyp müssen sein Zweck (und eine ausreichend detaillierte Textbeschreibung), seine Beziehung zu anderen Daten und der Algorithmus zum Abrufen aus zuvor empfangenen (oder berechneten) Daten angegeben werden. Ebenso sollte die Form ihrer Darstellung in einer typischen Benutzeroberfläche beschrieben und die zugehörigen Tools angegeben werden. Diese Merkmale und Werkzeuge, Metadaten genannt , sind ebenfalls normale Daten und müssen daher in einer Datenbank enthalten sein. Zumindest in der Datenbank, in der sie benötigt wurden, wenn sie nicht in einer übergeordneten Datenbank dargestellt wurden.

Metadaten dienen dazu, die potenzielle Existenz anzuzeigen und die Auswahl vorhandener Daten gemäß ihrer semantischen Bedeutung sicherzustellen. Lokale Metadaten sollten nach Möglichkeit Metadaten im Klassifikator einer Datenbank einer höheren Hierarchie zugeordnet werden. Der Autor verwendete zu dieser Zeit einige Analoga von Metadaten sowohl im Task Supervisor als auch im städtischen Renten- und Leistungszahlungssystem, dessen Datenbankarchitektur vom Autor entwickelt wurde, wo er die Automatisierungsabteilung zu einer Zeit leitete, als sich die Zahlungs- und Indexierungsalgorithmen der Renten von der Regierung änderten wenn nicht 3 mal im Monat.

Dies bedeutet nicht, dass sie sich nicht mit diesem Problem befassen. Erstens können Sie mit XML-Standards Daten mit Tags charakterisieren, wenn auch in linearen Dateien. Es gibt globalere Ansätze für das Problem: Google, zum Beispiel "OWL Ontology Description Language". Und hier schlägt der Autor äußerst radikale Lösungen vor, wenn die Daten in der Datenbank ohne Bezugnahme auf eine der ursprünglichen Strukturen gespeichert werden und die von den Benutzern benötigten Strukturen gemäß ihrer Beschreibung in den Metadaten gebildet werden.

  • Stream-Berechnungen sollten mit der Dataflow- Technologie durchgeführt werden, dh das Datenmanagement sollte durchgeführt werden. Neue Daten sollten gemäß dem für sie angegebenen Algorithmus berechnet werden, sobald die erforderlichen Anfangsdaten vorliegen. Berechnungen müssen dezentral und parallel im Netzwerk durchgeführt werden.

Die Datenverarbeitung sollte darin bestehen, neue Daten in die Datenbank zu schreiben, die gemäß dem Algorithmus berechnet werden, den sie anhand einer Stichprobe vergleicht, die die Bedingungen für die Angabe zuvor berechneter oder eingegebener Quelldaten erfüllt. Neue Daten werden automatisch empfangen, sobald die erforderliche Stichprobe erstellt wurde - und so weiter im gesamten Netzwerk verteilter Datenbanken. Die Reihenfolge der Aktionen muss nicht spezifiziert werden (d. H. Es ist nicht erforderlich, den Programmcode des Steuerprogramms zu schreiben), da bei der Verwaltung gemäß Daten die nächsten Aktionen aufgrund der Verfügbarkeit der erforderlichen Quellaktionen ausgeführt werden.

(In der Excel-Tabellenkalkulationsdatenbank wird ungefähr dieselbe Computertechnologie verwendet, bei der die nächsten Daten in den Zellen so berechnet werden, wie sie in den Zellen mit den Quelldaten berechnet werden. Dort müssen Sie auch die Reihenfolge der Befehle dafür nicht beschreiben.)

Bei der gesamten „Programmierung“ werden neue Daten in Metadaten mit ihren Attributen (einschließlich Zugriffsrechten), Beziehungen, Anzeigeeigenschaften in der Benutzeroberfläche (falls erforderlich) beschrieben, Bedingungen für die Attribute der Quelldaten angegeben, deren Werte ihr Auftreten im Beispiel bestimmen, und Einstellungen vorgenommen Verarbeitungsalgorithmus. In mehr als 99% der Situationen gibt der Algorithmus an, was mit den Daten aus einer Reihe von Stichproben zu tun ist: Addieren, Berechnen des Durchschnitts, Ermitteln des Maximums oder Minimums, Berechnen der statistischen Abweichungen, Bestimmen der Regressionsfunktion usw. nach Array der angegebenen Auswahl. Im allgemeinen Fall sind Berechnungen (die Summe der Produkte usw.) für mehrere Proben möglich, z. B. A N aus der Probe {N} und B K aus der Probe{K} usw., wobei k beispielsweise wiederum eine Stichprobe des Parameters K N aus der Stichprobe {N} ist . usw. Formeln, die in die Zellen zur Berechnung neuer Daten im Excel-Beispiel passen, können auf ähnliche Weise eine Beschreibung des Algorithmus in einem Softwaremodul zum Abrufen neuer Daten aus den Quelldaten in der Dataflow-Technologie erstellen. Und dafür müssen Sie wie in Excel normalerweise keine professionellen Programmierer gewinnen. Ist es manchmal und nur für eine bestimmte Aufgabe.

Mit wenigen Ausnahmen kann der gesamte Umfang der Informatisierungsaufgaben von Spezialisten der angewandten Industrie ohne die Einbeziehung professioneller Programmierer erstellt werden. Die Daten, mit denen sie sich befassen, können von denselben Metadatenexperten unabhängig voneinander beschrieben werden (sofern kein Analogon vorhanden ist). In Bezug auf Inhalt, Zweck und Bild können sie ihnen vertraute Papierdokumente kopieren. Ein einfacher Designer-Konstruktor wird dafür ausreichen. Jedes Dokument (auch ein Bericht oder ein wissenschaftlicher Artikel) ist nicht nur eine Textdatei, sondern eine Kombination von Informationen aus der Datenbank, die auch Tools für ihre Präsentation und Arbeit mit ihnen enthalten, die in den Metadaten angegeben sind.

Um diese Funktionen bereitzustellen, erweitern Browser ihre Funktionen ständig, indem sie Flash-Player, Optionen für ein Java-Skript, neue Tags, Webdienste usw. hinzufügen. Metadaten würden es ermöglichen, diese Prozesse zu organisieren, zu lokalisieren und zu organisieren.
Und Sie können den Empfang eines neuen beliebigen Dokuments (Datensatzes) jederzeit organisieren, ohne die vorhandenen Algorithmen für die Funktionsweise des gesamten Systems zu bearbeiten, da dieselben Daten aus einer verteilten Datenbank tatsächlich an einer Vielzahl unterschiedlicher Algorithmen zum Abrufen neuer Dokumente aus den gewünschten Beispielen teilnehmen können. Für die Implementierung der integrierten Bilanzierung des Handels mit Datenmanagement und die Implementierung einer einheitlichen verteilten Datenbank müssen Sie Ihre Berichte nicht einmal irgendwohin senden - beginnen Sie einfach zu funktionieren. Die angezeigten Daten werden automatisch erfasst und berücksichtigt.

Entwickler, die an der Automatisierung in Bezug auf Geschäftsprozesse beteiligt sind, können darauf hinweisen, dass all diese Funktionen seit langem in den Besonderheiten von BPM-Systemen implementiert sind. Und nur am Beispiel von BPM-Systemen sehen wir, wie geheim Ideen des Datenmanagements sind, d.h. Ohne die Essenz des Phänomens zu erkennen, versickern sie in der Praxis - natürlich, während sie noch unter der Kontrolle des zentralen Host-Programms stehen. Damit das BPM-System wie das „coolste“ „ELMA“ funktioniert, sollte das Unternehmen jedoch einen Programmierer haben, der die Programmiersprache C-sharpe gut beherrscht. Der Autor konnte an der Verwaltung dieses Systems teilnehmen.. Und ohne einen Vollzeitprogrammierer müssen Sie Ihre Strukturen und Geschäftsabläufe an die vorgeschlagenen Vorlagen anpassen. Dieser Ansatz unterscheidet sich jedoch nicht von der üblichen Praxis, Anwendungsanwendungen mit allen Problemen ihrer Anpassung und Integration zu erfassen.

Datenverwaltungsideen, die rein mathematisch in Form von orientierten Graphen und beweglichen Daten in Form von „Token“ formalisiert wurden, erwiesen sich in der Praxis als schwierig umzusetzen. Darüber hinaus ist die Verwendung eines teuren und energieintensiven assoziativen Speichers erforderlich. Daher schlägt der Autor eine Implementierung in Form eines „grobkörnigen“ Modells vor, bei dem jedes Modul die Verarbeitung der Quelle innerhalb der lokalen Datenbank vollständig durchführt. Ähnliche Module funktionieren in anderen lokalen Datenbanken und kombinieren die Ergebnisse in einer übergeordneten Datenbank. Wenn alle registrierten Datenquellen verarbeitet wurden, erhalten die neuen Daten den Status Bereit.
Wenn die lokale Datenbank keine Daten enthält, wird die Anforderung an die Datenbank einer höheren Ebene usw. gesendet. Und bereits daraus wird die Anfrage nach untergeordneten lokalen Datenbanken repliziert. Die Ergebnisse der Verfeinerung werden entweder in die Datenbank der obersten Ebene integriert und dann an die lokale Datenbank gesendet, die die Anforderung initiiert hat, oder höher in der Hierarchie, wenn die Anforderung von oben stammt. Daher ist es nicht erforderlich, die E-Mail-Adressen aller Quellen und Empfänger zu kennen. Für jede lokale Datenbank reicht es aus, nur die Adresse einer Datenbank mit höherer Hierarchie zu kennen. Dieses Prinzip der Organisation von Transaktionen ermöglicht ein leicht skalierbares und skalierbares System.
Der einfachste und klarste Berechnungsalgorithmus kann mithilfe von Flussdiagrammen angezeigt werden. Sie zeigen, welche Daten in jedes Softwaremodul eingegeben werden und wo die darin berechnete Ausgabe übertragen wird. Der Autor entwickelte die DFCS-Sprache zur Programmierung von Parallel Computing in einem von Datenflüssen gesteuerten System , auf dem alle Verbindungen von Flussdiagrammen beschrieben werden können.

Im Beispiel im folgenden Blockdiagramm geben Farbparallelogramme (groß und klein) Daten an und in weißen Blöcken - Programmmodule mit Datenverarbeitungsalgorithmen. Gepunktete Linien zeigen Aktionen an, die von elektromechanischen Geräten ausgeführt werden.



Das Blockdiagramm definiert genau, welche Module welchen zugeordnet sind, und es wird kein assoziativer Speicher benötigt. Es sollten jedoch einige Maßnahmen zur Datensynchronisation bereitgestellt werden, insbesondere wenn die Parallelisierung des "engen" Abschnitts des Algorithmuszweigs verwendet wird. Softwaremodule (PM) in einer optimalen Kombination werden in eine Recheneinheit (WB) geladen. Daten vom PM zum PM werden über Ports übertragen, die virtuell oder durch Register physischer Geräte dargestellt werden können. Bei der Verwaltung von Daten sind ein Modul, ein Gerät oder ein Port, eine Datei oder eine Abfrage an die Datenbank funktional identisch und austauschbar. Physische Ports werden zum Datenaustausch zwischen WBs über Datenkanäle und möglicherweise auch zwischen PMs in einem WB verwendet.Daten werden vorübergehend nur in Ports (Registern) und manchmal möglicherweise in einer Warteschlange gespeichert. Die Hauptdatenfelder sollten in der Datenbank gespeichert werden, die als separate spezialisierte Geräte ausgeführt werden sollte , da die Datenzugriffsschnittstelle unabhängig von der Struktur und den Beziehungen bestimmter Daten identisch sein sollte.

Daten zwischen Geräten werden über einen Datenbus übertragen, über den viele Geräte und Module, die ihn verwenden, platziert werden können. Vor dem Datenaustausch muss der Austausch von Geräten den Bus „greifen“, damit dann niemand eingreift. Die Erfassung erfolgt normalerweise gemäß dem Algorithmus zum Gewichten der Adressen von Geräten auf dem Bus und dauert mindestens so viele Taktzyklen wie die Bittiefe ihrer Adressen.
jedochEs gibt und wurde sogar in der Hardware des oben genannten Forschungsinstituts die Technologie der Buserfassung in 1 - 2 Zyklen durch Geräte unabhängig von deren Anzahl implementiert . Angesichts des technologischen Fortschritts können Sie Dutzende oder Hunderte von Datenbussen für den Austausch verwenden und einen kostenlosen auswählen. Die Architektur des Computerkomplexes ist in der folgenden Abbildung dargestellt. Komplexe können vernetzt werden, indem ihre Busse über Datenübertragungsadapter verbunden werden.

Es ist nicht das Betriebssystem, das den Betrieb der Module steuert, sondern das Datenbewegungsprotokoll (SDA) zusammen mit dem Transportprogramm. Das Verkehrssteuerungsprogramm ist sehr kompakt und befindet sich in jeder Recheneinheit.

Es ist SDA, das das Modul startet, wenn sich die Eingabedaten im Port befinden. Die resultierenden Ausgangsdaten werden im Ausgangsport abgelegt, von wo aus das Transportprogramm (oder der Treiber) sie über den Datenbus zum Eingangsport des nächsten Moduls überträgt, das mit dem ersten verbunden ist, und bereits dort startet es ein eigenes SDA-Programm. Befinden sich die Module in derselben Recheneinheit, wird das Transportprogramm usw. nicht verwendet. Wenn das Modul funktioniert hat, aber keine neue Eingabe vorhanden ist, stoppt der SDA die Ausführung dieses Moduls. Das Modul nimmt den Betrieb wieder auf, wenn dieser Port im Port angezeigt wird. Solche scheinbar offensichtlichen Regeln des SDA in der Praxis können jedoch den stabilen Betrieb des Datenflusssystems nicht gewährleisten. Die „richtigen“ Verkehrsregeln sind also viel interessanter und meiner Meinung nach realisierbar .

Dank der Verkehrsregeln ist ein datengesteuertes System grundsätzlich dezentralisiert. Das Betriebssystem als System, das die Ausführung und gemeinsame Nutzung von Aufgaben, Warteschlangen usw. steuert, wird überhaupt nicht benötigt, auch für das Ressourcenmanagement. Alle derartigen Anforderungen werden gestellt, indem über ihre Ports auf Dienste (als Bibliotheksmodule) zugegriffen wird, indem Daten mit Anforderungen darin platziert werden. Wenn keine Ressourcen vorhanden sind (beschäftigt), muss die Antwort warten, möglicherweise mit einem Exit über den Timeout-Port. Aufgrund der vollständigen Dezentralisierung aller Geräte und Funktionen des Computerkomplexes ist dieser leicht skalierbar, und bei Bedarf und wenn freie Ressourcen verfügbar sind, können Sätze von Taskblöcken geladen und dupliziert werden. Grundsätzlich können Verkehrsregeln durch einen Parallelisierungsdienst für Flows und das zusätzliche Laden von Kopien von Blöcken ergänzt werden, vor denen eine Datenwarteschlange erstellt wird. Mit der erfolgreichen Verteilung von Modulen auf die autonomen Rechenressourcen eines Computernetzwerks kann eine Berechnungspipeline implementiert werden.wenn das Ergebnis (für vergangene Daten) am Ausgang gleichzeitig mit dem Empfang des nächsten Stapels (neuer) Quelldaten erhalten wird.

Welche Schritte sollten also unternommen werden, um fortschrittliche IT zu implementieren?

  1. Entwicklung einer einheitlichen Datenbankstruktur, die zum Speichern von Daten in ihrer Verbindung geeignet ist, einschließlich Metadatenbeschreibungen.
    Im Prinzip wurde dies getan, aber nirgendwo veröffentlicht (obwohl getestet).
  2. Entwickeln Sie ein System hierarchischer Datenbankorganisation und Transaktionstechnologie (nach oben und unten) basierend auf Metadaten, um eine bestimmte Adressierung an Datenquellen und Verbraucher auszuschließen.
  3. Entwicklung und endgültige Implementierung einer Nachahmung der Datenflusstechnologie im Rahmen vorhandener Webtechnologien auf Webservern unter Verwendung eines in der relationalen Datenbanktechnologie implementierten Datenbankmodells mit einheitlicher Struktur. Im Moment wäre dies die effektivste Investition.
  4. ().
    , , .
  5. , .
    DFCS . .
  6. .1, .
  7. , .
  8. .
  9. .
    .

Es ist klar, dass mithilfe der Datenflusssimulation in vorhandenen Webtechnologien (siehe Abschnitt 3) kein automatisiertes Prozessleitsystem (APCS) erstellt werden kann. Zu diesem Zweck ist es erforderlich, den Datenfluss „in Hardware“ zu implementieren, was sie bis zur „Perestroika“ in dem oben genannten Forschungsinstitut zum Zweck der Verwendung in Multiprozessor-Controllern getan haben. Sie können jedoch problemlos alle Möglichkeiten zur Erstellung von Unternehmensverwaltungssystemen, zur Entwicklung unabhängiger sozialer Netzwerke und zur Verwaltung von Geschäftsprozessen nutzen.

Ich bin der Meinung, dass zunächst Schritt 1 erfüllt sein sollte, zumal es definitiv eine Lösung gibt, und dann die Schritte 2 und 3, die mit Standard-Webtechnologien ausgeführt werden können. Dies wird bereits für alle ausreichen, um unabhängig ein vollwertiges Managementsystem zu erstellen, das Ressourcen, Produkte und Kunden eines verteilten Unternehmens berücksichtigt, ohne auf professionelle Programmierer zurückgreifen zu müssen. Fast die gleichen Mittel können innerhalb der Abteilung, des Unternehmens und darüber hinaus überall "soziales Netzwerk" organisiert und geschaffen werden.

Dies bedeutet jedoch nicht, dass Programmierer von Arbeitslosigkeit betroffen sind. Im Gegenteil, dank einer einheitlichen Datenaustauschschnittstelle und Metadatenklassifizierern können die von ihnen entwickelten Dienste ( Software as a Service ) das breiteste Anwendungsfeld erreichen, und Entwickler werden proportional bezahlt. Ähnliches wird natürlich bereits getan, jedoch auf besondere Weise durch zwischengeschaltete Transformationen der Datenpräsentation.

UNDDiejenigen, die Systemdienste für die Integration in Dataflow-Technologien bereitstellen, können den maximalen Nutzen aus dem Projekt ziehen . Dies ist keine Werbung, zumal es weder einen Entwickler noch einen Distributor gibt. Es ist jedoch offensichtlich, dass es viel mehr Benutzer gibt, die in der Lage sind, ihre angewandten Aufgaben in Papierbildern kostengünstig unabhängig und im Rahmen einer verständlichen Oberfläche (einfacher als in Excel) zu entwickeln, als diejenigen, die bereit sind, für teure professionelle Software zu zahlen, die normalerweise nicht abgedeckt wird alle Aspekte der Aktivität. Darüber hinaus werden höchstwahrscheinlich auch professionelle Entwickler angewandter Software den angebotenen Service nutzen, da sie auf diese Weise die Probleme der Datenintegration im Zuge der Entwicklung der in Entwicklung befindlichen Projekte ein für alle Mal lösen.

Wenn die Simulation des Datenflusses in Webtechnologien erfolgreich ist, gibt es Gründe für die Implementierung der Datenflusstechnologie in Hardware. Höchstwahrscheinlich sollte die technische Entwicklung mit Abschnitt 4 und Abschnitt 6 beginnen, d. H. Erstellung von Datenbanken in Form von Universalgeräten und Verzicht auf Dateisysteme. Gigabyte-Speicher sollte in der Datenbankschnittstelle (wo er hingehört) verwendet werden, um Arrays auf Datenanforderungen zu platzieren. In Modulen wird der Hauptspeicher nur für Befehle (im schreibgeschützten Modus) benötigt, und für Daten werden beispielsweise nur mehrere hundert (oder Tausende) Register (Ports) benötigt. Zum Beispiel mit Unterbrechung, wenn sich ein Zustand ändert. Und hier "fragen" Sie nach so etwas wie den neuesten Entwicklungen von IBM Research und scheinen "Berechnungen in Speicherzellen durchführen zu können". Plus einen Cache zum Anstehen.

Die in Abschnitt 5 genannte Programmiersprache kann auch zum Programmieren der in Data Warehouses verwendeten Recheneinheiten erforderlich sein (siehe Abschnitt 6). DFCS zeichnet sich durch folgende Merkmale aus. In jedem Abschnitt des Netzwerks von Modulen (und in jedem Modul) erscheinen die Daten nur in der Zugehörigkeit zu den Ein- und Ausgängen, die als Ports bezeichnet werden. Das heißt, es reicht aus, die Darstellung von Daten in den Ports der Module zu deklarieren. Da die Ausführungsreihenfolge der Module festgelegt wird, sobald die Daten bereit sind, muss keine bestimmte Ausführungsreihenfolge der Module vorgegeben werden - Sie müssen nur deren Umschaltung miteinander beschreiben -, egal in welcher Reihenfolge. Das heißt, die Sprache ist deklarativ. Da es sich nur um Anweisungen mit Parametern handelt, ist das Parsen syntaktischer Konstruktionen nicht erforderlich.Das Programm, das gerade "kompiliert" wird, kann direkt in den Speicher geladen werden.

Der modulare Aufbau der Flussdiagramme passt perfekt zum Top-Down-Programmierkonzept, und die Interaktion von Modulen nur über Ports stellt sicher, dass die Kapselungsprinzipien eingehalten werden. Darüber hinaus schaffen das modulare Prinzip und eine natürliche Schnittstelle für Daten die besten Voraussetzungen für die Organisation einer kollektiven Programmentwicklung.

Im Programmteil der DFCS-Sprache sollen Beschriftungen und Übergangsbefehle verwendet werden, was sozusagen den Prinzipien der Strukturprogrammierung widerspricht. Aufgrund meiner eigenen Programmiererfahrung kann ich jedoch argumentieren, dass ein Programm mit Beschriftungen und Übergangsanweisungen normalerweise kompakter und verständlicher ist als mit doppelten Kopien von Blöcken und einer Reihe von „Flags“, um Übergangsbefehle auszuschließen. Eine ähnliche Meinung teilen einige Profis .

Eine kurze Beschreibung der Sprache kann von der Yandex-Diskette heruntergeladen werden.

All Articles