KR102633182B1 - 디지털 서비스 기반의 발급된 키를 활용한 진입 관리 서버 및 방법 - Google Patents

디지털 서비스 기반의 발급된 키를 활용한 진입 관리 서버 및 방법 Download PDF

Info

Publication number
KR102633182B1
KR102633182B1 KR1020230124970A KR20230124970A KR102633182B1 KR 102633182 B1 KR102633182 B1 KR 102633182B1 KR 1020230124970 A KR1020230124970 A KR 1020230124970A KR 20230124970 A KR20230124970 A KR 20230124970A KR 102633182 B1 KR102633182 B1 KR 102633182B1
Authority
KR
South Korea
Prior art keywords
entry
service server
allowance
service
processor
Prior art date
Application number
KR1020230124970A
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 KR1020230124970A priority Critical patent/KR102633182B1/ko
Application granted granted Critical
Publication of KR102633182B1 publication Critical patent/KR102633182B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Computer And Data Communications (AREA)

Abstract

디지털 서비스 기반 서비스 서버의 진입 관리 방법 및 서버가 개시된다. 본 발명의 일 실시예에 따른 디지털 서비스 기반 서비스 서버의 진입 관리 방법은 상태 정보를 수집하는 단계; 상태 정보를 기초로 서비스 서버로의 진입 허용 수를 설정하되, 초기 진입 허용 수를 설정하거나, 또는 기 설정된 진입 허용 수를 변경하는 단계; 및 설정된 진입 허용 수를 기초로 사용자 단말기의 서비스 서버로의 진입을 제어하는 단계;를 포함한다.

Description

디지털 서비스 기반의 발급된 키를 활용한 진입 관리 서버 및 방법{ENTRY MANAGEMENT SERVER USING ISSUED KEY BASED ON DIGITAL SERVICE, METHOD}
본 개시는 디지털 서비스 기반의 발급된 키를 활용한 진입 관리 서버 및 방법에 관한 것이다.
수강신청, 콘서트 예약 및 구매 이벤트 등의 콘텐츠 서비스를 제공하는 서비스 서버의 동시 접속자가 증가함에 따라, 콘텐츠 서비스를 제공하는 서비스 서버측의 응답속도가 저하되거나 서비스가 중단되는 등의 상황이 종종 발생하고 있는 실정이다.
시스템은 HTML(hypertext markup language)로 구성된 웹 페이지를 제공하는 WEB, WEB으로부터 전달된 요청 메시지에 대한 응용 프로그램 서비스를 처리하는 WAS(web application server) 및 쿼리문에 대한 응답으로 제공할 수 있는 데이터를 저장하는 데이터베이스로 구성될 수 있다.
상술한 시스템에서, 동시 접속자가 폭주하는 경우, WEB은 네트워크 대역폭 부족으로 인해 응답시간이 지연되는 현상이 발생할 수 있다.
대한민국 등록특허공보 제10-1654266호 (2016. 08. 30.)
본 개시에 개시된 실시예는 콘텐츠 서비스를 제공하는 서비스 서버로의 진입을 효율적으로 제어하기 위한 디지털 서비스 기반 서비스 서버의 진입 관리 방법 및 서버를 제공하는데 그 목적이 있다.
본 개시가 해결하고자 하는 과제들은 이상에서 언급된 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상술한 기술적 과제를 달성하기 위한 본 개시에 일 측면에 따른 디지털 서비스 기반 서비스 서버의 진입 관리 서버는 TS 처리부; IC 처리부; 및 검증부의 동작을 제어하는 프로세서;를 포함하고, 상기 프로세서는, 상태 정보를 수집하고, 상기 상태 정보를 기초로 서비스 서버로의 진입 허용 수를 설정하되, 초기 진입 허용 수를 설정하거나, 또는 기 설정된 진입 허용 수를 변경하고, 및 설정된 상기 진입 허용 수를 기초로 사용자 단말기의 상기 서비스 서버로의 진입을 제어할 수 있다.
상기 프로세서는, 상기 진입 허용 수를 설정할 때, 상기 상태 정보를 기 설정된 진입 허용 기준과 비교하고, 및 비교결과에 따라, 상기 진입 허용 수를 설정할 수 있다.
상기 상태 정보는 사용자 체감속도 및 응답속도를 포함하는 처리속도, 서비스 요청량, 대기자수, 대기시간, 시스템 진입량, 자원 사용량, 및 처리시간 중 적어도 하나 이상을 포함하는 서비스 현황 정보를 포함하고, 상기 프로세서는, 상기 진입 허용 수를 설정할 때, 상기 서비스 현황 정보가 상기 기 설정된 진입 허용 기준과 일치하는 경우, 상기 초기 진입 허용 수를 설정하거나, 또는 상기 기 설정된 진입 허용 수를 유지할 수 있다.
상기 프로세서는, 상기 진입 허용 수를 설정할 때, 상기 서비스 현황 정보가 상기 기 설정된 진입 허용 기준과 비일치하는 경우, 상기 비교 결과에 따라, 상기 초기 진입 허용 수를 설정하거나, 또는 상기 기 설정된 진입 허용 수를 증가 또는 감소시킬 수 있다.
상기 상태 정보는 CPU 정보, 메모리정보, 디스크 정보, 네트워크 정보, 처리량, 쓰레드 수, 응답시간, 동시단말 사용자, 액티스 서비스, 액티브 사용자, 에러율, 거부율, 시간당 히트(hit) 수, 시간당 방문자수, 일별 히트(hit) 수, 일별 방문자 수, 고객사 WAS 현황, JDBC(java database connectivity) 유휴, JDBC 할당, JDBC 활성, 총 JVM(java virtual machine) 메모리 및 JVM 메모리 사용량 중 적어도 하나 이상을 포함하는 서비스 서버 정보를 포함하고, 상기 프로세서는, 상기 진입 허용 수를 설정할 때, 상기 서비스 서버 정보가 상기 기 설정된 진입 허용 기준과 일치하는 경우, 상기 초기 진입 허용 수를 설정하거나, 또는 상기 기 설정된 진입 허용 수를 유지하고, 상기 서비스 서버 정보가 상기 기 설정된 진입 허용 기준과 비일치하는 경우, 상기 비교 결과에 따라, 상기 초기 진입 허용 수를 설정하거나, 또는 상기 기 설정된 진입 허용 수를 증가 또는 감소시킬 수 있다.
상기 프로세서는, 상기 진입 허용 수를 설정할 때, 서비스 현황 정보를 기 설정된 진입 허용 기준과 비교하고, 비교결과, 상기 서비스 현황 정보가 상기 기 설정된 진입 허용 기준과 비일치하는 경우, 서비스 서버 정보를 기 설정된 진입 허용 기준과 비교하고, 비교 결과, 상기 서비스 서버 정보가 상기 기 설정된 진입 허용 기준과 비일치하는 경우, 상기 비교 결과에 따라 상기 진입 허용 수를 증가 또는 감소하여 변경할 수 있다.
상기 프로세서는, 상기 진입 허용 수를 설정한 이후, 상기 서비스 서버로의 진입을 제어하기 이전에, 상기 진입 허용 수를 검증하여 재조정하는 것을 더 포함할 수 있다.
상기 프로세서는, 상기 재조정할 때, 상기 서비스 서버의 동일 이벤트에 대한 과거 이력을 기초로 학습된 인공지능 모델을 적용하여 상기 진입 허용 수의 조정 필요 여부를 판단하고, 및 판단 결과, 상기 진입 허용 수의 조정이 필요한 경우, 상기 판단 결과에 따라 상기 진입 허용 수를 변경하여 추천하거나, 또는 상기 진입 허용 수를 직접 변경하며, 상기 과거 이력은 상기 서비스 서버에서의 과거 측정 데이터, 과거 진입 허용 수 및 과거 발생 이벤트를 포함할 수 있다.
본 개시에 다른 측면에 따른 디지털 서비스 기반 서비스 서버의 진입 관리 방법은, 진입 관리 서버에 의해 수행되는 방법에 있어서, 상태 정보를 수집하는 단계; 상기 상태 정보를 기초로 서비스 서버로의 진입 허용 수를 설정하되, 초기 진입 허용 수를 설정하거나, 또는 기 설정된 진입 허용 수를 변경하는 단계; 및 설정된 상기 진입 허용 수를 기초로 사용자 단말기의 상기 서비스 서버로의 진입을 제어하는 단계;를 포함할 수 있다.
이 외에도, 본 개시를 구현하기 위한 실행하기 위한 컴퓨터 판독 가능한 기록 매체에 저장된 컴퓨터 프로그램이 더 제공될 수 있다.
이 외에도, 본 개시를 구현하기 위한 방법을 실행하기 위한 컴퓨터 프로그램을 기록하는 컴퓨터 판독 가능한 기록 매체가 더 제공될 수 있다.
본 개시의 전술한 과제 해결 수단에 의하면, 콘텐츠 서비스를 제공하는 서비스 서버로의 진입 허용 수를 상황에 따라 자동으로 조정하기 때문에, 서비스 서버의 불필요한 리소스 낭비를 사전에 예방하고, 서비스 서버로의 접속을 안정적인 상태로 유지할 수 있다는 효과를 제공할 수 있다.
본 개시의 전술한 과제 해결 수단에 의하면, 서비스 서버의 진입 허용 수를 다양한 방식으로 검증하여 결정하기 때문에, 적절한 진입 허용 수를 적용함에 따라 서비스 서버 및 사용자 모두의 만족도를 향상시킬 수 있다는 것이다.
본 개시의 효과들은 이상에서 언급된 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 개시의 서비스 서버로의 진입 관리 방법을 설명하기 위한 전체적인 시스템을 나타내는 도면
도 2는 본 개시의 진입 관리 서버의 구성을 나타내는 블록도
도 3은 본 개시의 진입 관리 방법을 설명하기 위한 흐름도
도 4는 도 3의 일부를 상세하게 설명하기 위한 흐름도
도 5는 본 개시의 진입 관리 방법을 설명하기 위한 예시도
본 개시 전체에 걸쳐 동일 참조 부호는 동일 구성요소를 지칭한다. 본 개시가 실시예들의 모든 요소들을 설명하는 것은 아니며, 본 개시가 속하는 기술분야에서 일반적인 내용 또는 실시예들 간에 중복되는 내용은 생략한다. 명세서에서 사용되는 '부, 모듈, 부재, 블록'이라는 용어는 소프트웨어 또는 하드웨어로 구현될 수 있으며, 실시예들에 따라 복수의 '부, 모듈, 부재, 블록'이 하나의 구성요소로 구현되거나, 하나의 '부, 모듈, 부재, 블록'이 복수의 구성요소들을 포함하는 것도 가능하다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 직접적으로 연결되어 있는 경우 뿐 아니라, 간접적으로 연결되어 있는 경우를 포함하고, 간접적인 연결은 무선 통신망을 통해 연결되는 것을 포함한다.
또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
명세서 전체에서, 어떤 부재가 다른 부재 "상에" 위치하고 있다고 할 때, 이는 어떤 부재가 다른 부재에 접해 있는 경우뿐 아니라 두 부재 사이에 또 다른 부재가 존재하는 경우도 포함한다.
제 1, 제 2 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위해 사용되는 것으로, 구성요소가 전술된 용어들에 의해 제한되는 것은 아니다.
단수의 표현은 문맥상 명백하게 예외가 있지 않는 한, 복수의 표현을 포함한다.
각 단계들에 있어 식별부호는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 실시될 수 있다.
이하 첨부된 도면들을 참고하여 본 개시의 작용 원리 및 실시예들에 대해 설명한다.
본 명세서에서 '본 개시에 따른 진입 관리 서버'는 연산처리를 수행하여 사용자에게 결과를 제공할 수 있는 다양한 장치들이 모두 포함된다. 예를 들어, 본 개시에 따른 진입 관리 서버는, 컴퓨터, 서버 장치 및 휴대용 단말기를 모두 포함하거나, 또는 어느 하나의 형태가 될 수 있다.
여기에서, 상기 컴퓨터는 예를 들어, 웹 브라우저(WEB Browser)가 탑재된 노트북, 데스크톱(desktop), 랩톱(laptop), 태블릿 PC, 슬레이트 PC 등을 포함할 수 있다.
상기 서버 장치는 외부 장치와 통신을 수행하여 정보를 처리하는 서버로써, 애플리케이션 서버, 컴퓨팅 서버, 데이터베이스 서버, 파일 서버, 게임 서버, 메일 서버, 프록시 서버 및 웹 서버 등을 포함할 수 있다.
상기 휴대용 단말기는 예를 들어, 휴대성과 이동성이 보장되는 무선 통신 장치로서, PCS(Personal Communication System), GSM(Global System for Mobile communications), PDC(Personal Digital Cellular), PHS(Personal Handyphone System), PDA(Personal Digital Assistant), IMT(International Mobile Telecommunication)-2000, CDMA(Code Division Multiple Access)-2000, W-CDMA(W-Code Division Multiple Access), WiBro(Wireless Broadband Internet) 단말, 스마트 폰(Smart Phone) 등과 같은 모든 종류의 핸드헬드(Handheld) 기반의 무선 통신 장치와 시계, 반지, 팔찌, 발찌, 목걸이, 안경, 콘택트 렌즈, 또는 머리 착용형 장치(head-mounted-device, HMD) 등과 같은 웨어러블 장치를 포함할 수 있다.
도 1은 본 개시의 서비스 서버로의 진입 관리 방법을 설명하기 위한 전체적인 시스템을 나타내는 도면이다.
도 1을 참고하면, 진입 관리 서버(100)는 사용자 단말기(End-User(Browser))(200)와 서비스 서버(300) 사이에 위치하여, 사용자 단말기(200)의 서비스 서버(300)로의 진입을 관리할 수 있다.
진입 관리 서버(100)는 서비스 서버(300)로의 진입을 요청하는 사용자 단말기(200)에 대해 차단, 우회 및 진입 허용 관리의 절차를 수행할 수 있다.
상기 차단은 초당 접근 수가 매크로 수준인 경우, 차단 정보를 사용자 단말기(200)로 전송하여 특정 액션을 발생시키는 버튼(예를 들어, 제출 및 확인 등)을 선택하지 못하도록 차단하는 절차를 의미할 수 있다.
상기 우회는 서비스 서버(300)로의 진입을 대기하기 위한 대기열이 발생한 상태여도 특정한 정책이나 주요 클라이언트인 경우, 대기하지 않고 서비스 서버(300)로 바로 진입하도록 우회시키는 절차를 의미할 수 있다.
상기 진입 허용 관리는 서비스 서버(300)로의 진입을 위한 정상적인 대기 관리를 의미하는 것으로서, 진입 허용 수를 기초로 진입을 제어하여 콘텐츠 서비스를 제공하는 서비스 서버(200)의 리소스 또는 상태를 관리하는 절차를 의미할 수 있다.
이때, 진입 허용 수는 진입 관리 서버(100)의 키(key)를 발급받아 해당 시간에 서비스 서버(300)의 특정 트랜잭션(예를 들어, 로그인 버튼, 수강 신청 버튼 등)에 동시 진입이 가능한 사용자 수를 의미할 수 있다. 이때, 사용자 수는 실질적으로 사용자 단말기(200)를 통해 서비스 서버(300)로 진입할 수 있는 사용자 단말기(200) 수를 의미할 수 있다.
예를 들어, 수강 신청 서비스를 제공하는 서비스 서버(300)로의 진입 허용 수가 50명이고, 55명이 동일 시간에 수강신청 버튼을 선택한 경우, 진입 관리 서버(100)는 50명에 대해서는 서비스 서버(300)로의 동시 입장이 가능하도록 하나, 5명에 대해서는 대기열에 배치될 수 있도록 처리할 수 있다. 이후, 50명의 서비스 서버(300)로의 진입이 완료됨과 동시에 발급된 키가 회수되면, 회수된 키는 대기열에 배치된 5명에게 다시 발급되어 순차 입장될 수 있다.
이를 위해, 진입 관리 서버(100)는 진입 허용 수를 적절하게 설정하는 것이 중요할 수 있다. 만약, 진입 허용 수가 적정 수 보다 높게 설정되면 많은 대기자가 한꺼번에 서비스 서버로 진입할 수 있으나, 서비스 서버(300)가 불안정해지고, 진입 허용 수가 적정 수 보다 낮게 설정되면 안정적으로 소수의 대기자가 서비스 서버(300)로 진입하게 되나 서비스 서버(300)의 리소스를 낭비하는 문제점이 발생할 수 있다. 이에, 본 개시의 진입 관리 서버(100)는 상태 정보를 기초로 진입 허용 수를 적절하게 설정할 수 있다. 이에 대한 상세 설명은 후술하기로 한다.
서비스 서버(300)는 웹(web) 서버, 웹 애플리케이션 서버(web application server, 이하, WAS라고 하기로 함) 및 데이터베이스(DB)를 포함할 수 있다. 이때, 데이터베이스는 데이터베이스 관리 시스템(database management system, DBMS)이라 하는 것도 가능하다.
웹 서버는 HTTP(hypertext transfer protocol) 프로토콜을 기반으로 웹 브라우저 또는 웹 크롤러와 같은 클라이언트의 요청을 주로 처리하는 서버를 의미하는 것으로, HTTP 요청(request)을 수신하면 이에 대한 HTTP 응답(response)을 회신할 수 있다.
예를 들어, 웹 서버는 파일 경로 이름을 수신하여 경로와 일치하는 정적(static)인 형태의 파일 콘텐츠(html, jpeg, css 등)를 반환할 수 있다.
웹 서버는 동적인 컨텐츠 제공을 위한 요청을 WAS로 전달하고, 이에 대한 처리 결과를 WAS로부터 수신하여 클라이언트에게 전달할 수 있다.
WAS는 HTTP를 이용한 애플리케이션 서버를 의미하는 것으로, 정적인 HTTP 데이터 처리에 특화된 웹 서버에 동적인 데이터를 이용할 수 있도록 하는 컨테이너(container)를 포함할 수 있다.
WAS는 데이터베이스 조회나 다양한 로직 처리를 요구하는 동적인 컨텐츠를 제공하기 위한 애플리케이션 서버일 수 있다. 상기, WAS는 HTTP를 통해 컴퓨터나 장치에 애플리케이션을 수행하여 주는 미들웨어(소프트웨어 엔진)일 수 있다. WAS는 웹 컨테이너(web container) 또는 서블릿 컨테이너(servlet container)라고 명명하는 것도 가능하다. 이때, 컨테이너는 JSP 및 Servlet을 실행시킬 수 있는 소프트웨어를 의미할 수 있다.
WAS는 분산 트랜잭션, 보안, 메시징, 스레드 처리 등의 기능을 처리하는 분산 환경에서 적용될 수 있다.
구체적으로, WAS는 프로그램 실행 환경과 데이터베이스의 접속 기능 및 다수의 트랜잭션 관리 기능을 구현할 수 있다. 상기 트랜잭션은 논리적인 작업 단위를 의미할 수 있다.
WAS는 사용자의 요청에 따라 데이터베이스로부터 해당 데이터를 수신하여, 비즈니스 로직에 맞게 실시간으로 결과를 생성하여 제공할 수 있다. 상기 WAS는 복수 개로 구현될 수 있으며, 각 서비스 서버(300)마다 적용하는 WAS의 개수가 상이할 수 있다.
데이터베이스는 데이터를 저장 및 관리하는 구성을 의미할 수 있다. 이때, 데이터베이스는 WAS의 요청에 따라 해당 데이터를 회신할 수 있다.
도 2는 본 개시의 진입 관리 서버의 구성을 나타내는 블록도이다.
도 2를 참고하면, 진입 관리 서버(100)는 프로세서(110), 메모리(150) 및 통신부(160)를 포함한다. 이때, 프로세서(110)는 TS 처리부(120), IC 처리부(130) 및 검증부(140)를 포함하여 해당 각 구성의 동작을 제어할 수 있다. 도 2에 도시된 구성요소들은 본 개시에 따른 진입 관리 서버(100)를 구현하는데 있어서 필수적인 것은 아니어서, 본 명세서 상에서 설명되는 진입 관리 서버(100)는 위에서 열거된 구성요소들 보다 많거나, 또는 적은 구성요소들을 가질 수 있다.
프로세서(110)는 트랜잭션 단위(예를 들어, 사용자 단말기(200)를 통한 로그인, 조회, 수강 신청 등의 각 단위) 진입 요청을 제한하고자 하고, 이를 위해 초당 로그인 개수를 한정하여 진입을 제어할 수 있다.
프로세서(110)는 상태 정보를 수집할 수 있다. 상기 상태 정보는 서비스 서버(300)로의 사용자 단말기(200)의 진입 허용 수를 조정 또는 유지하기 위해 고려하기 위한 정보로, 서비스 현황 정보이거나, 또는 서비스 서버(300)로부터 수집되는 서비스 서버 정보일 수 있다.
프로세서(110)는 상태 정보를 기초로 서비스 서버로의 진입 허용 수를 설정하되, 초기 진입 허용 수를 설정하거나, 또는 기 설정된 진입 허용 수를 변경할 수 있다.
프로세서(110)는 설정된 상기 진입 허용 수를 기초로 사용자 단말기(200)의 서비스 서버(300)로의 진입을 제어할 수 있다.
도 2를 참고하면, 프로세서(110)는 TS(transaction) 처리부(120)를 통해 사용자 단말기(200) 입장 시 발급할 키(key)를 관리할 수 있다. 구체적으로, 프로세서(110)는 TS 처리부(120)를 통해 키 발급 및 키 회수 기능을 수행할 수 있다. 이때, 프로세서(110)의 TS 처리부(120)를 통한 키 발급에 따라 사용자 단말기(200) API의 진입이 허용될 수 있다.
프로세서(110)는 TS 처리부(120)를 통해 진입 관리 기능이 연동된 트랜잭션에서의 서비스 현황 정보를 실시간 수집 및 모니터링할 수 있다. 상기 진입 관리 기능은 사용자 단말기(200)의 서비스 서버(300)로의 입장을 진입 허용 수에 따라 제어하는 것을 의미할 수 있다.
이때, 진입 관리 기능이 연동되었다는 것은 진입 관리가 요구되는 특정 버튼 및 페이지에 진입 관리를 위한 소스코드를 적용한 것을 의미할 수 있다. 예를 들어, 진입 관리 기능은 수강신청, 드로우(draw), 예매 버튼 등 특정 페이지에서 각각의 버튼을 선택적으로 제어할 수 있도록 연동되거나, 또는 하나의 페이지에 연동될 수 있다.
상기 서비스 현황 정보는, 사용자 체감속도 및 응답속도를 포함하는 처리속도, 서비스 요청량, 대기자수, 대기시간, 시스템 진입량, 자원 사용량, 및 처리시간 중 적어도 하나 이상을 포함할 수 있다. 이때, 처리속도 및 처리시간은 각각 사용자 단말기(200)를 통해 특정 트랜잭션(버튼 또는 페이지)이 선택됨에 따라 대응되는 페이지가 사용자 단말기(200)를 통해 출력되는 사용자 입장의 체감속도 및 체감시간를 의미할 수 있다. 서비스 요청량은 특정 트랜잭션별 사용자 단말기(200)의 진입 요청량을 의미할 수 있다. 상기 대기자수 및 대기시간은 각각 진입 관리 서버(100)의 특정 트래잭션별 대기열의 대기자수 및 대기자별 대기시간을 의미할 수 있다. 또한, 시스템 진입량은 트랜잭션별 대기열로부터 서비스 서버(300)로 진입한 사용자의 진입량을 의미할 수 있다. 또한, 자원 사용량은 진입 관리 서버(100)에서의 자원 사용량을 의미할 수 있다.
예를 들어, 사용자 단말기(200)를 통해 수강신청 버튼이 선택된 경우, 프로세서(110)는 TS 처리부(120)를 통해 수강 신청 페이지가 로그되기까지의 소요된 시간 데이터(상술한 처리시간)를 수집할 수 있다.
사용자 단말기(200)를 통해 로그인 버튼이 선택됨에 따라, 진입 관리 서버(100)는 키 발급 및 진입 요청을 수신할 수 있다.
서비스 서버(300)로의 진입 가능 시, 프로세서(110)는 TS 처리부(120)를 통해 키 발급을 수행할 수 있다. 만약, 서비스 서버(300)로의 진입 불가 시, 프로세서(110)는 TS 처리부(120)를 통해 사용자 단말기(200)에 대한 대기열 배치 및 대기 화면이 호출될 수 있다.
이때, 프로세서(110)는 TS 처리부(120)를 통해 서비스 서버(300)로의 진입 여부와 관계없이, 사용자 단말기(200)로부터 진입 요청을 수신하면, 이를 서비스 서버(300)의 WAS로 전달하여 진입 요청이 기록될 수 있도록 할 수 있다.
프로세서(110)는 키를 발급받은 사용자 단말기(200)의 서비스 서버(300)로의 진입이 완료되면, 키를 회수할 수 있다.
프로세서(110)는 TS 처리부(120)를 통해 사용자 단말기(200)로 키를 발급한 시점(진입 시점)으로부터 키 회수 시점(진입 완료 시점)까지의 시간을 처리시간으로 수집하여 메모리(150)에 저장할 수 있다. 이때, 처리시간은 사용자 체감시간일 수 있다. 상기 진입 완료 시점은 상술한 사용자 단말기(200) 상에 해당 페이지가 출력되는 시점과 동일할 수 있다.
예를 들어, 처리시간은 사용자 단말기(200) 상에서 로그인 버튼이 선택된 후, WAS에 진입 요청이 전달되고 결과 페이지가 사용자 단말기(200)의 웹 화면 상에 로딩되는 시간을 의미할 수 있는 것이다.
한편, 서비스 서버(300)로의 진입을 요청하는 사용자의 수가 많을수록 응답이 느려지므로, 처리시간도 늘어날 수 있다. 진입 관리 서버(100)는 진입한 사용자가 계속 이용하는 것이 아니고, 트랜잭션 단위로 관리할 수 있다. 즉, 로그인, 조회, 각각의 버튼 별로 진입 시 진입 관리 서버(100)로 진입 가부를 문의 후 진입할 수 있는 것이다.
각 페이지마다 진입 관리가 적용되어 있는 경우, 프로세서(100)는 초당 클릭 수를 제한할 수 있다. 예를 들어, 초당 클릭 허용 수가 100인 경우, 프로세서(100)는 100개의 사용자 단말기(200)에 대해 동시 로그인이 가능하도록 처리할 수 있는 것이다.
프로세서(110)는 IC(intelligent control) 처리부(130)를 통해 TS 처리부(120)에 의해서 수집된 데이터를 전달받고, 서비스 서버 정보를 이용하여 사용자 진입 허용 수를 제어할 수 있다. 이때, 서비스 서버 정보는 APM(Application Performance Management) 데이터를 포함할 수 있다.
상기 APM은 서비스 서버(300)의 WAS(Web application Server)를 모니터링하여, 서비스 서버의 상태를 나타내는 서비스 서버 정보로 수집한 것일 수 있다.
IC 처리부(130)는 서비스 서버(300)의 오픈 API를 통해서 서비스 서버 정보를 수집(gathering)할 수 있다. 이때, 서비스 서버 정보는 진입 허용 수를 제어하기 위해 고려되어야 할 서비스 서버(300)의 정보를 의미하는 것으로, CPU 정보, 메모리정보, 디스크 정보, 네트워크 정보, 처리량, 쓰레드 수, 응답시간, 동시단말 사용자, 액티스 서비스, 액티브 사용자, 에러율, 거부율, 시간당 히트(hit) 수, 시간당 방문자수, 일별 히트(hit) 수, 일별 방문자 수, 고객사 WAS 현황, JDBC(java database connectivity) 유휴, JDBC 할당, JDBC 활성, 총 JVM(java virtual machine) 메모리 및 JVM 메모리 사용량 중 적어도 하나 이상을 포함할 수 있다. 즉, 서비스 서버 정보는 고객사의 서비스 서버(300)에서 수집할 수 있는 서비스 서버의 상태를 나타내는 백엔드 데이터를 포함할 수 있는 것이다.
프로세서(110)는 IC 처리부(130)를 통해 전달된 TS 처리부(120)에 의해서 수집된 서비스 현황 정보 및 수집된 서비스 서버 정보(예를 들어, APM 데이터)를 기반으로, 진입 관리가 적용된 트랜잭션에 적절한 진입 허용 수를 설정할 수 있다.
프로세서(110)는 IC 처리부(130)를 통해 기 설정된 룰(rule)에 따라 진입 허용 수를 증감시키도록 명령을 발생시켜 진입 관리 제어 동작을 수행할 수 있다. 예를 들어, 기 설정된 룰은 처리속도가 기 설정된 임계치보다 낮아지는 경우, 진입 허용 수를 100 개에서 50 개로 하향 조절하여, 서비스 서버(300)의 부하를 낮추고 처리속도를 회복하도록 하는 등의 규칙을 포함할 수 있다.
상술한 TS 처리부(120) 및 IC 처리부(130)는 도 1과 같이 하나의 구성에 함께 구현되는 것이 가능하지만, 이에 한정되지 않고, 진입 관리 서버(100)와 별도로 각각의 서버로 구현되는 것 역시 가능할 수 있다. 이때, TS 처리부(120) 및 IC 처리부(130)는 진입 관리 서버(100)를 통해 서로 데이터를 송수신할 수 있다.
프로세서(110)는 검증부(140)를 통해 설정된 진입 허용 수에 대한 검증을 수행하고, 검증 결과에 따라 진입 허용 수를 변경 또는 유지할 수 있다.
상술한 프로세서(110)에 대해 후술하는 도 3 및 도 4의 설명을 통해 상세히 설명하기로 한다.
메모리(150)는 디지털 서비스 기반 서비스 서버의 진입 관리 방법을 제공하기 위한 컴퓨터 프로그램을 저장할 수 있으며, 저장된 컴퓨터 프로그램은 프로세서(110)에 의해 판독되어 구동될 수 있다. 메모리(150)는 프로세서(110)가 생성하거나 결정한 임의의 형태의 정보 및 통신부(160)가 수신한 임의의 형태의 정보를 저장할 수 있다.
메모리(150)는 진입 관리 서버(100)의 다양한 기능을 지원하는 데이터와, 프로세서(110)의 동작을 위한 프로그램을 저장할 수 있고, 입/출력되는 데이터들을 저장할 있고, 진입 관리 서버(100)에서 구동되는 다수의 응용 프로그램(application program 또는 애플리케이션(application)), 진입 관리 서버(100)의 동작을 위한 데이터들, 명령어들을 저장할 수 있다. 이러한 응용 프로그램 중 적어도 일부는, 무선 통신을 통해 외부 서버로부터 다운로드 될 수 있다.
이러한, 메모리(150)는 플래시 메모리 타입(Flash memory type), 하드디스크 타입(Hard disk type), SSD 타입(Solid State Disk type), SDD 타입(Silicon Disk Drive type), 멀티미디어 카드 마이크로 타입(Multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(Random access memory; RAM), SRAM(Static random access memory), 롬(Read-only memory; ROM), EEPROM(Electrically erasable programmable read-only memory), PROM(Programmable read-only memory), 자기 메모리, 자기 디스크 및 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다. 또한, 메모리는 본 장치와는 분리되어 있으나, 유선 또는 무선으로 연결된 데이터베이스가 될 수도 있다.
통신부(160)는 외부 장치와 통신을 가능하게 하는 하나 이상의 구성 요소를 포함할 수 있으며, 예를 들어, 방송 수신 모듈, 유선통신 모듈, 무선통신 모듈, 근거리 통신 모듈, 위치정보 모듈 중 적어도 하나를 포함할 수 있다.
도시하지 않았지만, 본 개시의 진입 관리 서버(100)는 출력부 및 입력부를 더 포함할 수도 있다.
출력부는 서비스 서버로의 진입 관리 절차 및 결과 등을 제공하기 위한 사용자 인터페이스(UI, user interface)를 표시할 수 있다. 출력부는 프로세서(110)가 생성하거나 결정한 임의의 형태의 정보 및 통신부(160)가 수신한 임의의 형태의 정보를 출력할 수 있다.
출력부는 액정 디스플레이(LCD: liquid crystal display), 박막 트랜지스터 액정 디스플레이(TFT LCD: thin film transistor- liquid crystal display), 유기 발광 다이오드(OLED: organic light-emitting diode), 플렉시블 디스플레이(Flexible display), 3차원 디스플레이(3D display) 중에서 적어도 하나를 포함할 수 있다. 이들 중 일부 디스플레이 모듈은, 그를 통해 외부를 볼 수 있도록 투명형 또는 광 투과형으로 구성될 수 있다. 이는 투명 디스플레이 모듈이라 지칭될 수 있는데, 상기 투명 디스플레이 모듈의 대표적 인 예로는 TOLED(Transparent OLED) 등이 있다.
입력부는 사용자에 의해서 입력된 정보를 수신할 수 있다. 입력부는 사용자에 의해서 입력된 정보를 수신하기 위한 사용자 인터페이스 상의 키 및/또는 버튼들, 또는 물리적인 키 및/또는 버튼들을 구비할 수 있다. 입력부를 통한 사용 자 입력에 따라 본 개시의 실시예들에 따른 디스플레이를 제어하기 위한 컴퓨터 프로그램이 실행될 수 있다.
도 3은 본 개시의 진입 관리 방법을 설명하기 위한 흐름도이다.
이하에서는, 도 3의 일부를 상세하게 설명하기 위한 흐름도인 도 4를 참조하여 설명하기로 한다.
진입 관리 서버(100)의 프로세서(110)는 TS 처리부(120) 또는 IC 처리부(130)를 통해 상태 정보를 수집할 수 있다(1100). 상기 상태 정보는 서비스 현황 정보이거나, 또는 서비스 서버(300)로부터 수집되는 서비스 서버 정보일 수 있다.
일 예로, 프로세서(110)는 TS 처리부(120)를 통해 진입 관리 기능이 연동된 버튼 또는 페이지에서의 서비스 현황 정보를 수집할 수 있다. 이는, 사용자 단말기(200)로부터 진입 요청을 수신함에 따라 진입 관리 서버(100) 자체에서 획득될 수 있다.
구체적으로, 프로세서(110)는 TS 처리부(120)를 통해 진입 관리 기능이 연동된 트랜잭션에서의 사용자 체감속도 및 응답속도를 포함하는 처리속도, 서비스 요청량, 대기자수, 대기시간, 시스템 진입량, 자원 사용량, 및 처리시간 중 적어도 하나 이상을 포함하는 서비스 현황 정보를 수집할 수 있다.
다른 예로, 프로세서(110)는 IC 처리부(130)를 통해 CPU 정보, 메모리정보, 디스크 정보, 네트워크 정보, 처리량, 쓰레드 수, 응답시간, 동시단말 사용자, 액티스 서비스, 액티브 사용자, 에러율, 거부율, 시간당 히트(hit) 수, 시간당 방문자수, 일별 히트(hit) 수, 일별 방문자 수, 고객사 WAS 현황, JDBC(java database connectivity) 유휴, JDBC 할당, JDBC 활성, 총 JVM(java virtual machine) 메모리 및 JVM 메모리 사용량 중 적어도 하나 이상을 포함하는 서비스 서버 정보를 서비스 서버(300)로부터 수집할 수 있다.
다음, 프로세서(110)는 상태 정보를 기초로 서비스 서버(300)로의 진입 허용 수를 설정하되, 초기 진입 허용 수를 설정하거나, 또는 기 설정된 진입 허용 수를 변경할 수 있다(1200).
구체적으로, 프로세서(110)는 상태 정보를 기 설정된 진입 허용 기준과 비교할 수 있다. 비교결과에 따라, 프로세서(110)는 진입 허용 수를 설정할 수 있다.
일 예로, 프로세서(110)는 TS 처리부(120)를 통해 진입 허용 수를 설정할 수 있다.
프로세서(110)는 TS 처리부(120)를 통해 수집된 서비스 현황 정보를 운용자에 의해서 임의로 커스터마이징 설정된 룰셋(Ruleset)에 적용하여, 임계치 이상(또는 이하)의 조건을 만족하는 경우 그에 맞게 진입 허용 수를 증감하도록 제어할 수 있다. 즉, 상술한 기 설정된 진입 허용 기준은 특정 상한치 및 하한치를 포함하는 범위를 포함하여, 상태 정보가 이에 일치하는 경우, 기 설정된 진입 허용 수를 유지할 수 있다. 만약, 진입 허용 수를 초기 설정하는 경우, 기 설정된 초기값을 초기 진입 허용 수로 설정할 수 있다.
구체적으로, 서비스 현황 정보가 기 설정된 진입 허용 기준과 일치하는 경우, 프로세서(110)는 TS 처리부(120)를 통해 초기 진입 허용 수를 설정하거나, 또는 기 설정된 진입 허용 수를 유지할 수 있다.
만약, 서비스 현황 정보가 기 설정된 진입 허용 기준과 비일치하는 경우, 프로세서(110)는 TS 처리부(120)를 통해 상기 비교 결과에 따라, 초기 진입 허용 수를 설정하거나, 또는 기 설정된 진입 허용 수를 증가 또는 감소할 수 있다. 이때, 초기 진입 허용 수를 설정할 때, 서비스 현황 정보가 기 설정된 진입 허용 기준과 비일치하는 경우를 고려하여, 기 설정된 초기값을 비교 결과에 따라 증가 또는 감소하여 초기 진입 허용 수를 설정할 수 있다.
다른 예로, 프로세서(110)는 IC 처리부(130)를 통해 진입 허용 수를 설정할 수 있다. 프로세서(110)는 별도의 진입 허용 수 자동 제어를 위한 IC 처리부(130)를 구비하여, 진입 허용 수를 자동 제어할 수 있도록 할 수 있는 것이다.
프로세서(110)는 IC 처리부(130)를 통해 APM으로부터 수집된 서비스 서버 정보를 기초로 WAS의 현재 실시간 서버 상태를 체크하여 진입 허용 수를 자동 증감할 수 있다. 만약, IC 처리부(130)와 진입 관리 서버(100)가 별도로 구현되는 경우, IC 처리부(130)는 진입 허용 수 증감 명령을 진입 관리 서버(100)로 전송할 수 있다.
예를 들어, 프로세서(110)는 IC 처리부(130)를 통해 고객사의 WAS 3대 중 1대에 문제가 생겨 다운된 경우, 처리 가능량이 줄어드므로, 진입 허용 수를 현재 상태 보다 낮게 조정하여 서비스 서버(300)의 운용을 원활히 할 수 있는 것이다.
상술한 진입 허용 수를 수집된 서비스 서버 정보를 기초로 기 설정된 규칙에 따라 자동 증감하는 알고리즘은 운용자의 필요에 따라 커스터마이징 할 수 있다. 이때, 서비스 서버 정보로 수집되는 데이터 역시 운용자에 의해서 커스터마이징될 수 있다. 예를 들어, CPU를 기초로 할 지, 또는 응답시간을 기준으로 할지 여부에 따라, 수집되는 서비스 서버 정보의 항목도 조절할 수 있는 것이다.
서비스 서버 정보가 기 설정된 진입 허용 기준과 일치하는 경우, 프로세서(110)는 IC 처리부(130)를 통해 초기 진입 허용 수를 설정하거나, 또는 기 설정된 진입 허용 수를 유지할 수 있다.
만약, 서비스 서버 정보가 기 설정된 진입 허용 기준과 비일치하는 경우, 프로세서(110)는 IC 처리부(130)를 통해 비교 결과에 따라, 초기 진입 허용 수를 설정하거나, 또는 기 설정된 진입 허용 수를 증가 또는 감소할 수 있다.
또 다른 예로, 프로세서(110)는 TS 처리부(120) 및 IC 처리부(130)를 통해 진입 허용 수를 설정할 수 있다.
상술한 서비스 현황 정보만을 이용하는 경우, 사용자 단말기(200)의 통신 환경에 따라 서비스 현황 정보에 포함된 정보의 수치가 상대적으로 낮을 수 있고, 이러한 서비스 현황 정보가 수집될 수 있다. 이렇게 수집된 서비스 현황 정보는 사용자 단말기(200)가 통신 접속한 환경의 영향으로 인해 실제와 다를 수 있는 것이다. 예를 들어, 사용자 단말기(200)가 유선 단말기(PC) 대비 통신이 원활하지 않은 환경에서의 모바일 단말기인 경우, 응답시간이 늦어질 수 있는 것이다.
상술한 경우, APM 데이터와 같은 백엔드 데이터인 서비스 서버 정보는 정상이나, 서비스 현황 정보로 인해 비정상 상태인 것으로 분류되어 불필요한 진입 허용 수 감소를 수행할 수 있다는 것이다.
이에, 본 실시예는 상술한 서비스 현황 정보 및 서비스 서버 정보 모두를 순차적으로 활용하여, 상호 보완을 통해 진입 허용 수를 증감할 수 있도록 한다는 것이다.
본 개시는 SaaS와 같은 클라우드 서비스 기반이므로, IC 처리부(130)에서 수집하는 고객사의 백엔드 데이터인 서비스 서버 정보까지 추가적으로 고려할 수 있다는 효과를 기대할 수 있는 것이다.
도 4를 참조하면, 프로세서(110)는 TS 처리부(120)를 통해 진입 허용 수를 설정하는 단계에서, 서비스 현황 정보를 기 설정된 진입 허용 기준과 비교할 수 있다(2100).
2100의 비교 결과, 서비스 현황 정보가 기 설정된 진입 허용 기준과 비일치하는 경우, 프로세서(110)는 IC 처리부(130)를 통해 서비스 서버 정보를 기 설정된 진입 허용 기준과 비교할 수 있다(2200, 2300).
2300의 비교 결과, 서비스 서버 정보가 기 설정된 진입 허용 기준과 비일치하는 경우, 프로세서(110)는 IC 처리부(130)를 통해 비교 결과에 따라 진입 허용 수를 증가 또는 감소하여 변경할 수 있다(2400, 2500).
2100의 비교 결과, 서비스 현환 정보가 기 설정된 진입 허용 기준과 일치하는 경우, 프로세서(110)는 TS 처리부(120)를 통해 기 설정된 초기 진입 허용 수를 상기 진입 허용 수로 설정하거나, 또는 이전 초기 진입 허용 수를 유지할 수 있다(2600).
2300의 비교 결과, 서비스 서버 정보가 기 설정된 진입 허용 기준과 일치하는 경우, 프로세서(110)는 IC 처리부(130)를 통해 기 설정된 초기 진입 허용 수를 진입 허용 수로 설정하거나, 또는 이전 초기 진입 허용 수를 유지할 수 있다(2600).
상술한 2100 단계 내지 2600 단계에서, 먼저 서비스 현황 정보를 기초로 진입 허용 기준과 일치하는지 여부를 확인하도록 절차를 수행하였지만, 이에 한정되지 않고, 서비스 서버 정보를 우선적으로 진입 허용 기준과 비교하는 절차를 수행하는 것 역시 가능하다 할 것이다.
다음, 프로세서(110)는 검증부(140)를 통해 진입 허용 수를 검증하여 재조정할 수 있다.
일 예로, 프로세서(110)는 검증부(140)를 통해 서비스 서버(300)의 동일 이벤트에 대한 과거 이력이 존재하는지 여부를 확인할 수 있다.
확인 결과, 동일 이벤트에 대한 과거 이력이 존재하지 않는 경우, 프로세서(110)는 검증부(140)를 통해 검증하고자 했던 진입 허용 수를 초기 케이스로 하여 제1 인공지능 모델로 학습시켜 저장하거나, 또는 진입 허용 수에 대한 검증 절차를 생략할 수 있다.
확인 결과, 동일 이벤트에 대한 과거 이력이 존재하는 경우, 프로세서(110)는 검증부(140)를 통해 서비스 서버(300)의 동일 이벤트에 대한 과거 이력을 기초로 학습된 제1 인공지능 모델을 적용하여 진입 허용 수의 조정 필요 여부를 판단할 수 있다. 즉, 프로세서(110)는 검증부(140)를 통해 제1 인공지능 모델 기반으로 설정된 진입 허용 수를 검증하는 것이다.
판단 결과, 진입 허용 수의 조정이 필요한 경우, 프로세서(110)는 검증부(140)를 통해 판단 결과에 따라 진입 허용 수를 변경하여 추천하거나, 또는 진입 허용 수를 직접 변경할 수 있다.
상기 과거 이력은 서비스 서버(300)에서의 과거 측정 데이터, 과거 진입 허용 수 및 과거 발생 이벤트를 포함할 수 있다.
구체적으로, 프로세서(110)는 검증부(140)를 통해 IC 처리부(130)에 의해서 설정된 진입 허용 수를 적용하는 것이 적절한지 여부를 검증할 수 있다.
프로세서(110)는 검증부(140)를 통해 IC 처리부(130)에 의해서 수집된 서비스 서버(300)의 동일 이벤트가 수행된 때의 과거 이력을 바탕으로 학습된 제1 인공지능 모델을 기초로 진입 허용 수를 추천 및 변경할 수 있는 것이다.
예를 들어, 수강신청 사이트의 수강신청 버튼에 진입 관리 기능이 연동된 경우, 프로세서(110)는 검증부(140)를 통해 1학기 수강신청 당시의 환경 및 서비스 서버(300)의 이상 발생 이력을 기초로 2학기 수강신청 시의 적정 진입 허용 수를 추천 및 변경하는 것이다.
이하에서는, 상술한 제1 인공지능 모델의 학습 방법을 설명하기로 한다.
먼저, 프로세서(110)는 검증부(140)를 통해 운용자의 임의의 설정에 따라 임계치를 설정할 수 있다.
프로세서(110)는 검증부(140)를 통해 동일 서비스 서버(300)의 과거 이력을 바탕으로 서비스 현황 정보 및 서비스 서버 정보를 포함하는 측정 데이터와 진입 허용 수 사이의 관계를 산출할 수 있다. 이때, 관계는 동일 서비스 서버(300)에서 과거에 측정된 측정 데이터와 당시 제어된 진입 허용 수 및 발생한 이벤트 상황을 기초로 파악될 수 있다.
예를 들어, 관계는 과거 CPU 사용량이 ~일 때 및 CPU 평균 처리량이 ~일 때 등의 상황일 때, 발생한 서버 다운, 트래픽 과다 발생 횟수 등의 특이 이벤트를 포함할 수 있다.
상술한 측정 데이터는 실시간으로 변화하는 서비스 서버(300)의 상태 데이터를 의미할 수 있다. 예를 들어, 측정 데이터는 유저 트래픽 증감, 이벤트 발생 예정 시각, 이벤트 발생 시 접속 예상 사용자 수, 이벤트에 할당된 유저 허용 수(예를 들어, 드로우(draw) 대상 5000명)를 포함할 수 있다. 이때, 드로우는 특정 제품(예를 들어, 한정판 신발 또는 신규 출시된 신발)에 응모하여 당첨자에 한해서만 구매할 수 있도록 하는 것을 의미할 수 있다.
또한, 발생 이벤트는 서버 다운, 트래픽 과다, 페이지 로드 오류, 처리시간 과다 초과 등을 포함할 수 있다.
프로세서(110)는 검증부(140)를 통해 제1 인공지능 모델을 학습할 때, 상술한 과거 이력의 데이터를 적용하는 방식은 운용자에 의해서 임의로 설정될 수 있다. 예를 들어, 2년치 분기 별 평균값, 중위값, 중간값 등을 적용할 수 있다.
프로세서(110)는 검증부(140)를 통해 과거 이력을 기초로 설정된 상황 별 적정 진입 허용 수 임계치를 제1 인공지능 모델에 학습시킬 수 있는 것이다.
다른 예로, 프로세서(110)는 검증부(140)를 통해 서비스 서버(300)의 부하 테스트 결과를 추가로 고려할 수 있다.
구체적으로, 프로세서(110)는 검증부(140)를 통해 진입 관리 서비스를 이용하는 서비스 서버(300)에 대해 사전에 부하 테스트를 수행하도록 하고 결과를 회신 받을 수 있다. 예를 들어, 서비스 서버(300) 측의 WAS는 초당 몇 개의 동작을 처리할 수 있는지 여부를 파악하고, 이에 대한 결과를 프로세서(110)로 회신하는 것이다. 이때, WAS의 동작은 WEB으로부터 전달된 요청 메시지에 대한 응용 프로그램 서비스를 처리하는 것을 의미할 수 있다.
프로세서(110)는 검증부(140)를 통해 WAS로부터 회신된 부하 테스트의 결과를 기초로 제2 진입 허용 수를 설정할 수 있다. 이때, 제2 진입 허용 수는 초기 진입 허용 수 또는 변경될 진입 허용 수를 포함할 수 있다.
프로세서(110)는 검증부(140)를 통해 상술한 TS 처리부(120) 또는 IC 처리부(130)를 통해 생성된 제1 진입 허용 수를 제2 진입 허용 수와 비교하고, 비교 결과에 따라 제1 진입 허용 수를 유지 또는 변경할 수 있다. 이때, 제1 진입 허용 수와 제2 진입 허용 수를 비교할 때, 오차 범위를 적용하여 서로의 차이가 오차 범위 이내인 경우 제1 진입 허용 수를 유지하고, 오차 범위를 초과하는 경우 제2 진입 허용 수를 제2 진입 허용 수로 변경할 수 있다.
또 다른 예로, 프로세서(110)는 검증부(140)를 통해 서비스 서버(300)와 유사한 타 서비스 서버의 동일 이벤트에 대한 과거 이력을 기초로 학습된 제2 인공지능 모델을 적용하여 진입 허용 수의 조정 필요 여부를 판단할 수 있다.
즉, 프로세서(110)는 검증부(140)를 통해 서비스 서버(300)와 유사한 타 서비스 서버로부터 수집한 APM의 측정 데이터 및 진입 허용 수의 증감 사례의 적정성 여부를 데이터로 판단하는 기술을 고려할 수 있는 것이다.
먼저, 프로세서(110)는 검증부(140)를 통해 서비스 서버의 구조 유사도 요인(factor)을 기초로 유사 타 서비스 서버를 분류할 수 있다. 구체적으로, 프로세서(110)는 검증부(140)를 통해 대상 서비스 서버(300)의 아키텍쳐, WAS 대수, CPU, 진입 관리 기능 적용 구조(예를 들어, 진입 관리 기능이 적용된 버튼의 배치 및 개수 등)와 유사한 타 서비스 서버들을 분류하여 데이터베이스화 할 수 있다.
이때, 서비스 서버(300)와 타 서비스 서버가 동일한 수강신청 사이트여도 사용자 어플리케이션 설계에 따라 서버 구조는 완전히 다를 수 있으므로, 유사 타 서비스 서버를 분류할 때, 사이트 및 서버의 목적에 따라 분류하는 것이 아니라, 서버 아키텍쳐, WAS, CPU 사양 등의 모든 인자를 고려하여 유사도를 판단할 수 있다.
이후, 프로세서(110)는 검증부(140)를 통해 적절성 판단 시 대상 서비스 서버(300) 내 진입 허용 수 증감이 적절한지 판단하기 위해 유사 타 서비스 서버의 목록을 호출할 수 있다. 이때, 프로세서(110)는 검증부(140)를 통해 구조 유사도 요인(factor)의 비교를 기반으로 타 서비스 서버의 유사도를 추출할 수 있다.
다음, 프로세서(110)는 검증부(140)를 통해 서비스 서버의 상태 유사도 요인(factor)을 기초로 타 서비스 서버들을 분류할 수 있다.
프로세서(110)는 검증부(140)를 통해 서비스 서버(300) 내 사용자 트래픽의 증감 경향, 이벤트(예를 들어, 선착순 드로우, 수강신청 등) 발생 시 동시접속 사용자 및 진입 관리 서버(100) 내 대기열 사용자 수, 이벤트가 없는 평상 시 사용자 이용수(Monthly Active User) 등을 요인(factor)으로 하여, 타 서비스 서버의 상태 유사도를 산출하고, 이를 진입 허용 수 증감의 적절도 판단에 고려할 수 있다.
프로세서(110)는 검증부(140)를 통해 상술한 구조 유사도 및 상태 유사도를 기초로, 각 유사도 요인을 기 설정된 비율로 혼합하여 최종 유사도를 산출할 수 있다. 이때, 적용되는 구조 유사도 및 상태 유사도 이외에 운용자의 필요에 따라 다른 기준의 유사도가 추가되는 것은 당연하다 할 것이다.
상술한 비율은 서비스 서버(300)의 운용자의 관리용도, 진입 허용 제어가 필요한 이벤트 종류 등 운용자에 필요에 따라 임의로 설정될 수 있다.
프로세서(110)는 검증부(140)를 통해 서비스 현황 정보 또는 서비스 서버 정보를 통해 설정된 진입 허용 수의 적정성 여부를 판단할 때, 상술한 유사도 판단 요인을 기반으로 임계치 이상 유사한 것으로 분류된 타 서비스 서버의 측정 데이터와 진입 허용 수 사이의 관계를 산출할 수 있다. 이때, 임계치는 운용자에 의해서 임의로 설정될 수 있다.
이때, 관계는 임계치 이상 유사한 것으로 분류된 타 서비스 서버에서 과거에 측정된 측정 데이터와 당시 제어된 진입 허용 수 및 발생한 이벤트 상황을 기초로 파악될 수 있다. 예를 들어, 관계는 5개의 유사 타 서비스 서버에서 과거 평균 CPU 사용량이 ~일 때 및 평균 CPUI 처리량이 ~일 때 등의 상황일 때, 발생한 서버 다운, 트래픽 과다 발생 횟수 등의 특이 이벤트를 포함할 수 있다.
한편, 프로세서(110)는 유사도 상위 기 설정된 개수의 타 서비스 서버의 과거 이력을 확인할 수 있다. 도 5를 참고하면, 본 개시의 서비스 서버(300)가 A 대학의 서버로, 수강신청, 교환학생 신청, 장학금 신청 등 다양한 이벤트를 학생들에게 제공하는 서버인 경우, 프로세서(110)는 A 대학과 유사한 B 대학, C 대학 및 D 대학의 과거 서비스 서버 정보를 수집할 수 있다. 프로세서(110)는 B 대학, C 대학 및 D 대학 각각과 A 대학의 유사도를 판단한 결과(B 대학-95%, C 대학 - 91%, D 대학 - 80 %)를 기초로, 상위 몇 퍼센트 또는 상위 몇 위까지의 대학은 유사한 타 서비스 서버로 설정하고, 이를 기초로 산출된 진입 허용 수에 대한 검증을 수행할 수 있다.
이때, 프로세서(110)는 검증부(140)를 통해 타 서비스 서버의 유사도를 판단할 때, 검증하고자 하는 진입 허용 수가 적용된 이벤트에 대응되는 타 서비스 서버의 과거 이력(즉, 과거 서비스 서버 정보)을 기초로 판단할 수 있다.
예를 들어, 검증하고자 하는 진입 허용 수가 대학의 수강신청 이벤트(버튼 또는 페이지)인 경우, 프로세서(110)는 B 대학, C 대학 및 D 대학의 서비스 서버로부터 수집된 과거 서비스 서버 정보 중 수강신청 이벤트와 관련된 정보를 추출하여 판단할 수 있는 것이다. 즉, 하나의 대학 서비스 서버라도 검증하고자 하는 진입 허용 수가 적용된 이벤트에 따라, 유사도가 각각 다르게 산출될 수 있는 것이다.
상술한 유사 타 서비스 서버의 분류 이후, 유사 타 서비스 서버의 정보를 기초로 제2 인공지능 모델을 학습하는 방법은 유사 타 서비스 서버의 정보를 기초로 한다는 점을 제외하고 상술한 제1 인공지능 모델을 학습하는 방법과 동일하여 상세 설명은 생략하기로 한다.
다음, 프로세서(110)는 설정된 진입 허용 수를 기초로 사용자 단말기(200)의 서비스 서버(300)로의 진입을 제어할 수 있다. 도 2에서 도시하지 않았지만, 프로세서(110)는 TS 처리부(120)를 통해 진입 허용 수에 기초하여 진입을 요청한 사용자 단말기(200)에 키 발급 및 키 회수를 제어할 수 있다.
한편, 전술한 본 개시에 따른 방법은, 하드웨어인 서버와 결합되어 실행되기 위해 프로그램(또는 애플리케이션)으로 구현되어 매체에 저장될 수 있다.
개시된 실시예들은 컴퓨터에 의해 실행 가능한 명령어를 저장하는 기록매체의 형태로 구현될 수 있다. 명령어는 프로그램 코드의 형태로 저장될 수 있으며, 프로세서에 의해 실행되었을 때, 프로그램 모듈을 생성하여 개시된 실시예들의 동작을 수행할 수 있다. 기록매체는 컴퓨터로 읽을 수 있는 기록매체로 구현될 수 있다.
컴퓨터가 읽을 수 있는 기록매체로는 컴퓨터에 의하여 해독될 수 있는 명령어가 저장된 모든 종류의 기록 매체를 포함한다. 예를 들어, ROM(Read Only Memory), RAM(Random Access Memory), 자기 테이프, 자기 디스크, 플래쉬 메모리, 광 데이터 저장장치 등이 있을 수 있다.
이상에서와 같이 첨부된 도면을 참조하여 개시된 실시예들을 설명하였다. 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자는 본 개시의 기술적 사상이나 필수적인 특징을 변경하지 않고도, 개시된 실시예들과 다른 형태로 본 개시가 실시될 수 있음을 이해할 것이다. 개시된 실시예들은 예시적인 것이며, 한정적으로 해석되어서는 안 된다.
100: 진입 관리 서버
110: 프로세서
120: TS 처리부
130: IC 처리부
140: 검증부
150: 메모리
160: 통신부
200: 사용자 단말기
300: 서비스 서버

Claims (10)

  1. TS처리부;
    IC처리부; 및
    상기 TS처리부를 통해 사용자단말기의 입장시 발급할 키를 관리하고, 상기 TS처리부를 통해 상태정보를 수집하고, 서비스서버에 대한 부하테스트결과를 수신하고, 상기 IC처리부를 통해 상기 상태정보 및 상기 부하테스트결과를 기초로 상기 서비스서버로의 진입허용수를 설정하고, 상기 진입허용수를 기초로 상기 사용자단말기의 상기 서비스서버로의 진입을 제어하고,
    상기 진입 제어 전에, 상기 진입허용수를 재조정시, 상기 서비스서버의 동일이벤트의 과거이력이 없으면, 상기 진입허용수를 초기값으로하여 AI모델을 학습시키고, 상기 과거이력이 있으면 상기 과거이력으로 학습된 AI모델을 통해 상기 진입허용수의 조정필요여부를 판단하되, 상기 과거이력은 상기 서비스서버에서의 과거측정데이터, 과거진입허용수 및 과거발생이벤트를 포함하고,
    상기 진입 제어 시에, 상기 TS처리부를 통해 대기열에 배치된 상기 사용자단말기가 상기 서비스서버로의 진입이 완료됨과 동시에 발급된 키를 회수하여 상기 대기열 내의 다른 사용자단말기에게 발급하는 프로세서를 포함하는, 진입관리서버.
  2. 제1항에 있어서,
    상기 프로세서는,
    상기 진입허용수를 설정할 때, 상기 상태정보를 기 설정된 진입허용기준과 비교하고, 상기 비교결과에 따라 상기 진입허용수를 설정하는, 진입관리서버.
  3. 제2항에 있어서,
    상기 상태정보는 사용자체감속도 및 응답속도를 포함하는 처리속도, 서비스 요청량, 대기자수, 대기시간, 시스템 진입량, 자원 사용량, 및 처리시간을 포함하는 서비스현황정보를 포함하고,
    상기 프로세서는,
    상기 진입허용수를 설정할 때, 상기 서비스현황정보가 상기 기 설정된 진입허용기준과 일치하는 경우, 초기진입허용수를 설정하거나, 또는 상기 기 설정된 진입허용수를 유지하는, 진입관리서버.
  4. 제3항에 있어서,
    상기 프로세서는,
    상기 진입허용수를 설정할 때, 상기 서비스현황정보가 상기 기 설정된 진입허용기준과 비일치하는 경우, 상기 비교결과에 따라 상기 초기진입허용수를 설정하거나, 또는 상기 기 설정된 진입허용수를 증가 또는 감소시키는, 진입관리서버.
  5. 제2항에 있어서,
    상기 상태정보는 CPU정보, 메모리정보, 디스크정보, 네트워크정보, 처리량, 쓰레드 수, 응답시간, 동시 단말사용자, 액티브 서비스, 액티브 사용자, 에러율, 거부율, 시간당 히트(hit)수, 시간당 방문자수, 일별 히트(hit)수, 일별방문자수, 고객사 WAS 현황, JDBC(java database connectivity) 유휴, JDBC 할당, JDBC 활성, 총 JVM(java virtual machine)메모리 및 JVM메모리 사용량을 포함하는 서비스서버정보를 포함하고,
    상기 프로세서는,
    상기 진입허용수를 설정할 때, 상기 서비스서버정보가 상기 기 설정된 진입허용기준과 일치하는 경우, 초기진입허용수를 설정하거나, 또는 상기 기 설정된 진입허용수를 유지하고,
    상기 서비스서버정보가 상기 기 설정된 진입허용기준과 비일치하는 경우, 상기 비교결과에 따라 상기 초기진입허용수를 설정하거나, 또는 상기 기 설정된 진입허용수를 증가 또는 감소시키는, 진입관리서버.
  6. 삭제
  7. 삭제
  8. 삭제
  9. 진입관리서버에 의해 수행되는 방법에 있어서,
    사용자단말기의 입장시 발급할 키를 관리하는 단계;
    상태정보를 수집하고, 서비스서버에 대한 부하테스트결과를 수신하는 단계;
    상기 상태정보 및 상기 부하테스트결과를 기초로 상기 서비스서버로의 진입허용수를 설정하는 단계; 및
    상기 진입허용수를 기초로 상기 사용자단말기의 상기 서비스서버로의 진입을 제어하고, 상기 진입 제어 전에, 상기 진입허용수를 재조정시, 상기 서비스서버의 동일이벤트의 과거이력이 없으면, 상기 진입허용수를 초기값으로하여 AI모델을 학습시키고, 상기 과거이력이 있으면 상기 과거이력으로 학습된 AI모델을 통해 상기 진입허용수의 조정필요여부를 판단하되, 상기 과거이력은 상기 서비스서버에서의 과거측정데이터, 과거진입허용수 및 과거발생이벤트를 포함하고, 상기 진입 제어 시에, 대기열에 배치된 상기 사용자단말기가 상기 서비스서버로의 진입이 완료됨과 동시에 발급된 키를 회수하여 상기 대기열 내의 다른 사용자단말기에게 발급하는 단계를 포함하는, 진입관리방법.
  10. 컴퓨터와 결합되어, 제9항의 진입관리방법을 실행시키기 위한 프로그램이 저장된 컴퓨터 판독 가능한 기록매체.


KR1020230124970A 2022-12-30 2023-09-19 디지털 서비스 기반의 발급된 키를 활용한 진입 관리 서버 및 방법 KR102633182B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020230124970A KR102633182B1 (ko) 2022-12-30 2023-09-19 디지털 서비스 기반의 발급된 키를 활용한 진입 관리 서버 및 방법

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020220190163A KR102582086B1 (ko) 2022-12-30 2022-12-30 디지털 서비스 기반 서비스 서버의 진입 관리 방법 및 서버
KR1020230124970A KR102633182B1 (ko) 2022-12-30 2023-09-19 디지털 서비스 기반의 발급된 키를 활용한 진입 관리 서버 및 방법

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020220190163A Division KR102582086B1 (ko) 2022-12-30 2022-12-30 디지털 서비스 기반 서비스 서버의 진입 관리 방법 및 서버

Publications (1)

Publication Number Publication Date
KR102633182B1 true KR102633182B1 (ko) 2024-02-02

Family

ID=88189996

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020220190163A KR102582086B1 (ko) 2022-12-30 2022-12-30 디지털 서비스 기반 서비스 서버의 진입 관리 방법 및 서버
KR1020230124970A KR102633182B1 (ko) 2022-12-30 2023-09-19 디지털 서비스 기반의 발급된 키를 활용한 진입 관리 서버 및 방법

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020220190163A KR102582086B1 (ko) 2022-12-30 2022-12-30 디지털 서비스 기반 서비스 서버의 진입 관리 방법 및 서버

Country Status (1)

Country Link
KR (2) KR102582086B1 (ko)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130091936A (ko) * 2012-02-09 2013-08-20 한국전자통신연구원 무선 랜을 기반으로 한 재난 방재 시스템 및 방법
KR101654266B1 (ko) 2014-12-18 2016-09-05 (주)에임투지 웹 접속 관리 시스템을 통한 모니터링 기능을 제공하는 모니터링 장치
KR20170012540A (ko) * 2014-12-17 2017-02-02 (주)에임투지 사용자 서비스 품질 기반 실시간 진입 허용수 관리 장치 및 그 방법
KR102154053B1 (ko) * 2020-04-23 2020-09-09 주식회사 클레버소프트 지능형 부하분산장치 및 그 장치의 구동방법
KR20220030050A (ko) * 2020-09-02 2022-03-10 삼성전자주식회사 복수의 vnf(virtualized network function)에 대한 컴퓨팅 자원의 할당을 조정하는 방법 및 그 서버
KR20220042928A (ko) * 2020-09-28 2022-04-05 삼성전자주식회사 복수의 액세스 네트워크 장치들에 대한 자동 구성 네트워크를 구현하는 방법 및 이를 수행하는 전자 장치

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130091936A (ko) * 2012-02-09 2013-08-20 한국전자통신연구원 무선 랜을 기반으로 한 재난 방재 시스템 및 방법
KR20170012540A (ko) * 2014-12-17 2017-02-02 (주)에임투지 사용자 서비스 품질 기반 실시간 진입 허용수 관리 장치 및 그 방법
KR101654266B1 (ko) 2014-12-18 2016-09-05 (주)에임투지 웹 접속 관리 시스템을 통한 모니터링 기능을 제공하는 모니터링 장치
KR102154053B1 (ko) * 2020-04-23 2020-09-09 주식회사 클레버소프트 지능형 부하분산장치 및 그 장치의 구동방법
KR20220030050A (ko) * 2020-09-02 2022-03-10 삼성전자주식회사 복수의 vnf(virtualized network function)에 대한 컴퓨팅 자원의 할당을 조정하는 방법 및 그 서버
KR20220042928A (ko) * 2020-09-28 2022-04-05 삼성전자주식회사 복수의 액세스 네트워크 장치들에 대한 자동 구성 네트워크를 구현하는 방법 및 이를 수행하는 전자 장치

Also Published As

Publication number Publication date
KR102582086B1 (ko) 2023-09-22

Similar Documents

Publication Publication Date Title
US11347549B2 (en) Customer resource monitoring for versatile scaling service scaling policy recommendations
US11507849B2 (en) Weight-coefficient-based hybrid information recommendation
US10896285B2 (en) Predicting user navigation events
US20180032877A1 (en) Predicting user navigation events
US9141722B2 (en) Access to network content
US9443197B1 (en) Predicting user navigation events
US8862529B1 (en) Predicting user navigation events in a browser using directed graphs
US11232102B2 (en) Background processing to provide automated database query tuning
US9473413B1 (en) Dynamic throttle of network traffic
US10425274B2 (en) Techniques and architectures for recovering from a service disruption in a multi-server environment
EP3815342B1 (en) Adaptive user-interface assembling and rendering
KR102633182B1 (ko) 디지털 서비스 기반의 발급된 키를 활용한 진입 관리 서버 및 방법
KR102531621B1 (ko) 클라우드 기반 유량제어 비용 최적화를 위한 리소스 최적화 서버, 시스템 및 방법
US11403265B2 (en) Dynamically controlling data migration
KR102634229B1 (ko) 디지털 서비스 기반 쿼리신호와 리소스데이터를 이용한유량 제어 방법, 서버 및 시스템
KR102543972B1 (ko) 디지털 서비스 기반 진입 관리 대상의 자동 조정을 위한 진입 관리 방법 및 서버
KR102559351B1 (ko) 디지털 서비스 기반 트래픽 스파이크 평탄화 기술을 이용한 리소스 최적화 시스템 및 진입 관리 서버
KR102519051B1 (ko) 디지털 서비스 기반 로드 밸런싱을 위한 대기열 관리 방법, 로드 밸런서 및 대기열 관리 시스템
KR102519010B1 (ko) 디지털 서비스 기반의 병목 구간 별 진입 대상을 관리하기 위한 진입 관리 서버, 방법 및 프로그램
KR102519005B1 (ko) 데이터베이스 상태를 이용한 디지털 기반 데이터 송수신 제어 서버, 시스템 및 방법
KR102525431B1 (ko) 디지털 서비스 기반 사전 대기실 운영 방법 및 진입 관리 서버
US11789781B1 (en) Load generation for benchmarking
KR102519009B1 (ko) 접속 대기 화면의 정보 제공을 위한 대기열 관리 장치 및 방법
KR102519061B1 (ko) 구간 제어 방식 기반의 유량 제어를 위한 장치 및 방법
US11620173B2 (en) Optimizing application performance with machine learning

Legal Events

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