Cualquier cambio en un sistema informático , como una nueva característica o un nuevo componente, es transparente si el sistema después del cambio se adhiere a la interfaz externa anterior tanto como sea posible mientras cambia su comportamiento interno. El propósito es proteger del cambio todos los sistemas (o usuarios humanos) en el otro extremo de la interfaz. De manera confusa, el término se refiere a la invisibilidad general del componente, no se refiere a la visibilidad de las partes internas del componente (como en la caja blanca o en el sistema abierto ). El término transparente se usa ampliamente en marketing informático en sustitución del término invisible , ya que el término invisibletiene una mala connotación (generalmente visto como algo que el usuario no puede ver y sobre lo que no tiene control) mientras que el término transparente tiene una buena connotación (generalmente asociado con no ocultar nada). La gran mayoría de las veces, el término transparente se utiliza de manera engañosa para referirse a la invisibilidad real de un proceso informático. [ cita requerida ] Debido a esta definición engañosa y contraintuitiva, la literatura informática moderna tiende a preferir el uso de " agnóstico " sobre "transparente".
El término se utiliza con especial frecuencia con respecto a una capa de abstracción que es invisible desde su capa vecina superior o inferior.
También se usó temporalmente más tarde alrededor de 1969 en los manuales de programación de IBM y Honeywell [ cita requerida ] el término se refería a una determinada técnica de programación de computadoras . El código de una aplicación era transparente cuando estaba claro en los detalles de bajo nivel (como la administración específica del dispositivo) y solo contenía la lógica que resuelve un problema principal. Se logró mediante la encapsulación , colocando el código en módulos que ocultaban detalles internos, haciéndolos invisibles para la aplicación principal.
Ejemplos de
Por ejemplo, el Sistema de archivos de red es transparente, porque introduce el acceso a los archivos almacenados de forma remota en la red de una manera uniforme con el acceso local anterior a un sistema de archivos , por lo que el usuario podría ni siquiera notarlo mientras usa la jerarquía de carpetas. El primer protocolo de transferencia de archivos (FTP) es considerablemente menos transparente, porque requiere que cada usuario aprenda a acceder a los archivos a través de un cliente ftp .
De manera similar, algunos sistemas de archivos permiten la compresión y descompresión transparentes de datos, lo que permite a los usuarios almacenar más archivos en un medio sin ningún conocimiento especial; algunos sistemas de archivos cifran archivos de forma transparente. Este enfoque no requiere ejecutar manualmente una utilidad de compresión o cifrado.
En ingeniería de software , también se considera una buena práctica desarrollar o utilizar capas de abstracción para el acceso a la base de datos , de modo que la misma aplicación funcione con diferentes bases de datos; aquí, la capa de abstracción permite que otras partes del programa accedan a la base de datos de forma transparente (consulte Objeto de acceso a datos , por ejemplo).
En la programación orientada a objetos , la transparencia se facilita mediante el uso de interfaces que ocultan las implementaciones reales realizadas con diferentes clases subyacentes .
Tipos de transparencia en sistema distribuido
La transparencia significa que cualquier forma de sistema distribuido debe ocultar su naturaleza distribuida a sus usuarios, apareciendo y funcionando como un sistema centralizado normal.
Hay muchos tipos de transparencia:
- Transparencia de acceso: independientemente de cómo se deba realizar el acceso y la representación a los recursos en cada entidad informática individual, los usuarios de un sistema distribuido siempre deben acceder a los recursos de una manera única y uniforme.
- Transparencia de la ubicación : los usuarios de un sistema distribuido no deberían tener que saber dónde se encuentra físicamente un recurso. Ejemplo: páginas en la Web.
- Transparencia de la migración: los usuarios no deben saber si un recurso o una entidad informática posee la capacidad de moverse a una ubicación física o lógica diferente.
- Transparencia de reubicación: si un recurso se mueve mientras está en uso, esto no debería ser notorio para el usuario final.
- Transparencia de replicación : si un recurso se replica entre varias ubicaciones, el usuario debe verlo como un solo recurso.
- Transparencia concurrente : si bien varios usuarios pueden competir por un solo recurso y compartirlo, esto no debería ser evidente para ninguno de ellos.
- Transparencia de fallas : intente siempre ocultar cualquier falla y recuperación de entidades y recursos informáticos.
- Transparencia de persistencia : el hecho de que un recurso se encuentre en una memoria volátil o permanente no debería representar ninguna diferencia para el usuario.
- Transparencia de la seguridad : la negociación del acceso criptográficamente seguro a los recursos debe requerir un mínimo de intervención del usuario, o los usuarios eludirán la seguridad en lugar de la productividad. [ cita requerida ]
Las definiciones formales de la mayoría de estos conceptos se pueden encontrar en RM-ODP , el modelo de referencia de procesamiento distribuido abierto (ISO 10746).
El grado en el que estas propiedades pueden o deben lograrse puede variar ampliamente. No todos los sistemas pueden o deben ocultar todo a sus usuarios. Por ejemplo, debido a la existencia de una velocidad de la luz fija y finita siempre habrá más latencia al acceder a recursos alejados del usuario. Si uno espera una interacción en tiempo real con el sistema distribuido, esto puede ser muy notorio.