Interopérabilité du système logiciel
Dans cet article, je parlerai des relations entre les programmes. La relation entre les programmes ou, en d'autres termes, l'interaction des programmes entre eux dans la grande majorité des cas est de recevoir des données d'un programme d'un autre. Par exemple, un programme d'enchères électroniques peut demander un taux de change à un autre programme. Ou, l'éditeur de texte peut être saisi par le texte saisi par l'utilisateur par le système d'exploitation à l'aide du pilote de clavier. Les programmes peuvent fournir un ensemble de fonctions d'interaction - API. Ou même avoir des mécanismes d'interaction entiers appelés protocoles lorsque de nombreux appels de fonction consécutifs sont utilisés, par exemple, pour la coordination complexe de tous les paramètres. Un grand pas en avant est la création de structures universelles - XML et Json. Les programmes peuvent interagir avec d'autres programmes de manière «impolie» - sans protocoles et API ouvertes: faire avancer les données de page en cas de saisisseurs, s'introduire dans des fichiers exécutables en tant que virus ou, inversement, les tuer en cas d'antivirus.Dans les technologies de l'information, comme les écosystèmes vivants, il existe une très forte influence mutuelle des systèmes logiciels les uns sur les autres et, de manière générale, elle peut être de deux types:- Premièrement, le système peut utiliser la couche sous-jacente en fonction du niveau de hiérarchie (alors que, en règle générale, les couches situées au-dessus n'affectent pas les couches sous-jacentes).
- Deuxièmement, un système peut interagir avec un autre système au même niveau de hiérarchie en utilisant diverses interfaces.
Vous pouvez parler de la hiérarchie séparément, mais en simplifiant, nous avons à l'esprit des couches comme les suivantes: OS (à son tour avec ses propres couches), plate-forme, programme, modules complémentaires (plugins), etc.De plus, par la nature des programmes en interaction, l'interaction peut être de deux types: des parties différentes interagissent ou sont identiques. Les observations montrent que dans le premier cas, leur nombre peut être relativement petit - par exemple, avec une douzaine d'organes dans le corps ou plusieurs composants d'un ordinateur, et si les termes sont les mêmes, alors il y en a généralement beaucoup: cellules dans l'organe, transistors dans le processeur, personnes dans la civilisation, les programmes comprennent également des millions d'instructions machine de plusieurs dizaines de types. De plus, chaque commande de machine, cellule, chaque transistor ou chaque neurone du réseau neuronal remplit une fonction très simple. On peut supposer qu'à la base même de toute chose, de tout système, se trouvent précisément de tels composants de base simples.La différence avec la faune est que les systèmes à différents niveaux sont assez indépendants et peuvent continuer à fonctionner lorsque la couche sous-jacente change à une autre: par exemple, le site Web continuera à s'ouvrir si vous changez le câble Ethernet à paire torsadée en Wifi.En général, l'interaction des systèmes logiciels peut être de plusieurs types:- Construit sur une «infrastructure» (par exemple, sur le système d'exploitation ou sur une plate-forme - par exemple, IBM Notes ou au sein d'un réseau social).
- Il utilise d' autres systèmes logiciels (par exemple, un site Web peut utiliser un SGBD relationnel, tel que MySQL, MS SQL Server ou Oracle).
- Se compose de (diverses bibliothèques et produits individuels peuvent être utilisés, par exemple, les sites utilisent tinyMCE ou des composants pour afficher un calendrier).
- Il s'intègre à (par exemple, notre système CPM est intégré à 1C, aux systèmes de téléphonie IP, aux systèmes d'acquisition. Les sites peuvent être intégrés aux systèmes de paiement, aux réseaux sociaux, etc.).
Comme tout autre système, le programme se compose de composants. En programmation, ils aiment réutiliser des composants s'ils ont déjà des composants qui implémentent des fonctionnalités similaires. C'est plus rapide que d'écrire votre composant, de le déboguer puis de le maintenir. L'envoi d'une lettre est un composant, l'écriture dans le journal est un autre composant, le graphique est le troisième, un éditeur de texte sur le site est tineyMCE et la recherche est lucene. Par conséquent, de nombreux programmes utilisent les mêmes composants.Souvent, les programmes vous permettent d'étendre vos fonctionnalités: les éditeurs de texte et les feuilles de calcul vous permettent de créer des macros, des navigateurs - ajouter des extensions, tous les CMS - les compléter avec des composants et des plug-ins tiers. Certains programmes vont plus loin dans cette voie et sont essentiellement des plates-formes de lancement d'autres applications: par exemple, les navigateurs ou les notes de lotus ibm.Le système d'exploitation lui-même est un programme dont le seul but est l'existence d'autres programmes. Il simplifie leur existence, isole du fer, offre la possibilité d'utiliser une interface graphique et donne accès au réseau, son but est d'assurer le travail des autres programmes.Dans le même temps, les systèmes d'exploitation, les plates-formes et même les CMS, qui sont installés à cause d'un seul composant, sont dans de nombreux cas beaucoup plus compliqués que le programme pour lequel ils sont utilisés, ils peuvent inclure de nombreuses fonctions différentes qui fournissent du travail: partager des ressources, fournir un mécanisme d'autorisation , simplifie l'accès à la base de données. Cela est dû à sa polyvalence (par exemple, le système d'exploitation Windows contient plusieurs sous-systèmes Win32, OS / 2) pour assurer le fonctionnement de tous les programmes possibles.La polyvalence entraîne toujours une complexité supplémentaire. Cela s'applique également aux composants que les programmeurs utilisent lors de l'écriture d'un programme, ils sont beaucoup plus complexes et ont un ensemble de fonctions beaucoup plus large, dont beaucoup ne sont pas nécessaires et ne sont pas utilisés. Les programmes sont souvent obligés de fournir une compatibilité descendante - par exemple, sous Windows, il était possible d'exécuter des applications DOS. Lorsque les systèmes interagissent, plusieurs effets intéressants peuvent se produire.Le premier est appelé synergieet son idée est que le terme est plus que la simple somme des termes. Autrement dit, si vous ajoutez une autre à une technologie, avec la synergie, la technologie résultante dépassera la première et la seconde. Et il peut s'agir d'un produit qualitativement différent. Autrement dit, si vous ajoutez un squelette de fer à l'ordinateur avec le programme, vous obtiendrez un robot plus grand que le morceau de fer et l'ordinateur. L'interaction d'un grand nombre de choses simples peut conduire à une sorte d'interactions complexes. La somme de choses simples rend les choses difficiles - un ensemble de transistors crée un ordinateur, un ensemble d'atomes crée un objet, les cellules du corps créent des organes. La somme des personnes - la civilisation - n'est pas seulement sept milliards de personnes, c'est quelque chose de plus.La deuxième pensée a été exprimée par Peter Norvig dans le rapport Everything is Miscellaneous. Cela m'a paru surprenant: si vous regardez un seul chimpanzé et une seule personne, vous verrez qu'il y a beaucoup de points communs entre eux. Eh bien, c'est clair que les chimpanzés sont un peu plus forts, la personne est un peu plus intelligente, mais en général, leur apparence est un peu similaire, leurs capacités physiques et même intellectuelles sont comparables. Mais maintenant, si vous regardez la culture des chimpanzés et la culture de l'humanité, vous verrez une énorme différence. La civilisation des gens ne peut même pas être comparée à la civilisation des chimpanzés. Pour une raison quelconque, cela m'a rappelé que 0.99 et 1.01 ne semblent pas être très différents, mais lorsqu'ils sont augmentés dans une large mesure, un nombre tendra à zéro et l'autre ira à l'infini.Pour ceux qui ont simplement défilé jusqu'à la fin: l'interaction des programmes peut être de différents types et son résultat peut conduire à un niveau fondamentalement nouveau du système logiciel. L'ensemble ne reflète pas toujours ce qui se passe dans ses parties constituantes. Merci de votre attention! Source: https://habr.com/ru/post/fr399489/
All Articles