В чем разница между API, фреймворком и промежуточным программным обеспечением? - PullRequest
22 голосов
/ 14 октября 2010

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

Ответы [ 5 ]

37 голосов
/ 14 октября 2010

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

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

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

14 голосов
/ 13 декабря 2011

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

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

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

6 голосов
/ 14 октября 2010

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

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

3 голосов
/ 14 октября 2010

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

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

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

0 голосов
/ 14 октября 2010

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

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

Фреймворк, разработанный для помощи разработчику в многоразовом масштабируемом программном приложении. Фреймворки не имеют специфических функций, таких как API, но имеют различные функциональные возможности, предоставляемые API.Например, ADO.net представляет собой API-интерфейс .net Framework для доступа к службе данных.Фреймворк имеет компилятор, программы, библиотеки классов, run-time.it может добавить плагин.

...