Що таке межпрограмне забезпечення?


202

Нещодавно я чув багато людей, які розмовляють про середнє програмне забезпечення , але яке точне визначення середнього програмного забезпечення? Коли я переглядаю проміжне програмне забезпечення, я знаходжу багато інформації та деяких визначень, але, читаючи ці відомості та визначення, здається, що в основному всі «вироби» знаходяться в середині чогось. Отже, чи все є середнім програмним забезпеченням?

Або у вас є приклад посуду, який не є проміжним програмним забезпеченням?

Відповіді:


219

Скажімо, ваша компанія виготовляє 4 різні продукти, ваш клієнт має ще 3 різні продукти від ще 3 різних компаній.

Колись клієнт подумав, чому б ми не інтегрувати всі наші системи в одну величезну систему. Через десять хвилин їх ІТ-відділ сказав, що це займе 2 роки.

Ви (мудрий розробник) сказали, чому ми не просто інтегруємо всі різні системи і не змусимо їх працювати разом в однорідному середовищі? Клієнт-менеджер дивиться на вас ... Ви продовжили, ми будемо використовувати Middleware, ми вивчимо входи / виходи всіх різних систем, ресурси, які вони використовують, а потім виберемо відповідну базу середнього програмного забезпечення.

Ще пояснюючи менеджеру, який не працює в галузі технологій.
З рамками Middleware в середині перша система виробляє X речі, системи Y і Z споживають ці виходи тощо.


Чудовий приклад! Таким чином, чи не стане воно неоднорідним середовищем? не однорідний.
Rabia Naz khan

Посереднє програмне забезпечення - компонент даних (агрегація + перетворення).
переобмін

92

Посереднє програмне забезпечення - жахливо туманний термін. Що таке "проміжне програмне забезпечення" в одному випадку, в іншому не буде. Загалом, ви можете очікувати, що щось класифіковане як середнє програмне забезпечення має такі характеристики:

  • Передусім (як правило, виключно) програмне забезпечення; зазвичай не потрібно спеціалізованого обладнання.

  • Якби його не було, додатки, які залежать від нього, повинні були б включити його як частину своєї програми та відчули б багато дублювання.

  • Майже напевно з'єднує два додатки та передає дані між ними.

Ви помітите, що це майже те саме визначення, що і операційна система. Так, наприклад, стек TCP / IP або кешування можна вважати середнім програмним забезпеченням. Але і ваша ОС може надати ті самі функції. Дійсно, проміжне програмне забезпечення можна вважати спеціальним розширенням до операційної системи, характерним для набору додатків, які залежать від нього. Він просто надає послугу вищого рівня.

Деякі приклади проміжного програмного забезпечення:

  • розподілений кеш
  • черга повідомлень
  • монітор транзакцій
  • переписувач пакетів
  • автоматизована система резервного копіювання

20

У Вікіпедії є досить хороше пояснення: http://en.wikipedia.org/wiki/Middleware

Це починається з

Middleware - це комп'ютерне програмне забезпечення, яке з'єднує компоненти програм або програми. Програмне забезпечення складається з набору сервісів, що дозволяє взаємодіяти декілька процесів, що працюють на одній або декількох машинах.

Що таке Middleware, наводимо кілька прикладів.


1
Я знайшов це все вже, але, схоже, у Вікіпедії сказано, що все є програмним забезпеченням або у вас є приклад посуду, яка не є програмним забезпеченням
Michel

2
Я б уточнив, додавши ... "одна чи декілька машин взаємодіяти, які споконвічно не змогли б". Інакше, погодьтеся, нічого поганого в цій відповіді.
Джерілі

1
Краще сказати «один або кілька [процесів], щоб взаємодіяти, що споконвічно не зможе».
fstuijt

19

Є (принаймні) три різні визначення, які я знаю

  • в бізнес-обчисленнях, середнє програмне забезпечення - це програмне забезпечення для обміну повідомленнями та інтеграції між додатками та службами

  • в іграх проміжне програмне забезпечення - це добре все, що надається стороннім виробником

  • у (деяких) вбудованих програмних системах програмне забезпечення середнього програмного забезпечення надає послуги, якими користуються програми, які складаються з функцій, передбачених апаратним рівнем абстракції - він знаходиться між рівнем програми та рівнем апаратної абстракції.


15

Простіше кажучи, Middleware - це програмний компонент, який надає послуги з інтеграції різних систем разом.

У складному корпоративному середовищі виникає ряд проблем, коли вам потрібно інтегрувати дві або більше корпоративних систем разом, щоб спілкуватися між собою. Зазвичай ці системи не розуміють мови один одного, оскільки вони розробляються на різних платформах, використовуючи різні мови (наприклад, C ++, Java, Cobol тощо).

Отже, тут представлено програмне забезпечення середнього програмного забезпечення, яке надає такі послуги

  • перетворення форматів повідомлень з однієї програми в іншу,
  • маршрутизація та збагачення повідомлень, окрім подбань про безпеку,
  • шифрування,
  • перевірка та
  • застосовуючи різні правила бізнесу до цих повідомлень.

Типовим прикладом проміжного програмного забезпечення є такі продукти ESB, як брокер повідомлень IBM (WMB / IIB), WESB, Datapower XI50, Oracle Fusion, Mule та багато інших.

Таким чином, середнє програмне забезпечення розташовується здебільшого між програмами, що споживають послуги та додатками постачальника послуг, і допомагає цим програмам спілкуватися один з одним.


14

Посереднє програмне забезпечення - це те, як наша програма реагує на вхідні запити. Посередники вивчають вхідний запит і приймають рішення на основі цього запиту. Ми можемо створювати цілі програми лише за допомогою середнього рівня. Наприклад, ASP.NET - це веб-структура, що складається з наступних основних компонентів проміжного програмного забезпечення HTTP.

  1. Виключення / поводження з помилками
  2. Статичний файловий сервер
  3. Аутентифікація
  4. MVC Середня продукція

Як показано на наведеній вище схемі, в ASP.NET є різні компоненти проміжного програмного забезпечення, які отримують вхідний запит і перенаправляють його до класу C # (в даному випадку класу контролерів).


10

Посереднє програмне забезпечення - загальний термін для програмного забезпечення, яке служить для "склеювання" окремих, часто складних і вже існуючих програм. Деякі компоненти програмного забезпечення, які часто пов'язані з середнім програмним забезпеченням, включають додатки підприємств та веб-сервіси.


6

Існує загальне визначення в розробці веб-додатків, яке є (і я формулюю це формулювання, але, здається, підходить): Компонент, призначений для зміни запиту та / або відповіді HTTP, але не відповідає (як правило) відповіді у всій своїй повноті, розроблений для того, щоб зв'язати разом, щоб сформувати конвеєр змін поведінки під час обробки запиту.

Приклади завдань, які зазвичай реалізуються середнім програмним забезпеченням:

  • Стиснення відповіді Gzip
  • Аутентифікація HTTP
  • Запросити журнал

Ключовим моментом тут є те, що жодне з них не несе повну відповідальність за відповідь клієнту. Натомість кожен змінює поведінку певним чином як частину конвеєра, залишаючи фактичну відповідь, що надходить з чогось пізніше в послідовності (трубопровід).

Зазвичай середні програми запускаються перед якимось "маршрутизатором", який вивчає запит (найчастіше шлях) і викликає відповідний код для отримання відповіді.

Особисто я ненавиджу термін "проміжне програмне забезпечення" за його загальність, але він є загальним.

Ось додаткове пояснення, яке стосується конкретно Ruby on Rails.


6

Middleware стоїть між веб-додатками та веб-службами, які не можуть спілкуватися і часто написані різними мовами / рамками.

Одним із таких прикладів є OWIN middleware for .NETнавколишнє середовище, перш ніж оуїни були змушені розміщувати веб-додатки в програмному забезпеченні для хостингу для мікрософт IIS. Після того, як Owin був розроблений, він додав можливості для розміщення як в IIS, так і в самому хості, в IIS була лише додана підтримка Owin, яка виступала в якості інтерфейсу. Також це стало можливим host .NET web apps on Linux via Mono, що знову додало підтримку Овіна.

Це також додало можливості для створення Single Page Applications, Httpконтексту обробки запиту / відповіді Owin, тому поверх Owin ви можете додавати authentication/authorizationлогіку через OAuth2, наприклад, ви можете налаштувати посереднє програмне забезпечення для реєстрації класу, який містить логіку автентифікації користувача (для прикладу реалізації OAuth2) або клас, який містить логіку, як керувати повідомленнями http-запиту / відповіді, таким чином ви можете змусити одну програму спілкуватися з іншими програмами / службами через інший формат даних (наприклад, json, xml тощо, якщо ви орієнтовані на Інтернет).


3

Деякі приклади проміжного програмного забезпечення: CORBA, виклик віддалених методів (RMI), ...

Наведені вище приклади - це всі програми, що дозволяють вам дбати про зв'язок між різними процесами (працюючими на одній машині або розповсюдженими, наприклад, в Інтернеті).


2

З мого власного досвіду роботи з веб-роботами, середнє програмне забезпечення - це речі між користувачами (веб-браузер) та базовою базою даних. Користувачі вносили речі, які вкладали користувачі (наприклад: замовлення на iPad, зробили якусь магічну ділову логіку, тобто перевірити, чи є достатня кількість iPad для заповнення замовлення) та оновили базу даних, що відображає ці зміни.


2

Це лише програмне забезпечення або інструмент, за допомогою якого ваша програма виконує та розширює можливості щодо високої доступності, масштабованості, інтеграції з іншими програмними засобами або системами, не турбуючись про зміни коду рівня вашого додатка.

Наприклад: Операційна система, на якій працює ваша програма, вимагає зміни IP-адреси, вам не доведеться турбуватися про це у своєму коді, це стек середнього програмного забезпечення, на якому ви можете просто оновити конфігурацію.

Приклад 2: У вас виникають проблеми з розподілом пам’яті під час виконання програми і ви вважаєте, що використання вашої програми збільшилося, вам не доведеться багато про це, якщо у вас немає помилки або вузького місця в коді, це легко досягти, налаштувавши конфігурацію програмного забезпечення середнього програмного забезпечення на яку запускає ваша програма.

Приклад 3: У вас є кілька різноманітних програм, і вам потрібно, щоб вони спілкувалися один з одним або надсилали дані у загальному форматі, який зрозумілий всім системам.

Сподіваюся, що надана інформація допомагає.


2

це програмний рівень між операційною системою та додатками з кожної сторони розподіленої обчислювальної системи в мережі. Фактично він з'єднує різнорідні мережеві та програмні системи.


0

Я завжди вважав це найстарішим програмним забезпеченням, яке мені довелося встановити. Загальна програма використовувала веб-сервер, сервер баз даних та сервер додатків. Веб-сервер є проміжним програмним забезпеченням між даними та додатком.


0

Якщо я не помиляюся, в рамках програмного забезпечення , виходячи з контексту , ви можете розглянути middlewareнаступні ролі, які можна поєднувати для виконання певних дій між користувачем requestта програмою response.

  • Перехідник
  • Санізатор
  • Валідатор
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.