KR101986695B1 - 네트워크 서비스 지속성 관리 - Google Patents

네트워크 서비스 지속성 관리 Download PDF

Info

Publication number
KR101986695B1
KR101986695B1 KR1020170147823A KR20170147823A KR101986695B1 KR 101986695 B1 KR101986695 B1 KR 101986695B1 KR 1020170147823 A KR1020170147823 A KR 1020170147823A KR 20170147823 A KR20170147823 A KR 20170147823A KR 101986695 B1 KR101986695 B1 KR 101986695B1
Authority
KR
South Korea
Prior art keywords
server
service
response
received
packet
Prior art date
Application number
KR1020170147823A
Other languages
English (en)
Other versions
KR20190052279A (ko
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 KR1020170147823A priority Critical patent/KR101986695B1/ko
Priority to JP2018190990A priority patent/JP7212491B2/ja
Priority to US16/181,799 priority patent/US10931512B2/en
Priority to CN201811324046.3A priority patent/CN109756387B/zh
Publication of KR20190052279A publication Critical patent/KR20190052279A/ko
Application granted granted Critical
Publication of KR101986695B1 publication Critical patent/KR101986695B1/ko

Links

Images

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/06Management of faults, events, alarms or notifications
    • H04L41/0631Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis
    • H04L41/0645Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis by additionally acting on or stimulating the network after receiving notifications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0604Management of faults, events, alarms or notifications using filtering, e.g. reduction of information by using priority, element types, position or time
    • 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/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
    • 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/0823Errors, e.g. transmission errors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • H04L43/103Active monitoring, e.g. heartbeat, ping or trace-route with adaptive polling, i.e. dynamically adapting the polling rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/143Termination or inactivation of sessions, e.g. event-controlled end of session
    • H04L67/145Termination or inactivation of sessions, e.g. event-controlled end of session avoiding end of session, e.g. keep-alive, heartbeats, resumption message or wake-up for inactive or interrupted session

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Environmental & Geological Engineering (AREA)
  • Telephonic Communication Services (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Debugging And Monitoring (AREA)

Abstract

네트워크 서비스 지속성 관리 기술을 제공한다. 본 발명의 실시예들에 따르면, 클라이언트에서 모바일 환경의 특수성을 고려하여 서비스를 제공하는 서버의 문제와 액세스 네트워크의 문제를 구분하여 진단할 수 있다.

Description

네트워크 서비스 지속성 관리{NETWORK SERVICE CONTINUITY MANAGEMENT}
아래의 설명은 네트워크 서비스 지속성 관리 기술에 관한 것으로, 보다 자세하게는 클라이언트에서 서비스를 제공하는 서버의 문제와 네트워크의 문제를 구분하여 진단할 수 있는 지속성 관리 방법, 상기 지속성 관리 방법을 수행하는 컴퓨터 장치, 그리고 컴퓨터와 결합되어 지속성 관리 방법을 컴퓨터에 실행시키기 위해 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램과 그 기록매체에 관한 것이다.
일반적으로 서비스의 현재 상태를 점검하기 위해, 단말(클라이언트)은 서비스를 제공하는 서버와 주기적으로 통신을 해야 한다. 이러한 주기적인 통신이 이루어지지 못하는 경우, 네트워크 서비스의 지속성이 훼손되며, 따라서 네트워크 서비스의 지속성을 유지하기 위한 다양한 기술들이 제공되고 있다. 예를 들어, 한국공개특허 제10-2007-0111686호는 모바일 네트워크 게임의 재접속 방법 및 시스템, 그를 위한 게임 서버에 관한 것으로, 이동통신망을 통해 무선 접속한 이동 단말이 모바일 게임을 진행하는 중에 불안정한 무선환경이나 게임 서버의 장애로 인해 연결된 무선 네트워크가 강제로 단절되어 진행중인 모바일 게임이 중단되는 경우, 이동 단말의 비정상적인 로그 아웃을 감지한 게임 서버가 게임접속 정보가 포함된 SMS 메시지 정보를 생성하여 해당 이동 단말로 전송하고, 상기 이동 단말이 SMS 메시지 정보를 확인하여 재접속하는 경우 강제 종료되기 이전까지 진행된 게임 정보를 다시 제공하여 이동 단말 사용자가 연속하여 모바일 게임을 진행할 수 있도록 해주는 모바일 네트워크 게임의 재접속 방법 및 시스템에 대해 개시하고 있다.
그러나, 이러한 모바일 환경에서의 단말은, 서버가 정상적으로 동작하고 있으며, 서비스에 아무런 문제가 없음에도, 모바일 액세스 네트워크의 일시적인 단절을 서버에 문제가 있거나 혹은 지속적인 서비스가 불가능하다고 잘못 분석 및 판단할 수 있다는 문제점이 있다. 예를 들어, 모바일 단말에서 모바일 액세스 네트워크의 일시적인 단절을 서비스를 위해 연결된 제1 서버의 장애(fault)로 잘못 판단하는 경우, 모바일 단말은 서비스를 위한 제2 서버와의 연결을 시도할 수도 있다. 이 경우, 정상적으로 동작중이던 제1 서버는 지속적으로 모바일 단말로의 서비스의 제공을 시도할 수 있으며, 모바일 단말은 제2 서버와의 연결을 시도하고 있기 때문에 서비스의 지속성이 훼손될 수 있다.
클라이언트에서 서비스를 제공하는 서버의 문제와 네트워크의 문제를 구분하여 진단할 수 있는 지속성 관리 방법, 상기 지속성 관리 방법을 수행하는 컴퓨터 장치, 그리고 컴퓨터와 결합되어 지속성 관리 방법을 컴퓨터에 실행시키기 위해 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램과 그 기록매체를 제공한다.
클라이언트에서 서비스를 제공하는 서버로부터 응답이 없는 경우, 별도의 에코 서버로 패킷을 전송하고, 에코 서버로부터의 응답 여부에 따라 서버의 장애 및 네트워크의 장애를 선별적으로 진단할 수 있는 지속성 관리 방법, 상기 지속성 관리 방법을 수행하는 컴퓨터 장치, 그리고 컴퓨터와 결합되어 지속성 관리 방법을 컴퓨터에 실행시키기 위해 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램과 그 기록매체를 제공한다.
서비스를 제공하는 서버와 NAT(Network Address Translation)간의 핀홀 시간(pinhole time)을 측정함에 있어서 에코 서버를 활용함으로써 적절한 핀홀 시간을 발견할 수 있는 지속성 관리 방법, 상기 지속성 관리 방법을 수행하는 컴퓨터 장치, 그리고 컴퓨터와 결합되어 지속성 관리 방법을 컴퓨터에 실행시키기 위해 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램과 그 기록매체를 제공한다.
클라이언트의 지속성 관리 방법에 있어서, 네트워크를 통해 서비스를 제공하는 서버로 하트비트(heartbeat) 신호를 전송하는 단계; 상기 서버로부터 하트비트 신호에 대한 응답신호가 수신되지 않는 경우, 상기 클라이언트에 의해 식별되는 에코 서버로 패킷을 전송하는 단계; 및 상기 에코 서버로부터의 상기 패킷에 대한 응답의 수신 여부에 기초하여 서비스의 지속성 여부를 결정하는 단계를 포함하는 것을 특징으로 하는 지속성 관리 방법을 제공한다.
컴퓨터와 결합되어 상기 지속성 관리 방법을 컴퓨터에 실행시키기 위해 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램을 제공한다.
상기 지속성 관리 방법을 컴퓨터에 실행시키기 위한 프로그램이 기록되어 있는 것을 특징으로 하는 컴퓨터에서 판독 가능한 기록매체를 제공한다.
클라이언트가 구동되는 컴퓨터 장치에 있어서, 컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 네트워크를 통해 서비스를 제공하는 서버로 하트비트(heartbeat) 신호를 전송하고, 상기 서버로부터 하트비트 신호에 대한 응답신호가 수신되지 않는 경우, 상기 클라이언트에 의해 식별되는 에코 서버로 패킷을 전송하고, 상기 에코 서버로부터의 상기 패킷에 대한 응답의 수신 여부에 기초하여 서비스의 지속성 여부를 결정하는 것을 특징으로 하는 컴퓨터 장치를 제공한다.
클라이언트에서 서비스를 제공하는 서버의 문제와 네트워크의 문제를 구분하여 진단할 수 있다.
클라이언트에서 서비스를 제공하는 서버로부터 응답이 없는 경우, 별도의 에코 서버로 패킷을 전송하고, 에코 서버로부터의 응답 여부에 따라 서버의 장애 및 네트워크의 장애를 선별적으로 진단할 수 있다.
서비스를 제공하는 서버와 NAT(Network Address Translation)간의 핀홀 시간(pinhole time)을 측정함에 있어서 에코 서버를 활용함으로써 적절한 핀홀 시간을 발견할 수 있다.
도 1은 본 발명의 일실시예에 따른 네트워크 환경의 예를 도시한 도면이다.
도 2는 본 발명의 일실시예에 있어서, 전자 기기 및 서버의 내부 구성을 설명하기 위한 블록도이다.
도 3은 본 발명의 일실시예에 있어서, 서비스 제공 환경의 예를 도시한 도면이다.
도 4는 본 발명의 일실시예에 있어서, 서비스 제공 환경의 다른 예를 도시한 도면이다.
도 5는 본 발명의 일실시예에 있어서, 지속성 관리 방법의 예를 도시한 흐름도이다.
도 6은 본 발명의 일실시예에 있어서, 네트워크 장애와 서버 장애를 선별적으로 진단하는 과정의 예를 도시한 도면이다.
도 7은 본 발명의 일실시예에 있어서, 대략적인 핀홀 시간을 탐색하는 과정의 예를 도시한 도면이다.
이하, 실시예를 첨부한 도면을 참조하여 상세히 설명한다.
본 발명의 실시예들에 따른 지속성 관리 방법은 이후 설명될 전자기기와 같이 클라이언트가 설치되어 서버와 통신하여 서비스를 제공받는 컴퓨터 장치를 통해 수행될 수 있다. 이때, 컴퓨터 장치에는 본 발명의 일실시예에 따른 컴퓨터 프로그램(상술한 클라이언트)이 설치 및 구동될 수 있고, 컴퓨터 장치는 구동된 컴퓨터 프로그램의 제어에 따라 본 발명의 일실시예에 따른 지속성 관리 방법을 수행할 수 있다. 상술한 컴퓨터 프로그램은 컴퓨터 장치와 결합되어 지속성 관리 방법을 컴퓨터에 실행시키기 위해 컴퓨터 판독 가능한 기록매체에 저장될 수 있다.
도 1은 본 발명의 일실시예에 따른 네트워크 환경의 예를 도시한 도면이다. 도 1의 네트워크 환경은 복수의 전자 기기들(110, 120, 130, 140), 복수의 서버들(150, 160) 및 네트워크(170)를 포함하는 예를 나타내고 있다. 이러한 도 1은 발명의 설명을 위한 일례로 전자 기기의 수나 서버의 수가 도 1과 같이 한정되는 것은 아니다.
복수의 전자 기기들(110, 120, 130, 140)은 컴퓨터 장치로 구현되는 고정형 단말이거나 이동형 단말일 수 있다. 복수의 전자 기기들(110, 120, 130, 140)의 예를 들면, 스마트폰(smart phone), 휴대폰, 네비게이션, 컴퓨터, 노트북, 디지털방송용 단말, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 태블릿 PC, 게임 콘솔, 웨어러블 기기, IoT(Internet of Things) 기기, 가상 현실 기기, 증강 현실 기기 등이 있다. 일례로 도 1에서는 전자 기기 1(110)의 예로 스마트폰의 형상을 나타내고 있으나, 본 발명의 실시예들에서 전자 기기 1(110)은 실질적으로 무선 또는 유선 통신 방식을 이용하여 네트워크(170)를 통해 다른 전자 기기들(120, 130, 140) 및/또는 서버(150, 160)와 통신할 수 있는 다양한 물리적인 컴퓨터 장치들 중 하나를 의미할 수 있다.
통신 방식은 제한되지 않으며, 네트워크(170)가 포함할 수 있는 통신망(일례로, 이동통신망, 유선 인터넷, 무선 인터넷, 방송망, 위성망)을 활용하는 통신 방식뿐만 아니라 기기들간의 근거리 무선 통신 역시 포함될 수 있다. 예를 들어, 네트워크(170)는, PAN(personal area network), LAN(local area network), CAN(campus area network), MAN(metropolitan area network), WAN(wide area network), BBN(broadband network), 인터넷 등의 네트워크 중 하나 이상의 임의의 네트워크를 포함할 수 있다. 또한, 네트워크(170)는 버스 네트워크, 스타 네트워크, 링 네트워크, 메쉬 네트워크, 스타-버스 네트워크, 트리 또는 계층적(hierarchical) 네트워크 등을 포함하는 네트워크 토폴로지 중 임의의 하나 이상을 포함할 수 있으나, 이에 제한되지 않는다.
서버(150, 160) 각각은 복수의 전자 기기들(110, 120, 130, 140)과 네트워크(170)를 통해 통신하여 명령, 코드, 파일, 컨텐츠, 서비스 등을 제공하는 컴퓨터 장치 또는 복수의 컴퓨터 장치들로 구현될 수 있다. 예를 들어, 서버(150)는 네트워크(170)를 통해 접속한 복수의 전자 기기들(110, 120, 130, 140)과 관련된 제1 서비스를 제공하는 시스템일 수 있으며, 서버(160) 역시 네트워크(170)를 통해 접속한 복수의 전자 기기들(110, 120, 130, 140)과 관련된 제2 서비스를 제공하는 시스템일 수 있다. 보다 구체적인 예로, 서버(150)는 게임 서비스나 컨텐츠 제공 서비스 등과 같이 네트워크(170)를 통해 제공 가능한 다양한 서비스(특히, 모바일 서비스)를 복수의 전자 기기들(110, 120, 130, 140)로 제공하는 시스템일 수 있다. 또한, 서버(160)는 이후 설명될 에코 서버에 대응할 수 있다.
도 2는 본 발명의 일실시예에 있어서, 전자 기기 및 서버의 내부 구성을 설명하기 위한 블록도이다. 도 2에서는 전자 기기에 대한 예로서 전자 기기 1(110), 그리고 서버(150)의 내부 구성을 설명한다. 또한, 다른 전자 기기들(120, 130, 140)이나 서버(160) 역시 상술한 전자 기기 1(110) 또는 서버(150)와 동일한 또는 유사한 내부 구성을 가질 수 있다.
전자 기기 1(110)과 서버(150)는 메모리(211, 221), 프로세서(212, 222), 통신 모듈(213, 223) 그리고 입출력 인터페이스(214, 224)를 포함할 수 있다. 메모리(211, 221)는 컴퓨터에서 판독 가능한 기록매체로서, RAM(random access memory), ROM(read only memory), 디스크 드라이브, SSD(Solid State Drive), 플래시 메모리와 같은 비소멸성 대용량 저장 장치(permanent mass storage device)를 포함할 수 있다. 여기서 ROM과 디스크 드라이브, SSD, 플래시 메모리와 같은 비일시적, 비소멸성 대용량 저장 장치는 메모리(211, 221)와는 구분되는 별도의 영구 저장 장치로서 전자 기기 1(110)나 서버(150)에 포함될 수도 있다. 또한, 메모리(211, 221)에는 운영체제와 적어도 하나의 프로그램 코드(일례로 전자 기기 1(110)에 설치되어 구동되는 브라우저나 특정 서비스의 제공을 위해 전자 기기 1(110)에 설치된 어플리케이션 등을 위한 코드)가 저장될 수 있다. 이러한 소프트웨어 구성요소들은 메모리(211, 221)와는 별도의 컴퓨터에서 판독 가능한 기록매체로부터 로딩될 수 있다. 이러한 별도의 컴퓨터에서 판독 가능한 기록매체는 플로피 드라이브, 디스크, 테이프, DVD/CD-ROM 드라이브, 메모리 카드 등의 컴퓨터에서 판독 가능한 기록매체를 포함할 수 있다. 다른 실시예에서 소프트웨어 구성요소들은 컴퓨터에서 판독 가능한 기록매체가 아닌 통신 모듈(213, 223)을 통해 메모리(211, 221)에 로딩될 수도 있다. 예를 들어, 적어도 하나의 프로그램은 개발자들 또는 어플리케이션의 설치 파일을 배포하는 파일 배포 시스템(일례로, 상술한 서버(160))이 네트워크(170)를 통해 제공하는 파일들에 의해 설치되는 컴퓨터 프로그램(일례로 상술한 어플리케이션)에 기반하여 메모리(211, 221)에 로딩될 수 있다.
프로세서(212, 222)는 기본적인 산술, 로직 및 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성될 수 있다. 명령은 메모리(211, 221) 또는 통신 모듈(213, 223)에 의해 프로세서(212, 222)로 제공될 수 있다. 예를 들어 프로세서(212, 222)는 메모리(211, 221)와 같은 기록 장치에 저장된 프로그램 코드에 따라 수신되는 명령을 실행하도록 구성될 수 있다.
통신 모듈(213, 223)은 네트워크(170)를 통해 전자 기기 1(110)과 서버(150)가 서로 통신하기 위한 기능을 제공할 수 있으며, 전자 기기 1(110) 및/또는 서버(150)가 다른 전자 기기(일례로 전자 기기 2(120)) 또는 다른 서버(일례로 서버(160))와 통신하기 위한 기능을 제공할 수 있다. 일례로, 전자 기기 1(110)의 프로세서(212)가 메모리(211)와 같은 기록 장치에 저장된 프로그램 코드에 따라 생성한 요청이 통신 모듈(213)의 제어에 따라 네트워크(170)를 통해 서버(150)로 전달될 수 있다. 역으로, 서버(150)의 프로세서(222)의 제어에 따라 제공되는 제어 신호나 명령, 컨텐츠, 파일 등이 통신 모듈(223)과 네트워크(170)를 거쳐 전자 기기 1(110)의 통신 모듈(213)을 통해 전자 기기 1(110)로 수신될 수 있다. 예를 들어 통신 모듈(213)을 통해 수신된 서버(150)의 제어 신호나 명령, 컨텐츠, 파일 등은 프로세서(212)나 메모리(211)로 전달될 수 있고, 컨텐츠나 파일 등은 전자 기기 1(110)가 더 포함할 수 있는 저장 매체(상술한 영구 저장 장치)로 저장될 수 있다.
입출력 인터페이스(214)는 입출력 장치(215)와의 인터페이스를 위한 수단일 수 있다. 예를 들어, 입력 장치는 키보드, 마우스, 마이크로폰, 카메라 등의 장치를, 그리고 출력 장치는 디스플레이, 스피커, 햅틱 피드백(haptic feedback) 기기 등과 같은 장치들을 포함할 수 있다. 다른 예로 입출력 인터페이스(214)는 터치스크린과 같이 입력과 출력을 위한 기능이 하나로 통합된 장치와의 인터페이스를 위한 수단일 수도 있다. 입출력 장치(215)는 전자 기기 1(110)과 하나의 장치로 구성될 수도 있다. 또한, 서버(150)의 입출력 인터페이스(224)는 서버(150)와 연결되거나 서버(150)가 포함할 수 있는 입력 또는 출력을 위한 장치(미도시)와의 인터페이스를 위한 수단일 수 있다. 보다 구체적인 예로, 전자 기기 1(110)의 프로세서(212)가 메모리(211)에 로딩된 컴퓨터 프로그램의 명령을 처리함에 있어서 서버(150)나 전자 기기 2(120)가 제공하는 데이터를 이용하여 구성되는 서비스 화면이나 컨텐츠가 입출력 인터페이스(214)를 통해 디스플레이에 표시될 수 있다.
또한, 다른 실시예들에서 전자 기기 1(110) 및 서버(150)는 도 2의 구성요소들보다 더 많은 구성요소들을 포함할 수도 있다. 그러나, 대부분의 종래기술적 구성요소들을 명확하게 도시할 필요성은 없다. 예를 들어, 전자 기기 1(110)은 상술한 입출력 장치(215) 중 적어도 일부를 포함하도록 구현되거나 또는 트랜시버(transceiver), GPS(Global Positioning System) 모듈, 카메라, 각종 센서, 데이터베이스 등과 같은 다른 구성요소들을 더 포함할 수도 있다. 보다 구체적인 예로, 전자 기기 1(110)이 스마트폰인 경우, 일반적으로 스마트폰이 포함하고 있는 가속도 센서나 자이로 센서, 카메라 모듈, 각종 물리적인 버튼, 터치패널을 이용한 버튼, 입출력 포트, 진동을 위한 진동기 등의 다양한 구성요소들이 전자 기기 1(110)에 더 포함되도록 구현될 수 있다.
도 3은 본 발명의 일실시예에 있어서, 서비스 제공 환경의 예를 도시한 도면이다. 도 3은 클라이언트(310), 서비스 서버(320) 및 에코 서버(330)를 개시하고 있다.
클라이언트(310)는 앞서 설명한 전자 기기 1(110)과 같은 컴퓨터 장치에 설치되는 클라이언트용 컴퓨터 프로그램일 수 있으며, 전자 기기 1(110)이 네트워크(170)를 통해 서비스 서버(320)에 접근하여 서비스 서버(320)가 제공하는 서비스를 이용할 수 있도록 전자 기기 1(110)을 제어할 수 있다.
서비스 서버(320)는 네트워크(170)를 통해 클라이언트(310)로 서비스를 제공하는 적어도 하나의 컴퓨터 장치일 수 있으며, 에코 서버(330)는 클라이언트(310)의 제어에 따라 전자 기기 1(110)이 전송하는 패킷을 수신하고, 수신된 패킷에 대한 응답을 즉시 전자 기기 1(110)로 전송하도록 구현되는 컴퓨터 장치일 수 있다.
클라이언트(310)는 서비스 서버(320)로 하트비트(heartbeat) 신호를 전송할 수 있다. 하트비트 신호는 일정 시간 단위로 서버의 상태를 점검하기 위해 보내는 특정 신호를 말하는 것으로, 클라이언트(310) 역시 일정 주기마다 하트비트 신호를 서비스 서버(320)로 전송할 수 있다. 이 경우, 서비스 서버(320)는 수신되는 하트비트 신호에 대한 응답신호를 클라이언트(310)로 전송할 수 있고, 클라이언트(310)는 수신되는 응답신호에 기초하여 서비스 서버(320)의 상태를 점검할 수 있다.
그러나, 서비스 서버(320)가 정상적으로 서비스를 제공하고 있음에도 불구하고 클라이언트(310)가 네트워크(170)의 상태(일례로, 모바일 환경에서 모바일 단말이 액세스 네트워크에 접속하는 상태)에 따라 하트비트 신호에 대한 응답신호를 서비스 서버(320)로부터 수신하지 못하는 경우가 발생할 수 있다. 앞서 설명한 바와 같이 종래기술의 클라이언트는 이러한 네트워크 장애(일례로, 모바일 환경에서 클라이언트가 음영지역에 위치함에 따라 액세스 네트워크에 접속하지 못하는 상태나 액세스 네트워크의 상태가 좋지 않아 클라이언트의 접속을 처리하지 못하는 상태)를 서비스를 제공하는 서버의 장애로 잘못 판단하거나 또는 지속적인 서비스가 불가능한 것으로 잘못 판단할 수 있는 문제점이 있다.
반면, 본 실시예에 따른 클라이언트(310)는 서비스 서버(320)뿐만 아니라, 에코 서버(330)를 식별할 수 있으며, 서비스 서버(320)로부터 응답신호가 수신되지 않는 경우, 에코 서버(330)로 패킷을 전송할 수 있다. 에코 서버(330)는 패킷을 수신하는 경우 응답을 클라이언트(310)로 전송할 수 있으며, 이러한 응답을 에코 서버(330)로부터 수신하는 경우, 클라이언트(310)는 네트워크 장애가 아닌 서비스 서버(320)에 문제가 있음을 파악할 수 있게 된다. 만약, 에코 서버(330)로부터도 응답이 수신되지 않는다면, 클라이언트(310)는 서비스 서버(320)의 문제가 아닌 네트워크(170)에 문제가 있음을 파악할 수 있게 된다. 도 3에서 점선 화살표들은 하트비트 신호에 대한 응답신호가 수신되지 않는 경우에 클라이언트(310)와 에코 서버(330)간에 패킷과 패킷에 대한 응답이 송수신됨을 의미할 수 있다.
보다 정확한 진단을 위해, 클라이언트(310)는 하트비트 신호와 응답신호, 그리고 패킷과 패킷에 대한 응답의 한 번의 교환이 아닌 복수 번의 교환을 통해 서비스 서버(320)의 장애와 네트워크(170)의 장애를 선별적으로 진달할 수도 있다. 예를 들어, 클라이언트(310)는 일정 주기마다 하트비트 신호를 서비스 서버(320)로 전송하다가 서비스 서버(320)로부터 하트비트 신호에 대한 응답신호가 수신되지 않는 경우, 에코 서버(330)로 패킷을 전송할 수 있다. 이때, 에코 서버(330)로부터 패킷에 대한 응답이 수신되는 경우, 'NoResponseCount'(최초, 0으로 초기화)를 1 증가시키고, 다음 주기의 하트비트 신호에 대한 서비스 서버(320)의 응답신호를 기다릴 수 있다. 만약, 다음 주기의 하트비트 신호에 대해서도 서비스 서버(320)로부터 응답신호가 수신되지 않는 경우, 다시 에코 서버(330)로 패킷을 전송할 수 있으며, 다시 에코 서버(330)로부터 패킷에 대한 응답이 수신되는 경우, 'NoResponseCount'를 1 증가시킬 수 있다. 이처럼 서비스 서버(320)로부터 하트비트 신호에 대한 응답신호가 수신되지 않고, 에코 서버(330)로부터는 패킷에 대한 응답이 수신되는 상황이 연속적으로 반복됨에 따라 'NoResponseCount'가 기 설정된 'MaxWaitResponseCount'를 초과하는 상황이 되면, 클라이언트(310)는 서비스 서버(320)에 장애가 발생하였다고 결정할 수 있다. 만약, 'NoResponseCount'가 'MaxWaitResponseCount'를 초과하기 이전에 하트비트 신호에 대한 응답신호가 수신되거나 또는 에코 서버(330)로부터 패킷에 대한 응답이 수신되지 않는 경우에는 일시적인 네트워크 장애가 발생한 것으로 결정할 수 있고, 'NoResponseCount'는 다시 '0'으로 초기화될 수 있다.
다시 말해, 클라이언트(310)는 서비스 서버(320)로부터 하트비트 신호에 대한 응답신호가 수신되지 않고, 에코 서버(330)로부터는 패킷에 대한 응답이 수신되는 상황이 기설정된 횟수 이상 발생하는 경우, 서비스 서버(320)의 장애를 진단할 수 있다. 여기서 서비스 서버(320)의 장애를 진단하는 것은 클라이언트(310)가 현재 상황을 서비스 서버(320)에 장애가 발생한 것으로 결정하고, 그에 따른 후속 동작을 처리(일례로, 다른 서비스 서버를 통한 서비스의 연결을 시도)하는 것을 의미할 수 있다.
또한, 클라이언트(310)는 서비스 서버(320)로부터 하트비트 신호에 대한 응답신호가 수신되지 않고, 에코 서버(330)로부터도 패킷에 대한 응답이 수신되지 않는 상황이 기설정된 횟수 이상 발생하는 경우, 네트워크(170)의 장애를 진단할 수 있다. 여기서 네트워크(170)의 장애를 진단하는 것은 클라이언트(310)가 현재 상황을 네트워크(170)에 장애가 발생한 것으로 결정하고, 서비스 서버(320)의 지속적인 서비스가 가능함에 따른 후속 동작을 처리(일례로, 서비스 서버(320)와의 연결을 대기하거나 다른 액세스 네트워크로의 접속을 시도)하는 것을 의미할 수 있다.
이처럼 클라이언트(310)는 서비스를 제공하는 서비스 서버(320)와는 별도의 서버인 에코 서버(330)를 식별하고, 식별된 에코 서버(330)를 서비스 지속성 관리를 위해 활용할 수 있다.
또한, 클라이언트(310)는 에코 서버(330)를 핀홀 시간(pinhole time)을 탐색하는데 활용하여 서비스 지속성을 관리할 수도 있다.
도 4는 본 발명의 일실시예에 있어서, 서비스 제공 환경의 다른 예를 도시한 도면이다. 도 4는 도 3을 통해 설명한 서비스 서버(320)가 NAT(Network Address Translation) 서버(410)와 복수의 서비스 서버들(서비스 서버 1(420), 서비스 서버 2(430))로 구현된 예를 나타내고 있다. 이때, 클라이언트(310)가 NAT 서버(410)를 통해 서비스 서버 1(420)과 연결되어 서비스를 제공받고 있다고 가정한다.
NAT 서버(410)는 사설 IP 주소를 공인 IP 주소로 바꿔주는데 사용하는 통신망의 주소 변환기 역할을 할 수 있으며, 클라이언트(310)로부터의 요청에 따라 대상이 되는 서비스 서버(본 실시예에서는 서비스 서버 1(420))와의 핀홀(pinhole)을 열어줄 수 있다. 여기서 핀홀 시간은 핀홀이 열려 있는 시간을 의미할 수 있으며, 서비스 서버 1(420)은 핀홀이 열려있는 동안에만 클라이언트(310)로 신호를 전달할 수 있다. 다시 말해, 서비스 서버 1(420)은 클라이언트(310)의 요청 없이 핀홀을 자체적으로 열 수 없으며, 필홀이 닫히면 다시 클라이언트(310)로부터의 요청에 따라 새로운 핀홀이 열리기 전까지 클라이언트(310)로 신호를 보낼 수 없게 된다. 이때, 핀홀 시간은 서비스마다 서로 다르게 설정될 수 있으며, 클라이언트(310)가 이러한 핀홀을 유지하기 위해서는 핀홀 시간을 측정해야 할 필요성이 존재한다.
예를 들어, NAT 서버(410)와 서비스 서버 1(420)간에 설정된 핀홀 시간이 3초라 가정하자. 또한, 클라이언트(310)가 서비스 서버 1(420)로 하트비트 신호를 전송하는 시간 주기가 5초라 가정하자. 이 경우, NAT 서버(410)와 서비스 서버 1(420)간에는 3초간 핀홀이 설정되었다가 2초간 닫히고 다시 3초간 핀홀이 설정되었다가 2초간 닫히는 상황이 반복되며, 핀홀이 닫히는 2초간 서비스 서버 1(420)은 클라이언트(310)로 신호를 보낼 수 없게 된다. 만약, 하트비트 신호를 전송하는 시간 주기가 3초 이내인 경우에는 NAT 서버(410)와 서비스 서버 1(420)간의 핀홀이 지속적으로 유지될 수 있다. 다시 말해, 클라이언트(310)는 NAT 서버(410)와 서비스 서버 1(420)간의 핀홀을 유지하기 위해 하트비트 신호를 전송하는 시간 주기를 핀홀 시간 이내로 유지해야 할 필요성이 있다. 따라서, 클라이언트(310)는 대략적인 핀홀 시간을 알아야 할 필요성(일례로, 하트비트 신호를 전송하는 시간 주기를 적어도 얼마의 시간 이내로 설정해야 하는가를 파악해야 할 필요성)이 존재한다.
이러한 핀홀 시간의 파악을 위해, 클라이언트(310)는 응답지연시간 D가 설정된 하트비트 신호를 서비스 서버 1(420)로 전송할 수 있다. 하트비트 신호를 수신한 서버 1(420)은 설정된 응답지연시간 D가 지난 후에 응답신호를 클라이언트(310)로 전송할 수 있다. 클라이언트(310)는 D+a 시간(a는 기설정된 시간)이 지난 후에도 서비스 서버 1(420)로부터 응답신호가 수신되지 않는 경우 에코 서버(330)로 패킷을 전송할 수 있다. 만약, 에코 서버(330)로부터 패킷에 대한 응답이 수신되는 경우, 클라이언트(310)는 네트워크(170)에는 문제가 없는 것으로 판단하고, 응답지연시간 D가 너무 길어서 핀홀이 닫힌 관계로 서비스 서버 1(420)이 응답신호를 보내지 못했거나 또는 서비스 서버 1(420)에 장애가 발생했을 가능성이 존재함을 인식할 수 있다. 이 경우, 클라이언트(310)는 응답지연시간 D를 줄인 D'가 설정된 하트비트 신호를 서비스 서버 1(420)로 전송할 수 있다.
예를 들어, 응답지연시간 D가 5초이고, 핀홀 시간이 3초라 가정할 수 있다. 응답지연시간 5초가 설정된 하트비트 신호를 수신한 NAT 서버(410)는 핀홀을 설정하여 서비스 서버 1(420)로 하트비트 신호를 전송할 수 있고, 서비스 서버 1(420)는 5초 후에 응답신호를 생성하여 NAT 서버(410)로 전송하고자 시도할 수 있다. 그러나 핀홀 시간이 3초이기 때문에 핀홀은 이미 닫혔고, 서비스 서버 1(420)은 응답신호를 전송할 수 없게 된다. 응답신호를 수신하지 못한 클라이언트(310)는 에코 서버(330)로 패킷을 전송하고, 에코 서버(330)로부터 패킷에 대한 응답을 수신한 클라이언트(310)는 액세스 네트워크에는 문제가 없으며, 응답지연시간 5초가 설정된 핀홀 시간보다 길기 때문에 서비스 서버 1(420)로부터 응답신호를 받지 못했을 가능성을 파악할 수 있게 된다. 따라서 클라이언트(310)는 응답지연시간 5초를 절반(실시예에 따라 응답지연시간의 감소량은 달라질 수 있음)인 2.5초로 줄여서 다시 하트비트 신호를 전송할 수 있다. 이 경우 서비스 서버(420)는 2.5초 후에 응답신호를 전송하게 되고, 핀홀 시간이 3초인 핀홀은 아직 열려 있기 때문에, 응답신호를 NAT 서버(410)를 통해 클라이언트(310)로 전달될 수 있다. 이 경우, 클라이언트(310)는 2.5초가 적어도 핀홀 시간 이내라는 것을 알 수 있다.
물론, 클라이언트(310)는 응답지연시간을 계속 조절하면서 하트비트 신호를 전송함으로써 보다 정확한 핀홀 시간을 측정할 수도 있다. 예를 들어, 에코 서버(330)로부터 지속적으로 패킷에 대한 응답이 수신된다고 가정할 때, 서비스 서버 1(420)로부터 응답신호를 받은 클라이언트(310)는 최초의 응답지연시간 5초와 두 번째 응답지연시간 2.5초의 중간인 3.75초를 응답지연시간으로 설정하여 하트비트 신호를 전송할 수 있다. 이 경우, 3초의 핀홀 시간을 고려할 때, 클라이언트(310)는 응답신호를 받지 못하게 되고, 다시 2.5초와 3.75초의 중간인 3.125초의 응답지연시간으로 설정된 하트비트 신호를 서비스 서버 1(420)로 전송할 수 있다. 이 경우에도 3초의 핀홀 시간을 고려할 때, 클라이언트(310)는 응답신호를 받지 못하게 되고, 다시 2.5초와 3.125초의 중간인 2.8125초의 응답지연시간으로 설정된 하트비트 신호를 서비스 서버 1(420)로 전송할 수 있다. 이 경우에는 3초의 핀홀 시간을 고려할 때, 클라이언트(310)가 응답신호를 수신하게 되며, 2.8125초가 핀홀 시간 이내임을 파악할 수 있게 된다.
적절한 핀홀 시간(앞선 예에서는 2.8125초)이 탐색된 이후, 클라이언트(310)는 탐색된 핀홀 시간을 주기로 하트비트 신호를 전송할 수 있다. 이 경우, 응답지연시간은 0초로 설정될 수 있다. 2.8125초는 2.5초에 비해 길기 때문에 클라이언트(310)는 하트비트 신호의 전송 횟수를 줄이면서도 핀홀을 유지시킬 수 있게 된다.
만약, 에코 서버(330)로부터 패킷에 대한 응답이 지속적으로 수신되고, 응답지연시간을 최소(일례로, 0초)로 줄여도 서비스 서버 1(420)로부터 응답신호가 수신되지 않는 경우, 클라이언트(310)는 서비스 서버 1(420)의 장애를 진단할 수 있다.
만약, 에코 서버(330)로부터 패킷에 대한 응답이 수신되지 않는다면, 클라이언트(310)는 서비스 서버1(420)로부터 응답신호를 수신하지 못한 이유가 핀홀 시간이나 서비스 서버 1(420)의 장애로 인한 문제가 아니라 액세스 네트워크의 장애로 인한 문제라 결정할 수 있다. 따라서, 클라이언트(310)는 응답지연시간은 그대로 유지(일례로, 최초의 5초)한 상태로 그대로 하트비트 신호를 서비스 서버 1(110)로 전송할 수 있다. 만약, 서비스 서버 1(420)과 에코 서버(330) 모두로부터 일정 카운트 이상 응답이 없는 경우, 클라이언트(310)는 네트워크의 장애를 진단할 수 있다.
이처럼 클라이언트(310)는 핀홀의 유지를 위한 적절한 하트비트 신호의 전송 주기(또는 핀홀 시간)를 찾아가는 과정에서 에코 서버(330)를 활용함으로써, 네트워크의 장애로 인해 하트비트 신호의 전송 주기나 핀홀 시간을 잘못 측정하게 되는 문제를 해결할 수 있다.
도 5는 본 발명의 일실시예에 있어서, 지속성 관리 방법의 예를 도시한 흐름도이다. 본 실시예에 따른 지속성 관리 방법은 앞서 설명한 클라이언트(310)가 설치 및 구동되는 전자 기기 1(110)과 같은 컴퓨터 장치에 의해 수행될 수 있다. 이때, 전자 기기 1(110)의 프로세서(212)는 메모리(211)가 포함하는 운영체제의 코드 및/또는 클라이언트(310)의 코드에 따른 제어 명령(instruction)을 실행하도록 구현될 수 있다. 여기서, 프로세서(212)는 전자 기기 1(110)에 저장된 코드가 제공하는 제어 명령에 따라 전자 기기 1(110)이 도 5의 지속성 관리 방법이 포함하는 단계들(510 내지 540)을 수행하도록 전자 기기 1(110)을 제어할 수 있다.
단계(510)에서 전자 기기 1(110)은 네트워크를 통해 서비스를 제공하는 서버로 하트비트(heartbeat) 신호를 전송할 수 있다. 여기서, 서버는 앞서 설명한 서비스 서버(320)나 서비스 서버 1(410)에 대응할 수 있으며, 클라이언트(310)에 의해 전자 기기 1(110)에서 식별될 수 있다.
단계(520)에서 전자 기기 1(110)은 응답신호의 수신 여부를 확인할 수 있다. 이때, 전자 기기 1(110)은 서비스를 제공하는 서버로부터 응답신호가 수신된 경우 다시 단계(510)를 수행하여 하트비트 신호를 주기적으로 전송할 수 있으며, 서비스를 제공하는 서버로부터 응답신호가 수신되지 않는 경우에는 단계(530)을 수행할 수 있다.
단계(530)에서 전자 기기 1(110)은 클라이언트에 의해 식별되는 에코 서버로 패킷을 전송할 수 있다. 클라이언트는 앞서 설명한 클라이언트(310)에, 에코 서버는 앞서 설명한 에코 서버(330)에 각각 대응할 수 있다. 이미 설명한 바와 같이 에코 서버는 수신되는 패킷에 대해 즉시 응답을 전송하도록 구현될 수 있으며, 장애가 발생하지 않는다고 가정될 수 있다.
단계(540)에서 전자 기기 1(110)은 에코 서버로부터의 패킷에 대한 응답의 수신 여부에 기초하여 서비스 지속성 여부를 결정할 수 있다. 서비스 지속성 여부는 앞서 도 3 및 도 4를 통해 설명한 바와 같이, 네트워크 장애와 서버 장애를 선별적으로 진단하거나 핀홀의 유지를 위한 하트비트 신호의 전송 주기(또는 핀홀 시간)의 판별하는 과정에서 활용될 수 있다.
도 6은 본 발명의 일실시예에 있어서, 네트워크 장애와 서버 장애를 선별적으로 진단하는 과정의 예를 도시한 도면이다. 도 6의 단계들(610 내지 650)은 도 5를 통해 설명한 단계(540)에 포함되어 수행될 수 있다.
단계(610)에서 전자 기기 1(110)은 패킷에 대한 응답 수신 여부를 확인할 수 있다. 이때, 전자 기기 1(110)은 에코 서버로부터 패킷에 대한 응답이 수신되는 경우 단계(620)을, 수신되지 않는 경우 단계(650)을 수행할 수 있다.
단계(620)에서 전자 기기 1(110)은 'NoResponseCount'를 1 증가시킬 수 있다. 에코 서버로부터 패킷에 대한 응답이 수신되었다는 것은 액세스 네트워크에는 문제가 없음을 의미할 수 있으며, 따라서 서버의 장애의 가능성을 의미할 수 있다. 실시예에 따라 에코 서버로부터 패킷에 대한 응답이 수신되었다는 것 자체를 서버의 장애로 설정할 수도 있으나, 보다 확실한 진단을 위해, 'NoResponseCount'와 'MaxWaitResponseCount' 같은 변수들이 활용될 수 있다.
단계(630)에서 전자 기기 1(110)은 'NoResponseCount'가 'MaxWaitResponseCount'를 초과하는지 여부를 확인할 수 있다. 이때, 전자 기기 1(110)은 'NoResponseCount'가 'MaxWaitResponseCount'를 초과하는 경우 단계(640)을 수행할 수 있으며, 'NoResponseCount'가 'MaxWaitResponseCount'를 초과하지 않는 경우 단계(510)을 재수행함으로써, 하트비트 신호가 주기적으로 서비스를 제공하는 서버로 전송되도록 할 수 있다. 이때, 단계(520)에서 하트비트 신호에 대한 응답신호가 서버로부터 수신되지 않는 경우, 다시 단계(530)을 통해 에코 서버로 패킷이 전송될 수 있고, 다시 단계(540)이 수행될 수 있다.
'MaxWaitResponseCount'가 '0'이라면, 에코 서버로부터 패킷에 대한 응답이 수신되었다는 것 자체가 서버의 장애를 의미하는 것으로 설정된 실시예를 나타낼 수 있다.
단계(640)에서 전자 기기 1(110)은 서버의 장애를 진단할 수 있다. 이미 설명한 바와 같이, 서버의 장애를 진단하는 것은 클라이언트가 현재 상황을 서버에 장애가 발생한 것으로 결정하고, 그에 따른 후속 동작을 처리(일례로, 다른 서버를 통한 서비스의 연결을 시도)하는 것을 의미할 수 있다.
단계(650)에서 전자 기기 1(110)은 네트워크의 장애를 진단한 후, 'NoResponseCount'를 0으로 초기화할 수 있다. 다시 말해, 전자 기기 1(110)은 서버로부터 하트비트 신호에 대한 응답신호를 수신하지 못한 것이 네트워크의 장애에 의한 것으로 서버가 서비스 지속성을 유지하고 있음을 결정할 수 있으며, 이를 위해, 서버로부터의 응답신호를 대기하고자 'NoResponseCount'를 0으로 초기화할 수 있다. 실시예에 따라 전자 기기 1(110)은 에코 서버로부터 패킷에 대한 응답이 수신되지 않는 횟수를 카운트하고, 카운트된 횟수가 기설정된 횟수를 초과하는 경우에 네트워크 장애를 진단할 수도 있다. 이 경우, 기설정된 횟수는 'MaxWaitResponseCount' 보다 작을 수 있다.
도 7은 본 발명의 일실시예에 있어서, 대략적인 핀홀 시간을 탐색하는 과정의 예를 도시한 도면이다. 단계(710) 내지 단계(730)은 도 5를 통해 설명한 단계(510) 내지 단계(530)에 대응할 수 있으나, 핀홀 시간의 탐색을 위해, 세부적인 진행 단계가 변경될 수 있다.
단계(710)에서 전자 기기 1(110)은 네트워크를 통해 서비스를 제공하는 서버로 하트비트(heartbeat) 신호를 전송할 수 있다. 여기서, 서버는 앞서 설명한 서비스 서버(320)나 서비스 서버 1(410)에 대응할 수 있으며, 클라이언트(310)에 의해 전자 기기 1(110)에서 식별될 수 있다. 또한, 하트비트 신호는 서버를 위한 응답지연시간 D가 설정될 수 있다.
단계(720)에서 전자 기기 1(110)은 응답신호의 수신 여부를 확인할 수 있다. 이때, 전자 기기 1(110)은 서비스를 제공하는 서버로부터 응답신호가 수신된 경우 다시 단계(780)를 수행할 수 있으며, 응답신호가 수신되지 않는 경우에는 단계(730)을 수행할 수 있다.
단계(730)에서 전자 기기 1(110)은 클라이언트에 의해 식별되는 에코 서버로 패킷을 전송할 수 있다. 클라이언트는 앞서 설명한 클라이언트(310)에, 에코 서버는 앞서 설명한 에코 서버(330)에 각각 대응할 수 있다. 이미 설명한 바와 같이 에코 서버는 수신되는 패킷에 대해 즉시 응답을 전송하도록 구현될 수 있으며, 장애가 발생하지 않는다고 가정될 수 있다.
단계(740)에서 전자 기기 1(110)은 패킷에 대한 응답의 수신 여부를 확인할 수 있다. 전자 기기 1(110)은 응답이 수신되는 경우 단계(750)을 수행할 수 있고, 응답이 수신되지 않는 경우 단계(790)을 수행할 수 있다.
단계(750)에서 전자 기기 1(110)은 응답지연시간을 줄일 수 있다. 이미 설명한 바와 같이, 서비스를 제공하는 서버로부터 응답신호가 수신되지 않지만, 에코 서버로부터 응답이 수신되는 경우에는 서버의 장애 또는 응답지현시간이 핀홀 시간보다 길어서 핀홀이 닫힌 경우를 고려할 수 있다. 이때, 핀홀이 닫힌 경우를 판단하기 위해 전자 기기 1(110)은 응답지연시간을 줄일 수 있다.
단계(760)에서 전자 기기 1(110)은 응답지연시간이 기설정된 시간 이하인지 여부를 판단할 수 있다. 예를 들어, 기설정된 시간이 '0'이고, 줄어든 응답지연시간이 '0'인 경우, 이는 핀홀이 닫혀서 응답신호가 수신되지 않은 것이 아니라, 서버에 장애가 발생한 것으로 해석될 수 있다. 만약, 응답지연시간이 기설정된 시간보다 큰 경우에는 다시 단계(710)이 수행될 수 있다. 이때, 단계(710)에서 전송되는 하트비트 신호에는 단계(750)에서 줄어든 응답지연시간이 설정될 수 있다.
단계(770)에서 전자 기기 1(110)은 서버의 장애를 진단할 수 있다. 앞서 설명한 바와 같이 단계(760)에서 응답지연시간이 기설정된 시간 이하인 경우 전자 기기 1(110)은 서버의 장애를 진단할 수 있으며, 핀홀 시간을 탐색하기 위한 과정은 종료될 수 있다.
단계(780)에서 전자 기기 1(110)은 응답지연시간을 하트비트 신호의 전송 주기로 설정할 수 있다. 단계(720)에서 하트비트 신호에 대한 응답신호가 수신된다는 것은 응답지연시간이 적어도 핀홀 시간 이내임을 의미할 수 있으며, 현재의 응답지연시간마다 하트비트 신호를 전송하면 핀홀을 유지할 수 있음을 의미할 수 있다. 따라서 전자 기기 1(110)은 단계(780)에서 응답지연시간을 하트비트 신호의 전송 주기로 설정함으로써 핀홀이 유지되도록 할 수 있다. 실시예에 따라 이미 설명한 바와 같이, 보다 정확한 핀홀 시간을 측정함으로써, 핀홀을 유지하면서도 하트비트 신호의 전송 주기를 최대화할 수도 있다.
단계(790)에서 전자 기기 1(110)은 네트워크 장애를 진단할 수 있다. 단계(740)에서 에코 서버로부터 패킷에 대한 응답을 수신하지 않는 경우, 전자 기기 1(110)은 액세스 네트워크의 장애와 같은 네트워크 장애를 진단할 수 있다. 이미 설명한 바와 같이, 전자 기기 1(110)는 에코 서버로부터 패킷에 대한 응답을 연속적으로 수신하지 못한 횟수를 카운트하고, 이러한 횟수가 기설정된 횟수를 초과하는 경우에 네트워크 장애를 진단할 수도 있다.
이처럼 본 발명의 실시예들에 따르면, 클라이언트에서 서비스를 제공하는 서버의 문제와 네트워크의 문제를 구분하여 진단할 수 있다. 또한, 클라이언트에서 서비스를 제공하는 서버로부터 응답이 없는 경우, 별도의 에코 서버로 패킷을 전송하고, 에코 서버로부터의 응답 여부에 따라 서버의 장애 및 네트워크의 장애를 선별적으로 진단할 수 있다. 또한, 서비스를 제공하는 서버와 NAT(Network Address Translation)간의 핀홀 시간(pinhole time)을 측정함에 있어서 에코 서버를 활용함으로써 적절한 핀홀 시간을 발견할 수 있다.
이상에서 설명된 시스템 또는 장치는 하드웨어 구성요소, 또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 어플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 매체는 컴퓨터로 실행 가능한 프로그램을 계속 저장하거나, 실행 또는 다운로드를 위해 임시 저장하는 것일 수도 있다. 또한, 매체는 단일 또는 수개 하드웨어가 결합된 형태의 다양한 기록수단 또는 저장수단일 수 있는데, 어떤 컴퓨터 시스템에 직접 접속되는 매체에 한정되지 않고, 네트워크 상에 분산 존재하는 것일 수도 있다. 매체의 예시로는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등을 포함하여 프로그램 명령어가 저장되도록 구성된 것이 있을 수 있다. 또한, 다른 매체의 예시로, 애플리케이션을 유통하는 앱 스토어나 기타 다양한 소프트웨어를 공급 내지 유통하는 사이트, 서버 등에서 관리하는 기록매체 내지 저장매체도 들 수 있다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.

Claims (19)

  1. 컴퓨터와 결합되어 지속성 관리 방법을 컴퓨터에 실행시키기 위해 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램에 있어서,
    상기 지속성 관리 방법은,
    네트워크를 통해 서비스를 제공하는 서비스 서버로 하트비트(heartbeat) 신호를 전송하는 단계;
    상기 서비스 서버로부터 하트비트 신호에 대한 응답신호가 수신되지 않는 경우, 상기 컴퓨터 프로그램에 의해 식별되는 에코 서버로 패킷을 전송하는 단계; 및
    상기 에코 서버로부터의 상기 패킷에 대한 응답의 수신 여부에 기초하여 서비스의 지속성 여부를 결정하는 단계
    를 포함하고,
    상기 에코 서버는 상기 서비스 서버와 다른 서버인 것을 특징으로 하는 컴퓨터 프로그램.
  2. 제1항에 있어서,
    상기 서비스의 지속성 여부를 결정하는 단계는,
    상기 에코 서버로부터의 상기 패킷에 대한 응답의 수신 여부에 따라 상기 서비스 서버의 장애 및 상기 네트워크의 장애 중 어느 하나를 선별적으로 진단하는 것을 특징으로 하는 컴퓨터 프로그램.
  3. 제2항에 있어서,
    상기 에코 서버로부터 상기 패킷에 대한 응답이 수신되는 경우, 상기 서비스 서버의 장애를 진단하는 것을 특징으로 하는 컴퓨터 프로그램.
  4. 제2항에 있어서,
    상기 서비스의 지속성 여부를 결정하는 단계는,
    상기 서비스 서버로부터 하트비트 신호에 대한 응답신호가 수신되지 않고, 상기 에코 서버로부터 상기 패킷에 대한 응답이 수신되는 상황이 기설정된 횟수만큼 연속적으로 반복되는 경우, 상기 서비스 서버의 장애를 진단하는 것을 특징으로 하는 컴퓨터 프로그램.
  5. 제2항에 있어서,
    상기 서비스의 지속성 여부를 결정하는 단계는,
    상기 에코 서버로부터 상기 패킷에 대한 응답이 수신되지 않는 경우, 상기 네트워크의 장애를 진단하는 것을 특징으로 하는 컴퓨터 프로그램.
  6. 제2항에 있어서,
    상기 서비스의 지속성 여부를 결정하는 단계는,
    상기 서비스 서버로부터 하트비트 신호에 대한 응답신호가 수신되지 않고, 상기 에코 서버로부터 상기 패킷에 대한 응답이 수신되지 않는 상황이 기설정된 횟수만큼 연속적으로 반복되는 경우, 상기 네트워크의 장애를 진단하는 것을 특징으로 하는 컴퓨터 프로그램.
  7. 제1항에 있어서,
    상기 서비스의 지속성 여부를 결정하는 단계는,
    상기 에코 서버로부터의 상기 패킷에 대한 응답이 수신되는 경우, 상기 서비스 서버로 전송될 다음 하트비트 신호에 대한 상기 서비스 서버의 응답지연시간을 조절하여 상기 서비스 서버와 상기 서비스 서버와 연계된 NAT(Network Address Translation) 서버간의 핀홀 시간(pinhole time)을 측정하는 것을 특징으로 하는 컴퓨터 프로그램.
  8. 제7항에 있어서,
    상기 서비스의 지속성 여부를 결정하는 단계는,
    상기 에코 서버로부터 상기 패킷에 대한 응답이 수신되는 경우, 상기 다음 하트비트 신호에 대한 상기 서비스 서버의 응답지연시간을 줄이는 것을 특징으로 하는 컴퓨터 프로그램.
  9. 제7항에 있어서,
    상기 핀홀 시간이 측정되는 경우, 상기 측정된 핀홀 시간마다 상기 서비스 서버로 응답지연시간이 없는 하트비트 신호를 전송하는 단계
    를 더 포함하는 것을 특징으로 하는 컴퓨터 프로그램.
  10. 제1항에 있어서,
    상기 에코 서버는 수신되는 패킷에 대해 즉시 응답을 전송하도록 구현되는 것을 특징으로 하는 컴퓨터 프로그램.
  11. 클라이언트의 지속성 관리 방법에 있어서,
    네트워크를 통해 서비스를 제공하는 서비스 서버로 하트비트(heartbeat) 신호를 전송하는 단계;
    상기 서비스 서버로부터 하트비트 신호에 대한 응답신호가 수신되지 않는 경우, 상기 클라이언트에 의해 식별되는 에코 서버로 패킷을 전송하는 단계; 및
    상기 에코 서버로부터의 상기 패킷에 대한 응답의 수신 여부에 기초하여 서비스의 지속성 여부를 결정하는 단계
    를 포함하고,
    상기 에코 서버는 상기 서비스 서버와 다른 서버인 것을 특징으로 하는 지속성 관리 방법.
  12. 제11항에 있어서,
    상기 서비스의 지속성 여부를 결정하는 단계는,
    상기 에코 서버로부터의 상기 패킷에 대한 응답의 수신 여부에 따라 상기 서비스 서버의 장애 및 상기 네트워크의 장애 중 어느 하나를 선별적으로 진단하는 것을 특징으로 하는 지속성 관리 방법.
  13. 제12항에 있어서,
    상기 에코 서버로부터 상기 패킷에 대한 응답이 수신되는 경우에 상기 서비스 서버의 장애를 진단하고, 상기 에코 서버로부터 상기 패킷에 대한 응답이 수신되지 않는 경우에 상기 네트워크의 장애를 진단하는 것을 특징으로 하는 지속성 관리 방법.
  14. 제12항에 있어서,
    상기 서비스의 지속성 여부를 결정하는 단계는,
    상기 서비스 서버로부터 하트비트 신호에 대한 응답신호가 수신되지 않고 상기 에코 서버로부터 상기 패킷에 대한 응답이 수신되는 상황이 기설정된 횟수만큼 연속적으로 반복되는 경우에 상기 서비스 서버의 장애를 진단하고, 상기 서비스 서버로부터 하트비트 신호에 대한 응답신호가 수신되지 않고 상기 에코 서버로부터 상기 패킷에 대한 응답이 수신되지 않는 상황이 기설정된 횟수만큼 연속적으로 반복되는 경우에 상기 네트워크의 장애를 진단하는 것을 특징으로 하는 지속성 관리 방법.
  15. 제11항에 있어서,
    상기 서비스의 지속성 여부를 결정하는 단계는,
    상기 에코 서버로부터의 상기 패킷에 대한 응답이 수신되는 경우, 상기 서비스 서버로 전송될 다음 하트비트 신호에 대한 상기 서비스 서버의 응답지연시간을 조절하여 상기 서비스 서버와 상기 서비스 서버와 연계된 NAT(Network Address Translation) 서버간의 핀홀 시간(pinhole time)을 측정하는 것을 특징으로 하는 지속성 관리 방법.
  16. 제15항에 있어서,
    상기 서비스의 지속성 여부를 결정하는 단계는,
    상기 에코 서버로부터 상기 패킷에 대한 응답이 수신되는 경우, 상기 다음 하트비트 신호에 대한 상기 서비스 서버의 응답지연시간을 줄이는 것을 특징으로 하는 지속성 관리 방법.
  17. 클라이언트가 구동되는 컴퓨터 장치에 있어서,
    컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서
    를 포함하고,
    상기 적어도 하나의 프로세서는,
    네트워크를 통해 서비스를 제공하는 서비스 서버로 하트비트(heartbeat) 신호를 전송하고,
    상기 서비스 서버로부터 하트비트 신호에 대한 응답신호가 수신되지 않는 경우, 상기 클라이언트에 의해 식별되는 에코 서버로 패킷을 전송하고,
    상기 에코 서버로부터의 상기 패킷에 대한 응답의 수신 여부에 기초하여 서비스의 지속성 여부를 결정하고,
    상기 에코 서버는 상기 서비스 서버와 다른 서버인 것
    을 특징으로 하는 컴퓨터 장치.
  18. 제17항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 에코 서버로부터의 상기 패킷에 대한 응답의 수신 여부에 따라 상기 서비스 서버의 장애 및 상기 네트워크의 장애 중 어느 하나를 선별적으로 진단하는 것을 특징으로 하는 컴퓨터 장치.
  19. 제17항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 에코 서버로부터의 상기 패킷에 대한 응답이 수신되는 경우, 상기 서비스 서버로 전송될 다음 하트비트 신호에 대한 상기 서비스 서버의 응답지연시간을 조절하여 상기 서비스 서버와 상기 서비스 서버와 연계된 NAT(Network Address Translation) 서버간의 핀홀 시간(pinhole time)을 측정하는 것을 특징으로 하는 컴퓨터 장치.
KR1020170147823A 2017-11-08 2017-11-08 네트워크 서비스 지속성 관리 KR101986695B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020170147823A KR101986695B1 (ko) 2017-11-08 2017-11-08 네트워크 서비스 지속성 관리
JP2018190990A JP7212491B2 (ja) 2017-11-08 2018-10-09 ネットワークサービス持続性管理
US16/181,799 US10931512B2 (en) 2017-11-08 2018-11-06 Computer readable media, methods, and computer apparatuses for network service continuity management
CN201811324046.3A CN109756387B (zh) 2017-11-08 2018-11-08 持续性管理方法、计算机装置及计算机可读记录介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170147823A KR101986695B1 (ko) 2017-11-08 2017-11-08 네트워크 서비스 지속성 관리

Publications (2)

Publication Number Publication Date
KR20190052279A KR20190052279A (ko) 2019-05-16
KR101986695B1 true KR101986695B1 (ko) 2019-06-07

Family

ID=66327850

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170147823A KR101986695B1 (ko) 2017-11-08 2017-11-08 네트워크 서비스 지속성 관리

Country Status (4)

Country Link
US (1) US10931512B2 (ko)
JP (1) JP7212491B2 (ko)
KR (1) KR101986695B1 (ko)
CN (1) CN109756387B (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102178310B1 (ko) * 2019-06-03 2020-11-12 한전케이디엔 주식회사 Dds 통신의 연속성 보장을 위한 방법
CN111131016A (zh) * 2020-01-02 2020-05-08 中车青岛四方车辆研究所有限公司 网络设备故障诊断方法、切换方法及故障诊断系统
CN115051968A (zh) * 2021-02-26 2022-09-13 华为技术有限公司 推送消息的发送方法、电子设备及可读介质
CN113573301B (zh) * 2021-09-24 2022-06-24 北京智芯微电子科技有限公司 无线通信终端多通道切换方法、装置及存储介质
CN117472656B (zh) * 2023-11-10 2024-06-14 北京明朝万达科技股份有限公司 热备式服务集群的权限转移方法、装置、设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010103695A (ja) * 2008-10-22 2010-05-06 Ntt Data Corp クラスタシステム、クラスタサーバ及びクラスタ制御方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7483437B1 (en) * 2003-11-20 2009-01-27 Juniper Networks, Inc. Method of communicating packet multimedia to restricted endpoints
KR101309556B1 (ko) 2006-05-18 2013-09-24 에스케이플래닛 주식회사 모바일 네트워크 게임의 재접속 방법 및 시스템, 그를 위한게임 서버
JP5357619B2 (ja) * 2009-04-28 2013-12-04 セコム株式会社 通信障害検出システム
US20120039165A1 (en) * 2009-04-28 2012-02-16 Andrew Brown Network Interface
US20120124431A1 (en) * 2010-11-17 2012-05-17 Alcatel-Lucent Usa Inc. Method and system for client recovery strategy in a redundant server configuration
US9235485B2 (en) * 2013-07-22 2016-01-12 International Business Machines Corporation Moving objects in a primary computer based on memory errors in a secondary computer

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010103695A (ja) * 2008-10-22 2010-05-06 Ntt Data Corp クラスタシステム、クラスタサーバ及びクラスタ制御方法

Also Published As

Publication number Publication date
KR20190052279A (ko) 2019-05-16
CN109756387A (zh) 2019-05-14
JP7212491B2 (ja) 2023-01-25
CN109756387B (zh) 2023-06-13
JP2019087993A (ja) 2019-06-06
US20190140888A1 (en) 2019-05-09
US10931512B2 (en) 2021-02-23

Similar Documents

Publication Publication Date Title
KR101986695B1 (ko) 네트워크 서비스 지속성 관리
JP6453965B2 (ja) Biosセットアップオプションを自動的に更新するシステム及び方法
JP6484316B2 (ja) ファームウェアを遠隔更新するシステム及び方法
US8352577B2 (en) Method and apparatus for updating information on an embedded system
EP3575975B1 (en) Method and apparatus for operating smart network interface card
EP3075111B1 (en) Method for providing a connection of a client to an unmanaged service in a client-server remote access system
CN112689828A (zh) 放置由网络流量触发的容器工作负载以在网络边缘设备处进行高效计算
US20080137658A1 (en) Apparatus and method for computer management
US11132187B2 (en) Bare metal provisioning of software defined infrastructure
JP6463814B2 (ja) ブートのハードウェア周波数を動的に最適化するシステム及び方法
US9671945B2 (en) Techniques of launching virtual machine from thin client
US10725890B1 (en) Program testing service
KR20210133907A (ko) 메신저 내 플랫폼에 추가된 애플리케이션을 이용하여 대화방에서 정보를 공유하는 방법, 시스템, 및 비-일시적인 컴퓨터 판독가능한 기록 매체
US10402290B2 (en) Using a pre-installation environment to debug a server without a functioning operating system
CN107247596B (zh) 开机方法、装置及电子设备
KR101914118B1 (ko) 데이터 송수신 방법 및 시스템
JP6285579B2 (ja) ロングポーリング処理方法およびシステム、並びに記録媒体
KR102112016B1 (ko) 복수의 IoT 디바이스의 통합 제어를 위한 복합 서비스 인터페이스 방법 및 시스템
CN115145381A (zh) 一种远程重置bmc芯片的方法、系统、存储介质及设备
KR20150029916A (ko) 컴퓨팅 환경 설정 장치 및 방법
KR102073274B1 (ko) 분산 시스템의 임계 상황을 판단하는 방법 및 그 시스템
US8578378B2 (en) Facilitating compatible interaction, at least in part
CN116149757B (zh) 插件虚拟路由实现方法、装置、计算机设备及存储介质
US20230071608A1 (en) Proxying tcp fingerprints
TW202227963A (zh) 預載入使用者介面的管理系統及其裝置操作方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right