Skip to Content
Nueva versión 12 disponible 🎉

Tokens de licencia

En el Babel Licensing Service, los tokens de licencia sirven para gestionar las licencias y hacer el seguimiento de su uso. Hay dos tipos de tokens de licencia: los tokens de licencia flotante y los tokens de activación de licencia.

Solo las licencias de activación y las flotantes crean tokens. Las licencias de archivo no los crean, y tampoco la validación en línea de una licencia de archivo.

Tokens de licencia flotante

En las licencias flotantes, un token representa una aplicación cliente que está conectada al servidor y usa una licencia concreta. Cuando una aplicación cliente solicita una licencia, el servicio crea un token para ella. El token se libera cuando la aplicación cliente libera la licencia.

Si la aplicación cliente se detiene sin liberar la licencia, por ejemplo tras un cierre inesperado o una pérdida de la conexión de red, el token vence una vez transcurrido el intervalo de señal de actividad (Licensing:HeartbeatInterval en la configuración) y el puesto vuelve a estar disponible.

Tokens de activación de licencia

En la activación de licencia, un token representa un equipo que ha activado una licencia. El servicio crea el token cuando el equipo se activa, junto con la licencia vinculada al equipo que se emite para él.

El token vence en la misma fecha en que caduca la licencia. Una activación perpetua nunca vence por sí sola. El token permanece hasta que se desactiva el equipo. Al desactivar un equipo se eliminan su token y la licencia vinculada al equipo, y el puesto queda libre de inmediato.

Cómo se cuentan los tokens

El Babel Licensing Service limita el número de tokens activos, no el número total de tokens emitidos. El límite procede de la licencia del propio servicio:

EdiciónTokens activos
Server Server1000
Data Center Data CenterIlimitados

Un token está activo mientras su licencia no esté revocada y el token no haya vencido. Al revocar una licencia, sus tokens dejan de contar.

Una prueba usa un token solo si se entrega como licencia de activación o flotante. Una prueba distribuida como licencia de archivo firmada con fecha de caducidad no usa ninguno.

Liberar tokens

Los tokens se liberan de estas formas:

  • La aplicación cliente desactiva el equipo (activación) o libera la licencia (flotante).
  • Un token flotante vence porque la aplicación cliente ha dejado de enviar señales de actividad.
  • Se revoca la licencia o el token alcanza su fecha de vencimiento.
  • Un administrador elimina el token. Puede hacerlo desde Babel Desktop, desde la Management API REST o desde la aplicación web de Data Center. Es la forma de liberar el puesto de un equipo que ha dejado de funcionar antes de que se pudiera desactivar.

Límites y advertencias

El servicio compara el número de tokens activos con el límite de su licencia:

  • Al 85 % del límite (850 en Server), el servicio registra una advertencia y envía al administrador un correo electrónico de aviso de «límite próximo».
  • Cuando los tokens activos alcanzan el 105 % del límite (1050 en Server), el servicio rechaza las activaciones nuevas y las solicitudes de licencia flotante. La aplicación cliente recibe el error ServerReachedMaxTokenAllowed (StatusCode.PermissionDenied): «The server has reached the maximum number of license tokens allowed» (el servidor ha alcanzado el número máximo de tokens de licencia permitidos). En ese momento el servicio elimina además los tokens vencidos y revocados, lo que puede hacer que el recuento vuelva a quedar por debajo del umbral.

A partir de la versión 12.0, el bloqueo se comprueba con un recuento actualizado en cada activación y en cada solicitud de licencia flotante. Las versiones anteriores se basaban en un recuento que se actualizaba cada 5 minutos, por lo que una ráfaga de solicitudes podía superar brevemente el umbral. Los correos de advertencia se siguen evaluando cada 5 minutos.

Recuperar activaciones inactivas

A partir de la versión 12.0, el servicio puede liberar el puesto de una activación que ya no se usa. Esta función está desactivada de forma predeterminada. Para activarla, defina ReclaimInactiveActivationDays en la sección Licensing de la configuración:

"Licensing": { "ReclaimInactiveActivationDays": 90 }

El mismo ajuste como variable de entorno:

BABEL_SERVICE_LICENSING__RECLAIMINACTIVEACTIVATIONDAYS=90

El valor predeterminado es 0, que desactiva la función. Cuando una licencia ha usado todos sus puestos (MaxAllowedSites) y un equipo nuevo solicita la activación, el servicio examina las activaciones existentes. Libera el puesto de la que lleva más tiempo sin ponerse en contacto con el servicio, siempre que esa activación tenga más días de antigüedad que los configurados, y a continuación activa el equipo nuevo. Si ninguna activación es lo bastante antigua, la solicitud falla como antes.

Un equipo se pone en contacto con el servicio cuando valida su licencia en línea, lo que actualiza la hora del último contacto de su token, o cuando se activa. El puesto liberado se trata como una desactivación: se eliminan el token y su licencia vinculada al equipo, y se generan la traza de licencia y el evento de webhook LicenseDeactivated cuando están activados.

Una aplicación que solo valida sin conexión con su archivo de licencia vinculada al equipo nunca actualiza la hora del último contacto, por lo que su puesto parece inactivo. Además, la recuperación solo libera el puesto en el servidor. En el equipo antiguo, el archivo de licencia vinculada al equipo sigue funcionando sin conexión, y ese equipo no supera su siguiente validación en línea, que devuelve «license not activated» (licencia no activada).

Active este ajuste solo si la aplicación protegida valida en línea periódicamente.

Actualizar de Server a Data Center

Si los tokens de la edición Server no son suficientes, actualice a la edición Data Center. El paquete del servicio es el mismo. Sustituya el archivo de licencia del servicio por la licencia Data Center y reinicie el servicio. La base de datos y la configuración se quedan como están.

Last updated on