KR101083494B1 - 바이너리 패킷 중계 시스템 및 방법 - Google Patents

바이너리 패킷 중계 시스템 및 방법 Download PDF

Info

Publication number
KR101083494B1
KR101083494B1 KR20100057140A KR20100057140A KR101083494B1 KR 101083494 B1 KR101083494 B1 KR 101083494B1 KR 20100057140 A KR20100057140 A KR 20100057140A KR 20100057140 A KR20100057140 A KR 20100057140A KR 101083494 B1 KR101083494 B1 KR 101083494B1
Authority
KR
South Korea
Prior art keywords
packet
binary
http
unit
server
Prior art date
Application number
KR20100057140A
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 KR20100057140A priority Critical patent/KR101083494B1/ko
Priority to JP2011131170A priority patent/JP6043472B2/ja
Application granted granted Critical
Publication of KR101083494B1 publication Critical patent/KR101083494B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/08Protocols for interworking; Protocol conversion
    • 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
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Abstract

바이너리 패킷 중계 시스템 및 방법이 개시된다. 중계 시스템은 바이너리 프로토콜을 사용하는 어플리케이션 서버로부터 바이너리 패킷을 수신하는 바이너리 송수신부; 상기 바이너리 패킷을 HTTP 패킷으로 변환하는 변환부; 및 상기 HTTP 패킷을 HTTP 프로토콜을 사용하는 웹 서비스 서버로 전송하는 웹 송수신부를 포함한다.
중계 시스템에 의하면, 바이너리 프로토콜을 사용하는 어플리케이션 서버와 HTTP 프로토콜을 사용하는 웹 서비스 서버 간의 정보를 중계 함으로써 어플리케이션 서버에서 웹 서비스 서버를 용이하게 사용할 수 있다.

Description

바이너리 패킷 중계 시스템 및 방법{SYSTEM AND METHOD FOR BINARY PACKET RELAY}
본 발명은 바이너리 패킷 중계 시스템 및 방법에 관한 것으로써, 보다 상세하게는 서로 다른 프로토콜을 사용하는 서버들로부터 정보를 수신하고, 전송할 대상이 사용하는 프로토콜에 따라 변환하여 전송함으로써 정보를 중계할 수 있는 중계 시스템 및 방법에 관한 것이다.
온라인 게임의 발전에 따라 게임 중에도 게임상에서 웹 서비스를 사용하고자 하는 경우도 있고 웹 서비스 중에 게임을 제공하는 경우도 발생하였다.
그러나 게임을 실행하는 게임 서버와 웹 서비스를 실행하는 웹 서비스 서버는 서로 사용하는 프로토콜이 다르므로 중계하기 위한 시스템이 필요한 실정이다.
따라서, 비 동기 통신 기반의 게임 서버와 동기 통신 기반의 웹 서비스 서버 간의 정보를 중계함으로써 게임상에서도 웹 서비스를 용이하게 사용할 수 있는 시스템 및 방법이 요구된다.
본 발명은 바이너리 프로토콜을 사용하는 어플리케이션 서버와 HTTP 프로토콜을 사용하는 웹 서비스 서버 간의 정보를 중계 함으로써 어플리케이션 서버에서 웹 서비스 서버를 용이하게 사용할 수 있는 시스템 및 방법을 제공한다.
또한, 본 발명은 어플리케이션 서버와는 HTTP와 대응되는 바이너리 프로토콜을 사용하여 정보를 송수신함으로써 웹 서비스가 필요한 경우에 바이너리 패킷을 용이하게 HTTP 패킷으로 변환할 수 있는 시스템 및 방법을 제공한다.
본 발명의 일실시예에 따른 중계 서버는 바이너리 프로토콜을 사용하는 어플리케이션 서버로부터 바이너리 패킷을 수신하는 바이너리 송수신부; 상기 바이너리 패킷을 HTTP 패킷으로 변환하는 변환부; 및 상기 HTTP 패킷을 HTTP 프로토콜을 사용하는 웹 서비스 서버로 전송하는 웹 송수신부를 포함한다.
본 발명의 일실시예에 따른 패킷 중계 방법은 바이너리 프로토콜을 사용하는 어플리케이션 서버로부터 바이너리 패킷을 수신하는 단계; 상기 바이너리 패킷을 HTTP 패킷으로 변환하는 단계; 및 상기 HTTP 패킷을 HTTP 프로토콜을 사용하는 웹 서비스 서버로 전송하는 단계를 포함한다.
본 발명의 일실시예에 따르면, 바이너리 프로토콜을 사용하는 어플리케이션 서버와 HTTP 프로토콜을 사용하는 웹 서비스 서버 간의 정보를 중계 함으로써 어플리케이션 서버에서 웹 서비스 서버를 용이하게 사용할 수 있다.
또한, 본 발명의 일실시예에 따르면, 어플리케이션 서버와는 HTTP와 대응되는 바이너리 프로토콜을 사용하여 정보를 송수신함으로써 웹 서비스가 필요한 경우에 바이너리 패킷을 용이하게 HTTP 패킷으로 변환할 수 있다.
도 1은 본 발명의 일실시예에 따른 중계 시스템의 구성을 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 중계 서버의 세부 구성을 도시한 블록 다이어그램이다.
도 3은 본 발명의 일실시예에 따른 바이너리 송수신부의 세부 구성을 도시한 블록 다이어그램이다.
도 4는 본 발명의 일실시예에 따른 변환부의 세부 구성을 도시한 블록 다이어그램이다.
도 5는 본 발명의 일실시예에 따른 컨버터부의 세부 구성을 도시한 블록 다이어그램이다.
도 6은 본 발명의 컨버터부가 바이너리 패킷을 HTTP 패킷으로 변환하는 과정의 일례이다.
도 7은 본 발명의 일실시예에 따른 웹 송수신부의 세부 구성을 도시한 블록 다이어그램이다.
도 8은 본 발명의 일실시예에 따른 모니터링 서버의 세부 구성을 도시한 블록 다이어그램이다.
도 9는 본 발명의 일실시예에 따른 패킷 중계 방법을 도시한 플로우차트이다.
도 10은 본 발명의 일실시예에 따라 바이너리 패킷을 HTTP 패킷으로 변환하여 중계하는 방법을 도시한 플로우차트이다.
이하, 본 발명의 실시예를 첨부된 도면을 사용하여 상세하게 설명한다. 본 발명의 일실시예에 따른 중계 방법은 중계 시스템에 의해 수행될 수 있다.
도 1은 본 발명의 일실시예에 따른 중계 시스템의 구성을 도시한 도면이다.
본 발명의 일실시예에 따른 중계 시스템은 바이너리 프로토콜을 사용하는 어플리케이션 서버(110)와 HTTP 프로토콜을 사용하는 웹 서비스 서버(120) 간의 패킷 송수신을 중계하는 중계 서버(130) 및 중계 서버(130)를 모니터링하는 모니터링 서버(140)로 구성될 수 있다. 이때, 어플리케이션 서버(110)는 게임 서버일 수 있다.
이때, 중계 서버(130)는 어플리케이션 서버(110)과는 TCP로 연결되어 바이너리(Binary) HTTP 프로토콜 기반의 메시지를 송수신하고, 웹 서비스 서버(120)와는 표준 HTTP로 연결되어 HTTP 프로토콜 메시지를 송수신할 수 있다.
이때, 중계 서버(130)는 어플리케이션 서버(110)과는 영속 연결(permanent connection)되고, 웹 서비스 서버(120)과는 필요에 따라 연결(on-demand connection)될 수 있다.
또한, 중계 서버(130)는 어플리케이션 서버(110)로부터 수신한 바이너리 패킷을 HTTP 패킷으로 변환하여 웹 서비스 서버(120)로 전송하고, 웹 서비스 서버(120)로부터 수신한 HTTP 패킷을 바이너리 패킷으로 변환하여 어플리케이션 서버(110)로 전송할 수 있다.
중계 서버(130)의 상세 구성은 이하 도 2를 사용하여 상세히 설명한다.
모니터링 서버(140)는 JMX(Java Management eXtensions)를 사용하여 중계 서버(130)의 접속을 제어하고 모니터링할 수 있다.
모니터링 서버(140)의 상세 구성은 이하 도 8을 사용하여 상세히 설명한다.
도 2는 본 발명의 일실시예에 따른 중계 서버의 세부 구성을 도시한 블록 다이어그램이다.
도 2를 참고하면, 중계 서버(130)는 바이너리 송수신부(210), 변환부(220) 및 웹 송수신부(230)를 포함할 수 있다.
바이너리 송수신부(210)는 어플리케이션 서버(110)로부터 바이너리 패킷을 수신하여 변환부(220)로 전송하고, 변환부(220)에서 바이너리 패킷으로 변환된 웹 서비스 서버(120)의 요청을 어플리케이션 서버(110)로 전송할 수 있다.
바이너리 송수신부(210)의 구성은 이하 도 3을 사용하여 상세히 설명한다.
변환부(220)는 바이너리 송수신부(210)가 수신한 바이너리 패킷을 HTTP 패킷으로 변환하여 웹 송수신부(230)로 전송할 수 있다.
또한, 변환부(220)는 웹 송수신부(230)가 수신한 HTTP 패킷을 바이너리 패킷으로 변환하여 바이너리 송수신부(210)로 전송할 수도 있다. 이때, 모니터링 서버(140)는 도 2에 도시된 바와 같이 변환부(220)와 연결되어 변환 과정을 제어하고, 모니터링할 수 있다.
변환부(220)의 상세 구성은 이하 도 4를 사용하여 상세히 설명한다.
웹 송수신부(230)는 변환부(220)에서 변환된 HTTP 패킷을 웹 서비스 서버로 전송할 수 있다.
일례로 웹 송수신부(230)는 RESTful 웹서비스 구현을 위한 API와 웹클라이언트로 구성될 수 있다.
웹 송수신부(230)의 상세 구성은 이하 도 7을 사용하여 상세히 설명한다.
도 3은 본 발명의 일실시예에 따른 바이너리 송수신부의 세부 구성을 도시한 블록 다이어그램이다.
도 3을 참고하면, 바이너리 송수신부(210)는 TCP 서버(310), 세션 매니저(320), 및 TCP 클라이언트(330)로 구성될 수 있다.
이때, TCP 서버(310)는 어플리케이션 서버(110)로부터 TCP (transmission Control Protocol)을 사용하여 전송된 바이너리 패킷을 수신할 수 있다.
또한, TCP 클라이언트(320)는 TCP를 사용하여 변환부(220)에서 바이너리 패킷으로 변환된 웹 서비스 서버(120)의 요청을 어플리케이션 서버(110)로 전송할 수 있다.
그리고, 세션 메니저(320)는 어플리케이션 서버(110)과의 연결 세션을 관리하며 TCP 서버(310), 및 TCP 클라이언트(330)의 동작을 제어할 수 있다.
도 4는 본 발명의 일실시예에 따른 변환부의 세부 구성을 도시한 블록 다이어그램이다.
도 4를 참고하면, 변환부(220)는 코딩부(410), 로그 관리부(420), 컨버터부(430), ToWebHandler부(440), FromWebHandler부(450), 컨피그 관리부(460), 및 제어부(470)를 포함할 수 있다.
코딩부(410)는 바이너리 송수신부(210)가 수신한 바이너리 패킷을 디코딩하거나, 웹 송수신부(230)가 수신한 HTTP 패킷을 인코딩하여 기 설정된 데이터 포맷으로 변환할 수 있다.
일례로 코딩부(410)는 HTTP 패킷을 인코딩하여 Map 타입으로 변환할 수 있다. 이때, Map 객체는 HTTP요청 또는 응답에 대한 추상화된 모델을 각각 정의할 수 있다. 구체적으로 코딩부(410)는 요청, 또는 응답에 따라 기 정의된 모델로 변환하여 컨버터부(430)로 전송하면 컨버터부(430)이 수신한 모델을 사용하여 요청, 또는 응답에 대응하는 패킷을 생성할 수 있다.
이때, 코딩부(410)는 바이너리 송수신부(210)가 수신한 바이너리 패킷이나 웹 송수신부(230)가 수신한 HTTP 패킷을 로그 관리부(420)에 전송할 수 있다.
또한, 코딩부(410)는 기 설정된 데이터 포맷으로 변환한 모델을 로그 관리부(420)에 전송할 수도 있다.
로그 관리부(420)는 코딩부(410)가 전송한 정보를 로그로 설정하고 로깅(logging)하여 관리할 수 있다.
컨버터부(430)는 코딩 부가 디코딩한 바이너리 패킷을 HTTP 패킷으로 변환할 수 있다.
구체적으로 컨버터부(430)는 수신한 바이너리 패킷을 구성하는 적어도 하나의 파트를 추상화하여 각각의 추상 클래스로 정의하고, 정의된 추상 클래스를 조합하여 HTTP 패킷을 생성할 수 있다.
컨버터부(430)의 상세 구성과 동작은 이하 도 5와 도6을 사용하여 상세히 설명한다.
ToWebHandler부(440)는 컨버터(430)가 생성한 HTTP 패킷을 웹 송수신부(230)로 전송할 수 있다.
FromWebHandler부(450)는 웹 송수신부(230)로부터 전송된 웹 서비스 서버(120)의 요청을 수신하여 코딩부(410)로 전송할 수 있다.
컨피그 관리부(460)는 바이너리 송수신부(210), 웹 송수신부(230), 로그 코딩부(410), 관리부(420), 웹 핸들러(WebHandler), 제어부(480) 및 웹 핸들러의 처리 흐름에 대한 설정을 저장하고 관리할 수 있다. 이때, 웹 핸들러는 ToWebHandler부(440)와 FromWebHandler부(450)를 포함할 수 있다.
이때, 웹 핸들러는 체이닝(Chaining)되어 웹 서비스서버(110)로부터 HTTP 패킷을 수신하는 업스트림(upstream)과 웹 서비스 서버(120)에 HTTP 패킷을 전송하는 다운스트림(downstream)에 대한 처리를 수행할 수 있다.
제어부(470)는 Access Control Manager를 사용하여 상기 구성들의 동작을 제어하고, 상기 구성들의 동작을 모니터링 서버(140)로 전송할 수 있다.
도 5는 본 발명의 일실시예에 따른 컨버터부의 세부 구성을 도시한 블록 다이어그램이다.
도 5를 참고하면, 컨버터부(420)는 클래스 정의부(510), HTTP 패킷 생성부(520), 바이너리 파트 생성부(530), 및 바이너리 패킷 생성부(540)를 포함할 수 있다.
클래스 정의부(510)는 수신한 바이너리 패킷을 구성하는 적어도 하나의 파트를 추상화하여 각각의 추상 클래스로 정의할 수 있다.
TCP 기반의 바이너리 패킷은 각각의 의미를 갖는 복수의 파트로 구성될 수 있다.
이때, 클래스 정의부(510)는 바이너리 패킷의 파트를 추상화하여 바이너리 패킷 전체를 Packet 이라는 인터페이스로 정의하고, 상기 파트들을 각각 PacketPart 추상 클래스로 정의할 수 있다.
HTTP 패킷 생성부(520)는 클래스 정의부(510)에서 정의된 적어도 하나의 추상 클래스를 조합하여 어플리케이션 서버(110)에서 전송하고자 하는 메시지가 포함된 HTTP 패킷을 생성할 수 있다.
바이너리 파트 생성부(530)는 수신한 HTTP 패킷에 포함된 적어도 하나의 클래스에 포함된 정보를 확인하고, 상기 클래스에 대응하는 바이너리 패킷의 파트를 생성할 수 있다.
바이너리 패킷 생성부(540)는 바이너리 파트 생성부(530)에서 생성된 바이너리 패킷의 파트를 결합하여 웹 서비스 서버(120)의 요청이 포함된 바이너리 패킷을 생성할 수 있다.
도 6은 본 발명의 컨버터부가 바이너리 패킷을 HTTP 패킷으로 변환하는 과정의 일례이다.
어플리케이션 서버(110)으로부터 수신한 TCP 기반의 바이너리 패킷(610)은 도 6에 도시된 바와 같이 복수의 파트(611)로 구성될 수 있다.
이때, 클래스 정의부(510)는 바이너리 패킷의 파트(611)를 추상화하여 바이너리 패킷 전체를 Packet 이라는 인터페이스(620)로 정의하고, 파트(611)들을 각각 PacketPart 추상 클래스(621)로 정의할 수 있다. 이때, 각각의 추상 클래스는 대응하는 바이너리 패킷의 파트(611)의 디스크립션(Description)일 수 있다.
또한, HTTP 패킷 생성부(520)는 클래스 정의부(510)에서 정의된 추상 클래스(621)들을 조합하여 java클래스(630)를 생성할 수 있다. 이때, HTTP 패킷 생성부(520)가 생성한 java클래스(630)는 추상 클래스(621)들을 인용하는 문장(631)들을 포함할 수 있다.
다음으로 HTTP 패킷 생성부(520)는 java클래스(630)를 기초로 어플리케이션 서버(110)에서 전송하고자 하는 메시지가 포함된 HTTP 패킷을 생성할 수 있다.
그리고, 컨버터부가 HTTP 패킷을 바이너리 패킷으로 변환하는 과정은 상기 과정의 역순이다.
구체적으로 먼저, 바이너리 파트 생성부(530)는 수신한 HTTP 패킷에서 java클래스(630)를 복원할 수 있다.
다음으로 바이너리 파트 생성부(530)는, 기 설정된 라이브러리를 사용하여 java클래스(630)를 기초로 바이너리 패킷의 파트(611)를 생성할 수 있다.
이때, 라이브러리는 java클래스(630)에 대응하는 바이너리 패킷의 파트(611)에 대한 정보가 포함된 라이브러리일 수 있다.
마지막으로 바이너리 패킷 생성부(540)는 바이너리 파트 생성부(530)에서 생성된 바이너리 패킷의 파트(611)를 결합하여 웹 서비스 서버(120)의 요청이 포함된 바이너리 패킷(610)을 생성할 수 있다.
이때, Packet 인터페이스(620)는 serialize 메서드(method)와 deserialize 메서드를 포함할 수 있다.
이때, serialize는 자바객체를 바이너리 스트림으로 변환하는 메서드이며, deserialize는 바이너리 스트림을 자바 객체로 변환하는 메서드다.
또한, Packet 인터페이스(620)는 바이너리 패킷과 매칭되는 자바 타입을 messageType으로 저장할 수 있다.
그리고, PacketPart 추상 클래스(621)는 Packet(620)과 같이 serialize 메서드와 deserialize 메서드를 포함할 수 있다.
도 7은 본 발명의 일실시예에 따른 웹 송수신부의 세부 구성을 도시한 블록 다이어그램이다.
도 7을 참고하면, 웹 송수신부(230)는 웹 클라이언트(710), RESTful API부(720), ActionMapper부(730) 및 Servlet부(740)를 포함할 수 있다.
웹 클라이언트(710)는 ToWebHandler부(440)로부터 수신한 HTTP 패킷을 웹 서비스 서버(120)로 전송하고, 웹 서비스 서버(120)로부터 수신한 HTTP 패킷을 FromWebHandler부(450)로 전송할 수 있다. 이때, 웹 서비스 서버(120)로부터 수신한 HTTP 패킷은 웹 서비스 서버(120)의 요청 메시지일 수 있다.
RESTful API부(720)는 웹 서비스 서버(120)가 제공하는 웹 서비스를 RESTful 웹 서비스로 변환하여 구현할 수 있다.
구체적으로 RESTful API부(720)는 Lucy/Webwork 기반 Action에 Annotation을 추가함으로써 RESTful 웹 서비스를 구현할 수 있다.
이때, RESTful API부(720)는 지정한 클래스가 RESTful Resource 임을 나타내는 @RestfulResource 함수, 및 메서드가 처리할 HTTP Method를 지정하는 @Get, @Post, @Put, @Delete 함수를 포함할 수 있다.
또한, RESTful API부(720)는 RESTful HTTP 요청 및 응답 처리를 위한 유틸리티 클래스인RestfulServiceUtil을 포함할 수도 있다.
ActionMapper부(730)는 RESTful 요청에 대한 액션 맵핑(Action Mapping)을 할 수 있다.
구체적으로 ActionMapper부(730)는 Lucy의 DispatchActionMapper를 상속하는 ActionMapper를 구현하여 Action Mapping을 할 수 있다.
또한, ActionMapper부(730)는 RestfulEnabledDispatchActionMapper, RestfulActionMapper, RestfulActionMap을 포함할 수 있다.
이때, RestfulActionInfoManager는 xwork action class 중 @RestfulResouce로 지정된 Action Class들의 정보를 로드하고 HTTP Method, URI, Accept헤더를 인자로 매핑되는 Action의 정보를 반환할 수 있다.
또한, RestfulActionMapper는 HTTP 요청이 RESTful 요청인 경우 매칭되는 action 정보에 대하여 mapping 정보를 생성하여 반환할 수 있다. 이때, RestfulActionMapper는 HTTP 요청이 RESTful 요청이 아닌 경우 바로 null을 반환할 수 있다.
그리고, RestfulEnabledDispatchActionMapper는 HTTP 요청에 대해 알맞은 매핑을 생성하여 반환할 수 있다. 이때, RestfulEnabledDispatchActionMapper는 RESTful 요청이 아닌 경우 DispatchActionMapper로부터 mapping 정보를 수집하여 반환할 수 있다.
Servlet부(740)는 ActionMapper부(730)에서 처리된 Action Mapping 결과를 웹 서비스에서 사용하는 데이터 형식인 JSON으로 변환하여 Servlet Response Stream에 삽입할 수 있다. 이때, Servlet Response Stream은 HTTP 요청에 따른 응답 스트림일 수 있다.
도 8은 본 발명의 일실시예에 따른 모니터링 서버의 세부 구성을 도시한 블록 다이어그램이다.
도 8을 참고하면, 모니터링 서버(140)는 모니터링부(710), 표시부(820) 및 제어부(830)를 포함할 수 있다.
모니터링부(810)는 중계 서버(130)의 모니터링과 제어를 위한 JMX 컴포넌트일 수 있다.
이때 모니터링부(810)는 중계 서버(130)의 변환부(220)에서 Memory, Threads, Classes, CPU, VM Summary, Packet Throughput, Connection Status의 중 적어도 하나의 변화를 모니터링 할 수 있다.
표시부(820)는 모니터링부(810)가 모니터링한 정보를 관리자에게 표시할 수 있다.
제어부(830)는 제어부(470)의 접속 제어(Access Control)를 관리하고, 모니터링부(810)의 JMX기반 모니터링을 제어하기 위한 웹 어플리케이션일 수 있다.
이때, 제어부(830)는 WSM Admin을 기초로 생성된 Admin Web일 수 있다.
또한, 제어부(830)는 모니터링부(810)에 포함되어 모니터링을 제어할 수도 있다.
도 9는 본 발명의 일실시예에 따른 패킷 중계 방법을 도시한 플로우차트이다.
단계(S910)에서 변환부(220)는 변환하고자 하는 패킷을 수신할 수 있다.
일례로, 변환부(220)는 바이너리 송수신부(210)가 어플리케이션 서버(110)로부터 수신한 바이너리 패킷이나, 웹 송수신부(230)가 웹 서비스 서버(120)으로부터 수신한 HTTP 패킷을 수신할 수 있다.
단계(S920)에서 코딩부(410)는 단계(S910)에서 수신한 패킷을 코딩하여 상기 패킷에 포함된 정보를 확인할 수 있다.
일례로, 코딩부(410)는 바이너리 패킷을 디코딩하여 바이너리 패킷에 포함된 정보를 확인하거나, HTTP 패킷을 인코딩하여 HTTP 패킷에 포함된 정보를 확인할 수 있다.
단계(S930)에서 로그 관리부(420)는 단계(S920)에서 확인된 정보를 로그로 저장하여 관리할 수 있다.
단계(S940)에서 컨버터부(430)는 단계(S920)에서 확인된 정보를 단계(S910)에서 수신한 패킷의 종류에 따라 변환할 수 있다.
일례로, 컨버터부(430)는 단계(S910)에서 바이너리 패킷을 수신하였으면 수신한 바이너리 패킷을 HTTP 패킷으로 변환하고, 단계(S910)에서 HTTP 패킷을 수신하였으면, 수신한 HTTP 패킷을 바이너리 패킷으로 변환할 수 있다.
단계(S950)에서 변환부(220)는 단계(S940)에서 변환된 패킷을 송신할 수 있다.
일례로, 변환부(220)는 단계(S940)에서 바이너리 패킷으로 변환된 웹 서비스 서버(120)의 요청을 바이너리 송수신부(210)를 통하여 어플리케이션 서버(110)로 전송할 수 있다.
다른 일례로, 변환부(220)는 단계(S940)에서 HTTP 패킷으로 변환된 어플리케이션 서버(110)의 요청을 웹 송수신부(230)를 통하여 웹 서비스 서버(120)로 전송할 수도 있다.
도 10은 본 발명의 일실시예에 따라 바이너리 패킷을 HTTP 패킷으로 변환하여 중계하는 방법을 도시한 플로우차트이다.
단계(S1010)에서 바이너리 송수신부(210)의 세션 매니저(320)는 어플리케이션 서버(110)으로부터 바이너리 패킷이 포함된 스트림을 수신할 수 있다.
단계(S1020)에서 세션 매니저(320)는 단계(S1010)에서 수신한 바이너리 패킷을 코딩부(410)로 전송하며 디코딩을 요청할 수 있다.
단계(S1030)에서 코딩부(410)는 단계(S1020)에서 수신한 바이너리 패킷을 디코딩하여 바이너리 패킷에 포함된 정보를 확인하고, 확인된 정보를 로그 관리부(420)로 전송할 수 있다. 이때, 로그 관리부(420)는 수신한 정보를 로그로 저장하여 관리할 수 있다.
단계(S1040)에서 코딩부(410)는 컨버터부(430)가 단계(S1020)에서 확인된 정보를 변환하여 생성한 HTTP 패킷을 세션 매니저(320)로 전송할 수 있다.
단계(S1045)에서 세션 매니저(320)는 단계(S1040)에서 수신한 HTTP 패킷을 웹 핸들러(WebHandler) 중 ToWebHandler부(440)로 전송할 수 있다.
단계(S1050)에서 ToWebHandler부(440)는 단계(S1045)에서 수신한 HTTP 패킷을 웹 송수신부(230)의 웹 클라이언트부(610)로 전송할 수 있다.
단계(S1055)에서 웹 핸들러(WebHandler) 중 FromWebHandler부(450)는 웹 클라이언트부(610)로부터 단계(S1050)에서 전송한 정보에 대한 응답을 수신할 수 있다.
단계(S1060)에서 FromWebHandler부(450)는 단계(S1055)에서 수신한 응답을 세션 매니저(320)로 전송할 수 있다.
단계(S1070)에서 세션 매니저(320)는 단계(S1060)에서 수신한 응답을 코딩부(410)로 전송하며 인코딩을 요청할 수 있다.
단계(S1080)에서 코딩부(410)는 단계(S1070)에서 수신한 응답을 인코딩하여 응답의 HTTP 패킷에 포함된 정보를 확인하고, 확인된 정보를 로그 관리부(420)로 전송할 수 있다. 이때, 로그 관리부(420)는 수신한 정보를 로그로 저장하여 관리할 수 있다.
단계(S1090)에서 코딩부(410)는 컨버터부(430)가 단계(S1080)에서 확인된 정보를 변환하여 생성한 바이너리 패킷을 세션 매니저(320)로 전송할 수 있다.
단계(S1095)에서 세션 매니저(320)는 단계(S1090)에서 수신한 바이너리 패킷을 어플리케이션 서버(110)로 전송할 수 있다.
결국, 본 발명의 일실시예에 따르면, 바이너리 프로토콜을 사용하는 어플리케이션 서버와 HTTP 프로토콜을 사용하는 웹 서비스 서버 간의 정보를 중계 함으로써 어플리케이션 서버에서 웹 서비스 서버를 용이하게 사용할 수 있다.
또한, 어플리케이션 서버와는 HTTP와 대응되는 바이너리 프로토콜을 사용하여 정보를 송수신함으로써 웹 서비스가 필요한 경우에 바이너리 패킷을 용이하게 HTTP 패킷으로 변환할 수 있다.
그리고, 웹 서비스 서버와는 RESTful HTTP를 사용하여 정보를 송수신함으로써 기존에 사용하던 웹 서비스를 최소한의 변경만으로 사용할 수 있다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
130: 중계 서버
140: 모니터링 서버
220: 변환부
230: 웹 송수신부
410: 코딩부
420: 로그 관리부
430: 컨버터부

Claims (10)

  1. 바이너리 프로토콜을 사용하는 어플리케이션 서버로부터 바이너리 패킷을 수신하는 바이너리 송수신부;
    상기 바이너리 패킷을 HTTP 패킷으로 변환하는 변환부; 및
    상기 HTTP 패킷을 HTTP 프로토콜을 사용하는 웹 서비스 서버로 전송하는 웹 송수신부
    를 포함하고,
    상기 변환부는,
    상기 수신한 바이너리 패킷을 디코딩하는 코딩부;
    상기 코딩부가 디코딩한 바이너리 패킷의 정보를 로그로 관리하는 로그 관리부; 및
    상기 코딩부가 디코딩한 바이너리 패킷을 HTTP 패킷으로 변환하는 컨버터부
    를 포함하는 중계 서버.
  2. 삭제
  3. 제1항에 있어서,
    상기 컨버터부는,
    수신한 바이너리 패킷을 구성하는 적어도 하나의 파트를 추상화하여 각각의 추상 클래스로 정의하는 클래스 정의부; 및
    적어도 하나의 상기 추상 클래스를 조합하여 상기 HTTP 패킷을 생성하는 HTTP 패킷 생성부
    를 포함하는 중계 서버.
  4. 제1항에 있어서,
    상기 변환부는,
    상기 웹 송수신부가 상기 웹 서비스 서버로부터 수신한 HTTP 패킷을 바이너리 패킷으로 변환하여 상기 어플리케이션 서버로 전송하는 것을 특징으로 하는 중계 서버.
  5. 제4항에 있어서,
    상기 컨버터부는,
    수신한 HTTP 패킷에 포함된 적어도 하나의 클래스에 대응하는 바이너리 패킷의 파트를 생성하는 바이너리 파트 생성부; 및
    생성한 바이너리 패킷의 파트를 결합하여 바이너리 패킷을 생성하는 바이너리 패킷 생성부
    를 포함하는 중계 서버.
  6. 바이너리 프로토콜을 사용하는 어플리케이션 서버로부터 바이너리 패킷을 수신하는 단계;
    상기 바이너리 패킷을 HTTP 패킷으로 변환하는 단계; 및
    상기 HTTP 패킷을 HTTP 프로토콜을 사용하는 웹 서비스 서버로 전송하는 단계
    를 포함하고,
    상기 변환하는 단계는,
    상기 수신한 바이너리 패킷을 디코딩하는 단계;
    디코딩한 바이너리 패킷의 정보를 로그로 저장하는 단계; 및
    상기 디코딩한 바이너리 패킷을 HTTP 패킷으로 변환하는 단계
    를 포함하는 패킷 중계 방법.
  7. 삭제
  8. 제6항에 있어서,
    상기 HTTP 패킷으로 변환하는 단계는,
    수신한 바이너리 패킷을 구성하는 적어도 하나의 파트를 추상화하여 각각의 추상 클래스로 정의하는 단계; 및
    적어도 하나의 상기 추상 클래스를 조합하여 상기 HTTP 패킷을 생성하는 단계
    를 포함하는 패킷 중계 방법.
  9. 제6항에 있어서,
    상기 변환하는 단계는,
    상기 웹 서비스 서버로부터 수신한 HTTP 패킷을 바이너리 패킷으로 변환하여 상기 어플리케이션 서버로 전송하는 것을 특징으로 하는 패킷 중계 방법.
  10. 제9항에 있어서,
    상기 변환하는 단계는,
    수신한 HTTP 패킷에 포함된 적어도 하나의 클래스에 대응하는 바이너리 패킷의 파트를 생성하는 단계; 및
    생성한 바이너리 패킷의 파트를 결합하여 바이너리 패킷을 생성하는 단계
    를 포함하는 패킷 중계 방법.
KR20100057140A 2010-06-16 2010-06-16 바이너리 패킷 중계 시스템 및 방법 KR101083494B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR20100057140A KR101083494B1 (ko) 2010-06-16 2010-06-16 바이너리 패킷 중계 시스템 및 방법
JP2011131170A JP6043472B2 (ja) 2010-06-16 2011-06-13 バイナリパケット中継システムおよび方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20100057140A KR101083494B1 (ko) 2010-06-16 2010-06-16 바이너리 패킷 중계 시스템 및 방법

Publications (1)

Publication Number Publication Date
KR101083494B1 true KR101083494B1 (ko) 2011-11-16

Family

ID=45397723

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20100057140A KR101083494B1 (ko) 2010-06-16 2010-06-16 바이너리 패킷 중계 시스템 및 방법

Country Status (2)

Country Link
JP (1) JP6043472B2 (ko)
KR (1) KR101083494B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070014307A1 (en) * 2005-07-14 2007-01-18 Yahoo! Inc. Content router forwarding

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7441185B2 (en) * 2005-01-25 2008-10-21 Microsoft Corporation Method and system for binary serialization of documents
JP2009011712A (ja) * 2007-07-09 2009-01-22 Koei:Kk オンラインゲームシステム、中継サーバ、オンラインゲーム提供方法およびオンラインゲーム提供プログラム
JP4705656B2 (ja) * 2008-04-22 2011-06-22 エヌ・ティ・ティ・コミュニケーションズ株式会社 アドレス変換装置、アドレス変換プログラム
FI123499B (fi) * 2008-05-05 2013-06-14 Sensinode Oy Menetelmä ja laite viestien prosessoimiseksi

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070014307A1 (en) * 2005-07-14 2007-01-18 Yahoo! Inc. Content router forwarding

Also Published As

Publication number Publication date
JP2012003763A (ja) 2012-01-05
JP6043472B2 (ja) 2016-12-14

Similar Documents

Publication Publication Date Title
CN105453047B (zh) 提供物联网(iot)适配服务的系统和方法
CN113132376B (zh) 媒体数据处理方法及装置、系统、电子设备和存储介质
KR101201140B1 (ko) 요구-응답 전송 프로토콜들에 의한 신뢰성 있는 단방향메시징
US20110087915A1 (en) Hybrid reliable streaming protocol for peer-to-peer multicasting
CN112532673B (zh) 消息发送方法及装置、计算机可读存储介质、电子设备
US10536560B2 (en) System and method for implementing augmented object members for remote procedure call
WO2021008567A1 (zh) 基于全双工通信协议的请求传输方法及装置
CN107295003B (zh) 一种数据传输方法、装置及系统
KR100736081B1 (ko) 웹 서비스 제공 장치, 웹 서비스 요청 장치, 웹 서비스제공 방법 및 웹 서비스 요청 방법
CN110557321B (zh) 一种信息传输方法、网络设备及终端
US10938960B2 (en) System and method for implementing augmented object members for remote procedure call
KR101083494B1 (ko) 바이너리 패킷 중계 시스템 및 방법
US11929933B2 (en) Ephemeral data stream routing service
CN116800787A (zh) 一种基于以太网通讯协议的车载通信方法及系统
CN112532534B (zh) 一种数据传输方法、装置以及计算机可读存储介质
CN111953640A (zh) 通信方法、通信系统、云节点和可读存储介质
Puripunpinyo et al. Design, prototype implementation, and comparison of scalable web-push architectures on Amazon web services using the Actor model
CN106534052B (zh) 一种通信处理方法及电子设备
CN110008032A (zh) 一种通信方式的实现方法及电子设备
CN115756771B (zh) 微服务化的前置系统、工作流调度方法及装置
CN114448652B (zh) 进行加密通信的方法、装置、设备和存储介质
Nawrocki et al. Notification methods in wireless systems
Mathkar et al. Comparative Study of IoT Protocols and Classification of Cloud Platforms
Kilic et al. Low Latency Reliable Data Sharing Mechanism for UAV Swarm Missions
CN117956034A (en) Communication method, device and system based on NETCONF protocol

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20140925

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150924

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160928

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170928

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20181001

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20190925

Year of fee payment: 9