Czym dokładnie jest oprogramowanie pośrednie?

202

Słyszałem ostatnio , że wiele osób mówi o oprogramowaniu pośrednim , ale jaka jest dokładna definicja oprogramowania pośredniego? Kiedy patrzę na oprogramowanie pośrednie, znajduję wiele informacji i niektórych definicji, ale czytając te informacje i definicje, wydaje się, że w większości coś jest w środku czegoś. Czy wszystkie rzeczy są oprogramowaniem pośrednim?

A może masz przykład oprogramowania, które nie jest oprogramowaniem pośrednim?

Michel
źródło

Odpowiedzi:

219

Powiedzmy, że twoja firma wytwarza 4 różne produkty, twój klient ma kolejne 3 różne produkty z kolejnych 3 różnych firm.

Pewnego dnia klient pomyślał, dlaczego nie zintegrujemy wszystkich naszych systemów w jeden wielki system. Dziesięć minut później ich dział IT powiedział, że zajmie to 2 lata.

Ty (mądry programista) powiedziałeś, dlaczego nie zintegrujemy wszystkich różnych systemów i sprawimy, że będą działać razem w jednolitym środowisku? Menedżer klienta patrzy na ciebie ... Kontynuujesz, będziemy używać oprogramowania pośredniego, będziemy badać dane wejściowe / wyjściowe wszystkich różnych systemów, zasoby, których używają, a następnie wybierz odpowiednią strukturę oprogramowania pośredniego.

Wciąż wyjaśnia to menedżerowi nietechnicznemu
Z frameworkiem Middleware pośrodku, pierwszy system będzie produkował X, system Y i Z zużyją te wyjścia i tak dalej.

medopal
źródło
Świetny przykład! Czy w ten sposób nie stanie się heterogenicznym środowiskiem? niejednorodny.
Rabia Naz khan
Oprogramowanie pośrednie to składnik danych (agregacja + transformacja).
nadmierna wymiana
92

Oprogramowanie pośrednie to strasznie mglisty termin. Co to jest „oprogramowanie pośrednie” w jednym przypadku, nie będzie w innym. Ogólnie rzecz biorąc, można oczekiwać, że coś sklasyfikowane jako oprogramowanie pośrednie będzie miało następujące cechy:

  • Przede wszystkim (zwykle wyłącznie) oprogramowanie; zwykle nie wymaga specjalistycznego sprzętu.

  • Gdyby go nie było, aplikacje, które od niego zależą, musiałyby włączyć go jako część swojej aplikacji i doświadczyłyby dużo powielania.

  • Niemal na pewno łączy dwie aplikacje i przekazuje dane między nimi.

Zauważysz, że jest to prawie taka sama definicja jak system operacyjny. Na przykład stos TCP / IP lub buforowanie można uznać za oprogramowanie pośrednie. Ale twój system operacyjny może również zapewniać te same funkcje. Rzeczywiście, oprogramowanie pośrednie można traktować jak specjalne rozszerzenie systemu operacyjnego, specyficzne dla zestawu zależnych od niego aplikacji. Po prostu zapewnia usługę wyższego poziomu.

Niektóre przykłady oprogramowania pośredniego:

  • rozproszona pamięć podręczna
  • kolejka wiadomości
  • monitor transakcji
  • przepisywanie pakietów
  • zautomatyzowany system tworzenia kopii zapasowych
John Feminella
źródło
20

Wikipedia ma całkiem dobre wytłumaczenie: http://en.wikipedia.org/wiki/Middleware

Zaczyna się od

Middleware to oprogramowanie komputerowe, które łączy komponenty oprogramowania lub aplikacje. Oprogramowanie składa się z zestawu usług, które umożliwiają interakcję wielu procesów uruchomionych na jednym lub większej liczbie komputerów.

Co to jest Middleware daje kilka przykładów.

aioobe
źródło
1
Znalazłem to już sam, ale wydaje się, że wikipedia mówi, że wszystko jest oprogramowaniem pośrednim, czy masz przykład oprogramowania, które nie jest oprogramowaniem pośrednim
Michel
2
Wyjaśniłbym, dodając ... „jeden lub więcej komputerów do interakcji, których natywnie nie byłby w stanie”. W przeciwnym razie zgódź się, nic złego z tą odpowiedzią.
jeriley
1
Lepiej powiedzieć „jeden lub więcej [procesów] do interakcji, których natywnie nie byłby w stanie”.
fstuijt
19

Istnieją (przynajmniej) trzy różne definicje, o których wiem

  • w biznesie komputerowym oprogramowanie pośrednie to oprogramowanie do przesyłania wiadomości i integracji między aplikacjami i usługami

  • w grach oprogramowanie pośrednie to całkiem dobrze wszystko, co zapewnia firma zewnętrzna

  • w (niektórych) systemach oprogramowania wbudowanego oprogramowanie pośrednie zapewnia usługi używane przez aplikacje, które składają się z funkcji zapewnianych przez warstwę abstrakcji sprzętowej - znajduje się między warstwą aplikacji a warstwą abstrakcji sprzętowej.

Pete Kirkham
źródło
15

Mówiąc najprościej Middleware to komponent oprogramowania, który zapewnia usługi integracji różnych systemów razem.

W złożonym środowisku korporacyjnym istnieje wiele wyzwań, gdy trzeba zintegrować dwa lub więcej systemów korporacyjnych, aby ze sobą rozmawiać. Zwykle systemy te nie rozumieją siebie nawzajem, ponieważ są rozwijane na różnych platformach przy użyciu różnych języków (takich jak C ++, Java, Cobol itp.).

Oto oprogramowanie pośrednie na zdjęciu, które świadczy takie usługi

  • transformacja formatów wiadomości z jednej aplikacji do drugiej,
  • kierowanie i wzbogacanie wiadomości oprócz dbania o bezpieczeństwo,
  • szyfrowanie,
  • walidacja i
  • stosowanie różnych reguł biznesowych do tych wiadomości.

Typowym przykładem oprogramowania pośredniego są produkty ESB , takie jak broker komunikatów IBM (WMB / IIB), WESB, Datapower XI50, Oracle Fusion, Mule i wiele innych.

Dlatego oprogramowanie pośrednie znajduje się głównie pomiędzy aplikacjami korzystającymi z usług a aplikacjami dostawcy usług i pomaga tym aplikacjom komunikować się ze sobą.

SAK123
źródło
14

Oprogramowanie pośrednie polega na tym, jak nasza aplikacja reaguje na przychodzące żądania. Programy pośrednie sprawdzają przychodzące żądania i podejmują decyzje na podstawie tego żądania. Możemy budować całe aplikacje tylko przy użyciu oprogramowania pośredniego. Na przykład ASP.NET to platforma internetowa składająca się z następujących głównych komponentów oprogramowania pośredniego HTTP.

  1. Obsługa wyjątków / błędów
  2. Serwer plików statycznych
  3. Poświadczenie
  4. MVC Middlewares

Jak pokazano na powyższym diagramie, w programie ASP.NET istnieją różne komponenty oprogramowania pośredniego, które odbierają przychodzące żądanie i przekierowują je do klasy C # (w tym przypadku klasy kontrolera).

Eldiyar Talantbek
źródło
10

Oprogramowanie pośrednie to ogólny termin określający oprogramowanie, które służy do „sklejania” oddzielnych, często złożonych i już istniejących programów. Niektóre komponenty oprogramowania, które często są połączone z oprogramowaniem pośrednim, obejmują aplikacje korporacyjne i usługi sieciowe.

falcucci
źródło
6

W tworzeniu aplikacji internetowych istnieje powszechna definicja, która brzmi (a ja nadrabiam to sformułowanie, ale wydaje się, że pasuje): komponent zaprojektowany do modyfikowania żądania i / lub odpowiedzi HTTP, ale (zwykle) nie obsługuje odpowiedzi w całości, zaprojektowany tak, aby można go było łączyć ze sobą, tworząc szereg zmian zachowań podczas przetwarzania żądania.

Przykłady zadań często wdrażanych przez oprogramowanie pośrednie:

  • Kompresja odpowiedzi Gzip
  • Uwierzytelnianie HTTP
  • Poproś o rejestrację

Kluczową kwestią jest to, że żaden z nich nie jest w pełni odpowiedzialny za reakcję na klienta. Zamiast tego każdy zmienia zachowanie w pewien sposób jako część potoku, pozostawiając faktyczną odpowiedź pochodzącą z czegoś później w sekwencji (potoku).

Zazwyczaj oprogramowanie pośrednie jest uruchamiane przed jakimś „routerem”, który analizuje żądanie (często ścieżkę) i wywołuje odpowiedni kod w celu wygenerowania odpowiedzi.

Osobiście nienawidzę terminu „oprogramowanie pośrednie” ze względu na jego ogólność, ale jest on powszechnie używany.

Oto dodatkowe wyjaśnienie dotyczące Ruby on Rails.

Brad Peabody
źródło
6

Middleware stoi między aplikacjami internetowymi a usługami internetowymi, które natywnie nie mogą się komunikować i często są napisane w różnych językach / ramach.

Jednym z takich przykładów jest OWIN middleware for .NETśrodowisko, zanim owin ludzie zostali zmuszeni do hostowania aplikacji internetowych w oprogramowaniu hostingowym Microsoft IIS. Po opracowaniu programu owin dodano możliwości hostowania zarówno w usługach IIS, jak i hostach wewnętrznych, w usługach IIS dodano właśnie obsługę Owin, który działał jako interfejs. Możliwe stało się również to host .NET web apps on Linux via Mono, co ponownie dodało obsługę Owin.

Dodano również możliwość tworzenia Single Page Applicationskontekstu Httpżądania / odpowiedzi obsługi Owin , więc oprócz owin można dodać authentication/authorizationlogikę za pośrednictwem OAuth2, na przykład, można skonfigurować oprogramowanie pośrednie, aby zarejestrować klasę zawierającą logikę uwierzytelniania użytkownika (np. Implementacja OAuth2) lub klasa, która zawiera logikę zarządzania wiadomościami / żądaniami HTTP, dzięki czemu jedna aplikacja może komunikować się z innymi aplikacjami / usługami przy użyciu różnych formatów danych (takich jak json, xml itp., jeśli celujesz w sieć).

Daniel
źródło
3

Niektóre przykłady oprogramowania pośredniego: CORBA, Remote Method Invocation (RMI), ...

Powyższe przykłady to wszystkie programy, które pozwalają zadbać o komunikację między różnymi procesami (działającymi na tej samej maszynie lub dystrybuowanymi np. Przez Internet).

fstuijt
źródło
2

Z własnego doświadczenia w pracy w sieci, oprogramowanie pośrednie było między użytkownikami (przeglądarką internetową) a bazą danych zaplecza. Było to oprogramowanie, które pobierało rzeczy, które użytkownicy wkładali (na przykład: zamówienia na iPady, robiło magiczną logikę biznesową, tj. Sprawdzało, czy jest wystarczająco dużo iPadów, aby wypełnić zamówienie) i aktualizowało bazę danych zaplecza, aby odzwierciedlić te zmiany.

złoczyńca
źródło
2

Jest to po prostu oprogramowanie lub narzędzie, na którym wykonuje się Twoja aplikacja i możliwości rapplikacji w odniesieniu do wysokiej dostępności, skalowalności, integracji z innym oprogramowaniem lub systemami bez zawracania głowy zmianami kodu aplikacji.

Na przykład: system operacyjny, na którym działa aplikacja, wymaga zmiany adresu IP, nie musisz się tym martwić w kodzie, jest to stos oprogramowania pośredniego, na którym możesz w prosty sposób zaktualizować konfigurację.

Przykład 2: Występują problemy z alokacją pamięci środowiska wykonawczego i masz wrażenie, że zwiększyło się użycie aplikacji, nie musisz się tym zajmować, chyba że masz błąd lub wąskie gardło w kodzie, można to łatwo osiągnąć przez dostrojenie konfiguracji oprogramowania pośredniego na które uruchamia twoja aplikacja.

Przykład 3: Masz wiele różnych programów i potrzebujesz ich, aby ze sobą rozmawiać lub wysyłać dane we wspólnym formacie, który jest zrozumiały dla wszystkich systemów, wtedy przydatne są systemy oprogramowania pośredniego.

Mam nadzieję, że podane informacje pomogą.

Afzal Haque
źródło
2

jest to warstwa oprogramowania między systemem operacyjnym a aplikacjami po każdej stronie rozproszonego systemu komputerowego w sieci. W rzeczywistości łączy heterogeniczne sieci i systemy oprogramowania.

Maryam Sheikh
źródło
0

Zawsze uważałem to za najstarsze oprogramowanie, które musiałem zainstalować. Łącznie aplikacja korzystała z serwera WWW, serwera bazy danych i serwera aplikacji. Serwer WWW będący oprogramowaniem pośrednim między danymi a aplikacją.

Stóg
źródło
0

Jeśli się nie mylę, w strukturze aplikacji opartej na kontekście można rozważyć middlewarenastępujące role, które można łączyć, aby wykonywać określone czynności między użytkownikiem requesta aplikacją response.

  • Adapter
  • Środek dezynfekujący
  • Walidator
ANM Saiful Islam
źródło