Creación de orígenes de sucesos

Los orígenes de sucesos actúan conjuntamente con el servidor de sucesos a través de un objeto de emisor.

Un origen de suceso es cualquier aplicación que utilice un emisor para enviar sucesos a un servidor de sucesos. Las siguientes aplicaciones son ejemplos de orígenes de sucesos:

Un origen de suceso se implementa en el lenguaje de programación Java, utilizando (J2SE) Java 2 Platform Standard Edition o J2EE (Java 2 Platform Enterprise Edition). Un origen de suceso debe enviar sucesos válidos que se ajustan al modelo Common Base Event. Cada suceso se representa como un objeto Java.

Emisores y fábricas de emisores

Un origen de suceso no interactúa directamente con el servidor de sucesos, sino que interactúa con un objeto denominado un emisor (una implementación de la interfaz com.ibm.events.emitter.Emitter). Un emisor es un objeto local que proporciona métodos para enviar sucesos.

En general, el emisor maneja los detalles de la transmisión de los sucesos, por lo que no es necesario que el desarrollador de un origen de suceso se preocupe sobre la ubicación del servidor de sucesos, los valores de filtro o el mecanismo de transmisión subyacente. Estos tipos de detalles los rige la fábrica de emisores, un objeto configurado por un administrador y enlazado con el espacio de nombres JNDI (Java Naming and Directory Interface). Una fábrica de emisores es una instancia de com.ibm.events.emitter.EmitterFactory y se utiliza para crear objetos de emisor. Asimismo, define el comportamiento de los emisores que crea; incluye valores de:
  • La modalidad de transacción preferida. Este valor especifica si el emisor intenta enviar cada suceso en una transacción nueva o en la transacción actual. Un origen de suceso puede cambiar este valor para un emisor o envío de sucesos concretos pero el perfil especifica el valor por omisión. Este valor sólo es válido en la plataforma J2EE. La plataforma J2EE no proporciona controles de transacción.
  • La modalidad de sincronización preferida. Este valor especifica si los sucesos se envían utilizado la transmisión síncrona o asíncrona. La transmisión síncrona significa que el método sendEvent() no devuelve el control al llamante hasta que se ha procesado el suceso. La transmisión asíncrona significa que el método devuelve el control inmediatamente después de someter el suceso y el llamador no tiene más información acerca del proceso del suceso. Un origen de suceso puede cambiar este valor para un emisor o por un envío de sucesos, pero el valor por omisión lo especifica el perfil.
  • Los perfiles de transmisión que se han de utilizar. Un perfil de transmisión es un objeto de configuración que define un mecanismo de transmisión específico para enviar sucesos al servidor de sucesos. Un perfil de fábrica de emisor puede especificar dos perfiles de transmisión, uno para la transmisión síncrona y otro para la transmisión asíncrona. Un origen de suceso no puede cambiar los perfiles de transmisión que utiliza un emisor.
  • La configuración de filtros que se ha de utilizar para el emisor. La configuración de filtros define qué plug-in de filtros se utiliza para filtras sucesos enviados al emisor. Common Event Infrastructure incluye un plug-in de filtros por omisión, pero también puede implementar su propio plug-in de filtros, si desea utilizar un motor de filtrado distinto.

Un administrador puede crear varios perfiles de fábrica de emisor, cada uno de los cuales definirá una configuración de emisor diferente. Un origen de suceso obtiene un emisor utilizando la fábrica de emisor asociada a un perfil de fábrica de emisor existente. Por lo tanto, todos los emisores creados por una fábrica de emisor determinada tendrán el mismo comportamiento por omisión. Para obtener más información, consulte el artículo Obtención de un emisor.

Nota: Si se ejecuta el origen de suceso con la seguridad de Java 2 habilitada y desea generar sus propios GUID (identificadores exclusivos globalmente), debe modificar el archivo de política para habilitar el proceso correcto. Añada las siguientes entradas:
permission java.io.FilePermission "${java.io.tmpdir}${/}guid.lock",
  "read,write,delete";
permission java.net.SocketPermission "*", "resolve";

Condiciones de uso |


(c) Copyright IBM Corporation 2005, 2006.
Este centro de información está basado en tecnología Eclipse (http://www.eclipse.org)