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

J'ai juste eu cette question par hasard dans ma tête! Quelle est la différence entre API , Framework et middleware? Essentiellement tous d'entre eux fournissent des services abstraits de bas niveau aux applications. Dans ce cas, pourquoi dot net s'appelle framework et Windows API s'appelle bien.. API?

20
demandé sur Josh Lee 2010-10-14 19:29:59

5 réponses

une API est une Interface de programmation D'Application. C'est juste un terme qui se réfère aux méthodes d'un programmeur utilisera une interface avec le logiciel. Par exemple, un DAO peut avoir une méthode save (). Save fait partie de L'API DAO. À un niveau élevé, vous pouvez avoir un utilisateur Ajouter à la fonctionnalité du système. C'est la partie du système d'API.

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

Middleware est un logiciel qui permet à un tas de systèmes isolés ou de fonctionnalités d'interagir. Donc, si vous avez un site web, et un système de paiement, vous utilisez middleware pour hookem up.

34
répondu hvgotcodes 2010-10-14 15:35:07

API est un interface vers une bibliothèque de programmation (ou bibliothèques). Cela ne vous impose pas une façon de faire quoi que ce soit. Par exemple: OpenGL ne limite pas ce que vous pouvez en faire.

cadre vous fournit partie fini de 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 dans la conception, les performances, les fonctionnalités. -- Par exemple. Le CFM a fourni un moyen de créer L'ISU. Il supportait bien les dialogues, mais pas les formulaires, et les choses comme l'accostage étaient limitées et contenaient des bogues. Windows Forms est un cadre beaucoup plus capable (de L'architecte de Borland Delphi!) qui est meilleur en tout: conception, flexiblitiy, outils, etc. Les cadres sont grands jusqu'à ce qu'ils ne fassent pas quelque chose que vous voulez qu'ils fassent Et alors vous pouvez perdre la plupart du temps que vous avez gagné en essayant de travailler autour ils.

Middleware est un tranche verticale. Si vous pensez au Logiciel comme stratifié (par ex. OS, abstractions matérielles, bibliothèques utilitaires, etc), middleware incorporartes beaucoup de ces couches verticalement. Il fournit une solution complète, ou partielle, à un domaine de votre application. Par exemple: un système de messagerie, ou une bibliothèque/moteur de rendu. Middleware fournit plus que la bibliothèque de base, il fournit également des outils associés comme la journalisation, Débogage et mesure des performances. Une chose que vous devez être prudent lorsque vous utilisez middleware est le sec principe. Parce que middleware est vertical système, il peut concurrencer ou dupliquer d'autres parties de votre application.

13
répondu Nick 2011-12-13 12:11:34

un framework implémente une API. L'API isole les clients du framework des détails de mise en œuvre du framework sous-jacent. Ainsi (en gros) vous pouvez utiliser Mono ou .net Framework pour exécuter un programme basé sur du code source commun, parce que l'API de l'un ou l'autre framework est la même.

Middleware est généralement un cadre spécialisé pour la communication entre les processus.

6
répondu Steve Townsend 2010-10-14 15:34:32

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 framework, dicte la façon dont vous écrivez certains types d'applications afin de réduire la quantité de boilerplate nécessaire. Il résout certains problèmes communs pour les applications de ce type.

Middleware est principalement marketing-parler. Il existe de nombreuses définitions, mais impliquent habituellement un grand cadre avec un certain outillage construite autour d'elle. Certains moteurs de jeux commerciaux peuvent être pensé de middleware, SOA plates-formes sont également appelés middleware,etc.

3
répondu juancn 2010-10-14 15:41:17

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

une API est conçue pour résoudre un problème spécifique dans un domaine particulier.il contient la structure de données, les classes,les méthodes,l'interface etc. nécessaires. Par exemple: ADO.net API fournit la fonctionnalité pour connecter Microsoft SQL Server.

un cadre conçu pour aider le développeur à réutiliser l'application logicielle évolutive.un framework n'a pas de fonctionnalité spécifique comme L'API, mais ses diverses fonctionnalités exposées par L'API . Par exemple: ADO.net est une API de .net framework pour accéder au service de données. Un framework possède un compilateur,des programmes,des bibliothèques de classes, un run-time.il peut ajouter plug-in.

0
répondu Mamunar Rashid 2010-10-14 16:53:16