В чем разница между API, framework и middleware?

просто случайно получил этот вопрос в моей голове! В чем разница между API , Framework и middleware? По сути, все они предоставляют абстрактные низкоуровневые услуги приложениям. В этом случае почему точка net называется framework и Windows API называется хорошо.. API-интерфейс?

5 ответов


API-это интерфейс прикладного программиста. Это просто термин, который относится к методам программист будет использовать для взаимодействия с программным обеспечением. Например, DAO может иметь метод save (). Сохранить является частью API DAO. На высоком уровне вы можете добавить пользователя в функциональность системы. Это часть системного API.

фреймворк-это инструмент или набор инструментов. Например, Spring-это структура, которая управляет инверсией управления, инъекцией зависимостей и предоставляет отличные шаблоны, чтобы сделать вашу жизнь проще. Вы используете Spring через его API.

Middleware-это программное обеспечение, которое позволяет взаимодействовать с кучей изолированных систем или функций. Поэтому, если у вас есть веб-сайт и платежная система, вы используете промежуточное ПО для подключения.


An API это интерфейс к библиотеке программирования (или библиотеки). Это не навязывает вам способ что-либо делать. Например. OpenGL не ограничивает то, что вы можете с ним сделать.

A framework поставляет часть готового решения проблемы. Вы заполните пробелы, чтобы сделать то, что вы хотите. Это может ускорить то, что вы делаете, но вы также ограничены ограничениями фреймворка, например дизайном, производительность, функциональность. -- Например. MFC предоставил способ создания UIs. Он хорошо поддерживал диалоги, но не формы, и такие вещи, как стыковка, были ограничены и содержали ошибки. Windows Forms-гораздо более способная структура (от архитектора Borland Delphi!) что лучше во всех отношениях: дизайн, flexiblitiy, инструменты и т. д. Фреймворки великолепны, пока они не сделают то, что вы хотите, чтобы они сделали, и тогда вы можете потерять большую часть времени, которое вы получили, пытаясь обойти их.

промежуточное это вертикальный срез. Если вы думаете о программном обеспечении как многоуровневом (например. ОС, аппаратные абстракции, служебные библиотеки и т. д.), middleware incorporartes многие из этих слоев вертикально. Он предоставляет полное или частичное решение для области в вашем приложении. Е. Г. распределенная система обмена сообщениями, или рендеринг библиотека/двигателя. Middleware предоставляет не только базовую библиотеку, но и связанные с ней инструменты, такие как ведение журнала, отладка и измерение производительности. Одна вещь, вы должны быть осторожны при использовании middleware является сухой принципе. Потому что middleware-это вертикальный система, это может конкурировать или дублировать другие части вашего приложения.


фреймворк реализует API. API изолирует клиентов framework от деталей реализации базовой платформы. Таким образом (в широком смысле) вы можете использовать Mono или .Net Framework для запуска программы на основе общего исходного кода, потому что API для любой платформы одинаковый.

промежуточное ПО обычно является платформой, специализированной для межпроцессной связи.


API-это программный интерфейс для системы. Вы использовать его для взаимодействия с системой, но не любая структура в вашей программе (в идеале).

фреймворк, диктует, как вы пишете определенные типы приложений,чтобы уменьшить количество требуемых шаблонов. Это решает некоторые общие проблемы для приложений этого типа.

Middleware в основном маркетинг-говорить. Существует много определений, но обычно они включают большую структуру с некоторыми инструментами построен вокруг него. Некоторые коммерческие игровые движки можно рассматривать как промежуточное ПО, платформы SOA также называются промежуточным ПО и т. д.


основным отличием является назначение функциональности.

API предназначен для решения некоторой конкретной проблемы в определенном домене.он содержит необходимую структуру данных, классы, методы, интерфейс и т. д. Такие как ADO.net API предоставляет функциональные возможности для подключения Microsoft SQL Server.

фреймворк, предназначенный для помощи разработчику в многоразовом масштабируемом программном приложении.фреймворки не имеют определенных функций, таких как API, но его различные функции, предоставляемые ПРИКЛАДНОЙ ПРОГРАММНЫЙ ИНТЕРФЕЙС. Например , ADO.net является API .net framework для доступа к службе данных. Фреймворк имеет компилятор, программы,библиотеки классов,время выполнения.он может добавить плагин.