Servicio de transferencia inteligente en segundo plano | bits

El Servicio de Transferencia Inteligente en Segundo Plano, también conocido como BITS por sus siglas en inglés (Background Intelligent Transfer Service), es un servicio que se encuentra en los sistemas operativos de Microsoft Windows. Este servicio permite la descarga desde y la subida de archivos a servidores web a través del protocolo de transferencia de hipertexto (HTTP) y a servidores de archivos de mensajes de servidor (SMB). BITS utiliza el ancho de banda de red inactivo para transferir archivos en segundo plano o en primer plano, de manera que la experiencia del usuario no se vea afectada. Desactivar este servicio impide que las aplicaciones que dependen de BITS descarguen automáticamente programas e información importante.

Índice
  1. Ciclo de vida de un trabajo de BITS
  2. Preservando la experiencia del usuario
  3. Aplicaciones del Servicio de Transferencia Inteligente en Segundo Plano
  4. Tipos de trabajos de transferencia y estados del trabajo en BITS
  5. Niveles de prioridad del Servicio de Transferencia Inteligente en Segundo Plano

Ciclo de vida de un trabajo de BITS

Un trabajo de BITS es un contenedor que almacena uno o más archivos que se van a transferir desde o hacia servidores web y servidores de archivos SMB. Un trabajo tiene propiedades que especifican cómo BITS realiza las transferencias de archivos y cómo interactúa con la aplicación. El ciclo de vida de un trabajo comienza con su creación, donde se establecen la prioridad del trabajo, si es una descarga o una subida, y qué eventos se desea recibir notificaciones. Una vez creado el trabajo, se pueden agregar archivos a él, con un máximo de un archivo para los trabajos de subida. También se pueden cambiar las propiedades del trabajo según las necesidades de la aplicación. Al agregar uno o más archivos al trabajo, es importante especificar el nombre local (del cliente) y el nombre remoto (del servidor) del archivo. Al crear los trabajos, BITS los suspende automáticamente y es necesario reanudarlos para activarlos en la cola de transferencia, es decir, para pasar del estado suspendido al estado en cola. Permanecen en el estado en cola hasta que el programador de BITS determine cuándo transferir los archivos. En ese momento, el trabajo pasa al estado de conexión y BITS se conecta al servidor remoto. Luego pasa al estado de transferencia y permanece allí hasta que se cumpla una de las cuatro condiciones: el tiempo asignado termina, la transferencia se completa, se produce un error o la aplicación suspende el trabajo. Cuando BITS transfiere todos los archivos, el trabajo pasa al estado de transferido. Los archivos transferidos solo están disponibles para el cliente cuando la aplicación llama al método IBackgroundCopyJob::Complete y la propiedad de los archivos se transfiere de BITS al usuario.

Preservando la experiencia del usuario

Dependiendo del ancho de banda de red inactivo disponible, BITS aumenta o disminuye la velocidad a la que se transfieren los archivos. Si una aplicación comienza a consumir más ancho de banda, BITS disminuye automáticamente la velocidad de transferencia de archivos, de manera que se mantenga la experiencia general del usuario y las transferencias en segundo plano sean óptimas. Mientras el usuario que inició la transferencia de archivos permanezca conectado a la red y se mantenga la conexión de red, BITS continuará transfiriendo archivos, incluso si la aplicación se cierra. Sin embargo, BITS no forzará una conexión de red si se pierde o si un usuario cierra sesión. En su lugar, suspende automáticamente el trabajo de transferencia y lo reanuda cuando se restablece la conexión perdida o cuando el usuario que cerró sesión vuelve a iniciar sesión. BITS siempre tiene en cuenta el costo de la transferencia de archivos y el uso de la red, así como la congestión de la red. Además, utiliza políticas de transferencia especificadas por la aplicación para evitar la transferencia de archivos en conexiones de red con costo. Estas consideraciones son especialmente importantes en redes móviles donde los costos pueden aumentar rápidamente. BITS también ayuda a minimizar el impacto o la interferencia en el trabajo en primer plano del usuario, lo que ayuda a preservar su experiencia al trabajar con el sistema.

Aplicaciones del Servicio de Transferencia Inteligente en Segundo Plano

BITS es especialmente útil para los administradores de sistemas que necesitan descargar archivos desde o subir archivos a servidores web HTTP y compartir archivos SMB. También proporciona una interfaz de objeto de componente (COM) que es útil para programadores de C, C++ y .NET. Sin embargo, Microsoft no recomienda el uso de la interfaz de programación de aplicaciones (API) de BITS para programadores de la Plataforma Universal de Windows (UWP); en su lugar, se debe utilizar la API de Windows.Networking.BackgroundTransfer. Windows utiliza BITS para descargar actualizaciones en el sistema local del usuario. Muchas otras aplicaciones también utilizan BITS, incluyendo aquellas que necesitan descargar desde o subir archivos a un servidor web HTTP o REST o a un servidor de archivos SMB. También se utilizan BITS en aplicaciones que necesitan reanudar automáticamente las transferencias de archivos después de desconexiones de red o reinicios de computadora. Por último, BITS se puede utilizar para optimizar el tráfico de la red de área amplia (WAN) cuando se utiliza junto con BranchCache, una tecnología de optimización de WAN incluida en algunas ediciones de Windows y Windows Server. Los administradores pueden utilizar Microsoft Windows BITS para gestionar el tráfico de la WAN.

Tipos de trabajos de transferencia y estados del trabajo en BITS

BITS admite tres tipos de trabajos de transferencia: trabajo de descarga, trabajo de subida y trabajo de subida y respuesta. Un trabajo de BITS puede estar en uno de los cuatro estados: inicio, acción, transferido y final. El estado de inicio, por defecto, es suspendido. Desde este estado, se pueden agregar archivos al trabajo y establecer propiedades tanto del trabajo como de los archivos. El estado de acción puede tener varios subestados que muestran la actividad interna actual del trabajo, como en cola, conectando y transfiriendo. Otro subestado de acción es error transitorio, que indica que el trabajo no pudo transferir el archivo. El estado de transferido ocurre cuando la transferencia se ha completado y no quedan más archivos por transferir. El estado final es cuando el trabajo ha sido reconocido y todos los archivos descargados completados están disponibles. A medida que un trabajo de BITS se ejecuta, va pasando por diferentes estados, pero una vez que alcanza un estado final, no se mueve de ese estado y no es posible llamar a ningún método que cambie su estado. Tampoco aparecerá en una enumeración de trabajos. Si se produce un error, el trabajo pasa al estado de error fatal (BITS no puede recuperarse) o al estado de error transitorio (el error puede resolverse y BITS reintentará el trabajo hasta que la transferencia sea exitosa o hasta que el trabajo agote el tiempo especificado por la aplicación). Si un trabajo agota el tiempo en el estado de error transitorio, BITS lo mueve al estado de error fatal.

Niveles de prioridad del Servicio de Transferencia Inteligente en Segundo Plano

BITS puede seleccionar de manera inteligente qué trabajos de transferencia se ejecutan y cuándo. Esto se debe a que la aplicación puede utilizar diferentes niveles de prioridad: uno para el primer plano y tres para el segundo plano. Un nivel de prioridad determina cuándo se procesa un trabajo de transferencia en relación con otros trabajos en la cola de transferencia, de manera que:

  • Un trabajo de mayor prioridad tiene precedencia sobre un trabajo de menor prioridad.
  • Los trabajos de menor prioridad no reciben tiempo de transferencia hasta que se hayan transferido todos los trabajos de mayor prioridad o estén en un estado de error.
  • Los trabajos en el mismo nivel de prioridad comparten el tiempo de transferencia, de manera que ningún trabajo grande pueda bloquear la cola de transferencia y causar retrasos. Para programar trabajos en el mismo nivel de prioridad, BITS utiliza una programación de round-robin, donde cada trabajo tiene un fragmento de tiempo para procesar sus archivos. Si un trabajo en particular no se completa durante su fragmento de tiempo asignado, vuelve automáticamente al estado en cola y el siguiente trabajo de la cola se activa en base a un criterio de primero en entrar, primero en salir (FIFO). Tener en cuenta que BITS no garantiza el procesamiento FIFO, aunque hace todo lo posible para lograrlo. En versiones anteriores de BITS, los trabajos de primer plano tenían prioridad sobre los trabajos de segundo plano y solo se procesaba un trabajo a la vez. En versiones posteriores de BITS, se pueden realizar múltiples transferencias de primer plano simultáneamente, pero los archivos en un mismo trabajo siempre se transfieren de manera secuencial.

El Servicio de Transferencia Inteligente en Segundo Plano (BITS) es una herramienta muy útil para la descarga y subida de archivos en segundo plano, minimizando el impacto en la experiencia del usuario y optimizando el uso de la red. Su capacidad para pausar y reanudar transferencias, así como para manejar interrupciones de red, lo convierten en una opción ideal para administradores de sistemas y programadores que necesitan transferir archivos de manera eficiente y confiable.

Si quieres conocer otras notas parecidas a Servicio de transferencia inteligente en segundo plano | bits puedes visitar la categoría Inteligencia.

Subir