Middleware: Różnice pomiędzy wersjami

Z Encyklopedia Zarządzania
m (cleanup bibliografii i rotten links)
 
(Nie pokazano 15 wersji utworzonych przez 3 użytkowników)
Linia 1: Linia 1:
'''''Middleware''''', w systemie [[Internet rzeczy|Internetu rzeczy]] (IoT) oznacza '''oprogramowanie pośredniczące''', które umożliwia '''komunikację pomiędzy składnikami oprogramowania danego systemu''', w skład którego wchodzić mogą różne aplikacje, podprogramy i usługi (W. Daszczuk i in. 2021, s. 11). W takim systemie, ''middleware'' stanowi '''[[Interfejs|interfejs]]''' między czytnikiem a aplikacją użytkową i Internetem” (A. Januszewski 2008, s.357)
'''Middleware''', w systemie [[Internet rzeczy|Internetu rzeczy]] (IoT) oznacza '''oprogramowanie pośredniczące''', które umożliwia '''komunikację pomiędzy składnikami oprogramowania danego systemu''', w skład którego wchodzić mogą różne aplikacje, podprogramy i usługi (W. Daszczuk i in. 2021, s. 11). W takim systemie, ''middleware'' stanowi "'''[[Interfejs|interfejs]]''' między czytnikiem a aplikacją użytkową i Internetem" (A. Januszewski 2008, s.357)


Ze względu na specyfikę systemów [[Internet rzeczy|Internetu rzeczy]], pewne elementy oprogramowania tych systemów są powtarzalne, mają podobną strukturę oraz sposób działania niezależnie od przeznaczenia konkretnych urządzeń i ich dziedziny. Jeśli te elementy nie są zależne od [[system operacyjny|systemu operacyjnego]] i konkretnej aplikacji, mogą one zostać umieszczone w bibliotekach stanowiących część wielu różnych aplikacji. Jeśli te biblioteki są '''ustandaryzowane''' i pozwalają na '''pracę z różnymi [[system operacyjny|systemami operacyjnymi]]''', to stanowią one oprogramowanie pośredniczące, czyli ''middleware'' (W. Daszczuk i in. 2021, s. 175-176).
Ze względu na specyfikę systemów [[Internet rzeczy|Internetu rzeczy]], pewne elementy oprogramowania tych systemów są powtarzalne, mają podobną strukturę oraz sposób działania niezależnie od przeznaczenia konkretnych urządzeń i ich dziedziny. Jeśli te elementy nie są zależne od [[system operacyjny|systemu operacyjnego]] i konkretnej aplikacji, mogą one zostać umieszczone w bibliotekach stanowiących część wielu różnych aplikacji. Jeśli te biblioteki są '''ustandaryzowane''' i pozwalają na '''pracę z różnymi [[system operacyjny|systemami operacyjnymi]]''', to stanowią one oprogramowanie pośredniczące, czyli ''middleware'' (W. Daszczuk i in. 2021, s. 175-176).
Linia 10: Linia 10:
* konwerterów
* konwerterów
* generatorów skryptów.
* generatorów skryptów.
==TL;DR==
Middleware w systemie IoT to oprogramowanie pośredniczące, które umożliwia komunikację między składnikami systemu. Dzięki niemu można połączyć różne platformy, systemy operacyjne i bazy danych. Oprogramowanie pośredniczące pełni wiele funkcji, takich jak wykrywanie zasobów, zarządzanie nimi, komponowanie usług, zarządzanie danymi i zdarzeniami oraz zarządzanie kodem. Architektura oprogramowania pośredniczącego powinna spełniać wymagania funkcjonalne i niefunkcjonalne, a istnieje wiele różnych typów oprogramowania pośredniczącego, opartych na różnych paradygmatach programowania.
<google>n</google>


==Funkcje oprogramowania pośredniczącego (middleware)==
==Funkcje oprogramowania pośredniczącego (middleware)==
'''Funkcje''' jakie powinno realizować oprogramowanie pośredniczące zależne jest od specyfiki systemów [[Internet rzeczy|Internetu rzeczy]]. Wśród tych funkcji wymienić można (W. Daszczuk i in. 2021, s. 176):
'''Funkcje''' jakie powinno realizować oprogramowanie pośredniczące zależne jest od specyfiki systemów [[Internet rzeczy|Internetu rzeczy]]. Wśród tych funkcji wymienić można (W. Daszczuk i in. 2021, s. 176):
* '''Wykrywanie [[zasób|zasobów]]''' ze względu na dynamikę systemów [[Internet rzeczy|Internetu rzeczy]], funkcja wykrywania zasobów powinna być zautomatyzowana i realizowana za pomocą ''middleware''.
* '''Wykrywanie [[zasób|zasobów]]''' - ze względu na dynamikę systemów [[Internet rzeczy|Internetu rzeczy]], funkcja wykrywania zasobów powinna być zautomatyzowana i realizowana za pomocą ''middleware''.
* '''Zarządzanie zasobami''' oprogramowanie pośredniczące powinno być odpowiedzialne za odpowiednie monitorowanie, przydzielanie i udostępnianie wykorzystania zasobów oraz w razie potrzeby, rozwiązywanie konfliktów w dostępie do nich.
* '''Zarządzanie zasobami''' - oprogramowanie pośredniczące powinno być odpowiedzialne za odpowiednie monitorowanie, przydzielanie i udostępnianie wykorzystania zasobów oraz w razie potrzeby, rozwiązywanie konfliktów w dostępie do nich.
* '''Komponowanie usług''' ponowne komponowanie usług powinno być ułatwione dzięki oprogramowaniu pośredniczącemu, które reaguje na żądanie aplikacji lub interweniuje w wyniku wykrycia istotnych zmian konfiguracji środowiska systemowego.
* '''Komponowanie usług''' - ponowne komponowanie usług powinno być ułatwione dzięki oprogramowaniu pośredniczącemu, które reaguje na żądanie aplikacji lub interweniuje w wyniku wykrycia istotnych zmian konfiguracji środowiska systemowego.
* '''Zarządzanie danymi''' ''middleware'' w aplikacjach [[Internet rzeczy|Internetu rzeczy]] powinno zapewniać aplikacjom usługi dotyczące zarządzania danymi - ich pozyskiwanie, przetwarzanie (również przetwarzanie wstępne, np. filtrowanie, kompresję i agregację) oraz przechowywanie.
* '''Zarządzanie danymi''' - ''middleware'' w aplikacjach [[Internet rzeczy|Internetu rzeczy]] powinno zapewniać aplikacjom usługi dotyczące zarządzania danymi - ich pozyskiwanie, przetwarzanie (również przetwarzanie wstępne, np. filtrowanie, kompresję i agregację) oraz przechowywanie.
* '''Zarządzanie zdarzeniami''' ze względu na generowanie ogromnej liczby zdarzeń w aplikacjach IoT, ''middleware'' odpowiedzialne jest za ustrukturalizowanie zbiorów zdarzeń istotnych dla aplikacji To z kolei pozwala aplikacjom na analizę danych o dużej zmienności w czasie rzeczywistym.
* '''Zarządzanie zdarzeniami''' - ze względu na generowanie ogromnej liczby zdarzeń w aplikacjach IoT, ''middleware'' odpowiedzialne jest za ustrukturalizowanie zbiorów zdarzeń istotnych dla aplikacji To z kolei pozwala aplikacjom na analizę danych o dużej zmienności w czasie rzeczywistym.
* '''Zarządzanie kodem''' ze względu na trudności związane z alokacją i migracją kodu w sieciach IoT, wdrażanie kodu w środowisku Internetu rzeczy powinno być obsługiwane przez oprogramowanie pośredniczące, aby równoważyć obciążenie węzłów i zmniejszać ruch w sieci.
* '''Zarządzanie kodem''' - ze względu na trudności związane z alokacją i migracją kodu w sieciach IoT, wdrażanie kodu w środowisku Internetu rzeczy powinno być obsługiwane przez oprogramowanie pośredniczące, aby równoważyć obciążenie węzłów i zmniejszać ruch w sieci.


==Wymagania architektury oprogramowania pośredniczącego (middleware)==
==Wymagania architektury oprogramowania pośredniczącego (middleware)==
Z uwagi na konieczność wsparcia programistów aplikacji IoT, istnieją pewne wymagania funkcjonalne dotyczące architektury oprogramowania pośredniczącego. Tymi wymaganiami są między innymi (W. Daszczuk i in. 2021, s. 177):  
Z uwagi na konieczność wsparcia programistów aplikacji IoT, istnieją pewne wymagania funkcjonalne dotyczące architektury oprogramowania pośredniczącego. Tymi wymaganiami są między innymi (W. Daszczuk i in. 2021, s. 177):
* '''Abstrakcja programowania''' należy zapewnić istnienie warstwy abstrakcji, to znaczy [[Interfejs|interfejsu]], za pomocą którego użytkownik będzie mógł obsługiwać oprogramowanie pośredniczące.
* '''Abstrakcja programowania''' - należy zapewnić istnienie warstwy abstrakcji, to znaczy [[Interfejs|interfejsu]], za pomocą którego użytkownik będzie mógł obsługiwać oprogramowanie pośredniczące.
* '''Interoperacyjność''' możliwość współpracy ''middleware'' z wieloma różnymi aplikacjami, urządzeniami i technologiami powinna odbywać się z wykorzystaniem różnorodnych technologii komunikacyjnych, bez konieczności wykonywania dodatkowej pracy przez twórców usług czy też aplikacji IoT.
* '''Interoperacyjność''' - możliwość współpracy ''middleware'' z wieloma różnymi aplikacjami, urządzeniami i technologiami powinna odbywać się z wykorzystaniem różnorodnych technologii komunikacyjnych, bez konieczności wykonywania dodatkowej pracy przez twórców usług czy też aplikacji IoT.
* '''Usługi''' to wymaganie oznacza konieczność oparcia architektury ''middleware'' na usługach. Zapewnia to elastyczność w przypadku wprowadzania nowych, zaawansowanych funkcji systemu.
* '''Usługi''' - to wymaganie oznacza konieczność oparcia architektury ''middleware'' na usługach. Zapewnia to elastyczność w przypadku wprowadzania nowych, zaawansowanych funkcji systemu.
* '''Adaptacja''' oprogramowanie pośredniczące powinno posiadać zdolność do szybkiej ewolucji i adaptacji do zmian zachodzących w otoczeniu lub tworzeniu aplikacji.
* '''Adaptacja''' - oprogramowanie pośredniczące powinno posiadać zdolność do szybkiej ewolucji i adaptacji do zmian zachodzących w otoczeniu lub tworzeniu aplikacji.
* '''Autonomia''' za pomocą ''middleware'' aplikacje, technologie i urządzenia, które są elementami sieci IoT mogą się między sobą komunikować bez konieczności udziału człowieka, a więc są autonomicznymi elementami tej sieci.
* '''Autonomia''' - za pomocą ''middleware'' aplikacje, technologie i urządzenia, które są elementami sieci IoT mogą się między sobą komunikować bez konieczności udziału człowieka, a więc są autonomicznymi elementami tej sieci.


Architektura oprogramowania pośredniczącego powinna spełniać także inne wymagania niefunkcjonalne, m.in. skalowalność, obsługę zdarzeń i danych w czasie rzeczywistym, niezawodność, wysoką dostępność, bezpieczeństwo i ochronę prywatności danych (W. Daszczuk i in. 2021, s. 177).
Architektura oprogramowania pośredniczącego powinna spełniać także inne wymagania niefunkcjonalne, m.in. skalowalność, obsługę zdarzeń i danych w czasie rzeczywistym, niezawodność, wysoką dostępność, bezpieczeństwo i ochronę prywatności danych (W. Daszczuk i in. 2021, s. 177).
Linia 42: Linia 47:
* Oprogramowanie pośredniczące zorientowane na bazę danych (''Database-Oriented Middleware'')
* Oprogramowanie pośredniczące zorientowane na bazę danych (''Database-Oriented Middleware'')
* Oprogramowanie pośredniczące specyficzne dla aplikacji (''Application-Specific Middleware'')
* Oprogramowanie pośredniczące specyficzne dla aplikacji (''Application-Specific Middleware'')
{{infobox5|list1={{i5link|a=[[System operacyjny]]}} &mdash; {{i5link|a=[[Program komputerowy]]}} &mdash; {{i5link|a=[[SQL]]}} &mdash; {{i5link|a=[[Komputer stacjonarny]]}} &mdash; {{i5link|a=[[Mikroserwisy]]}} &mdash; {{i5link|a=[[Portal korporacyjny]]}} &mdash; {{i5link|a=[[Aktualizacja oprogramowania]]}} &mdash; {{i5link|a=[[Python]]}} &mdash; {{i5link|a=[[Chmura obliczeniowa]]}} &mdash; {{i5link|a=[[Inwencja twórcza]]}} }}


==Bibliografia==
==Bibliografia==
* Bandyopadhyay S. (red.) (2011) [https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.1071.5409&rep=rep1&type=pdf ''Role of Middleware for Internet of Things: A Study''], "International Journal of Computer Science & Engineering Survey (IJCSES)", nr 3, s. 94-105
<noautolinks>
* Daszczuk W. (red.) (2021) ''Inżynieria systemów internetu rzeczy. Sprzęt i oprogramowanie.'' Oficyna Wydawnicza Politechniki Warszawskiej, s. 11-181
* Bandyopadhyay S. (red.) (2011), ''Role of Middleware for Internet of Things: A Study'', International Journal of Computer Science & Engineering Survey (IJCSES), nr 3
* Dotson, C. (2021). [https://yadda.icm.edu.pl/yadda/element/bwmeta1.element.baztech-b008d83d-59cf-4c64-b77b-22a9805e6ad9/c/Dotson_Bezpieczenstwo_NiS_4_2021.pdf ''Bezpieczeństwo w chmurze. Zasady i pojęcia.''] Napędy i Sterowanie, nr 4, s. 39-44
* Daszczuk W. (red.) (2021), ''Inżynieria systemów internetu rzeczy. Sprzęt i oprogramowanie'', Oficyna Wydawnicza Politechniki Warszawskiej
* Fremantle P., Scott P. (2017). [https://peerj.com/articles/cs-114/ ''A survey of secure middleware for the Internet of Things.''] "PeerJ Computer Science".
* Dotson C. (2021), ''[https://yadda.icm.edu.pl/yadda/element/bwmeta1.element.baztech-b008d83d-59cf-4c64-b77b-22a9805e6ad9/c/Dotson_Bezpieczenstwo_NiS_4_2021.pdf Bezpieczeństwo w chmurze. Zasady i pojęcia]'', Napędy i Sterowanie, nr 4
* Januszewski A. (2008) ''Funkcjonalność informatycznych systemów zarządzania, t. 1.'' Wydawnictwo Naukowe PWN, Warszawa, s. 357
* Fremantle P., Scott P. (2017), ''[https://peerj.com/articles/cs-114/ A survey of secure middleware for the Internet of Things]'', PeerJ Computer Science
* Januszewski A. (2008) ''Funkcjonalność informatycznych systemów zarządzania, t. 2.'' Wydawnictwo Naukowe PWN, Warszawa, s. 113-114
* Januszewski A. (2008), ''Funkcjonalność informatycznych systemów zarządzania'', Wydawnictwo Naukowe PWN, Warszawa
* Januszewski A. (2008), ''Funkcjonalność informatycznych systemów zarządzania'', Wydawnictwo Naukowe PWN, Warszawa
</noautolinks>


{{a|Justyna Prus}}  
{{a|Justyna Prus}}
[[Kategoria:Przemysł 4.0]]


[[Kategoria:Systemy informatyczne]]
{{#metamaster:description|Middleware to oprogramowanie pośredniczące w IoT, umożliwiające komunikację między składnikami systemu. Działa jako interfejs między czytnikiem a aplikacją użytkową i Internetem.}}

Aktualna wersja na dzień 18:53, 18 sty 2024

Middleware, w systemie Internetu rzeczy (IoT) oznacza oprogramowanie pośredniczące, które umożliwia komunikację pomiędzy składnikami oprogramowania danego systemu, w skład którego wchodzić mogą różne aplikacje, podprogramy i usługi (W. Daszczuk i in. 2021, s. 11). W takim systemie, middleware stanowi "interfejs między czytnikiem a aplikacją użytkową i Internetem" (A. Januszewski 2008, s.357)

Ze względu na specyfikę systemów Internetu rzeczy, pewne elementy oprogramowania tych systemów są powtarzalne, mają podobną strukturę oraz sposób działania niezależnie od przeznaczenia konkretnych urządzeń i ich dziedziny. Jeśli te elementy nie są zależne od systemu operacyjnego i konkretnej aplikacji, mogą one zostać umieszczone w bibliotekach stanowiących część wielu różnych aplikacji. Jeśli te biblioteki są ustandaryzowane i pozwalają na pracę z różnymi systemami operacyjnymi, to stanowią one oprogramowanie pośredniczące, czyli middleware (W. Daszczuk i in. 2021, s. 175-176).

Dzięki wykorzystaniu oprogramowania pośredniczącego, istnieje możliwość połączenia różnorodnych platform sprzętowych, systemów operacyjnych czy też baz danych występujących w przedsiębiorstwie z wykorzystaniem między innymi (A. Januszewski 2008, s. 113-114):

  • gateway’ów
  • sterowników ODBC
  • sterowników ISAM
  • translatorów
  • konwerterów
  • generatorów skryptów.

TL;DR

Middleware w systemie IoT to oprogramowanie pośredniczące, które umożliwia komunikację między składnikami systemu. Dzięki niemu można połączyć różne platformy, systemy operacyjne i bazy danych. Oprogramowanie pośredniczące pełni wiele funkcji, takich jak wykrywanie zasobów, zarządzanie nimi, komponowanie usług, zarządzanie danymi i zdarzeniami oraz zarządzanie kodem. Architektura oprogramowania pośredniczącego powinna spełniać wymagania funkcjonalne i niefunkcjonalne, a istnieje wiele różnych typów oprogramowania pośredniczącego, opartych na różnych paradygmatach programowania.

Funkcje oprogramowania pośredniczącego (middleware)

Funkcje jakie powinno realizować oprogramowanie pośredniczące zależne jest od specyfiki systemów Internetu rzeczy. Wśród tych funkcji wymienić można (W. Daszczuk i in. 2021, s. 176):

  • Wykrywanie zasobów - ze względu na dynamikę systemów Internetu rzeczy, funkcja wykrywania zasobów powinna być zautomatyzowana i realizowana za pomocą middleware.
  • Zarządzanie zasobami - oprogramowanie pośredniczące powinno być odpowiedzialne za odpowiednie monitorowanie, przydzielanie i udostępnianie wykorzystania zasobów oraz w razie potrzeby, rozwiązywanie konfliktów w dostępie do nich.
  • Komponowanie usług - ponowne komponowanie usług powinno być ułatwione dzięki oprogramowaniu pośredniczącemu, które reaguje na żądanie aplikacji lub interweniuje w wyniku wykrycia istotnych zmian konfiguracji środowiska systemowego.
  • Zarządzanie danymi - middleware w aplikacjach Internetu rzeczy powinno zapewniać aplikacjom usługi dotyczące zarządzania danymi - ich pozyskiwanie, przetwarzanie (również przetwarzanie wstępne, np. filtrowanie, kompresję i agregację) oraz przechowywanie.
  • Zarządzanie zdarzeniami - ze względu na generowanie ogromnej liczby zdarzeń w aplikacjach IoT, middleware odpowiedzialne jest za ustrukturalizowanie zbiorów zdarzeń istotnych dla aplikacji To z kolei pozwala aplikacjom na analizę danych o dużej zmienności w czasie rzeczywistym.
  • Zarządzanie kodem - ze względu na trudności związane z alokacją i migracją kodu w sieciach IoT, wdrażanie kodu w środowisku Internetu rzeczy powinno być obsługiwane przez oprogramowanie pośredniczące, aby równoważyć obciążenie węzłów i zmniejszać ruch w sieci.

Wymagania architektury oprogramowania pośredniczącego (middleware)

Z uwagi na konieczność wsparcia programistów aplikacji IoT, istnieją pewne wymagania funkcjonalne dotyczące architektury oprogramowania pośredniczącego. Tymi wymaganiami są między innymi (W. Daszczuk i in. 2021, s. 177):

  • Abstrakcja programowania - należy zapewnić istnienie warstwy abstrakcji, to znaczy interfejsu, za pomocą którego użytkownik będzie mógł obsługiwać oprogramowanie pośredniczące.
  • Interoperacyjność - możliwość współpracy middleware z wieloma różnymi aplikacjami, urządzeniami i technologiami powinna odbywać się z wykorzystaniem różnorodnych technologii komunikacyjnych, bez konieczności wykonywania dodatkowej pracy przez twórców usług czy też aplikacji IoT.
  • Usługi - to wymaganie oznacza konieczność oparcia architektury middleware na usługach. Zapewnia to elastyczność w przypadku wprowadzania nowych, zaawansowanych funkcji systemu.
  • Adaptacja - oprogramowanie pośredniczące powinno posiadać zdolność do szybkiej ewolucji i adaptacji do zmian zachodzących w otoczeniu lub tworzeniu aplikacji.
  • Autonomia - za pomocą middleware aplikacje, technologie i urządzenia, które są elementami sieci IoT mogą się między sobą komunikować bez konieczności udziału człowieka, a więc są autonomicznymi elementami tej sieci.

Architektura oprogramowania pośredniczącego powinna spełniać także inne wymagania niefunkcjonalne, m.in. skalowalność, obsługę zdarzeń i danych w czasie rzeczywistym, niezawodność, wysoką dostępność, bezpieczeństwo i ochronę prywatności danych (W. Daszczuk i in. 2021, s. 177).

Typy oprogramowania pośredniczącego (middleware)

Każde oprogramowanie pośredniczące oparte jest na określonym paradygmacie programowania, który określa zespół cech charakteryzujących działanie tego oprogramowania.

Dzięki wykorzystaniu tych paradygmatów istnieje możliwość ujednolicenia dostępu do różnych elementów sieci IoT, co znacznie skracai ułatwia tworzenie aplikacji działających w Internecie rzeczy. Mając na uwadze różne paradygmaty programowania, można wyróżnić następujące typy oprogramowania pośredniczącego (W. Daszczuk i in. 2021, s. 178-181):

  • Oprogramowanie pośredniczące zorientowane na zdarzenia (Event-Oriented Middleware - EOM)
  • Oprogramowanie pośredniczące zorientowane na wiadomości (Message-Oriented Middleware - MOM)
  • Oprogramowanie pośredniczące zorientowane na usługi (Service Oriented Middleware - SOM)
  • Oprogramowanie pośredniczące oparte na wirtualizacji (Virtual Machine-based Middleware - VMM)
  • Oprogramowanie pośredniczące oparte na agentach (Agent-based Middleware)
  • Oprogramowanie pośredniczące oparte na przestrzeni kortek (Tuple-Space Middleware)
  • Oprogramowanie pośredniczące zorientowane na bazę danych (Database-Oriented Middleware)
  • Oprogramowanie pośredniczące specyficzne dla aplikacji (Application-Specific Middleware)


Middlewareartykuły polecane
System operacyjnyProgram komputerowySQLKomputer stacjonarnyMikroserwisyPortal korporacyjnyAktualizacja oprogramowaniaPythonChmura obliczeniowaInwencja twórcza

Bibliografia

  • Bandyopadhyay S. (red.) (2011), Role of Middleware for Internet of Things: A Study, International Journal of Computer Science & Engineering Survey (IJCSES), nr 3
  • Daszczuk W. (red.) (2021), Inżynieria systemów internetu rzeczy. Sprzęt i oprogramowanie, Oficyna Wydawnicza Politechniki Warszawskiej
  • Dotson C. (2021), Bezpieczeństwo w chmurze. Zasady i pojęcia, Napędy i Sterowanie, nr 4
  • Fremantle P., Scott P. (2017), A survey of secure middleware for the Internet of Things, PeerJ Computer Science
  • Januszewski A. (2008), Funkcjonalność informatycznych systemów zarządzania, Wydawnictwo Naukowe PWN, Warszawa
  • Januszewski A. (2008), Funkcjonalność informatycznych systemów zarządzania, Wydawnictwo Naukowe PWN, Warszawa


Autor: Justyna Prus