Компьютерное программное обеспечение, предоставляющее услуги программным приложениям
Middleware — это тип компьютерного программного обеспечения, которое предоставляет услуги программным приложениям, выходящим за рамки тех, которые доступны в операционной системе . Его можно описать как «программный клей». [1] [2]
Middleware упрощает разработчикам программного обеспечения реализацию коммуникации и ввода/вывода, чтобы они могли сосредоточиться на конкретной цели своего приложения. Он приобрел популярность в 1980-х годах как решение проблемы того, как связать новые приложения со старыми устаревшими системами, хотя этот термин использовался с 1968 года. [3]
В распределенных приложениях
Термин чаще всего используется для программного обеспечения, которое обеспечивает связь и управление данными в распределенных приложениях . Семинар IETF в 2000 году определил промежуточное программное обеспечение как «те службы, которые находятся выше набора служб транспортного уровня (т. е. по TCP/IP), но ниже прикладной среды» (т. е. ниже API уровня приложения ). [ требуется ссылка ] В этом более конкретном смысле промежуточное программное обеспечение можно описать как дефис («-») в клиент-сервер или -to- в одноранговой сети . Промежуточное программное обеспечение включает веб-серверы , серверы приложений , системы управления контентом и аналогичные инструменты, которые поддерживают разработку и доставку приложений. [4]
Службы доступа к базам данных часто характеризуются как промежуточное программное обеспечение. Некоторые из них являются языково-специфичными реализациями и поддерживают гетерогенные функции и другие связанные функции связи. [7] Примерами промежуточного программного обеспечения, ориентированного на базы данных, являются ODBC , JDBC и мониторы обработки транзакций . [8]
Промежуточное программное обеспечение распределенной вычислительной системы можно условно разделить на две категории — те, которые предоставляют услуги человеческого времени (например, обслуживание веб-запросов), и те, которые работают в машинном времени. Последнее промежуточное программное обеспечение несколько стандартизировано через Форум доступности услуг [9] и обычно используется в сложных встроенных системах в телекоммуникационной, оборонной и аэрокосмической отраслях. [10]
Использование промежуточного программного обеспечения
Было определено много категорий промежуточного программного обеспечения на основе области, в которой оно используется, или прикладного модуля, который оно обслуживает. Недавняя библиография определила основные категории промежуточного программного обеспечения следующим образом: [11]
Транзакционный: обработка нескольких синхронных/асинхронных транзакций, выступающая в качестве кластера связанных запросов из распределенных систем, таких как банковские транзакции или платежи по кредитным картам.
Ориентированные на сообщения: архитектуры очереди сообщений и передачи сообщений, поддерживающие синхронную/асинхронную связь.
Процедурные: Удаленные и локальные архитектуры для подключения, передачи и извлечения программных ответов асинхронных системных коммуникаций, таких как операции вызова.
Объектно-ориентированный: Похож на процедурное промежуточное ПО, но включает принципы проектирования объектно-ориентированного программирования. Аналитически его программный компонент охватывает объектные ссылки, исключения и наследование свойств через распределенные объектные запросы.
Другие примеры
Термин middleware используется и в других контекстах. Middleware иногда используется в том же смысле, что и software driver , уровень абстракции, который скрывает детали об аппаратных устройствах или другом программном обеспечении от приложения.
Операционная система Android использует ядро Linux в своей основе, а также предоставляет фреймворк приложений , который разработчики включают в свои приложения. Кроме того, Android предоставляет слой промежуточного программного обеспечения, включающий библиотеки , которые предоставляют такие сервисы, как хранение данных, отображение на экране, мультимедиа и просмотр веб-страниц. Поскольку библиотеки промежуточного программного обеспечения скомпилированы в машинный язык , сервисы выполняются быстро. Библиотеки промежуточного программного обеспечения также реализуют функции, специфичные для устройств, поэтому приложениям и фреймворку приложений не нужно беспокоиться об изменениях между устройствами Android. Слой промежуточного программного обеспечения Android также содержит виртуальную машину ART и ее основные библиотеки приложений Java . [12]
Промежуточное программное обеспечение также относится к программному обеспечению, которое разделяет два или более API и предоставляет такие услуги, как ограничение скорости, аутентификация и ведение журнала.
В технологии моделирования промежуточное программное обеспечение обычно используется в контексте архитектуры высокого уровня (HLA), которая применяется ко многим распределенным симуляциям. Это слой программного обеспечения, который находится между кодом приложения и инфраструктурой времени выполнения . Промежуточное программное обеспечение обычно состоит из библиотеки функций и позволяет ряду приложений — симуляций или федератов в терминологии HLA — выгружать эти функции из общей библиотеки, а не создавать их заново для каждого приложения. [14]
Разработчики беспроводных сетей могут использовать промежуточное программное обеспечение для решения задач, связанных с беспроводной сенсорной сетью (WSN). Внедрение промежуточного программного обеспечения позволяет разработчикам WSN интегрировать операционные системы и оборудование с широким спектром доступных в настоящее время приложений. [15]
Операционная система QNX предлагает промежуточное программное обеспечение для предоставления мультимедийных услуг для использования в автомобилях , самолетах и других средах. [16]
^ "Конференция по промежуточному программному обеспечению". middleware-conf.github.io . Получено 16.12.2023 . Промежуточное программное обеспечение — это программное обеспечение распределенной системы, которое находится между приложениями и базовыми платформами (операционными системами; базами данных; оборудованием) и/или связывает распределенные приложения, базы данных или устройства. Его основная роль — координировать и обеспечивать связь между различными уровнями или компонентами, одновременно изолируя большую часть сложности распределения в единую, хорошо протестированную и хорошо понятную системную абстракцию.
^ "Что такое Middleware?". Middleware.org . Определение технологии. 2008. Архивировано из оригинала 29 июня 2012 г. Получено 2013-08-11 .{{cite web}}: CS1 maint: неподходящий URL ( ссылка )
^ Галл, Ник (30 июля 2005 г.). "Происхождение термина middleware" . Получено 21 мая 2008 г. .
^ Эцкорн, Л. Х. (2017). Введение в промежуточное программное обеспечение: веб-сервисы, компоненты объектов и облачные вычисления. CRC Press. С. 4–5. ISBN9781498754101.
^ Краковяк, Саша. "Что такое промежуточное программное обеспечение?". ObjectWeb.org. Архивировано из оригинала 2005-05-07 . Получено 2005-05-06 .
^ Luckham, DC (2011). Обработка событий для бизнеса: организация предприятия в реальном времени. John Wiley & Sons. стр. 27–28. ISBN9781118171851.
^ Саймон, AR; Уилер, T. (2014). Открытые клиент-серверные вычисления и промежуточное программное обеспечение. Academic Press. С. 43–49. ISBN9781483214276.
^ Аррегосес, М.; Портолани, М. (2003). Основы дата-центра. Сиско Пресс. стр. 92–93. ISBN9781587140747.
^ "Спецификация интерфейса доступности услуг" (PDF) . Форум доступности услуг. 30 сентября 2011 г. . Получено 26 июля 2018 г. .
^ Jokiaho, T.; Fryer, J. (2012). "Предисловие". Доступность услуг: принципы и практика . John Wiley & Sons. стр. xv. ISBN9781119941675.
^ Газис, Александрос; Кацири, Элефтерия (15 марта 2022 г.). «Промежуточное программное обеспечение 101: что нужно знать сейчас и в будущем». Очередь . 20 : 10–23. doi : 10.1145/3526211 . S2CID 247494415.
^ Чарли Коллинз, Майкл Галпин и Маттиас Кепплер, Android на практике, Manning Publications, 2011
^ Мур, ME (2006). Введение в игровую индустрию . Pearson Prentice Hall. стр. 169. ISBN9780131687431.
^ Becchini, R.; Chilaev, P.; Krivtsov, V.; et al. (2003). "Глава 4: Middleware". В Drira, K.; Martelli, A.; Villemur, T. (ред.). Cooperative Environments for Distributed Systems Engineering: The Distributed Systems Environment Report . Springer. стр. 41–4. ISBN9783540455820.
^ Хадим, С. и Мохамед, Н. (2006). Проблемы и подходы к промежуточному программному обеспечению для беспроводных сенсорных сетей. IEEE Distributed Systems Online, том 7. Выпуск 3. Получено 4 марта 2009 г. из iEEE Distributed Systems Online. Архивировано 28 сентября 2011 г. на Wayback Machine.
^ "QNX Software присоединяется к японскому консорциуму Internet ITS". QNX News Releases . QNX. 6 мая 2008 г. Получено 26 июля 2018 г.
^ Гловер, Б.; Бхатт, Х. (2006). RFID Essentials. O'Reilly Media. С. 38–44. ISBN9780596009441.
Внешние ссылки
Словарное определение промежуточного программного обеспечения в Викисловаре