El registro es el proceso por el cual la lógica de negocios envía una solicitud al motor de cálculo para el conjunto de eventos de datos sin procesar que formarán parte del cálculo.
El proceso de registro se puede gestionar de dos maneras: mediante el asistente de registro, o manualmente utilizando el objeto de emisor dentro de la lógica de negocios.
Utilizar el asistente de registro es un sencillo proceso donde se van eligiendo las opciones disponibles. Las opciones disponibles son las mismas que al hacer el registro manualmente, sin posibilidad de utilizar parámetros. Si es necesario utilizar parámetros, tendrá que realizar el registro manualmente. El flujo básico del asistente exige determinar primero qué tipo de registro desea realizar y después establecer los tipos de recurso y los eventos sobre los cuales se deberá realizar el registro. Por último, deberá determinarse qué controlador de eventos se utilizará para procesar los eventos recopilados.
Una vez terminadas las operaciones de registro, aparecerán clasificadas en la ficha "Registro" de la métrica. Tenga también en cuenta que se puede tener más de una declaración de registro para una métrica.
En realidad, el asistente de registro utiliza la misma funcionalidad que el registro manual. Todas estas opciones se describen en la sección a continuación.
Cuando se realiza manualmente dentro de la lógica de negocios, el registro de la fórmula se gestiona a través del controlador de eventos OnRegistration. Esto se deberá implementar en la fórmula y se deberá activar cuando se active un evento de motor de registro. El evento de registro se activa una vez cuando se activa el contrato, y después cada vez que se active un recurso o un conjunto de cambios relevante. Para que un cambio en el recurso afectado se considere relevante deberá afectar a los eventos que la métrica debe recibir. Por ejemplo, si la parte contratante es quien realiza el registro (RegisterByContractParty), entonces formarán parte del cálculo todos los eventos del tipo definido cuyos recursos estén adjuntos a la parte contratante de la métrica. En este caso, cada vez que se adjunte un nuevo recurso a esa parte contratante, o se retire de ella, el método de registro se activará para notificar el cambio al motor.
El objeto Dispatcher proporciona los métodos de registro y se pasa a OnRegistration como argumento. Los diferentes métodos proporcionan distintas maneras de definir los criterios de filtrado basándose en la definición del tipo de evento y cualquier criterio de adjudicación de recursos, como recursos de un grupo de recursos o recursos de un cierto tipo.
Se recomienda encarecidamente utilizar los métodos de registro de servicio y parte contratante, ya que facilita el uso de la lógica de negocios como un módulo o plantilla. Al hacerlo así, se toma el servicio y la parte contratante relevante de la definición de la métrica asociada y, al reutilizar la fórmula para contratos y/o componentes de servicio diferentes, el registro no tiene que cambiar.
Otro popular método de registro es RegisterByResourceGroup, práctico para trabajar con recursos agrupados lógicamente pero que puede que no siempre estén asociados con servicios o partes contratantes. La asignación de recursos a los grupos aquí se puede gestionar a través del catálogo de recursos (individualmente o mediante conjuntos de cambios), y se podrá incluso actualizar automáticamente a través de scripts de traducción.
En general, el método de registro se determina durante la fase de diseño y se guía directamente a través del modelo de datos definido.
Nota: Para comprobar si el objeto Dispatcher se ha utilizado correctamente, se invoca también a la función OnRegistration al comprobar la sintaxis del SLALOM. Por este motivo, no se deberá asumir que OnLoad se ejecutó antes de la función OnRegistration, y no se deberán utilizar algunas de las propiedades del objeto de contexto, como "TimeUnit", "IntervalLength", "IsPeriod", "CorrectionsApply" y "ExceptionsApply" en el controlador de eventos OnRegistration.
Los métodos de registro son también responsables de asociar los eventos a un procedimiento que se activará según la marca de tiempo del evento. El procedimiento definido puede tener cualquier nombre, pero debe tener siempre el objeto eventDetails como parámetro. El objeto eventDetails refleja el evento de datos sin procesar recibido y guarda todos los datos del evento como campos de datos, tal y como se puede ver en el registro siguiente:
Sub OnRegistration(dispatcher) dispatcher.RegisterByContractPartyAndService "OnMemUseEvent", "MemUse", "Server" 'Los parámetros del método son: <nombre del procedimiento>, <Tipo de evento>, <Tipo de recurso> End Sub
La declaración de registro anterior nos dice que se enviarán al controlador de eventos "OnMemUseEvent" en la lógica de negocios todos los eventos de datos sin procesar del tipo de evento "MemUse" y asociados al tipo de recurso "Server".
El procedimiento siguiente deberá haberse definido también antes en la lógica de negocios:
Sub OnMemUseEvent(eventDetails)
If InTimeSlot And eventDetails("MemoryUsage")>MaxMemoryUse Then
MaxMsmoryUse = eventDetails("MemoryUsage)"
End If
End Sub
La declaración extrae el valor del campo MemoryUsage del evento que se pasó en la función haciendo referencia al objeto eventDetails y mediante el parámetro "MemoryUsage". Estos campos son los mismos que los definidos en el tipo de evento, y los nombres de los campos distinguen entre mayúsculas y minúsculas.
|
Copyright © 2013 CA.
Todos los derechos reservados.
|
|