Sari la conținut

Middleware

De la Wikipedia, enciclopedia liberă
Image
Arhitectură software: middleware

Middleware este un tip de software care oferă aplicațiilor software servicii suplimentare față de cele puse la dispoziție de sistemul de operare. În literatura de specialitate este descris frecvent ca un „software de legătură”, deoarece facilitează comunicarea dintre componente, aplicații, baze de date, dispozitive sau platforme diferite.[1][2]

Prin folosirea middleware-ului, dezvoltatorii de software pot implementa mai ușor comunicarea și operațiile de intrare/ieșire, concentrându-se în principal asupra funcției aplicației pe care o dezvoltă. Conceptul a devenit important odată cu nevoia de a conecta aplicații noi la sisteme vechi, de tip legacy, în special începând cu anii 1980; termenul apare însă deja într-un raport al conferinței NATO despre ingineria software din 1968.[3][4]

În aplicațiile distribuite

[modificare | modificare sursă]

Termenul este folosit cel mai des pentru software-ul care permite comunicarea și administrarea datelor în aplicații distribuite. Un raport IETF din 2000 a caracterizat middleware-ul ca ansamblul serviciilor aflate deasupra nivelului de transport, adică peste TCP/IP, dar sub mediul aplicației, respectiv sub API-urile de nivel aplicație.[5] În acest sens, middleware-ul poate fi privit ca elementul de legătură dintre părțile unei arhitecturi client-server sau dintre nodurile unei arhitecturi peer-to-peer. În această categorie intră serverele web, serverele de aplicații, sistemele de management al conținutului și alte instrumente care susțin dezvoltarea și livrarea aplicațiilor.[6]

ObjectWeb a definit middleware-ul ca stratul software aflat între sistemul de operare și aplicațiile de pe fiecare parte a unui sistem distribuit conectat în rețea.[7] Printre serviciile încadrate de obicei în middleware se află integrarea aplicațiilor la nivel organizațional, integrarea datelor, middleware-ul orientat pe mesaje, brokerii de cereri pentru obiecte și magistrala de servicii enterprise.[8]

Serviciile de acces la baze de date sunt, de asemenea, tratate frecvent ca middleware. Unele implementări sunt specifice unui limbaj de programare și oferă funcții pentru lucrul cu sisteme eterogene și pentru comunicare între componente diferite.[9] Exemple de middleware orientat spre baze de date sunt ODBC, JDBC și monitoarele de procesare a tranzacțiilor.[10]

Middleware-ul pentru sisteme distribuite poate fi împărțit, în linii mari, în două categorii: servicii care funcționează la scara timpului uman, de exemplu procesarea cererilor web, și servicii care operează la scara timpului mașinii. A doua categorie a fost parțial standardizată prin Service Availability Forum[11] și este utilizată în special în sisteme înglobate complexe din domeniile telecomunicațiilor, apărării și industriei aerospațiale.[12]

Utilizarea middleware-ului

[modificare | modificare sursă]

În funcție de domeniul de utilizare sau de modulul aplicației pe care îl deservește, au fost definite mai multe categorii de middleware. O sinteză recentă identifică drept categorii principale următoarele tipuri:[4]

  • Tranzacțional: gestionează mai multe tranzacții sincrone sau asincrone, organizate ca grupuri de cereri asociate provenite din sisteme distribuite, de exemplu operațiuni bancare sau plăți cu cardul.
  • Orientat pe mesaje: folosește cozi de mesaje și arhitecturi de transmitere a mesajelor pentru a susține comunicarea sincronă sau asincronă.
  • Procedural: conectează arhitecturi locale și la distanță pentru apelarea, transmiterea și recuperarea răspunsurilor software în comunicări asincrone, precum apelurile de operații.
  • Orientat pe obiecte: este apropiat de middleware-ul procedural, dar utilizează principiile programării orientate pe obiecte. Componenta software include referințe la obiecte, excepții și moștenirea proprietăților prin cereri distribuite adresate obiectelor.

Termenul middleware este folosit și în alte contexte. Uneori desemnează un strat de abstractizare asemănător unui driver, care ascunde pentru aplicație detaliile legate de dispozitive hardware sau de alte componente software.

  • Sistemul de operare Android folosește nucleul Linux și oferă un cadru de aplicații pe care dezvoltatorii îl pot utiliza în programele lor. Android include și un strat middleware format din biblioteci care oferă servicii precum stocarea datelor, afișarea pe ecran, funcțiile multimedia și navigarea web. Deoarece bibliotecile middleware sunt compilate în limbaj mașină, serviciile rulează rapid. Ele implementează și funcții specifice dispozitivelor, astfel încât aplicațiile și cadrul de aplicații nu trebuie să gestioneze direct diferențele dintre dispozitivele Android. Stratul middleware al Android include, de asemenea, mașina virtuală ART și bibliotecile sale principale pentru Java.[13]
  • În dezvoltarea API-urilor, middleware-ul poate desemna componente plasate între două sau mai multe interfețe, care oferă servicii transversale precum limitarea ratei de cereri, autentificarea sau jurnalizarea.
  • Software-ul de tip motor de joc, inclusiv produse precum Gamebryo(en)[traduceți] și RenderWare, este uneori descris ca middleware, deoarece oferă servicii reutilizabile care simplifică dezvoltarea jocurilor.[14]
  • În tehnologia simulărilor, termenul middleware este folosit de obicei în contextul High Level Architecture (HLA), utilizată pentru simulări distribuite. Middleware-ul este stratul software dintre codul aplicației și infrastructura de execuție. El conține, de regulă, o bibliotecă de funcții, permițând mai multor aplicații, numite în terminologia HLA simulări sau federați, să apeleze funcțiile dintr-o bibliotecă comună, fără a le recrea separat pentru fiecare aplicație.[15]
  • În calculatoarele x86, UEFI și BIOS pot fi privite ca middleware între sistemul de operare și hardware.
  • Dezvoltatorii de rețele fără fir pot folosi middleware pentru a gestiona dificultățile specifice unei rețele de senzori fără fir (WSN). O aplicație middleware permite integrarea sistemelor de operare și a componentelor hardware cu gama largă de aplicații disponibile pentru astfel de rețele.[16]
  • Sistemul de operare QNX oferă middleware pentru servicii multimedia folosite în automobile, aeronave și alte medii tehnice.[17]
  • Seturile de instrumente software pentru identificare prin radiofrecvență (RFID) oferă middleware pentru filtrarea datelor brute zgomotoase sau redundante.[18]
  1. „ACM/IFIP/USENIX Middleware”. middleware-conf.github.io (în engleză). Accesat în .
  2. „What Is Middleware?”. Middleware.org (în engleză). Defining Technology. . Arhivat din original la . Accesat în .
  3. Naur, Peter; Randell, Brian, ed. (). Software Engineering: Report on a conference sponsored by the NATO Science Committee, Garmisch, Germany, 7th to 11th October 1968 (PDF) (în engleză). Scientific Affairs Division, NATO. p. 14.
  4. 1 2 Gazis, Alexandros; Katsiri, Eleftheria (). „Middleware 101: What to know now and for the future”. ACM Queue (în engleză). 20 (1): 10–23. doi:10.1145/3526211Accesibil gratuit.
  5. Aiken, R.; Carpenter, B.; Foster, I.; Lynch, C.; Mambretti, J.; Moore, R.; Teitelbaum, B. (februarie 2000). „RFC 2768: Network Policy and Services: A Report of a Workshop on Middleware”. IETF Datatracker (în engleză). Internet Engineering Task Force. Accesat în .
  6. Etzkorn, L. H. (). Introduction to Middleware: Web Services, Object Components, and Cloud Computing (în engleză). CRC Press. pp. 4–5. ISBN 9781498754101.
  7. Krakowiak, Sacha. „What's middleware?” (în engleză). ObjectWeb.org. Arhivat din original la . Accesat în .
  8. Luckham, D. C. (). Event Processing for Business: Organizing the Real-Time Enterprise (în engleză). John Wiley & Sons. pp. 27–28. ISBN 9781118171851.
  9. Simon, A. R.; Wheeler, T. (). Open Client/Server Computing and Middleware (în engleză). Academic Press. pp. 43–49. ISBN 9781483214276.
  10. Arregoces, M.; Portolani, M. (). Data Center Fundamentals (în engleză). Cisco Press. pp. 92–93. ISBN 9781587140747.
  11. „Service Availability Interface Specification” (PDF) (în engleză). Service Availability Forum. . Arhivat din original (PDF) la . Accesat în .
  12. Jokiaho, T.; Fryer, J. (). „Foreword”. Service Availability: Principles and Practice (în engleză). John Wiley & Sons. p. xv. ISBN 9781119941675.
  13. Collins, Charlie; Galpin, Michael; Kaeppler, Matthias (). Android in Practice (în engleză). Manning Publications.
  14. Moore, M. E. (). Introduction to the Game Industry (în engleză). Pearson Prentice Hall. p. 169. ISBN 9780131687431.
  15. Becchini, R.; Chilaev, P.; Krivtsov, V.; et al. (). „Chapter 4: Middleware”. În Drira, K.; Martelli, A.; Villemur, T. Cooperative Environments for Distributed Systems Engineering: The Distributed Systems Environment Report (în engleză). Springer. pp. 41–44. ISBN 9783540455820.
  16. Hadim, Salem; Mohamed, Nader (). „Middleware: Middleware Challenges and Approaches for Wireless Sensor Networks”. IEEE Distributed Systems Online (în engleză). 7 (3). doi:10.1109/MDSO.2006.19.
  17. „QNX Software Joins Internet ITS Consortium of Japan”. QNX News Releases (în engleză). QNX. . Accesat în .
  18. Glover, B.; Bhatt, H. (). RFID Essentials (în engleză). O'Reilly Media. pp. 38–44. ISBN 9780596009441.
Image Informatică
Proiectul Informatică Portal Informatică Codul de Bare