Strat de abstractizare - Abstraction layer

În calcul , un strat de abstractizare sau un nivel de abstractizare este un mod de a ascunde detaliile de lucru ale unui subsistem, permițând separarea preocupărilor pentru a facilita interoperabilitatea și independența platformei . Exemple de modele software care utilizează straturi de abstractizare includ modelul OSI pentru protocoale de rețea , OpenGL și alte biblioteci grafice .

În informatică , un strat de abstractizare este o generalizare a unui model conceptual sau algoritm , departe de orice implementare specifică. Aceste generalizări apar din similitudini largi care sunt cel mai bine încapsulate de modele care exprimă similitudini prezente în diferite implementări specifice. Simplificarea oferită de un bun strat de abstractizare permite reutilizarea ușoară prin distilarea unui concept util sau a unui model de proiectare, astfel încât situațiile, în care pot fi aplicate cu acuratețe, să poată fi recunoscute rapid.

Un strat este considerat a fi deasupra altuia dacă depinde de acesta. Fiecare strat poate exista fără straturile de deasupra acestuia și necesită ca straturile de sub acesta să funcționeze. Straturile de abstractizare frecvent pot fi compuse într-o ierarhie a nivelurilor de abstractizare. Modelul OSI cuprinde șapte straturi de abstractizare. Fiecare strat al modelului încapsulează și abordează o parte diferită a nevoilor comunicațiilor digitale, reducând astfel complexitatea soluțiilor de inginerie asociate.

Un celebru aforism al lui David Wheeler este „Toate problemele din domeniul informaticii pot fi rezolvate printr-un alt nivel de indirecție”. Acest lucru este adesea citat greșit în mod deliberat cu „abstractizare” înlocuită cu „indirectare”. De asemenea, este uneori atribuit greșit lui Butler Lampson . Corolarul lui Kevlin Henney în acest sens este: „... cu excepția problemei prea multor straturi de indirecție”.

Arhitectura calculatorului

Într-o arhitectură de computer , un sistem de computer este de obicei reprezentat ca fiind format din mai multe niveluri de abstractizare, cum ar fi:

Logica programabilă este adesea considerată parte a hardware-ului, în timp ce definițiile logice sunt uneori văzute ca parte a software-ului sau firmware-ului unui dispozitiv. Firmware-ul poate include doar software de nivel scăzut, dar poate include și toate software-urile, inclusiv un sistem de operare și aplicații. Straturile software pot fi împărțite în continuare în straturi de abstractizare hardware, drivere de dispozitiv fizice și logice, depozite precum sisteme de fișiere, nuclee de sisteme de operare, middleware, aplicații și altele. Se poate face, de asemenea, o distincție de la limbaje de programare de nivel scăzut, cum ar fi VHDL , limbaj de mașină , limbaj de asamblare la un limbaj compilat , interpret și limbaj de script .

Intrare și ieșire

În sistemul de operare Unix, majoritatea tipurilor de operații de intrare și ieșire sunt considerate a fi fluxuri de octeți citite de pe un dispozitiv sau scrise pe un dispozitiv. Acest model de flux de octeți este utilizat pentru I / O fișier, I / O socket și I / O terminal pentru a asigura independența dispozitivului. Pentru a citi și scrie pe un dispozitiv la nivelul aplicației, programul apelează o funcție pentru a deschide dispozitivul, care poate fi un dispozitiv real, cum ar fi un terminal sau un dispozitiv virtual, cum ar fi un port de rețea sau un fișier într-un sistem de fișiere . Caracteristicile fizice ale dispozitivului sunt mediate de sistemul de operare, care la rândul său prezintă o interfață abstractă care permite programatorului să citească și să scrie octeți de la / către dispozitiv. Sistemul de operare efectuează apoi transformarea efectivă necesară pentru a citi și scrie fluxul de octeți pe dispozitiv.

Grafică

Majoritatea bibliotecilor grafice, cum ar fi OpenGL, oferă un model abstract de dispozitiv grafic ca interfață. Biblioteca este responsabilă de traducerea comenzilor furnizate de programator în comenzile specifice dispozitivului necesare pentru a desena elementele grafice și obiectele. Comenzile specifice dispozitivului pentru un plotter sunt diferite de comenzile de dispozitiv pentru un monitor CRT monitor , dar ascunde grafica bibliotecă punerea în aplicare și detaliile dependente de dispozitiv prin furnizarea de o interfață abstractă , care oferă un set de primitive , care sunt utile în general pentru desenarea obiectelor grafice.

Vezi si

Referințe