ES2947170T3 - Monitorización de un entorno de servidor de aplicaciones distribuidas - Google Patents

Monitorización de un entorno de servidor de aplicaciones distribuidas Download PDF

Info

Publication number
ES2947170T3
ES2947170T3 ES20200434T ES20200434T ES2947170T3 ES 2947170 T3 ES2947170 T3 ES 2947170T3 ES 20200434 T ES20200434 T ES 20200434T ES 20200434 T ES20200434 T ES 20200434T ES 2947170 T3 ES2947170 T3 ES 2947170T3
Authority
ES
Spain
Prior art keywords
application
task
call
tree
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES20200434T
Other languages
English (en)
Inventor
Tom Albert Louis Ceyssens
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Amadeus SAS
Original Assignee
Amadeus SAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Amadeus SAS filed Critical Amadeus SAS
Application granted granted Critical
Publication of ES2947170T3 publication Critical patent/ES2947170T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3452Performance evaluation by statistical analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/069Management of faults, events, alarms or notifications using logs of notifications; Post-processing of notifications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3433Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3442Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for planning or managing the needed capacity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/875Monitoring of systems including the internet

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Debugging And Monitoring (AREA)
  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)

Abstract

Un método implementado por computadora y un sistema de procesamiento de datos para monitorear un entorno de servidor de aplicaciones distribuidas conectado a una pluralidad de terminales de cliente, en el que una terminal de cliente solicita al menos una realización de una tarea durante una sesión, una tarea que requiere la ejecución de al menos una de se presenta una pluralidad de aplicaciones. El método incluye el almacenamiento de archivos de registro en al menos un servidor de base de datos, la recuperación de al menos un archivo de registro del al menos un servidor de base de datos, la generación de un árbol de llamadas de aplicaciones para el cumplimiento de una tarea del al menos un archivo de registro, la agregación de una pluralidad de árboles de llamadas de aplicaciones para la misma tarea para generar un árbol de llamadas de aplicaciones promedio, analizando el árbol de llamadas de aplicaciones promedio con respecto a los problemas de rendimiento y, en respuesta a la detección de un problema de rendimiento, (Traducción automática con Google Translate, sin valor legal)

Description

DESCRIPCIÓN
Monitorización de un entorno de servidor de aplicaciones distribuidas
Campo técnico
La invención se refiere en general a ordenadores y software informático y, en particular, a métodos, sistemas y programas informáticos para supervisar un entorno de servidor de aplicaciones distribuidas.
Antecedentes
La supervisión de un entorno de servidor de aplicaciones distribuidas es esencial para garantizar la integridad del entorno del servidor. Por lo tanto, es imperativo detectar problemas de rendimiento y modificar el entorno del servidor de aplicaciones distribuidas en consecuencia.
El documento US 9684524 B1 describe un sistema para implementar la optimización de un sistema orientado a servicios usando datos de seguimiento. Uno o más gráficos de llamadas se determinan con base en datos de seguimiento para una pluralidad de interacciones de servicio entre cada uno de una pluralidad de servicios. Los datos de seguimiento comprenden datos de rendimiento para las interacciones del servicio.
El documento CN 106776257 B proporciona un sistema para la prueba de rendimiento basado en árboles salientes construidos a partir de archivos de registro. Los árboles de salida con el mismo código de función se combinan para formar un árbol de salida promedio para calcular los tiempos de respuesta promedio.
El documento US 6751789 B1 presenta un sistema para perfilar un programa usando muestreo periódico de trazas. Durante la ejecución del programa, se realiza un perfilado basado en muestras del programa en ejecución. Se genera una estructura de datos en árbol, en la que los nodos de la estructura de datos en árbol representan las rutinas del programa que se ejecutan durante el período de ejecución del programa.
El documento CN109947627A describe un método de monitorización para aplicaciones multinivel basado en la cadena de transferencia de recursos. La información de rendimiento obtenida se usa para representar la relación interactiva entre los recursos en la aplicación de varios niveles para detectar retrasos en las solicitudes y otros problemas en el sistema.
Sin embargo, la detección de problemas de rendimiento en un entorno de servidor de aplicaciones distribuidas, en el que una pluralidad de servidores de aplicaciones distribuidas ejecuta una pluralidad de aplicaciones, requiere el análisis de una gran cantidad de datos. Debido a la distribución y heterogeneidad de los servidores y las aplicaciones ejecutadas, la recopilación de datos puede resultar problemática.
Por ejemplo, los datos recopilados pueden comprender registros de datos que no se pueden analizar o los registros de datos pueden faltar por completo debido a problemas de conectividad, interrupciones del servidor, problemas de aplicaciones o similares.
Por lo tanto, se requieren métodos y sistemas de monitorización que puedan manejar una gran cantidad de registros de datos, así como registros de datos faltantes.
Compendio
Según un primer aspecto de la invención, se presenta un método implementado por ordenador para monitorizar un entorno de servidor de aplicaciones distribuidas conectado a una pluralidad de terminales de cliente. Según un segundo aspecto de la invención, se presenta un sistema de monitorización de un entorno de servidor de aplicaciones distribuidas conectado a una pluralidad de terminales de cliente. Según un tercer aspecto de la invención, se presenta un programa informático que comprende instrucciones que, cuando el programa es ejecutado por un ordenador, hacen que el ordenador lleve a cabo el método descrito en el presente documento.
La invención está definida por las reivindicaciones independientes. Las realizaciones preferidas se especifican en las reivindicaciones dependientes.
Breve descripción de los dibujos
La siguiente descripción de las realizaciones se basa en el conjunto adjunto de figuras en las que números de referencia similares se refieren a elementos similares y en los que:
La [Fig. 1] representa un ejemplo de una posible infraestructura cliente-servidor que comprende un entorno de servidor de aplicaciones distribuidas como se describe en este documento;
la [Fig. 2] representa un diagrama de flujo del método descrito en este documento;
la [Fig. 3a] y
la [Fig. 3b] muestran dos ejemplos de archivos de registro;
la [Fig. 4] representa un diagrama de flujo de generación de un árbol de llamadas de aplicación a partir de un archivo de registro;
la [Fig. 5] muestra dos árboles de llamadas de aplicaciones de ejemplo generados a partir del archivo de registro de la Fig. 3a;
la [Fig. 6] muestra N árboles de llamadas de aplicaciones de ejemplo para la misma tarea; y
la [Fig. 7] muestra dos ejemplos de árboles de llamadas de aplicaciones promediadas para la misma tarea.
Los dibujos y la descripción de los dibujos son de realizaciones de la invención y no de la invención en sí.
Descripción detallada
Como ya se indicó anteriormente, la invención se refiere a métodos, sistemas y programas informáticos para monitorizar un entorno de servidor de aplicaciones distribuidas. El objetivo técnico de monitorizar un entorno de servidor de aplicaciones distribuidas es generalmente detectar problemas dentro del entorno del servidor, por ejemplo una interrupción de un servidor o una partición de un servidor, un error de programación de una aplicación ejecutada en los servidores, un problema de enrutamiento de un servidor a otro, y similares. Todos estos problemas suelen conducir a un rendimiento reducido del entorno del servidor de aplicaciones. En respuesta a la detección de un problema de rendimiento de este tipo, el entorno del servidor de aplicaciones se puede modificar para conservar la confiabilidad y la integridad.
Según un primer aspecto de la invención, se presenta un método implementado por ordenador para monitorizar un entorno de servidor de aplicaciones distribuidas conectado a una pluralidad de terminales de cliente. Un terminal de cliente solicita al menos una realización de una tarea durante una sesión y una tarea requiere la ejecución de al menos una de una pluralidad de aplicaciones. El método comprende almacenar archivos de registro en al menos un servidor de base de datos, en donde los archivos de registro comprenden registros de datos asociados con llamadas de aplicaciones ejecutadas para cumplir una tarea, donde un registro de datos comprende un identificador de sesión para identificar la sesión, un identificador de tarea para identificar la tarea y un número de secuencia de llamada para identificar la secuencia de aplicaciones llamadas durante el cumplimiento de una tarea.
El método comprende además recuperar al menos un archivo de registro de al menos un servidor de base de datos, en el que falta al menos un registro de datos para una llamada de una aplicación en al menos uno de los archivos de registro y generar un árbol de llamadas de aplicación para el cumplimiento de una tarea del al menos un archivo de registro, comprendiendo el árbol de llamadas de aplicación nodos que representan las aplicaciones llamadas durante el cumplimiento de la tarea y enlaces que representan las relaciones de llamada entre las aplicaciones requeridas para cumplir la tarea. Por lo tanto, generar el árbol de llamadas de aplicación comprende agregar nodos y enlaces al árbol de llamadas de aplicación con base en los números de secuencia de llamadas que comprenden los registros de datos del al menos un archivo de registro y almacenar los datos que comprenden los registros de datos en el nodo y/o enlace respectivo.
El método comprende además agregar una pluralidad de árboles de llamadas de aplicaciones para la misma tarea para generar un árbol de llamadas de aplicación promedio, en donde el árbol de llamadas de aplicación promedio comprende datos estadísticos calculados con base en los datos almacenados en los árboles de llamadas de aplicaciones, comparando los valores estadísticos del árbol de llamadas de aplicación promedio generado con los valores estadísticos de un árbol de llamadas de aplicación promedio generado previamente de la misma tarea y, en respuesta a si la diferencia de un valor estadístico del árbol de llamadas de aplicación promedio generado con el valor estadístico correspondiente del árbol de llamadas de aplicación promedio generado previamente supera un umbral, detectar un problema de rendimiento. Finalmente, en respuesta a la detección de un problema de rendimiento, generar un mensaje de salida.
En una realización, agregar nodos y enlaces al árbol de llamadas de aplicación comprende seleccionar un conjunto de archivos de registro que comprenden el mismo identificador de sesión e identificar un conjunto de registros de datos comprendidos por el conjunto de archivos de registro con base al identificador de tarea. Agregar nodos y enlaces al árbol de llamadas de aplicación comprende además generar un nodo raíz que se refiera a la tarea, seleccionar el registro de datos entre el conjunto de registros de datos asociados con una primera aplicación con base al número de secuencia de llamada, en donde la primera aplicación es la aplicación que se llama primero durante el cumplimiento de la tarea, y se agrega un nodo al árbol de llamadas de aplicación para la primera aplicación, en donde el nodo está vinculado al nodo raíz. Además, agregar nodos y enlaces al árbol de llamadas de aplicación comprende además seleccionar repetidamente un registro de datos con un número de secuencia de llamada siguiente y agregar un nodo al árbol de llamadas de aplicación respectivo con un enlace al nodo de una aplicación principal, en donde la aplicación principal es la aplicación que llama a la aplicación respectiva durante el cumplimiento de la tarea, y en respuesta a la detección de un registro de datos faltante para una llamada de una aplicación basada en un número de secuencia de llamada faltante, agregando un nodo y un enlace con base en el número de secuencia de llamada faltante al árbol de llamadas de aplicación.
En otra realización, generar el árbol de llamadas de aplicación comprende calcular una suma de verificación para un nodo, en donde la suma de verificación se basa al menos parcialmente en al menos una aplicación principal durante el cumplimiento de la tarea y almacenar la suma de verificación en el nodo, y agregar una pluralidad de. árboles de llamadas de aplicación para la misma tarea comprende comparar las sumas de comprobación de los nodos de la pluralidad de árboles de llamadas de aplicación para determinar los nodos que se van a agregar. En una realización, la suma de control se crea como una suma de verificación MD5 de 128 bits a partir de una cadena que comprende al menos una parte de los datos almacenados en los registros de datos para al menos una aplicación principal.
En otra realización más, el método comprende además generar una base de datos de conocimiento, en donde la base de datos de conocimiento comprende información sobre árboles de llamadas de aplicación generados. Además, generar el árbol de llamadas de aplicación comprende además la determinación de nodos y enlaces, que se agregan al árbol de llamadas de aplicación con base en un número de secuencia de llamada faltante, los datos que se almacenarán en el nodo y/o enlace respectivo con base en la base de datos de conocimiento, y marcar el árbol de llamadas de aplicación como modificado.
En una realización, un registro de datos asociado con una llamada de una aplicación comprende además al menos una referencia a la aplicación principal de la aplicación respectiva, una marca de tiempo de la llamada de la aplicación respectiva, una marca de tiempo de la devolución de la aplicación respectiva, una carga de cálculo del servidor de aplicaciones en ejecución, una capacidad de cálculo del servidor de aplicaciones en ejecución y una dirección IP del servidor de aplicaciones en ejecución. En otra realización, los datos estadísticos comprendidos por el árbol de llamadas de aplicación promedio comprenden al menos uno de la cantidad total de llamadas de aplicación respectiva, el porcentaje de llamadas para la aplicación respectiva para cumplir con la tarea y la carga de cálculo promedio de los servidores de aplicación en ejecución respectivos. En aún otra realización, los datos estadísticos comprendidos por el árbol de llamadas de aplicación promedio comprenden al menos uno de los tiempos de respuesta medio, máximo y mínimo de la aplicación respectiva.
En otra realización, la recuperación de al menos un archivo de registro del al menos un servidor de base de datos, la generación de un árbol de llamadas de aplicación para el cumplimiento de una tarea y/o la agregación de una pluralidad de árboles de llamadas de aplicación se ejecutan repetidamente en momentos predeterminados para tareas compuestas por archivos de registro almacenados entre la hora anterior de ejecución y la hora actual de ejecución.
En una realización, los árboles de llamadas de aplicación generados y/o los árboles de llamadas de aplicación promedios se almacenan en un servidor de base de datos. En otra realización, el mensaje de salida inicia una modificación del entorno del servidor de aplicaciones distribuidas, en donde la modificación comprende al menos uno de agregar un nuevo servidor de aplicaciones al entorno del servidor de aplicaciones distribuidas, redirigir la ejecución de una aplicación de un servidor de aplicaciones a otro servidor de aplicaciones dentro del entorno del servidor de aplicaciones distribuidas, y reconfigurar una secuencia, en la que se llama a las aplicaciones para la ejecución de una tarea.
Según un segundo aspecto de la invención, se presenta un sistema de monitorización de un entorno de servidor de aplicaciones distribuidas conectado a una pluralidad de terminales de cliente. Un terminal de cliente solicita al menos una realización de una tarea durante una sesión y una tarea requiere la ejecución de al menos una de una pluralidad de aplicaciones. El entorno de servidor de aplicaciones distribuidas comprende una pluralidad de servidores de aplicaciones, en los que se ejecuta la pluralidad de aplicaciones, al menos un servidor de base de datos, una unidad de control central conectada a la pluralidad de servidores de aplicación, al menos a un servidor de base de datos y a la pluralidad de terminales de cliente, y un módulo de análisis conectado al menos al servidor de base de datos.
La unidad de control central está configurada para almacenar archivos de registro en al menos un servidor de base de datos, en donde los archivos de registro comprenden registros de datos asociados con llamadas de aplicaciones ejecutadas para el cumplimiento de una tarea, en donde un registro de datos comprende un identificador de sesión para identificar la sesión, un identificador de tarea para identificar la tarea y un número de secuencia de llamada para identificar la secuencia de aplicaciones de llamadas durante el cumplimiento de una tarea.
El módulo de análisis está configurado para recuperar al menos un archivo de registro de al menos un servidor de base de datos, en donde falta al menos un registro de datos para una llamada de una aplicación en al menos uno de los archivos de registro, y generar un árbol de llamadas de aplicación para una realización de una tarea desde al menos un archivo de registro, el árbol de llamadas de aplicación comprende nodos que representan las aplicaciones llamadas durante la realización de la tarea y enlaces que representan las relaciones de llamada entre las aplicaciones requeridas para realizar la tarea, mediante la adición de nodos y enlaces al árbol de llamadas de aplicación con base en los números de secuencia de llamadas comprendidos por los registros de datos del al menos un archivo de registro, y el almacenamiento de datos comprendidos por los registros de datos en el nodo y/o enlace respectivo. El módulo de análisis está configurado además para agregar una pluralidad de árboles de llamadas de aplicación para la misma tarea para generar un árbol de llamadas de aplicación promedio, en donde el árbol de llamadas de aplicación promedio comprende datos estadísticos calculados con base en los datos almacenados en los árboles de llamadas de aplicación, comparar los valores estadísticos del árbol de llamadas de aplicación promedio generado con los valores estadísticos de un árbol de llamadas de aplicación promedio generado previamente de la misma tarea y, en respuesta a si la diferencia de un valor estadístico del árbol de llamadas de aplicación promedio generado con el valor estadístico correspondiente del árbol de llamadas de aplicación promedio generado previamente el árbol de llamadas de aplicación promedio generado excede un umbral, detectar un problema de rendimiento. Finalmente, en respuesta a la detección de un problema de rendimiento, generar un mensaje de salida. En ciertas realizaciones, el módulo de análisis está configurado para cumplir con características adicionales del método presentado como se describe en este documento.
Según un tercer aspecto de la invención, se presenta un producto de programa informático, en donde el producto de programa informático se proporciona en un medio legible por ordenador no transitorio y comprende un código de programa para la ejecución del método descrito en este documento, llevándose a cabo el programa informático en un ordenador o sistema informático.
La Fig. 1 ilustra un ejemplo de una infraestructura 100 cliente-servidor que comprende un entorno 110 de servidor de aplicaciones distribuidas. De acuerdo con una realización, el entorno 110 de servidor de aplicaciones distribuidas comprende una unidad 111 de control central y una pluralidad de servidores 112 de aplicaciones distribuidas y está conectado a una pluralidad de terminales 101 de cliente. Los servidores 112 de aplicaciones distribuidos pueden ser servidores virtuales, en donde una pluralidad de servidores virtuales se ejecutan en un servidor físico. Como alternativa o adicionalmente, al menos algunos de los servidores virtuales están virtualizados en un entorno en la nube. Además, los servidores 112 de aplicaciones distribuidos pueden ejecutarse en servidores físicos en una granja de servidores o distribuirse en varias granjas de servidores en una ubicación o diferentes ubicaciones geográficas distantes.
Los terminales 101 de cliente pueden ser ordenadores personales, ordenadores portátiles, tabletas, teléfonos móviles o cualquier otro dispositivo informático adecuado. Los terminales 101 de cliente están conectados al entorno 110 de servidor de aplicaciones distribuidas a través de una o más redes públicas o privadas, por ejemplo Internet o una red de área local. Las solicitudes enviadas desde los terminales 101 de cliente al entorno 110 de servidor de aplicaciones distribuidas se enrutan a la unidad 111 de control central, que posteriormente organiza a qué servidores 112 de aplicaciones se encaminarán las solicitudes.
En el ejemplo de la Fig. 1, el entorno 110 de servidor de aplicaciones distribuidas comprende además al menos un servidor 113 de base de datos que está conectado a un módulo 114 de análisis. En algunas realizaciones, los servidores 113 de base de datos almacenan archivos de registro que comprenden datos sobre la ejecución de aplicaciones en los servidores de aplicaciones. Los servidores 113 de bases de datos también pueden almacenar información generada por el módulo 114 de análisis, como árboles de llamadas de aplicación y árboles de llamadas de aplicación promedios como se describe a continuación. La unidad 111 central de control y el módulo 114 de análisis pueden ser diferentes unidades físicas o virtuales del entorno, sin embargo, la unidad central de control 111 también puede comprender el módulo 114 de análisis.
Son posibles otras configuraciones de la infraestructura 100 cliente-servidor y el entorno 110 del servidor de aplicaciones distribuidas. Por ejemplo, la unidad 111 de control central también puede estar conectada directamente al módulo 114 de análisis. En este caso, el módulo 114 de análisis no está conectado directamente sino indirectamente, es decir, a través de la unidad 111 de control central, conectado a los servidores 113 de base de datos. En algunos ejemplos, los terminales 101 de cliente están directamente conectados a otro servidor (no mostrado), por ejemplo, un servidor de Puerta de Enlace API o un servidor web, que luego enruta las solicitudes a la unidad 111 de control central.
El método 200 para monitorizar un entorno de servidor de aplicaciones distribuidas 110 de la Fig. 2 se puede realizar en un entorno 110 de servidor de aplicaciones distribuidas como se muestra en la Fig. 1. En el entorno 110 de servidor de aplicaciones distribuidas, la unidad 111 de control central registra datos asociados con solicitudes de terminales 101 de cliente relativas al cumplimiento de tareas en archivos de registro y almacenarlos en al menos un servidor de base de datos (recuadro 201), como el servidor 113 de base de datos. Las tareas registradas son, por ejemplo, iniciar sesión en una cuenta, registro de un usuario, registro de un terminal de cliente, solicitud de una pluralidad de conjuntos de datos de una base de datos, reserva de un hotel, vuelo y/o automóvil, transacciones de pago, visualización de un sitio web y cualquier otra tarea que pueda cumplir un entorno 110 de servidor de aplicaciones distribuidas. Los archivos de registro también pueden ser generados y almacenados por los servidores 112 de aplicación u otros componentes del entorno del servidor de aplicación, por ejemplo el módulo 114 de análisis.
Los archivos de registro comprenden registros de datos asociados con llamadas de aplicación durante el cumplimiento de una tarea. Los registros de datos comprenden, además de otros datos, un identificador de sesión para identificar la sesión, un identificador de tarea para identificar la tarea y un número de secuencia de llamada para identificar la secuencia de aplicaciones llamadas durante el cumplimiento de una tarea. Estos identificadores/números específicos pueden tener cualquier forma/formato adecuado.
Para monitorizar el entorno 110 de servidor de aplicaciones distribuidas, el módulo 114 de análisis recupera archivos de registro (recuadro 203). Como el entorno de servidor distribuido, por ejemplo el entorno 110 de servidor de aplicaciones distribuidas de la Fig. 1 puede estar muy distribuido o, dado que algunos componentes pueden no funcionar de la manera deseada, puede suceder que los datos de algunas llamadas de aplicaciones no se registren correctamente o falten por completo. Por lo tanto, se considera la situación en la que falta al menos un registro de datos para una llamada de una aplicación en los archivos de registro que recibe el módulo 114 de análisis.
A partir de los archivos de registro recibidos, se genera al menos un árbol de llamadas de aplicación (recuadro 205). Un árbol de llamadas de aplicación comprende nodos que representan las aplicaciones llamadas durante el cumplimiento de la tarea y enlaces que representan las relaciones de llamadas entre las aplicaciones requeridas para cumplir la tarea. Los nodos y enlaces se agregan al árbol de llamadas de aplicación con base en los números de secuencia de llamadas que componen los registros de datos. Además, los datos comprendidos por un registro de datos de una llamada de una aplicación se almacenan en el nodo y/o enlace respectivo. La recuperación de los archivos de registro del al menos un servidor de base de datos, la generación de un árbol de llamadas de aplicación para el cumplimiento de una tarea y/o la agregación de una pluralidad de árboles de llamadas de aplicación se pueden realizar en momentos predeterminados, por ejemplo cada hora, cada día, cada semana o cada año. Por lo tanto, solo se recuperan los archivos de registro almacenados entre la hora anterior de ejecución y la hora actual de ejecución para los que se generan árboles de llamadas de aplicación. Si el entorno 110 de servidor de aplicaciones distribuidas es un entorno grande con muchas solicitudes de terminales de clientes, el período de tiempo puede ser más corto que para entornos más pequeños solicitados con menos frecuencia.
Cuando se ha generado una pluralidad de árboles de llamadas de aplicaciones para una tarea, algunos de todos estos árboles de llamadas de aplicación se agregan (recuadro 207) para generar un árbol de llamadas de aplicación promedio para esa tarea. Este árbol de llamadas de aplicación promedio comprende datos estadísticos que se calculan al menos parcialmente con base en los datos almacenados en los árboles de llamadas de aplicación individuales generados anteriormente. En algunas realizaciones, los datos estadísticos comprenden al menos uno del número de llamadas totales de la aplicación respectiva, el porcentaje de llamadas para la aplicación respectiva para cumplir la tarea y la carga de cálculo media de los servidores de aplicación en ejecución respectivos. De manera adicional o alternativa, los datos estadísticos comprenden al menos uno de los tiempos de respuesta medio, máximo y mínimo de la aplicación respectiva en los árboles de llamadas de aplicación agregados. La agregación también se puede realizar en momentos predeterminados, por ejemplo cada hora, cada día, cada semana o cada año.
A continuación, se analiza el árbol de llamadas de aplicación promedio (recuadro 209). Por lo tanto, un programa informático extrae automáticamente los valores estadísticos y los compara con los valores estadísticos de los árboles de llamadas de aplicación promedios generados previamente de la misma tarea. Si la diferencia de un valor estadístico del árbol de llamadas de aplicación promedio con el valor estadístico correspondiente del árbol o árboles de llamadas de aplicación promedios generados anteriormente supera un umbral, el programa informático detecta un problema de rendimiento. Por ejemplo, pueden compararse los tiempos medios de respuesta de las aplicaciones en los árboles de llamadas de aplicación promedios. Si una aplicación en el árbol de llamadas de aplicación recién generado requiere más tiempo para ejecutarse que antes, es decir, en comparación con los tiempos de respuesta de los árboles de llamadas de aplicación promedios generados anteriormente, se detecta un problema de rendimiento de la aplicación y/o del servidor que ejecuta la aplicación.
De manera adicional o alternativa, los valores estadísticos comprendidos por el árbol de llamadas de aplicación promedio se analizan como tales. En este caso, si los valores estadísticos en enlaces específicos son inesperadamente altos o bajos, por ejemplo al exceder un umbral predeterminado, se detecta un problema de rendimiento. Por ejemplo, si un tiempo de respuesta medio de una aplicación es mucho más alto que los tiempos de respuesta de la otra aplicación en el árbol de llamadas de aplicación promedio, entonces esta aplicación genera problemas de rendimiento al ejecutar la tarea subyacente. En otro ejemplo, si el número de llamadas de una aplicación en el árbol de llamadas de aplicación promedio es muy bajo, es decir, solo se ejecuta algunas veces cuando se realiza la tarea, esto podría ser un error y también conducir a un problema de rendimiento detectado.
Si se detecta un problema de rendimiento (recuadro 211), el módulo 114 de análisis genera un mensaje de salida (recuadro 213). Tal mensaje de salida puede ser un archivo almacenado en una memoria para ser leído por una aplicación, un texto mostrado en una pantalla de ordenador, una señal transmitida a un módulo de modificación que inicia una modificación del entorno de servidor de aplicaciones distribuidas, o similar. En un ejemplo, la modificación del entorno de servidor de aplicaciones distribuidas consiste al menos en agregar un nuevo servidor de aplicaciones al entorno 110 de servidor de aplicaciones distribuidas, redirigir la ejecución de una aplicación desde un servidor de aplicaciones a otro servidor de aplicaciones dentro del entorno 110 de servidor de aplicaciones distribuidas, y reconfigurar una secuencia, en la que se llama a las aplicaciones para la ejecución de una tarea.
Cualquier modificación que resuelva o reduzca el problema de rendimiento es aplicable. Por ejemplo, si el árbol de llamadas de aplicación promedio muestra que el uso medio de la CPU de un servidor de aplicaciones o una pluralidad de servidores de aplicaciones que ejecutan una de las aplicaciones supera un umbral, por ejemplo un umbral entre el 70 % y 95 %, y que el tiempo medio de respuesta de la aplicación también es anormalmente alto en comparación con los árboles de llamadas de aplicación promedios generados anteriormente, se pueden agregar nuevos servidores de aplicación designados para ejecutar la aplicación respectiva al entorno 110 del servidor de aplicaciones. Como otro ejemplo, si un tiempo medio de respuesta de una aplicación es más alto que los tiempos medios de respuesta de otras aplicaciones en el árbol de llamadas de aplicación promedio, en una nueva versión de software para cumplir con la tarea puede cambiar la secuencia de las llamadas. Es decir, se llama a esta aplicación, que tiene un tiempo de respuesta elevado, en paralelo con otras aplicaciones y/o se traslada su llamada, en su caso, al inicio del cumplimiento de la tarea.
La Fig. 3a y la Fig. 3b muestran dos archivos de registro de ejemplo. Estos son sólo ejemplificados. Un archivo de registro puede comprender registros de datos que pertenecen a un solo cumplimiento de una tarea o puede comprender registros de datos para una pluralidad de cumplimientos de tareas. También puede comprender solo un registro de datos para una llamada de una aplicación. Un archivo de registro puede ser específico para una sesión de terminal de usuario, es decir, solo comprende registros de datos para el cumplimiento de tareas que se han solicitado durante una única sesión de terminal de usuario. De manera alternativa, un archivo de registro puede comprender registros de datos de un período de tiempo predeterminado, por ejemplo 0,1s, 0,3s, 10s o cualquier otro período de tiempo adecuado, que comprende registros de datos para todas las llamadas de aplicación durante este período.
La Fig. 3a muestra un ejemplo de un archivo de registro. Las cabeceras de las columnas, que también pueden omitirse, definen el contenido de las columnas. Hay una cabecera de columna para un identificador de sesión "IDSesion" 301, un identificador de tarea "IDTarea" 302, un número de secuencia de llamadas "NSecLlam" 303, una marca de tiempo "Marcatiempo" 304 y una aplicación llamada "Aplicacion" 305. Las siguientes líneas comprenden registros de datos para llamadas de aplicación.
En el ejemplo de la primera línea, es decir, el registro 306 de datos, el registro de datos se refiere a la sesión de un terminal de cliente con el identificador "123456" de sesión. El identificador de sesión puede ser un número aleatorio, relacionado con la dirección IP del terminal del cliente, o generado por cualquier otro método adecuado. El terminal de cliente solicitó el cumplimiento de la tarea con el identificador "1213" de tarea, que es, por ejemplo, un inicio de sesión en una página web. El número de secuencia de llamadas de la primera línea 306 es "1", lo que significa que es la primera llamada en este cumplimiento de la tarea "1213". La marca de tiempo "159.357" marca el momento en que se llamó a la aplicación "APL10" respectiva. En este caso, si la tarea "1213" es un inicio de sesión en una página web, "APL10" puede ser el identificador de la aplicación que inicia el inicio de sesión.
Las siguientes líneas, es decir, los registros 307, 308, 309 y 310, de datos del archivo de registro de la Fig. 3a, se refieren a otras llamadas de aplicaciones durante el cumplimiento de la tarea "1213". Por ejemplo, si la tarea "1213" es un inicio de sesión en una página web como se consideró anteriormente, entonces la siguiente aplicación llamada "APL20", identificada según el número de secuencia de llamada "1 -1" puede ser una aplicación que busca el nombre de usuario en una base de datos. y comprobando que la contraseña es correcta. "APL34" puede ser, en este ejemplo, una aplicación que solicita detalles del usuario de otra base de datos externa y "APL36" puede ser una aplicación que carga publicidad específica para este usuario.
Como puede verse, el archivo de registro también comprende registros de datos para una segunda tarea, la tarea con el identificador "2207" de tarea. Las tareas individuales también pueden almacenarse en diferentes archivos de registro o de cualquier otra manera adecuada para el problema, siempre que los registros de datos comprendan un identificador de sesión para identificar la sesión, un identificador de tarea para identificar la tarea y un número de secuencia de llamada para identificar la secuencia de aplicaciones llamadas durante el cumplimiento de una tarea;
La Fig. 3b muestra otro ejemplo de un archivo de registro. En este caso, los registros de datos para un cumplimiento de una tarea se agrupan con una cabecera común y se separan de los registros de datos para otras tareas por una línea en blanco. La línea de cabecera se identifica con la palabra "CABECERA" 321. En este ejemplo, los elementos de datos están separados por un "|". Cualquier otra marca de separación es posible. El siguiente elemento de datos en la línea de cabecera es el identificador de sesión "A8ZH0Z759" 322 que es único para una sesión de terminal de cliente. El número "3" 323 es un número consecutivo que puede, por ejemplo, identificar la tarea solicitada como la tercera tarea solicitada de esta sesión de terminal de cliente. En este ejemplo, el identificador de tarea "NNRRRQ" 324 va seguido de la dirección IP 325 del servidor que recibe la solicitud.
Las siguientes cuatro líneas se refieren a las llamadas de aplicación realizadas durante el cumplimiento de la tarea "NNRRRQ". Cada registro de datos, es decir, cada línea comprende, en una fila, el número de secuencia de llamada, el número de secuencia de llamada de la aplicación principal que llama a la aplicación respectiva, el tiempo de respuesta de la aplicación llamada, un identificador de aplicación, la dirección IP de la aplicación en ejecución servidor y la utilización del procesador de la CPU del servidor de aplicaciones en ejecución. Además, cada registro de datos puede comprender más datos, indicados con "..." en el archivo de registro de ejemplo de la Fig. 3b. Por ejemplo, estos datos adicionales comprenden una marca de tiempo de la llamada de la aplicación respectiva, una marca de tiempo del retorno de la aplicación respectiva y/o una capacidad de cálculo del servidor de aplicación en ejecución.
El primer registro 326 de datos después de la primera línea de cabecera del archivo de registro de ejemplo define la raíz de las llamadas de aplicación. Los otros tres registros de datos son registros de datos para las respectivas llamadas de aplicación. Por ejemplo, el segundo registro 327 de datos comprende datos relativos a la llamada de la aplicación "AP481". Antes de generar un árbol de llamadas de aplicación, los archivos de registro también se pueden modificar para facilitar la generación del árbol de llamadas de aplicación. Es posible que algunos registros de datos, como la primera línea 326, no se registren durante el cumplimiento de la tarea, sino que se agreguen más tarde antes de generar el árbol de llamadas de aplicación. Algunos otros registros de datos pueden modificarse para mejorar los datos registrados. En un ejemplo, los registros de datos adicionales o modificados también comprenden datos que han sido extraídos o calculados con base en los registros de datos ya existentes. Además, los registros de datos adicionales o modificados pueden marcarse o señalizarse para distinguirlos de los registros de datos registrados no modificados.
Cuando se ha generado y almacenado una pluralidad de archivos de registro, como los archivos de registro de la Fig. 3a, la Fig. 3b, o cualquier otro tipo adecuado de archivos de registro, el módulo 114 de análisis o cualquier otro módulo que esté incluido o conectado con el entorno 110 de servidor de aplicaciones distribuidas puede recuperar los archivos de registro y generar árboles de llamadas de aplicación para monitorizar el entorno 110 de servidor de aplicaciones distribuidas.
El diagrama de flujo de la Fig. 4 muestra una realización de cómo generar un árbol de llamadas de aplicación para cumplir una tarea específica. El método 400 comienza con la selección de un conjunto de archivos de registro que comprenden el mismo identificador de sesión (recuadro 401). Un conjunto de archivos de registro puede consistir solo en un archivo de registro o en una pluralidad de archivos de registro. Entre el conjunto de archivos de registro, los registros de datos que pertenecen al cumplimiento de la tarea específica se extraen basándose en el identificador de tarea almacenado (recuadro 403). Por ejemplo, si el árbol de llamadas de aplicación para la tarea con el identificador "1213" de tarea se genera a partir del archivo de registro que se muestra en la Fig. 3a, se extraen todos los registros de datos con este identificador de tarea, es decir, los primeros cinco registros de datos.
La generación del propio árbol de llamadas de aplicación comienza con la generación de un nodo raíz que hace referencia a la tarea (recuadro 405). Este nodo raíz está etiquetado con el identificador de tarea, por ejemplo. con el número "1213". De manera alternativa, el nodo raíz no se etiqueta con un identificador, pero el árbol de llamadas de aplicación generado finalmente, o el archivo en el que se almacena, se etiqueta con el identificador de tarea respectivo. También es posible cualquier otro etiquetado adecuado para asociar el árbol de llamadas de aplicación con la tarea respectiva. Después de generar un nodo raíz, en donde la generación comprende almacenar este nodo raíz en una estructura de datos específica, inicializar un objeto de nodo raíz, escribir datos correspondientes al nodo raíz en un archivo, o cualquier otro método adecuado, se selecciona el registro de datos asociado con la primera aplicación durante el cumplimiento de la tarea (recuadro 407). Esta selección se ve facilitada por el número de secuencia de llamada almacenado en los archivos de registro, ya que este número indica qué aplicación llamó a qué otra aplicación o aplicaciones durante el cumplimiento de la tarea. Un nodo correspondiente al registro de datos seleccionado, es decir, asociado con la primera aplicación llamada, se agrega al árbol de llamadas de aplicación y se vincula al nodo raíz (recuadro 411).
Entonces, se selecciona el registro de datos siguiente entre los registros de datos del cumplimiento de la tarea, es decir, el registro de datos que comprende un número de secuencia de llamada siguiente (recuadro 411). Aunque el número de secuencia de llamada de una aplicación puede ser mayor que el número de secuencia de llamada de otra aplicación, esto no indica necesariamente que estas aplicaciones se llamen en un orden posterior. También se pueden llamar en paralelo. Por ejemplo, las aplicaciones "APL34" y "APL36" del archivo de registro de ejemplo de la Fig. 3a se han llamado en paralelo como lo indica la marca de tiempo, aunque el número de secuencia de llamada "1 -1 -1" de "APL34" es inferior a "1 -1 -3" de "APL36".
Si el registro de datos está correctamente seleccionado y existe (recuadro 413 - sin ruta), un nodo correspondiente al registro de datos seleccionado, es decir, asociado con la aplicación llamada, se agrega al árbol de llamadas de aplicación y se vincula a la aplicación principal, es decir, a la aplicación llamando a la aplicación respectiva (recuadro 415). La aplicación llamada también se denomina aplicación secundaria. Por lo tanto, el árbol de llamadas de aplicación representa las relaciones de llamadas de las aplicaciones o, en otras palabras, una estructura de llamadas de aplicaciones principal y secundaria.
Si falta un registro de datos para el siguiente número de secuencia de llamadas (recuadro 413 - con ruta), se agregan un nodo y un enlace de todos modos al árbol de llamadas de aplicación, aunque el registro de datos no proporciona más información (recuadro 417). Sin embargo, con base al número de secuencia de llamada que falta, se puede determinar dónde agregar un nodo y un enlace. Por ejemplo, en el archivo de registro de la Fig. 3a, se puede determinar que (al menos) faltan los registros de datos para las aplicaciones con los números de secuencia "1-1-2" y "1-2" de llamadas. Por lo tanto, los nodos y enlaces se agregan al árbol de llamadas de aplicación y se marcan como faltantes o similares.
La selección de registros de datos con el siguiente número de secuencia de llamada y la adición de nodos y enlaces respectivos al árbol de llamadas de aplicación (recuadros 411 a 417) se realizan repetidamente hasta que todos los registros de datos de la misma sesión con el mismo identificador de tarea y/o todos los registros de datos faltantes para el cumplimiento de la tarea se han manejado como se describe. La aplicación finalmente generada denominada árbol se almacena luego en un servidor de base de datos, como el servidor 113 de base de datos.
La Fig. 5 muestra dos árboles de llamadas de aplicación generados a partir del archivo de registro de la Fig. 3a. El primer árbol 510 de llamadas de aplicación representa el árbol de llamadas de aplicación generado para la tarea con el identificador "1213" de tarea. El nodo 511 raíz está vinculado a la primera aplicación "APL10" 512 llamada según el primer registro 306 de datos del archivo de registro. La aplicación "APL10" con el número "1" de secuencia de llamada llama a dos aplicaciones: la primera aplicación es "APL20" como se indica en el segundo registro 307 de datos; la segunda aplicación es desconocida porque falta el registro de datos. Sin embargo, como lo indica el registro 310 de datos, debe haber una llamada de una aplicación con el número "1-2" de secuencia de llamada porque "APL77" del registro 310 de datos es una aplicación secundaria de esta aplicación que falta, lo cual está indicado por el número "1-2-1" de secuencia de llamada . Por lo tanto, el nodo de la aplicación "APL10" está vinculado a dos nodos de aplicaciones secundarias, es decir, al nodo 513 de la aplicación "APL20" y al nodo 514 de una aplicación que falta. El nodo 514 también está vinculado al nodo 518 de su aplicación secundaria "APL77".
"APL20" llama a tres aplicaciones como se indica en el archivo de registro de ejemplo de la Fig. 3a. Se enumeran los registros de datos de dos de ellos, a saber, el registro 308 de datos de la aplicación "APL34" con el número "1-1 -1" de secuencia de llamada y el registro 309 de datos de la aplicación "APL36" con el número "1-1-3" de secuencia de llamada. Sin embargo, en este ejemplo falta un registro de datos de una aplicación llamada, ya que falta el número "1 -1 -2" de secuencia de llamada en el archivo de registro. Los números de secuencia de llamada están estructurados de manera que los registros de datos que faltan pueden determinarse al menos en los casos en que está presente un número posterior donde falta un número anterior. Dado que los registros de datos que faltan se identifican con base en el número de secuencia de llamada, se puede agregar un nodo y un enlace. Como resultado, el nodo de la aplicación "APL20" está vinculado a tres nodos de aplicaciones secundarias, es decir, al nodo 515 de la aplicación "APL34", al nodo 517 de la aplicación "APL36" y al nodo 516 de una aplicación que falta.
El segundo árbol 520 de llamadas de aplicación de la Fig. 5 muestra el árbol de llamadas de aplicación para la tarea "2207" que comprende el archivo de registro de la Fig. 3a. Nuevamente comprende un nodo 521 raíz. Como puede verse, no se han detectado registros de datos faltantes y el árbol 5210 de llamadas de aplicación solo comprende los nodos 522, 523, 524 y 525 que se han incluido con base en los registros de datos incluidos en el archivo de registro de la Fig. 3a.
La generación del árbol de llamadas de aplicación puede comprender además calcular una suma de verificación para un nodo y almacenar la suma de verificación en el nodo. El primer árbol 510 de llamadas de aplicación de la Fig. 5 muestra en cuadros discontinuos ejemplos de sumas de verificación almacenadas en los nodos 511 a 518. La suma de verificación puede ser información basada al menos parcialmente en relación con al menos una aplicación principal durante el cumplimiento de la tarea. En este ejemplo, las sumas de verificación se calculan con base en la suma de verificación del nodo principal y el número comprendido por el identificador de aplicación del nodo. Por ejemplo, el nodo 513 tiene la suma de verificación "30" ya que su nodo 512 principal tiene la suma de verificación "10" y el número comprendido por su identificador de aplicación "APL20" es "20".
Como se puede ver en el ejemplo del primer árbol 510 de llamadas de aplicación en la Fig. 5, no se pueden calcular sumas de verificación para los nodos 514 y 516 faltantes. Sin embargo, si la suma de verificación se calcula de otra manera, por ejemplo, solo con base en la información de los nodos principales , también se puede calcular una suma de verificación para los nodos que faltan. En otra realización, la suma de verificación se puede crear como una suma de verificación MD5 de 128 bits a partir de una cadena que comprende al menos una parte de los datos almacenados en los registros de datos para al menos una aplicación principal. Por ejemplo, la cadena se compone del identificador de tarea, el identificador de aplicación de la aplicación principal, el número de secuencia de llamada de la aplicación principal, el identificador de aplicación de la aplicación principal del padre y el número de secuencia de llamada de la aplicación principal del padre. Son posibles otras combinaciones de información compuestas por los registros de datos de al menos una aplicación principal y/o de la respectiva aplicación, así como el uso de otros algoritmos de generación de suma de verificación, como por ejemplo CRC, SFV, SHA1 y SHA256.
La recuperación de al menos un archivo de registro del al menos un servidor de base de datos y/o la generación de un árbol de llamadas de aplicación para el cumplimiento de una tarea puede ejecutarse repetidamente en momentos predeterminados. En un ejemplo, el módulo 114 de análisis está configurado para recuperar cada segundo/minuto/hora/día aquellos archivos de registro del servidor 113 de base de datos que se generaron en el último segundo/minuto/hora/día. Con base en estos archivos de registro, el módulo 114 de análisis puede generar árboles de llamadas de aplicación para el cumplimiento de las tareas comprendidas por los respectivos archivos de registro. Estos árboles de llamadas de aplicación generados se almacenan luego en el servidor 113 de base de datos.
Para monitorizar un entorno de servidor distribuido sobre la base de árboles de llamadas de aplicación, los árboles de llamadas de aplicación generados finalmente se agregan para determinar valores estadísticos y detectar problemas de rendimiento. La Fig. 6 muestra ejemplos de árboles de llamadas de aplicación para el cumplimiento de la tarea con el identificador "1213" de tarea como se indica en los nodos 611 a 6N1 raíz, donde N indica que puede haber una pluralidad de N árboles de llamadas de aplicación generados para esta tarea. Aunque solo se representan a modo de ejemplo los tiempos de respuesta de las respectivas aplicaciones en los enlaces/bordes de los árboles de llamadas de aplicación, la información almacenada junto con los árboles de llamadas de aplicación puede comprender cualquier dato almacenado y/o calculado con base en los registros de datos sobre los que se ha generado el árbol de llamadas de aplicación.
Estos árboles de llamadas de aplicación luego se agregan a un árbol de llamadas de aplicación promedio para la tarea con el identificador" 1213" de tarea. En el ejemplo presentado, los árboles de llamadas de aplicación comprenden sumas de verificación. Estas pueden ayudar a encontrar los nodos correctos para agregar comparando las sumas de verificación de los nodos. En los ejemplos de la Fig. 6, los nodos 614 y 617 así como 6N4 y 6N7 son nodos de la aplicación con el identificador de aplicación "APL36". Al agregar los dos árboles 610 y 6N0 de llamadas, existe el riesgo de que el nodo 617 se agregue con el nodo 6N4 o el nodo 6N7 se agregue con el nodo 614. Para evitar esto, se pueden comparar los nodos principales. Sin embargo, esto requiere que el árbol de llamadas de aplicación se almacene de manera que los nodos principales se puedan recuperar fácilmente al agregar los árboles de llamadas de aplicación. En cada caso, la comparación de los nodos principales requiere búsquedas adicionales en los árboles de llamadas de aplicación y, por lo tanto, puede llevar mucho tiempo. Por lo tanto, almacenar sumas de verificación en los nodos puede reducir el tiempo necesario para construir los árboles de llamadas de aplicación promedios y facilitar la integridad referencial durante la agregación de los árboles de llamadas de aplicación.
En la Fig. 7 se muestra un posible árbol de llamadas de aplicación promedio resultante generado como agregación de los árboles de llamadas de aplicación de la Fig. 6. El árbol de llamadas de aplicación promedios comprende estadísticas, por ejemplo datos promedios o resumidos. En el árbol 710 de llamadas de aplicación promedio de la Fig. 7, los tiempos de respuesta promedio se indican en los enlaces. Estos tiempos de respuesta promedios pueden ser tiempos de respuesta medios de todos los árboles 610 a 6N0 de llamadas de aplicación agregados. Por ejemplo, la aplicación "APL10" (nodo 712), que es la aplicación de inicio al realizar la tarea "1213", tiene un tiempo de respuesta medio de 150,17 ms y la "APL36" (en el nodo 717) tiene un tiempo de respuesta medio de 55,81 ms.
Si se almacena más información en los árboles de llamadas de aplicación, por ejemplo la totalidad o una parte de la información comprendida por los registros de datos asociados con el árbol de llamadas, otros datos estadísticos también pueden estar compuestos por los árboles de llamadas de aplicación promedios. Por ejemplo, los datos estadísticos pueden ser los tiempos de respuesta medio, máximo y/o mínimo de la aplicación respectiva, un número total de llamadas de la aplicación respectiva, un porcentaje de llamadas de la aplicación respectiva para cumplir con la tarea y/o una carga de cálculo media de los respectivos servidores de aplicación en ejecución.
Los datos estadísticos, así como información adicional sobre los árboles de llamadas de aplicación, como la información sobre qué aplicación llama a qué otras aplicaciones cuando realizan una tarea específica o similar, pueden usarse para generar una base de datos de conocimiento. En un ejemplo, la base de datos de conocimiento se almacena en el servidor 113 de base de datos y ayuda a llenar los nodos y enlaces que faltan cuando se generan árboles de llamadas de aplicación. Por ejemplo, los dos nodos que faltan del árbol 510 de llamadas de aplicación de la Fig. 5, es decir, los nodos 514 y 516, pueden modificarse basándose en la información almacenada de la base de datos de conocimiento.
Por ejemplo, si la base de datos de conocimiento comprende la información almacenada en el árbol 710 de llamadas de aplicación promedio de la Fig. 7, es probable que los nodos que faltan correspondan a los nodos 714 y 716 para las aplicaciones "APL36" y "APL35". Por lo tanto, el árbol de llamadas de aplicación se puede modificar para que el nodo 514 no se marque como faltante sino que se asocie con "APL36" y el nodo 516 se asocie con "APL35". Además, los datos estadísticos almacenados en la base de datos de conocimiento se pueden agregar al árbol de llamadas de aplicación modificado, si corresponde. Sin embargo, para distinguir los árboles de llamadas de aplicación modificados de los árboles de llamadas de aplicación no modificados, los árboles de llamadas de aplicación modificados y/o los nodos modificados se marcan como modificados.
La generación de un árbol de llamadas de aplicación promedio para el cumplimiento de una tarea también puede ejecutarse repetidamente en momentos predeterminados. Por ejemplo, el módulo 114 de análisis puede configurarse para recuperar cada minuto/hora/día los árboles de llamadas de aplicación generados desde el servidor 113 de base de datos que se generaron en el último minuto/hora/día. Con base en estos árboles de llamadas de aplicación, el módulo 114 de análisis puede generar árboles de llamadas de aplicación promedios para el cumplimiento de las tareas comprendidas por los respectivos árboles de llamadas de aplicación. Estos árboles de llamadas de aplicación promedios generados se almacenan también en el servidor 113 de base de datos.
Para analizar los árboles de llamadas de aplicación promediados con respecto a los problemas de rendimiento del entorno de servidor de aplicaciones distribuidas, los valores estadísticos de un árbol de llamadas de aplicación promedio generado actualmente se comparan con los valores estadísticos de los árboles de llamadas de aplicación promedios generados previamente. Por ejemplo, se pueden comparar los tiempos de respuesta medio/máximo/mínimo. Si un tiempo de respuesta es significativamente mayor/menor que antes, es decir, supera un umbral predefinido, se puede detectar un problema de rendimiento. Como alternativa o adicionalmente, se compara el número de llamadas de las aplicaciones en el árbol de llamadas de aplicación promedio. Si una aplicación ya no se llama o solo se llama algunas veces pero se ha llamado varias veces en los árboles de llamadas de aplicación generados anteriormente, también se detecta un problema de rendimiento.
El árbol 710 de llamadas de aplicación promedio de la Fig. 7 puede ser el árbol de llamadas de aplicación generado actualmente y el árbol 720 de llamadas de aplicación promedio de la Fig. 7 puede ser un árbol de llamadas de aplicación promedio generado previamente en el que no se han detectado problemas de rendimiento y, por lo tanto, comprende tiempos de respuesta que eran habituales para las aplicaciones en el pasado. Por lo tanto, comparar los tiempos de respuesta medios de las aplicaciones en el árbol 720 de llamadas de aplicación promedio generado previamente con los tiempos de respuesta de las mismas aplicaciones del árbol 710 de llamadas de aplicación promedio generado actualmente, por ejemplo la determinación de la diferencia de los tiempos de respuesta puede usarse para detectar problemas de rendimiento del sistema de servidor de aplicaciones distribuidas monitorizado.
Por ejemplo, los tiempos de respuesta medios para todas las aplicaciones en los nodos 715, 717, 714 y 718 difieren menos del 5 % de los tiempos de respuesta determinados previamente de las aplicaciones en los nodos 725, 727, 724 y 728. Sin embargo, las diferencias de los tiempos medios de respuesta de las aplicaciones en los nodos 712, 713 y 716 y los tiempos medios de respuesta de las aplicaciones correspondientes en los nodos 722, 723 y 726 son considerablemente mayores. "APL10" actualmente (nodo 712) requiere 29.64ms (+ 24,59 %) más para responder que antes (nodo 722), "APL20" actualmente (nodo 713) requiere 28.21ms (+ 94,72 %) más para responder que antes (nodo 723), y "APL35" actualmente (nodo 716) requiere 40.69ms (+ 269,11 %) más para responder que antes (nodo 726).
Suponga que el umbral para detectar un problema de rendimiento con base en los tiempos de respuesta está predeterminado en un 30 %. También se pueden aplicar otros valores de umbral. Por ejemplo, el umbral también se puede establecer en 5 %, 10 %, 15 %, 20 %, 25 % o cualquier otro valor adecuado. Los valores de umbral también pueden diferir para cada uno de los valores estadísticos o ser similares para algunos de los valores estadísticos y diferentes para otros. Con el umbral del 30 % asumido, las diferencias de los tiempos de respuesta medios superan este umbral para "APL20" (nodo 713) y "APL35" (nodo 716).
Por lo tanto, se detecta un problema de rendimiento para el entorno del servidor de aplicaciones distribuidas monitorizado. En respuesta a un problema de rendimiento detectado, se genera un mensaje de salida. Por ejemplo, si el mensaje de salida es un mensaje de texto en la pantalla de un ordenador, el mensaje informa al administrador del sistema sobre el problema de rendimiento y sugiere posibles modificaciones del entorno 110 de servidor distribuido. Si el mensaje de salida es un archivo almacenado, una aplicación que use este archivo puede refactorizar o reprogramar las aplicaciones que causan el problema de rendimiento o mostrar un mensaje a un administrador del sistema. Si el mensaje de salida es una señal transmitida a un módulo de modificación, que puede ser el propio módulo 114 de análisis u otro módulo, el mensaje inicia automáticamente una modificación del entorno de servidor de aplicaciones distribuidas.
Dado que un problema de rendimiento causado por una aplicación o un servidor de aplicaciones a menudo también afecta el rendimiento de otras aplicaciones o servidores de aplicaciones, es posible que se tengan en cuenta parámetros adicionales antes de iniciar la modificación del entorno de servidor de aplicaciones distribuidas.
En el ejemplo de la Fig. 7, el problema de rendimiento es causado, por ejemplo, por el servidor de aplicaciones que ejecuta la aplicación "APL35" cuando esta aplicación es llamada por la aplicación "APL20". Sin embargo, esto no queda claro solo comparando las diferencias de los tiempos de respuesta. Por lo tanto, puede ser ventajoso, en caso de que se detecte un problema de rendimiento, analizar más a fondo el árbol de llamadas de aplicación promedio. Por ejemplo, si una pluralidad de los mismos valores estadísticos en diferentes nodos, por ejemplo los tiempos de respuesta para las aplicaciones "APL20" y "APL35", exceden el umbral predeterminado, se determina el nodo que causa el exceso, por ejemplo la aplicación "APL35", mediante la determinación de la causa del problema de rendimiento en el nodo que excede más el umbral o en el nodo más profundo, es decir, el más alejado de la raíz, en el árbol de llamadas de aplicación promedio.
Para concretar aún más si la aplicación en sí o el servidor que ejecuta la aplicación causa el problema de rendimiento, la carga media del servidor se puede verificar en el árbol de llamadas de aplicación promedio. De manera adicional o alternativa, se puede determinar si la aplicación que se detectó que causaba un problema de rendimiento al realizar la tarea se llama para realizar otras tareas y se ejecuta en un servidor diferente. Si este es el caso y los tiempos de respuesta en el árbol de llamadas de aplicación promedio generado actualmente de la otra tarea son los habituales, se puede detectar que el problema de rendimiento no fue causado por la aplicación sino por el servidor de aplicaciones en ejecución.
Si finalmente se detecta la causa del problema de rendimiento, el entorno del servidor de aplicaciones distribuidas se modifica para resolver el problema de rendimiento o al menos mejorar el rendimiento. Las modificaciones pueden comprender agregar un nuevo servidor de aplicaciones al entorno del servidor de aplicaciones distribuidas, redirigir la ejecución de una aplicación de un servidor de aplicaciones a otro servidor de aplicaciones dentro del entorno de servidor de aplicaciones distribuidas y reconfigurar una secuencia, en la que se llama a las aplicaciones para la ejecución de una tarea.
En el ejemplo dado anteriormente, el servidor de aplicaciones que ejecuta la aplicación "APL35 causa el problema de rendimiento, por ejemplo, debido a que la carga en el servidor de aplicaciones es demasiado alta y hay un cuello de botella al ejecutar la aplicación, se puede agregar un nuevo servidor de aplicaciones al entorno de servidor de aplicaciones distribuidas y adicionalmente asignarlo para ejecutar "APL35". En otro ejemplo, si se detecta que el problema de rendimiento es causado por un código de programación falso de una aplicación, se puede cargar una nueva versión de software del código para ejecutarlo en el entorno de servidor de aplicaciones distribuidas.
Aunque en el presente documento se han descrito ciertos métodos y productos construidos de acuerdo con las enseñanzas de la invención, el alcance de la cobertura de esta patente no se limita a estos.

Claims (14)

REIVINDICACIONES
1. Un método implementado por ordenador para monitorizar un entorno (110) de servidor de aplicaciones distribuidas que comprende una pluralidad de servidores (112) de aplicaciones, en los que se ejecuta una pluralidad de aplicaciones, conectados a una pluralidad de terminales (101) de cliente,
en donde un terminal (101) de cliente solicita al menos un cumplimiento de una tarea durante una sesión, una tarea que requiere la ejecución de al menos una de la pluralidad de aplicaciones,
en donde el método comprende:
• almacenar archivos de registro en al menos un servidor (113) de base de datos, en donde los archivos de registro comprenden registros de datos asociados con llamadas de aplicaciones ejecutadas para el cumplimiento de una tarea, en donde un registro de datos comprende un identificador de sesión para identificar la sesión, un identificador de tarea para identificar la tarea y un número de secuencia de llamada para identificar la secuencia de aplicaciones llamadas durante el cumplimiento de una tarea;
• recuperar al menos un archivo de registro de al menos un servidor (113) de base de datos, en donde falta al menos un registro de datos para una llamada de una aplicación en al menos uno de los archivos de registro; • generar un árbol (510; 520; 610; 620) de llamadas de aplicación para el cumplimiento de una tarea desde al menos un archivo de registro, comprendiendo el árbol (510; 520; 610; 620) de llamadas de aplicación nodos que representan aplicaciones llamadas durante el cumplimiento de la tarea y enlaces que representan las relaciones de llamada entre las aplicaciones requeridas para cumplir con la tarea, en donde generar el árbol (510; 520; 610; 620) de llamadas de la aplicación comprende:
- agregar nodos y enlaces al árbol de llamadas de aplicación con base en los números de secuencia de llamada comprendidos por los registros de datos del al menos un archivo de registro; y
- almacenar datos comprendidos por los registros de datos en el nodo y/o enlace respectivo;
• agregar una pluralidad de árboles (510; 520; 610; 620) de llamadas de aplicación para la misma tarea para generar un árbol (710; 720) de llamadas de aplicación promedio,
en donde el árbol (710; 720) de llamadas de aplicación promedio comprende datos estadísticos calculados con base en los datos almacenados en los árboles (510; 520; 610; 620) de llamadas de aplicación;
• comparar los valores estadísticos del árbol (710; 720) de llamadas de aplicación promedio generado con los valores estadísticos de un árbol (710; 720) de llamadas de aplicación promedio generado previamente de la misma tarea; y
• en respuesta a que la diferencia de un valor estadístico del árbol (710; 720) de llamadas de aplicación promedio generado al valor estadístico correspondiente del árbol (710; 720) de llamadas de aplicación promedio generado previamente excede un umbral, detectar un problema de rendimiento; y
• en respuesta a la detección del problema de rendimiento, generar un mensaje de salida, indicando el mensaje una o más modificaciones del entorno de servidor distribuido asociado con el problema de rendimiento.
2. El método implementado por ordenador de la reivindicación 1, en donde agregar nodos y enlaces al árbol (510; 520; 610; 620) de llamadas de aplicación comprende:
• seleccionar un conjunto de archivos de registro que comprenden el mismo identificador de sesión;
• identificar un conjunto de registros de datos compuesto por el conjunto de archivos de registro con base en el identificador de tarea;
• generar un nodo raíz referente a la tarea;
• seleccionar el registro de datos entre el conjunto de registros de datos asociados con una primera aplicación con base en el número de secuencia de llamada, en donde la primera aplicación es la aplicación que se llama primero durante el cumplimiento de la tarea;
• añadir un nodo al árbol (510; 520; 610; 620) de llamadas de aplicación para la primera aplicación, en donde el nodo está vinculado al nodo raíz;
• seleccionar repetidamente un registro de datos con un número de secuencia de llamada siguiente y agregar un nodo al árbol (510; 520; 610; 620) de llamadas de aplicación para la aplicación respectiva con un enlace al nodo de una aplicación principal, en donde la aplicación principal es la aplicación que llama a la respectiva aplicación durante el cumplimiento de la tarea; y
• en respuesta a la detección de un registro de datos faltante para una llamada de una aplicación basada en un número de secuencia de llamada faltante, agregar un nodo y un enlace basado en el número de secuencia de llamada faltante al árbol (510; 520; 610; 620) de llamadas de aplicación .
3. El método implementado por ordenador de la reivindicación 2, en donde generar el árbol (510; 520; 610; 620) de llamadas de aplicación comprende:
• calcular una suma de verificación para un nodo, en donde la suma de control se basa al menos parcialmente en al menos una aplicación principal durante el cumplimiento de la tarea; y
• almacenar la suma de verificación en el nodo;
y en donde agregar una pluralidad de árboles (510; 520; 610; 620) de llamadas de aplicación para la misma tarea comprende:
• comparar las sumas de verificación de los nodos de la pluralidad de árboles (510; 520; 610; 620) de llamadas de aplicación para determinar los nodos que se van a agregar.
4. El método implementado por ordenador de la reivindicación 3, en donde la suma de verificación se crea como una suma de verificación MD5 de 128 bits a partir de una cadena que comprende al menos una parte de los datos almacenados en los registros de datos para al menos una aplicación principal.
5. El método implementado por ordenador de cualquiera de las reivindicaciones 1 a 4 que comprende además:
• generar una base de datos de conocimiento, comprendiendo la base de datos de conocimiento información sobre árboles (510; 520; 610; 620) de llamadas de aplicaciones generados;
y en donde generar el árbol (510; 520; 610; 620) de llamadas de aplicación comprende además:
• determinar para los nodos y enlaces, que se agregaron al árbol (510; 520; 610; 620) de llamadas de aplicación con base en un número de secuencia de llamada faltante, los datos que se almacenarán en el nodo y/o enlace respectivo con base en la base de datos de conocimiento; y
• marcar el árbol (510; 520; 610; 620) de llamadas de aplicación como modificado.
6. El método implementado por ordenador de cualquiera de las reivindicaciones 1 a 5, en donde un registro de datos asociado con una llamada de una aplicación comprende además al menos una referencia a la aplicación principal de la aplicación respectiva, una marca de tiempo de la llamada de la aplicación respectiva, una marca de tiempo del retorno de la aplicación respectiva, una carga de cálculo del servidor (112) de aplicaciones en ejecución, una capacidad de cálculo del servidor (112) de aplicaciones en ejecución y una dirección IP del servidor (112 ) de aplicaciones en ejecución.
7. El método implementado por ordenador de cualquiera de las reivindicaciones 1 a 6, en donde los datos estadísticos comprendidos por el árbol (710; 720) de llamadas de aplicación promedio comprenden al menos uno de número de llamadas totales de la aplicación respectiva, el porcentaje de llamadas para la aplicación respectiva para cumplir con la tarea, y la carga de cálculo media de los respectivos servidores (112) de aplicación en ejecución.
8. El método implementado por ordenador de cualquiera de las reivindicaciones 1 a 7, en donde los datos estadísticos comprendidos por el árbol (710; 720) de llamadas de aplicación promedio comprenden al menos uno de los tiempos de respuesta medio, máximo y mínimo de la aplicación respectiva.
9. El método implementado por ordenador de cualquiera de las reivindicaciones 1 a 8, en donde recuperar al menos un archivo de registro de al menos un servidor de base de datos, generar un árbol (510; 520; 610; 620) de llamadas de aplicación para el cumplimiento de una tarea y/o la agregación de una pluralidad de árboles (510; 520; 610; 620) de llamadas de aplicación se ejecutan repetidamente en momentos predeterminados para tareas compuestas por archivos de registro almacenados entre el momento anterior de ejecución y el momento actual de ejecución.
10. El método implementado por ordenador de cualquiera de las reivindicaciones 1 a 9, en donde los árboles (510; 520; 610; 620) de llamadas de aplicación generados y/o los árboles (710; 720) de llamadas de aplicación promedios se almacenan en un servidor de base de datos.
11. El método implementado por ordenador de cualquiera de las reivindicaciones 1 a 10, en donde el mensaje de salida generado inicia una modificación del entorno (110) de servidor de aplicaciones distribuidas, donde la modificación comprende al menos uno de agregar un nuevo servidor (112) de aplicaciones al entorno (110) de servidor de aplicaciones distribuidas,
redirigir la ejecución de una aplicación desde un servidor (112) de aplicaciones a otro servidor (112) de aplicaciones dentro del entorno (110) de servidor de aplicaciones distribuidas, y reconfigurar una secuencia, en la que se llama a las aplicaciones para la ejecución de una tarea.
12. Un sistema de procesamiento de datos para monitorizar un entorno (110) de servidor de aplicaciones distribuidas conectado a una pluralidad de terminales (101) de cliente, en donde un terminal (101) de cliente solicita al menos el cumplimiento de una tarea durante una sesión, una tarea que requiere la ejecución de al menos una de una pluralidad de aplicaciones, en donde el entorno (110) de servidor de aplicaciones distribuidas comprende:
• una pluralidad de servidores (112) de aplicaciones, en los que se ejecuta la pluralidad de aplicaciones;
• al menos un servidor (113) de base de datos;
• una unidad (111) de control central conectada a la pluralidad de servidores de aplicaciones, al menos a un servidor de base de datos y a la pluralidad de terminales de cliente; y
• un módulo (114) de análisis conectado al menos al servidor de base de datos;
donde la unidad (111) de control central está configurada para:
• almacenar archivos de registro en al menos un servidor (113) de base de datos, en donde los archivos de registro comprenden registros de datos asociados con llamadas de aplicaciones ejecutadas para el cumplimiento de una tarea, en donde un registro de datos comprende un identificador de sesión para identificar la sesión, un identificador de tarea para identificar la tarea y un número de secuencia de llamada para identificar la secuencia de aplicaciones llamadas durante el cumplimiento de una tarea;
en donde el módulo (114) de análisis está configurado para:
• recuperar al menos un archivo de registro del al menos un servidor (113) de base de datos, faltando al menos un registro de datos para una llamada de una aplicación falta en al menos uno de los archivos de registro;
• generar un árbol (510; 520; 610; 620) de llamadas de aplicación para el cumplimiento de una tarea desde al menos un archivo de registro, comprendiendo el árbol (510; 520; 610; 620) de llamadas de aplicación nodos que representan aplicaciones llamadas durante el cumplimiento de la tarea y los enlaces que representan las relaciones de llamada entre las aplicaciones necesarias para realizar la tarea, mediante:
- agregar nodos y enlaces al árbol (510; 520; 610; 620) de llamadas de aplicación con base en los números de secuencia de llamadas comprendidos por los registros de datos del al menos un archivo de registro; y - almacenar datos comprendidos por los registros de datos en el nodo y/o enlace respectivo;
• agregar una pluralidad de árboles (510; 520; 610; 620) de llamadas de aplicación para la misma tarea para generar un árbol (710; 720) de llamadas de aplicación promedio, en donde el árbol (710; 720) de llamadas de aplicación promedio comprende datos estadísticos calculados con base en los datos almacenados en los árboles (510; 520; 610; 620) de llamadas de aplicación;
• comparar los valores estadísticos del árbol (710; 720) de llamadas de aplicación promedio generado con los valores estadísticos de un árbol (710; 720) de llamadas de aplicación promedio generado previamente de la misma tarea; y
• en respuesta a si la diferencia de un valor estadístico del árbol (710; 720) de llamadas de aplicación promedio generado al valor estadístico correspondiente del árbol (710; 720) de llamadas de aplicación promedio generado previamente excede un umbral, detectar un problema de rendimiento; y
• en respuesta a la detección del problema de rendimiento, generar un mensaje de salida, indicando el mensaje una o más modificaciones del entorno de servidor distribuido asociado con el problema de rendimiento.
13. El sistema de procesamiento de datos de la reivindicación 12, en donde el módulo (114) de análisis está configurado además para realizar el método según cualquiera de las reivindicaciones 2 a 11.
14. Un programa de ordenador que comprende instrucciones que, cuando el programa es ejecutado por un ordenador, hacen que el ordenador lleve a cabo el método de cualquiera de las reivindicaciones 1 a 11.
ES20200434T 2019-10-17 2020-10-07 Monitorización de un entorno de servidor de aplicaciones distribuidas Active ES2947170T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1911591A FR3102259B1 (fr) 2019-10-17 2019-10-17 Surveillance d’un environnement de serveur d’applications distribué

Publications (1)

Publication Number Publication Date
ES2947170T3 true ES2947170T3 (es) 2023-08-02

Family

ID=69024409

Family Applications (1)

Application Number Title Priority Date Filing Date
ES20200434T Active ES2947170T3 (es) 2019-10-17 2020-10-07 Monitorización de un entorno de servidor de aplicaciones distribuidas

Country Status (5)

Country Link
US (1) US11159417B2 (es)
EP (1) EP3809269B1 (es)
ES (1) ES2947170T3 (es)
FI (1) FI3809269T3 (es)
FR (1) FR3102259B1 (es)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11757707B2 (en) * 2021-07-28 2023-09-12 Cisco Technology, Inc. Network assurance for 5G enterprise networks
CN114580325B (zh) * 2021-12-31 2023-07-25 上海盈方微电子有限公司 芯片RTL验证阶段Tarmac日志分析方法
CN114610689B (zh) * 2022-03-17 2024-04-30 焦点科技股份有限公司 一种分布式环境中请求日志的记录和分析方法
CN118055004A (zh) * 2022-08-03 2024-05-17 浙江网商银行股份有限公司 目标节点确定方法以及装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2327783A (en) * 1997-07-26 1999-02-03 Ibm Remotely assessing which of the software modules installed in a server are active
US6751789B1 (en) * 1997-12-12 2004-06-15 International Business Machines Corporation Method and system for periodic trace sampling for real-time generation of segments of call stack trees augmented with call stack position determination
US8676273B1 (en) * 2007-08-24 2014-03-18 Iwao Fujisaki Communication device
US8312660B1 (en) * 2008-05-09 2012-11-20 Iwao Fujisaki Firearm
EP2469411B1 (en) * 2010-12-27 2013-05-29 Amplidata NV A distributed object storage system
US9684524B1 (en) * 2013-12-20 2017-06-20 Amazon Technologies, Inc. Service-oriented system optimization using trace data
US9930098B2 (en) * 2015-01-23 2018-03-27 Hughes Network Systems, Llc Method and system for ISP network performance monitoring and fault detection
US10210255B2 (en) * 2015-12-31 2019-02-19 Fractal Industries, Inc. Distributed system for large volume deep web data extraction
US10313404B2 (en) * 2016-06-30 2019-06-04 Microsoft Technology Licensing, Llc Sharing user context and preferences
WO2018028777A1 (en) * 2016-08-10 2018-02-15 Rwe International Se Peer-to-peer communication system and peer-to-peer processing apparatus
US11580107B2 (en) * 2016-09-26 2023-02-14 Splunk Inc. Bucket data distribution for exporting data to worker nodes
CN106776257B (zh) * 2016-12-26 2020-02-07 中国建设银行股份有限公司 一种用于系统性能测试的响应时间统计方法及装置
US11345040B2 (en) * 2017-07-25 2022-05-31 Mbl Limited Systems and methods for operating a robotic system and executing robotic interactions
CN109947627A (zh) * 2019-03-29 2019-06-28 神州数码信息系统有限公司 一种基于资源调用链的多层云应用监视诊断方法

Also Published As

Publication number Publication date
EP3809269B1 (en) 2023-05-10
FR3102259A1 (fr) 2021-04-23
US20210119899A1 (en) 2021-04-22
US11159417B2 (en) 2021-10-26
FR3102259B1 (fr) 2023-01-20
EP3809269A1 (en) 2021-04-21
FI3809269T3 (fi) 2023-06-21

Similar Documents

Publication Publication Date Title
ES2947170T3 (es) Monitorización de un entorno de servidor de aplicaciones distribuidas
US10127146B2 (en) Systems and methods to identify and classify performance bottlenecks in cloud based applications
US10997211B2 (en) Systems and methods for database zone sharding and API integration
US10977277B2 (en) Systems and methods for database zone sharding and API integration
US9575828B2 (en) Correctly identifying potential anomalies in a distributed storage system
CN112073269B (zh) 区块链网络测试方法、装置、服务器及存储介质
US10360087B2 (en) Web API recommendations based on usage in cloud-provided runtimes
US20170010930A1 (en) Interactive mechanism to view logs and metrics upon an anomaly in a distributed storage system
JP2023525393A (ja) ゲートウェイリソースを更新する方法および装置、ならびにiot制御プラットフォーム
US9684524B1 (en) Service-oriented system optimization using trace data
CN113987074A (zh) 分布式服务全链路监控方法、装置、电子设备及存储介质
US9710122B1 (en) Customer support interface
AU2017258970A1 (en) Testing and improving performance of mobile application portfolios
US8631280B2 (en) Method of measuring and diagnosing misbehaviors of software components and resources
CN111694749A (zh) 接口自动测试方法、装置、计算机设备及可读存储介质
US9529568B1 (en) Systems and methods for low interference logging and diagnostics
CN112035350B (zh) 针对区块链系统的测试方法、装置及计算机设备
CN114153910A (zh) 数据采集方法、装置及电子装置、计算机程序产品
US20120209584A1 (en) Advanced Metering Infrastructure Simulation
US20120166590A1 (en) Reading and Writing During Cluster Growth Phase
CN113407374A (zh) 故障处理方法、装置、故障处理设备及存储介质
US11176506B2 (en) Blockchain expense and resource utilization optimization
US20180287914A1 (en) System and method for management of services in a cloud environment
US20180219752A1 (en) Graph search in structured query language style query
CN109144669A (zh) 一种mcs系统下nas虚拟机系统的压力测试方法与系统