KR20050080947A - 웹 인스턴트 메신저 시스템의 성능 개선 방법 및 시스템 - Google Patents

웹 인스턴트 메신저 시스템의 성능 개선 방법 및 시스템 Download PDF

Info

Publication number
KR20050080947A
KR20050080947A KR1020040009132A KR20040009132A KR20050080947A KR 20050080947 A KR20050080947 A KR 20050080947A KR 1020040009132 A KR1020040009132 A KR 1020040009132A KR 20040009132 A KR20040009132 A KR 20040009132A KR 20050080947 A KR20050080947 A KR 20050080947A
Authority
KR
South Korea
Prior art keywords
polling
web
server
messenger
polling interval
Prior art date
Application number
KR1020040009132A
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 KR1020040009132A priority Critical patent/KR20050080947A/ko
Publication of KR20050080947A publication Critical patent/KR20050080947A/ko

Links

Classifications

    • G06Q50/50
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/70Type of the data to be coded, other than image and sound
    • H03M7/707Structured documents, e.g. XML
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 

Abstract

본 발명은 웹 인스턴트 메신저 시스템의 성능 개선 방법 및 시스템에 관한 것이다.
웹 브라우저를 탑재 및 구동하여 HTTP 폴링 패킷을 주기적 또는 비주기적으로 생성하여 상기 유무선 통신망을 통해 전송하고, HTTP 폴링 회답 패킷을 수신하여 처리하는 방식으로 상기 웹 인스턴트 메신저 서비스를 이용하는 클라이언트 단말기; 상기 HTTP 폴링 패킷를 수신하여 폴링 패킷으로 변환하여 전송하고, 폴링 회답 패킷을 수신하여 상기 HTTP 폴링 회답 패킷으로 변환하여 상기 클라이언트 단말기로 전송하는 웹 서버; 및 상기 웹 서버에 연결되어 상기 폴링 패킷을 수신 및 분석하여 측정 폴링 간격을 연산하고, 상기 측정 폴링 간격과 상기 클라이언트 단말기에 설정된 자동 폴링 간격을 비교하되, 상기 측정 폴링 간격이 상기 자동 폴링 간격보다 작으면 상기 자동 폴링 간격을 감소시키고, 상기 측정 폴링 간격이 상기 자동 폴링 간격과 같으면 상기 자동 폴링 간격을 증가시켜 상기 폴링 회답 패킷을 생성 및 전송하고, 상기 클라이언트 단말기로 상기 웹 인스턴트 메신저 서비스를 제공하는 메신저 서버를 포함하는 것을 특징으로 하는 웹 인스턴트 메신저 시스템의 성능 개선 시스템을 제공한다.
본 발명에 의하면 클라언트 단말기로 웹 애플리케이션을 다운로드하거나 설치하는 번거로운 과정이 생략되고, 자동 폴링 간격의 최적화를 통한 웹 인스턴트 메신저 시스템의 성능을 향상시킬 수 있다.

Description

웹 인스턴트 메신저 시스템의 성능 개선 방법 및 시스템{Method and System for Improving Performance of Web Instant Messenger System}
본 발명은 웹 환경에서의 인스턴트 메신저 시스템의 성능 개선 방법 및 시스템에 관한 것이다. 더욱 상세하게는, 클라이언트 단말기로 자바 애플릿, 플러그인 등의 웹 애플리케이션의 다운로드 및 설치 작업이 수행되지 않거나 최소화되도록 하고, 클라이언트 단말기의 통신 상태에 따라 클라이언트 단말기에 대한 폴링 간격을 자동적으로 조절하여 웹 인스턴트 메신저 시스템의 성능을 개선하는 방법 및 시스템에 관한 것이다.
인스턴트 메신저(Instant Messenger)는 컴퓨터 네트워크 등을 통해 통신 단말기 간에 실시간 또는 거의 실시간으로 대화형 통신을 수행할 수 있도록 해 주는 다양한 소프트웨어를 통칭한다. 인스턴트 메신저가 종래의 쪽지 보내기나 전자 우편(E-Mail) 등과 구별되는 점은 대화형으로 실시간 통신을 수행할 수 있다는 점뿐만 아니라, 대화 상대간에 지인 관계를 맺어 인스턴트 메신저를 구동하여 로그인(Log-in)하면 로그인 사실을 통지하거나 지인들의 현재 상태를 알 수 있다는 점이다. 더욱이 최근의 인스턴트 메신저는 파일 전송, 대화방, 파일 공유, 음성/화상 채팅, 인터넷 개인 방송, 아바타/캐릭터 꾸미기, 단문 메시지 발송, 주식 검색, 이메일, 네트워크 게임 등의 기능이 추가되어 단순한 텍스트 채팅 도구에서 다양한 커뮤니케이션 플랫폼(Platform)으로 급격히 탈바꿈하고 있다.
현재 엠에스엔(MSN), ICQ, 다음(Daum), 네이트(Nate) 등의 사이트에서 제공하는 인스턴트 메신저 서비스를 이용하기 위해서 사용자는 인스턴트 메신저 프로그램을 자신의 컴퓨터 등으로 다운로드하여 설치한다. 사용자가 컴퓨터 등에 설치된 인스턴트 메신저 프로그램을 실행하면 해당하는 인스턴트 메신저 서버 또는 시스템에 자동으로 연결되어 동일한 인스턴트 메신저 프로그램을 이용하는 지인들과 인스턴트 메시징을 할 수 있게 된다.
한편, 사용자가 자신의 컴퓨터 등으로 다운로드하여 설치한 인스턴트 메신저 프로그램을 이용하여 인스턴트 메신저 서비스를 이용하기 위해서는 사용자 이름과 비밀번호 등의 정보를 입력하는 등록 과정을 거치는 것이 일반적이다. 따라서, 현재 제공되는 인스턴트 메신저 서비스는 인스턴트 메신저 프로그램의 다운로드 및 설치와 같은 초기 작업을 필수적으로 요구하여 불편을 초래하고, 사용자 이름과 비밀번호를 입력하게 함으로써 사용자의 개인 정보가 누출될 수 있는 등 보안 위협이 발생할 소지가 있다.
또한, 아직까지 인스턴트 메신저 서비스에 대해서는 전자 우편이나 웹과 같은 전세계 표준이 없는 상황에서 다수의 웹사이트가 각각 고유한 인스턴트 메시징 서비스를 제공하고 있고, 이들 각각의 인스턴트 메신저들 간에 호환이 되지 않는 근본적인 단점이 있다. 따라서, 한 사용자의 지인들이 각각 서로 다른 10 개의 인스턴트 메신저 서비스를 이용하는 경우, 이들 모두와 인스턴트 메시징을 하기 위해서는 10 개의 인스턴트 메신저 프로그램을 각각 다운로드하여 설치해야 한다. 또는, 사용자가 해당 지인들을 설득해서 특정 인스턴트 메신저 서비스에 등록하도록 하여야만 특정 인스턴트 메신저를 통해 지인들과 인스턴트 메시징을 수행할 수 있게 된다.
이와 같은 문제들을 해결하기 위해서는 인스턴트 메신저도 전자 우편, 웹 등과 같은 단일 국제 표준 프로토콜이 있어야 하고, 또한 인터넷 익스플로러나 넷스케이프와 같이 널리 보급된 웹 브라우저형 인스턴트 메신저 프로그램이 개발되어야 한다. 현재, 인스턴트 메신저의 국제 표준 시도는 IETF(Internet Engineering Task Force)에 의해 XMPP(Extensible Messaging & Presence Protocol)와 심플(SIMPLE) 프로토콜이 추진 중에 있다. 웹 인스턴트 메신저 시스템은 전용 클라이언트 기반 인스턴트 메신저 시스템으로부터 쉽게 유추할 수 있는 관계로 예전부터 논의가 진행되어 왔지만 여러 가지 기술적인 어려움으로 널리 사용되지 못하고 있는 실정이다.
웹 인스턴트 메신저 시스템은 클라이언트 컴퓨터 등에 별도의 인스턴트 메신저 프로그램을 설치하여 구동하지 않고도 웹브라우저를 이용하여 인스턴트 메시지 서비스를 제공하는 시스템을 말한다. 웹 인스턴트 메신저 시스템은 비접속형인 HTTP(HyperText Transfer Protocol) 통신을 이용하므로 클라이언트 컴퓨터 등이 자신에게 전송될 정보가 있는지의 여부를 확인하기 위해 메신저 서버로 주기적으로 폴링(Polling)한다. 또한, 클라이언트 컴퓨터는 메신저 서버로 인스턴트 메시지 등의 데이터를 전송할 필요가 없는 경우에도 사용자의 상태 정보를 지속적으로 메신저 서버로 알려주기 위해 접속을 수행하므로 네트워크 트래픽을 유발한다는 문제점이 있다.
구체적으로 설명하면, 기존 일반적인 인스턴트 메신저는 대화 상대방끼리 메시징을 하는 동안 세션(Session)을 유지하거나 인스턴트 메신저를 로그온하면 로그아웃때까지 지속적으로 세션이 유지되는 형태이다. 따라서, 세션이 지속적으로 유지됨에 따라 통신 채널을 지속적으로 유지하여 실시간 대화형 통신에 따른 통신 채널의 관리가 단순해지고, 실시간 통신이 보장되면서 클라이언트 컴퓨터 등으로부터의 상태 정보 등의 실시간 전송이 유리해진다.
한편, 웹 인스턴트 메신저 서비스에서는 클라이언트 컴퓨터로부터의 요청(Request)에 메신저 서버가 회답(Reply)하는 비접속형(Session-less)인 HTTP 통신 방식을 이용하므로 메신저 서버와 클라이언트 컴퓨터간에 세션을 유지하기 위해서는 세션을 유지시켜 주는 별도의 프로그램이 양단에 설치되어야 한다. 현재의 웹 인스턴트 메신저 서비스는 세션을 유지시켜 주는 자바 애플릿(Java Applet), 플러그인(Plug-in) 등과 같은 웹 애플리케이션을 서버와 클라이언트 양단에 설치하여 서비스를 제공하고 있다. 이와 같이 웹 애플리케이션을 이용한 웹 인스턴트 메신저 서비스는 주식회사 프리첼이 출원하여 등록 받은 대한민국 특허등록번호 10-385146의 "웹 메신저 서비스 시스템 및 서비스 방법"에 기술되어 있다.
도 1은 종래 웹 메신저 서비스 시스템(100)을 간략하게 나타낸 블럭도이다.
도 1은 대한민국 특허등록번호 10-385416에 개시된 웹 메신저 서비스 시스템(100)으로서, 클라이언트 단말기(110, 112), 인터넷(120), WAP 게이트웨이(130), 최적의 통신 경로를 설정하는 라우터(Router)(140), 웹 서버(150), 메신저 서버(160) 및 데이터베이스 서버(170)를 포함하여 구성된다. 도 1에 도시된 웹 메신저 서비스 시스템(100)은 기존 메신저 서버에 탑재된 기능 중 메시지 저장, 메시지 전달, 데이터베이스 연동, 부가 정보 지원 등의 일부 기능을 웹 서버(150)에 위치시켜 웹 서버(150)를 메신저 서버의 일부로 프록시 서버(Proxy Server)화한다. 또한, 클라이언트 단말기(110, 112)는 메신저 서버(160)를 통해 자바 애플릿 등의 웹 애플리케이션을 다운로드하고 플러그인하여 인스턴트 메시징을 하는 동안 웹 서버와 세션을 유지한다.
이러한 도 1의 웹 메신저 서비스 시스템(100)은 기존 메신저 서버가 관리하던 메시징 라우팅(Routing) 기능의 일부, 메시지 저장, 데이터베이스 연동 등의 기능을 웹 서버(150)로 이전시켜 웹 메신저 환경에서 메신저 서버의 부하를 줄이는 것을 주요 목적으로 하고 있다.
하지만, 도 1의 웹 메신저 서비스 시스템(100)은 많은 문제점을 가지고 있다. 첫째, 메신저 서버가 기본적으로 가지고 있는 메시지 라우팅, 메시지 보관, 메시지 검색, 사용자 상태 알림 기능 등을 제공하지 않는다. 둘째, 시스템에 데이터베이스 서버(170)가 추가되어 시스템이 복잡해지고, 추가적인 부하를 유발시킨다. 셋째, 메신저 서버(160)에서의 일부 기능을 웹 서버(150)로 이전시키기 위해 웹 서버(150)를 별도로 구현해야 한다. 네째, 쪽지나 메시지 송수신에는 적합하지만, 메시지를 실시간 대화형으로 송수신하기에는 부적합하다. 다섯째, 사용자 상태 정보를 취합하여 실시간으로 전송하거나 개인별로 상태 정보를 관리하기가 어렵다. 여섯째, 메시징 세션을 유지하기 위하여 클라이언트 단말기(110, 112)가 자바 애플릿 등을 플러그인하여야 하므로 사용자들의 불편을 초래하고, 메신저 프로그램의 용량이 커지는 문제점이 발생한다.
따라서, 웹 메신저 통신 환경에서 HTTP를 인스턴트 메시징 기법으로 이용하는 경우 메신저 서버를 그대로 활용하면서도 웹 서버에 큰 변경을 가하지 않고, 웹 서버의 부하를 최소화하고, 자바 애플릿 등 메신저 프로그램의 다운로드 및 설치를 하지 않는 순수한 웹 메신저 서비스 시스템의 개발이 요구되고 있는 실정이다.
본 발명은 전술한 요구에 부응하여 안출된 것으로서, 클라이언트 단말기로 자바 애플릿, 플러그인 등의 웹 애플리케이션의 다운로드 및 설치 작업이 수행되지 않거나 최소화되도록 하고, 클라이언트 단말기의 통신 상태에 따라 클라이언트 단말기에 대한 폴링 간격을 자동적으로 조절하여 웹 인스턴트 메신저 시스템의 성능을 개선하는 방법 및 시스템을 제시하는 것을 목적으로 한다.
이를 위한 본 발명의 제 1 목적에 의하면 유무선 통신망을 통해 하나 이상의 클라이언트 단말기로 웹 인스턴트 메신저 서비스를 제공하는 웹 인스턴트 메신저 시스템의 성능 개선을 위한 시스템에 있어서, 웹 브라우저를 탑재 및 구동하여 HTTP 폴링 패킷을 주기적 또는 비주기적으로 생성하여 상기 유무선 통신망을 통해 전송하고, HTTP 폴링 회답 패킷을 수신하여 처리하는 방식으로 상기 웹 인스턴트 메신저 서비스를 이용하는 클라이언트 단말기; 상기 HTTP 폴링 패킷를 수신하여 폴링 패킷으로 변환하여 전송하고, 폴링 회답 패킷을 수신하여 상기 HTTP 폴링 회답 패킷으로 변환하여 상기 클라이언트 단말기로 전송하는 웹 서버; 및 상기 웹 서버에 연결되어 상기 폴링 패킷을 수신 및 분석하여 측정 폴링 간격을 연산하고, 상기 측정 폴링 간격과 상기 클라이언트 단말기에 설정된 자동 폴링 간격을 비교하되, 상기 측정 폴링 간격이 상기 자동 폴링 간격보다 작으면 상기 자동 폴링 간격을 감소시키고, 상기 측정 폴링 간격이 상기 자동 폴링 간격과 같으면 상기 자동 폴링 간격을 증가시켜 상기 폴링 회답 패킷을 생성 및 전송하고, 상기 클라이언트 단말기로 상기 웹 인스턴트 메신저 서비스를 제공하는 메신저 서버를 포함하는 것을 특징으로 하는 웹 인스턴트 메신저 시스템의 성능 개선 시스템을 제공한다.
본 발명의 제 2 목적에 의하면 유무선 통신망을 통해 클라이언트 단말기로 웹 인스턴트 메신저 서비스를 제공하기 위해 상기 클라이언트 단말기로부터 HTTP 폴링 패킷을 수신 및 분석하여 응용 계층에서 통신 혼잡을 제어하여 웹 인스턴트 메신저 시스템의 성능을 향상시키는 메신저 서버로서, 상기 클라이언트 단말기로부터 수신한 상기 HTTP 폴링 패킷을 분석하여 요청 작업을 수행하고, 폴링 회답이 필요한지를 판단하되, 상기 폴링 회답이 필요한 경우 요청 작업 실행 결과를 취합하며, 수신한 상기 HTTP 폴링 패킷을 이용하여 측정 폴링 간격을 연산하고, 상기 측정 폴링 간격과 상기 클라이언트 단말기에 기 설정된 자동 폴링 간격을 비교하여 자동 폴링 간격을 선택적으로 갱신하고, 전송 대기 중인 전송 정보가 있는지를 판단하되, 상기 전송 정보가 있는 경우 상기 전송 정보를 취합하며, 상기 요청 작업 실행 결과, 갱신된 자동 폴링 간격 및 상기 전송 정보 중 하나 이상을 취합하여 하나의 폴링 회답 패킷을 생성하고, 상기 클라이언트 단말기로 전송하는 것을 특징으로 하는 메신저 서버를 제공한다.
본 발명의 제 3 목적에 의하면 유무선 통신망을 통해 주기적 또는 비주기적으로 폴링하는 클라이언트 단말기, 상기 폴링 및 폴링 회답을 처리하는 통신 게이트웨이로서 동작하는 웹 서버 및 상기 폴링을 이용하여 자동 폴링 간격을 선택적으로 갱신하여 상기 클라이언트 단말기로 전송하는 메신저 서버를 포함하여 구성되는 웹 인스턴트 메신저 시스템의 성능을 향상시키는 방법으로서, (a) 상기 메신저 서버는 상기 웹 서버를 통해 상기 클라이언트 단말기로부터 수신한 폴링 패킷을 분석하여 요청 작업을 수행하는 단계; (b) 폴링 회답이 필요한지를 판단하되, 상기 폴링 회답이 필요한 경우 요청 작업 실행 결과를 취합하는 단계; (c) 수신한 상기 폴링 패킷을 이용하여 측정 폴링 간격을 연산하고, 상기 측정 폴링 간격과 상기 클라이언트 단말기에 기 설정된 자동 폴링 간격을 비교하여 자동 폴링 간격을 선택적으로 갱신하는 단계; (d) 전송 대기 중인 전송 정보가 있는지를 판단하되, 상기 전송 정보가 있는 경우 상기 전송 정보를 취합하는 단계; 및 (e) 취합된 요청 작업 실행 결과, 갱신된 자동 폴링 간격 및 취합된 전송 정보 중 하나 이상을 이용하여 하나의 폴링 회답 패킷을 생성하고, 상기 클라이언트 단말기로 전송하는 단계를 포함하는 것을 특징으로 하는 웹 인스턴트 메신저 시스템의 성능 개선 방법을 제공한다.
이하에서는 첨부되는 도면을 참고로 본 발명의 실시예에 대하여 상세하게 설명한다.
우선 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
도 2는 본 발명의 바람직한 실시예에 따른 웹 인스턴트 메신저 시스템(200)을 간략하게 나타낸 블럭도이다.
본 발명의 바람직한 실시예에 따른 웹 인스턴트 메신저 시스템(200)은 클라이언트 단말기(211 내지 213), 인터넷(220), WAP 게이트웨이(230), 웹 서버(240), 메신저 서버(250) 및 데이터베이스(260) 등을 포함하여 구성된다.
클라이언트 단말기(211 내지 213)는 인터넷(22) 및 웹 서버(240)를 통해 메신저 서버(250)에 접속하여 웹 인스턴트 메신저 서비스를 이용하기 위한 단말기이다. 클라이언트 단말기(211 내지 213)는 아이에스피(ISP : Internet Service Provider)나 랜(LAN : Local Area Network)을 통해 인터넷(220)에 물리적으로 접속될 수 있고, WAP 게이트웨이(230)를 경유하여 인터넷(220)에 물리적으로 접속될 수 있다.
한편, 클라이언트 단말기(211 내지 213)는 종래 일반적인 메신저 시스템이나 도 1에서 설명한 웹 메신저 서비스 시스템(100)에서와는 달리 자바 애플릿, 플러그인 등의 웹 애플리케이션이 설치되어 있지 않고, 웹 브라우저만 설치되어 있다. 웹 브라우저를 구동하여 메신저 서버(250)에 접속한 후 웹 인스턴트 메신저 서비스를 요청하면 일반적인 웹 서비스에서와 유사한 웹브라우저 창의 형태로 웹 인스턴트 메신저 창이 클라이언트 단말기(211 내지 213)에 디스플레이된다.
여기서, 웹 브라우저란 마이크로소프트사의 인터넷 익스플로러(Internet Explorer), AOL(America Online)사의 넷스케이프 커뮤니케이터(Netscape Communicator) 등과 같은 웹 브라우저가 기본적으로 제공하는 HTML(HypreText Markup Language) 처리 및 스크립트(Script) 처리 기능만으로 구현된 소프트웨어이다. 물론, 클라이언트 단말기(211 내지 213)가 컴퓨터(210)인 경우 웹 브라우저는 HTML 처리 기능이 탑재된 유선 인터넷 웹 브라우저가 될 것이고, 휴대폰(212)이나 피디에이(PDA)(213) 등을 포함하는 이동통신 단말기인 경우에는 WML(Wireless Markup Language), m(Microsoft)-HTML, c(Compact)-HTML 등의 무선 인터넷 언어의 처리 기능이 탑재된 무선 인터넷 웹 브라우저가 될 것이다. 이러한 무선 인터넷 웹 브라우저로는 WAP(Wireless Application Protocol) 브라우저, ME(Mobile Explorer) 브라우저 및 Compact NetFront 브라우저가 되지만, 이에 한정되는 것은 아니다.
클라이언트 단말기(211 내지 213)는 접속한 메신저 서버(250)를 통해 인스턴트 메시지 송수신 외에도 파일 전송/공유, 그룹 대화, 음성/화상 채팅, 이메일 송수신, 네트워크 게임, 지인의 온라인 접속 여부 확인 기능, 지인 목록 관리 기능 등의 웹 인스턴트 메신저 서비스를 이용한다. 여기서, 지인(知人)이란 특정한 사용자 그룹에 포함된 사용자를 지칭하는 것으로서, 지인으로 구성된 사용자 그룹 내에서는 웹 인스턴트 메신저 서비스 상에서 접속 여부, 상태 정보 등을 자동으로 공유하게 되고 이러한 정보는 웹 인스턴트 메신저에 등록되어 관리된다.
클라이언트 단말기(211 내지 213)에서 구동된 웹 브라우저는 주기적 또는 비주기적으로 메신저 서버(250)로 HTTP 요청, 즉 폴링을 수행한다. 클라이언트 단말기(211 내지 213)의 사용자가 메신저 서버(250)로 등록 요청을 하는 경우, 상태 정보를 변경하는 경우, 채팅을 하는 경우, 검색 요청을 하는 경우 등 소정의 서비스를 메신저 서버(250)로 요청하는 이벤트(Event)가 발생되는 경우에 폴링이 수행된다. 여기서, 상태 정보는 사용자의 '온라인/오프라인', '자리비움', '통화 중', '식사 중', '다른 용무 중', '곧 돌아오겠음' 등으로 사용자가 웹 인스턴트 메신저를 이용하여 폴링을 수행할 확률을 예측하는 정보로 이용될 수 있다. 예컨대, 상태 정보가 '자리비움'인 경우 폴링을 수행할 확률은 아주 낮을 것이고, 상태 정보가 '곧 돌아오겠음'인 경우에는 폴링을 수행할 확률이 상대적으로 높다고 볼 수 있다.
한편, 폴링은 이벤트가 발생하는 경우뿐만 아니라 자동적으로도 발생한다. 즉, 클라이언트 단말기(211 내지 213)가 사용자로부터의 요청에 의해 폴링을 수행하는 경우 외에 주기적으로 자동 폴링을 수행하지 않으면 임의의 대화 상대방이 사용자에게 대화 요청을 하였는지의 여부, 상태 정보의 변경 여부 등을 전혀 파악할 수가 없게 된다. 즉, 클라이언트 단말기(211 내지 213)는 웹 인스턴트 메신저가 구동되어 온라인 상태가 유지되고 있는 동안에는 상대방 및/또는 메신저 서버(250)로부터의 요청 또는 전달 정보를 파악하기 위해 지속적으로 메신저 서버(250)로 자동 접속한다. 클라이언트 단말기(211 내지 213)는 이벤트성 또는 주기적으로 발생하는 메신저 서버(250)로의 데이터를 취합하여 폴링 패킷을 생성하여 HTTP 요청 형태(HTTP 폴링 패킷)로 폴링을 한다. 즉, 클라이언트 단말기(211 내지 213)가 메신저 서버(250)로의 폴링을 수행하는 경우, HTTP 폴링 패킷을 생성하여 전송한다.
WAP 게이트웨이(230)는 인터넷 상의 텍스트 파일 데이터를 이진(Binary) 코드 구조로 변환시켜 주는 기능을 한다. 즉, WAP 게이트웨이(230)는 이동통신 단말기(212, 213)로부터의 WAP 프로토콜에 의한 웹 메신저 서비스 요구를 요청 받아 TCP/IP(Transmission Control Protocol/Internet Protocol) 프로토콜로 변환하여 인터넷(220)을 통해 웹 서버(240)로 전송한다. 역으로, 웹 서버(240)로부터의 TCP/IP 프로토콜에 의한 회답 데이터를 받아 WAP 프로토콜로 변환하여 이동통신 단말기(212, 213)로 전송한다.
웹 서버(240)는 웹 인스턴트 메신저 서비스에서의 모든 통신 요구를 송수신하는 메신저 서버의 통신 전단(Front End)으로서 기능한다. 즉, 웹 서버(240)는 클라이언트 단말기(211 내지 213)로부터 웹 인스턴트 메신저 화면의 요청, 지인 관계 등록, 채팅, 상태 정보 공유, 파일 송수신, 이메일 전송, 네트워크 게임 진행 등의 웹 인스턴트 메신저에서 제공하는 모든 서비스를 HTTP 요청으로서 수신한다.
웹 서버(240)는 클라이언트 단말기(211 내지 213)로부터 수신한 HTTP 요청을 수신한 순서대로 큐잉(Queueing)하여 데이터 패킷들의 열로 이루어진 다수의 큐로 변환하여 메신저 서버(250)로 전송한다.
웹 서버(240)는 웹페이지 관리 모듈(241)과 통신 게이트웨이 모듈(242)을 포함한다. 웹페이지 관리 모듈(241)은 클라이언트 단말기(211 내지 213)로부터의 폴링에 회답하여 적절한 웹페이지를 생성하여 클라이언트 단말기(211 내지 213)로 전송한다.
통신 게이트웨이 모듈(242)은 클라이언트 단말기(211 내지 213)로부터의 HTTP 폴링 패킷을 수신하여 메신저 서버(250)가 인식할 수 있는 데이터/프로토콜 형태로 변환하여 전송한다. 여기서, 메신저 서버(250)가 인식할 수 있는 데이터/프로토콜 형태란 메신저 서버(250)가 이해할 수 있는 구조적인 데이터 통신 포맷을 의미한다. 따라서, 통신 게이트웨이 모듈(242)은 클라이언트 단말기(211 내지 213)로부터의 수신한 HTTP 폴링 패킷을 메신저 서버(250)가 이해할 수 있는 형태로 XML(eXtensible Markup Language) 태그(Tag)명을 변경한다든지, 추가 데이터 구조화를 한다든지, 또는 프로토콜 변환 게이트웨이 기능을 탑재하여 메신저 서버(250)와의 연동을 제공한다.
또한, 메신저 서버(250)가 클라이언트 단말기(211 내지 213)로부터의 HTTP 요청에 회답하여 전송한 폴링 회답 패킷(Polling Reply Packet)을 클라이언트 단말기(211 내지 213)가 인식할 수 있는 데이터 형태인 HTTP 폴링 회답 데이터로 변환하여 전송한다.
본 발명의 실시예에 따른 폴링 패킷 및 폴링 회답 패킷의 구조와 사용례에 대해서는 도 3 및 도 4에서 더욱 상세하게 설명하겠다.
메신저 서버(250)는 웹 서버(240)로부터 수신하는 폴링 패킷을 분석하여 클라이언트 단말기(211 내지 213)에서 요청된 작업을 수행하고, 작업 결과 데이터를 폴링 회답 패킷에 실어 웹 서버(240)로 전송한다. 메신저 서버(250)는 종래 일반적인 메신저 시스템에서의 메신저 서버와 유사한 기능을 모두 제공한다. 즉, 메신저 서버(250)는 인스턴트 메시지의 송수신 외에도 사용자 등록, 인증, 파일 전송/공유, 그룹 대화, 음성/화상 채팅, 이메일 송수신, 네트워크 게임, 지인의 온라인 접속 여부 확인 기능, 지인 목록 관리 기능 등의 메신저 서비스를 제공한다.
메신저 서버(250)는 데이터 수신 모듈(251), 데이터베이스 관리 모듈(252), 데이터 송신 모듈(253), 부가 정보 검색 모듈(254) 및 혼잡 제어기 모듈(255)을 포함하여 구성된다.
데이터 수신 모듈(251)은 웹 서버(240)로부터 전송되는 폴링 패킷 및 메시지를 TCP 통신 등의 다양한 통신 방식을 통해 수신한다.
데이터베이스 관리 모듈(252)은 데이터 수신 모듈(251)이 수신한 폴링 패킷의 분석 결과에 따라 사용자 상태 정보나 인스턴트 메시지를 데이터베이스(260)에 저장한다. 또한, 메신저 서버(250)의 요청에 따라 데이터베이스(260)에 저장된 사용자 상태 정보, 인스턴트 메시지 등을 추출한다.
데이터 송신 모듈(253)은 메신저 서버(250)가 클라이언트 단말기(211 내지 213)로부터 수신한 HTTP 폴링 패킷을 처리한 요청 작업 결과 및/또는 채팅 요청, 채팅 답변, 상태 변경, 파일 전송 승인 정보, 갱신된 자동 폴링 간격 등의 전송 대기 정보를 취합한 폴링 회답 패킷 및 메시지를 웹 서버(240)로 전송한다.
부가 정보 검색 모듈(254)은 웹 인스턴트 메신저 서비스에서 제공되는 각종 부가 기능, 예컨대 사용자 상태 확인 및 알림 기능, 일대일 채팅 요청 및 승낙 기능, 파일 전송 요청 및 승낙 기능 등 다양한 부가 정보의 요청 여부를 검색하여 응답하는 기능을 수행한다.
혼잡 제어기 모듈(255)은 혼잡 제어 알고리즘을 내장하여 다양한 혼잡 제어 요인을 분석하여 클라이언트 단말기(211 내지 213)가 메신저 서버(250)로 통신을 시도하는 폴링 간격(Polling Interval)을 제어한다. 여기서, 혼잡 제어 요인은 메신저 서버(250)가 클라이언트 단말기(211 내지 213)로부터 수신한 HTTP 폴링 패킷을 분석하여 추출한 클라이언트 단말기(211 내지 213)와 메신저 서버(250)와의 통신 상황, 사용자 상태 정보, 웹 서버(240) 및/또는 메신저 서버(250)의 부하 상태, 인스턴트 메신저 구동 상황 등의 정보를 포함한다.
한편, 본 발명의 기술 사상에 따르면 메신저 서버(250)가 폴링 간격을 제어함에 있어서, 클라이언트 단말기(211 내지 213)에 자바 애플릿 등의 웹 애플리케이션을 설치하고 구동하는 과정을 전혀 거치지 않는다. 혼잡 제어기 모듈(255)은 클라이언트 단말기(211 내지 213)가 메신저 서버(250)로 자동적으로 폴링을 수행해야 하는 최소한의 폴링 간격인 자동 폴링 간격(API : Automatic Polling Interval)을 최적화하여 폴링 간격을 제어한다.
여기서, 자동 폴링 간격은 클라이언트 단말기(211 내지 213)가 메신저 서버(250)로 자동적으로 접속하는 주기로서, 클라이언트 단말기(211 내지 213)가 메시지 전송, 상태 변경, 검색 요청 등의 이벤트를 발생하는 이벤트 발생형 폴링이 발생하지 않는 경우에도 최소한 자동 폴링 간격으로 자체적으로 폴링을 수행할 것을 메신저 서버(250)가 클라이언트 단말기(211 내지 213)에게 지시하는 정보이다. 따라서, 클라이언트 단말기(211 내지 213)는 웹 인스턴트 메신저가 실행된 경우 이벤트 발생형 폴링이 발생하지 않더라도 수신한 자동 폴링 간격으로 자신의 상태를 메신저 서버(250)로 알려주고, 메신저 서버(250)로부터 수신해야 하는 정보나 요청이 있는지를 확인하는 작업을 수행한다.
예컨대, 자동 폴링 간격이 10초로 설정된 경우 클라이언트 단말기(211 내지 213)는 자체적으로 폴링이 발생하지 않더라도 최종 폴링을 수행한 시점부터 10초가 경과하면 메신저 서버(250)로 자동적으로 폴링을 수행한다. 클라이언트 단말기(211 내지 213)는 이러한 자동 폴링을 통해 사용자가 온라인 상태임을 메신저 서버(250)로 알리고, 최종 폴링 수행 시점 이후부터 다른 사용자로부터의 요청 발생 여부, 발생된 요청 종류, 자신과 관계된 정보 변경 사항 등을 확인하여 메신저 서버(250)로부터 해당 정보들을 획득한다.
본 발명의 실시예에 따른 혼잡 제어 알고리즘은 하나 이상의 클라이언트 단말기(211 내지 213)로부터의 자동 폴링 간결을 조절하여 웹 인스턴트 메신저 시스템의 성능을 향상시킨다. 혼잡 제어 알고리즘의 원리는 웹 서버(240)를 간단한 큐잉 시스템으로 생각하고, 클라이언트 단말기(211 내지 213)로부터의 다수의 HTTP 요청을 하나의 큐에 삽입하여 수신 순서대로 웹 서버(240)가 처리한다고 가정하면 쉽게 이해할 수 있다.
웹 서버(240)의 폴링 처리 속도를 μ, 클라이언트 단말기(211 내지 213)로부터의 폴링 속도를 λ(λ=1/폴링 간격), 큐에 대기 중인 평균 폴링 수를 N, 폴링이 큐에서 대기하는 평균 시간은 W라고 하자. 이 경우, N = λW로 큐에 대기 중인 평균 폴링 수(N)는 클라이언트 단말기(211 내지 213)로부터의 폴링 속도(λ)가 커질수록 증가함을 알 수 있다. 또한, 웹 인스턴트 메신저 서비스의 성능(실시간 처리 속도)을 나타내는 큐에서의 평균 대기 시간 W = 1/(μ-λ) - (1/μ)으로 웹 서버(240)의 폴링 처리 속도(μ)가 클수록, 클라이언트 단말기(211 내지 213)로부터의 폴링 속도(λ)가 작을수록 우수함을 알 수 있다. 만약 λ가 μ보다 더 크다면 웹 서버(240)는 시스템 다운될 것이다. 따라서, 본 발명의 혼잡 제어 알고리즘은 웹 인스턴트 메신저 시스템의 서비스 품질을 유지하면서도 λ를 작게 하여 성능을 향상시키는 알고리즘이다.
물론, 본 발명의 기술 사상은 클라이언트 단말기(211 내지 213)로부터의 폴링 속도를 조절하여 웹 인스턴트 메신저 시스템의 성능을 향상시키는 방법뿐만 아니라, 이미 널리 활용되고 있는 방법으로서 다수의 웹 서버를 병렬로 연결하는 방법, 캐싱 시스템을 별도로 구축하는 방법, 메모리 데이터베이스를 구축하는 방법 등도 포함할 수 있다.
본 발명의 기술 사상에 따른 혼잡 제어 알고리즘의 동작 원리에 대해서는 도 6과 함께 더욱 상세하게 설명하겠다.
한편, 본 발명의 실시예에 따른 웹 서버(240), 메신저 서버(250) 및 데이터베이스(260)는 동일한 하나의 물리적 서버로 구현될 수 있고, 또는 다수의 서버에 분산되는 형태로 구현될 수도 있다. 또한, 혼잡 제어기 모듈(255)은 웹 서버(240)에 탑재될 수도 있는데, 웹 서버(240)에 탑재되는 경우에는 메신저 서버(250)로부터 혼잡 제어 알고리즘에서 필요로 하는 변수들을 수신해야 한다.
데이터베이스(260)는 메신저 서버(250)의 데이터베이스 관리 모듈(252)에 의해 관리되며 사용자 데이터베이스(261) 및 메시지 데이터베이스(262)를 포함한다. 사용자 데이터베이스(261)는 이름, ID, 비밀번호, 대화명, 이메일 주소 등의 사용자 신상 정보, 사용자의 지인이나 대화 상대 정보, 사용자의 상태 정보, 과금 정보 등이 저장되어 있다.
또한, 사용자 데이터베이스에는 사용자별로 본 발명의 실시예에 따른 자동 폴링 간격 정보 및 측정 폴링 간격 정보가 저장되어 있다. 여기서, 측정 폴링 간격(PIAT : Polling Inter-Arrival Time)은 실제로 측정된 클라이언트 단말기(211 내지 213)의 폴링 간격이다. 즉, 현재 시간 TN에 클라이언트 단말기(211 내지 213)로부터 폴링이 수신되고, 해당 클라이언트 단말기(211 내지 213)로부터의 바로 전 폴링 도착 시간이 TN-1이라면 측정 폴링 간격은 (TN - TN-1)이 된다. 즉, 앞에서 설명한 자동 폴링 간격이 메신저 서버(250)가 지정해 주는 최소한의 폴링 간격 요구인 반면, 측정 폴링 간격은 클라이언트 단말기(211 내지 213)가 실제로 어느 정도의 간격으로 폴링을 수행하는지를 나타내는 지표이다.
메시지 데이터베이스(262)에는 메신저 서버(250)가 웹 서버(240)를 통해 수신한 폴링 패킷에서 추출한 메시지가 사용자별로 분류되어 저장되어 있다. 따라서, 데이터 송신 모듈(253)은 데이터베이스 관리 모듈(252)이 메시지 데이터베이스(262)에서 추출한 메시지를 송신한다.
앞에서 설명한 사용자 데이터베이스(261) 및 메시지 데이터베이스(262)는 오라클(Oracle), 인포믹스(Infomix), 사이베이스(Sybase), DB2와 같은 관계형 데이터베이스 관리 시스템(RDBMS)이나, 젬스톤(Gemston), 오리온(Orion), O2 등과 같은 객체 지향 데이터베이스 관리 시스템(OODBMS) 및 엑셀론(Excelon), 타미노(Tamino), 세카이주(Sekaiju) 등의 XML 전용 데이터베이스(XML Native Database)를 이용하여 본 발명의 목적에 맞게 구현될 수 있고, 자신의 기능을 달성하기 위한 적당한 필드(Field) 또는 엘리먼트들을 가지고 있다.
본 발명에 필요한 데이터베이스의 구축 및 관리는 본 발명이 속하는 기술 분야에서 통상의 지식을 가지는 자에 의하여 충분하게 실시될 수 있기 때문에, 그에 대한 상세한 설명은 생략한다.
도 3은 본 발명의 실시예에 따른 폴링 패킷의 필드 및 사용례를 나타낸 도면이다.
본 발명의 실시예에 따른 폴링 패킷에 포함 가능한 필드 정보는 A에 보여지듯이 상태 변경 요청, 메시지 전송 요청, 파일 전송 요청, 검색 요청, 로그아웃 요청, 공지 및 알림 요청, 대화 상태 추가 요청, 개인 정보 변경 요청, 설정 정보 변경 요청, 부가 서비스 요청, 대화 상태 및/또는 서버 요청에 따른 회답 등이 가능하다. 즉, 하나의 폴링 패킷에 사용자 상태 정보 및 다양한 사용자 요청을 동시에 전달할 수 있다. 물론, A에 표시된 정보 외에도 인스턴트 메신저 기능의 확장에 따라 추가적인 정보가 포함될 수 있다.
한편, 본 발명의 실시예에서는 폴링 패킷을 IP 패킷과 같이 고정 필드들로 구성할 수도 있지만, 실제 전송되어야 하는 정보들로만 동적으로 구성되는 유동 필드들로 구성할 수도 있다. 이러한 폴링 패킷의 구성은 클라이언트 단말기(211 내지 213)가 기본적으로 실행하지만, 메신저 서버(250)와의 연동에 추가적인 작업이 필요하면 폴링 패킷을 수신한 웹 서버(240)의 통신 게이트웨이 모듈(242)에 의해 추가적으로 진행된다. 본 발명의 실시예에 따라 유동 필드로 폴링 패킷을 구성하는 경우 XML을 이용하여 클라이언트 단말기(211 내지 213)가 요청하고 싶은 필드가 있는 경우에만 태그를 활용하여 가변적인 형태나 크기의 패킷을 동적으로 생성한다.
B는 폴링 패킷을 XML로 구성한 사용례이다. 예1)은 "jim"이라는 사용자가 "길동"이라는 대화 상대와 채팅으로 인스턴트 메시징을 하면서 "잘 있었니?"라는 메시지를 전송하는 내용의 XML 폴링 패킷이다. 또한, 동시에 사용자 중에 이름이 "하늘"이 포함된 사람이 있는지를 검색 요청하고 있다. 예1)의 폴링 패킷은 폴링 타입 필드가 이벤트(polling type='event')로 표시되어 있음을 보아 사용자가 직접 폴링을 요청하여 발생한 것임을 알 수 있다. 또한, 모든 폴링 패킷에는 ID가 자동적으로 생성되어(id='232') 폴링 패킷의 관리에 이용된다.
예2)는 폴링 타입 필드가 오토(polling type='auto')임을 보아 사용자의 요청과 무관하게 클라이언트 단말기(211 내지 213)가 메신저 서버(250)로 자동적으로 폴링을 수행한 경우의 폴링 패킷임을 알 수 있다. 예2)의 폴링 패킷은 어떠한 정보도 담고 있지 않아, 클라이언트 단말기(211 내지 213)가 메신저 서버(250)에게 변동 사항이 없음을 알려주고 있다.
도 4는 본 발명의 실시예에 따른 폴링 회답 패킷의 필드 및 사용례를 나타낸 도면이다.
본 발명의 실시예에 따른 폴링 회답 패킷에 포함 가능한 필드 정보는 A에 보여지듯이 대화 상대의 상태 변경 요청, 대화 상대의 메시지 전송 요청, 대화 상대의 파일 전송 요청, 검색 요청에 대한 결과, 파일 전송 승인 요청에 대한 회답, 대화 상대 추가 요청에 대한 회답 등이 가능하다. 물론, A에 표시된 정보 외에도 인스턴트 메신저 기능의 확장에 따라 추가적인 정보가 포함될 수 있고, 도 3에서 설명한 폴링 패킷과 같이 XML로 구현될 수 있다.
4B는 폴링 회답 패킷을 XML로 구성한 사용례이다. 예1)은 도 3B의 예1)에서의 폴링 패킷에 대한 폴링 회답 패킷으로서, 이러한 사실은 id='232'로서 동일한 점에서 확인할 수 있다. 즉, 특정 폴링 패킷에 대응하는 폴링 회답 패킷은 폴링 패킷에 부여된 ID와 동일한 ID가 부여된다.
예2)는 메신저 서버(250)가 특정 클라이언트 단말기(211 내지 213)에 대해 자동 폴링 간격을 15초로 설정하는('api_set'=15) 폴링 회답 패킷이다. 따라서, 예2)와 같은 폴링 회답 패킷을 수신한 클라이언트 단말기(211 내지 213)는 최소한 15초 주기로 메신저 서버(250)로 자동 폴링을 수행한다.
도 5는 본 발명의 실시예에 따른 웹 인스턴트 메신저 시스템(200)의 동작 과정을 나타낸 순서도이다.
웹 서버(240)가 클라이언트 단말기(211 내지 213)로부터 HTTP 폴링 패킷을 수신한다(S500). 여기서, HTTP 폴링 패킷은 클라이언트 단말기(211 내지 213)의 사용자의 요청에 의한 이벤트 발생형 폴링이거나 메신저 서버(250)로부터 미리 수신한 자동 폴링 간격에 의해 수행되는 자동 폴링 중 하나이다. 클라이언트 단말기(211 내지 213)로부터 HTTP 폴링 패킷을 수신한 웹 서버(240)는 HTTP 폴링 패킷을 메신저 서버(250)에서 인식 가능한 폴링 패킷으로 변환하여 메신저 서버(250)로 전송한다(S502).
폴링 패킷을 수신한 메신저 서버(250)는 수신한 폴링 패킷을 분석 및 파싱하여 요청된 작업을 수행한다(S504). 여기서, 파싱(Parsing)이란 XML 문서의 내용을 미리 정해진 규칙에 의해 이해 및 검증하는 일련의 과정을 말한다. 따라서, 메신저 서버(250)는 XML 문서의 일종인 폴링 패킷을 파싱하기 위한 파서(Parser)를 내장한다.
메신저 서버(250)는 요청된 작업을 수행한 후, 요청 작업 실행 결과를 클라이언트 단말기(211 내지 213)로 회답해야 하는지의 여부를 판단한다(S504). 본 발명의 실시예에 따르면 메신저 서버(250)는 클라이언트 단말기(211 내지 213)로부터의 모든 폴링에 대해서 반드시 회답을 하지는 않는다. 예컨대, 메신저 서버(250)는 클라이언트 단말기(211 내지 213) 및 웹 서버(240)로부터 수신한 폴링 패킷의 폴링 타입이 이벤트인 것(polling type='event') 중 검색 요청 등 요청 작업의 실행 성공 또는 실행 실패가 짧은 시간 내에 결정되거나, 클라이언트 단말기(211 내지 213)에 디스플레이할 수 있는 폴링 패킷에 대해서만 회답을 한다.
반면, 폴링 타입이 자동인 것(polling type='auto')이나 폴링 타입이 이벤트인 것이라도 요청 작업의 실행 성공 또는 실행 실패가 짧은 시간 내에 결정되지 않거나 회답할 정보가 없는 경우에는 회답을 하지 않는다. 따라서, 메신저 서버(250)가 모든 폴링 패킷에 대해서 회답을 하지는 않으므로 결과적으로 웹 서버(240)의 부하가 감소되는 효과를 갖는다. 또한, 만약의 경우 늦게라도 회답을 하게 되는 경우에는 해당 폴링 패킷과 동일한 ID를 이용하여 폴링 회답 패킷을 생성하여 전송하면 신뢰성 있는 회답을 수행할 수 있다.
메신저 서버(250)는 단계 S504의 판단 결과 회답이 필요한 경우라고 판단되면, 요청 작업 실행 결과를 취합한다(S506).
한편, 메신저 서버(250)는 단계 S504에서의 폴링 회답의 필요 여부에 대한 판단과 동시에 또는 순차적으로 해당 클라이언트 단말기(211 내지 213)로 전송할 전송 정보가 있는지를 판단한다(S508). 여기서, 전송 정보는 메신저 서버(250)가 수행한 최종 폴링 회답 이후 해당 클라이언트 단말기(211 내지 213)로 전송해야 하는 정보로서, 특정 대화 상대로부터의 채팅 요청, 채팅 요청 답변, 지인 또는 대화 상태의 상태 변경, 파일 전송 승인, 변경된 자동 폴링 간격 등에 관한 정보이다. 메신저 서버(250)는 단계 S508의 판단 결과 전송 정보가 대기 중이라고 판단되면, 해당 전송 정보를 취합한다(S510).
메신저 서버(250)는 단계 S506 및 단계 S510에서 취합한 요청 작업 실행 결과와 전송 정보를 취합하여 폴링 회답 패킷을 생성하여 웹 서버(240)로 전송한다(S512). 즉, 본 발명의 실시예에 따른 메신저 서버(250)는 클라이언트 단말기(210 내지 213)로부터의 요청 작업 실행 결과와 전송 정보를 피기백킹 기법으로 전송한다. 여기서, 피기백킹(Piggybacking)은 통신 장치가 수신 데이터에 대한 확인 응답과 기타 송신 데이터를 함께 전송하는 기법을 말한다.
웹 서버(240)는 메신저 서버(250)로부터 수신한 폴링 회답 패킷을 클라이언트 단말기(211 내지 213)가 인식 가능한 HTTP 폴링 회답 패킷으로 변환한다(S514). 폴링 회답 패킷을 HTTP 폴링 회답 패킷으로 변환한 웹 서버(240)는 변환된 HTTP 폴링 회답 패킷을 인터넷(220) 및/또는 WAP 게이트웨이(230)를 통해 클라이언트 단말기(211 내지 213)로 전송한다(S516).
도 6은 본 발명의 실시예에 따른 혼잡 제어 알고리즘의 동작 과정을 나타낸 순서도이다.
종래 전용 클라이언트-서버 환경에 기반한 양 종단 노드 중심의 데이터 혼잡 제어는 네트워크 계층(Level 3)이나 전송 계층(Level 4)에서 서버가 성공적으로 수신할 수 있는 데이터 전송 속도를 파악하여 서버가 수용할 수 있는 데이터 전송 속도의 한계치를 초과하면 해당 클라이언트에게 데이터 전송 속도를 낮추라는 명령을 전송하는 단순 피드백 제어(Feedback Control) 형태이다. 반면, 본 발명의 기술 사상에 따르면 클라이언트 단말기(211 내지 213)와 메신저 서버(250) 간의 데이터 혼잡 제어는 양 종단 노드의 연동을 통한 혼잡 제어를 웹 인스턴트 메신저 시스템이라는 응용 계층(Level 7)에서 수행한다. 따라서, 사용자가 편리하게 제어할 수 있는 응용 계층의 특성상 사용자가 소정의 응용 프로그램(본 발명에서는 혼잡 제어 알고리즘)을 이용하여 데이터의 전송 및 관리를 효율적으로 제어할 수 있게 된다.
메신저 서버(250)는 인터넷(220) 및 웹 서버(240)를 통해 클라이언트 단말기(211 내지 213)로부터 폴링 패킷을 수신한다(S600). 메신저 서버(250)에 탑재된 혼잡 제어기 모듈(255)은 수신한 폴링 패킷을 이용하여 측정 폴링 간격을 연산한다(S602). 그런 다음, 혼잡 제어기 모듈(255)은 수신한 폴링 패킷의 내용을 분석하여 사용자의 상태 정보의 변경이 있고, 변경된 상태 정보가 "자리비움"인지를 판단한다(S604). 물론, 본 발명의 실시예에서는 "자리비움"이라는 용어를 사용하고 있지만, 사용자에 의한 이벤트 발생형 폴링이 최대 시간 간격을 가지면서 수행되는 경우를 의미하는 용어라면 다른 용어로 얼마든지 대체될 수 있을 것이다.
혼잡 제어기 모듈(255)은 수신한 폴링 패킷의 분석 결과 "자리비움"으로 사용자 상태 정보가 변경되었다고 판단되면, 해당 클라이언트 단말기(211 내지 213)의 자동 폴링 간격을 최대값으로 변경 설정한다(S605). 여기서, 단계 S605에서 자동 폴링 간격을 최대값으로 변경한 이유는 사용자의 상태가 "자리비움"이므로 당분간 이벤트 발생형 폴링이 발생하지 않을 확률이 높기 때문이다. 물론, 사용자 상태 정보가 "자리비움"으로 변경된 경우 자동 폴링 간격을 최대값으로 변경하지 않고, 다른 클라이언트 단말기(211 내지 213)들과 웹 인스턴트 메신저 시스템의 통신 상태를 고려하여 적절한 값으로 증가시킬 수 있을 것이다.
또한, 본 발명의 실시예에 따른 자동 폴링 간격은 최소값과 최대값이 미리 설정되어 있는데, 최소값과 최대값은 실험적으로 구해질 수 있고, 시간, 통신 상태, 웹 인스턴트 메신저 서비스를 이용하는 사용자수에 따라 변경될 수 있다.
한편, 혼잡 제어기 모듈(255)은 단계 S604의 판단 결과 사용자 상태 정보가 변경되지 않거나 변경된 사용자 상태 정보가 "자리비움"이 아니라고 판단되면, 단계 S602에서 연산한 측정 폴링 간격(PIAT)과 해당 클라이언트 단말기(211 내지 213)의 자동 폴링 간격(API)을 비교한다(S606).
혼잡 제어기 모듈(255)은 단계 S606의 비교 결과 측정 폴링 간격이 자동 폴링 간격보다 작은 경우에는 자동 폴링 간격을 작게 한다(S608). 즉, 측정 폴링 간격이 자동 폴링 간격보다 작은 경우에는 메신저 서버(250)가 지정한 자동 폴링 간격 이전에 클라이언트 단말기(210 내지 213)에 의해 이벤트 발생형 폴링을 시도한 것이므로 폴링 요청이 빈번하게 예상되므로 자동 폴링 간격을 작게 하는 것이 바람직하다.
본 발명의 실시예에서는 자동 폴링 간격을 작게 하는 수식으로 API = α·PIAT + (1-α)·API를 이용한다. 여기서, α는 0 ~ 1 사이의 값을 갖는 변수로서, 0에 가까울수록 변경되는 자동 폴링 간격이 현재의 자동 폴링 간격에 가깝게 되고, 1에 가까울수록 변경되는 자동 폴링 간격이 측정 폴링 간격에 근접하게 된다.
한편, α는 메신저 서버(250)의 관리자에 의해 경험적으로 세팅될 수 있고, 소정의 알고리즘에 의해 자동적으로 세팅될 수 있다. 본 발명의 실시예에서 α는 전체 웹 서버와 메신저 서버 부하에 대한 함수로 되어 있어, 전체 서버 부하가 큰 경우에는 α를 작게 설정하고, 전체 서버 부하가 작은 경우에는 α를 크게 설정한다.
한편, 단계 S606의 비교 결과 측정 폴링 간격이 자동 폴링 간격과 같은 경우에는 자동 폴링 간격을 크게 한다(S610). 측정 폴링 간격과 자동 폴링 간격이 같은 경우에는 최후 폴링 이후 사용자에 의한 이벤트 발생형 폴링이 발생하지 않아 클라이언트 단말기(210 내지 213)가 기 수신한 자동 폴링 간격에 따라 폴링한 경우이다. 이러한 경우 혼잡 제어기 모듈(255)은 해당 클라이언트 단말기(210 내지 213)에 의해 이벤트 발생형 폴링이 자주 발생하지 않을 것으로 판단되므로 자동 폴링 간격을 크게 한 것이다. 또한, 측정 폴링 간격과 자동 폴링 간격의 동일함의 판단은 두 간격의 오차가 기 설정된 유사 범위 이내의 값을 갖는 경우에도 동일하다고 판단할 수 있다.
본 발명에서는 자동 폴링 간격을 크게 하는 수식으로 API=β·API를 이용한다. 여기서, β는 1보다 큰 변수로서, β값이 커질수록 API는 빠르게 증가한다. β도 α와 마찬가지로 메신저 서버(250)의 관리자에 의해 세팅되거나 소정의 알고리즘에 의해 자동적으로 세팅될 수 있고, 전체 서버 부하에 대한 함수로 되어 있다. 따라서, 전체 메신저 서버 부하가 큰 경우에는 β를 크게 하여 자동 폴링 간격을 증가시킴으로써 전체 메신저 서버 부하를 경감시키고, 전체 메신저 서버 부하가 작은 경우에는 1에 가까운 값으로 하여 자동 폴링 간격의 변동의 작게함으로써 클라이언트 단말기(210 내지 213)의 응답성을 높인다.
물론, 자동 폴링 간격을 조절하는 변수인 α나 β는 특정 웹 서버 및/또는 메신저 서버 부하에 대한 함수로 설정될 수도 있다. 이러한 경우 자동 폴링 간격의 조절은 특정 서버 단위로 수행될 것이다.
한편, 본 발명의 실시예에서는 혼잡 제어기 모듈(255)이 사용자 상태 정보와 측정 폴링 간격을 이용하여 자동 폴링 간격을 조절하는 것으로 설명하고 있지만, 본 발명의 기술 사상이 이에 한정되는 것은 아니며 폴링 패킷의 내용 중에 향후 폴링 간격을 예측하는 데 필요한 다른 인자들도 이용할 수 있을 것이다.
메신저 서버(250)는 단계 S605, 단계 S608 및 단계 S610에서 획득한 새로운 자동 폴링 간격의 값을 폴링 회답 패킷에 함께 실어 해당 클라이언트 단말기(210 내지 213)로 전송한다(S612). 해당 클라이언트 단말기(210 내지 213)는 웹 서버(240), 인터넷(220) 등을 통해 자동 폴링 간격을 수신 및 저장하고, 메신저 서버(250) 역시 연산한 자동 폴링 간격 및 측정 폴링 간격을 해당 클라이언트 단말기(210 내지 213)별로 사용자 데이터베이스(261)에 저장한다(S614).
한편, 본 발명의 기술 사상에 따르면 메신저 서버(250)는 매 폴링마다 클라이언트 단말기(210 내지 213)로 자동 폴링 간격에 관한 회답을 수행하지는 않는다. 즉, 메신저 서버(250)가 클라이언트 단말기(210 내지 213)로부터 폴링이 발생할때마다 폴링 회답을 하는 경우에는 통신 부하가 높아지는 단점이 발생하므로, 자동 폴링 간격을 변경시켜 충분한 효과가 예상되는 경우에만 자동 폴링 간격에 관한 회답을 수행한다.
이상의 설명은 본 발명을 예시적으로 설명한 것에 불과한 것으로, 본 발명이 속하는 기술분야에서 통상의 지식을 가지는 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 변형이 가능할 것이다. 따라서, 본 명세서에 개시된 실시예들은 본 발명을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 사상과 범위가 한정되는 것은 아니다. 본 발명의 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
앞에서 설명하였듯이, 종래 웹 인스턴트 메신저 시스템은 웹 서버를 크게 변경시키는 단점, 기존 메신저 서버의 주요 기능을 활용하지 않으며, 별도의 웹 애플리케이션의 다운로드 및 설치해야 하는 등의 번거로움이 있는 반면, 본 발명에 따르면 기존 웹 서버를 크게 변경시키지 않고, 기존의 메신저 서버를 활용하면서 별도의 웹 애플리케이션의 다운로드 및 설치가 필요 없다는 특징을 갖는다.
또한, 사용자가 편리하게 제어할 수 있는 응용 계층에서 자동 폴링 간격과 측정 폴링 간격의 비교를 통해 통신 상태의 혼잡을 효율적으로 제어하여 웹 인스턴트 메신저 시스템의 성능을 크게 향상시킬 수 있는 특징을 갖는다.
도 1은 종래 웹 메신저 서비스 시스템을 간략하게 나타낸 블럭도,
도 2는 본 발명의 바람직한 실시예에 따른 웹 인스턴트 메신저 시스템을 간략하게 나타낸 블럭도,
도 3은 본 발명의 실시예에 따른 폴링 회답 패킷의 필드 및 사용례를 나타낸 도면,
도 4는 본 발명의 실시예에 따른 폴링 회답 패킷의 필드 및 사용례를 나타낸 도면,
도 5는 본 발명의 실시예에 따른 웹 인스턴트 메신저 시스템의 동작 과정을 나타낸 순서도,
도 6은 본 발명의 실시예에 따른 혼잡 제어 알고리즘의 동작 과정을 나타낸 순서도이다.
<도면의 주요 부분에 대한 부호의 설명>
110, 112, 210~213 : 클라이언트 단말기 120, 220 : 인터넷
130, 230 : WAP 게이트웨이 150, 240 : 웹 서버
160, 250 : 메신저 서버 241 : 웹페이지 관리 모듈
242 : 통신 게이트웨이 모듈 251 : 데이터 수신 모듈
252 : DB 관리 모듈 253 : 데이터 송신 모듈
254 : 부가 정보 검색 모듈 255 : 혼잡 제어기 모듈
260 : 데이터베이스 261 : 사용자 데이터베이스
262 : 메시지 데이터베이스

Claims (21)

  1. 유무선 통신망을 통해 하나 이상의 클라이언트 단말기로 웹 인스턴트 메신저 서비스를 제공하는 웹 인스턴트 메신저 시스템의 성능 개선을 위한 시스템에 있어서,
    웹 브라우저를 탑재 및 구동하여 HTTP(HyperText Transfer Protocol) 폴링 패킷(Polling Packet)을 주기적 또는 비주기적으로 생성하여 상기 유무선 통신망을 통해 전송하고, HTTP 폴링 회답 패킷을 수신하여 처리하는 방식으로 상기 웹 인스턴트 메신저 서비스를 이용하는 클라이언트 단말기;
    상기 HTTP 폴링 패킷를 수신하여 폴링 패킷으로 변환하여 전송하고, 폴링 회답 패킷을 수신하여 상기 HTTP 폴링 회답 패킷으로 변환하여 상기 클라이언트 단말기로 전송하는 웹 서버; 및
    상기 웹 서버에 연결되어 상기 폴링 패킷을 수신 및 분석하여 측정 폴링 간격(PIAT : Polling Inter-Arrival Time)을 연산하고, 상기 측정 폴링 간격과 상기 클라이언트 단말기에 설정된 자동 폴링 간격(API : Automatic Polling Interval)을 비교하되, 상기 측정 폴링 간격이 상기 자동 폴링 간격보다 작으면 상기 자동 폴링 간격을 감소시키고, 상기 측정 폴링 간격이 상기 자동 폴링 간격과 같으면 상기 자동 폴링 간격을 증가시켜 상기 폴링 회답 패킷을 생성 및 전송하고, 상기 클라이언트 단말기로 상기 웹 인스턴트 메신저 서비스를 제공하는 메신저 서버
    를 포함하는 것을 특징으로 하는 웹 인스턴트 메신저 시스템의 성능 개선 시스템.
  2. 제 1 항에 있어서,
    상기 자동 폴링 간격은 상기 클라이언트 단말기가 외부로부터 접속 요청과 관련된 데이터가 입력되지 않더라도 상기 메신저 서버로 자동적으로 접속을 시도하는 주기로서, 상기 클라이언트 단말기는 상기 자동 폴링 간격에 따라 상기 메신저 서버에 접속하여 사용자 상태 정보를 전송하고, 수신해야 하는 정보나 요청이 있는지를 확인하는 것을 특징으로 하는 웹 인스턴트 메신저 시스템의 성능 개선 시스템.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 웹 서버나 상기 메신저 서버는 상기 측정 폴링 간격과 상기 자동 폴링 간격을 비교하거나, 상기 사용자 상태 정보를 이용하거나, 상기 웹 서버 및/또는 메신저 서버의 부하(Load) 상태를 이용하여 상기 자동 폴링 간격을 갱신하는 혼잡 제어 알고리즘이 내장된 혼잡 제어기 모듈을 포함하는 것을 특징으로 하는 웹 인스턴트 메신저 시스템의 성능 개선 시스템.
  4. 제 1 항에 있어서,
    상기 웹 브라우저는 HTML(HypreText Markup Language) 처리 모듈 및 스크립트(Script) 모듈로 구현된 소프트웨어로서, 상기 클라이언트 단말기가 유선 통신용 컴퓨터인 경우 마이크로소프트사의 인터넷 익스플로러(Internet Explorer) 및 AOL(America Online)사의 넷스케이프 커뮤니케이터(Netscape Communicator) 중 하나 이상의 웹 브라우저인 것을 특징으로 하는 웹 인스턴트 메신저 시스템의 성능 개선 시스템.
  5. 제 1 항에 있어서,
    상기 클라이언트 단말기는 상기 웹 브라우저가 설치된 통신 장치로서, 유선 또는 무선 통신이 가능한 컴퓨터, 이동통신 단말기 및 피디에이(PDA) 중 하나 이상인 것을 특징으로 하는 웹 인스턴트 메신저 시스템의 성능 개선 시스템.
  6. 제 1 항 또는 제 5 항에 있어서,
    상기 클라이언트 단말기가 상기 이동통신 단말기나 피디에이 중 하나 이상인 경우, 상기 웹 브라우저는 WML(Wireless Markup Language), m(Microsoft)-HTML 및 c(Compact)-HTML이 각각 탑재된 WAP(Wireless Application Protocol) 브라우저, ME(Mobile Explorer) 브라우저 및 Compact NetFront 브라우저 중 하나 이상인 것을 특징으로 하는 웹 인스턴트 메신저 시스템의 성능 개선 시스템.
  7. 제 1 항에 있어서,
    상기 폴링 패킷은 상기 메신저 서버가 인식할 수 있는 데이터 형태이고, 상기 폴링 회답 패킷은 상기 클라이언트 단말기가 인식할 수 있는 데이터 형태이며, 상기 클라이언트 단말기나 상기 메신저 서버가 요청하거나 전송할 필드(Field)가 있는 경우 태그(Tag)를 활용하여 가변적인 형태나 크기의 패킷을 동적으로 생성한 것으로서, XML(eXtensible Markup Language)로 코딩된 것을 특징으로 하는 웹 인스턴트 메신저 시스템의 성능 개선 시스템.
  8. 제 1 항에 있어서,
    상기 웹 서버와 상기 메신저 서버는 하나의 동일한 물리적 서버로 구현되거나 다수의 상이한 물리적 서버로 분산 구현되어 데이터 통신을 수행하는 것을 특징으로 하는 웹 인스턴트 메신저 시스템의 성능 개선 시스템.
  9. 제 1 항에 있어서,
    상기 성능 개선 시스템은 상기 웹 서버를 두 개 이상으로 병렬로 구축하거나, 상기 웹 서버에 별도의 캐싱(Caching) 시스템을 구축하거나, 상기 웹 서버에 별도의 메모리 데이터베이스를 구축하여 상기 웹 서버의 폴링 처리 속도를 향상시키는 것을 특징으로 하는 웹 인스턴트 메신저 시스템의 성능 개선 시스템.
  10. 유무선 통신망을 통해 클라이언트 단말기로 웹 인스턴트 메신저 서비스를 제공하기 위해 상기 클라이언트 단말기로부터 HTTP 폴링 패킷을 수신 및 분석하여 응용 계층(Application Level)에서 통신 혼잡을 제어하여 웹 인스턴트 메신저 시스템의 성능을 향상시키는 메신저 서버로서,
    상기 클라이언트 단말기로부터 수신한 상기 HTTP 폴링 패킷(Polling Packet)을 분석하여 요청 작업을 수행하고,
    폴링 회답이 필요한지를 판단하되, 상기 폴링 회답이 필요한 경우 요청 작업 실행 결과를 취합하며,
    수신한 상기 HTTP 폴링 패킷을 이용하여 측정 폴링 간격(PIAT : Polling Inter-Arrival Time)을 연산하고, 상기 측정 폴링 간격과 상기 클라이언트 단말기에 기 설정된 자동 폴링 간격(API : Arrival Polling Interval)을 비교하여 자동 폴링 간격을 선택적으로 갱신하고,
    전송 대기 중인 전송 정보가 있는지를 판단하되, 상기 전송 정보가 있는 경우 상기 전송 정보를 취합하며,
    상기 요청 작업 실행 결과, 갱신된 자동 폴링 간격 및 상기 전송 정보 중 하나 이상을 취합하여 하나의 폴링 회답 패킷을 생성하고, 상기 클라이언트 단말기로 전송하는
    것을 특징으로 하는 메신저 서버.
  11. 제 10 항에 있어서, 상기 메신저 서버는
    상기 클라이언트 단말기로부터 전송되는 상기 HTTP 폴링 패킷 및 메시지를 수신하기 위한 데이터 수신 모듈;
    수신한 상기 메시지를 데이터베이스로 저장하기 위한 데이터베이스 관리 모듈;
    상기 폴링 회답 패킷 및 상기 메시지를 전송하기 위한 데이터 송신 모듈;
    사용자 상태 확인 및 알림 기능, 일대일 채팅 요청 및 승낙 기능, 파일 전송 요청 및 승낙 기능 중 하나 이상의 부가 정보의 요청 여부를 검색하는 부가 정보 검색 모듈; 및
    수신한 상기 HTTP 폴링 패킷을 분석하여 상기 측정 폴링 간격을 연산하고, 상기 측정 폴링 간격과 상기 기 설정된 자동 폴링 간격을 비교하여 자동 폴링 간격을 선택적으로 갱신하는 혼잡 제어 알고리즘을 내장하는 혼잡 제어기 모듈
    을 포함하는 것을 특징으로 하는 메신저 서버.
  12. 제 10 항에 있어서,
    상기 메신저 서버는 수신한 상기 폴링 패킷을 분석하기 위한 분석 모듈을 내장하되, 상기 분석 모듈은 XML(eXtensible Markup Language) 문서를 파싱(Parsing)하기 위한 파서(Parser)를 포함하는 것을 특징으로 하는 메신저 서버.
  13. 제 10 항에 있어서,
    상기 메신저 서버는 인스턴트 메시지, 사용자 등록/인증, 파일 전송/공유, 그룹 대화, 음성/화상 채팅, 이메일 송수신, 네트워크 게임, 지인의 온라인 접속 여부 확인 및 지인 목록 관리 중 하나 이상의 기능을 수행하는 것을 특징으로 하는 메신저 서버.
  14. 유무선 통신망을 통해 주기적 또는 비주기적으로 폴링(Polling)하는 클라이언트 단말기, 상기 폴링 및 폴링 회답을 처리하는 통신 게이트웨이로서 동작하는 웹 서버 및 상기 폴링을 이용하여 자동 폴링 간격을 선택적으로 갱신하여 상기 클라이언트 단말기로 전송하는 메신저 서버를 포함하여 구성되는 웹 인스턴트 메신저 시스템의 성능을 향상시키는 방법으로서,
    (a) 상기 메신저 서버는 상기 웹 서버를 통해 상기 클라이언트 단말기로부터 수신한 폴링 패킷(Polling Packet)을 분석하여 요청 작업을 수행하는 단계;
    (b) 폴링 회답이 필요한지를 판단하되, 상기 폴링 회답이 필요한 경우 요청 작업 실행 결과를 취합하는 단계;
    (c) 수신한 상기 폴링 패킷을 이용하여 측정 폴링 간격(PIAT : Polling Inter-Arrival Time)을 연산하고, 상기 측정 폴링 간격과 상기 클라이언트 단말기에 기 설정된 자동 폴링 간격(API : Arrival Polling Interval)을 비교하여 자동 폴링 간격을 선택적으로 갱신하는 단계;
    (d) 전송 대기 중인 전송 정보가 있는지를 판단하되, 상기 전송 정보가 있는 경우 상기 전송 정보를 취합하는 단계; 및
    (e) 취합된 요청 작업 실행 결과, 갱신된 자동 폴링 간격 및 취합된 전송 정보 중 하나 이상을 이용하여 하나의 폴링 회답 패킷을 생성하고, 상기 클라이언트 단말기로 전송하는 단계
    를 포함하는 것을 특징으로 하는 웹 인스턴트 메신저 시스템의 성능 개선 방법.
  15. 제 14 항에 있어서,
    상기 자동 폴링 간격은 상기 클라이언트 단말기가 외부로부터 접속 요청과 관련된 데이터가 입력되지 않더라도 상기 메신저 서버로 자동적으로 접속을 시도하는 주기이고, 상기 측정 폴링 간격은 상기 클라이언트 단말기의 순차적인 두 폴링 시각의 차이인 것을 특징으로 하는 웹 인스턴트 메신저 시스템의 성능 개선 방법.
  16. 제 14 항에 있어서,
    상기 메신저 서버는 상기 클라이언트 단말기와의 통신 상태, 상기 클라이언트 단말기의 사용자 상태, 인스턴트 메신저의 구동 여부, 상기 웹 서버의 부하 상태 및 자신의 부하 상태 중 하나 이상의 정보를 이용하여 상기 자동 폴링 간격을 설정하는 것을 특징으로 하는 웹 인스턴트 메신저 시스템의 성능 개선 방법.
  17. 제 14 항에 있어서,
    상기 메신저 서버는 상기 측정 폴링 간격이 상기 기 설정된 자동 폴링 간격보다 작은 경우 상기 기 설정된 자동 폴링 간격을 작아지게 하는 수식을 적용하는 것을 특징으로 하는 웹 인스턴트 메신저 시스템의 성능 개선 방법.
  18. 제 14 항에 있어서,
    상기 메신저 서버는 상기 측정 폴링 간격이 상기 기 설정된 자동 폴링 간격과 같은 경우 상기 기 설정된 자동 폴링 간격을 커지게 하는 수식을 적용하는 것을 특징으로 하는 웹 인스턴트 메신저 시스템의 성능 개선 방법.
  19. 제 17 항 또는 제 18 항에 있어서,
    상기 수식은 상기 웹 서버 또는 상기 메신저 서버의 관리자 경험이나 개별 웹 서버나 개별 메신저 서버의 부하(Load)에 관한 함수 또는 둘 이상의 서버를 포함하여 구성되는 시스템 전체 서버의 부하에 관한 함수 중 하나 이상인 것을 적용하여 가변적인 통신 환경에서 적응형 품질 제공을 수행하는 것을 특징으로 하는 웹 인스턴트 메신저 시스템의 성능 개선 방법.
  20. 제 14 항에 있어서,
    상기 폴링 패킷 및 상기 폴링 회답 패킷에는 식별을 위한 동일한 ID 번호가 부여되는 것을 특징으로 하는 웹 인스턴트 메신저 시스템의 성능 개선 방법.
  21. 제 14 항에 있어서, 상기 단계 (d)에서
    상기 전송 정보는 상기 메신저 서버가 수행한 최종 폴링 회답 이후 상기 클라이언트 단말기로 전송하는 정보로서, 특정 대화 상대로부터의 채팅 요청, 채팅 요청 답변, 지인 또는 대화 상대의 상태 변경 및 파일 전송 승인 정보 중 하나 이상인 것을 특징으로 하는 웹 인스턴트 메신저 시스템의 성능 개선 방법.
KR1020040009132A 2004-02-11 2004-02-11 웹 인스턴트 메신저 시스템의 성능 개선 방법 및 시스템 KR20050080947A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020040009132A KR20050080947A (ko) 2004-02-11 2004-02-11 웹 인스턴트 메신저 시스템의 성능 개선 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040009132A KR20050080947A (ko) 2004-02-11 2004-02-11 웹 인스턴트 메신저 시스템의 성능 개선 방법 및 시스템

Publications (1)

Publication Number Publication Date
KR20050080947A true KR20050080947A (ko) 2005-08-18

Family

ID=37267654

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040009132A KR20050080947A (ko) 2004-02-11 2004-02-11 웹 인스턴트 메신저 시스템의 성능 개선 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR20050080947A (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101510896B (zh) * 2009-03-23 2012-05-23 北京佳讯飞鸿电气股份有限公司 一种基于Web的即时消息的实现方法
KR20190024264A (ko) * 2017-08-31 2019-03-08 아토리서치(주) 폴링 제어 장치, 방법 및 컴퓨터 프로그램
CN112130936A (zh) * 2020-09-23 2020-12-25 平安科技(深圳)有限公司 基于轮询的数据调用方法、装置、设备及存储介质
CN115348317A (zh) * 2022-08-12 2022-11-15 北明成功软件(山东)有限公司 一种实现web系统即时通信的方法、装置和系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010081200A (ko) * 2000-02-11 2001-08-29 오양근 인트라넷과 인터넷을 이용한 실시간 문자 및 파일전송방법
KR20010096157A (ko) * 2000-04-17 2001-11-07 권문상 인터넷 인스턴트 메신저 서버를 위한 메시지 중계 시스템
KR100385146B1 (ko) * 2000-06-26 2003-05-22 주식회사 프리챌 웹 메신저 서비스 시스템 및 서비스 방법
KR100392067B1 (ko) * 2000-11-14 2003-07-23 (주)캐스트와이즈 분산서버간의 릴레이를 통한 인스턴트메시지 전달방법 및시스템

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010081200A (ko) * 2000-02-11 2001-08-29 오양근 인트라넷과 인터넷을 이용한 실시간 문자 및 파일전송방법
KR20010096157A (ko) * 2000-04-17 2001-11-07 권문상 인터넷 인스턴트 메신저 서버를 위한 메시지 중계 시스템
KR100385146B1 (ko) * 2000-06-26 2003-05-22 주식회사 프리챌 웹 메신저 서비스 시스템 및 서비스 방법
KR100392067B1 (ko) * 2000-11-14 2003-07-23 (주)캐스트와이즈 분산서버간의 릴레이를 통한 인스턴트메시지 전달방법 및시스템

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101510896B (zh) * 2009-03-23 2012-05-23 北京佳讯飞鸿电气股份有限公司 一种基于Web的即时消息的实现方法
KR20190024264A (ko) * 2017-08-31 2019-03-08 아토리서치(주) 폴링 제어 장치, 방법 및 컴퓨터 프로그램
CN112130936A (zh) * 2020-09-23 2020-12-25 平安科技(深圳)有限公司 基于轮询的数据调用方法、装置、设备及存储介质
CN112130936B (zh) * 2020-09-23 2023-12-19 平安科技(深圳)有限公司 基于轮询的数据调用方法、装置、设备及存储介质
CN115348317A (zh) * 2022-08-12 2022-11-15 北明成功软件(山东)有限公司 一种实现web系统即时通信的方法、装置和系统
CN115348317B (zh) * 2022-08-12 2024-03-29 北明成功软件(山东)有限公司 一种实现web系统即时通信的方法、装置和系统

Similar Documents

Publication Publication Date Title
EP2899946B1 (en) Integrating communications
RU2498520C2 (ru) Способ обеспечения одноранговой связи на веб-странице
KR101113738B1 (ko) 이동통신단말기의 인터넷 접속방법
US20140372516A1 (en) System and method for providing a scalable translation between polling-based clients and connection-based message queues
JP5535067B2 (ja) 3aベースの多様なアプリケーションの状態を提供するユビキタスプレゼンスサービス方法およびシステム
EP2485443A1 (en) System and method for managing multiple queues of non-persistent messages in a networked environment
US20030167335A1 (en) System and method for network-based communication
JP2006501578A (ja) インスタントメッセージングプロキシの機構及び方法
WO2004049124A2 (en) Apparatus and method for providing smart network appliances
KR20120065391A (ko) 메시지 크기 한계들을 가하는 하나 이상의 콘텐츠 공급자 웹 사이트들에 대한 메시지를 발생하는 방법
WO2001069406A1 (en) Mobile originated internet relay chat
EP2039123A2 (en) Remotely updating a user status on a presence server
KR101580023B1 (ko) 컨텐츠 프로바이더 웹사이트와 모바일 디바이스를 중개하는 방법 및 시스템
US20100094984A1 (en) Method for optmizing a presence enabled managed service
US9210142B2 (en) Method for providing internet services to a telephone user
US20090240829A1 (en) Translating between implicit and explicit publish-subscribe protocols
KR20130112038A (ko) 모바일 인터넷 서비스의 구현 방법, 게이트웨이, 프록시 및 시스템
KR20050080947A (ko) 웹 인스턴트 메신저 시스템의 성능 개선 방법 및 시스템
JP4800332B2 (ja) サービス提供システム、サービス提供方法およびサービス提供プログラム
KR20040012311A (ko) 무선 통신망에서 프리젠스 정보 기반 개인간 컨텐츠 공유서비스 시스템 및 방법
KR100385146B1 (ko) 웹 메신저 서비스 시스템 및 서비스 방법
EP1305725B1 (en) Instant messaging account system
KR101303018B1 (ko) 이동통신단말기를 이용한 인스턴트 메신저 서비스 시스템및 그 제어방법
US8549089B2 (en) Method for sending messages to a mobile telephone
KR20070044866A (ko) 착신전환 기능을 가지는 인스턴트 메시지 서비스 장치 및그 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application