KR100461029B1 - Method and system for recording client requests and server responses to use later for performance test or performance analysis of server in client-server computing environment. - Google Patents

Method and system for recording client requests and server responses to use later for performance test or performance analysis of server in client-server computing environment. Download PDF

Info

Publication number
KR100461029B1
KR100461029B1 KR10-2004-0042736A KR20040042736A KR100461029B1 KR 100461029 B1 KR100461029 B1 KR 100461029B1 KR 20040042736 A KR20040042736 A KR 20040042736A KR 100461029 B1 KR100461029 B1 KR 100461029B1
Authority
KR
South Korea
Prior art keywords
server
client
request
response
information
Prior art date
Application number
KR10-2004-0042736A
Other languages
Korean (ko)
Other versions
KR20040055771A (en
Inventor
박기복
Original Assignee
박기복
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 박기복 filed Critical 박기복
Priority to KR10-2004-0042736A priority Critical patent/KR100461029B1/en
Publication of KR20040055771A publication Critical patent/KR20040055771A/en
Application granted granted Critical
Publication of KR100461029B1 publication Critical patent/KR100461029B1/en

Links

Classifications

    • 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/04Network management architectures or arrangements
    • H04L41/046Network management architectures or arrangements comprising network management agents or mobile agents 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/02Standardisation; Integration
    • H04L41/024Standardisation; Integration using relational databases for representation of network management data, e.g. managing via structured query language [SQL]
    • 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/14Network analysis or design

Abstract

본 발명은 클라이언트-서버 컴퓨팅 환경에서 클라이언트의 개별 요청에 대한 성능 측정이나 서버에 대한 대단위 부하테스트에서 반복적으로 재사용할 수 있도록 클라이언트의 요청과 서버의 응답에 대한 정보들을 수집, 관리하는 시스템 및 방법에 관한 것으로, 더욱 상세하게는 요청과 응답 패턴의 통신 프로토콜을 사용하는 클라이언트-서버 컴퓨팅 환경에서, 클라이언트와 서버 사이에 통신을 연결하는 에이전트(agent)를 실행 시켜서, 클라이언트의 요청을 에이전트가 받아서 서버로 전달하고 또한 서버의 응답을 다시 에이전트가 받아서 클라이언트에게 전달하면서, 클라이언트의 요청과 서버의 응답에 대한 정보를 저장하여, 저장된 정보를 이용하여 이후에 통신 상황을 동일하게 재연하는데 사용하게 함으로써, 각 요청의 성능과 서버의 성능을 측정, 분석하는데 사용될 수 있도록, 클라이언트의 요청과 서버의 응답에 대한 정보를 수집, 관리하는 시스템 및 방법에 관한 것이다. 특히, 특정 통신 프로토콜에 의존하지 않고, 요청-응답 패턴의 통신 프로토콜을 사용하는 클라이언트와 서버 컴퓨팅 환경에서, 클라이언트의 요청과 서버의 응답에 대한 정보를 수집할 수 있다는 것에 특징이 있다. 이를 위하여 본 발명은, 에이전트와 리파지터리(Repository)와 사용자 인터페이스를 포함하는 것을 특징으로 한다. 상세하게는, 에이전트는 요청과 응답 패턴을 사용하는 통신 프로토콜이 고정된 길이를 갖는 데이터 해더(header)부분과 데이터 해더에서 데이터 바디(body)의 길이가 정해지는 가변길이의 데이터 바디 부분을 갖는 것을 특징으로 하는 프로토콜을 지원하는 애니핸들러(Any Handler)부를 포함하며, 또한 애니핸들러부가 지원하지 않는 경우, 즉 고정된 길이의 데이터 해더부분을 갖지 않는 임의의 요청/응답 패턴의 프로토콜을 지원하는 더미핸들러(Dummy Handler) 부를 포함하며, 또한, 요청과 응답에 관한 정보를 수집하여 리파지터리에 전달하는 로그관리부를 포함하며, 또한, 애니핸들러부가 지원하는 프로토콜의 경우, 데이터 해더내의 정보와 프로토콜의 특성을 설정하는 34자리 콜론(colon) 분리 숫자열인 매직넘버의 관리를 담당하는 매직넘버처리부를 포함하고, 리파지터리는 각 요청과 응답에 대한 정보를 저장, 관리하는 데이터베이스를 포함하고, 또한, 에이전트와 매직넘버 등의 관리를 위한 사용자 인터페이스를 포함하는 것에 특징이 있다.The present invention relates to a system and method for collecting and managing information about a client's request and a server's response so that it can be repeatedly reused in performance measurement of individual requests of the client in a client-server computing environment or in a large load test on the server. More specifically, in a client-server computing environment using a communication protocol of request and response patterns, by executing an agent that connects the communication between the client and the server, the agent's request is received by the agent Each request by storing information about the client's request and the server's response, using the stored information to later reproduce the communication status, while the agent receives and forwards the server's response back to the client. Performance and server performance side The present invention relates to a system and method for collecting and managing information about a client's request and a server's response so that the information can be used for analysis. In particular, in a client and server computing environment using a communication protocol of a request-response pattern without depending on a specific communication protocol, it is possible to collect information about the client's request and the server's response. To this end, the present invention is characterized by including an agent, a repository, and a user interface. Specifically, the agent is responsible for ensuring that a communication protocol using request and response patterns has a data header portion of fixed length and a variable length data body portion in which the length of the data body in the data header is determined. A dummy handler that includes an Any Handler part that supports the protocol, and also supports a protocol of any request / response pattern when the Any handler part does not support, that is, does not have a fixed length data header part. (Dummy Handler) section, and also includes a log management unit for collecting the information about the request and response to the repository, and in the case of the protocol supported by the AnyHandler unit, the information in the data header and the characteristics of the protocol Includes a magic number processor that manages the magic number, which is a 34-digit colon-separated number string that sets , Repository is characterized in that a user interface for management, such as store information for each request and response, and including a management database, In addition, the agent and the magic number.

Description

클라이언트-서버 컴퓨팅 환경에서 통신의 재연, 서버 성능의 측정, 분석 등에 사용하기 위한 클라이언트의 요청 및 서버의 응답에 대한 정보를 수집, 관리하기 위한 시스템 및 방법 {Method and system for recording client requests and server responses to use later for performance test or performance analysis of server in client-server computing environment.}System and method for collecting and managing information about client request and server response for replay of communication, measurement and analysis of server performance in client-server computing environment {Method and system for recording client requests and server responses to use later for performance test or performance analysis of server in client-server computing environment.}

본 발명은 클라이언트-서버 컴퓨팅 환경에서 클라이언트의 개별 요청에 대한 성능 측정이나 서버에 대한 대단위 부하테스트에서 반복적으로 재사용할 수 있도록 클라이언트의 요청과 서버의 응답에 대한 정보들을 수집, 관리하는 시스템 및 방법에관한 것으로, 더욱 상세하게는 요청과 응답 패턴의 통신 프로토콜을 사용하는 클라이언트-서버 컴퓨팅 환경에서, 클라이언트와 서버사이에 통신을 연결하는 에이전트(agent)를 실행 시켜서, 클라이언트의 요청을 에이전트가 받아서 서버로 전달하고 또한 서버의 응답을 다시 에이전트가 받아서 클라이언트에게 전달하면서, 클라이언트의 요청과 서버의 응답에 대한 정보를 저장하여, 저장된 정보를 이용하여 이후에 통신 상황을 동일하게 재연하는데 사용함으로써, 각 요청의 성능과 서버의 성능을 측정, 분석하는데 사용될 수 있도록, 클라이언트의 요청과 서버의 응답에 대한 정보를 수집, 관리하는 시스템 및 방법에 관한 것이다. 특히, 특정 통신 프로토콜에 의존하지 않고, 요청-응답 패턴의 통신 프로토콜을 사용하는 클라이언트와 서버 컴퓨팅 환경에서, 클라이언트의 요청과 서버의 응답에 대한 정보를 수집할 수 있다는 것에 특징이 있다.The present invention relates to a system and method for collecting and managing information about a client's request and a server's response so that it can be repeatedly reused in performance measurement of individual requests of the client in a client-server computing environment or in a large load test on the server. More specifically, in a client-server computing environment using a communication protocol of request and response patterns, by executing an agent that connects the communication between the client and the server, the agent receives the client's request to the server Store the information about the client's request and the server's response, using the stored information to later reproduce the communication status, while the agent receives and forwards the server's response back to the client. Measure performance and server performance, min The present invention relates to a system and method for collecting and managing information about client requests and server responses. In particular, in a client and server computing environment using a communication protocol of a request-response pattern without depending on a specific communication protocol, it is possible to collect information about the client's request and the server's response.

현재 서버 어플리케이션의 성능측정 이나 통신상황의 재연 등을 위하여 클라이언트의 요청과 서버의 응답에 대한 정보를 수집하는 방법 중의 하나는, 서버가 사용하는 통신 프로토콜을 지원하고 또한 서버에게 요청을 보내고, 응답을 전달 받을 때마다 요청과 응답에 대한 정보를 저장하는 기능을 가지고 있는 별도의 클라이언트 어플리케이션을 제작하여 사용하는 것이다. 데이터베이스를 사용하는 어플리케이션을 예를 들어 설명하면, 데이터베이스의 성능측정을 위한 어플리케이션이 요청하는 SQL에 대한 정보의 수집은 SQL클라이언트 역할을 하는 상기의 어플리케이션의 기능을 가지고 있으며, 또한 데이터베이스 서버에게 SQL요청을 전달하고 응답을 받을 때마다 각 요청과 응답에 대한 정보를 저장하는 기능을 가지고 있는 클라이언트어플리케이션을 제작해야만 가능해진다. 이러한 방식의 경우에는 특정 서버에 대한 클라이언트의 요청을 수집하기 위해서는, 해당 서버가 사용하는 통신 프로토콜을 지원하고, 각 요청과 응답에 대한 저장기능을 지원하는 클라이언트를 별도로 제작해야만 가능하다. 한편, 서버 어플리케이션의 성능측정 이나 통신상황의 재연 등을 위하여 클라이언트의 요청과 서버의 응답에 대한 정보를 수집하는 방법 중의 또 다른 방법은, 클라이언트의 요청과 서버의 응답에 대한 정보를 서버의 로그기능을 이용하여 저장하고, 저장된 클라이언트의 요청과 응답에 대한 정보를 이용하여 반복적으로 재연하여 각 요청의 개별 성능 또는 서버 자체의 성능을 측정하는 방법이 있다. 이러한 방법이 가능 하려면, 해당 서버는 클라이언트의 요청과 응답에 대한 저장 기능을 제공해야 하고, 상기 서버는 또한 클라이언트의 요청을 저장할 때, 통신 상황의 재연에 필요한 최소한의 정보를 모두 저장하는 기능을 제공해야 한다. 데이터베이스 서버의 경우를 예를 들어 설명하면, 데이터베이스 서버의 성능측정을 위한 클라이언트의 요청(SQL)에 대한 정보를 상기 데이터베이스가 저장하는 기능을 제공해야 하고, 또한 저장된 정보는 클라이언트의 요청(SQL)을 재연하는데 필요한 최소한의 정보를 모두 가지고 있어야 한다. 즉, 다양한 서버에 대한 부하테스트 및 성능테스트를 반복적으로 수행하기 위해서 필요한 클라이언트의 요청에 대한 정보를 수집하는 방법은, 해당서버의 통신 프로토콜을 지원하고, 또한 각 요청과 응답에 대한 정보를 저장하는 기능을 제공하는 클라이언트를 제작하여 사용하는 방법과 서버의 기능 중에서, 클라이언트의 요청과 응답에 대한 정보를 저장하는 로그기능을 사용하여 클라이언트의 요청을 수집하는 방법이 있다. 첫번째 방법은 사용하는프로토콜 마다 별도의 클라이언트 어플리케이션을 제작해야 하는 어려움이 있고, 두 번째 방법은 해당 서버가 클라이언트 어플리케이션이 통신상황을 재연할 때 필요한 최소한의 정보를 모두 저장하는 기능을 반드시 제공 해야 하는 단점이 존재한다.One method of gathering information about the client's request and the server's response to measure the performance of the current server application or to reproduce the communication situation is to support the communication protocol used by the server and send a request to the server. It is to create and use a separate client application that has a function to store information about requests and responses each time it is received. As an example of an application using a database, the collection of information about SQL requested by an application for measuring the performance of the database has the function of the above application serving as an SQL client, and also sends an SQL request to the database server. This can only be achieved by creating a client application that has the ability to store information about each request and response each time it passes and receives a response. In this case, in order to collect a client's request for a specific server, it is possible to create a client that supports the communication protocol used by the server and supports the storage function for each request and response. Meanwhile, another method of collecting information about a client request and a server response for performance measurement of a server application or replaying a communication situation, and the like, may log information about a client request and a server response. There is a method of measuring the individual performance of each request or the performance of the server itself by repeatedly storing the information using the stored information and repeatedly reproducing the information using the stored client's request and response. To be able to do this, the server must provide storage for the client's request and response, and the server also provides the ability to store all of the minimal information needed to recreate the communication situation when storing the client's request. Should be. In the case of a database server, for example, the database should provide a function for storing information about a client's request (SQL) for measuring the performance of the database server. You should have all the minimum information you need to replay. That is, a method of collecting information about a client's request necessary to repeatedly perform load tests and performance tests on various servers supports a communication protocol of the corresponding server and also stores information on each request and response. Among the methods of producing and using a client providing a function and a function of a server, there is a method of collecting a client's request by using a log function that stores information about the client's request and response. The first method has the difficulty of creating a separate client application for each protocol used, and the second method requires that the server provide the capability to store all the minimum information necessary when the client application reproduces the communication situation. This exists.

본 발명의 목적은 이와 같은 종래 기술의 문제점을 해결하기 위한 것으로, 클라이언트와 서버가 데이터를 송수신할 때, 클라이언트의 요청을 받아서 서버로 전달하고, 서버의 응답을 받아서 클라이언트에게 전달하는 에이전트를 클라이언트와 서버 사이에 실행시켜서 사용하는 통신 프로토콜이 요청-응답 패턴의 방식을 취하고, 고정된 길이의 데이터 해더(header)내의 정보를 이용하여 전체 전달 데이터 패킷의 특성을 결정하는 특징을 가지고 있는 경우, 각 요청과 응답에 대한 정보를 범용적으로 수집할 수 있는 시스템 및 방법을 제공하고자 한다. 더욱 자세하게는, 클라이언트와 서버가 사용하는 통신 프로토콜이 고정된 길이를 갖는 데이터 해더(header)부분과 데이터 해더에서 데이터 바디(body)의 길이가 정해지는 가변길이의 데이터 바디 부분을 갖는 것을 특징으로 하는 프로토콜인 경우, 이러한 프로토콜을 지원하는 애니핸들러(Any Handler)부를 이용하고, 통신 프로토콜의 특징과 데이터 해더내의 정보를 매직넘버라는 34자리 콜론(colon)분리 숫자열을 이용하여 사용하는 프로토콜에 따라서 가변적으로 설정할 수 있게 하고, 이러한 매직넘버를 처리하는 매직넘버처리부를 이용하여 클라이언트의 요청 및 응답에 대한 정보를 수집하게 하고,또한 사용자 인터페이스를 이용하여 매직넘버를 설정할 수 있게 하는 시스템 및 방법을 제공하고자 한다.An object of the present invention is to solve the problems of the prior art, and when the client and the server send and receive data, the client receives the client's request and forwards to the server, and receives the server's response and delivers the agent to the client and the client If each communication protocol executed and used between servers takes the form of a request-response pattern and uses the information in a fixed length data header to characterize the entire forwarded data packet, each request It is intended to provide a system and method that can collect information on responses and responses universally. More specifically, the communication protocol used by the client and server has a data header portion having a fixed length and a variable length data body portion in which the length of the data body is determined in the data header. In the case of a protocol, it is variable according to a protocol using an Any Handler unit that supports such a protocol, and uses the character of the communication protocol and the information in the data header using a 34-digit colon separated string called a magic number. It is possible to provide a system and method for enabling the user to set the number, using the magic number processing unit for processing the magic number to collect information about the request and response of the client, and also to set the magic number using the user interface do.

또한, 본 발명의 다른 목적은 클라이언트와 서버가 데이터를 송수신할 때, 클라이언트의 요청을 받아서 서버로 전달하고, 서버의 응답을 받아서 클라이언트에게 전달하는 에이전트를 클라이언트와 서버 사이에 실행시키고, 또한 클라이언트의 요청을 서버로 전달하는 쓰래드(thread)1과 서버의 응답을 클라이언트로 전달하는 쓰레드2를 동시에 실행시켜서, 클라이언트와 서버가 요청-응답 패턴의 임의의 프로토콜을 사용하는 경우, 각 요청과 응답에 대한 정보를 분석해서 수집, 저장하는 기능을 갖는 더미핸들러(Dummy Handler)부를 이용하여 통신 프로토콜의 종류에 관계없이 클라이언트의 요청 및 응답에 대한 정보를 수집하게 하는 시스템 및 방법을 제공하고자 한다.In addition, another object of the present invention, when the client and the server transmits and receives data, receives the client's request to the server, and receives the server's response to run the agent between the client and the server, and also By simultaneously executing thread 1, which forwards the request to the server, and thread 2, which forwards the server's response to the client, if the client and server use any protocol in the request-response pattern, The present invention provides a system and method for collecting information on a request and response of a client regardless of a communication protocol by using a dummy handler having a function of analyzing and collecting and storing information.

상기의 목적들을 달성하기 위하여 본 발명은 에이전트와 리파지터리(Repository)와 사용자 인터페이스를 포함하는 것을 특징으로 한다. 상세하게는, 에이전트는 요청과 응답 패턴을 사용하는 통신 프로토콜이 고정된 길이를 갖는 데이터 해더(header)부분과 데이터 해더에서 데이터 바디(body)의 길이가 정해지는 가변길이의 데이터 바디 부분을 갖는 것을 특징으로 하는 프로토콜을 지원하는 애니핸들러(Any Handler)부를 포함하며, 또한 애니핸들러부가 지원하지 않는 경우, 즉 고정된 길이의 데이터 해더부분을 갖지 않는 임의의 요청/응답 패턴의 프로토콜을 지원하는 더미핸들러(Dummy Handler) 부를 포함하며, 또한, 요청과 응답에 관한 정보를 수집하여 리파지터리에 전달하는 로그관리부를 포함하며, 또한, 애니핸들러부가 지원하는 프로토콜의 경우, 데이터 해더내의 정보와 프로토콜의 특성을 설정하는 34자리 콜론(colon) 분리 숫자열인 매직넘버의 관리를 담당하는 매직넘버처리부를 포함하고, 리파지터리는 각 요청과 응답에 대한 정보를 저장, 관리하는 데이터베이스를 포함하고, 또한, 에이전트와 매직넘버 등의 관리를 위한 사용자 인터페이스를 포함하는 것에 특징이 있다.In order to achieve the above objects, the present invention is characterized by including an agent, a repository, and a user interface. Specifically, the agent is responsible for ensuring that a communication protocol using request and response patterns has a data header portion of fixed length and a variable length data body portion in which the length of the data body in the data header is determined. A dummy handler that includes an Any Handler part that supports the protocol, and also supports a protocol of any request / response pattern when the Any handler part does not support, that is, does not have a fixed length data header part. (Dummy Handler) section, and also includes a log management unit for collecting the information about the request and response to the repository, and in the case of the protocol supported by the AnyHandler unit, the information in the data header and the characteristics of the protocol Includes a magic number processor that manages the magic number, which is a 34-digit colon-separated number string that sets , Repository is characterized in that a user interface for management, such as store information for each request and response, and including a management database, In addition, the agent and the magic number.

도1은 본 발명에 따른 에이전트, 리파지터리, 사용자 인터페이스를 사용하여 클라이언트의 요청과 서버의 응답에 대한 정보를 수집, 관리하는 시스템의 개괄적 구성을 도시한 블록도이다. 도2는 본 발명의 바람직한 일 실시 예에 따른 애니핸들러부에서 클라이언트의 요청과 서버의 응답에 대한 처리과정을 나타내는 흐름도이다. 도3은 본 발명의 바람직한 다른 실시 예에 따른 더미핸들러부에서 클라이언트의 요청과 서버의 응답에 대한 처리과정을 나타내는 흐름도이다. 도4는 본 발명의 바람직한 또 다른 실시 예에 따른 매직넘버처리부에서 사용하는 매직넘버의 포멧을 나타내는 블록도 이다. 도5는 본 발명의 바람직한 또 다른 실시 예에 따른 매직넘버처리부에서 사용하는 매직넘버의 각 자리의 숫자의 내용을 나타내는 블록도 이다. 도6은 본 발명의 바람직한 또 다른 실시 예에 따른 애니핸들러부에서 처리할 수 있는 프로토콜에서 사용하는 데이터 패킷의 구조를 나타내는 블록도 이다.1 is a block diagram illustrating a general configuration of a system for collecting and managing information on a request of a client and a response of a server using an agent, a repository, and a user interface according to the present invention. 2 is a flowchart illustrating a process of processing a request of a client and a response of a server in the any handler unit according to an exemplary embodiment of the present invention. 3 is a flowchart illustrating a process of processing a request of a client and a response of a server in a dummy handler according to another exemplary embodiment of the present invention. 4 is a block diagram showing a format of a magic number used in a magic number processing unit according to another preferred embodiment of the present invention. 5 is a block diagram showing the contents of the number of each digit of the magic number used in the magic number processing unit according to another preferred embodiment of the present invention. FIG. 6 is a block diagram illustrating a structure of a data packet used in a protocol that can be processed by the any handler unit according to another exemplary embodiment of the present invention.

< 도면의 주요 부분에 대한 부호의 설명 ><Description of Symbols for Main Parts of Drawings>

10. 클라이언트 어플리케이션10. Client Application

11. 애니핸들러부를 사용하여 서버1에 접속하는 클라이언트111.Client1 accessing Server1 using AnyHandler

12. 더미핸들러부를 사용하는 서버2에 접속하는 클라이언트212. Client 2 connecting to server 2 using dummy handler part

20. 에이전트20. Agent

21. 애니핸들러부, 22. 더미핸들러부, 23. 로그관리부, 24. 매직넘버처리부21. Any handler part, 22. Dummy handler part, 23. Log management part, 24. Magic number processing part

30. 서버 어플리케이션30. Server Application

31. 애니핸들러부를 사용하여 클라이언트1과 접속되는 서버131. Server 1 connected to Client 1 using AnyHandler

32. 더미핸들러부를 사용하여 클라이언트2와 접속되는 서버232. Server 2 connected to Client 2 using dummy handler part

40. 리파지터리40. Repository

50. 사용자 인터페이스50. User Interface

100. 데이터 패킷100. Data Packet

110. 데이터 패킷 해더, 120. 데이터 패킷 바디110. Data packet header, 120. Data packet body

200. 매직넘버 포멧200. Magic Number Format

본 발명의 실시 예는 다수개가 존재할 수 있으며, 이하에서 첨부한 도면을 참조하여 바람직한 실시 예에 대하여 상세히 설명하기로 한다. 이 기술 분야의 숙련자라면 이 실시 예를 통해 본 발명의 목적, 특징 및 이점들을 잘 이해할 수 있을 것이다. 도1은 본 발명의 바람직한 실시예에 따른 에이전트, 리파지터리, 사용자 인터페이스의 시스템을 나타내는 블록도이고, 도2는 본 발명의 바람직한 실시 예에 따라 애니핸들러부에서 클라이언트의 요청과 서버의 응답에 대한 처리과정을 나타내는 흐름도이고, 도3은 본 발명의 바람직한 실시 예에 따라 더미핸들러부에서 클라이언트의 요청과 서버의 응답에 대한 처리과정을 나타내는 흐름도이고, 도4는 본 발명의 바람직한 실시 예에 따라 매직넘버처리부에서 사용하는 34자리 콜론(colon) 분리 숫자열인 매직넘버의 포맷을 나타내는 블록도 이다. 도5는 상기 매직넘버의 각 자리 숫자의 내용을 나타내는 블록도 이다. 도6는 본 발명의 바람직한 실시 예에 따라 애니핸들러부에서 사용하는 매직넘버로 특성을 표현할 수 있는 데이터 패킷의 블록도 이다. 도1을 참조하면, 클라이언트-서버 컴퓨팅 환경에서 통신의재연, 서버 성능의 측정, 분석 등에 사용하기 위한 클라이언트의 요청 및 서버의 응답에 대한 정보를 수집, 관리하기 위한 시스템은 에이전트(20), 리파지터리(40), 사용자 인터페이스(50)로 구성되며, 또한 에이전트(20)는 애니핸들러부(21), 더미핸들러부(22), 로그관리부(23), 매직넘버처리부(24)로 구성되고, 리파지터리(40)는 표준 관계형 데이터베이스로 구성되며, 사용자 인터페이스(50)는 표준 웹브라우저로 구성된다. 에이전트(20)의 두 개의 핸들러부(21,22)는 각각 특정한 포트(port)에서 해당 클라이언트(11,12)의 접속을 기다리고 클라이언트(11,12)의 접속이 이루어지면, 클라이언트(11,12)로부터 데이터를 전달 받아서, 미리 지정된 해당 서버(31,32)로 각 데이터를 전달하고, 또한 해당 서버(31,32)로부터 응답을 받아서 다시 해당 클라이언트(11,12)에게 각각 전달한다. 이때, 각 요청과 응답에 대한 정보를 로그관리부(23)를 이용하여 리파지터리(40)에 전달하여, 저장하게 함으로써, 이후에 통신상황을 재연할 때, 재사용이 가능하도록 한다. 특히 애니핸들러부(21)는 요청과 응답의 통신 방법에 대한 정보를 매직넘버(200)와 매직넘버처리부(24)를 이용하여 처리함으로써, 통신 데이터 패킷(100)을 사용하는, 요청과 응답 패턴을 사용하는 통신 프로토콜에 대하여 더미핸들러부(22)보다 더욱 상세한 정보를 수집할 수 있게 한다. 상기와 같은 구성을 갖는 요청-응답 정보 수집, 관리 시스템에서 애니핸들러부(21)와 더미핸들러부(22)의 동작과정을 각각 나누어 상세히 설명한다.There may be a plurality of embodiments of the present invention, and a preferred embodiment will be described in detail below with reference to the accompanying drawings. Those skilled in the art will be able to better understand the objects, features and advantages of the present invention through this embodiment. FIG. 1 is a block diagram illustrating a system of an agent, a repository, and a user interface according to a preferred embodiment of the present invention. FIG. 2 is a diagram illustrating a client's request and a server's response in an animation handler according to a preferred embodiment of the present invention. 3 is a flowchart illustrating a process of processing a request of a client and a response of a server in a dummy handler according to an exemplary embodiment of the present invention, and FIG. This is a block diagram showing the format of the magic number, a 34-digit colon-separated sequence of numbers used by the magic number processor. 5 is a block diagram showing the contents of each digit of the magic number. FIG. 6 is a block diagram of a data packet capable of expressing characteristics by a magic number used in an any handler according to an exemplary embodiment of the present invention. Referring to FIG. 1, a system for collecting and managing information about a client's request and a server's response for use in reproducing communication, measuring server performance, analyzing, etc. in a client-server computing environment includes an agent 20, a manager, and a server. It consists of a repository 40, a user interface 50, and also the agent 20 is composed of an animation handler unit 21, a dummy handler unit 22, a log management unit 23, a magic number processing unit 24 The repository 40 consists of a standard relational database, and the user interface 50 consists of a standard web browser. The two handlers 21 and 22 of the agent 20 wait for the connection of the client 11 and 12 at a specific port, and the client 11 and 12 are connected. Receives data from the server, and transmits each data to the corresponding server (31,32) specified in advance, and also receives the response from the server (31,32) and delivers back to the client (11, 12), respectively. At this time, by transmitting the information about each request and response to the repository 40 using the log management unit 23, and stores it, so that it can be reused when reproducing the communication situation later. In particular, the animation handler unit 21 processes the information on the communication method between the request and the response by using the magic number 200 and the magic number processing unit 24 to use the communication data packet 100. It is possible to collect more detailed information than the dummy handler unit 22 for the communication protocol using a. In the request-response information collection and management system having the above configuration, the operation process of the animation handler unit 21 and the dummy handler unit 22 will be described in detail.

<애니핸들러(Any Handler)부><Any Handler>

애니핸들러부(21)의 동작과정을 도1, 도2, 도4, 도5, 도6를 참조하여 상세히 설명하면 아래와 같다. 애니핸들러부(21)는 에이전트(20) 프로세스가 시작 되면, 사용자인터페이스(50)를 이용해서 설정한 포트(port)에 소켓(socket)을 이용하여 리스닝(listening)을 하는 쓰래드0(thread0)를 시작한다(S201). 클라이언트1(11)이 서버1(31)로 접속하기 위하여 에이전트(20)의 애니핸들러부(21)의 리스닝(listening) 포트로 접속하게 되면(S202), 애니핸들러부(21)는 클라이언트1(11)과 서버1(31)의 통신을 전담할 새로운 쓰래드1(thread1)을 생성하고(S203), 쓰래드0은 다시 다른 클라이언트의 새로운 접속을 리스닝하면서 대기한다(S204,S201). 한편 생성된 쓰래드1은 매직넘버처리부(24)를 이용하여, 통신 프로토콜에 대한 정보를 분석하여 요청과 응답 데이터 패킷(100)을 전달할 준비를 한다(S205). 또한, 쓰래드1은 미리 설정된 서버1(31)의 IP주소와 포트번호를 이용하여 서버1(31)과 접속을 하고(S206), 매직넘버1(mn1, 이하에서 매직넘버k를 mnk로 표기한다)을 참조하여 서버1(31)이 먼저 데이터 패킷(100)을 보내는 경우(mn1=0)에는 서버1(31)로부터 패킷(100)을 읽어서 클라이언트1(11)에게 전달한다(S208,S209). 클라이언트1(11)이 먼저 데이터를 보내는 경우(mn1=1)에는 클라이언트1(11)로 부터 데이터 패킷(100)을 읽어서 서버로 전달하기 시작한다(S210). 이때, 먼저 데이터 패킷(100)의 해더(110)길이(mn2) 만큼 읽는다. 읽은 해더(110) 데이터의 바이트 오프셋(byte offset)이 mn3부터 mn4까지를 mn5에 따라서 숫자로 변환하여 전체 데이터 패킷(100)의 길이를 구한다. 이렇게 구한 전체 데이터 패킷의 길이에서 mn6을 참조하여 데이터 바디(120)의 길이를 구하여 클라이언트1(11)이 보낸 데이터 패킷(100)의 해더(110)와 바디(120)를 모두 읽어서 서버1(31)로 전달한다. 클라이언트1(11)로부터 요청된 데이터 패킷이 모두 전달되었는지의 판단은 mn11, mn12, mn13, mn14, mn15의 값에 따라서 결정된다. mn11의 값에 따라서, 데이터 패킷(100)의 해더(110) 또는 바디(120)에서 요청 데이터 패킷 계속(continuation) 조건 값의 위치를 찾아서 값을 비교하여 결정한다(S211). 클라이언트1(11)이 보낸 요청 데이터 패킷(100)들이 모두 서버1(31)에게 전달된 것으로 판단된 경우에, 서버1(31)로부터 응답데이터 패킷(100)을 읽어서 클라이언트1(11)에게 전달하기 시작한다(S212). 이 때, 요청데이터 패킷(100)을 클라이언트1(11)로부터 읽어서 서버1(31)로 전달한 경우와 유사한 방법을 사용하여 전달 하는데, 이때 참조하는 매직넘버는 mn20, mn21, mn22, mn23, mn24이고, 요청의 경우와 동일한 방법으로 매직넘버들을 분석하여 마지막 응답 패킷(100)을 판단한다(S213). 이러한 방법으로 클라이언트1(11)의 요청데이터와 서버1(31)의 응답데이터를 모두 중계한 후에, 애니핸들러부(21)는 로그관리부(23)를 이용하여 처리한 1회의 요청과 이에대한 1회의 응답, 즉 1회의 세션(session)에대한 요청-응답 정보를 저장하게 한다(S214). 이때 저장하는 요청-응답에 관한 정보 중 요청 명령에 관한 정보는 mn7, mn8, mn9, mn10의 매직넘버들을 분석하고, 요청 리소스(requested resource, URL, SQL등)에 대한 정보는 mn25부터 mn34까지의 매직넘버들을 분석하고, 응답 코드에 관한 정보는 mn16, mn17, mn18, mn19를 분석하여 저장한다. 여기서 클라이언트1(11)이 요청하는 요청 리소스(URL,SQL등)의 정보를 URI(Uniform Resource Identification, mn25 부터 mn29)와 parameter(mn30부터 mn34)의 2가지로 구분하여 저장하게 함으로써, 사용하는 프로토콜에 대하여 선택적으로 적용하여, 보다 상세한 요청 정보를 수집할 수있다. 이상에서 상술한 바와 같이, 본 발명의 애니핸들러부(21)와 매직넘버처리부(24)와 로그관리부(23)와 사용자 인터페이스(50)를 이용한 시스템은 클라이언트-서버 컴퓨팅 환경에서, 도6에서 표현한 데이터 패킷(100)과 동일한 구조를 갖는 데이터 패킷을 데이터의 송수신에서 사용하고, 특히 데이터 패킷의 내용 중 해더에 해당하는 부분에 도4, 도5 에서 표현한 매직넘버(200)로 프로토콜의 정보를 표현할 수 있는 임의의 프로토콜을 사용하는 클라이언트와 서버에 대하여, 요청과 응답에 대한 정보를 수집하는 기능을 제공한다.An operation process of the any handler unit 21 will be described in detail with reference to FIGS. 1, 2, 4, 5, and 6 as follows. When the agent 20 process is started, the any handler unit 21 listens to thread 0 that listens to the port set using the user interface 50 by using a socket. Start (S201). When the client 1 (11) is connected to the listening port of the animation handler unit 21 of the agent 20 to connect to the server 1 (31) (S202), the animation handler unit 21 is the client 1 ( 11) creates a new thread 1 (thread1) to be dedicated to the communication between the server 1 (31) (S203), and thread 0 waits while listening to new connections of other clients (S204, S201). Meanwhile, the generated thread 1 prepares to transmit the request and response data packet 100 by analyzing the information on the communication protocol using the magic number processor 24 (S205). In addition, the thread 1 is connected to the server 1 (31) using the preset IP address and port number of the server 1 (31) (S206), magic number 1 (mn1, hereinafter referred to as magic number k mnk) If the server 1 31 first sends the data packet 100 (mn1 = 0), the server 100 reads the packet 100 from the server 1 31 and delivers it to the client 1 11 (S208, S209). . If the client 1 (11) first sends data (mn1 = 1), the data packet 100 is read from the client 1 (11) and started to be transmitted to the server (S210). At this time, first, as much as the header length (mn2) of the data packet 100. The byte offset of the read header 110 data converts mn3 to mn4 into numbers according to mn5 to obtain the length of the entire data packet 100. The length of the data body 120 is obtained by referring to mn6 from the length of the entire data packet thus obtained, and the server 1 (31) is read by reading both the header 110 and the body 120 of the data packet 100 sent by the client 1 (11). To pass). The determination of whether all the data packets requested from the client 1 (11) have been delivered is determined according to the values of mn11, mn12, mn13, mn14, and mn15. According to the value of mn11, the position of the request data packet continuation condition value is found in the header 110 or the body 120 of the data packet 100, and the values are determined and compared (S211). If it is determined that all of the request data packets 100 sent by the client 1 11 have been delivered to the server 1 31, the response data packet 100 is read from the server 1 31 and transmitted to the client 1 11. Beginning (S212). At this time, the request data packet 100 is read from the client 1 (11) and transferred using a method similar to the case where the server 1 (31) is transferred. In the same manner as in the case of the request, the magic numbers are analyzed to determine the last response packet 100 (S213). In this way, after relaying both the request data of the client 1 (11) and the response data of the server 1 (31), the annie handler unit 21 processes the one request processed using the log management unit (23) and 1 for this. The meeting response, that is, request-response information for one session may be stored (S214). At this time, among the information about the request-response to be stored, the information about the request command is analyzed by magic numbers of mn7, mn8, mn9, and mn10, and the information about the requested resource (requested resource, URL, SQL, etc.) is from mn25 to mn34. Analyze the magic numbers, and store the information about the response code by analyzing mn16, mn17, mn18, and mn19. The protocol used by storing the information of the request resource (URL, SQL, etc.) requested by the client 1 (11) into two types: URI (Uniform Resource Identification, mn25 to mn29) and parameter (mn30 to mn34). By selectively applying to, more detailed request information can be collected. As described above, the system using the animation handler unit 21, the magic number processing unit 24, the log management unit 23, and the user interface 50 of the present invention is represented in FIG. 6 in a client-server computing environment. A data packet having the same structure as that of the data packet 100 is used for transmitting and receiving data, and in particular, the information of the protocol is represented by the magic number 200 shown in FIGS. 4 and 5 in the header corresponding to the header of the data packet. Provides the ability to collect information about requests and responses for clients and servers using any protocol.

<더미핸들러(Dummy Handler)부><Dummy handler part>

더미핸들러부(22)의 동작과정을 도1, 도3을 참조하여 상세히 설명하면 아래와 같다. 더미핸들러부(22)는 에이전트(20) 프로세스가 시작 되면, 사용자인터페이스(50)를 이용해서 설정한 포트에 소켓을 이용하여 리스닝(listening)을 하는 쓰래드0(thread0)을 시작한다(S301). 클라이언트2(12)가 서버2(32)로 접속하기 위하여 에이전트(20)의 더미핸들러부(22)의 리스닝(listening) 포트로 접속하게 되면(S302), 더미핸들러부(22)는 클라이언트2(12)와 서버2(32)의 통신을 전담할 새로운 쓰래드1(thread1)을 생성하고(S303), 쓰래드0은 다시 다른 클라이언트의 새로운 접속을 리스닝 하면서 대기한다(S304,S301). 한편 생성된 쓰래드1은 사용자인터페이스(50)로 미리 설정한 서버2(32)의 IP주소와 포트번호를 이용하여 서버2(32)와 접속을 하고(S305), 서버2(32)로부터 클라이언트2(12)로 데이터를 전달하는 일을 전담하는 새로운 쓰래드2를 생성한다(306). 클라이언트2(12)의 데이터를 읽어서 서버2(32)로 전달하는일을 전담하는 쓰래드1과 서버2(32)의 데이터를 읽어서 클라이언트2(12)로 전달하는 일을 전담하는 쓰래드2가 동시에 수행된다. 쓰래드1의 동작에 대하여 먼저 설명하면, 쓰래드1은 클라이언트2(12)의 읽기 소켓(socket) 스트림(stream)이 블록(blocked)상태인지 확인하여(S311), 블록상태가 아니면, 클라이언트2(12)로부터 데이터를 읽어서 서버2(32)에게 전달한다(S312,S317). 이때, 요청표시 플래그(S316)의 상태를 검사하여(S313) 0인 경우에는 임시 저장소에 저장된 최근의 요청-응답 세션에 대한 정보를 읽어와서 로그관리부(23)를 이용하여 리파지터리(40)에 저장한다(S314). 그리고, 다시 요청 표시 플래그를 1로 설정하고(S315), 읽은 요청 데이터를 임시저장소에 저장한 후(S317) 서버2(32)에게 S312에서 읽은 데이터를 전달한다(S318). 만약 S313에서 요청표시 플래그가 1인 경우에는 S312에서 읽은 데이터를 임시 저장소에 저장하고(S317), 서버2(32)에게 S312에서 읽은 데이터를 전달한다(S318). 쓰래드1은 이러한 동작을 클라이언트2(12)의 읽기 소켓 스트림이 블록(blocked)이 아닌 경우에 반복적으로 수행한다(S311~S318). 한편, 쓰래드2는 쓰래드1의 수행과 동시에 서버2(32)의 읽기 소켓 스트림이 블록(blocked) 상태 인지 검사하여(S321), 블록상태가 아닌 경우에 서버2(32)로부터 데이터를 읽어서(S322) 클라이언트2(12)에게 전달하기 시작한다(S326). 이때, 요청표시 플래그를 0으로 설정하고(S323), S322에서 읽은 응답데이터를 임시저장소에 저장한다(S325). 이때, 쓰래드1이 동작하는 도중에는 쓰래드2가 동작을 하지 않게 되고, 반대로 쓰래드2가 동작하는 도중에는 쓰래드1이 동작을 하지 않는다고 가정한다. 이것은 더미핸들러부(22)가 요청과 응답의 패턴의통신, 즉 클라이언트의 요청 데이터가 완전히 서버에게 전달된 후에야 비로소, 서버의 응답데이터가 클라이언트로 전달 되기 시작하고 또한 서버의 응답데이터가 모두 클라이언트에게 전달된 후에야, 비로소 클라이언트는 또 다른 요청 데이터를 보내기 시작하는 통신 방식을 지원한다고 가정했기 때문이다. 즉, 더미핸들러부(22)는 쓰래드1이 클라이언트2(12)로부터 데이터를 읽어서 서버2(32)로 전달하는 도중에, 쓰래드2가 서버2(32)로부터 데이터를 읽어서 클라이언트2(12)로 전달하는 상황이 발생하면, 바로 이때 1회의 요청이 끝났다고 판단하고, 또한 쓰래드2가 서버2(32)로부터 데이터를 읽어서 클라이언트2(12)로 전달하는 도중에, 쓰래드1이 클라이언트2(12)로부터 데이터를 읽어서 서버2(32)로 전달하는 상황이 발생하면, 바로 이때 1회의 응답이 끝났다고 판단한다. 그리고 이러한 1회의 요청과 1회의 응답을 1회의 세션(Session)으로 처리 한다. 더미핸들러부(22)는 이러한 세션의 단위로 요청과 응답에 대한 정보를 로그관리부(23)를 이용하여 리파지터리(24)에 저장, 관리하게 한다. 이상에서 상술한 바와 같이, 본 발명의 더미핸들러부(22)와 로그관리부(23)와 사용자 인터페이스(50)를 이용한 시스템은 클라이언트-서버 컴퓨팅 환경에서, 요청과 응답 패턴의 프로토콜을 사용하는 모든 클라이언트와 서버에 대하여, 요청과 응답에 대한 정보를 수집하는 기능을 제공한다.The operation of the dummy handler unit 22 will be described in detail with reference to FIGS. 1 and 3 as follows. When the agent 20 process starts, the dummy handler unit 22 starts thread 0 that listens to the port set by using the user interface 50 by using a socket (S301). When the client 2 12 is connected to the listening port of the dummy handler 22 of the agent 20 in order to connect to the server 2 32 (S302), the dummy handler 22 is connected to the client 2 ( 12) create a new thread 1 (thread1) to be dedicated to the communication between the server 2 (32) (S303), thread 0 waits again listening to a new connection of another client (S304, S301). On the other hand, the generated thread 1 is connected to the server 2 (32) using the IP address and port number of the server 2 (32) previously set by the user interface (50) (S305), from the server 2 (32) to the client 2 Create a new thread 2 dedicated to passing data to (12) (306). Thread 1 dedicated to reading the data of client 2 (12) and passing it to server 2 (32) and thread 2 dedicated to reading the data of server 2 (32) and passing it to client 2 (12) are executed at the same time. do. Referring to the operation of the thread 1, the thread 1 checks whether the read socket stream of the client 2 12 is blocked (S311), and if not, blocks the client 2 (12). In step S312 and S317, data is read from the server and transmitted to the server 2 (32). At this time, by checking the state of the request display flag (S316) (S313), if 0, the repository 40 is read using the log management unit 23 by reading information on the latest request-response session stored in the temporary storage. Store in (S314). Then, the request display flag is set to 1 again (S315), the read request data is stored in the temporary storage (S317), and the data read in S312 is transmitted to the server 2 32 (S318). If the request display flag is 1 in S313, the data read in S312 is stored in the temporary storage (S317), and the data read in S312 is transferred to the server 2 32 (S318). Thread 1 repeatedly performs this operation when the read socket stream of the client 2 12 is not blocked (S311 to S318). On the other hand, the thread 2 checks whether the read socket stream of the server 2 32 is blocked at the same time as the execution of the thread 1 (S321), and reads data from the server 2 32 when the thread 2 is not in the block state (S322). In step S326, the client 2 starts to deliver it. At this time, the request display flag is set to 0 (S323), and the response data read in S322 is stored in the temporary storage (S325). At this time, it is assumed that the thread 2 does not operate while the thread 1 operates, and conversely, the thread 1 does not operate while the thread 2 operates. This is because after the dummy handler unit 22 communicates the pattern of request and response, that is, the client's request data is completely transmitted to the server, the response data of the server begins to be delivered to the client, and all of the server's response data is transmitted to the client. After delivery, it is assumed that the client supports a communication method that starts sending another request data. That is, the dummy handler 22 reads the data from the server 2 32 and passes it to the client 2 12 while the thread 1 reads the data from the client 2 12 and transfers the data to the server 2 32. If this situation occurs, it is determined that one request is completed at this time, and also while thread 2 reads data from server 2 32 and passes it to client 2 12, thread 1 receives data from client 2 12. If a situation occurs that is read and delivered to the server 2 (32), it is determined that one response has been completed at this time. And this one request and one response is treated as one session. The dummy handler unit 22 stores and manages information on the request and the response in the repository 24 using the log manager 23 in units of such sessions. As described above, the system using the dummy handler unit 22, the log management unit 23, and the user interface 50 of the present invention is a client-server computing environment, all clients using the protocol of request and response pattern Provides the ability to collect information about requests and responses for servers and servers.

이상에서 상술한 바와 같이 본 발명에 의하면, 애니핸들러부를 이용하면, 클라이언트와 서버가 데이터를 송수신할 때 요청과 응답이라는 패턴의 통신 프로토콜을 사용하고, 또한 특정한 형태의 데이터 패킷으로 통신을 하는 경우에 클라이언트와 서버 사이에 통신을 매개하는 에이전트를 이용하고, 그리고 통신 프로토콜의 특성을 기술하는 매직넘버의 설정기능을 이용하여, 다양한 프로토콜에 대한 요청과 응답에 대한 정보를 수집, 관리할 수 있게 된다. 또한, 더미핸들러부를 사용하게 되면 요청과 응답이라는 패턴을 사용하는 임의의 통신 프로토콜을 사용하는 클라이언트와 서버 사이에서 통신을 매개하는 에이전트를 이용하여, 각 요청과 응답에 대한 정보를 수집, 관리할 수 있게 된다. 그러므로, 본 발명의 시스템과 방법을 이용하면, 통신 상황의 재연, 서버성능의 측정과 분석 등에 사용할 클라이언트의 요청과 서버의 응답에 대한 정보의 수집과 관리를 다양한 통신 프로토콜에 대하여 보다 편리하게 수행할 수 있게 된다.As described above, according to the present invention, when using the any handler unit, when a client and a server transmit / receive data, they use a communication protocol in a pattern of request and response, and communicate with a specific type of data packet. By using an agent that mediates communication between the client and the server, and using the magic number setting function that describes the characteristics of the communication protocol, it is possible to collect and manage information on requests and responses for various protocols. In addition, when the dummy handler part is used, information about each request and response can be collected and managed by using an agent that mediates communication between a client and a server using an arbitrary communication protocol using a request and response pattern. Will be. Therefore, using the system and method of the present invention, it is more convenient to collect and manage information about client requests and server responses for reproducing communication situations, measuring and analyzing server performance, and so on for various communication protocols. It becomes possible.

Claims (4)

통신 데이터 패킷의 포멧이 고정된 길이의 해더와 이 해더의 내용에 의해서 길이와 기타 특성이 결정되는 바디를 갖는 데이터 패킷을 이용하여 통신하고, 요청과 응답 방식의 통신 프로토콜을 사용하는 클라이언트-서버 컴퓨팅환경에서, 클라이언트의 요청과 서버의 응답에 대한 정보를 수집하는 방법으로서, 상기 클라이언트와 상기 서버의 사이에 에이전트를 실행시켜서 양쪽의 통신 데이터를 매개하는 단계와, 상기 통신 데이터를 해석할 때, 미리 설정한 34자리 숫자열인 매직넘버를 이용하여 요청과 응답에 대한 정보를 결정하는 단계와, 상기 요청과 응답에 대한 정보를 리파지터리로 전달하여 저장하는 단계를 포함하는 것을 특징으로 하는 클라이언트의 요청과 서버의 응답에 대한 정보 수집 방법Client-server computing using a data packet with a header of fixed length and a body whose length and other characteristics are determined by the content of the header, and using a request and response communication protocol. In an environment, a method of collecting information on a request of a client and a response of a server, comprising: executing an agent between the client and the server to mediate both communication data, and when interpreting the communication data, Determining information about a request and a response by using a set 34-digit magic number; and transmitting and storing the information about the request and the response as a repository. How to collect information about requests and responses from the server 요청과 응답 방식의 통신 프로토콜을 사용하는 클라이언트-서버 컴퓨팅환경에서, 클라이언트의 요청과 서버의 응답에 대한 정보를 수집하는 방법으로서, 상기 클라이언트와 상기 서버의 사이에 에이전트를 실행시켜서 양쪽의 통신 데이터를 매개하는 단계와, 상기 통신 데이터를 해석할 때, 상기 클라이언트의 요청 데이터를 상기 서버로 전달하는 전담 쓰래드1를 이용하는 단계와 상기 통신 데이터를 해석할 때, 상기 서버의 응답 데이터를 상기 클라이언트로 전달하는 전담 쓰래드2를 상기 쓰래드1과 동시에 이용하는 단계와 상기 통신 데이터를 해석할 때, 상기 클라이언트의 요청 데이터가 모두 상기 서버로 전달된 후에야 비로서 상기 서버의 응답 데이터가 전달되기 시작하고, 또한 상기 서버의 응답 데이터가 모두 상기 클라이언트에게 전달된 후에야 비로소, 상기 클라이언트는 또 다른 요청을 시작하는 특성을 이용하여, 상기 클라이언트의 1회의 요청과 상기 서버의 1회의 응답으로 이루어진 1회의 세션 정보를 결정하는 단계와 상기 요청과 응답에 대한 정보를 리파지터리로 전달하여 저장하는 단계를 포함하는 것을 특징으로 하는 클라이언트의 요청과 서버의 응답에 대한 정보 수집 방법In a client-server computing environment using a request-and-response communication protocol, a method of collecting information about a request of a client and a response of a server, comprising: executing an agent between the client and the server to transmit both communication data. Mediating, using the dedicated thread 1 to deliver the request data of the client to the server when interpreting the communication data, and transmitting response data of the server to the client when interpreting the communication data. Using the dedicated thread 2 simultaneously with the thread 1 and when interpreting the communication data, the response data of the server does not begin to be transmitted until after all of the client's request data has been delivered to the server, After all response data has been delivered to the client Finally, the client uses the characteristic of initiating another request to determine one session information consisting of one client's one request and one server's response and return information about the request and the response. Method of collecting information about the request of the client and the response of the server, characterized in that it comprises the step of transmitting to the repository and storing 에이전트(20)와 리파지터리(40)와 사용자 인터페이스(50)를 포함하고, 상기 에이전트(20)는, 특정한 형태의 데이터 패킷(100)을 이용하여, 요청과 응답 방식으로 데이터를 송수신하는 클라이언트와 서버 사이에서 통신 매개를 담당하는 애니핸들러부(21); 상기 애니핸들러부(21)에서 수집한 상기 클라이언트의 요청과 상기 서버의 응답에 대한 정보를 상기 리파지터리(40)로 전달하는 로그관리부(23); 상기 애니핸들러부(21)에서 전달하는 요청과 응답을 분석하고, 프로토콜의 특성을 결정하는데 사용하는 매직넘버(200); 상기 매직넘버(200)을 처리하고 관리하는 매직넘버처리부(24); 를 포함하고, 상기 리파지터리(40)는, 상기 에이전트(20)와 통신하여 요청과 응답에 대한 정보를 저장하는 수단을 포함하고 상기 사용자 인터페이스(50)는, 상기 에이전트(20)와 사용자 사이에서 상기 매직넘버(200), 상기 서버(31)의 IP주소와 포트번호 등의 상기 에이전트(20)에서 사용하는 정보를 설정하는 수단을 포함하는 것을 특징으로 하는 클라이언트의 요청과 서버의 응답에 대한 정보들을 수집, 관리하는 시스템An agent 20, a repository 40, and a user interface 50, wherein the agent 20 transmits and receives data in a request and response manner using a specific type of data packet 100. Any handler unit 21 that is responsible for communication between the server and the server; A log management unit (23) for transmitting information about the client's request and the server's response collected by the any handler unit (21) to the repository (40); A magic number (200) used to analyze the request and response transmitted from the any handler unit (21) and determine the characteristics of the protocol; A magic number processor 24 for processing and managing the magic number 200; Wherein the repository 40 includes means for communicating with the agent 20 to store information about requests and responses, and the user interface 50 between the agent 20 and the user. Means for setting information used by the agent 20, such as the magic number 200 and the IP address and port number of the server 31, for the client's request and the server's response. System to collect and manage information 에이전트(20)와 리파지터리(40)와 사용자 인터페이스(50)를 포함하고, 상기 에이전트(20)는, 요청과 응답 방식으로 데이터를 송수신하는 클라이언트와 서버 사이에서 통신 매개를 담당하는 더미핸들러부(22); 더미핸들러부(22)에서 수집한 상기 클라이언트의 요청과 상기 서버의 응답에 대한 정보를 상기 리파지터리(40)로 전달하는 로그관리부(23); 를 포함하고, 상기 리파지터리(40)는, 상기 에이전트(20)와 통신하여 요청과 응답에 대한 정보를 저장하는 수단을 포함하고 상기 사용자 인터페이스(50)는, 상기 에이전트(20)와 사용자 사이에서 상기 서버(32)의 IP주소와 포트번호 등의 상기 에이전트(20)에서 사용하는 정보를 설정하는 수단을 포함하는 것을 특징으로 하는 클라이언트의 요청과 서버의 응답에 대한 정보들을 수집, 관리하는 시스템It includes an agent 20, a repository 40 and a user interface 50, the agent 20, the dummy handler unit responsible for the communication medium between the client and the server for transmitting and receiving data in a request and response manner (22); A log management unit 23 which transmits information about the client's request and the server's response collected by the dummy handler unit 22 to the repository 40; Wherein the repository 40 includes means for communicating with the agent 20 to store information about requests and responses, and the user interface 50 between the agent 20 and the user. Means for setting information used by the agent 20, such as an IP address and a port number of the server 32, and collecting and managing information on the client's request and the server's response.
KR10-2004-0042736A 2004-06-10 2004-06-10 Method and system for recording client requests and server responses to use later for performance test or performance analysis of server in client-server computing environment. KR100461029B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2004-0042736A KR100461029B1 (en) 2004-06-10 2004-06-10 Method and system for recording client requests and server responses to use later for performance test or performance analysis of server in client-server computing environment.

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2004-0042736A KR100461029B1 (en) 2004-06-10 2004-06-10 Method and system for recording client requests and server responses to use later for performance test or performance analysis of server in client-server computing environment.

Publications (2)

Publication Number Publication Date
KR20040055771A KR20040055771A (en) 2004-06-26
KR100461029B1 true KR100461029B1 (en) 2004-12-09

Family

ID=37348261

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2004-0042736A KR100461029B1 (en) 2004-06-10 2004-06-10 Method and system for recording client requests and server responses to use later for performance test or performance analysis of server in client-server computing environment.

Country Status (1)

Country Link
KR (1) KR100461029B1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100551452B1 (en) * 2005-11-29 2006-02-14 (주)그리드원 Grid computing system for testing application program capacity of server
KR100806488B1 (en) * 2006-10-11 2008-02-21 삼성에스디에스 주식회사 System and method for performance test in outside channel combination environment
KR100806487B1 (en) 2006-10-11 2008-02-21 삼성에스디에스 주식회사 System and method for communication error processing in outside channel combination environment

Also Published As

Publication number Publication date
KR20040055771A (en) 2004-06-26

Similar Documents

Publication Publication Date Title
US9842093B2 (en) Method and apparatus for intelligent capture of document object model events
CN108897691B (en) Data processing method, device, server and medium based on interface simulation service
Moore et al. Architecture of a network monitor
US7219138B2 (en) Method, apparatus, and system for capturing data exchanged between a server and a user
US20080034036A1 (en) Proxy server apparatus and method for providing service using the same
TW200818773A (en) Merging multi-line log entries
US20040205114A1 (en) Enabling a web-crawling robot to collect information from web sites that tailor information content to the capabilities of accessing devices
JP2003241903A5 (en)
KR20060124218A (en) Method and system for detecting double login
WO2014034001A1 (en) Web content prefetch control device, web content prefetch control program, and web content prefetch control method
Carrera et al. User-level communication in cluster-based servers
CN104023046B (en) Mobile terminal recognition method and device
CN102833327B (en) Based on recognition methods and the device of the client type of HTTP
JP2000101640A (en) Client/server system
KR100461029B1 (en) Method and system for recording client requests and server responses to use later for performance test or performance analysis of server in client-server computing environment.
KR100763526B1 (en) Device and method for management of application context
Dalessandro et al. iWarp protocol kernel space software implementation
CN109240844A (en) A kind of journal obtaining method and system
CN112181670B (en) Inter-process communication method and device and Linux equipment
CN114244556A (en) Protocol proxy method and device
CN113676372A (en) Communication performance testing method, device and storage medium
CN111294382A (en) Real-time data pushing method and device
CN115052003B (en) Data synchronization method, related device and medium
JP2004518310A (en) How to analyze transmitted protocol data units
CN109451047A (en) Data transferring method, device, equipment and the storage medium of monitoring warning system

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20121006

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20131120

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20141110

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20151201

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20161118

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20171124

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20181119

Year of fee payment: 15

FPAY Annual fee payment

Payment date: 20191014

Year of fee payment: 16