Transparens (människa–datorinteraktion)
Varje förändring i ett datorsystem , såsom en ny funktion eller ny komponent, är transparent om systemet efter ändringen följer tidigare externa gränssnitt så mycket som möjligt samtidigt som det ändrar dess interna beteende. Syftet är att skydda alla system (eller mänskliga användare) från förändringar i andra änden av gränssnittet. Förvirrande nog hänvisar termen till övergripande osynlighet av komponenten, den hänvisar inte till synlighet av komponentens inre delar (som i vit ruta eller öppet system ). Termen transparent används ofta i datormarknadsföring i stället för termen osynlig , eftersom termen osynlig har en dålig klang (vanligtvis ses som något som användaren inte kan se och inte har någon kontroll över) medan termen transparent har en bra klang. (vanligtvis förknippat med att inte dölja något). De allra flesta gånger används termen transparent på ett missvisande sätt för att hänvisa till den faktiska osynligheten hos en datorprocess, vilket också beskrivs med termen opaque , särskilt när det gäller datastrukturer. [ citat behövs ] På grund av denna missvisande och kontraintuitiva definition tenderar modern datorlitteratur att föredra användningen av " agnostiker " framför "transparent".
Termen används särskilt ofta när det gäller ett abstraktionslager som är osynligt antingen från dess övre eller nedre angränsande lager.
Också tillfälligt använt senare omkring 1969 i IBM och Honeywells programmeringsmanualer [ citat behövs ] termen hänvisade till en viss datorprogrammeringsteknik . En applikationskod var genomskinlig när den var fri från detaljen på låg nivå (som enhetsspecifik hantering) och innehöll bara logiken som löser ett huvudproblem. Det uppnåddes genom inkapsling – att lägga koden i moduler som gömde interna detaljer, vilket gjorde dem osynliga för huvudapplikationen.
Exempel
Nätverksfilsystemet är till exempel genomskinligt, eftersom det introducerar åtkomst till filer som lagras på distans i nätverket på ett sätt som är enhetligt med tidigare lokal åtkomst till ett filsystem , så att användaren kanske inte ens märker det när han använder mapphierarkin. Det tidiga FTP- protokollet (File Transfer Protocol) är betydligt mindre genomskinligt, eftersom det kräver att varje användare lär sig hur man kommer åt filer via en ftp- klient.
På samma sätt tillåter vissa filsystem transparent komprimering och dekomprimering av data, vilket gör det möjligt för användare att lagra fler filer på ett medium utan någon speciell kunskap; vissa filsystem krypterar filer transparent. Detta tillvägagångssätt kräver inte att du kör ett komprimerings- eller krypteringsverktyg manuellt.
Inom mjukvaruteknik anses det också vara god praxis att utveckla eller använda abstraktionslager för databasåtkomst , så att samma applikation fungerar med olika databaser; här tillåter abstraktionsskiktet att andra delar av programmet får tillgång till databasen på ett transparent sätt (se till exempel Data Access Object ) .
I objektorienterad programmering underlättas transparens genom användning av gränssnitt som döljer faktiska implementeringar gjorda med olika underliggande klasser .
Typer av transparens i distribuerade system
Transparens innebär att varje form av distribuerat system ska dölja sin distribuerade karaktär för sina användare, framstå och fungera som ett normalt centraliserat system.
Det finns många typer av transparens:
- Åtkomsttransparens – Oavsett hur resursåtkomst och representation måste utföras på varje enskild datorenhet, bör användarna av ett distribuerat system alltid få tillgång till resurser på ett enda, enhetligt sätt. Exempel: SQL-frågor
- Platstransparens – Användare av ett distribuerat system ska inte behöva vara medvetna om var en resurs fysiskt finns. Exempel: Sidor på webben
- Migrationstransparens – Användare bör inte vara medvetna om huruvida en resurs eller datorenhet har förmågan att flytta till en annan fysisk eller logisk plats.
- Transparens vid omlokalisering – Om en resurs flyttas medan den används bör detta inte märkas för slutanvändaren.
- Replikeringstransparens – Om en resurs replikeras mellan flera platser bör den visas för användaren som en enda resurs.
- Samtidig transparens – Även om flera användare kan konkurrera om och dela en enda resurs, bör detta inte vara uppenbart för någon av dem.
- Feltransparens – Försök alltid att dölja eventuella fel och återställning av datorenheter och resurser.
- Persistenstransparens – Huruvida en resurs ligger i flyktigt eller permanent minne bör inte göra någon skillnad för användaren.
- Säkerhetstransparens – Förhandlingar om kryptografiskt säker åtkomst av resurser måste kräva ett minimum av användaringripande, annars kommer användare att kringgå säkerheten framför produktivitet. [ citat behövs ]
Formella definitioner av de flesta av dessa begrepp finns i RM-ODP , Open Distributed Processing Reference Model (ISO 10746).
Graden i vilken dessa egenskaper kan eller bör uppnås kan variera kraftigt. Inte alla system kan eller bör dölja allt för sina användare. Till exempel, på grund av förekomsten av en fast och ändlig ljushastighet kommer det alltid att finnas mer fördröjning för att komma åt resurser på avstånd från användaren. Om man förväntar sig interaktion i realtid med det distribuerade systemet kan detta vara mycket märkbart.