Interoperabilität des Softwaresystems

Bild

In diesem Artikel werde ich über die Beziehungen zwischen Programmen sprechen. Die Beziehung zwischen Programmen oder mit anderen Worten die Interaktion von Programmen untereinander besteht in den allermeisten Fällen darin , Daten von einem Programm von einem anderen zu empfangen. Beispielsweise kann ein elektronisches Gebotsprogramm einen Wechselkurs von einem anderen Programm anfordern. Oder der Texteditor kann von dem vom Benutzer eingegebenen Text vom Betriebssystem unter Verwendung des Tastaturtreibers eingegeben werden. Programme können eine Reihe von Funktionen für die Interaktion bereitstellen - API. Oder haben sogar ganze Interaktionsmechanismen, die als Protokolle bezeichnet werden, wenn viele aufeinanderfolgende Funktionsaufrufe verwendet werden, beispielsweise zur komplexen Koordination von Parametern. Ein großer Schritt vorwärts ist die Schaffung universeller Strukturen - XML ​​und Json. Programme können auf „unhöfliche“ Weise mit anderen Programmen interagieren - ohne Protokolle und offene APIs: Schrittdaten bei Grabbern, Einführung in ausführbare Dateien als Viren oder umgekehrt bei Antivirenprogrammen.

In Informationstechnologien wie lebenden Ökosystemen besteht ein sehr starker gegenseitiger Einfluss von Softwaresystemen aufeinander, und im Allgemeinen kann es zwei Arten geben:

  1. Erstens kann das System die zugrunde liegende Ebene entsprechend der Hierarchieebene verwenden (während sich die darüber liegenden Ebenen in der Regel nicht auf die zugrunde liegenden Ebenen auswirken).
  2. Zweitens kann ein System über verschiedene Schnittstellen mit einem anderen System auf derselben Hierarchieebene interagieren.

Sie können die Hierarchie separat behandeln, aber wenn wir sie vereinfachen, meinen wir Ebenen wie die folgenden: Betriebssystem (wiederum mit eigenen Ebenen), Plattform, Programm, Add-Ons (Plugins) usw.

Darüber hinaus kann die Interaktion aufgrund der Art der interagierenden Programme von zwei Arten sein: verschiedene Teile interagieren oder die gleichen. Beobachtungen zeigen, dass im ersten Fall ihre Anzahl relativ gering sein kann - zum Beispiel mit einem Dutzend Organen im Körper oder mehreren Komponenten eines Computers. Wenn die Begriffe gleich sind, gibt es normalerweise viele davon: Zellen im Organ, Transistoren im Prozessor, Menschen in der Zivilisation, Programme bestehen auch aus Millionen von Maschinenanweisungen verschiedener Art. Darüber hinaus erfüllt jeder Maschinenbefehl, jede Zelle, jeder Transistor oder jedes Neuron im neuronalen Netzwerk eine sehr einfache Funktion. Es kann davon ausgegangen werden, dass genau die Basis einer Sache, eines Systems genau solche einfachen Grundkomponenten sind.

Der Unterschied zu Wildtieren besteht darin, dass die Systeme auf verschiedenen Ebenen ziemlich unabhängig sind und weiterhin funktionieren können, wenn die zugrunde liegende Schicht zu einer anderen wechselt: Beispielsweise wird die Website weiterhin geöffnet, wenn Sie das Twisted-Pair-Ethernet-Kabel auf Wifi umstellen.

Im Allgemeinen kann das Zusammenspiel von Softwaresystemen von verschiedener Art sein:

  • Aufbauend auf "Infrastruktur" (zum Beispiel auf dem Betriebssystem oder auf einer Plattform - zum Beispiel IBM Notes oder in einem sozialen Netzwerk).

  • Es werden andere Softwaresysteme verwendet (z. B. kann eine Website ein relationales DBMS wie MySQL, MS SQL Server oder Oracle verwenden).

  • Besteht aus (verschiedene Bibliotheken und einzelne Produkte können verwendet werden, z. B. verwenden Websites tinyMCE oder Komponenten, um einen Kalender anzuzeigen).

  • Es lässt sich integrieren in (unser CPM-System ist beispielsweise in 1C, IP-Telefoniesysteme, Erfassungssysteme integriert. Websites können in Zahlungssysteme, in soziale Netzwerke usw. integriert werden).

Wie jedes andere System besteht das Programm aus Komponenten. Bei der Programmierung verwenden sie Komponenten gerne wieder, wenn sie bereits Komponenten haben, die ähnliche Funktionen implementieren. Dies ist schneller als das Schreiben, Debuggen und anschließende Verwalten Ihrer Komponente. Das Senden eines Briefes ist eine Komponente, das Schreiben in das Protokoll eine weitere Komponente, die grafische Darstellung die dritte, ein Texteditor auf der Site tineyMCE und die Suche lucene. Daher verwenden viele Programme dieselben Komponenten.

Oft können Sie mit Programmen Ihre Funktionalität erweitern: Mit Texteditoren und Tabellenkalkulationen können Sie Makros und Browser erstellen - Erweiterungen hinzufügen, alle CMS - und diese mit Komponenten und Plug-Ins von Drittanbietern ergänzen. Einige Programme gehen diesen Weg weiter und sind im Wesentlichen Plattformen zum Starten anderer Anwendungen: zum Beispiel Browser oder IBM Lotus Notes.

Das Betriebssystem selbst ist ein Programm, dessen einziger Zweck die Existenz anderer Programme ist. Es vereinfacht ihre Existenz, isoliert von Eisen, bietet die Möglichkeit, eine grafische Oberfläche zu verwenden und ermöglicht den Zugriff auf das Netzwerk. Sein Zweck ist es, die Arbeit anderer Programme sicherzustellen.

Gleichzeitig sind Betriebssysteme, Plattformen und sogar CMS, die aufgrund einer einzelnen Komponente installiert werden, in vielen Fällen viel komplizierter als das Programm, für das sie verwendet werden. Sie können viele verschiedene Funktionen enthalten, die Arbeit bereitstellen: Ressourcen gemeinsam nutzen, einen Autorisierungsmechanismus bereitstellen Vereinfachen Sie den Zugriff auf die Datenbank. Dies liegt an seiner Vielseitigkeit (zum Beispiel enthält das Windows-Betriebssystem mehrere Win32-, OS / 2-Subsysteme), um den Betrieb für alle möglichen Programme sicherzustellen.

Vielseitigkeit führt immer zu zusätzlicher Komplexität. Dies gilt auch für diejenigen Komponenten, die Programmierer beim Schreiben eines Programms verwenden. Sie sind viel komplexer und verfügen über einen viel größeren Funktionsumfang, von denen viele nicht erforderlich sind und nicht verwendet werden. Programme sind häufig gezwungen, Abwärtskompatibilität bereitzustellen - beispielsweise war es unter Windows möglich, DOS-Anwendungen auszuführen. Wenn Systeme interagieren, können mehrere interessante Effekte auftreten.

Die erste heißt Synergieund seine Idee ist, dass der Begriff mehr als nur die Summe der Begriffe ist. Das heißt, wenn Sie einer Technologie eine andere hinzufügen, übertrifft die resultierende Technologie mit Synergieeffekten sowohl die erste als auch die zweite. Und es kann ein qualitativ anderes Produkt sein. Das heißt, wenn Sie dem Computer mit dem Programm ein Eisenskelett hinzufügen, erhalten Sie einen Roboter, der größer ist als das Stück Eisen und der Computer. Das Zusammenspiel einer Vielzahl einfacher Dinge kann zu komplexen Wechselwirkungen führen. Die Summe der einfachen Dinge macht es schwierig - eine Reihe von Transistoren schafft einen Computer, eine Reihe von Atomen schafft ein Objekt, Zellen im Körper schaffen Organe. Die Summe der Menschen - der Zivilisation - beträgt nicht nur sieben Milliarden Menschen, es ist etwas mehr.

Der zweite Gedanke wurde von Peter Norvig in dem Bericht Everything is Miscellaneous geäußert. Es schien mir überraschend: Wenn Sie sich einen einzelnen Schimpansen und eine einzelne Person ansehen, werden Sie feststellen, dass sie viel gemeinsam haben. Nun, das heißt, es ist klar, dass Schimpansen etwas stärker sind, die Person etwas schlauer, aber im Allgemeinen ist ihr Aussehen ein bisschen ähnlich, ihre physischen und sogar intellektuellen Fähigkeiten sind vergleichbar. Aber wenn Sie sich jetzt die Kultur der Schimpansen und die Kultur der Menschheit ansehen, werden Sie einen großen Unterschied feststellen. Die Zivilisation der Menschen kann nicht einmal mit der Schimpansen-Zivilisation verglichen werden. Aus irgendeinem Grund erinnerte es mich daran, dass 0,99 und 1,01 nicht sehr unterschiedlich zu sein schienen, aber wenn sie in hohem Maße angehoben werden, tendiert eine Zahl gegen Null und die andere gegen Unendlich.

Für diejenigen, die einfach bis zum Ende gescrollt haben: Die Interaktion von Programmen kann von verschiedener Art sein und das Ergebnis kann zu einer grundlegend neuen Ebene des Softwaresystems führen. Das Ganze spiegelt nicht immer wider, was in seinen Bestandteilen geschieht. Vielen Dank für Ihre Aufmerksamkeit!

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


All Articles