Qu'est-ce que le middleware exactement?


J'ai entendu beaucoup de gens parler récemment à propos de middleware, mais quelle est la définition exacte de middleware? Quand je regarde dans middleware, je trouve beaucoup d'informations et quelques définitions, mais en lisant ces informations et définitions, il semble que la plupart du temps toutes les "marchandises" sont au milieu de quelque chose. Alors, sont toutes les choses middleware?

Ou avez-vous un exemple de ware qui n'est pas un middleware?

Author: nbro, 2010-05-25

13 answers

Disons que votre entreprise fabrique 4 produits différents, votre client a 3 autres produits différents provenant de 3 autres sociétés différentes.

Un jour, le client a pensé, pourquoi ne pas intégrer tous nos systèmes dans un énorme système. Dix minutes plus tard, leur service informatique a déclaré que cela prendrait 2 ans.

Vous (le développeur sage) avez dit, pourquoi ne pas simplement intégrer tous les différents systèmes et les faire fonctionner ensemble dans un environnement homogène? Le responsable client vous regarde... Vous avez continué, nous utiliserons un Middleware, nous étudierons les entrées / sorties de tous les différents systèmes, les ressources qu'ils utilisent, puis choisirons un framework Middleware approprié.

Toujours expliquer au responsable non technique
Avec le framework Middleware au milieu, le premier système produira X choses, le système Y et Z consommerait ces sorties et ainsi de suite.

 159
Author: medopal, 2012-11-17 17:42:21

Middleware est un terme terriblement nébuleux. Ce qui est "middleware" dans un cas ne sera pas dans un autre. En général, vous pouvez vous attendre à ce que quelque chose classé comme middleware ait les caractéristiques suivantes:

  • Principalement (généralement exclusivement) les logiciels; n'a généralement pas besoin de matériel spécialisé.

  • Si elle n'était pas là, les applications qui en dépendent devraient l'intégrer dans leur application et connaîtraient beaucoup de duplication.

  • Connecte presque certainement deux applications et transmet des données entre elles.

Vous remarquerez que c'est à peu près la même définition d'un système d'exploitation. Ainsi, par exemple, une pile TCP/IP ou une mise en cache pourrait être considérée comme un middleware. Mais votre système d'exploitation pourrait également fournir les mêmes fonctionnalités. En effet, le middleware peut être considéré comme une extension spéciale à un système d'exploitation, spécifiques à un ensemble d'applications qui en dépendent. Il fournit simplement un service de niveau supérieur.

Quelques exemples de middleware:

  • cache distribué
  • file d'attente de messages
  • moniteur de transactions
  • réécriveur de paquets
  • système de sauvegarde automatisé
 71
Author: John Feminella, 2010-05-25 13:15:25

, Wikipédia a une très bonne explication: http://en.wikipedia.org/wiki/Middleware

Il commence par

Middleware est un logiciel informatique qui relie des composants logiciels ou des applications. Le logiciel se compose d'un ensemble de services qui permet à plusieurs processus exécutés sur une ou plusieurs machines d'interagir.

Qu'est-Ce que le Middleware donne quelques exemples.

 18
Author: aioobe, 2010-05-25 13:12:10

Il y a (au moins) trois définitions différentes dont je connais

  • En informatique d'entreprise, le middleware est un logiciel de messagerie et d'intégration entre applications et services

  • Dans le jeu, middleware est assez bien tout ce qui est fourni par un tiers-

  • Dans (certains) systèmes logiciels embarqués, middleware fournit des services que les applications utilisent, qui sont composés à partir des fonctions fournies par la couche d'abstraction matérielle-il se trouve entre la couche application et la couche d'abstraction matérielle.

 14
Author: Pete Kirkham, 2010-05-25 13:13:17

En termes simples, le Middleware est un composant logiciel qui fournit des services pour intégrer des systèmes disparates ensemble.

Dans un environnement d'entreprise complexe, il y a un certain nombre de défis lorsque vous devez intégrer deux ou plusieurs systèmes d'entreprise ensemble pour se parler. Normalement, ces systèmes ne se comprennent pas les uns les autres, car ils sont développés sur différentes plates-formes utilisant différents langages (comme C++, Java, Cobol, etc.).

Voici donc le middleware logiciel dans l'image qui fournit des services comme

  • transformation des formats de messages d'une application à l'autre,
  • routage et enrichissement des messages en plus de prendre soin de la sécurité,
  • chiffrement,
  • validation et
  • appliquer des règles métier différentes à ces messages.

Un exemple typique de middleware est un ESB produits comme IBM message broker (WMB/IIB), WESB, Datapower XI50, Oracle Fusion, Mule et bien d'autres.

Par conséquent, le middleware se situe principalement entre les applications consommatrices de services et les applications fournisseurs de services et aide ces applications à se parler.

 9
Author: SAK123, 2017-04-21 14:17:51

Middleware est un terme général pour les logiciels qui servent à "coller ensemble" des programmes distincts, souvent complexes et déjà existants. Certains composants logiciels fréquemment connectés à un middleware incluent des applications d'entreprise et des services Web.

 7
Author: Alex Falcucci, 2016-03-03 05:03:08

Middleware est la façon dont notre application répond aux demandes entrantes. Les Middlewares examinent la demande entrante et prennent des décisions en fonction de cette demande. Nous pouvons créer des applications entières uniquement en utilisant des middlewares. Par exemple ASP.NET est un framework Web comprenant les principaux composants de middleware HTTP suivants.

  1. Gestion des exceptions/erreurs
  2. Serveur de fichiers statique
  3. Authentification
  4. MVC Intergiciel

Comme indiqué ci-dessus diagramme, il existe différents composants middleware dans ASP.NET qui reçoivent la demande entrante et la redirigent vers une classe C# (dans ce cas, une classe de contrôleur).

 7
Author: Eldiyar Talantbek, 2017-03-17 18:18:19

Middleware se situe entre les applications Web et les services Web qui nativement ne peuvent pas communiquer et sont souvent écrits dans différents langages/frameworks.

Un tel exemple est OWIN middleware for .NET environnement, avant que les gens owin ont été forcés d'héberger des applications Web dans un logiciel d'hébergement microsoft appelé IIS. Après owin a été développé, il a ajouté la capacité d'héberger à la fois dans IIS et auto-hôte, dans IIS a été juste ajouté le support pour Owin qui a agi comme une interface. Aussi, il devient possible de host .NET web apps on Linux via Mono, qui a encore ajouté soutien pour Owin.

Il a également ajouté la capacité de créer Single Page Applications, Owin gérer Http contexte de demande/réponse, donc en plus d'owin vous pouvez ajouter authentication/authorization logique via OAuth2 par exemple, vous pouvez configurer middleware pour enregistrer une classe qui contient logique d'authentification de l'utilisateur (par ex. Implémentation OAuth2) ou classe qui contient une logique de gestion des messages de requête/réponse http, de cette façon, vous pouvez faire communiquer une application avec d'autres applications / services via un format de données différent (comme json, xml, etc. si vous ciblez le Web).

 5
Author: Daniel, 2018-05-19 09:18:45

Il y a une définition commune dans le développement d'applications Web qui est (et j'invente ce libellé mais cela semble correspondre): Un composant qui est conçu pour modifier une requête HTTP et / ou une réponse mais ne sert pas (généralement) la réponse dans son intégralité, conçu pour être enchaîné pour former un pipeline de changements de comportement pendant le traitement de la requête.

Exemples de tâches couramment implémentées par un middleware:

  • Réponse Gzip la compression
  • Authentification HTTP
  • Journalisation des demandes

Le point clé ici est qu'aucun d'entre eux n'est entièrement responsable de répondre au client. Au lieu de cela, chacun modifie le comportement d'une manière ou d'une autre dans le cadre du pipeline, laissant la réponse réelle provenir de quelque chose plus tard dans la séquence (pipeline).

Habituellement, les middlewares sont exécutés avant une sorte de "routeur", qui examine la demande (souvent le chemin) et appelle le code approprié pour générer réponse.

Personnellement, je déteste le terme "middleware" pour sa généricité mais il est d'usage courant.

Voici une explication supplémentaire spécifiquement applicables à Ruby on Rails.

 3
Author: Brad Peabody, 2017-12-20 03:31:59

Quelques exemples de middleware: CORBA, Remote Method Invocation (RMI),...

Les exemples mentionnés ci-dessus sont tous des logiciels vous permettant de prendre en charge la communication entre différents processus (exécutés sur la même machine ou distribués sur Internet, par exemple).

 2
Author: fstuijt, 2010-05-25 13:12:09

D'après ma propre expérience avec webwork, un middleware était entre les utilisateurs (le navigateur Web) et la base de données backend. C'est le logiciel qui a pris des choses que les utilisateurs ont mises en place (exemple: commandes d'iPads, fait une logique métier magique, c'est-à-dire vérifier s'il y a suffisamment d'iPads disponibles pour remplir la commande) et mis à jour la base de données backend pour refléter ces changements.

 1
Author: eviljack, 2017-04-21 14:12:43

Il est juste un morceau de logiciel ou un outil sur lequel votre application exécute et rapplication capacités en ce qui concerne la haute disponibilité,l'évolutivité,l'intégration avec d'autres logiciels ou systèmes sans vous soucier de vos changements de code au niveau de l'application .

Par exemple: Le système d'exploitation sur lequel votre application s'exécute nécessite un changement d'IP, vous n'avez pas à vous en soucier dans votre code , c'est la pile middleware sur laquelle vous pouvez simplement mettre à jour le configuration.

Exemple 2 : Vous rencontrez des problèmes avec votre allocation de mémoire d'exécution et vous sentez que l'utilisation de votre application a augmenté , vous n'avez pas beaucoup à ce sujet , sauf si vous avez un bogue ou un goulot d'étranglement dans votre code, il est facilement réalisable en ajustant la configuration logicielle middleware sur laquelle votre application s'exécute.

Exemple 3: Vous avez plusieurs logiciels disparates et vous avez besoin qu'ils se parlent ou envoient des données dans un format commun qui est compréhensible par tous les systèmes alors c'est là que les systèmes middleware sont pratiques.

J'espère que les informations fournies aident.

 1
Author: Afzal Haque, 2017-07-17 07:31:59

J'ai toujours pensé que c'était le logiciel le plus ancien que j'ai dû installer. L'application totale utilisait un serveur Web, un serveur de base de données et un serveur d'applications. Le serveur Web étant le middleware entre les données et l'application.

 0
Author: Rick, 2017-04-21 14:10:34