miniatura|Arhitectură software: middlewareMiddleware 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.

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.

În aplicațiile distribuite

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. Î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.

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. 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.

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. Exemple de middleware orientat spre baze de date sunt ODBC, JDBC și monitoarele de procesare a tranzacțiilor.

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 și este utilizată în special în sisteme înglobate complexe din domeniile telecomunicațiilor, apărării și industriei aerospațiale.

Utilizarea middleware-ului Î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:

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.

Alte exemple 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. Î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 și RenderWare, este uneori descris ca middleware, deoarece oferă servicii reutilizabile care simplifică dezvoltarea jocurilor. Î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. Î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. Sistemul de operare QNX oferă middleware pentru servicii multimedia folosite în automobile, aeronave și alte medii tehnice. Seturile de instrumente software pentru identificare prin radiofrecvență (RFID) oferă middleware pentru filtrarea datelor brute zgomotoase sau redundante. Note

Vezi și

Limbaj independent

Software terț

Categorie:Arhitectură software Categorie:Calcul distribuit Categorie:Software de sistem