KR102027823B1 - 플러그 인 방식의 시스템 응답 성능향상 지능형 캐싱 시스템 - Google Patents

플러그 인 방식의 시스템 응답 성능향상 지능형 캐싱 시스템 Download PDF

Info

Publication number
KR102027823B1
KR102027823B1 KR1020190047883A KR20190047883A KR102027823B1 KR 102027823 B1 KR102027823 B1 KR 102027823B1 KR 1020190047883 A KR1020190047883 A KR 1020190047883A KR 20190047883 A KR20190047883 A KR 20190047883A KR 102027823 B1 KR102027823 B1 KR 102027823B1
Authority
KR
South Korea
Prior art keywords
query
result
request message
caching
cache memory
Prior art date
Application number
KR1020190047883A
Other languages
English (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 KR1020190047883A priority Critical patent/KR102027823B1/ko
Application granted granted Critical
Publication of KR102027823B1 publication Critical patent/KR102027823B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
    • 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/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 플러그 인 방식의 시스템 응답 성능향상 지능형 캐싱 시스템에 관한 것이다. 본 발명에 따른 플러그 인 방식의 시스템 응답 성능향상 지능형 캐싱 시스템은 사용량이 많은 웹 페이지에서 요청되는 요청 메시지 및 상기 요청 메시지에 대한 응용프로그램의 연산결과를 캐시 메모리에 캐싱하고, 상기 웹 페이지와 연관된 데이터의 변화를 실시간 모니터링하여 캐싱된 상기 연산결과의 유효성을 판단하는 WAS(Web Application Server) 연산결과 캐싱 모듈; 반복적으로 사용되는 쿼리(query) 및 상기 쿼리에 대한 데이터베이스의 조회결과를 캐시 메모리에 캐싱하고, 상기 쿼리와 연관된 데이터의 변화를 실시간 모니터링하여 캐싱된 상기 조회결과의 유효성을 판단하는 데이터베이스 조회결과 캐싱 모듈; 및 쿼리 및 웹 페이지의 사용량을 분석하여 캐싱할 쿼리 및 웹 페이지를 선정하고, 캐싱된 쿼리 및 웹 페이지에 대한 처리성능을 분석하는 제어 모듈을 포함한다.

Description

플러그 인 방식의 시스템 응답 성능향상 지능형 캐싱 시스템{INTELLIGENT CACHING SYSTEM WITH IMPROVED SYSTEM RESPONSE PERFORMANCE BASED ON PLUG IN METHOD}
본 발명은 플러그 인 방식의 시스템 응답 성능향상 지능형 캐싱 시스템에 관한 것으로서, 보다 상세하게는 플러그 인 방식을 통해 기존 시스템을 그대로 유지한 상태에서 도입이 가능하며, 사용량이 많은 응용프로그램의 연산결과 및 데이터베이스의 조회결과의 캐싱을 통해 기존 시스템의 초당 처리량 및 응답 속도를 향상시키고 안정성을 극대화시키는 플러그 인 방식의 시스템 응답 성능향상 지능형 캐싱 시스템에 관한 것이다.
최근 IT 서비스의 성장으로 인한 데이터의 증가와 다양한 컨텐츠 확대, 동시 사용자의 증가는 서비스 응답속도 저하에서 서비스 중단에 이르는 많은 시스템 문제를 야기하게 되었고, 특히 정부나 공공기관에서 운영되는 시스템에 대한 문제는 사용자의 민원발생 및 신뢰하락을 넘어서 법적소송까지 가는 심각한 사회현상을 만들어 가고 있다.
종래 시스템은 사용자의 요청에 따라 사용자에게 HTML로 구성된 웹 페이지를 제공하는 WEB 서버, WEB 서버로부터 전달된 요청 메시지에 대한 응용프로그램 서비스를 처리하는 WAS(Web Application Server) 서버 및 사용자의 쿼리에 대한 응답이 될 수 있는 데이터를 저장하는 데이터베이스로 구성된다.
이러한 종래 시스템에서, 시스템을 사용하는 동시 접속자가 늘어나면, WEB 서버에서는 네트워크 대역폭 부족으로 인한 사용자의 응답시간 지연이 발생된다. 그리고, 응용프로그램 처리요청량이 폭주함에 따라, WAS 서버에서는 내부에서 구동되는 응용프로그램들이 동시에 데이터베이스로 결과를 요청하는 현상이 발생되는데 데이터베이스 접속을 위한 라이선스가 충분하지 않아 원활한 데이터베이스 조회가 어렵게 된다. 또한, 데이터베이스에서는 WAS 서버에서 요청된 정보를 처리하기 위해 데이터량이 증가하고 데이터가 복잡하게 꼬이는 현상이 발생하게되어 데이터베이스는 결국 부하를 이기지 못하고 다운되거나 무한대기 상태에 이르게 된다.
기존에 상술한 문제점을 해결하기 위하여, 기존 장비를 고성능 장비로 교체하거나 증설, 분산처리 등 다양하고 더 복잡한 아키텍처를 구성하였다. 하지만, 이러한 기존 해결방법에는 엄청난 장비구매 비용뿐만 아니라 이를 운영하기 위한 전문가 확보와 지속적 유지비용/시간이 이중으로 들어가는 현실적인 문제점이 존재했다.
구체적으로, WEB 서버에서는 근본적 개선이 아닌 사용자의 응답지연을 해소하기 위해 WEB 가속기를 도입하여 마치 은행창구의 번호표를 뽑는 형태로 대기시간의 지루함을 해소하는 큰 도움이 되지 않는 방법을 사용하고 있다. 또는, WEB 서버, WAS 서버 및 데이터베이스에 고성능 장비로 교체 또는 증설을 통한 이중화 구조를 만들어 한 대로 처리하던 것을 여러 대로 처리하도록 구성하는 방식을 채택하고 있는데, 이에 따른 막대한 서버 비용, 다중화 처리로 복잡해진 시스템에 맞춘 소프트웨어 라이센스 비용과 복잡한 인프라 유지/관리 비용이 복합적으로 증가하는 문제점을 안고 있는 것이 현실이다.
따라서, 종래 시스템의 문제를 해결하기 위해, 물리적인 장비증설의 한계를 벗어난 비용측면, 유지/관리 측면, 향후 확장성 측면을 고려한 새로운 기술도입이 절실히 필요한 상황이다.
한국 공개특허 제10-2016-0126655호 한국 등록특허 제10-0876320호
상술한 문제점을 해결하기 위한 본 발명의 목적은 독립적으로 구성되어 기존 시스템의 수정 없이 플러그 인 방식을 통해 설치가 가능한 플러그 인 방식의 시스템 응답 성능향상 지능형 캐싱 시스템을 제공하는 것이다.
본 발명의 다른 목적은 사용량이 많은 웹 페이지에 대한 응용프로그램의 연산결과 및 빈도가 잦은 쿼리에 대한 데이터베이스의 조회결과를 캐싱함으로써 초당 처리량 및 응답 속도의 향상이 가능한 플러그 인 방식의 시스템 응답 성능향상 지능형 캐싱 시스템을 제공하는 것이다.
본 발명의 다른 목적은 인 메모리 저장 방식을 기초로 하고 NoSQL 언어를 기반으로 하므로 빠른 응답 속도를 보장하고, 형식의 제한 없이 다양한 형태의 데이터의 캐싱이 가능한 플러그 인 방식의 시스템 응답 성능향상 지능형 캐싱 시스템을 제공하는 것이다.
본 발명의 다른 목적은 실시간 모니터링을 통해 캐싱된 정보의 유효성을 파악하고 인공지능 기술을 기반으로 요청 메시지와 쿼리에 대한 적절한 응답을 분석함으로써 사용자의 요청에 보다 정확한 응답의 반환이 가능한 플러그 인 방식의 시스템 응답 성능향상 지능형 캐싱 시스템을 제공하는 것이다.
상술한 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 플러그 인 방식의 시스템 응답 성능향상 지능형 캐싱 시스템은 사용량이 많은 웹 페이지에서 요청되는 요청 메시지 및 상기 요청 메시지에 대한 응용프로그램의 연산결과를 캐시 메모리에 캐싱하고, 상기 웹 페이지와 연관된 데이터의 변화를 실시간 모니터링하여 캐싱된 상기 연산결과의 유효성을 판단하는 WAS(Web Application Server) 연산결과 캐싱 모듈; 반복적으로 사용되는 쿼리(query) 및 상기 쿼리에 대한 데이터베이스의 조회결과를 캐시 메모리에 캐싱하고, 상기 쿼리와 연관된 데이터의 변화를 실시간 모니터링하여 캐싱된 상기 조회결과의 유효성을 판단하는 데이터베이스 조회결과 캐싱 모듈; 및 쿼리 및 웹 페이지의 사용량을 분석하여 캐싱할 쿼리 및 웹 페이지를 선정하고, 캐싱된 쿼리 및 웹 페이지에 대한 처리성능을 분석하는 제어 모듈을 포함한다.
바람직하게는, 상기 WAS 연산결과 캐싱 모듈은 상기 연산결과를 오브젝트 저장 규칙에 따라 재사용이 가능한 직렬화된 오브젝트 형태로 변환하여 상기 캐시 메모리에 캐싱하고, 상기 데이터베이스 조회결과 캐싱 모듈은 상기 조회결과를 오브젝트 저장 규칙에 따라 재사용이 가능한 직렬화된 오브젝트 형태로 변환하여 상기 캐시 메모리에 캐싱하며, 상기 제어 모듈은 관점 지향 프로그래밍 기술을 기초로 WAS 서버로 요청되는 요청 메시지 및 쿼리가 상기 캐시 메모리에 캐싱된 요청 메시지 및 쿼리와 동일한 패턴을 갖는지 여부를 판단하고, 동일한 패턴을 갖는 경우 별도의 연산 및 데이터베이스 조회를 생략하고 상기 캐시 메모리에 캐싱된 상기 연산결과 및 상기 조회결과를 WEB 서버로 반환하도록 할 수 있다.
바람직하게는, 상기 캐시 메모리는 상기 요청 메시지, 상기 요청 메시지에 대한 연산결과, 상기 쿼리 및 상기 쿼리에 대한 조회결과를 NoSQL(Not only Structured Query Language) 기반의 IMDG(In Memory Data Grid) 기술을 이용하여 저장할 수 있다.
바람직하게는, 상기 제어 모듈은 상기 WEB 서버로 반환된 상기 연산결과 및 상기 조회결과가 상기 WEB 서버가 요청한 요청 메시지 및 쿼리에 부합하는 응답이었는지 여부에 대한 피드백 정보를 상기 WAS 서버로부터 수신하고, 상기 피드백 정보를 기초로 상기 WEB 서버로 반환된 상기 연산결과 및 상기 조회결과의 개수 대비 상기 WEB 서버가 요청한 요청 메시지 및 쿼리에 부합된 상기 연산결과 및 상기 조회결과의 개수의 비율을 나타내는 캐싱 적중률 정보를 산출하고, 상기 제어 모듈은 실시간으로 상기 캐시 메모리에 저장된 데이터량을 모니터링하여 시간대 별 캐시 데이터량의 변동률 정보를 산출할 수 있다.
바람직하게는, 상기 제어 모듈은 인공지능을 기반으로 상기 WEB 서버가 요청한 요청 메시지 및 쿼리에 부합하는 연산결과 및 조회결과를 도출하는 인공지능 분석 모듈을 포함하고, 상기 인공지능 분석 모듈은 상기 캐시 메모리에 저장된 요청 메시지 및 쿼리 중 중복되는 요청 메시지 및 쿼리를 제거함으로써 요청 메시지 및 쿼리를 전처리하는 전처리부로서, 상기 전처리부는 요청 메시지 및 쿼리의 타입을 기술하는 타입 정보를 기초로 전처리된 상기 요청 메시지 및 상기 쿼리의 타입을 도출하고; 도출된 상기 요청 메시지 및 상기 쿼리의 타입과 상기 캐시 메모리에 저장된 연산결과 및 조회결과 사이의 상관 관계를 분석하는 분석부로서, 상기 분석부는 도출된 상기 요청 메시지 및 상기 쿼리의 타입을 독립 변수로 갖고 상기 연산결과 및 상기 조회결과를 종속 변수로 갖는 회귀 분석 모델을 이용하여 상관 관계를 분석하고, 상기 회귀 분석 모델의 시뮬레이션에 의해 산출되는 유의 확률 값을 기준으로 상기 요청 메시지 및 상기 쿼리의 타입을 유의미한 독립 변수로 선정하며, 상기 회귀 분석 모델의 시뮬레이션에 의해 산출되는 계수 추정치 값을 기준으로 상기 유의미한 독립 변수로 선정된 타입을 상기 연산결과 및 상기 조회결과와 상관 관계가 있는 독립 변수로 결정하고; 및 상기 상관 관계가 있는 독립 변수로 결정된 타입을 갖는 요청 메시지 및 쿼리가 요청되는 경우 상기 연산결과 및 상기 조회결과를 요청된 상기 요청 메시지 및 상기 쿼리에 부합하는 응답으로 도출하는 응답 도출부를 포함할 수 있다.
본 발명은 독립적으로 구성되어 기존 시스템의 수정 없이 플러그 인 방식을 통해 설치가 가능한 플러그 인 방식의 시스템 응답 성능향상 지능형 캐싱 시스템을 제공할 수 있다.
본 발명은 사용량이 많은 웹 페이지에 대한 응용프로그램의 연산결과 및 빈도가 잦은 쿼리에 대한 데이터베이스의 조회결과를 캐싱함으로써 초당 처리량 및 응답 속도의 향상이 가능한 플러그 인 방식의 시스템 응답 성능향상 지능형 캐싱 시스템을 제공할 수 있다.
본 발명은 인 메모리 저장 방식을 기초로 하고 NoSQL 언어를 기반으로 하므로 빠른 응답 속도를 보장하고, 형식의 제한 없이 다양한 형태의 데이터의 캐싱이 가능한 플러그 인 방식의 시스템 응답 성능향상 지능형 캐싱 시스템을 제공할 수 있다.
본 발명은 실시간 모니터링을 통해 캐싱된 정보의 유효성을 파악하고 인공지능 기술을 기반으로 요청 메시지와 쿼리에 대한 적절한 응답을 분석함으로써 사용자의 요청에 보다 정확한 응답의 반환이 가능한 플러그 인 방식의 시스템 응답 성능향상 지능형 캐싱 시스템을 제공할 수 있다.
도 1은 본 발명의 일 실시예에 따른 플러그 인 방식의 시스템 응답 성능향상 지능형 캐싱 시스템이 포함된 전체 웹 페이지 관리 시스템의 구성을 나타낸 도면이다.
도 2는 본 발명의 일 실시예에 따른 플러그 인 방식의 시스템 응답 성능향상 지능형 캐싱 시스템의 구성을 나타낸 도면이다.
도 3은 본 발명의 다른 일 실시예에 따른 플러그 인 방식의 시스템 응답 성능향상 지능형 캐싱 시스템의 구성을 나타낸 도면이다.
도 4는 본 발명의 일 실시예에 따른 인공지능 분석 모듈의 구성을 나타낸 도면이다.
도 5는 본 발명의 일 실시예에 따른 인공지능 분석 모듈의 회귀 분석에 사용되는 회귀 곡선을 나타낸 도면이다.
이하, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성 요소들에 참조 부호를 부가함에 있어서, 동일한 구성 요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다.
그리고 본 발명의 실시예를 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 실시예에 대한 이해를 방해한다고 판단되는 경우에는 그 상세한 설명은 생략한다.
또한, 본 발명의 실시예의 구성 요소를 설명하는 데 있어서, 제1, 제2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다.
도 1 내지 도 4를 참조하여, 본 발명의 일 실시예에 따른 플러그 인 방식의 시스템 응답 성능향상 지능형 캐싱 시스템의 구성 및 동작에 대하여, 이하 설명한다.
도 1은 본 발명의 일 실시예에 따른 플러그 인 방식의 시스템 응답 성능향상 지능형 캐싱 시스템(이하, “본 캐싱 시스템”이라 한다)이 포함된 전체 웹 페이지 관리 시스템의 구성을 나타낸 도면이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 웹 페이지 관리 시스템은 본 캐싱 시스템(1000), WEB 서버(2000), WAS 서버(3000) 및/또는 데이터베이스(4000)를 포함한다.
WEB 서버(2000)는 사용자의 요청에 따라 사용자에게 HTML로 구성된 웹 페이지를 제공하고, 웹 페이지를 통해 사용자로부터 요청(request) 메시지 및/또는 쿼리(query)를 수신하고 이를 WAS 서버(3000)로 전달한다.
WAS 서버(3000)는 WEB 서버(2000)로부터 전달되는 요청 메시지에 대한 응용프로그램 서비스를 처리한다. 응용프로그램을 실행하여 요청 메시지에 대한 연산을 수행하고 연산결과를 WEB 서버(2000)에 반환한다. 또한, WAS 서버(3000)는 WEB 서버(2000)로부터 전달되는 쿼리를 데이터베이스(4000)로 전달한다.
데이터베이스(4000)는 WAS 서버(3000)로부터 전달받은 쿼리에 대한 응답이 될 수 있는 데이터를 조회하고, 조회결과를 WAS 서버(3000)로 전달한다.
본 캐싱 시스템(1000)은 요청 메시지와 요청 메시지에 대한 응용프로그램의 연산결과를 캐시 메모리(1400)에 캐싱한다. 그리고, 본 캐싱 시스템(1000)은 쿼리와 쿼리에 대한 데이터베이스(4000)의 조회결과를 캐시 메모리(1400)에 캐싱한다. 이때, 본 캐싱 시스템(1000)은 모든 요청 메시지와 모든 요청 메시지에 대한 연산결과를 캐싱하는 것이 아니라, 사용량이 많은 웹 페이지에서 요청되는 요청 메시지와 해당 요청 메시지에 대한 연산결과만을 캐싱한다. 그리고, 본 캐싱 시스템(1000)은 모든 쿼리와 모든 쿼리에 대한 조회결과를 캐싱하는 것이 아니라, 사용자에 의해 반복적으로 사용되는 쿼리 및 해당 쿼리에 대한 조회결과만을 캐싱한다. 본 캐싱 시스템(1000)에 대한 상세한 설명은 후술한다.
이로써, 사용량이 많은 웹 페이지에서 요청 메시지가 수신되는 경우, WAS 서버(3000)는 해당 요청 메시지에 대한 연산을 수행하지 않고, 본 캐싱 시스템(1000) 내부의 캐시 메모리(1400)에 저장된 해당 요청 메시지에 대한 연산결과를 가져다가 WEB 서버(2000)를 통해 사용자에게 반환할 수 있다. 그리고, 반복적으로 사용되는 쿼리가 수신되는 경우, WAS 서버(3000)는 해당 쿼리를 데이터베이스(4000)에 전달하지 않고, 본 캐싱 시스템(1000) 내부 캐시 메모리(1400)에 저장된 해당 쿼리에 대한 조회결과를 가져다가 WEB 서버(2000)를 통해 사용자에게 반환할 수 있다. 이를 통해, 전체 웹 페이지 관리 시스템의 처리속도 및 응답속도를 향상시킬 수 있다.
도 2는 본 발명의 일 실시예에 따른 플러그 인 방식의 시스템 응답 성능향상 지능형 캐싱 시스템의 구성을 나타낸 도면이다.
도 2를 참조하면, 본 캐싱 시스템(1000)은 WAS 연산결과 캐싱 모듈(1100), 데이터베이스 조회결과 캐싱 모듈(1200), 제어 모듈(1300) 및/또는 캐시 메모리(1400)를 포함한다.
WAS 연산결과 캐싱 모듈(1100)은 사용량이 많은 웹 페이지에서 요청되는 요청 메시지 및 해당 요청 메시지에 대한 응용프로그램의 연산결과를 캐시 메모리(1400)에 캐싱한다. 그리고, WAS 연산결과 캐싱 모듈(1100)은 해당 웹 페이지와 연관된 데이터의 변화를 실시간으로 모니터링하여 캐싱된 연산결과의 유효성을 판단한다. 즉, WAS 연산결과 캐싱 모듈(1100)은 해당 웹 페이지를 구성하는 정보, 해당 웹 페이지에서 요청되는 요청 메시지의 내용 정보, 해당 요청 메시지의 형식 정보 등에 변화(변경)가 있는지 여부를 모니터링하고 변화가 없는 경우 캐시 메모리(1400)에 저장된 연산결과가 유효한 것으로 판단하고, 변화가 있는 경우 캐시 메모리(1400)에 저장된 연산결과가 더 이상 유효하지 않은 것으로 판단한다. 유효한 경우, 캐시 메모리(1400)에 저장된 연산결과는 WAS 서버(3000), WEB 서버(2000)를 거쳐 사용자에게 반환된다. 더 이상 유효하지 않은 경우, 캐시 메모리(1400)에 저장된 연산결과는 삭제된다. WAS 연산결과 캐싱 모듈(1100)은 모니터링 결과, 변경된 정보가, 자주 변경되는 정보인, 개인화 관련 정보, 세션, 쿠키, 파라미터 값 등에 해당하는 경우, WAS 서버(3000) 및/또는 데이터베이스(4000)로부터 변경된 새로운 값을 가져와 캐시 메모리(1400)에 캐싱하여 정보를 실시간으로 자동 업데이트한다.
WAS 연산결과 캐싱 모듈(1100)은 해당 요청 메시지와 해당 요청 메시지에 대한 연산결과를 오브젝트 저장 규칙에 따라 재사용이 가능한 직렬화된 오브젝트 형태로 변환하여 캐시 메모리(1400)에 캐싱한다. 이로써, 응용프로그램의 소스를 수정하거나 방식의 변경 없이 캐싱된 데이터가 사용될 수 있다.
데이터베이스 조회결과 캐싱 모듈(1200)은 반복적으로 사용되는 쿼리 및 해당 쿼리에 대한 데이터베이스의 조회결과를 캐시 메모리(1400)에 캐싱한다. 그리고, 데이터베이스 조회결과 캐싱 모듈(1200)은 해당 쿼리와 연관된 데이터의 변화를 실시간으로 모니터링하여 캐싱된 조회결과의 유효성을 판단한다. 즉, 데이터베이스 조회결과 캐싱 모듈(1200)은 해당 쿼리의 내용 정보, 해당 쿼리의 형식 정보 등에 변화가 있는지 여부를 모니터링하고 변화가 없는 경우 캐시 메모리(1400)에 저장된 조회결과가 유효한 것으로 판단하고, 변화가 있는 경우 캐시 메모리(1400)에 저장된 조회결과가 더 이상 유효하지 않은 것으로 판단한다. 유효한 경우, 캐시 메모리(1400)에 저장된 조회결과는 WAS 서버(3000), WEB 서버(2000)를 거쳐 사용자에게 반환된다. 더 이상 유효하지 않은 경우, 캐시 메모리(1400)에 저장된 조회결과는 삭제된다.
데이터베이스 조회결과 캐싱 모듈(1200)은 해당 쿼리와 해당 쿼리에 대한 조회결과를 오브젝트 저장 규칙에 따라 재사용이 가능한 직렬화된 오브젝트 형태로 변환하여 캐시 메모리(1400)에 캐싱한다. 이로써, 응용프로그램의 소스를 수정하거나 방식의 변경 없이 캐싱된 데이터가 사용될 수 있다.
제어 모듈(1300)은 웹 페이지 및/또는 쿼리의 사용량을 분석하여 사용량이 많은 웹 페이지 및/또는 쿼리를 캐싱할 웹 페이지 및/또는 쿼리로 선정한다. 제어 모듈(1300)에 의해 선정된 웹 페이지에서 요청되는 요청 메시지 및 해당 요청 메시지에 대한 연산결과는 캐시 메모리(1400)에 캐싱된다. 제어 모듈(1300)은 요청 메시지와 해당 요청 메시지에 대한 연산결과, 및/또는 쿼리와 해당 쿼리에 대한 조회결과를 캐싱하고, 동일한 웹 페이지부터 동일한 패턴을 갖는 요청 메시지 및/또는 동일한 패턴을 갖는 쿼리가 접수되는 경우 별도의 연산 및/또는 조회를 수행하지 않고 캐싱된 결과를 반환하는 본 캐싱 기술이 적용됨에 따른 전체 웹 페이지 관리 시스템의 처리속도, 응답속도 등과 같은 처리성능을 실시간으로 분석한다.
제어 모듈(1300)은 관점 지향 프로그래밍 기술을 기초로 WAS 서버(3000)로 요청되는 요청 메시지 및 쿼리가 캐시 메모리에 캐싱된 요청 메시지 및 쿼리와 동일한 패턴을 갖는지 여부를 판단한다. 제어 모듈(1300)은 WAS 서버(3000)로 요청되는 요청 메시지 및 쿼리가 캐시 메모리에 캐싱된 요청 메시지 및 쿼리와 동일한 패턴을 갖는 경우 별도의 연산 및 데이터베이스 조회를 생략하고 캐시 메모리(1400)에 캐싱된 연산결과 및 조회결과를 WEB 서버(2000)로 반환하도록 한다.
제어 모듈(1300)은 캐시 메모리(1400)로부터 WEB 서버(2000)로 반환된 연산결과 및/또는 조회결과가 WEB 서버(2000)가 요청한 요청 메시지 및/또는 쿼리에 부합하는 응답이었는지 여부에 대한 피드백 정보를 WAS 서버(3000)로부터 수신한다. 제어 모듈(1300)은 수신한 피드백 정보를 기초로, WEB 서버(2000)로 반환된 연산결과 및/또는 조회결과의 개수 대비 WEB 서버(2000)가 요청한 요청 메시지 및/또는 쿼리에 부합된 연산결과 및/또는 조회결과의 개수의 비율을 나타내는 캐싱 적중률 정보를 산출한다. 제어 모듈(1300)은 실시간으로 캐시 메모리(1400)에 저장된 데이터량을 모니터링하여 시간대 별 캐시 데이터량의 변동률 정보를 산출한다. 제어 모듈(1300)은 시간대 별 캐시 데이터량의 변동률 정보를 기초로, WAS 연산결과 캐싱 모듈(1100) 및/또는 데이터베이스 조회결과 캐싱 모듈(1200)의 캐싱량을 조절하여 본 캐싱 시스템(1000)을 보다 안정적으로 운영할 수 있다.
제어 모듈(1300)은 본 캐싱 시스템(1000)의 CPU 사용량, 캐시 메모리(1400) 사용량, 네트워크 사용량, 데이터베이스 캐시 성능 정보(쿼리 및 이에 대한 데이터베이스 조회결과의 처리속도 및 응답속도) 등을 산출하고, 이를 사용자 인터페이스에 표출시킬 수 있다. 제어 모듈(1300)은 응용프로그램 캐시 성능 정보(요청 메시지 및 이에 대한 응용프로그램 연산결과의 처리속도 및 응답속도), 쿼리들의 호출 건수 순위 정보, 웹 페이지 호출 건수 순위 정보 등을 산출하고, 이를 사용자 인터페이스에 표출시킬 수 있다.
제어 모듈(1300)은 캐시 메모리(1400) 내에서 데이터베이스의 조회결과를 저장할 캐시를 할당하고, 해당 캐시에 캐싱할 조회결과에 대한 쿼리를 설정한다. 이때, 제어 모듈(1300)은 쿼리들의 호출 건수 순위 정보를 이용하여 자주 호출되어 사용되는 쿼리를 캐싱할 쿼리로 설정할 수 있다. 이때, 제어 모듈(1300)은 캐시의 이름, 카테고리, 캐시를 만료시킬 키워드, 캐시의 유지 시간, 캐시의 사용 횟수, 캐시의 만료 일정, 캐시의 활성화 일정 등을 설정할 수 있다.
제어 모듈(1300)은 캐시 메모리(1400) 내에서 응용프로그램의 연산결과를 저장할 캐시를 할당하고, 해당 캐시에 캐싱할 연산결과에 해당하는 요청 메시지 또는 웹페이지를 설정한다. 이때, 제어 모듈(1300)은 웹 페이지 호출 건수 순위 정보를 이용하여 자주 호출되어 사용되는 웹 페이지 및/또는 해당 웹페이지에서 요청되는 요청 메시지와 이에 대한 연산결과를 캐싱할 연산결과로 설정할 수 있다. 이때, 제어 모듈(1300)은 캐시의 이름, 캐시의 카테고리, 캐시가 적용될 웹 페이지 URL, 캐시를 만료시킬 키워드, 캐시의 유지 기간, 캐시의 사용 횟수, 캐시의 만료 일정, 캐시의 활성화 일정, 캐싱할 요청 메시지, 요청할 쿠키, 요청할 세션 등을 설정할 수 있다.
캐시 메모리(1400)는 요청 메시지, 요청 메시지에 대한 연산결과, 쿼리 및/또는 쿼리에 대한 조회결과를 NoSQL(Not only Structured Query Language) 기반의 IMDG(In Memory Data Grid) 기술을 이용하여 저장한다.
도 3은 본 발명의 다른 일 실시예에 따른 플러그 인 방식의 시스템 응답 성능향상 지능형 캐싱 시스템의 구성을 나타낸 도면이다. 도 4는 본 발명의 일 실시예에 따른 인공지능 분석 모듈의 구성을 나타낸 도면이다.
도 3을 참조하면, 본 캐싱 시스템(1000)에 포함되는 제어 모듈(1300)은 인공지능 분석 모듈(1310)을 포함한다.
인공지능 분석 모듈(1310)은 인공지능 기술을 기반으로, WEB 서버(2000)가 요청한 요청 메시지 및/또는 쿼리에 부합하는 연산결과 및/또는 조회결과를 도출한다. 인공지능 분석 모듈(1310)에 대한 상세한 설명은 후술한다.
도 4를 참조하면, 이러한 인공지능 분석 모듈(1310)은 전처리부(1311), 분석부(1312) 및/또는 응답 도출부(1313)를 포함한다.
전처리부(1311)는 캐시 메모리(1400)에 저장된 요청 메시지 및/또는 쿼리 중 중복되는 요청 메시지 및/또는 쿼리를 제거하는 전처리를 수행한다. 전처리부(1311)는 캐시 메모리(1400)에 기 저장된 요청 메시지 및/또는 쿼리의 타입을 기술하는 타입 정보를 기초로, 전처리된 요청 메시지 및/또는 쿼리의 타입을 도출한다. 이때, 요청 메시지 및/또는 쿼리의 타입은 요청 메시지 및/또는 쿼리의 유형을 의미한다.
분석부(1312)는 전처리부(1311)에 의해 도출된 요청 메시지 및/또는 쿼리의 타입과, 캐시 메모리(1400)에 저장된 연산결과 및/또는 조회결과 사이의 상관 관계를 분석한다. 구체적으로, 분석부(1312)는 전처리부(1311)에 의해 도출된 요청 메시지 및/또는 쿼리의 타입을 독립 변수로 갖고 연산결과 및/또는 조회결과를 종속 변수로 갖는 회귀 분석 모델을 이용하여 상관 관계를 분석한다. 분석부(1312)는 회귀 분석 모델의 시뮬레이션에 의해 산출되는 유의 확률 값을 기준으로 요청 메시지 및/또는 쿼리의 타입을 유의미한 독립 변수로 선정하며, 회귀 분석 모델의 시뮬레이션에 의해 산출되는 계수 추정치 값을 기준으로 유의미한 독립 변수로 선정된 타입을 연산결과 및/또는 조회결과와 상관 관계가 있는 독립 변수로 결정한다.
응답 도출부(1313)는 분석부(1312)에 의해 상관 관계가 있는 독립 변수로 결정된 타입을 갖는 요청 메시지 및/또는 쿼리가 WEB 서버(2000)로부터 요청되는 경우, 캐시 메모리(1400) 내의 연산결과 및/또는 조회결과들 중, 요청된 요청 메시지 및/또는 쿼리와 상관 관계가 있는 것으로 결정된 해당 연산결과 및/또는 조회결과를 요청된 요청 메시지 및/또는 쿼리에 부합하는 응답으로 도출한다.
그리고, 응답으로 도출된 해당 연산결과 및/또는 조회결과는 WAS 서버(3000) 및 WEB 서버(2000)를 거쳐 사용자에게 반환된다.
본 발명의 일 실시예에 따르면, 본 캐싱 시스템(1000)의 인공지능 분석 모듈(1310)은 WEB 서버(2000)로부터 요청되는 요청 메시지 및/또는 쿼리, 및/또는 캐시 메모리(1400)에 저장된 요청 메시지 및/또는 쿼리를 분석하고, 선형 회귀 모델링을 통해, 해당 요청 메시지 및/또는 쿼리와 연산결과 및/또는 조회결과 사이의 상관 관계를 도출할 수 있다.
즉, 본 캐싱 시스템(1000)의 인공지능 분석 모듈(1310)은 수집 단계, 전처리 단계, 분석 단계 및/또는 도출 단계를 거쳐, 요청 메시지 및/또는 쿼리에 해당하는 연산결과 및/또는 조회결과를 도출할 수 있다.
수집 단계에서, 인공지능 분석 모듈(1310)은 WEB 서버(2000)로부터 요청되는 요청 메시지 및/또는 쿼리를 수집할 수 있고, 또는 캐시 메모리(1400)에 저장된 요청 메시지 및/또는 쿼리를 수집할 수 있다. 본 단계는, 인공지능 분석 모듈(1310)의 전처리부(1311)에 의해 처리될 수 있다.
전처리 단계에서, 인공지능 분석 모듈(1310)의 전처리부(1311)는 데이터의 품질을 높이기 위하여 수집된 요청 메시지 및/또는 쿼리 중 최근 특정 기간 동안에 요청된 요청 메시지 및/또는 쿼리만을 남겨두고 이외의 기간에 발생한 요청 메시지 및/또는 쿼리는 제거할 수 있다. 일 실시예로서, 전처리부(1311)는 최근 30일 동안의 요청 메시지 및/또는 쿼리를 데이터 분석에 사용할 수 있다. 전처리부(1311)는 해당 기간 동안 요청된 요청 메시지 및/또는 쿼리 중 중복되는 요청 메시지 및/또는 쿼리를 제거할 수 있다.
분석 단계에서, 인공지능 분석 모듈(1310)의 분석부(1312)는 전처리가 완료된 요청 메시지 및/또는 쿼리와, 연산결과 및/또는 조회결과 간의 상관 관계를 분석할 수 있다. 분석부(1312)는 전처리가 완료된 요청 메시지 및/또는 쿼리와, 연산결과 및/또는 조회결과에 대한 회귀 분석 모델을 구축함으로써 두 데이터 사이의 상관 관계를 분석할 수 있다.
도출 단계에서, 인공지능 분석 모듈(1310)의 응답 도출부(1313)는 상관 관계 분석 결과를 통하여 요청 메시지 및/또는 쿼리에 대한 적절한 응답이 될 수 있는 연산결과 및/또는 조회결과를 캐시 메모리(1400) 내에서 찾을 수 있다.
도 5는 본 발명의 일 실시예에 따른 인공지능 분석 모듈의 회귀 분석에 사용되는 회귀 곡선을 나타낸 도면이다.
도 5를 참조하면, 본 캐싱 시스템(1000)은 회귀 분석 모델을 이용하여 연산결과 및/또는 조회결과와 요청 메시지 및/또는 쿼리 사이의 상관 관계를 분석할 수 있고, 이때 회귀 분석은 연산결과 및/또는 조회결과와 요청 메시지 및/또는 쿼리 간의 상관 관계를 분석하기 위하여 사용되며, 본 캐싱 시스템(1000)은 본 회귀 분석에 이 도면의 회귀 곡선을 사용할 수 있다.
본 회귀 분석은 분석 대상들이 두 집단 이상으로 나누어진 경우에 개별 관측값이 어느 집단으로 구분될 수 있는지 분석하고 예측하기 위해 사용될 수 있다. 본 회귀 분석은 선형 회귀 분석과 달리 종속 변수가 범주형 데이터를 대상으로 하고 입력 데이터가 있을 때 해당 데이터의 결과가 특정 분류로 구분되기 때문에 일종의 분류 기법으로 사용될 수 있다.
회귀 분석 방법에서 종속변수는 음의 무한대부터 양의 무한대에 해당하는 값을 가져야 하며, 종속변수 값으로 0과 1의 범주형 값을 갖게 되는 자료를 일반 회귀분석을 활용하는 것은 적절하지 않다. 이 문제를 해결하기 위하여, 본 발명의 일 실시예에 따른 회귀 분석은 종속변수(
Figure 112019042291114-pat00001
) 값으로 범주 값을 직접 사용하는 대신 종속변수(
Figure 112019042291114-pat00002
)가 특정한 범주 값(예를 들면, 1)이 될 확률을 구하여
Figure 112019042291114-pat00003
을 종속변수로 사용할 수 있다. 그러나 이 경우, 종속변수 값(
Figure 112019042291114-pat00004
)이 음수 또는 1보다 큰 값들이 나올 수 있는 문제가 있을 수 있다.
위 문제를 해결하기 위하여, 본 발명의 일 실시예에 따른 회귀 분석은 종속변수(
Figure 112019042291114-pat00005
)가 특정한 값을 가질 확률(
Figure 112019042291114-pat00006
) 및 그 값을 갖지 못할 확률(
Figure 112019042291114-pat00007
)의 비
Figure 112019042291114-pat00008
를 종속변수로 사용할 수 있다. 여기서, 종속변수(
Figure 112019042291114-pat00009
)가 특정한 값을 가질 확률(
Figure 112019042291114-pat00010
) 및 그 값을 갖지 못할 확률(
Figure 112019042291114-pat00011
)의 비
Figure 112019042291114-pat00012
은 확률(
Figure 112019042291114-pat00013
)값의 오즈(
Figure 112019042291114-pat00014
)라고 명명될 수 있다. 그러나, 이 경우에도 확률(
Figure 112019042291114-pat00015
)값의 오즈
Figure 112019042291114-pat00016
가 0에서 양의 무한대에 이르는 양수(+)값을 갖게된다는 문제점 및 종속변수가 특정한 값을 가질수 있는 확률(
Figure 112019042291114-pat00017
)값과 이에 대응되는 오즈
Figure 112019042291114-pat00018
값이 변할 수 있다는 문제점이 있을 수 있다. 이 문제를 해결하기 위하여, 본 발명의 일 실시예에 따른 회귀 분석은 오즈
Figure 112019042291114-pat00019
에 로그를 더한 로그오즈
Figure 112019042291114-pat00020
값을 종속변수로 사용할 수 있다.
본 발명의 일 실시예에 따른 회귀 분석을 위한 모델은 아래 수학식 1로 표현될 수 있다. 이 수학식에서 i는 i번째 관측값을 나타낼 수 있다. 나아가, 위 모델에서 종속변수(
Figure 112019042291114-pat00021
)가 특정 범주값 1이 될 확률
Figure 112019042291114-pat00022
을 다시 정리한 함수를 회귀방정식이라 하며 이는 아래 수학식 2로 표현될 수 있다.
Figure 112019042291114-pat00023
Figure 112019042291114-pat00024
본 발명의 일 실시예에 따른 회귀 분석의 경우, 종속 변수 y는 범위가 0과 1로 제한되며, 종속 변수가 두개이기 때문에 조건부 확률(P(y│은 이항 분포를 형성 한다. 즉, 회귀 분석을 적용할 경우, 종속 변수는 0과 1 사이에 존재하지만, 단순 선형 회귀 분석을 적용할 경우, 종속 변수는 0과 1사이의 범위를 벗어날 수 있고 이에 따라 예측의 정확도가 떨어질수 있다.
본 발명의 일 실시예에 따르면, 본 캐싱 시스템(1000)은 본 발명의 일 실시예에 따른 회귀 분석 모델을 이용하여 관측값이 포함되리라고 예측된 범주와 실제로 관측값이 포함된 범주가 정확하게 일치되는지를 평가하여 회귀 분석 모델의 타당성과 예측정확도를 검정할 수 있다.
본 캐싱 시스템(1000)의 인공지능 분석 모듈(1310)은 독립 변수로 활용되는 요청 메시지 및/또는 쿼리의 타입을 csv 파일로 만들어 data set을 구성할 수 있고, glrn 함수를 이용하여 회귀 분석 모델을 생성할 수 있다.
인공지능 분석 모듈(1310)은 각 독립 변수에 대한 계수 추정치, 표준 오차, Z 값(표준 오차에 대한 분포도를 이용하여 정규 분포를 만들고 각 독립 변수에 대한 결과값이 표준 편차를 기준으로 어느 위치에 존재하는지를 나타내는 값) 및/또는 유의 확률 값을 분석할 수 있다. 인공지능 분석 모듈(1310)은 상기 분석의 결과를 이용하여 실제 연산결과 및/또는 조회결과와 연관이 있는 독립 변수를 추출할 수 있다. 구체적으로, 인공지능 분석 모듈(1310)은 유의 확률 값으로 0.05 이하의 값을 갖는 독립 변수를 유의미한 독립 변수로서 추출할 수 있고, 유의미한 독립 변수 중 계수 추정치 값으로서 양의 값을 갖는 독립 변수를 실제 연산결과 및/또는 조회결과와 상관이 있는 독립 변수로 결정할 수 있다.
인공지능 분석 모듈(1310)은 회귀 분석 모델을 이용한 상관 관계 분석을 통하여, 요청되는 요청 메시지 및/또는 쿼리와 상관이 있는 연산결과 및/또는 조회결과를 찾을 수 있다. 인공지능 분석 모듈(1310)은 학습 데이터와 테스트 데이터의 개수를 조정하면서 반복적으로 회귀 분석을 실시할 수 있고 이로써, 회귀 분석 모델의 적합도를 검증할 수 있다. 여기서, 학습 데이터는 상관 관계가 기 분석된 요청 메시지 및/또는 쿼리를 의미하고, 테스트 데이터는 상관 관계가 아직 분석되지 않은 요청 메시지 및/또는 쿼리를 의미할 수 있다.
일 실시예로서, 인공지능 분석 모듈(1310)은 자치단체 행정업무 시스템이 탑재되어 있는 700여대의 서버에서 요청되는 4,020여 건의 요청 메시지를 수집하였다. 인공지능 분석 모듈(1310)은 AIX 운영 체제에서 요청될 수 있는 1,192개 유형의 요청 메시지 중 최근 30일간 요청된 요청 메시지의 타입 105개를 도출하였고, 상기 기간 동안 한번도 요청되지 않은 1,087개 타입의 요청 메시지는 제외하였다. 즉, 인공지능 분석 모듈(1310)은 AIX 운영체제가 가지고 있는 총 1,192개 타입의 요청 메시지를 독립 변수 X1부터 X1,192까지 설정하고 이중에서 시스템에 한번 이상 요청된 요청 메시지의 타입 105개를 추출하였다. 인공지능 분석 모듈(1310)은 수집된 4020 건의 요청 메시지 중에 최근 30일 동안에 요청된 요청 메시지만을 추출하였다. 인공지능 분석 모듈(1310)은 응용프로그램의 연산결과를 종속 변수로 하고 요청 메시지의 타입 1192개 또는 105개를 독립 변수로 하여 회귀 분석 모델을 생성하고 이 모델을 이용하여 분석을 실시하였다. 인공지능 분석 모듈(1310)은 분석 툴인 R을 이용하여 회귀 분석 모델을 생성하고, 실시하였다. 본 실시예에서 수집된 시스템 로그 4020건 중에 제1 연산결과에 대한 요청 메시지가 70건, 제2 연산결과에 대한 요청 메시지가 17건, 제3 연산결과에 대한 요청 메시지가 43건, 제4 연산결과에 대한 요청 메시지가 1615건, 제5 연산결과에 대한 요청 메시지가 29건, 제6 연산결과에 대한 요청 메시지가 1075 건, 어느 연산결과에도 해당되지 않는 요청 메시지가 1043건, 제7 연산결과에 대한 요청 메시지가 85건, 제8 연산결과에 대한 요청 메시지가 43건이었다. 본 실시예에서 인공지능 분석 모듈(1310)은 4,020건의 요청 메시지를 csv 파일로 만들어 Data Set을 만들었으며, glm 함수를 이용하여 모델을 생성하였다.
Figure 112019042291114-pat00025
표 1은 상기 실시예에 따라 회귀 분석을 통해 연산결과와 상관이 있는 유의미한 요청 메시지를 추출한 결과이다. 표 1에서, 변수명은 독립 변수로 사용된 요청 메시지의 타입을 나타내고, 변수 ID는 각 독립 변수의 ID를 나타내고, 계수 추정치는 해당 독립 변수가 종속 변수와 상관관계가 있는지 여부를 판단하는데 사용되고, 표준 오차는 표준 편차를 나타내고, Z 값은 오차에 대한 분포도를 통계학적인 정규분포로 만들었을 때 해당 독립 변수가 표준 편차 상 어떤 위치에 존재하는지를 나타내고, 유의 확률(Pr(>|z|))은 해당 독립 변수가 유의미하다고 판단하는데 사용되는 값으로서 유의 확률 값이 0.05보다 작은 변수는 통계적으로 유의미하다고 판단될 수 있다.
표 1을 참고하면, 독립 변수 중 X73, X229, X250, X251, X438, X649, X884, X1023, X1164, X1172, X1186은 계수 추정치의 값으로 양의 값을 가지므로 연산결과와 연관이 높다고 판단될 수 있고, 나머지 독립 변수들은 계수 추정치의 값으로 음의 값을 가지므로 연산결과와 무관하다고 볼 수 있다. 나아가, 인공지능 분석 모듈(1310)은 특정 연산결과인 제4 연산결과를 종속 변수로 하여 상관 관계를 분석하였고, 이 때, 계수 추정치의 값으로 양의 값을 갖는 독립 변수 X73, X229, X250, X884, X1164가 제4 연산결과와 상관이 있는 독립 변수임을 알 수 있었다. 나아가, 인공지능 분석 모듈(1310)은 제5 연산결과를 종속 변수로 하여 상관 관계를 분석하였고, 분석 결과 제5 연산결과와 상관이 있는 독립 변수는 X251, X438, X649, X1023, X1172, X1186임을 알 수 있었다.
일 실시예에 따르면, 웹 페이지 관리 시스템에 복수 개의 WEB 서버(2000), WAS 서버(3000) 및/또는 데이터베이스(4000)이 포함되는 경우, 본 캐싱 시스템(1000)은 단일 시스템으로서, 모든 서버 및/또는 데이터베이스의 요청을 일괄적으로 관리함에 따라 서버로부터의 요청 메시지 및/또는 쿼리가 중복 저장되는 현상을 방지할 수 있어, 캐시의 효율을 극대화할 수 있다.
본 캐싱 시스템(1000)이 설치된 웹 페이지 관리 시스템에 대한 성능시험의 결과는 다음과 같다.
먼저, 본 캐싱 시스템(1000)의 궁극적 목적인 동시 접속자 수가 늘어나도 안정적인 응답속도를 유지하는지에 대한 시험을 진행하였다. 동시 접속자는 200, 400, 600, 800, 1000명으로 단계적으로 증가시키면서 시스템의 응답속도를 측정하였고, 기존 시스템 환경을 그대로 둔 상태에서 본 캐싱 시스템(1000)만 플러그 인하는 형태로 설치하여 성능시험을 진행하였다.
성능시험의 대상이 되는 기존 시스템(비교례)은 WEB 서버, WAS 서버 및 데이터베이스가 각각 1대씩으로 구성된 시스템으로서, WAS 서버는 CPU Xeon E5620 2.4GHz*2(8core), RAM 24G의 사양을 갖고, 1G LAN을 네트워크 수단으로 사용하는 시스템이고, 본 캐싱 시스템이 플러그 인된 시스템(실시례)은 상기 기존 시스템(비교례)에 본 캐싱 시스템이 플러그 인되어 설치된 시스템이다.
동시 접속자의 수가 1000명인 경우, 기존 시스템(비교례)과 본 캐싱 시스템이 플러그 인된 시스템(실시례)의 응답속도와 지연 대기수를 비교해 보았다.
기존 시스템(비교례)의 경우, 응답속도는 9초 이상이었고, 지연 대기수는 250 이상으로 관측되었다. 반면, 본 캐싱 시스템이 플러그 인된 시스템(실시례)의 경우, 응답속도는 0.5초 이내였고, 지연 대기수는 0에 가까운 수치가 관측되었다. 즉, 실시례의 응답속도는 비교례 대비 20배 가량의 성능 향상을 보였고, 지연 대기수는 200배 이상의 성능 향상을 보였다.
다음으로, 기존 시스템(비교례)과 본 캐싱 시스템이 플러그 인된 시스템(실시례)의 TPS(Transaction/sec, 초당 처리량)을 비교해 보았다.
기존 시스템(비교례)의 경우, 접속자 수가 늘어도 초당 80여개의 트렌젝션만 처리가 가능하였고, 동시 접속자 수가 200명이 넘어가는 순간 시스템의 한게 처리량을 초과하였다. 반면, 본 캐싱 시스템이 플러그 인된 시스템(실시례)의 경우, 초당 대략 1900여개의 트렌젝션을 처리하였고, 동시 접속자 수가 1000명인 경우에도 접속자의 모든 요청을 처리하는 것을 확인하였다. 즉, 실시례의 TPS는 비교례 대비 20배 가량의 성능 향상을 보였다.
본 명세서에서 플러그 인 방식의 시스템 응답 성능향상 지능형 캐싱 시스템, WEB 서버, WAS 서버, 데이터베이스, WAS 연산결과 캐싱 모듈, 데이터베이스 조회결과 캐싱 모듈, 캐시 메모리, 제어 모듈, 인공지능 분석 모듈, 전처리부, 분석부 및/또는 응답 도출부는 메모리에 저장된 연속된 수행과정들을 실행하는 프로세서들일 수 있다. 또는, 프로세서에 의해 구동되고 제어되는 소프트웨어 모듈들로서 동작할 수 있다. 나아가, 프로세서는 하드웨어 장치일 수 있다.
본 발명의 보호범위가 이상에서 명시적으로 설명한 실시예의 기재와 표현에 제한되는 것은 아니다. 또한, 본 발명이 속하는 기술분야에서 자명한 변경이나 치환으로 말미암아 본 발명이 보호범위가 제한될 수도 없음을 다시 한 번 첨언한다.
1000: 플러그 인 방식의 시스템 응답 성능향상 지능형 캐싱 시스템
2000: WEB 서버
3000: WAS 서버
4000: 데이터베이스
1100: WAS 연산결과 캐싱 모듈
1200: 데이터베이스 조회결과 캐싱 모듈
1300: 제어 모듈
1400: 캐시 메모리
1310: 인공지능 분석 모듈
1311: 전처리부
1312: 분석부
1313: 응답 도출부

Claims (5)

  1. 사용량이 많은 웹 페이지에서 요청되는 요청 메시지 및 상기 요청 메시지에 대한 응용프로그램의 연산결과를 캐시 메모리에 캐싱하고, 상기 웹 페이지와 연관된 데이터의 변화를 실시간 모니터링하여 캐싱된 상기 연산결과의 유효성을 판단하는 WAS(Web Application Server) 연산결과 캐싱 모듈;
    반복적으로 사용되는 쿼리(query) 및 상기 쿼리에 대한 데이터베이스의 조회결과를 캐시 메모리에 캐싱하고, 상기 쿼리와 연관된 데이터의 변화를 실시간 모니터링하여 캐싱된 상기 조회결과의 유효성을 판단하는 데이터베이스 조회결과 캐싱 모듈; 및
    쿼리 및 웹 페이지의 사용량을 분석하여 캐싱할 쿼리 및 웹 페이지를 선정하고, 캐싱된 쿼리 및 웹 페이지에 대한 처리성능을 분석하는 제어 모듈을 포함하되,
    상기 WAS 연산결과 캐싱 모듈은 상기 연산결과를 오브젝트 저장 규칙에 따라 재사용이 가능한 직렬화된 오브젝트 형태로 변환하여 상기 캐시 메모리에 캐싱하고,
    상기 데이터베이스 조회결과 캐싱 모듈은 상기 조회결과를 오브젝트 저장 규칙에 따라 재사용이 가능한 직렬화된 오브젝트 형태로 변환하여 상기 캐시 메모리에 캐싱하며,
    상기 제어 모듈은 관점 지향 프로그래밍 기술을 기초로 WAS 서버로 요청되는 요청 메시지 및 쿼리가 상기 캐시 메모리에 캐싱된 요청 메시지 및 쿼리와 동일한 패턴을 갖는지 여부를 판단하고, 동일한 패턴을 갖는 경우 별도의 연산 및 데이터베이스 조회를 생략하고 상기 캐시 메모리에 캐싱된 상기 연산결과 및 상기 조회결과를 WEB 서버로 반환하도록 하고,
    상기 제어 모듈은 상기 WEB 서버로 반환된 상기 연산결과 및 상기 조회결과가 상기 WEB 서버가 요청한 요청 메시지 및 쿼리에 부합하는 응답이었는지 여부에 대한 피드백 정보를 상기 WAS 서버로부터 수신하고, 상기 피드백 정보를 기초로 상기 WEB 서버로 반환된 상기 연산결과 및 상기 조회결과의 개수 대비 상기 WEB 서버가 요청한 요청 메시지 및 쿼리에 부합된 상기 연산결과 및 상기 조회결과의 개수의 비율을 나타내는 캐싱 적중률 정보를 산출하고,
    상기 제어 모듈은 실시간으로 상기 캐시 메모리에 저장된 데이터량을 모니터링하여 시간대 별 캐시 데이터량의 변동률 정보를 산출하며,
    상기 제어 모듈은 인공지능을 기반으로 상기 WEB 서버가 요청한 요청 메시지 및 쿼리에 부합하는 연산결과 및 조회결과를 도출하는 인공지능 분석 모듈을 포함하고,
    상기 인공지능 분석 모듈은 상기 캐시 메모리에 저장된 요청 메시지 및 쿼리 중 중복되는 요청 메시지 및 쿼리를 제거함으로써 요청 메시지 및 쿼리를 전처리하는 전처리부로서, 상기 전처리부는 요청 메시지 및 쿼리의 타입을 기술하는 타입 정보를 기초로 전처리된 상기 요청 메시지 및 상기 쿼리의 타입을 도출하고;
    도출된 상기 요청 메시지 및 상기 쿼리의 타입과 상기 캐시 메모리에 저장된 연산결과 및 조회결과 사이의 상관 관계를 분석하는 분석부로서, 상기 분석부는 도출된 상기 요청 메시지 및 상기 쿼리의 타입을 독립 변수로 갖고 상기 연산결과 및 상기 조회결과를 종속 변수로 갖는 회귀 분석 모델을 이용하여 상관 관계를 분석하고, 상기 회귀 분석 모델의 시뮬레이션에 의해 산출되는 유의 확률 값을 기준으로 상기 요청 메시지 및 상기 쿼리의 타입을 유의미한 독립 변수로 선정하며, 상기 회귀 분석 모델의 시뮬레이션에 의해 산출되는 계수 추정치 값을 기준으로 상기 유의미한 독립 변수로 선정된 타입을 상기 연산결과 및 상기 조회결과와 상관 관계가 있는 독립 변수로 결정하고; 및
    상기 상관 관계가 있는 독립 변수로 결정된 타입을 갖는 요청 메시지 및 쿼리가 요청되는 경우 상기 연산결과 및 상기 조회결과를 요청된 상기 요청 메시지 및 상기 쿼리에 부합하는 응답으로 도출하는 응답 도출부를 포함하는 것을 특징으로 하는 플러그 인 방식의 시스템 응답 성능향상 지능형 캐싱 시스템.
  2. 삭제
  3. 청구항 1에 있어서,
    상기 캐시 메모리는 상기 요청 메시지, 상기 요청 메시지에 대한 연산결과, 상기 쿼리 및 상기 쿼리에 대한 조회결과를 NoSQL(Not only Structured Query Language) 기반의 IMDG(In Memory Data Grid) 기술을 이용하여 저장하는 것을 특징으로 하는 플러그 인 방식의 시스템 응답 성능향상 지능형 캐싱 시스템.
  4. 삭제
  5. 삭제
KR1020190047883A 2019-04-24 2019-04-24 플러그 인 방식의 시스템 응답 성능향상 지능형 캐싱 시스템 KR102027823B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190047883A KR102027823B1 (ko) 2019-04-24 2019-04-24 플러그 인 방식의 시스템 응답 성능향상 지능형 캐싱 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190047883A KR102027823B1 (ko) 2019-04-24 2019-04-24 플러그 인 방식의 시스템 응답 성능향상 지능형 캐싱 시스템

Publications (1)

Publication Number Publication Date
KR102027823B1 true KR102027823B1 (ko) 2019-10-02

Family

ID=68423042

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190047883A KR102027823B1 (ko) 2019-04-24 2019-04-24 플러그 인 방식의 시스템 응답 성능향상 지능형 캐싱 시스템

Country Status (1)

Country Link
KR (1) KR102027823B1 (ko)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110837517A (zh) * 2019-11-07 2020-02-25 中盈优创资讯科技有限公司 前后端解耦场景下的后端数据处理方法及装置
CN111858710A (zh) * 2020-07-20 2020-10-30 浪潮云信息技术股份公司 一种通过预处理和缓存方式提高统计效率的方法
CN112699147A (zh) * 2020-12-31 2021-04-23 京东数字科技控股股份有限公司 分页查询方法、装置、设备及存储介质
KR102476620B1 (ko) 2021-09-30 2022-12-09 장희창 캐시 자동제어 시스템
KR102576226B1 (ko) * 2023-02-28 2023-09-06 오병율 인공지능 알고리즘을 통해 서버 과부하 예측 및 해소가 가능한 캐싱 시스템
CN117724852A (zh) * 2024-02-07 2024-03-19 微网优联科技(成都)有限公司 一种云电脑计算资源分配方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050001422A (ko) * 2003-06-25 2005-01-06 마이크로소프트 코포레이션 캐시 엔트리를 무효화시키는 데 사용될 수 있는데이터베이스 테이블 변경 정보의 등록 및 검색
KR20050083462A (ko) * 2004-02-23 2005-08-26 한국과학기술원 데이터베이스 기반 웹 사이트를 위한 데이터베이스 가속기및 가속 방법
KR100876320B1 (ko) 2007-02-12 2008-12-31 한국정보인증주식회사 내장형 보안서버를 이용한 웹서비스 보안 시스템 및 방법.
KR20160126655A (ko) 2015-04-24 2016-11-02 엔트릭스 주식회사 클라우드 스트리밍 서비스 기반의 웹 서버 모니터링 방법 및 이를 위한 장치

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050001422A (ko) * 2003-06-25 2005-01-06 마이크로소프트 코포레이션 캐시 엔트리를 무효화시키는 데 사용될 수 있는데이터베이스 테이블 변경 정보의 등록 및 검색
KR20050083462A (ko) * 2004-02-23 2005-08-26 한국과학기술원 데이터베이스 기반 웹 사이트를 위한 데이터베이스 가속기및 가속 방법
KR100876320B1 (ko) 2007-02-12 2008-12-31 한국정보인증주식회사 내장형 보안서버를 이용한 웹서비스 보안 시스템 및 방법.
KR20160126655A (ko) 2015-04-24 2016-11-02 엔트릭스 주식회사 클라우드 스트리밍 서비스 기반의 웹 서버 모니터링 방법 및 이를 위한 장치

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110837517A (zh) * 2019-11-07 2020-02-25 中盈优创资讯科技有限公司 前后端解耦场景下的后端数据处理方法及装置
CN111858710A (zh) * 2020-07-20 2020-10-30 浪潮云信息技术股份公司 一种通过预处理和缓存方式提高统计效率的方法
CN111858710B (zh) * 2020-07-20 2023-12-22 浪潮云信息技术股份公司 一种通过预处理和缓存方式提高统计效率的方法
CN112699147A (zh) * 2020-12-31 2021-04-23 京东数字科技控股股份有限公司 分页查询方法、装置、设备及存储介质
KR102476620B1 (ko) 2021-09-30 2022-12-09 장희창 캐시 자동제어 시스템
KR102576226B1 (ko) * 2023-02-28 2023-09-06 오병율 인공지능 알고리즘을 통해 서버 과부하 예측 및 해소가 가능한 캐싱 시스템
CN117724852A (zh) * 2024-02-07 2024-03-19 微网优联科技(成都)有限公司 一种云电脑计算资源分配方法及装置
CN117724852B (zh) * 2024-02-07 2024-05-07 微网优联科技(成都)有限公司 一种云电脑计算资源分配方法及装置

Similar Documents

Publication Publication Date Title
KR102027823B1 (ko) 플러그 인 방식의 시스템 응답 성능향상 지능형 캐싱 시스템
Cho et al. Estimating frequency of change
US8423534B2 (en) Actively managing resource bottlenecks in a database system
US8082273B2 (en) Dynamic control and regulation of critical database resources using a virtual memory table interface
CN100412871C (zh) 生成用于自动化系统管理的领域知识的系统和方法
US7881920B2 (en) Systemic enterprise management method and apparatus
Kolomvatsos et al. An efficient time optimized scheme for progressive analytics in big data
US9639585B2 (en) Database and method for evaluating data therefrom
CN1946037A (zh) 管理网格计算环境的方法和系统
US20200073861A1 (en) System and method for improved data consistency in data systems incuding dependent algorithms
US20090228446A1 (en) Method for controlling load balancing in heterogeneous computer system
CN107783985A (zh) 一种分布式数据库查询方法、装置及管理系统
AU2021244852A1 (en) Offloading statistics collection
Ahmadvand et al. Big data processing at the edge with data skew aware resource allocation
Golab Sliding window query processing over data streams
Cao et al. Timon: A timestamped event database for efficient telemetry data processing and analytics
Shestak et al. A stochastic approach to measuring the robustness of resource allocations in distributed systems
US20050108327A1 (en) Hit ratio estimation device, hit ratio estimation method, hit ration estimation program and recording medium
CN109819019A (zh) 用于大规模网络数据采集的监控与统计分析方法和系统
KR102576226B1 (ko) 인공지능 알고리즘을 통해 서버 과부하 예측 및 해소가 가능한 캐싱 시스템
CN105302909B (zh) 基于分区偏移计算的网络安全日志系统大数据检索方法
Gu et al. Deadline-aware complex event processing models over distributed monitoring streams
Martin et al. Predicting energy consumption with streammine3g
CN105630580A (zh) 基于调度平台的数据汇总方法及数据汇总装置
Chou et al. Tailcut: Power reduction under quality and latency constraints in distributed search systems

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant