KR20120129564A - 클라이언트 기반의 채팅 서비스를 제공하는 방법, 클라이언트 장치, 채팅 서버, 시스템 및 기록매체 - Google Patents
클라이언트 기반의 채팅 서비스를 제공하는 방법, 클라이언트 장치, 채팅 서버, 시스템 및 기록매체 Download PDFInfo
- Publication number
- KR20120129564A KR20120129564A KR1020110047903A KR20110047903A KR20120129564A KR 20120129564 A KR20120129564 A KR 20120129564A KR 1020110047903 A KR1020110047903 A KR 1020110047903A KR 20110047903 A KR20110047903 A KR 20110047903A KR 20120129564 A KR20120129564 A KR 20120129564A
- Authority
- KR
- South Korea
- Prior art keywords
- message
- chat
- package data
- client
- client device
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/12—Messaging; Mailboxes; Announcements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W88/00—Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
- H04W88/18—Service support devices; Network management devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/58—Message adaptation for wireless communication
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
본 발명은 채팅 서비스 기술에 관한 것으로서, 더욱 상세하게는, 모바일 환경에 적합한 클라이언트 기반의 채팅 서비스를 제공하는 방법, 클라이언트 장치, 채팅 서버 및 기록매체에 관한 것이다.
Description
본 발명은 채팅 서비스 기술에 관한 것으로서, 특히, 모바일 환경에 적합한 채팅 서비스 기술에 관한 것이다.
종래의 채팅 서비스에서는, 채팅 서버가 사용자 컴퓨터 접속 관리, 이용자 관리, 채팅방 관리, 메시지 관리, 각종 제어 기능 등과 같은 많은 기능들을 수행한다. 이러한 의미에서 종래의 채팅 서비스는 서버 기반의 채팅 서비스이다.
또한 종래의 채팅 서비스는 모바일 환경에서 비해 더 좋은 네트워크 상황에서 그리고 일반적인 웹 환경에서 이루어진다.
그리고, 종래의 서버 기반의 채팅 서비스에서는 복잡하고 많은 기능들이 사용자에게 제공되기 때문에, 서버가 많은 기능들을 수행해야 하는 것은 물론, 서버에 접속한 이용자의 컴퓨터에서도 그만큼 많은 기능들을 수행해야만 한다.
따라서, 종래의 서버 기반의 채팅 서비스가 이루어지는 웹 환경 및 네트워크 환경에 비해 모든 면에서 상대적으로 열악한 모바일 환경에서, 종래의 채팅 서비스를 그대로 적용하게 되면, 채팅 서비스 품질과 사용자 편리성 등이 크게 저하되는 문제점이 있다.
이러한 배경에서, 본 발명의 목적은, 모바일 환경에 적합한 클라이언트 기반의 채팅 서비스를 제공하는 데 있다.
전술한 목적을 달성하기 위하여, 일 측면에서, 본 발명은, 제1클라이언트 장치에 대응되는 식별정보인 송신자 정보, 하나 이상의 제2클라이언트 장치에 각각 대응되는 식별정보를 포함하는 수신자 리스트 및 메시지 타입 정보를 포함하는 메시지 헤더와 상기 제1클라이언트 장치에서 입력된 메시지가 패키징된 패키지 데이터를 상기 제1클라이언트 장치로부터 수신하는 메시지 수신부; 상기 패키지 데이터를 저장하는 메시지 저장부; 및 상기 수신자 리스트를 참조하여 상기 저장된 패키지 데이터를 상기 하나 이상의 제2클라이언트 장치로 송신하는 메시지 송신부를 포함하는 것을 특징으로 하는 클라이언트 기반의 채팅 서비스를 제공하는 채팅 서버를 제공한다.
다른 측면에서, 본 발명은, 채팅 서버가 클라이언트 기반의 채팅 서비스를 제공하는 방법에 있어서, 제1클라이언트 장치에 대응되는 식별정보인 송신자 정보, 하나 이상의 제2클라이언트 장치에 각각 대응되는 식별정보를 포함하는 수신자 리스트 및 메시지 타입 정보를 포함하는 메시지 헤더와 상기 제1클라이언트 장치에서 입력된 메시지가 패키징된 패키지 데이터를 상기 제1클라이언트 장치로부터 수신하는 단계; 상기 패키지 데이터를 저장하는 단계; 및 상기 수신자 리스트를 참조하여 상기 저장된 패키지 데이터를 상기 하나 이상의 클라이언트 장치로 송신하는 단계를 포함하는 것을 특징으로 하는 클라이언트 기반의 채팅 서비스를 제공하는 방법을 제공한다.
또 다른 측면에서, 본 발명은, 제1메시지가 입력되면, 제1송신자 정보, 제1수신자 리스트 및 제1메시지 타입 정보를 포함하는 제1메시지 헤더와 상기 입력된 제1메시지를 패키징하여 제1패키지 데이터를 생성하고, 상기 생성된 제1패키지 데이터를 채팅 서버로 송신하는 제1패키지 데이터 송신부; 제2송신자 정보, 제2수신자 리스트 및 제2메시지 타입 정보를 포함하는 제2메시지 헤더와 제2메시지가 패키징된 제2패키지 데이터를 상기 채팅 서버로부터 수신하는 제2패키지 데이터 수신부; 및 상기 입력된 제1 메시지 및 상기 제2메시지를 채팅 화면에 출력하는 채팅 화면 제어부를 포함하는 것을 특징으로 하는 클라이언트 기반의 채팅 서비스를 제공하는 클라이언트 장치를 제공한다.
또 다른 측면에서, 본 발명은, 클라이언트 장치가 클라이언트 기반의 채팅 서비스를 제공하는 방법에 있어서, 입력된 제1메시지를 채팅 화면에 출력하는 단계; 상기 제1메시지가 입력되면, 제1송신자 정보, 제1수신자 리스트 및 제1메시지 타입 정보를 포함하는 제1메시지 헤더와 상기 입력된 제1메시지를 패키징하여 제1패키지 데이터를 생성하는 단계; 상기 생성된 제1패키지 데이터를 채팅 서버로 송신하는 단계; 제2송신자 정보, 제2수신자 리스트 및 제2메시지 타입 정보를 포함하는 제2메시지 헤더와 제2메시지가 패키징된 제2패키지 데이터를 상기 채팅 서버로부터 수신하는 단계; 및 상기 제2메시지를 상기 채팅 화면에 출력하는 단계를 포함하는 것을 특징으로 하는 클라이언트 기반의 채팅 서비스를 제공하는 방법을 제공한다.
또 다른 측면에서, 본 발명은, 메시지가 입력되면 송신자 정보, 수신자 리스트 및 메시지 타입 정보를 포함하는 메시지 헤더와 상기 입력된 메시지를 패키징하여 패키지 데이터를 생성하여 송신하고, 상기 입력된 메시지를 채팅 화면에 출력하는 제1클라이언트; 상기 패키지 데이터를 수신하여 저장해두고, 상기 수신자 리스트를 참조하여 상기 패키지 데이터를 전달하는 채팅 서버; 및 상기 패키지 데이터를 전달받고, 상기 패키지 데이터에 패키징된 메시지를 채팅 화면에 출력하는 제2클라이언트를 포함하되, 상기 수신자 리스트는 상기 제2클라이언트에 대응되는 식별정보를 포함하는 것을 특징으로 하는 클라이언트 기반의 채팅 서비스를 제공하는 시스템을 제공한다.
또 다른 측면에서, 본 발명은, 클라이언트 기반의 채팅 서비스를 제공하는 방법을 실행시키기 위한 프로그램을 기록한 기록매체에 있어서, 입력된 제1메시지를 채팅 화면에 출력하는 기능과, 상기 제1메시지가 입력되면, 제1송신자 정보, 제1수신자 리스트 및 제1메시지 타입 정보를 포함하는 제1메시지 헤더와 상기 입력된 제1메시지를 패키징하여 제1패키지 데이터를 생성하는 기능과, 상기 생성된 제1패키지 데이터를 채팅 서버로 송신하는 기능과, 제2송신자 정보, 제2수신자 리스트 및 제2메시지 타입 정보를 포함하는 제2메시지 헤더와 제2메시지가 패키징된 제2패키지 데이터를 상기 채팅 서버로부터 수신하는 기능과, 상기 제2메시지를 상기 채팅 화면에 출력하는 기능을 구현하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
이상에서 설명한 바와 같이 본 발명에 의하면, 모바일 환경에 적합한 클라이언트 기반의 채팅 서비스를 제공하는 효과가 있다.
도 1은 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하는 시스템을 개략적으로 나타낸 도면이다.
도 2는 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하는 채팅 서버에 대한 블록도이다.
도 3은 본 발명의 실시예에 따른 채팅 서버가 클라이언트 기반의 채팅 서비스를 제공하는 방법에 대한 흐름도이다.
도 4는 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하는 클라이언트 장치에 대한 블록도이다.
도 5는 본 발명의 실시예에 따른 클라이언트 장치가 클라이언트 기반의 채팅 서비스를 제공하는 방법에 대한 흐름도이다.
도 6은 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하기 위한 프로토콜에 따른 메시지 송신 절차 및 메시지 수신 절차를 나타낸 도면이다.
도 7은 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하기 위한 프로토콜에 따른 데이터 포맷을 나타낸 도면이다.
도 8은 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하기 위한 프로토콜에 따른 메시지 타입 정보를 예시적으로 정의한 도면이다.
도 9 내지 도 15는 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 예시적으로 설명하기 위한 도면이다.
도 2는 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하는 채팅 서버에 대한 블록도이다.
도 3은 본 발명의 실시예에 따른 채팅 서버가 클라이언트 기반의 채팅 서비스를 제공하는 방법에 대한 흐름도이다.
도 4는 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하는 클라이언트 장치에 대한 블록도이다.
도 5는 본 발명의 실시예에 따른 클라이언트 장치가 클라이언트 기반의 채팅 서비스를 제공하는 방법에 대한 흐름도이다.
도 6은 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하기 위한 프로토콜에 따른 메시지 송신 절차 및 메시지 수신 절차를 나타낸 도면이다.
도 7은 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하기 위한 프로토콜에 따른 데이터 포맷을 나타낸 도면이다.
도 8은 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하기 위한 프로토콜에 따른 메시지 타입 정보를 예시적으로 정의한 도면이다.
도 9 내지 도 15는 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 예시적으로 설명하기 위한 도면이다.
이하, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
또한, 본 발명의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
도 1은 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하는 시스템을 개략적으로 나타낸 도면이다.
도 1을 참조하면, 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하는 시스템은, 채팅 서비스를 이용하는 사용자의 클라이언트 장치(100)와, 클라이언트 장치(100)에서 사용자에 의해 입력된 메시지를 클라이언트 장치(100) 간에 전달해주는 채팅 서버(110) 등을 포함한다.
본 발명에서 개시하는 채팅 서비스는 웹 환경에 비해 개인 아이덴티티(Identity)가 상대적으로 명확한 모바일 환경에 더욱 적합한 "클라이언트 기반의 채팅 서비스(Client-based Chatting Service)"이다.
여기서, "모바일 환경"이란, 통신사에 가입한 사용자가 이동 통신 서비스 또는 무선 통신 서비스 등을 이용하는 환경을 의미하는 것으로서, 이러한 모바일 환경에서는 전화번호, 전화번호와 대응되는 사용자 정보 등과 같이 변하지 않는 고유한 개인 아이덴티티(Identity)가 명확하다.
종래의 채팅 서비스에서는, 채팅 서버가 사용자 컴퓨터 접속 관리, 이용자 관리, 채팅방 관리, 메시지 관리, 각종 제어 기능 등과 같은 많은 기능들을 수행한다. 이러한 의미에서 종래의 채팅 서비스는 서버 기반의 채팅 서비스이다.
또한 종래의 채팅 서비스는 모바일 환경에서 비해 더 좋은 네트워크 상황에서 이루어지고 일반적인 웹 환경에서 이루어진다.
그리고, 종래의 서버 기반의 채팅 서비스에서는 복잡하고 많은 기능들이 사용자에게 제공되기 때문에, 서버가 많은 기능들을 수행해야 하는 것은 물론, 서버에 접속한 이용자의 컴퓨터에서도 그만큼 많은 기능들을 수행해야만 한다.
따라서, 종래의 서버 기반의 채팅 서비스가 이루어지는 웹 환경 및 네트워크 환경에 비해 모든 면에서 상대적으로 열악한 모바일 환경에서, 종래의 채팅 서비스를 그대로 적용하게 되면, 채팅 서비스 품질과 사용자 편리성 등이 크게 저하되는 문제점이 있다.
따라서, 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스에서는, 전술한 모바일 환경에 적합하도록, 웹 환경에서 제공되던 무거운 채팅 서비스에서의 기능적 요소들을 심플하게 하고, 채팅 서버(110)는 심플화된 기능적 요소들 중에서 클라이언트 장치(100) 간의 메시지 전달 기능만을 수행하고, 클라이언트 장치(100)가 나머지 심플화된 기능적 요소들을 수행한다. 이에 대해서는, 도 2 내지 도 3를 참조하여 더욱 상세하게 설명한다.
본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하는 시스템에 포함된 클라이언트 장치(100)와 채팅 서버(110)는 네트워크(120)를 통해 서로 연결되어 채팅 서비스를 제공하기 위하여 통신한다.
여기서, 네트워크(120)는 유무선 기반의 네트워크로서, 채팅 서버(110)가 연결되는 액세스 망과, 클라이언트 장치(100)가 연결되는 액세스 망(예: 이동통신망, 무선 랜(WiFi) 등)과, 이러한 액세스 망들을 연결해주는 여러 형태일 수 있는 코어 망(Core Network) 등을 포함할 수 있다.
전술한 클라이언트 장치(100)는 스마트폰, 태블릿 PC, 이동통신 단말기 등일 수 있으며, 이외에도, 통신기능을 갖는 어떠한 휴대용 단말기일 수 있다.
또한 클라이언트 장치(100)는 애플리케이션 스토어 서버를 통해 설치된 애플리케이션을 실행시켜 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공한다. 즉, 애플리케이션 스토어 서버를 통해 클라이언트 장치(100)에 설치된 애플리케이션은, 클라이언트 장치(100)의 하드웨어 구성(예: 통신모듈, 메모리, 프로세서, 디스플레이 등)을 이용하여 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공한다.
전술한 바와 같이, 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하기 위하여 채팅 서버(110)는, 클라이언트 장치(100) 간의 메시지 전달 기능을 수행하는데, 이러한 채팅 서버(110)에 대하여 도 2 내지 도 3을 참조하여 아래에서 더욱 상세하게 설명한다.
도 2는 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하는 채팅 서버(110)에 대한 블록도이다.
단, 아래에서는, 입력된 메시지를 다른 클라이언트 장치(100)로 전달하기 위하여 채팅 서버(110)로 메시지를 송신하는 클라이언트 장치(100)를 "제1클라이언트 장치(100a)"라고도 하고, 채팅 서버(100)에 저장된 메시지를 수신하는 클라이언트 장치(110)를 "제2클라이언트 장치(100b)"라고도 한다. 하나의 클라이언트 장치(100)는 메시지가 입력되어 채팅 서버(100)로 송신하는 때에는 제1클라이언트 장치(100a)로 작동하고 채팅 서버(100)로부터 메시지를 수신하는 때에는 제2클라이언트 장치(100b)로 작동한다. 즉, 제1클라이언트 장치(100a)와는 제2클라이언트 장치(100b)는 서로 다른 클라이언트 장치(100)일 수도 있고, 어떠한 한 시점에서의 역할을 구분하기 위하여 동일한 클라이언트 장치(100)를 다르게 나타낸 것일 수도 있다.
도 2를 참조하면, 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하는 채팅 서버(110)는, 메시지 전달을 위해, 제1클라이언트 장치(100a)에서 입력된 메시지를 제1클라이언트 장치(100a)로부터 수신하는 메시지 수신부(210)와, 제1클라이언트 장치(100a)로부터 수신한 메시지를 저장하는 메시지 저장부(220)와, 저장된 메시지를 제2클라이언트 장치(100b)로 송신하는 메시지 송신부(230) 등을 포함한다.
본 발명에서는, 제1클라이언트 장치(100a)로부터 수신된 메시지(사용자에 의해 입력된 메시지)가 해당 제2클라이언트 장치(100b)로 정확히 전달되기 위해서, 사용자에 의해 입력된 메시지는 메시지 헤더가 붙어서 패키징 되어 패키지 데이터의 형태로 전달된다. 여기서, 메시지 헤더에는, 메시지를 보내는 송신자 정보, 메시지를 받는 수신자 정보를 포함하는 수신자 리스트, 메시지 타입 정보 등을 포함한다.
단, 아래에서는, 제1클라이언트 장치(100a)에서 채팅 서버(110)로 송신되는 패키지 데이터, 메시지 및 메시지 헤더를 "제1패키지 데이터", "제1메시지" 및 "제1메시지 헤더"라고도 한다. 채팅 서버(110)에서 제2클라이언트 장치(100b)로 송신되는 패키지 데이터, 메시지 및 메시지 헤더를 "제2패키지 데이터", "제2메시지" 및 "제2메시지 헤더"라고도 한다.
메시지 M이 클라이언트 장치 A에서 채팅 서버(110)를 통해 클라이언트 장치 B로 전달되는 경우, 채팅 서버(110)가 클라이언트 장치 A로부터 수신하는 메시지 M은 제1메시지이고, 채팅 서버(110)가 클라이언트 장치 B로 송신하는 메시지 M은 제2메시지이다. 또한, 클라이언트 장치 A가 채팅 서버(110)로 송신하는 메시지 M은 제1메시지이고, 클라이언트 장치 B가 채팅 서버(110)로부터 수신하는 메시지 M은 제2메시지이다. 즉, "제1메시지와 제2메시지"는 채팅 서버(110)가 수신하는 메시지와 송신하는 메시지를 구분하거나, 클라이언트 장치(100)가 송신하는 메시지와 수신하는 메시지를 구분하기 위하여 구분하여 사용한 것일 뿐, 실제로는 동일한 메시지일 수도 있다.
제1패키지 데이터가 제1클라이언트 장치(100a)에서 채팅 서버(110)를 통해 제2클라이언트 장치(100b)로 전달된다.
메시지가 패키징 되어 전달되는 경우, 메시지 수신부(210)는, 제1클라이언트 장치(100a)에 대응되는 식별정보인 제1송신자 정보, 하나 이상의 제2클라이언트 장치(100b)에 각각 대응되는 식별정보를 포함하는 제1수신자 리스트 및 제1메시지 타입 정보를 포함하는 "제1메시지 헤더"와 제1클라이언트 장치(100a)에서 입력된 "제1메시지"가 패키징된 제1패키지 데이터를 제1클라이언트 장치(100a)로부터 수신한다. 메시지 저장부(220)는, 제1클라이언트 장치(100a)로부터 수신한 제1패키지 데이터를 메시지 저장 공간에 저장한다. 그리고, 메시지 송신부(230)는 제1패키지 데이터에서의 제1수신자 리스트를 참조하여 메시지 저장 공간에 저장된 제1패키지 데이터를 하나 이상의 제2클라이언트 장치(100b)로 송신한다. 여기서, 클라이언트 정치(100)에 대응되는 식별정보는, 일 예로, 전화번호, 전화번호와 대응될 수 있는 사용자 정보 등의 개인 고유의 정보일 수 있다.
전술한 메시지 송신부(230)는 저장된 제1패키지 데이터를 풀(Pull) 방식 또는 푸시(Push) 방식으로 하나 이상의 제2클라이언트 장치(100b)로 송신할 수 있다.
만약, 풀(Pull) 방식으로 송신하는 경우, 메시지 송신부(230)는 제2클라이언트 장치(100b)로부터 메시지 요청 데이터가 수신되면, 제2클라이언트 장치(100b)에 대응되는 식별정보가 저장된 제1패키지 데이터에서의 제1수신자 리스트에 포함되어 있는지를 확인하여, 포함되어 있는 것으로 확인되면, 제2클라이언트 장치(100b)로 저장된 제1패키지 데이터를 송신한다. 이 경우, 제2클라이언트 장치(100b)의 사용자의 입력에 따라 메시지 요청 데이터를 송신하거나, 제2클라이언트 장치(100b)에 설치된 애플리케이션이 실행되어 있다가 애플리케이션이 주기적 또는 이벤트 발생시 자동으로 메시지 요청 데이터를 채팅 서버(110)로 송신해야 한다.
만약, 푸시(Push) 방식으로 송신하는 경우, 메시지 송신부(230)는 제1패키지 데이터가 저장되면 저장된 제1패키지 데이터에서의 제1수신자 리스트를 확인하여 이러한 확인을 통해 알게 된 해당 제2클라이언트 장치(100b)로 제1패키지 데이터를 송신할 수 있다. 이러한 경우, 제2클라이언트 장치(100b)는 제1패키지 데이터를 수신할 수 있는 상태로 되어 있거나, 제2클라이언트 장치(100b)에 설치된 애플리케이션이 실행되어 있기만 하면 된다.
전술한 설명에 기초하여, 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하는 시스템을 다시 설명하면, 시스템은, 메시지가 입력되면 송신자 정보, 수신자 리스트 및 메시지 타입 정보를 포함하는 메시지 헤더와 입력된 메시지를 패키징하여 패키지 데이터를 생성하여 송신하고, 입력된 메시지를 채팅 화면에 출력하는 제1클라이언트 장치(100a)와, 패키지 데이터를 제1클라이언트 장치(100a)로부터 수신하여 저장해두고, 패키지 데이터에 패키징된 메시지 헤더에 포함된 수신자 리스트를 참조하여 패키지 데이터를 전달하는 채팅 서버(110)와, 패키지 데이터를 채팅 서버(110)로부터 전달받고, 전달받은 패키지 데이터에 패키징된 메시지를 채팅 화면에 출력하는 제2클라이언트 장치(100b)를 포함한다.
패키지 데이터에 패키징된 메시지 헤더에 포함된 수신자 리스트는 제2클라이언트 장치(100b)에 대응되는 식별정보를 포함한다.
제2클라이언트 장치(100b)는, 패키지 데이터에 패키징된 메시지 헤더에 포함된 송신자 정보와 수신자 리스트를 토대로 채팅 참여자 리스트를 파악하여 새로운 참여자를 추가하거나 기존 참여자를 삭제하는 등의 관리 기능을 수행할 수 있다.
도 3은 본 발명의 실시예에 따른 채팅 서버(110)가 클라이언트 기반의 채팅 서비스를 제공하는 방법에 대한 흐름도이다.
도 3을 참조하면, 본 발명의 실시예에 따른 채팅 서버(110)가 클라이언트 기반의 채팅 서비스를 제공하는 방법은, 제1클라이언트 장치(100a)에 대응되는 식별정보인 제1송신자 정보, 하나 이상의 제2클라이언트 장치(100b)에 각각 대응되는 식별정보를 포함하는 제1수신자 리스트 및 제1메시지 타입 정보를 포함하는 제1메시지 헤더와 제1클라이언트 장치(100a)에서 입력된 제1메시지가 패키징된 제1패키지 데이터를 제1클라이언트 장치(100a)로부터 수신하는 단계(S300)와, 수신된 제1패키지 데이터를 저장하는 단계(S302)와, 저장된 제1패키지 데이터에서의 제1수신자 리스트를 참조하여 저장된 제1패키지 데이터를 하나 이상의 제2클라이언트 장치(100b)로 송신하는 단계(S304) 등을 포함한다.
이하에서는, 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하는 클라이언트 장치(100)에 대하여 도 4 및 도 5를 참조하여 더욱 상세하게 설명한다.
도 4는 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하는 클라이언트 장치(100)에 대한 블록도이다.
도 4를 참조하면, 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하는 클라이언트 장치(100)는, 사용자에 의해 제1메시지가 입력되면, 제1송신자 정보, 제1수신자 리스트 및 제1메시지 타입 정보를 포함하는 제1메시지 헤더와 사용자에 의해 입력된 제1메시지를 패키징하여 제1패키지 데이터를 생성하고, 이렇게 생성된 제1패키지 데이터를 채팅 서버(110)로 송신하는 제1패키지 데이터 송신부(410)와, 제2송신자 정보, 제2수신자 리스트 및 제2메시지 타입 정보를 포함하는 제2메시지 헤더와 제2메시지가 패키징된 제2패키지 데이터를 채팅 서버(110)로부터 수신하는 제2패키지 데이터 수신부(420)와, 사용자에 의해 입력된 제1 메시지 및 제2패키지 데이터에 패키징된 제2메시지를 채팅 화면에 출력하는 채팅 화면 제어부(430) 등을 포함한다.
제1패키지 데이터 송신부(410)에 의해 제1패키지 데이터를 송신하는 클라이언트 장치(100)는 제1클라이언트 장치(100a)로서 동작하고, 제2패키지 데이터 수신부(420)에 의해 제2패키지 데이터를 수신하는 클라이언트 장치(100)는 제2클라이언트 장치(100b)로서 동작한다.
전술한 제1패키지 데이터 송신부(410)는, 제1메시지를 패키징하여 송신하기 위하여, 사용자 입력 또는 미리 관리되고 있던 채팅 참여자 리스트를 토대로 하나 이상의 다른 클라이언트 장치(클라이언트 장치(100)의 사용자가 채팅하고자 하는 사용자의 클라이언트 장치이거나 클라이언트 장치(100)의 사용자 채팅하고 있는 사용자의 클라이언트 장치임)에 각각 대응되는 식별정보를 포함하는 제1수신자 리스트를 설정할 수 있다.
여기서, 사용자 입력에 따라 제1수신자 리스트를 설정하는 방식은 클라이언트 장치(100)의 사용자가 채팅하고자 하는 사용자를 초대할 때 제1수신자 리스트를 설정하는 방식일 수 있다. 또한, 미리 관리되고 있던 채팅 참여자 리스트를 토대로 제1수신자 리스트를 설정하는 방식은 이미 채팅이 이루어지고 있는 동안에 제1수신자 리스트를 설정하는 방식일 수 있다.
한편, 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하는 클라이언트 장치(100)는, 채팅하는 있는 모든 사용자(참여자)의 리스트를 관리하는 기능을 수행할 수 있다. 이를 위해, 도 4에 도시된 바와 같이, 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하는 클라이언트 장치(100)는, 하나 이상의 다른 클라이언트 장치와 클라이언트 장치(100)에 각각 대응되는 식별정보를 포함하는 채팅 참여자 리스트를 관리하는 채팅 참여자 리스트 관리부(440)를 더 포함할 수 있다.
전술한 채팅 참여자 리스트 관리부(440)는, 제2메시지 타입 정보가 "초대 메시지 타입 정보"인 제2패키지 데이터를 채팅 서버(110)로부터 수신한 이후에, 제2패키지 데이터에 패키징된 제2메시지 헤더에 포함된 제2수신자 리스트를 토대로 새로운 클라이언트 장치에 대응되는 식별정보를 기존에 관리되고 있던 채팅 참여자 리스트에 새로운 클라이언트 장치에 대응되는 식별정보를 추가할 수 있다.
다시 말해, 클라이언트 장치(100)의 사용자와 채팅하고 있는 다른 사용자가 누군가를 초대하기 위하여, 초대할 사용자의 클라이언트 장치에 대응되는 식별정보를 수신자 리스트(클라이언트 장치(100)의 입장에서는 제2수신자 리스트)에 포함시키고 메시지 타입 정보를 초대 메시지 타입 정보로 설정하여 패키지 데이터(클라이언트 장치(100)의 입장에서는 제2패키지 데이터)를 채팅 서버(110)를 통해 전달하면, 패키지 데이터를 수신하는 모든 클라이언트 장치는 기존에 관리하고 있던 참여자 리스트에는 포함되지 않은 "초대할 사용자의 클라이언트 장치에 대응되는 식별정보"를 추가하는 것이다.
전술한 채팅 참여자 리스트 관리부(440)는, 제2메시지 타입 정보가 "나가기 메시지 타입 정보"인 제2패키지 데이터를 채팅 서버(110)로부터 수신한 이후에, 제2패키지 데이터에 패키징된 제2메시지 헤더에 포함된 제2송신자 정보인 특정 다른 클라이언트 장치에 대응되는 식별정보를 기존에 관리하고 있던 채팅 참여자 리스트에서 삭제할 수 있다.
다시 말해, 클라이언트 장치(100)의 사용자와 채팅하고 있는 다른 사용자(채팅을 중지한 사용자)가 채팅을 그만 하기 위하여 나가기 버튼을 누르는 등을 조작한 경우에, 채팅을 중지한 사용자의 클라이언트 장치에서는, 송신자 정보(클라이언트 장치(100)의 입장에서는 제2송신자 정보)를 자신에 대응되는 식별정보로 설정하고 메시지 타입 정보(클라이언트 장치(100)의 입장에서는 제2메시지 타입 정보)를 나가기 메시지 타입 정보로 설정하여 패키지 데이터(클라이언트 장치(100)의 입장에서는 제2패키지 데이터)를 채팅 서버(110)로 송신하면, 이 패키지 데이터를 수신한 모든 클라이언트 장치는 채팅을 중지한 사용자의 클라이언트 장치에 대응되는 식별정보를 기존에 관리하고 있던 참여자 리스트에서 삭제한다.
위에서 언급한 제1메시지 타입 정보 및 제2메시지 타입 정보는 초대 메시지 타입 정보, 일반 메시지 타입 정보 및 나가기 메시지 타입 정보 등 중 하나일 수 있다.
전술한 제2패키지 데이터 수신부(420)는, 채팅 서버(110)로부터 제2패키지 데이터를 수신하기 위하여, 채팅 서버(110)의 메시지 저장 공간에 가져올 제2패키지 데이터가 있는지를 확인하기 위하여, 클라이언트 장치(100)에 대응되는 식별정보를 포함하는 메시지 요청 데이터를 채팅 서버(110)로 송신하여, 제2패키지 데이터를 수신할 수 있다. 이때 수신되는 제2패키지 데이터에서의 제2수신자 리스트에는 클라이언트 장치(100)에 대응되는 식별정보가 포함되어 있다.
전술한 제2패키지 데이터 수신부(420)는, 메시지 요청 데이터를 채팅 서버(110)로 송신하지 않고, 대기 상태에서 메시지 요청 데이터를 수신할 수도 있다.
본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스는, 1-1 채팅 서비스일 수도 있고 그룹 채팅 서비스일 수도 있다. 1-1 채팅 서비스 및 그룹 채팅 서비스는, 전달되는 패키지 데이터에 패키징된 메시지 헤더에 포함된 수신자 리스트에 클라이언트에 대응되는 식별정보가 한 개인 것과 복수인 것만 다를 뿐, 그 제공 방식과, 채팅 서버(110) 및 클라이언트 장치(100)의 동작은 동일하다. 다만, 그룹 채팅 서비스를 효율적으로 제공하기 위하여, 패키지 데이터에 패키징된 메시지 헤더에 채팅 그룹을 식별하기 위한 그룹 정보를 더 포함시킬 수 있다. 여기서, 채팅 그룹은 같이 채팅을 하고 있는 사용자(클라이언트 장치)의 그룹을 의미하고, 이러한 채팅 그룹 내에서만 메시지가 전달되기 때문에 채팅 그룹은 메시지 전달 범위에 있는 사용자(클라이언트 장치)의 그룹을 의미할 수도 있습니다. 이러한 채팅 그룹은 2명의 사용자 간 1-1 채팅에 대한 채팅 그룹일 수도 있고, 3명 이상의 사용자 간 그룹 채팅에 대한 채팅 그룹일 수도 있다.
예를 들어, 그룹 정보가 메시지 헤더에 포함되어 있으면, 채팅 서버(110)가 메시지 저장 공간에 저장된 패키지 데이터 중 전달할 해당 패키지 데이터를 더욱 신속히 추출할 수 있다. 또한, 그룹 정보가 메시지 헤더에 포함되어 있으면, 클라이언트 장치(100)에서 여러 개의 채팅이 이루어지고 있는 동안, 클라이언트 장치(100)는 각 채팅 별로 해당 패키지 데이터를 더욱 편리하고 신속하게 관리할 수 있다. 이에 따라, 더욱 신속한 채팅 서비스를 사용자에게 제공할 수 있다.
도 4에 도시된 본 발명의 실시예에 따른 클라이언트 장치(100)는, 애플리케이션 스토어 서버(Application Store Sever)를 통해 설치된 애플리케이션(채팅 클라이언트 프로그램)을 실행시켜 클라이언트 기반의 채팅 서비스를 제공하는 스마트폰, 태블릿 PC, 이동통신 단말기 등의 모바일 단말기일 수 있다.
도 5는 본 발명의 실시예에 따른 클라이언트 장치(100)가 클라이언트 기반의 채팅 서비스를 제공하는 방법에 대한 흐름도이다.
도 5를 참조하면, 본 발명의 실시예에 따른 클라이언트 장치(100)가 클라이언트 기반의 채팅 서비스를 제공하는 방법은, 사용자에 의해 입력된 제1메시지를 채팅 화면에 출력하는 단계(S300)와, 제1메시지가 입력되면, 제1송신자 정보, 제1수신자 리스트 및 제1메시지 타입 정보를 포함하는 제1메시지 헤더와 입력된 제1메시지를 패키징하여 제1패키지 데이터를 생성하는 단계(S302)와, 생성된 제1패키지 데이터를 채팅 서버(110)로 송신하는 단계(S304)와, 제2송신자 정보, 제2수신자 리스트 및 제2메시지 타입 정보를 포함하는 제2메시지 헤더와 제2메시지가 패키징된 제2패키지 데이터를 채팅 서버(110)로부터 수신하는 단계(S306)와, 제2메시지를 채팅 화면에 출력하는 단계(S308) 등을 포함한다.
전술한 절차는, 클라이언트 장치(100)가 메시지(제1메시지)를 먼저 송신한 이후 다른 클라이언트 장치에서 입력된 메시지(제2메시지)를 나중에 수신하는 경우를 가정한 일 예이다.
제1패키지 데이터에 패키징된 제1메시지 헤더에 포함된 제1송신자 정보는 클라이언트 장치(100)에 대응되는 식별정보이고, 제1수신자 리스트는 하나 이상의 다른 클라이언트 장치에 각각 대응되는 식별정보를 포함한다.
제2패키지 데이터에 패키징된 제2메시지 헤더에 포함된 제2송신자 정보는 하나 이상의 다른 클라이언트 장치 중 특정 다른 클라이언트 장치에 대응되는 식별정보이며, 제2수신자 리스트는 클라이언트 장치(100)에 대응되는 식별정보 등을 포함할 수 있다.
전술한 S302 단계에서는, 제1메시지를 패키징하여 송신할 제1패키지 데이터를 생성할 때, 사용자 입력 또는 미리 관리되고 있던 채팅 참여자 리스트를 토대로 하나 이상의 다른 클라이언트 장치(클라이언트 장치(100)의 사용자가 채팅하고자 하는 사용자의 클라이언트 장치이거나 클라이언트 장치(100)의 사용자 채팅하고 있는 사용자의 클라이언트 장치임)에 각각 대응되는 식별정보를 포함하는 제1수신자 리스트를 설정할 수 있다.
여기서, 사용자 입력에 따라 제1수신자 리스트를 설정하는 방식은 클라이언트 장치(100)의 사용자가 채팅하고자 하는 사용자를 초대할 때 제1수신자 리스트를 설정하는 방식일 수 있다. 또한, 미리 관리되고 있던 채팅 참여자 리스트를 토대로 제1수신자 리스트를 설정하는 방식은 이미 채팅이 이루어지고 있는 동안에 제1수신자 리스트를 설정하는 방식일 수 있다.
전술한 S306 단계 이후, 즉, 제2패키지 데이터를 수신한 이후에, 수신한 제2패키지 데이터에 패키징된 제2메시지 헤더에 포함된 제2메시지 타입 정보가 "초대 메시지 타입 정보"인 경우, 수신한 제2패키지 데이터에 패키징된 제2메시지 헤더에 포함된 제2수신자 리스트를 토대로 제2패키지 데이터가 수신되기 이전에 관리되고 있던 채팅 참여자 리스트에 새로운 클라이언트 장치에 대응되는 식별정보를 추가할 수 있다.
전술한 S306 단계 이후, 즉, 제2패키지 데이터를 수신한 이후에, 수신한 제2패키지 데이터에 패키징된 제2메시지 헤더에 포함된 제2메시지 타입 정보가 "나가기 메시지 타입 정보"인 경우, 수신한 제2패키지 데이터에 패키징된 제2메시지 헤더에 포함된 제2송신자 정보인 특정 다른 클라이언트 장치에 대응되는 식별정보를 제2패키지 데이터가 수신되기 이전에 관리되고 있던 채팅 참여자 리스트에서 삭제할 수 있다.
위에서 언급한 제1메시지 타입 정보 및 제2메시지 타입 정보 각각은, 초대 메시지 타입 정보, 일반 메시지 타입 정보 및 나가기 메시지 타입 정보 등 중 하나일 수 있다.
본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스는, 1-1 채팅 서비스일 수도 있고 그룹 채팅 서비스일 수도 있다. 1-1 채팅 서비스 및 그룹 채팅 서비스는, 전달되는 패키지 데이터에 패키징된 메시지 헤더에 포함된 수신자 리스트에 클라이언트에 대응되는 식별정보가 한 개인 것과 복수인 것만 다를 뿐, 그 제공 방식과, 채팅 서버(110) 및 클라이언트 장치(100)의 동작은 동일하다. 다만, 그룹 채팅 서비스를 효율적으로 제공하기 위하여, 전술한 302 단계에서 제1패키지 데이터를 생성할 때, 제1메시지 헤더에 그룹 정보를 더 포함시킬 수 있다. 제2메시지 헤더에도 그룹 정보가 더 포함될 수 있다.
예를 들어, 그룹 정보가 메시지 헤더에 포함되어 있으면, 채팅 서버(110)가 메시지 저장 공간에 저장된 패키지 데이터 중 전달할 해당 패키지 데이터를 더욱 신속히 추출할 수 있다. 또한, 그룹 정보가 메시지 헤더에 포함되어 있으면, 클라이언트 장치(100)에서 여러 개의 채팅이 이루어지고 있는 동안, 클라이언트 장치(100)는 각 채팅 별로 해당 패키지 데이터를 더욱 편리하고 신속하게 관리할 수 있다. 이에 따라, 더욱 신속한 채팅 서비스를 사용자에게 제공할 수 있다.
전술한 S306 단계에서는, 채팅 서버(110)로부터 가져올 제2패키지 데이터가 있는지를 확인하기 위하여, 클라이언트 장치(100)에 대응되는 식별정보를 포함하는 메시지 요청 데이터를 채팅 서버(110)로 송신하여 제2패키지 데이터를 채팅 서버(110)로부터 수신할 수 있다. 이때, 제2패키지 데이터에서의 제2수신자 리스트에는 클라이언트 장치(100)에 대응되는 식별정보가 포함되어 있다.
또한, 전술한 S306 단계에서는, 메시지 요청 데이터를 채팅 서버(110)로 송신하지 않고, 대기 상태에서 메시지 요청 데이터를 수신할 수도 있다.
전술한 절차는, 클라이언트 장치(100)가 메시지(제1메시지)를 먼저 송신한 이후 다른 클라이언트 장치에서 입력된 메시지(제2메시지)를 나중에 수신하는 경우를 가정한 일 예일 뿐, 전술한 S300 단계 및 S302 단계는, S304 단계 및 S306 단계 이후에 실행될 수도 있다.
전술한 클라이언트 장치(100)는, 애플리케이션 스토어 서버(Application Store Sever)를 통해 설치된 애플리케이션(채팅 클라이언트 프로그램)을 실행시켜 클라이언트 기반의 채팅 서비스를 제공하는 스마트폰, 태블릿 PC, 이동통신 단말기 등의 모바일 단말기일 수 있다.
전술한 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하는 방법이 실행되는 물리적인 장치는 클라이언트 장치(100)이더라도 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하는 방법을 실행시키는 실질적인 주체는 애플리케이션 스토어 서버를 클라이언트 장치(100)에 설치된 애플리케이션, 즉, 채팅 프로그램일 수 있다.
이에 따라, 전술한 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하는 방법은 프로그램(즉, 애플리케이션)으로 구현되고 컴퓨터로 읽을 수 있는 기록매체에 기록될 수 있다.
본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하는 방법을 구현한 프로그램은, 입력된 제1메시지를 채팅 화면에 출력하는 기능과, 제1메시지가 입력되면, 제1송신자 정보, 제1수신자 리스트 및 제1메시지 타입 정보를 포함하는 제1메시지 헤더와 입력된 제1메시지를 패키징하여 제1패키지 데이터를 생성하는 기능과, 생성된 제1패키지 데이터를 채팅 서버(110)로 송신하는 기능과, 제2송신자 정보, 제2수신자 리스트 및 제2메시지 타입 정보를 포함하는 제2메시지 헤더와 제2메시지가 패키징된 제2패키지 데이터를 채팅 서버(110)로부터 수신하는 기능과, 제2메시지를 채팅 화면에 출력하는 기능 등을 실행한다.
이러한 프로그램(애플리케이션)은 컴퓨터에 의해 읽힐 수 있는 기록매체에 기록되고 컴퓨터에 의해 실행됨으로써 전술한 기능들이 실행될 수 있다.
이와 같이, 컴퓨터가 기록매체에 기록된 프로그램을 읽어 들여 프로그램으로 구현된 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하는 방법을 실행시키기 위하여, 전술한 프로그램은 컴퓨터의 프로세서(CPU)가 컴퓨터의 장치 인터페이스(Interface)를 통해 읽힐 수 있는 C, C++, JAVA, 기계어 등의 컴퓨터 언어로 코드화된 코드(Code)를 포함할 수 있다.
이러한 코드는 전술한 기능들을 정의한 함수 등과 관련된 기능적인 코드(Function Code)를 포함할 수 있고, 전술한 기능들을 컴퓨터의 프로세서가 소정의 절차대로 실행시키는데 필요한 실행 절차 관련 제어 코드를 포함할 수도 있다.
또한, 이러한 코드는 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하는 방법을 컴퓨터의 프로세서가 실행시키는데 필요한 추가 정보나 미디어가 컴퓨터의 내부 또는 외부 메모리의 어느 위치(주소 번지)에서 참조 되어야 하는지에 대한 메모리 참조 관련 코드를 더 포함할 수 있다.
또한, 컴퓨터의 프로세서가 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하는 방법을 실행시키기 위하여 원격(Remote)에 있는 어떠한 다른 컴퓨터나 채팅 서버 등과 통신이 필요한 경우, 코드는 컴퓨터의 프로세서가 컴퓨터의 통신 모듈을 이용하여 원격(Remote)에 있는 어떠한 다른 컴퓨터나 채팅 서버 등과 어떻게 통신해야만 하는지, 통신 시 어떠한 정보나 미디어를 송수신해야 하는지 등에 대한 통신 관련 코드를 더 포함할 수도 있다.
그리고, 본 발명을 구현하기 위한 기능적인(Functional) 프로그램과 이와 관련된 코드 및 코드 세그먼트 등은, 기록매체를 읽어서 프로그램을 실행시키는 컴퓨터의 시스템 환경 등을 고려하여, 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론되거나 변경될 수도 있다.
이상에서 전술한 바와 같은 프로그램을 기록한 컴퓨터로 읽힐 수 있는 기록매체는, 일 예로, ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 미디어 저장장치 등이 있다.
또한 전술한 바와 같은 프로그램을 기록한 컴퓨터로 읽힐 수 있는 기록매체는 네트워크로 커넥션된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 이 경우, 다수의 분산된 컴퓨터 중 어느 하나 이상의 컴퓨터는 상기에 제시된 기능들 중 일부를 실행하고, 그 결과를 다른 분산된 컴퓨터들 중 하나 이상에 그 실행 결과를 전송할 수 있으며, 그 결과를 전송받은 컴퓨터 역시 상기에 제시된 기능들 중 일부를 실행하여, 그 결과를 역시 다른 분산된 컴퓨터들에 제공할 수 있다.
특히, 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하는 방법을 실행시키기 위한 프로그램인 애플리케이션을 기록한 컴퓨터로 읽을 수 있는 기록매체는 애플리케이션 스토어 채팅 서버에 포함된 저장매체(예: 하드디스크 등) 또는 애플리케이션 스토어 채팅 서버 그 자체일 수도 있다.
본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하는 방법을 실행시키기 위한 프로그램인 애플리케이션을 기록한 기록매체를 읽을 수 있는 컴퓨터는, 일반적인 데스크 탑이나 노트북 등의 일반 PC 뿐만 아니라, 스마트폰, 태블릿 PC, PDA(Personal Digital Assistants) 및 이동통신 단말기 등의 모바일 단말기를 포함할 수 있는 클라이언트 장치(100)일 수 있으며, 이뿐만 아니라, 컴퓨팅(Comuputing) 가능한 모든 기기로 해석되어야 할 것이다.
본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하는 방법을 실행시키기 위한 프로그램인 애플리케이션을 기록한 기록매체를 읽을 수 있는 컴퓨터가 스마트폰, 태블릿 PC, PDA(Personal Digital Assistants) 및 이동통신 단말기 등의 모바일 단말기를 포함하는 클라이언트 장치(100)인 경우, 애플리케이션은 애플리케이션 스토어 서버에서 일반 PC로 다운로드 되어 동기화프로그램을 통해 클라이언트 장치(100)에 설치될 수 있다.
이하에서는, 이상에서 전술한 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 예시적으로 설명한다.
단, 이하에서는, 클라이언트 장치(100)에 설치된 애플리케이션(채팅 프로그램)이 전술한 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 실행시키는 것으로 설명한다. 그리고, 아래에서는, 설명의 편의상, 클라이언트 장치(100)에 설치된 애플리케이션(채팅 프로그램)을 "클라이언트(C)"라고 명명한다.
본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스는 본 발명에서 정하는 프로토콜에 의해 구현될 수 있다. 이러한 프로토콜에는 데이터 전달 방식(메시지 전달 방식), 데이터 포맷 등에 대한 규칙이 정의된다. 채팅 서비스의 예를 설명하기에 앞서, 전술한 프로토콜을 도 6 내지 도 8을 참조하여 먼저 설명한다.
도 6은 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하기 위한 프로토콜에 따른 메시지 송신 절차 및 메시지 수신 절차를 나타낸 도면이다.
본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하기 위한 프로토콜은 데이터 전달 방식에 대한 규칙을 정의하는데, 데이터 전달 방식에 대한 규칙은, 클라이언트(C)가 채팅 서버(S)로 메시지를 송신하는 메시지 송신 절차에 대한 규칙과, 클라이언트(C)가 채팅 서버(S)로부터 메시지를 수신하는 메시지 수신 절차에 대한 규칙으로 나눌 수 있다. 이러한 메시지 송신 절차와 메시지 수신 절차는 요청(Request)-응답(Response) 방식으로 이루어질 수 있다.
메시지 송신 절차를 나타낸 도 6의 (a)를 참조하면, 클라이언트(C)는 사용자에 의해 메시지가 입력되면 입력된 메시지를 메시지 헤더와 함께 패키징하여 패키지 데이터를 생성하고, 이렇게 생성된 패키지 데이터를 메시지 전달 요청 데이터(REQUEST)로서 채팅 서버(S)로 송신한다(S11). 채팅 서버(S)는 클라이언트(C)로부터 메시지가 패키징된 패키지 데이터를 수신하면 메시지 저장 공간에 저장하고(S12), 메시지 전달 응답 데이터를 해당 클라이언트(C)로 송신한다(S13).
메시지 수신 절차를 나타낸 도 6의 (b)를 참조하면, 전술한 메시지 송신 절차에 따라, 채팅 서버(S)가 메시지 저장 공간에 패키지 데이터를 저장해놓은 상태에서, 클라이언트(C)가 자신이 가져올 패키지 데이터(메시지)가 있는지를 물어보고 요청하기 위하여 클라이언트(C)에 대응되는 식별정보인 수신자 정보를 포함하는 메시지 요청 데이터를 채팅 서버(S)로 송신한다(S21). 채팅 서버(S)는 메시지 요청 데이터를 수신하여 메시지 요청 데이터에 포함된 수신자 정보를 확인하여 확인된 수신지 정보가 수신자 리스트에 포함되어 있는 패키지 데이터가 메시지 저장 공간에 저장되어 있는지를 확인하여, 확인된 패키지 데이터를 메시지 저장 공간에서 추출하여(S22), 추출된 패키지 데이터를 메시지 응답 데이터로서 클라이언트(C)로 송신한다(S23).
도 7은 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하기 위한 프로토콜에 따른 데이터 포맷의 규칙을 설명하기 위한 도면이다.
도 7의 (a)을 참조하면, 클라이언트(C)가 채팅 서버(S)로 송신하는 메시지 전달 요청 데이터로서의 패키지 데이터는, 송신자 정보, 수신자 리스트, 메시지 타입 정보 등을 포함하는 메시지 헤더와, 사용자에 의해 실제로 입력된 메시지를 포함한다. 메시지 헤더에는 그룹 정보가 선택적으로 포함될 수 있다.
도 7의 (b)를 참조하면, 클라이언트(C)가 메시지 전달 요청 데이터에 대하여 채팅 서버(S)로부터 수신하는 메시지 전달 응답 데이터는, 메시지 전달 요청 데이터 수신 처리 결과에 대한 결과 코드 및 결과 정보 등을 포함할 수 있다.
도 7의 (c)를 참조하면, 클라이언트(C)가 채팅 서버(S)로 송신하는 메시지 요청 데이터는, 클라이언트(C)에 대응되는 식별정보로서의 수신자 정보 등을 포함한다.
도 7의 (d)를 참조하면, 클라이언트(C)가 메시지 요청 데이터에 대하여 채팅 서버(S)로부터 수신하는 메시지 응답 데이터는, 채팅 서버(S)가 메시지 전달 요청 데이터로서의 패키지 데이터를 수신하여 어떠한 가공 처리 없이 저장해둔 것으로서, 메시지 전달 요청 데이터로서의 패키지 데이터와 동일한 데이터 포맷을 갖는다.
도 8은 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하기 위한 프로토콜에 따른 메시지 타입 정보를 예시적으로 정의한 도면이다.
도 8을 참조하면, 메시지 헤더에 포함되는 메시지 타입 정보는, 메시지의 타입을 정의한 정보로서, 초대 메시지 타입 정보(M01), 실제로 채팅하는 내용에 관련된 일반 메시지 타입 정보(M02), 나가기 메시지 타입 정보(M03) 등을 포함할 수 있다. 이외에도, 초대 수락, 초대 거절 등 채팅에 필요한 각종 기능에 대한 메시지 타입 정보가 추가로 더 정의될 수도 있다.
이하에서는, 전술한 프로토콜을 이용하여 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하는 예를 도 9 내지 도 15를 참조하여 설명한다.
도 9는 클라이언트 기반의 채팅 서비스를 이루어지는 환경을 나타낸 도면이다. 이하에서는, 도 9에 도시된 바와 같이, 클라이언트 장치(100)로서 스마트폰을 소유한 3명의 사용자(사용자 1, 사용자 2, 사용자 3)가 채팅하는 상황을 가정한다. 그리고, 사용자 1은 최초로 채팅을 하고자 하는 사용자이다.
도 9에 도시된 바와 같이, 3대의 스마트폰은 와이파이(WiFi) 망, 이동통신망, 인터넷 망 등의 네트워크(120)를 통해 채팅 서버(S)와 연결되어 통신할 수 있다.
도 9에 도시된 바와 같이, 3명의 사용자가 각각 소유한 스마트폰에는 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하는 방법을 실행시킬 수 있는 애플리케이션(프로그램)이 설치되어 있다. 그리고, 3대의 스마트폰에 각각 설치된 애플리케이션은 채팅 서버(S)와 연동하는 클라이언트로서 C1, C2, C3이라고도 한다.
도 9를 참조하면, 사용자 1이 채팅 서비스를 이용하기 위해 해당 애플리케이션을 실행시키면, 애플리케이션(C1)은 도 9에 도시된 바와 같이 채팅 화면을 디스플레이한다. 그리고, 사용자 2 및 사용자 3의 스마트폰에는 설치된 해당 애플리케이션이 백그라운드에서 실행되고 있을 수도 있다.
그리고, 애플리케이션(C1)은 사용자 초대 UI(User Interface)를 제공하는데, 사용자 1이 사용자 2 및 사용자 3과 채팅하기 위하여 상대방 찾기 버튼을 누르면 스마트폰에 저장된 연락처로부터 사용자 2 및 사용자 3의 전화번호(클라이언트 장치에 대응되는 식별정보의 일 예임)를 불러올 수 있으며, 이후 초대 버튼을 누르면 사용자 2 및 사용자 3을 초대할 수 있다.
이러한 채팅 상대방 초대 절차를 도 10 및 도 11을 참조하여 설명한다. 단, 이하 도면에서 데이터 필드 내에 기재된 U1, U2, U3는 사용자 1의 스마트폰(클라이언트 장치), 사용자 2의 스마트폰(클라이언트 장치), 사용자 3의 스마트폰(클라이언트 장치)에 각각 대응되는 식별정보이며, 이는 전화번호일 수도 있고, 전화번호에 대응되는 사용자 정보(예: ID, 별명 등) 등일 수도 있다.
전술한 바에 따라 사용자가 초대할 사용자를 설정하고 초대 버튼을 누르면, C1은 초대 기능을 수행한다. 이러한 초대 기능은 프로토콜에서 정의된 메시지 송신 절차(도 10)와 메시지 수신 절차(도 11)에 따라 실행된다.
도 10을 참조하면, C1은 U2 및 U3를 포함하는 수신자 리스트를 설정하고, U1을 송신자 정보로서 설정하며, 그룹 정보를 GO1로 설정하고, 메시지 타입 정보를 M01(초대 메시지 타입 정보)로 설정하고, 이렇게 설정된 송신자 정보, 수신자 리스트, 그룹 정보, 메시지 타입 정보를 포함하는 메시지 헤더와, "초대합니다" 등의 기본 내용이나 사용자에 의해 입력된 내용의 메시지(M)를 패키징하여 패키지 데이터(1000)를 생성하고, 생성된 패키지 데이터(1000)를 메시지 전달 요청 데이터로서 채팅 서버(S)로 송신한다.
도 10을 참조하면, 채팅 서버(S)는 C1으로부터 수신한 메시지 전달 요청 데이터로서의 패키지 데이터(1000)를 메시지 저장 공간에 저장한다. 이후, 채팅 서버(S)는 결과 코드(Result Code, RC)와 결과 정보(Result Information, RI)를 포함하는 메시지 전달 응답 데이터(1010)를 C1으로 송신한다.
전술한 바에 따라, 채팅 서버(S)의 메시지 저장 공간에 메시지 전달 요청 데이터인 패키지 데이터(1000)가 저장된 이후, 메시지 전달 요청 데이터인 패키지 데이터(1000)에서의 수신자 리스트에 설정된 U2 및 U3 각각에 대응되는 C2 및 C3가 메시지 전달 요청 데이터인 패키지 데이터(1000)를 수신하는 메시지 수신 절차는 도 11을 참조하여 설명한다.
도 11을 참조하면, C2는 C2에 대응되는 식별정보인 U2를 수신자 정보로 설정하고 이러한 수신자 정보를 포함하는 메시지 요청 데이터(1110)를 채팅 서버(S)로 송신한다. 이에 따라, 채팅 서버(S)는 메시지 저장 공간에 저장된 패키지 데이터(1000)에 패키징된 메시지 헤더에 포함된 수신자 리스트에 메시지 요청 데이터(1110)에 포함된 수신자 정보인 U2가 포함되어 있는지를 확인하여, 포함되어 있다면, 메시지 저장 공간에 저장된 패키지 데이터(1000)를 메시지 응답 데이터로서 C2로 송신한다. 이러한 방식에 따라 C2는 채팅 서버(S)에 저장된 패키지 데이터(1000)를 메시지 응답 데이터로서 수신할 수 있다.
이와 동일한 방식으로, C3도 C3에 대응되는 식별정보인 U3을 수신자 정보로 설정하고 이러한 수신자 정보를 포함하는 메시지 요청 데이터(1120)를 채팅 서버(S)로 송신하여 채팅 서버(S)에 저장된 패키지 데이터(1000)를 메시지 응답 데이터로서 수신할 수 있다.
도 11의 절차에 따라 패키지 데이터(1000)를 수신한 C2 및 C3는, 패키지 데이터(1000)에 패키징된 메시지의 내용(초대 내용)을 팝업 형태나 채팅 화면을 띄어서 표시하고, 사용자는 이러한 초대 사실을 확인할 수 있다. 이때, C2 및 C3는 초대 승낙 또는 초대 거절을 위한 사용자 인터페이스를 제공할 수도 있다.
이러한 절차에 따라, 사용자 1, 사용자 2 및 사용자 3은 채팅할 수 있는 상태가 된다. 이후, 실제로 채팅이 진행되면서, 실질적인 채팅 내용의 메시지(일반 메시지 타입의 메시지)가 C1, C2 및 C3 간에 전달되는 기능에 대하여 도 12 및 도 13을 참조하여 설명한다. 이러한 메시지 전달 기능도 프로토콜에서 정의된 메시지 송신 절차(도 12)와 메시지 수신 절차(도 13)에 따라 실행된다.
도 12를 참조하면, 사용자 1, 사용자 2 및 사용자 3이 채팅을 하던 중, 사용자 2가 메시지(일반 메시지)를 입력하면, C2는 송신자 정보를 U2로 설정하고 U1 및U3를 포함하는 수신자 리스트를 설정하며 그룹 정보를 G01로 설정하고 메시지 타입 정보를 MO2(일반 메시지 타입 정보)로 설정하여 메시지 헤더를 만들어 입력된 메시지와 패키징하여 패키징 데이터(1200)를 생성한다.
도 12를 참조하면, 이후, C2는 생성된 패키징 데이터(1200)를 메시지 전달 요청 데이터로서 채팅 서버(S)로 송신한다. 이에 따라, 채팅 서버(S)는 패키징 데이터(1200)를 메시지 저장 공간에 저장하고, 결과 코드(RC) 및 결과 정보(RI)를 포함하는 메시지 전달 응답 데이터(1210)를 C2로 송신한다.
도 13을 참조하면, 패키지 데이터(1200)가 채팅 서버(S)의 메시지 저장 공간에 저장된 상태에서, 채팅 참여자 중에서 패키지 데이터(1200)를 생성한 클라이언트인 C2이외의 다른 클라이언트인 C1 및 C3는 자신이 가져올 패키지 데이터가 있는지를 확인하여 가져오기 위하여 메시지 요청 데이터(1310, 1320)를 채팅 서버(S)로 송신한다.
이때, C1은 C1에 대응되는 식별정보인 U1이 수신자 정보로 설정된 메시지 요청 데이터(1310)를 채팅 서버(S)로 송신하고, C3는 C3에 대응되는 식별정보인 U3이 수신자 정보로 설정된 메시지 요청 데이터(1320)를 채팅 서버(S)로 송신한다.
채팅 서버(S)는 C1으로부터 수신한 메시지 요청 데이터(1310)에 포함된 수신자 정보를 U1으로 확인하여 U1이 수신자 리스트에 포함된 패키지 데이터(1200)를 추출하여 C1으로 송신한다.
또한, 채팅 서버(S)는 C3으로부터 수신한 메시지 요청 데이터(1320)에 포함된 수신자 정보를 U3으로 확인하여 U3이 수신자 리스트에 포함된 패키지 데이터(1200)를 추출하여 C3으로 송신한다.
C1 및 C3는 수신한 패키지 데이터(1200)에 패키징된 메시지 헤더에 포함된 메시지 타입 정보가 일반 메시지 타입 정보(M02)인 것을 확인하고, 패키지 데이터(1200)에 패키징된 메시지를 채팅 화면에 출력한다.
이와 같이, 메시지 전송 절차 및 메시지 수신 절차를 통해 C1, C2, C3 간에 메시지가 전달됨으로써 채팅이 이루어질 수 있으며, 채팅이 이루어지고 있는 동안, 참여자 중에 어느 사용자가 채팅을 중단할 수도 있다.
이러한 나가기 기능을 제공하기 위하여, 애플리케이션은 나가기 기능을 제공하기 위한 나가기 버튼 등과 같은 사용자 인터페이스를 제공할 수 있다. 이하, 도 14 및 도 15를 참조하여 나가기 기능과 관련된 메시지 전달 절차(메시지 전송 및 메시지 수신 절차)에 대하여 설명한다.
도 14를 참조하면, 사용자 3이 채팅을 그만 하고자 나가기 버튼을 눌러서 채팅을 중단하게 되면, C3은 송신자 정보를 U3으로 설정하고 수신자 리스트에 U1, U2를 포함시켜 설정하며, 메시지 타입 정보를 나가기 메시지 타입 정보인 M03으로 설정하여 메시지 헤더를 구성하고, 구성된 메시지 헤더와 "사용자 3은 채팅방에서 나갑니다" 등의 내용을 갖는 메시지를 패키징하여 패키징 데이터(1400)를 생성한다.
이후, C3는 생성된 패키징 데이터(1400)를 메시지 전달 요청 데이터로서 채팅 서버(S)로 송신한다. 이에 따라, 채팅 서버(S)는 메시지 저장 공간에 패키지 데이터(1400)를 저장해둔다.
도 15를 참조하면, 패키지 데이터(1400)가 채팅 서버(S)의 메시지 저장 공간에 저장된 상태에서, 채팅 참여자 중에서 패키지 데이터(1400)를 생성한 클라이언트인 C3이외의 다른 클라이언트인 C1 및 C2는 자신이 가져올 패키지 데이터가 있는지를 확인하여 가져오기 위하여 메시지 요청 데이터(1510, 1520)를 채팅 서버(S)로 송신한다.
이때, C1은 C1에 대응되는 식별정보인 U1이 수신자 정보로 설정된 메시지 요청 데이터(1510)를 채팅 서버(S)로 송신하고, C2는 C2에 대응되는 식별정보인 U2이 수신자 정보로 설정된 메시지 요청 데이터(1520)를 채팅 서버(S)로 송신한다.
채팅 서버(S)는 C1으로부터 수신한 메시지 요청 데이터(1510)에 포함된 수신자 정보를 U1으로 확인하여 U1이 수신자 리스트에 포함된 패키지 데이터(1400)를 추출하여 C1으로 송신한다.
또한, 채팅 서버(S)는 C2로부터 수신한 메시지 요청 데이터(1520)에 포함된 수신자 정보를 U2로 확인하여 U2가 수신자 리스트에 포함된 패키지 데이터(1400)를 추출하여 C2로 송신한다.
C1 및 C2는 수신한 패키지 데이터(1400)에 패키징된 메시지 헤더에 포함된 메시지 타입 정보가 나가기 메시지 타입 정보(M03)인 것을 확인하고, 패키지 데이터(1400)에 패키징된 메시지를 채팅 화면에 출력한다. 이에 따라, 사용자 1 및 사용자 2는 사용자 3이 채팅방을 나간 것을 확인할 수 있다.
사용자 3이 나가기 전에는 3명의 사용자가 그룹 채팅을 하였고, 사용자 3이 나가고 난 이후에는 2명의 사용자가 1-1 채팅을 할 수 있다. 그룹 채팅일 때와 1-1 채팅일 때의 클라이언트(C)와 채팅 서버(S)가 수행해야 하는 동작에는 전혀 차이가 없다. 1-1 채팅에서는 그룹 정보가 미설정되고 수신자 리스트에 하나의 식별정보만이 설정된다는 점만 다를 뿐이다.
이상에서 설명한 바와 같이 본 발명에 의하면, 모바일 환경에 적합한 클라이언트 기반의 채팅 서비스를 제공할 수 있다.
이상에서, 본 발명의 실시예를 구성하는 모든 구성 요소들이 하나로 결합되거나 결합되어 동작하는 것으로 설명되었다고 해서, 본 발명이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 발명의 목적 범위 안에서라면, 그 모든 구성 요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다. 또한, 그 모든 구성 요소들이 각각 하나의 독립적인 하드웨어로 구현될 수 있지만, 각 구성 요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수 개의 하드웨어에서 조합된 일부 또는 전부의 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다. 그 컴퓨터 프로그램을 구성하는 코드들 및 코드 세그먼트들은 본 발명의 기술 분야의 당업자에 의해 용이하게 추론될 수 있을 것이다. 이러한 컴퓨터 프로그램은 컴퓨터가 읽을 수 있는 저장매체(Computer Readable Media)에 저장되어 컴퓨터에 의하여 읽혀지고 실행됨으로써, 본 발명의 실시예를 구현할 수 있다. 컴퓨터 프로그램의 저장매체로서는 자기 기록매체, 광 기록매체, 등이 포함될 수 있다.
또한, 이상에서 기재된 "포함하다", "구성하다" 또는 "가지다" 등의 용어는, 특별히 반대되는 기재가 없는 한, 해당 구성 요소가 내재될 수 있음을 의미하는 것이므로, 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것으로 해석되어야 한다. 기술적이거나 과학적인 용어를 포함한 모든 용어들은, 다르게 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 사전에 정의된 용어와 같이 일반적으로 사용되는 용어들은 관련 기술의 문맥 상의 의미와 일치하는 것으로 해석되어야 하며, 본 발명에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
Claims (22)
- 제1클라이언트 장치에 대응되는 식별정보인 송신자 정보, 하나 이상의 제2클라이언트 장치에 각각 대응되는 식별정보를 포함하는 수신자 리스트 및 메시지 타입 정보를 포함하는 메시지 헤더와 상기 제1클라이언트 장치에서 입력된 메시지가 패키징된 패키지 데이터를 상기 제1클라이언트 장치로부터 수신하는 메시지 수신부;
상기 패키지 데이터를 저장하는 메시지 저장부; 및
상기 수신자 리스트를 참조하여 상기 저장된 패키지 데이터를 상기 하나 이상의 제2클라이언트 장치로 송신하는 메시지 송신부를 포함하는 것을 특징으로 하는 클라이언트 기반의 채팅 서비스를 제공하는 채팅 서버. - 제1항에 있어서,
상기 메시지 송신부는,
상기 제2클라이언트 장치로부터 메시지 요청 데이터가 수신되면, 상기 제2클라이언트 장치에 대응되는 식별정보가 상기 수신자 리스트에 포함되어 있는지를 확인하여, 포함되어 있는 것으로 확인되면, 상기 제2클라이언트 장치로 상기 저장된 패키지 데이터를 송신하는 것을 특징으로 하는 클라이언트 기반의 채팅 서비스를 제공하는 채팅 서버. - 제1항에 있어서,
상기 메시지 송신부는,
상기 패키지 데이터가 저장되면 상기 수신자 리스트를 확인하여, 해당 제2클라이언트 장치로 상기 저장된 패키지 데이터를 송신하는 것을 특징으로 하는 클라이언트 기반의 채팅 서비스를 제공하는 채팅 서버. - 채팅 서버가 클라이언트 기반의 채팅 서비스를 제공하는 방법에 있어서,
제1클라이언트 장치에 대응되는 식별정보인 송신자 정보, 하나 이상의 제2클라이언트 장치에 각각 대응되는 식별정보를 포함하는 수신자 리스트 및 메시지 타입 정보를 포함하는 메시지 헤더와 상기 제1클라이언트 장치에서 입력된 메시지가 패키징된 패키지 데이터를 상기 제1클라이언트 장치로부터 수신하는 단계;
상기 패키지 데이터를 저장하는 단계; 및
상기 수신자 리스트를 참조하여 상기 저장된 패키지 데이터를 상기 하나 이상의 클라이언트 장치로 송신하는 단계를 포함하는 것을 특징으로 하는 클라이언트 기반의 채팅 서비스를 제공하는 방법. - 제1메시지가 입력되면, 제1송신자 정보, 제1수신자 리스트 및 제1메시지 타입 정보를 포함하는 제1메시지 헤더와 상기 입력된 제1메시지를 패키징하여 제1패키지 데이터를 생성하고, 상기 생성된 제1패키지 데이터를 채팅 서버로 송신하는 제1패키지 데이터 송신부;
제2송신자 정보, 제2수신자 리스트 및 제2메시지 타입 정보를 포함하는 제2메시지 헤더와 제2메시지가 패키징된 제2패키지 데이터를 상기 채팅 서버로부터 수신하는 제2패키지 데이터 수신부; 및
상기 입력된 제1 메시지 및 상기 제2메시지를 채팅 화면에 출력하는 채팅 화면 제어부를 포함하는 것을 특징으로 하는 클라이언트 기반의 채팅 서비스를 제공하는 클라이언트 장치. - 제5항에 있어서,
상기 제1패키지 데이터 송신부는,
사용자 입력 또는 채팅 참여자 리스트를 토대로 하나 이상의 다른 클라이언트 장치에 각각 대응되는 식별정보를 포함하는 상기 제1수신자 리스트를 설정하고,
상기 하나 이상의 다른 클라이언트 장치와 상기 클라이언트 장치에 각각 대응되는 식별정보를 포함하는 상기 채팅 참여자 리스트를 관리하는 채팅 참여자 리스트 관리부를 더 포함하는 것을 특징으로 하는 클라이언트 기반의 채팅 서비스를 제공하는 클라이언트 장치. - 제6항에 있어서,
상기 채팅 참여자 리스트 관리부는,
상기 제2메시지 타입 정보가 초대 메시지 타입 정보인 상기 제2패키지 데이터를 수신한 이후에, 상기 제2수신자 리스트를 토대로 새로운 클라이언트 장치에 대응되는 식별정보를 상기 채팅 참여자 리스트에 새로운 클라이언트 장치에 대응되는 식별정보를 추가하는 것을 특징으로 하는 클라이언트 기반의 채팅 서비스를 제공하는 클라이언트 장치. - 제6항에 있어서,
상기 채팅 참여자 리스트 관리부는,
상기 제2메시지 타입 정보가 나가기 메시지 타입 정보인 상기 제2패키지 데이터를 수신한 이후에, 상기 제2송신자 정보인 특정 다른 클라이언트 장치에 대응되는 식별정보를 상기 채팅 참여자 리스트에서 삭제하는 것을 특징으로 하는 클라이언트 기반의 채팅 서비스를 제공하는 클라이언트 장치. - 제5항에 있어서,
상기 제2패키지 데이터 수신부는,
상기 채팅 서버의 메시지 저장 공간에 가져올 상기 제2패키지 데이터가 있는지를 확인하기 위하여, 상기 클라이언트 장치에 대응되는 식별정보를 포함하는 메시지 요청 데이터를 상기 채팅 서버로 송신하여, 상기 제2패키지 데이터를 수신하되, 상기 제2패키지 데이터에서의 상기 제2수신자 리스트에는 상기 클라이언트 장치에 대응되는 식별정보가 포함된 것을 특징으로 하는 클라이언트 기반의 채팅 서비스를 제공하는 클라이언트 장치. - 제5항에 있어서,
상기 클라이언트 장치는,
애플리케이션 스토어 서버를 통해 설치된 애플리케이션을 실행시켜 클라이언트 기반의 채팅 서비스를 제공하는 모바일 단말기인 것을 특징으로 하는 클라이언트 기반의 채팅 서비스를 제공하는 클라이언트 장치. - 클라이언트 장치가 클라이언트 기반의 채팅 서비스를 제공하는 방법에 있어서,
입력된 제1메시지를 채팅 화면에 출력하는 단계;
상기 제1메시지가 입력되면, 제1송신자 정보, 제1수신자 리스트 및 제1메시지 타입 정보를 포함하는 제1메시지 헤더와 상기 입력된 제1메시지를 패키징하여 제1패키지 데이터를 생성하는 단계;
상기 생성된 제1패키지 데이터를 채팅 서버로 송신하는 단계;
제2송신자 정보, 제2수신자 리스트 및 제2메시지 타입 정보를 포함하는 제2메시지 헤더와 제2메시지가 패키징된 제2패키지 데이터를 상기 채팅 서버로부터 수신하는 단계; 및
상기 제2메시지를 상기 채팅 화면에 출력하는 단계를 포함하는 것을 특징으로 하는 클라이언트 기반의 채팅 서비스를 제공하는 방법. - 제11항에 있어서,
상기 제1송신자 정보는 상기 클라이언트 장치에 대응되는 식별정보이고, 상기 제1수신자 리스트는 하나 이상의 다른 클라이언트 장치에 각각 대응되는 식별정보를 포함하며,
상기 제2송신자 정보는 상기 하나 이상의 다른 클라이언트 장치 중 특정 다른 클라이언트 장치에 대응되는 식별정보이고, 상기 제2수신자 리스트는 상기 클라이언트 장치에 대응되는 식별정보를 포함하되,
상기 식별정보는 전화번호 또는 상기 전화번호와 대응되는 사용자 정보인 것을 특징으로 하는 클라이언트 기반의 채팅 서비스를 제공하는 방법. - 제11항에 있어서,
상기 생성하는 단계에서,
사용자 입력 또는 채팅 참여자 리스트를 토대로 하나 이상의 다른 클라이언트 장치에 각각 대응되는 식별정보를 포함하는 상기 제1수신자 리스트를 설정하는 것을 특징으로 하는 클라이언트 기반의 채팅 서비스를 제공하는 방법. - 제13항에 있어서,
상기 제2패키지 데이터를 수신한 이후에, 상기 제2메시지 타입 정보가 초대 메시지 타입 정보인 경우, 상기 제2수신자 리스트를 토대로 상기 제2패키지 데이터가 수신되기 이전에 관리되고 있던 채팅 참여자 리스트에 새로운 클라이언트 장치에 대응되는 식별정보를 추가하는 것을 특징으로 하는 클라이언트 기반의 채팅 서비스를 제공하는 방법. - 제13항에 있어서,
상기 제2패키지 데이터를 수신한 이후에, 상기 제2메시지 타입 정보가 나가기 메시지 타입 정보인 경우, 상기 제2송신자 정보인 특정 다른 클라이언트 장치에 대응되는 식별정보를 상기 제2패키지 데이터가 수신되기 이전에 관리되고 있던 채팅 참여자 리스트에서 삭제하는 것을 특징으로 하는 클라이언트 기반의 채팅 서비스를 제공하는 방법. - 제11항에 있어서,
상기 제1메시지 타입 정보 및 상기 제2메시지 타입 정보 각각은,
초대 메시지 타입 정보, 일반 메시지 타입 정보 및 나가기 메시지 타입 정보 중 하나인 것을 특징으로 하는 클라이언트 기반의 채팅 서비스를 제공하는 방법. - 제11항에 있어서,
상기 수신하는 단계는,
상기 채팅 서버로부터 가져올 상기 제2패키지 데이터가 있는지를 확인하기 위하여, 상기 클라이언트 장치에 대응되는 식별정보를 포함하는 메시지 요청 데이터를 상기 채팅 서버로 송신하여 상기 제2패키지 데이터를 상기 채팅 서버로부터 수신하고, 상기 제2패키지 데이터에서의 상기 제2수신자 리스트에는 상기 클라이언트 장치에 대응되는 식별정보가 포함된 것을 특징으로 하는 클라이언트 기반의 채팅 서비스를 제공하는 방법. - 제11항에 있어서,
상기 클라이언트 장치는,
애플리케이션 스토어 서버를 통해 설치된 애플리케이션을 실행시켜 클라이언트 기반의 채팅 서비스를 제공하는 모바일 단말기인 것을 특징으로 하는 클라이언트 기반의 채팅 서비스를 제공하는 방법. - 제11항에 있어서,
상기 제1메시지 헤더 및 상기 제2메시지 헤더 각각은,
같이 채팅을 하고 있는 사용자의 그룹 또는 메시지 전달 범위에 있는 사용자의 그룹을 의미하는 채팅 그룹을 식별하기 위한 그룹 정보를 더 포함하는 것을 특징으로 하는 클라이언트 기반의 채팅 서비스를 제공하는 방법. - 메시지가 입력되면 송신자 정보, 수신자 리스트 및 메시지 타입 정보를 포함하는 메시지 헤더와 상기 입력된 메시지를 패키징하여 패키지 데이터를 생성하여 송신하고, 상기 입력된 메시지를 채팅 화면에 출력하는 제1클라이언트 장치;
상기 패키지 데이터를 수신하여 저장해두고, 상기 수신자 리스트를 참조하여 상기 패키지 데이터를 전달하는 채팅 서버; 및
상기 패키지 데이터를 전달받고, 상기 패키지 데이터에 패키징된 메시지를 채팅 화면에 출력하는 제2클라이언트 장치
를 포함하되, 상기 수신자 리스트는 상기 제2클라이언트 장치에 대응되는 식별정보를 포함하는 것을 특징으로 하는 클라이언트 기반의 채팅 서비스를 제공하는 시스템. - 제20항에 있어서,
상기 제2클라이언트 장치는,
상기 패키지 데이터에 패키징된 메시지 헤더에 포함된 상기 송신자 정보와 상기 수신자 리스트를 토대로 채팅 참여자 리스트를 파악하여 새로운 참여자를 추가하거나 기존 참여자를 삭제하는 것을 특징으로 하는 클라이언트 기반의 채팅 서비스를 제공하는 시스템. - 클라이언트 기반의 채팅 서비스를 제공하는 방법을 실행시키기 위한 프로그램을 기록한 기록매체에 있어서,
입력된 제1메시지를 채팅 화면에 출력하는 기능과,
상기 제1메시지가 입력되면, 제1송신자 정보, 제1수신자 리스트 및 제1메시지 타입 정보를 포함하는 제1메시지 헤더와 상기 입력된 제1메시지를 패키징하여 제1패키지 데이터를 생성하는 기능과,
상기 생성된 제1패키지 데이터를 채팅 서버로 송신하는 기능과,
제2송신자 정보, 제2수신자 리스트 및 제2메시지 타입 정보를 포함하는 제2메시지 헤더와 제2메시지가 패키징된 제2패키지 데이터를 상기 채팅 서버로부터 수신하는 기능과,
상기 제2메시지를 상기 채팅 화면에 출력하는 기능을 구현하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110047903A KR101292002B1 (ko) | 2011-05-20 | 2011-05-20 | 클라이언트 기반의 채팅 서비스를 제공하는 방법, 클라이언트 장치, 채팅 서버, 시스템 및 기록매체 |
PCT/KR2012/003655 WO2012161437A2 (ko) | 2011-05-20 | 2012-05-10 | 클라이언트 기반의 채팅 서비스를 제공하는 방법, 클라이언트 장치, 채팅 서버, 시스템 및 기록매체 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110047903A KR101292002B1 (ko) | 2011-05-20 | 2011-05-20 | 클라이언트 기반의 채팅 서비스를 제공하는 방법, 클라이언트 장치, 채팅 서버, 시스템 및 기록매체 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20120129564A true KR20120129564A (ko) | 2012-11-28 |
KR101292002B1 KR101292002B1 (ko) | 2013-08-01 |
Family
ID=47217844
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020110047903A KR101292002B1 (ko) | 2011-05-20 | 2011-05-20 | 클라이언트 기반의 채팅 서비스를 제공하는 방법, 클라이언트 장치, 채팅 서버, 시스템 및 기록매체 |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR101292002B1 (ko) |
WO (1) | WO2012161437A2 (ko) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7650380B2 (en) | 2004-02-12 | 2010-01-19 | International Business Machines Corporation | System and method for messaging and collaborating in an intranet environment |
FI20050092A0 (fi) * | 2004-09-08 | 2005-01-28 | Nokia Corp | Ryhmäpalveluiden ryhmätiedot |
US20090063638A1 (en) * | 2007-08-29 | 2009-03-05 | Lei Guo | Method and Apparatus for Processing Messages in Messaging System |
KR101397633B1 (ko) * | 2007-12-05 | 2014-05-22 | 주식회사 케이티 | 아이엠에스 기반 인스턴트 메시지 서비스 제공 시스템 및방법 |
-
2011
- 2011-05-20 KR KR1020110047903A patent/KR101292002B1/ko not_active IP Right Cessation
-
2012
- 2012-05-10 WO PCT/KR2012/003655 patent/WO2012161437A2/ko active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2012161437A2 (ko) | 2012-11-29 |
KR101292002B1 (ko) | 2013-08-01 |
WO2012161437A3 (ko) | 2013-01-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11979252B2 (en) | Method and apparatus for providing remote user interface services | |
KR101077739B1 (ko) | 초대받은 사람의 자동 컨퍼런스 참가를 위한 사용자 개시 초대 | |
CN107018147B (zh) | 一种物联网通信方法及系统、网关模块 | |
JP7430821B2 (ja) | 情報インタラクションの方法、装置、サーバー、システム及び記憶媒体 | |
US10999332B2 (en) | User-centric connections to a location comprising digital collaboration tools | |
CN109729005A (zh) | 消息处理方法、装置、计算机设备和存储介质 | |
US20110307565A1 (en) | Group messaging integration system, method and apparatus | |
CN109728996B (zh) | 通讯信息的展示方法、用户设备、存储介质及装置 | |
US20210176285A1 (en) | User-centric connections to a location comprising digital collaboration tools | |
EP2707995B1 (en) | Method and system for managing voice mails in a universal plug and play network environment | |
KR101196657B1 (ko) | 다수의 소셜 네트워크 서비스 간에 호환매개기능을 가지는 메시지 전달 시스템 | |
KR101292002B1 (ko) | 클라이언트 기반의 채팅 서비스를 제공하는 방법, 클라이언트 장치, 채팅 서버, 시스템 및 기록매체 | |
CN102868766A (zh) | 一种实现远程控制的方法、系统和装置 | |
US12021821B2 (en) | Methods and apparatuses for managing data integration between an external email resource and a group-based communication system | |
KR102527601B1 (ko) | 서버 및 사용자 단말에서의 구독 채널 참조 기반의 주제별 메시지 채팅 방법 | |
KR101804054B1 (ko) | 메시지를 관리하는 메시지 서버 및 그 동작 방법 | |
US11916977B2 (en) | User-centric connections to a location comprising digital collaboration tools | |
CN103119892B (zh) | 在通用型即插即用使能的电话装置和广域网装置之间进行会议消息传递的系统和方法 | |
US20220353217A1 (en) | Online meeting phone and chat connectivity | |
KR20190136499A (ko) | 메시징 서비스 제공 장치 및 방법 | |
CN108173910B (zh) | 一种管理应用的方法和系统 | |
Pendov | Universal Interpersonal Communication Application Prototyping | |
KR20230034811A (ko) | 단체 대화방 메시지 삭제 처리 시스템 및 방법 | |
CN118646684A (zh) | 数据传输方法和装置、存储介质及电子设备 | |
JP4236165B2 (ja) | コンテンツ連携システム及びコンテンツ連携方法 |
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 | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20160713 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20170612 Year of fee payment: 5 |
|
LAPS | Lapse due to unpaid annual fee |