API de invocación asíncrona en Liberty

Utilice la API de invocación asíncrona para transferir sucesos que requieren el proceso en una sesión de aplicación SIP (Session Initiation Protocol) en cualquier servidor de un clúster basado en un ID de sesión de aplicación.

La API de invocación asíncrona, también conocida como asignador de trabajo asíncrono, puede transferir sucesos que requieren un proceso en el contexto de una sesión de aplicación SIP en cualquier servidor de un clúster, utilizando el ID de sesión de aplicación relacionada. Estas transferencias son generalmente desencadenadas por sucesos que provocan un cambio de estado en sesiones SIP en otro servidor. El asignador de trabajos asíncronos transfiere la tarea de suceso al servidor correcto que se va a ejecutar.

En Liberty, todos los mensajes SIP relacionados se entregan en el mismo servidor del clúster, y las sesiones siempre están en el mismo contenedor SIP. Para evitar problemas de sincronicidad y bloqueos, las tareas de la misma sesión de aplicación no se pueden procesar simultáneamente (es decir, en distintos procesos o hebras), que limita el manejo de determinados tipos de sucesos.

Si desea información más detallada sobre sesiones SIP y sesiones de aplicación SIP, consulte la sección 6 de Java™ Specification Request (JSR) 289.

Los dos escenarios siguientes se han resuelto implementando la API de invocación asíncrona.
  1. Dos solicitudes que están relacionadas con la misma sesión de aplicación SIP se ejecutan simultáneamente en dos hebras diferentes.

    Por ejemplo, una aplicación Java Platform, Enterprise Edition que funciona con in bean controlado por mensaje (MDB) puede recuperar un suceso para enviar un mensaje SIP en una sesión de aplicación SIP determinada. Al mismo tiempo, el contenedor SIP recibe una mensaje SIP entrante enotra sesión que está conectada a la misma sesión de aplicación y lo maneja en una hebra diferente. Es necesario sincronizar el acceso a la sesión para evitar condiciones de actualización y para garantizar que todos los atributos de sesión están sincronizados. En este caso no resultará eficaz emplear el mecanismo de bloqueo ya que la sesión de aplicación SIP puede contener varias sesiones SIP.

  2. Un servidor que no posee una sesión de aplicación SIP concreta recibe una petición, mediante un protocolo no de SIP, para enviar un mensaje dentro del contexto de dicha sesión.

    Por ejemplo, un servicio web que inicia diálogos SIP que pueden estar en un servidor diferente del servidor que posee la sesión de la aplicación SIP que debe utilizar.

La API de invocación asíncrona garantiza que el código de aplicación específico se ejecuta en el servidor correcto y corrige la hebra de acuerdo con el ID de sesión de la aplicación SIP.

La API de invocación asíncrona proporciona las ventajas siguientes:
  1. No hay más de dos servidores implicados en el proceso de invocación asíncrona: uno es el servidor que recupera la tarea del trabajo, y el otro es el servidor de destino que maneja la sesión de la aplicación SIP para dicha tarea y al que se transfiere la tarea.
  2. La invocación asíncrona permite trabajar de una forma segura para las hebras. Este enfoque garantiza que solo una hebra procesa los mensajes que están relacionados con la sesión de aplicación SIP, así que no tendrá que sincronizar el acceso a la sesión.
  3. La invocación asíncrona proporciona una solución escalable para que el rendimiento no se vea afectado cuando se añaden más servidores al clúster.
  4. La invocación entre servidores sólo se utiliza cuando es necesario, lo que genera un mejor rendimiento.

Icono que indica el tipo de tema Tema de concepto

Nombre de archivo: cwlp_sip_asynchinvo_api.html