web-dev-qa-db-fra.com

Quelle est la différence entre une API, un framework et un middleware?

Je me suis juste posé cette question au hasard! Quelle est la différence entre l'API, le Framework et le middleware? Essentiellement, tous fournissent des services abstraits de bas niveau aux applications. Dans ce cas, pourquoi dot net est-il appelé framework et Windows API est bien appelé .. API?

23
Laz

Une API est une interface de programmation d'application. C'est juste un terme qui fait référence aux méthodes qu'un programmeur utilisera pour s'interfacer avec le logiciel. Par exemple, un DAO peut avoir une méthode save (). La sauvegarde fait partie de l'API DAO. À un niveau élevé, vous pourriez avoir une fonctionnalité Ajouter un utilisateur au système. Cela fait partie de l'API système.

Un cadre est un outil ou un ensemble d'outils. Par exemple, Spring est un framework qui gère votre inversion de contrôle, l'injection de dépendances et fournit des modèles astucieux pour vous faciliter la vie. Vous utilisez Spring via son API.

Le middleware est un logiciel qui permet à un ensemble de systèmes ou fonctionnalités isolés d'interagir. Donc, si vous avez un site Web et un système de paiement, vous utilisez un middleware pour vous connecter.

40
hvgotcodes

Une API [~ # ~] [~ # ~] est une interface vers une bibliothèque de programmation (ou des bibliothèques) . Cela ne vous impose aucune façon de faire quoi que ce soit. Par exemple. OpenGL ne restreint pas ce que vous pouvez en faire.

Un framework vous fournit une partie de la solution à un problème. Vous remplissez les blancs pour faire ce que vous voulez. Cela pourrait accélérer ce que vous faites, mais vous êtes également limité par les limites du cadre, par exemple design, performance, fonctionnalité. -- Par exemple. MFC a fourni un moyen de créer des interfaces utilisateur. Il supportait bien les dialogues, mais pas les formulaires, et les choses comme l'ancrage étaient limitées et contenaient des bogues. Windows Forms est un cadre beaucoup plus performant (de l'architecte de Borland Delphi!) Qui est meilleur à tous points de vue: conception, flexibilité, outils, etc. Les cadres sont excellents jusqu'à ce qu'ils ne fassent pas ce que vous voulez qu'ils fassent et ensuite vous peut perdre la plupart du temps que vous avez gagné en essayant de les contourner.

Le middleware est un tranche verticale. Si vous considérez les logiciels comme des couches (par exemple, OS, abstractions matérielles, bibliothèques d'utilitaires, etc.), les middlewares intègrent bon nombre de ces couches verticalement. Il fournit une solution complète ou partielle à un domaine de votre application. Par exemple. un système de messagerie négocié ou une bibliothèque/un moteur de rendu. L'intergiciel fournit plus que la bibliothèque de base, il fournit également des outils associés tels que la journalisation, le débogage et la mesure des performances. Une chose à laquelle vous devez faire attention lorsque vous utilisez un middleware est le principe SEC . Parce que le middleware est vertical système, il peut concurrencer ou dupliquer d'autres parties de votre application.

17
Nick

Un framework implémente une API. L'API isole les clients du framework des détails d'implémentation du framework sous-jacent. Ainsi (de manière générale), vous pouvez utiliser Mono ou .Net Framework pour exécuter un programme basé sur du code source commun, car l'API de l'un ou l'autre framework est la même.

Le middleware est généralement un framework spécialisé pour la communication interprocessus.

6
Steve Townsend

Une API est une interface programmatique vers un système. Vous l'utilisez pour interagir avec un système, mais ne force aucune structure dans votre programme (idéalement).

Un cadre, dicte la façon dont vous écrivez certains types d'applications afin de réduire la quantité de passe-partout nécessaire. Il résout certains problèmes courants pour les applications de ce type.

Le middleware est principalement marketing. Il existe de nombreuses définitions, mais impliquent généralement un grand cadre avec des outils construits autour. Certains moteurs de jeux commerciaux peuvent être considérés comme des middleware, SOA sont également appelées middleware, etc.

3
juancn

La principale différence est le but de la fonctionnalité.

Une API est conçue pour résoudre certains problèmes spécifiques dans un domaine particulier. Elle contient la structure de données, les classes, les méthodes, l'interface nécessaires, etc.

Un cadre conçu pour aider les développeurs à utiliser une application logicielle réutilisable et évolutive. Un cadre n'a pas de fonctionnalité spécifique comme l'API mais ses diverses fonctionnalités exposées par l'API. Tels que, ADO.net est une API du framework .net pour accéder au service de données. Un framework a un compilateur, des programmes, des bibliothèques de classes, run-time.it peut ajouter un plug-in.

0
Mamunar Rashid