Uso de ITCAM for SOA para monitorear Sistemas BPM: Parte 2: Cómo ITCAM for SOA monitorea las arquitecturas orientadas a servicios

Comprenda las métricas para el sistema SOA y cómo ITCAM for SOA muestra las métricas para presentar el estado de los sistemas SOA

Las métricas que reúne ITCAM for SOA se recopilan a partir de mensajes SCA. En este artículo analizaremos las métricas y compararemos y mapearemos las métricas en función de WebSphere Dynamic Process Edition (WDPE) y de los comportamientos en tiempo de ejecución. También explicamos cómo leer, comprender y analizar las métricas y cómo familiarizarse con las aplicaciones WDPE a partir de las métricas.

Yunjie Tan, BPM Integration QA, IBM  

Yunjie TanYunjie Tan (Jim) es Staff Software Engineer y Designer del equipo de BPM Integration QA. Además de su profundo conocimiento de los productos WPS/WID, es experto en UML, análisis/modelado de negocios y metodología de software. Es autor del popular libro chino sobre UML "Elephant - thinking in UML".



Hua Cheng, BPM Integration QA, IBM  

Hua ChengHua Cheng (Ted) forma parte de IBM desde el año 2003 y actualmente es Team Lead del equipo de BPM Integration QA. Tiene amplia experiencia en productos BPM como WID, WPS, Modeler, Monitor y Adapter. También posee profundos conocimientos en desarrollo de Java/J2EE y pruebas de productos. Antes de ocupar su rol actual, trabajó en varios desarrollos y proyectos de prueba de WPS (Webpshere Process Server), como WPS Component Owner, Development Lead y Test Lead.



Sen Wang, BPM Integration QA, IBM  

Sen WangSen Wang (Watson) forma parte del equipo de BPM Integration QA. Tiene amplia experiencia en productos BPM como WID, WPS, Message Broker, WSRR y FileNet, además de un profundo conocimiento de desarrollo Java/J2EE. Antes de ocupar su rol actual, trabajó desde 2007 como pasante en el centro de diseño SOA y acumuló vasta experiencia en proyectos personalizados, especialmente en el sector bancario y de seguros.



28-08-2009

Escenario de ejemplo

Además de ITCAM for SOA, hay otros productos ITCAM tales como ITCAM para Tiempos de Respuesta, ITCAM para Recursos Web e ITCAM para Transacciones. Sin embargo, estos productos monitorean el sistema a nivel de la granularidad de la aplicación. A diferencia de los otros productos, ITCAM for SOA puede monitorear sistemas a nivel de la granularidad en lugar de hacerlo a nivel de la aplicación. Es decir, ITCAM for SOA puede reconocer componentes y mensajes de Arquitectura de Componentes de Servicios (SCA) de las aplicaciones para monitorear los sistemas.

Tomemos como ejemplo el escenario ilustrado en la Figura 1 para explorar ITCAM for SOA. En este escenario de ejemplo hay tres módulos: el Módulo 1 contiene un componente SCA BPEL (Business Process Execution Language) que proporciona servicios a clientes y los Módulos 2 y 3 contienen algunos componentes SCA Java que proporcionan servicios de computación a BPEL. Cuando los clientes invocan el componente BPEL, BPEL invoca los componentes Java para realizar la computación. Supongamos que los 3 módulos se implementan en un entorno heterogéneo, por lo tanto BPEL tendrá que invocar servicios de computación usando varios protocolos. Como se puede ver en este ejemplo, aquí se están utilizando los enlaces SCA/JAX-RPC/JMS/HTTP.

En la Figura 1 que se presenta a continuación, las flechas indican dónde se están solicitando/respondiendo los mensajes. Las flechas que apuntan hacia la derecha significan mensaje de solicitud y las flechas que apuntan hacia la izquierda significan mensaje de respuesta. Los diferentes estilos de flechas indican diferentes protocolos de mensaje. En la próxima sección, explicaremos “ServiceRequester” y “ServiceProvider”

Figura 1. Escenario de ejemplo
example scenarios used in this artical

Cómo registra ITCAM for SOA el tráfico de datos

Mientras la aplicación ilustrada en la Figura 1 está en ejecución, el Recopilador de Datos de ITCAM for SOA monitorea los mensajes de SCA o WebService y envía los mensajes como tráfico de datos del lado servidor de ITCAM for SOA. ITCAM for SOA analiza el sistema basándose exactamente en este tráfico de datos. Una vez que llega el tráfico de datos, ITCAM for SOA lo analiza para obtener informaciones tales como el Proveedor de Servicios, el Puerto de Servicio WSDL y sus espacios de nombres a fin de identificar cada transacción individual, y luego crea los registros correspondientes en la tabla Services_Inventory para las transacciones identificadas.

Aunque un tráfico de datos puede adaptarse tanto al solicitante como al proveedor del servicio, ITCAM for SOA sólo registra al proveedor del servicio y no al solicitante del mismo. Esto es, aun si puede haber muchas solicitudes de clientes para un servicio, ITCAM for SOA sólo registra la información de los mensajes de solicitud al proveedor de servicio y los mensajes de respuesta del proveedor del servicio, mientras que la información del solicitante del servicio se ignora. ITCAM for SOA crea dos registros para la información del proveedor del servicio: uno para registrar mensajes de solicitud y el otro para registrar mensajes de respuesta.

Mientras tanto, ITCAM for SOA recopila información de los datos de tráfico como métricas para actualizarla a los registros de transacción correspondientes en la tabla Services_Inventory. Las métricas importantes para ITCAM for SOA son “Message Count” (Recuento de mensajes), “Avg Message Length” (Longitud promedio de los mensajes), “Avg Elapsed Time” (Tiempo transcurrido promedio) y “Fault Count” (Recuento de errores”. (Ver Tabla 1 a continuación para mayor información sobre los campos de la tabla Services_Inventory).

En base a lo expuesto, por ejemplo, cuando el componente “AccountVerificationToBe” invoca el componente “CustomerRetrieval” una vez, debería haber dos registros en la tabla Services_Inventory.

Tabla 1. Registros de ejemplo en Services_Inventory
ModuleNameComponent NameOperationNameService TypeMessage CountAvg Message SizeAvg Elapsed TimeFault Count
AccountVerificationCustomerRetrievalInputCriterionSolicitante202910
AccountVerificationCustomerRetrievalInputCriterionProveedor202900

Este ejemplo nos muestra que:

  • ITCAM for SOA sólo registra el mensaje de solicitud al proveedor del servicio y el mensaje de respuesta del proveedor del servicio, independientemente del solicitante del servicio. En este ejemplo, el componente “AccountVerificationToBe” es el solicitante del servicio al proveedor del servicio, el componente “CustomerRetrieval”. Por lo tanto, ITCAM for SOA crea una fila “solicitante” para registrar los mensajes de solicitud al proveedor del servicio “CustomerRetrieval”, y otra fila para registrar los mensajes de respuesta del proveedor del servicio “CustomerRetrieval”.
  • Si la aplicación se ejecuta muchas veces, los registros no aumentan. ITCAM for SOA sólo actualiza el valor de las métricas del registro tales como “Recuento de mensajes”, “Longitud promedio de los mensajes”, “Tiempo transcurrido promedio” y “Recuento de errores”.

La Figura 2 ilustra el recuento de mensajes que registra ITCAM for SOA cuando la aplicación de ejemplo se ejecuta una vez. El dígito que acompaña a cada flecha muestra cuántos mensajes ITCAM for SOA son capturados en cada invocación.

Figura 2. Registro de recuento de mensajes ITCAM para registro SOA a través de una ejecución individual
Full result ITCAM for SOA record via one single run

A lo largo de la Figura 2 se presentan 6 preguntas, P1 a P6. Es necesaria una explicación para comprender cómo funciona ITCAM.

  • P1: ¿Por qué no hay recuento de mensajes capturados para el componente “AccountVerificationToBe”?
    Porque el Recopilador de Datos de ITCAM for SOA sólo detecta mensajes SCA y WebService. El componente “AccountVerificationToBe” es la primera interfaz para clientes; si las transacciones desde el exterior hacia el componente “AccountVerificationToBe” no son mensajes SCA o WebService, el Recopilador de Datos no podrá detectarlas. En otras palabras, si los clientes invocan el componente “AccountVerificationToBe” a través del protocolo SCA o WebService, debería haber un recuento de mensajes capturados.
  • P2: ¿Por qué una invocación da lugar a 2 mensajes de solicitud y a 2 mensajes de respuesta? ¿No debería ser 1?
    A primera vista, el recuento de mensajes de solicitud y respuesta debería ser 1, ya que sólo ha ocurrido una invocación. Sin embargo, la respuesta correcta es 2. Esto se debe a la implementación del mecanismo de invocación SCA. La invocación del llamador al destinatario es indirecta: el llamador envía un mensaje de solicitud SCA al contenedor SCA, y luego el contenedor SCA reenvía un nuevo mensaje SCA al destinatario. En este caso, el Recopilador de Datos obtendrá dos mensajes SCA, donde ambos tienen la misma fuente de invocación y el mismo destino.

Esto significa que ITCAM for SOA cuenta todos los mensajes SCA aquí. La Figura 3 que se presenta a continuación muestra las interacciones en el contenedor SCA. Ahora queda claro por qué el Recopilador de Datos obtuvo 2 mensajes de solicitud y 2 mensajes de respuesta. De hecho, un patrón diferente de invocación SCA daría lugar a un recuento de mensajes diferente. Consulte el patrón de invocación SCA en WebSphere Process Server V6.1 para saber más acerca del patrón de invocación SCA.

Figura 3. Invocación sincrónica (operación solicitud-respuesta)
Interactions of Synchronous invocation (request-response operation
  • P3: ¿Por qué no hay mensaje alguno entre Importación y Exportación?
    El contenedor WDPE de SCA considera a la Exportación como un componente especial, no la trata como un proveedor real de servicios, por lo que los mensajes enviados a Exportación no son detectados por el Recopilador de Datos de SCA. En consecuencia, el recuento de mensajes entre Importación y Exportación es 0. No obstante, si el protocolo del mensaje es WebService, la situación es otra (vea la P4).
  • P4: ¿Por qué hay sólo un mensaje de solicitud y de respuesta?
    La P3 nos permitió saber que los mensajes enviados a Exportación no pueden ser detectados por el Recopilador de Datos de SCA. Pero además del Recopilador de Datos de SCA, ITCAM for SOA tiene otro Recopilador de Datos de WebService. Si bien el mensaje no puede ser detectado por el Recopilador de Datos de SCA, el Recopilador de Datos de WebService detecta el mensaje JAX-RPC.
    La P2 nos permitió saber que, debido al mecanismo de invocación de SCA, una invocación tendrá 2 mensajes. Aquí sólo tenemos 1, lo que indica que el mensaje no es capturado por el Recopilador de Datos de SCA, sino por el Recopilador de Datos de WebService. El mensaje no pasa a través del contenedor SCA, por lo que sólo se captura 1 mensaje.
  • P5: ¿Por qué el recuento de mensajes de respuesta da 3?
    Esto se debe a la implementación del mecanismo de invocación JMS. De lado del llamador JMS podría haber dos colas, la cola “enviar” y la cola “recibir”, pero del lado del destinatario JMS podría haber tres colas: las colas “recibir”, “enviar” y “devolver llamada”. Por lo tanto, si la aplicación configura el destinatario JMS para que use la cola “devolver llamada”, se generarán 3 mensajes del lado del destinatario.
  • P6: ¿Por qué ambos componentes son “ServiceProvider”?
    La P1 nos permitió saber que, dado que el componente “AccountVerificationToBe” es la primera interfaz para los clientes, el Recopilador de Datos no puede detectar los mensajes de los clientes que no son de WebService, sino que actúa como “ServiceRequester”. La P3 nos permitió saber que la Exportación no es tratada como un proveedor real de servicios por parte del Contenedor SCA, sino que actúa como “ServiceRequester”.

Tanto “DetermineApplicantEligibility” como “DetermineApplicantEligibilityHTTPImport” no representan la situación de P1 y P3. Actúan tanto como “ServiceProvider” como “ServiceRequester”. Por ejemplo, “DetermineApplicantEligibility” es el “ServiceProvider” para “DetermineApplicantEligibilitySCAExport” y también el “ServiceRequester” para “DetermineApplicantEligibilityHTTPImport”.


Visión general de los campos de la tabla Services_Inventory

El tráfico de datos se almacena en la tabla Services_Inventory. ITCAM for SOA usa los datos de la tabla Services_Inventory para presentar el estado del sistema que está bajo monitoreo. La Tabla 2 a continuación enumera todos los campos que forman parte de la tabla Services_Inventory.

Nota: La tabla Services_Inventory se usa habitualmente dentro de TEP (Tivoli Entreprise Portal), tanto para el componente WebService común como para el componente SCA. En el caso del componente SCA, algunos de los nombre de los campos no son compatibles con el contenido. Por ejemplo, el componente SCA no tienen una propiedad llamada “Operation Namespace (Espacio de nombre de la operación), por lo que en el “Operation Namespace (Unicode)" (Espacio de nombre de la operación [Unicode]) archivado, almacena exactamente el nombre del método sobre la interfaz del componente SCA que se está invocando. Todos los campos incompatibles se destacan en negrita.

Nota: La longitud de los mensajes no está actualmente disponible en el contenedor WPS SCA. Como se muestra en las Figuras 4 y 5, todos los tamaños de mensajes SCA son 0 pero los tamaños de mensajes WebService no lo son.

Tabla 2. Métricas de ITCAM for SOA
Nombre de la métricaExplicación y uso
Nodo de origenLa instancia del entorno de aplicación del sistema administrado.
Estado del intervaloEl estado de este intervalo (Incompleto = 1, Completo = 2)
Nombre de la operación (Unicode)En el caso de WebService, se trata del nombre de la operación WSDL. En el caso de los componentes SCA, se trata del nombre del método sobre la interfaz del componente SCA que se está invocando.
Espacio de nombre de la operación (Unicode)En el caso de WebService, se trata del espacio del nombre de la operación WSDL monitoreada por el Recopilador de Datos. En el caso del componente SCA, se trata del nombre del módulo SCA que contiene el componente SCA que se está invocando.
Espacio de nombre del puerto de servicio (Unicode)En el caso de WebService, se trata del espacio del nombre del puerto de servicio donde se interceptó el mensaje. En el caso del componente SCA, se trata del nombre del componente SCA que se está invocando.
Nombre de la celda del servidor de la aplicación (Unicode)El nombre de la celda del servidor de la aplicación donde se interceptó el mensaje.
Nombre del nodo del servidor de la aplicación (Unicode)El nombre del nodo del servidor de la aplicación donde se interceptó el mensaje. En el caso de ND, puede indicar en qué miembro del cluster tuvo lugar el tráfico de datos.
Nombre del cluster del servidor de la aplicación (Unicode)El nombre del cluster del servidor de la aplicación donde se interceptó el mensaje.
Entorno del servidor de la aplicaciónEl tipo de entorno de tiempo de ejecución del servidor de la aplicación en que se ejecuta el Recopilador de Datos.
Nombre del servidor de la aplicación (Unicode)El nombre del servidor de la aplicación donde se interceptó el mensaje.
Nombre del host local (Unicode)El hombre del equipo host en el que se interceptó el mensaje.
Dirección IP local (Unicode)La dirección IP del equipo en el que se interceptó el mensaje.
Nombre del puerto de servicio (Unicode)En el caso de WebService, se trata del nombre del puerto de servicio donde se interceptó el mensaje. En el caso del componente SCA, se trata de nombre del componente SCA que se está invocando.
Tipo de servicioEl tipo de servicio (0 = Solicitante, 1 = Proveedor)
Tiempo promedio transcurrido de ida y vuelta de los mensajesEl tiempo de ida y vuelta promedio transcurrido, en milisegundos.
Recuento de mensajes en el tiempo transcurridoEl número de mensajes observados durante este intervalo que contiene un valor de tiempo transcurrido.
Recuento de mensajesEl número de mensajes observados durante este intervalo.
Tiempo máximo transcurridoEl mayor tiempo transcurrido, en milisegundos, de cualquier mensaje observado durante el intervalo en curso.
Tiempo mínimo transcurridoEl menor tiempo transcurrido, en milisegundos, de cualquier mensaje observado durante el intervalo en curso.
Tiempo de inicio del intervaloLa fecha de inicio inclusiva (UTC) y la hora en que se interceptó el mensaje.
Tiempo de finalización del intervaloLa fecha de finalización exclusiva (UTC) y la hora en que se interceptó el mensaje.
Longitud del intervaloLa longitud del intervalo, en minutos.
Desviación estándar del tiempo transcurrido de ida y vuelta de los mensajesLa desviación estándar de todos los tiempos de ida y vuelta transcurridos, en milisegundos, observados durante este intervalo.
Número de puertoEl número del puerto, 0 - 65535, en que está escuchando el entorno de tiempo de ejecución del servidor de la aplicación que se monitorea.
Longitud promedio de los mensajesLa longitud promedio de los mensajes, en bytes, que se observa durante este intervalo (incluyendo encabezados, siempre que sea posible). Actualmente no está disponible esta característica para mensajes SCA.
Información sobre el Recopilador de Datos (Unicode)La información sobre el Recopilador de Datos usada para vincularse a otros espacios de trabajo relacionados con este entorno.
Recuento de erroresEl número de errores observados durante este intervalo.
Longitud máxima de los mensajesLa longitud del mensaje más largo, en bytes, que se observa durante este intervalo. Actualmente no está disponible esta característica para mensajes SCA.
Desviación estándar de la longitud de los mensajesLa desviación estándar para todas las longitudes de mensaje, en bytes, observada durante el intervalo en curso.
Longitud mínima de los mensajesLa longitud del mensaje más corto, en bytes, que se observa durante este intervalo.
Tipo de nombre del puerto de servicioEl nombre del puerto de servicio.
Versión de la tabla (Unicode)La versión de esta tabla de inventario.
Información sobre TEMA (Unicode)La información relacionada con Tivoli Enterprise Monitoring Agent que se podría usar para vincularse con otros espacios de trabajo relacionados.

Visualización del tráfico de datos dentro de TEP

A continuación mostraremos cómo funciona ITCAM for SOA y cómo registra el tráfico de datos en la tabla Service_Inventory. ITCAM for SOA exhibe el tráfico de datos dentro de TEP de manera gráfica. Las figuras siguientes muestran cómo exhibe ITCAM for SOA el tráfico de datos.

Figura 4. Visualización del espacio de trabajo para el resumen de mensajes en TEP
Message Summary workspace view in TEP
Figura 5. Visualización del espacio de trabajo para la gestión de servicios en TEP
Services management workspace view in TEP
Figura 6. Visualización del espacio de trabajo para el resumen de rendimiento en TEP
Performance summary workspace view in TEP

Recursos

Comentarios

developerWorks: Ingrese

Los campos obligatorios están marcados con un asterisco (*).


¿Necesita un IBM ID?
¿Olvidó su IBM ID?


¿Olvidó su Password?
Cambie su Password

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


La primera vez que inicie sesión en developerWorks, se creará un perfil para usted. La información en su propio perfil (nombre, país/región y nombre de la empresa) se muestra al público y acompañará a cualquier contenido que publique, a menos que opte por la opción de ocultar el nombre de su empresa. Puede actualizar su cuenta de IBM en cualquier momento.

Toda la información enviada es segura.

Elija su nombre para mostrar



La primera vez que inicia sesión en developerWorks se crea un perfil para usted, teniendo que elegir un nombre para mostrar en el mismo. Este nombre acompañará el contenido que usted publique en developerWorks.

Por favor elija un nombre de 3 - 31 caracteres. Su nombre de usuario debe ser único en la comunidad developerWorks y debe ser distinto a su dirección de email por motivos de privacidad.

Los campos obligatorios están marcados con un asterisco (*).

(Por favor elija un nombre de 3 - 31 caracteres.)

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


Toda la información enviada es segura.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=90
Zone=SOA y servicios web
ArticleID=429291
ArticleTitle=Uso de ITCAM for SOA para monitorear Sistemas BPM: Parte 2: Cómo ITCAM for SOA monitorea las arquitecturas orientadas a servicios
publish-date=08282009