KR101001035B1 - 터미널 환경의 서버 기반 컴퓨팅 시스템에서 다수의 사용자가 동일 ip접속으로 동일 응용 프로그램 실행시 충돌 오류를 방지하기 위한 가상 ip의 동적 할당 방법 및이를 위한 터미널 서버 장치 - Google Patents

터미널 환경의 서버 기반 컴퓨팅 시스템에서 다수의 사용자가 동일 ip접속으로 동일 응용 프로그램 실행시 충돌 오류를 방지하기 위한 가상 ip의 동적 할당 방법 및이를 위한 터미널 서버 장치 Download PDF

Info

Publication number
KR101001035B1
KR101001035B1 KR1020080088138A KR20080088138A KR101001035B1 KR 101001035 B1 KR101001035 B1 KR 101001035B1 KR 1020080088138 A KR1020080088138 A KR 1020080088138A KR 20080088138 A KR20080088138 A KR 20080088138A KR 101001035 B1 KR101001035 B1 KR 101001035B1
Authority
KR
South Korea
Prior art keywords
terminal
virtual
server
application
session
Prior art date
Application number
KR1020080088138A
Other languages
English (en)
Other versions
KR20100029379A (ko
Inventor
최백준
신승환
장호진
Original Assignee
최백준
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 최백준 filed Critical 최백준
Priority to KR1020080088138A priority Critical patent/KR101001035B1/ko
Publication of KR20100029379A publication Critical patent/KR20100029379A/ko
Application granted granted Critical
Publication of KR101001035B1 publication Critical patent/KR101001035B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses
    • H04L61/5014Internet protocol [IP] addresses using dynamic host configuration protocol [DHCP] or bootstrap protocol [BOOTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/12Arrangements for remote connection or disconnection of substations or of equipment thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5061Pools of addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols

Landscapes

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

Abstract

본 발명은 터미널 환경의 서버 기반 컴퓨팅 시스템에서 가상 IP의 동적 할당 방법 및 이를 위한 터미널 서버 장치에 관한 것으로, 본 발명에 따른 원격 접속한 터미널 단말로 터미널 서비스를 제공하는 터미널 서버 장치는, 가상 IP 풀(Pool)을 참조하여 가상 IP를 할당하는 가상 IP 에이전트; 및 할당 가능한 가상 IP를 저장하고, 터미널 단말의 자체 오리지널 IP와 대응하여 그 터미널 단말로 할당한 가상 IP를 저장하는 가상 IP DB; 및 상기 터미널 단말을 위한 독립된 터미널 세션을 생성하고, 해당 터미널 세션에서 사용자의 요청에 따라 특정 애플리케이션이 실행되면, 상기 가상 IP 에이전트로부터 가상 IP를 할당받아 가상 IP에 근거하여 외부의 애플리케이션 서버로 접속하는 터미널 서비스 실행부;를 포함하는 것을 특징으로 한다. 터미널 환경에서 클라이언트가 인터넷을 통하여 특정 서비스를 제공받고자 할 때 해당 어플리케이션 서버에서 IP 중복 제한 등의 옵션이 설정된 경우, 가상 IP를 동적으로 할당해 줌으로써 사용자는 IP 제한을 받지 않는 원활한 서비스를 제공받을 수 있다.
가상 IP, 터미널 서비스, 터미널 서버, 세션, 가상 IP 에이전트

Description

터미널 환경의 서버 기반 컴퓨팅 시스템에서 다수의 사용자가 동일 IP접속으로 동일 응용 프로그램 실행시 충돌 오류를 방지하기 위한 가상 IP의 동적 할당 방법 및 이를 위한 터미널 서버 장치{METHOD FOR ASSIGNING DYNAMICALLY VIRTUAL IP IN SERVER BASED COMPUTING SYSTEM OF TERMINAL ENVIRONMENT AND TERMINAL SERVER APPARATUS THEREFOR}
본 발명은 터미널 환경의 서버 기반 컴퓨팅 시스템에 관한 것으로, 보다 구체적으로 터미널 서버에서 원격 접속한 터미널 단말들이 세션별로 필요한 애플리케이션 구동시 IP의 중복으로 인한 충돌 및 오류를 방지하고 원활한 서비스를 제공받기 위한 가상 IP를 동적 할당하는 기술에 관한 것이다.
터미널 환경의 서버 기반 컴퓨팅 시스템이란 터미널 단말을 이용하여 서버에 원격 접속하여 서버의 리소스를 클라이언트에서 사용할 수 있도록 하는 시스템이다. 즉, 모든 클라이언트 응용 프로그램이 터미널 단말에 설치되지 않고 서버에 설치되고, 서버의 응용 프로그램 실행 결과 화면만이 터미널 단말로 전송되어, 사용자 측면에서 모든 응용 프로그램이 터미널 단말에서 수행되고 있는 것처럼 보이게 하는 시스템이다.
클라이언트가 원격으로 서버에 접속하게 되면, 서버는 접속된 사용자 환경을 세션과 프로필로 구분하여 세션 간에 상호 간섭 없이 독립된 환경을 유지시키고, 클라이언트는 제약없이 서버의 리소스를 사용할 수 있게 된다. 이러한 이유로 터미널 서비스는 원격 서버 관리용으로 처음에는 사용하였으나 이를 응용하여 응용 프로그램을 서비스하는 형태로 발전해 왔다..
서버와 클라이언트 간에는 실제 데이터가 송수신되는 것이 아니고 모든 작업은 서버에서 이루어지며 클라이언트로는 서버 작업의 결과값만 비트맵 형태로 프레임이 나뉘어 전달된다. 모든 작업이 서버에서 이루어지기 때문에 실행된 프로그램이 사용하는 CPU, 메모리 등은 서버의 자원을 사용하며 클라이언트의 자원은 클라이언트의 구동에만 필요한 자원이 요구된다.
이러한 터미널 서비스 환경에서 응용 프로그램 서비스를 하게 되면 100% 서버에서 작업이 이루어짐으로 작업 데이터를 외부에 유출할 수 없기 때문에 보안이 매우 높은 장점이 있다.
그런데 터미널 서비스는 터미널 서버에 다수의 클라이언트가 접속하여 서비스를 이용하는 형태이므로, 클라이언트들은 하나의 IP(즉, 터미널 서버 IP)를 통하여 인터넷에 접속하게 된다. 하지만 상기 클라이언트로 특정 서비스(예를 들어, 게임, 주식매매)를 제공하는 애플리케이션 서버에서 IP 중복 제한 등의 옵션이 설정된 경우, 상기 터미널 서버를 통해 상기 애플리케이션 서버로 접속한 터미널 단말들은 IP 중복으로 인하여, 특정 서비스를 제공받지 못할 수 있다.
예를 들어, 제 1 터미널 단말에서 터미널 서버를 통하여 인터넷 게임 애플리케이션을 구동한 경우, 게임 애플리케이션 서버는 상기 제 1 터미널 단말의 IP를 터미널 서버의 IP로 인식한다. 그리고 제 2 터미널 단말이 동일한 터미널 서버를 통하여 동일한 게임 애플리케이션을 구동한 경우, 상기 게임 애플리케이션 서버는 상기 제 2 터미널 단말의 IP도 터미널 서버 IP로 인식한다. 이에 따라, 상기 게임 애플리케이션 서버는 제 1 터미널 단말과 제 2 터미널 단말의 IP가 중복되었음을 인지하고, 상기 터미널 단말로 제공되는 서비스를 중단하거나, 이 중 한 터미널 단말에게만 서비스를 제공한다.
본 발명은 상기 문제점을 해결하기 위하여 제안된 것으로, 터미널 환경의 서버 기반 컴퓨팅 환경에서 다수의 클라이언트가 접속하여 IP 중복으로 인해 사용자에게 서비스가 제한되는 것을 방지하기 위하여 가상 IP를 동적으로 할당하는 방법 및 이를 위한 터미널 서버 장치를 제공하는데 그 목적이 있다.
본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있으며, 본 발명의 실시예에 의해 보다 분명하게 알게 될 것이다. 또한, 본 발명의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.
상기 목적을 달성하기 위한 본 발명의 제 1 측면에 따른, 원격 접속한 터미널 단말로 터미널 서비스를 제공하는 터미널 서버 장치는, 가상 IP 풀(Pool)을 참조하여 가상 IP를 할당하는 가상 IP 에이전트; 할당 가능한 상기 가상 IP 풀을 저장하고, 터미널 단말의 자체 오리지널 IP와 대응하여 그 터미널 단말로 할당된 가상 IP를 저장하는 가상 IP DB; 및 상기 터미널 단말을 위한 독립된 터미널 세션을 생성하고, 해당 터미널 세션에서 사용자의 요청에 따라 특정 애플리케이션이 실행되면, 상기 가상 IP 에이전트로부터 가상 IP를 할당받아 상기 가상 IP DB에 저장하고, 그 할당된 가상 IP에 근거하여 외부의 애플리케이션 서버로 접속하는 터미널 서비스 실행부;를 포함하는 것을 특징으로 한다.
상기 목적을 달성하기 위한 본 발명의 제 2 측면에 따른, 원격 접속한 터미널 단말로 터미널 서비스를 제공하는 터미널 서버 장치에서 가상 IP의 동적 할당 방법은, 상기 터미널 단말의 접속에 따라 독립된 터미널 세션을 생성하는 단계; 상기 터미널 세션에서 사용자의 요청에 따라 특정 애플리케이션을 실행하는 단계; 가상 IP 풀(Pool)을 참조하여 상기 터미널 세션에 대한 가상 IP를 할당하는 단계; 및 할당된 가상 IP에 근거하여 외부의 애플리케이션 서버에 접속하는 단계;를 포함하 는 것을 특징으로 한다.
본 발명은 터미널 세션별로 웹 애플리케이션 구동에 필요한 가상 IP를 할당하고, 상기 할당한 가상 IP를 근거로 애플리케이션 서버로 접근하여 IP 중복으로 인한 서비스 제한을 방지한다. 이에 따라, 터미널 서비스를 제공받는 사용자는 사용자 인증 처리, DB 호출, 위치 확인 등의 단일 IP 주소만 지원하여 사용이 불가능했던 애플리케이션을 제한받지 않고 이용할 수 있게 된다.
상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일 실시예를 상세히 설명하기로 한다.
도 1은 본 발명에 일 실시예에 따른 터미널 서비스 시스템의 구성을 나타내는 도면이다.
도 1에 도시된 바와 같이, 본 실시예에 따른 터미널 시스템은 터미널 단말(100-1,..,100-N), 터미널 서버(300) 및 애플리케이션 서버(500-1,..., 500-N)를 포함한다. 상기 터미널 단말(100)과 상기 터미널 서버(300)는 네트워크(200)로 통 해 연결되고, 상기 터미널 서버(300)와 상기 애플리케이션 서버(500)는 인터넷(400)을 통해 연결된다.
터미널 단말(100)은 네크워크(200)를 통해 터미널 서버(300)에 접속하여, 인터넷 접속, 인터넷 게임, 워드프로세서 등의 애플리케이션을 실행하여, 그 애플리케이션이 실행된 결과 화면을 수신한다.
터미널 서버(300)는 접속된 터미널 단말(100)에 대한 터미널 세션을 생성하여 독립된 환경을 유지하며, 응용 프로그램을 실행하여 그 실행 결과 화면을 터미널 단말(100)로 전송한다. 아울러, 터미널 서버(300)는 터미널 단말(100)로부터 입력장치(예컨대, 키보드, 마우스 등)의 조작신호를 수신하여, 그 조작신호에 따라 응용 프로그램을 처리하여 그에 따른 실행 결과 화면을 다시 터미널 단말(100)로 전송한다. 한편, 터미널 서버(300)는 터미널 단말(100)로부터 인터넷의 접속이 필요한 애플리케이션 구동이 요청되면, 해당 애플리케이션 서버(500)와 접속하여 요구되는 데이터(예를 들어, 파일 업데이트, 보안 데이터)를 수신하여, 그 데이터를 근거로 실행된 애플리케이션 화면을 터미널 단말(100)로 전송한다.
도 1을 참조하면, 터미널 서버(300)는 가상 IP 데이터베이스(330, 이하 "가상 IP DB"라 칭함), 사용자 모드(310)에 속하는 가상 IP 에이전트(311), 터미널 서비스 실행부(312) 및 커널 모드(320)에 속하는 IP 필터링부(321)를 포함한다. 상기 사용자 모드(310)는 각 사용자의 환경 정보 및 각종 애플리케이션을 저장하고, 터미널 단말(100)과 형성된 세션을 통하여 애플리케이션의 실행 화면을 전송한다.
터미널 서비스 실행부(312)는 터미널 단말(100)이 네트워크(200)를 통해 최 초 접속하면, 상기 터미널 단말(100)을 인증하여 터미널 세션을 생성하고, 가상 화면(예컨대, 윈도우 바탕화면)을 터미널 단말(100)로 전송한다. 또한, 터미널 서비스 실행부(312)는 접속 터미널 단말(100)마다 터미널 세션을 생성하여 독립된 환경을 유지하며, 상기 터미널 세션을 통하여 애플리케이션 실행 화면을 터미널 단말(100)로 전송한다. 아울러, 터미널 서비스 실행부(312)는 상기 애플리케이션 실행 화면에서의 사용자 입력을 터미널 단말(100)로부터 수신하고 그 사용자 입력에 따라 애플리케이션을 제어하여 그에 따른 실행 결과 화면을 터미널 단말(100)로 전송한다.
한편, 터미널 서비스 실행부(312)는 세션 연결된 터미널 단말(100)로부터 애플리케이션 구동 요청을 수신하면, 상기 애플리케이션의 가상 IP의 필요성 여부를 판단한다. 즉, 터미널 서비스 실행부(312)는 IP 중복을 허용하지 않은 애플리케이션 목록을 저장하고, 터미널 단말(100)로부터 애플리케이션 구동 요청이 수신되면, 그 구동 요청된 애플리케이션이 상기 IP 중복 미허용 애플리케이션 목록에 존재하는 여부를 확인한다.
터미널 서비스 실행부(312)는 구동 요청된 애플리케이션이 가상 IP가 필요한 것으로 판별되면, 가상 IP 에이전트(311)로부터 터미널 세션의 가상 IP를 할당받아 그 가상 IP를 근거로 애플리케이션 서버(500)로 접속한 후, 요구되는 데이터를 수신한다. 반면, 터미널 서비스 실행부(312)는 구동 요청된 애플리케이션이 가상 IP가 불필요한 것으로 판별되면, 터미널 서버(300)의 자체 IP를 이용하여 외부의 애플리케이션 서버(500)와 접속하여 데이터를 수신한다.
또한, 터미널 서비스 실행부(312)는 터미널 단말(100)로부터 애플리케이션 구동 중지 요청을 수신하면, 그 애플리케이션이 IP 중복 미허용 애플리케이션 목록에 포함되는지를 확인하고, 포함된 경우 가상 IP 에이전트(330)로 상기 터미널 단말(100)의 가상 IP 회수를 요청한다.
가상 IP DB(330)은 할당 가능한 가상 IP를 저장하고, 터미널 단말(100)의 자체 오리지널 IP와 대응하여 그 터미널 단말(100)로 할당한 가상 IP를 저장한다.
도 2는 가상 IP DB(330)에 저장된 테이블을 나타내는 도면으로, 도 2에 도시된 바와 같이 가상 IP DB(330)는 터미널 단말(100)의 오리지널 IP(220)와 그 터미널 단말(100)에 할당한 가상 IP(230), 애플리케이션 식별자(240)를 매핑되어 저장하고, 아울러 할당가능한 가상 IP(210)도 저장한다.
가상 IP 에이전트(311)는 가상 IP DB(330)를 관리하며, 터미널 서비스 실행부(312)로부터 가상 IP의 할당을 요청받으면, 가상 IP DB(330)를 참조하여 미할당된 가상 IP 하나를 추출하고, 그 추출한 가상 IP(230), 단말 오리지널 IP(220), 애플리케이션 식별자(240)를 매핑하여 가상 IP DB(330)에 저장한다. 아울러, 가상 IP 에이전트(311)는 상기 할당한 가상 IP를 터미널 서비스 실행부(312)로 전달한다.
또한, 가상 IP 에이전트(311)는 네트워크 인터페이스 카드(Network Interface Card, 이하 "NIC"라 칭함)에 상기 할당한 가상 IP를 설정한다. 즉, 가상 IP 에이전트(311)는 NIC에 설정된 터미널 서버(300)의 자체 IP 이외에, 터미널 단말(100)의 세션에 할당한 IP를 추가로 설정하여, 한 NIC 카드에 다수개의 IP가 설정되도록 한다. 또는, 가상 IP 에이전트(311)는 IP가 미설정된 다른 NIC에 상기 할 당한 IP를 설정한다.
한편, 가상 IP 에이전트(311)는 애플리케이션 구동 중지 요청에 따라 터미널 서비스 실행부(312)로부터 터미널 단말(100)의 가상 IP 회수가 요청되면, 가상 IP DB(330)의 테이블에서 구동 중지 요청된 애플리케이션 식별자, 상기 터미널 단말(100)의 오리지널 IP, 터미널 단말(100)의 세션에 할당한 가상 IP와 일치하는 행(row)을 삭제한다.
상기 커널 모드(320)는 터미널 OS의 코어 영역으로서, 자원 관리, 보안, 프로세스의 스케줄링 관리, 하드웨어 인터페이스 제공 등을 수행한다. 또한, 커널 모드(320)는 윈도우 소켓 기반으로 사용자 모드(310)로 API(Application Programming Interface)를 제공하는 TDI(Transport Driver Interface), 상기 TDI에 대해 인터페이스를 제공하며 TCP/IP, UDP 등의 프로토콜을 구현하며 데이터그램을 규격화된 단위로 구성하여 전송하는 NDIS(Network Driver Interface Specification)를 포함한다. 커널 모드(320)는 상기 TDI와 NDIS을 통하여 사용자 모드(310)에서 구성된 애플리케이션 실행 화면을 일정 규격의 데이터그램으로 구성하여 터미널 단말(100)로 전송하고, 터미널 단말(100) 또는 외부 서버(500)로부터 수신된 데이터그램의 에러 여부 등을 확인하여 사용자 모드(310)로 전달한다.
한편, 커널 모드(320)는 외부의 애플리케이션 서버(500)로 전송되는 데이터그램의 소스 어드레스를 변경하는 IP 필터링부(321)를 포함한다.
상기 IP 필터링부(321)는 터미널 세션 실행부(311)로부터 가상 IP를 이용하여 외부 애플리케이션 서버(500)로 향하는 데이터를 전달받아, 그 데이터를 일정 규격으로 데이터그램화하고, 그 데이터그램 헤더의 소스 어드레스를 가상 IP로 설정하여 외부 애플리케이션 서버(500)로 전송한다. 또한, IP 필터링부(321)는 외부 애플리케이션 서버(500)로부터 데이터그램이 수신되면, 가상 IP DB(330)를 참조하여 상기 데이터그램의 목적지 어드레스가 가상 IP인지를 판단하고, 판단 결과 가상 IP인 경우, 상기 목적지 어드레스를 터미널 단말(100)의 오리지널 IP로 변경하여, 사용자 모드(310)로 전달한다. 바람직하게, IP 필터링부(321)는 상기 가상 IP DB(330)의 터미널 단말(100) IP와 가상 IP를 메모리에 적재하고, 그 적재된 정보를 참조하여 상기 데이터그램의 목적지 어드레스를 터미널 단말(100)의 오리지널 IP로 변경한다.
도 3은 본 발명의 일 실시예에 따른, 터미널 서비스 서버에서 터미널 세션별로 할당된 가상 IP를 근거로 외부 애플리케이션 서버와 접속하는 과정을 설명하는 흐름도이다.
도 3을 참조하면, 터미널 단말(100)은 사용자의 터미널 접속 명령에 따라 터미널 클라이언트를 구동하고, 네트워크(200)를 통해 터미널 서버(300)에 접속한다. 그러면, 터미널 서버(300)의 터미널 서비스 실행부(312)는 상기 터미널 단말(100)로 사용자 인증 정보를 요청하고, 이에 따라 입력되는 사용자 인증 정보(예컨대, ID 및 패스워드)를 이용하여 사용자 인증 처리를 수행한 후, 인증 성공된 터미널 단말(100)과 독립된 세션을 설정한다(S301).
이어서, 터미널 단말(100)은 사용자로부터 특정 애플리케이션 실행 명령을 입력받아, 터미널 서버(300)로 상기 애플리케이션의 실행을 요청한다(S303). 그러 면, 터미널 서버(300)의 터미널 서비스 실행부(312)는 상기 애플리케이션의 가상 IP 필요성 여부를 판단한다(S305). 즉, 터미널 서비스 실행부(312)는 실행 요청된 애플리케이션이 IP 중복 미허용 애플리케이션 목록에 포함되는지 여부를 판단한다.
터미널 서비스 실행부(312)는 가상 IP가 필요하다고 판단되면(즉, 실행 요청된 애플리케이션이 IP 중복 미허용 애플리케이션 목록에 포함되면), 가상 IP 에이전트(311)로 가상 IP 할당을 요청한다. 그러면, 가상 IP 에이전트(311)는 가상 IP DB(330)의 할당 가능한 가상 IP 목록(210)에서 미할당된 가상 IP 중 하나를 추출하여 상기 터미널 단말(100)의 세션에 할당하고, 상기 터미널 단말(100)의 오리지널 IP(220), 할당한 가상 IP(230) 및 애플리케이션 식별자(240)를 매핑하여 가상 IP DB(330)에 저장한 후, NIC에 상기 할당된 가상 IP를 설정한다(S307). 그리고 가상 IP 에이전트(311)는 상기 할당한 가상 IP 정보를 터미널 서비스 실행부(312)로 전달한다.
그러면, 터미널 서비스 실행부(312)는 상기 가상 IP를 근거로 외부 애플리케이션 서버(500)와 접속을 요청하는 데이터를 커널 모드(320)로 전달한다. 이어서, 커널 모드(320)는 상기 데이터를 일정 규격으로 데이터그램화하고, 상기 데이터그램 헤더의 소스 어드레스를 터미널 서버 IP에서 가상 IP로 변경하여, 상기 가상 IP로 설정된 NIC를 통하여 외부 애플리케이션 서버(500)로 상기 데이터그램을 전송한다(S309, S311).
한편, S305 단계에서 터미널 서비스 실행부(312)는 가상 IP가 불필요하다고 판단되면, 터미널 서버(300)의 IP를 이용하여 외부 애플리케이션 서버(500)와 접속 을 요청하는 데이터를 커널 모드(320)로 전달하고, 커널 모드(320)는 상기 데이터를 일정 규격으로 데이터그램화하여 외부의 애플리케이션 서버(500)로 전송한다.
상기 애플리케이션 서버(500)로 접속을 요청한 터미널 서버(300)는 이에 따른 응답으로 애플리케이션 서버(500)로부터 목적지 어드레스가 가상 IP인 데이터그램을 수신한다(S313). 상기 데이터그램은 웹 페이지, 게임 콘텐츠 구동, 주식 매매에 필요한 데이터, 은행계좌이체 서비스 데이터, 웹 로그인에 대한 인증응답 데이터 등이 포함할 수 있다.
그러면, 터미널 서버(300)의 IP 필터링부(321)는 가상 IP DB(330) 또는 메모리에 적재된 가상 IP DB(330)의 테이블을 참조하여, 수신한 데이터그램의 목적지 어드레스를 터미널 단말(100)의 오리지널 IP로 변경하여, 사용자 모드(310)로 전달한다(S315). 이어서, 터미널 서비스 실행부(312)는 상기 데이터그램을 토대로 애플리케이션을 구동하여 애플리케이션의 실행화면을 구성하고, 커널 모드(320)는 상기 실행화면을 터미널 단말(100)로 전송한다(S317, S319).
이후, 사용자가 상기 애플리케이션 실행 화면에서 특정 명령(즉, 키보드, 마우스 등의 조작)을 입력하면, 터미널 단말(100)은 그 명령을 터미널 서버(300)로 전송한다. 그리고 터미널 서버(300)는 상기 터미널 단말(100)의 세션에 할당한 가상 IP를 이용하여 상기 애플리케이션을 실행하는 애플리케이션 서버(500)로 그 명령을 전송하고 그 명령에 따라 처리된 데이터를 수신한 후, 실행 화면을 구성하여 터미널 단말(100)로 전송한다.
한편, 터미널 서버(300)는 접속한 애플리케이션 서버(500)로부터 소 켓(Socket) 기반으로 IP를 질의하는 정보를 수신할 수 있다. 즉, 애플리케이션 서버(500)는 현재 접속된 사용자의 IP 정보를 파악하기 위하여, 소켓 기반의 API를 이용하여 터미널 서버(300)로 IP 정보를 요청하고 이에 따른 사용자의 IP가 기록된 터이터그램을 수신한다. 그리고 애플리케이션 서버(500)는 데이터그램의 헤더가 아닌 소켓 기반의 정보에서 IP를 추출하여, 이를 통해 사용자의 IP 중복 여부를 검사한다.
터미널 서버(300)에서 애플리케이션 서버(500)로부터 소켓 기반으로 IP 질의를 요청받으면, 터미널 서비스 실행부(312)는 특정 API 함수를 호출함으로써 자신의 IP 주소를 애플리케이션 서버(500)로 알린다. 이때, 가상 IP 에이전트(311)는 상기 API 함수를 가로채어, 함수 인자를 터미널 서버(300)의 자체 IP에서 터미널 단말(100)의 세션에 할당한 가상 IP로 변경하여 API 함수를 호출함으로써 상기 가상 IP 주소를 애플리케이션 서버(500)로 알린다. 즉, 터미널 서버(300)의 터미널 세션 실행부(312)가 애플리케이션 서버(500)로부터 IP를 질의 받고 이에 따라 소켓기반의 특정 API 함수를 호출하면, 가상 IP 에이전트(311)는 그 API 함수를 가로채고 가상 IP DB(330)를 참조하여, 함수 인자를 터미널 서버(300)의 자체 IP에서 가상 IP 변경하여 API 함수를 호출함으로써 터미널 서버(300)의 IP가 아닌 터미널 단말(100)로 할당한 가상 IP 주소를 애플리케이션 서버(500)로 전송한다.
구체적으로, 세션 실행부(312)가 애플리케이션 서버(500)로부터 IP 질의를 수신하여 함수 인자가 터미널 서버(300)를 자체 IP로 설정된 bind 함수를 호출한다고 하자, 그러면, 가상 IP 에이전트(311)는 상기 bind 함수를 가로채어, 그 bind 함수의 인자를 터미널 자체 IP에서 터미널 단말(100)의 세션에 할당한 가상 IP로 변경하여 호출하고, 이에 따라 소켓상에서도 가상 IP 기반으로 애플리케이션 서버(300)로 데이터가 전달된다.
이를 통해, 터미널 서버(300)와 애플리케이션 서버(500)는 소켓 기반으로 데이터를 송수신할 때도 터미널 단말(100)의 세션에 할당된 가상 IP 기반으로 통신하여, 터미널 단말(100)의 사용자는 IP 중복에 따른 서비스를 제한받지 않는다.
도 4는 본 발명의 일 실시예에 따른, 터미널 서비스 서버에서 터미널 세션에 할당한 가상 IP를 회수하는 방법을 설명하는 흐름도이다.
도 4를 참조하면, 터미널 단말(100)은 사용자로부터 애플리케이션 종료 명령을 입력받아, 그 애플리케이션의 중단을 터미널 서버(300)로 요청한다(S401). 그러면, 터미널 서버(300)의 터미널 서비스 실행부(312)는 상기 애플리케이션의 실행을 중단하고, 그 중단 화면을 구성하여 터미널 단말(100)로 전송한다(S403).
이어서, 터미널 서비스 실행부(312)는 상기 애플리케이션 구동을 위하여 터미널 단말(100)의 세션에 가상 IP를 할당하였는지 여부, 즉, 구동 중지 요청된 애플리케이션이 IP 중복 미허용 애플리케이션 목록에 저장되어 있는지 여부를 확인한다(S405). 다음으로, 터미널 서비스 실행부(312)는 상기 구동 중지 요청된 애플리케이션이 IP 중복 미허용 애플리케이션 목록에 포함되지 않은 경우, 터미널 서버(300)의 자체 IP를 이용하여 애플리케이션의 구동을 중지를 요청하는 데이터그램을 커널 모드(320)를 통하여 애플리케이션 서버(500)로 전송한다(S407).
반면, 상기 터미널 서비스 실행부(312)는 상기 구동 중지 요청된 애플리케이 션이 IP 중복 미허용 애플리케이션 목록에 포함된 경우, 가상 IP 에이전트(311)로 터미널 세션에 할당된 가상 IP 회수를 요청한다. 아울러, 터미널 서비스 실행부(312)는 상기 터미널 단말(100)의 세션에 할당한 가상 IP를 이용하여 애플리케이션의 구동을 중지하는 데이터그램을 커널 모드(310)를 통하여 애플리케이션 서버(500)로 전송한다(S409, S411). 이때, 커널 모드(320)는 상기 테이터그램의 소스 어드레스를 가상 IP로 설정하여 상기 애플리케이션 서버(500)로 전송한다.
이어서, 가상 IP 에이전트(311)는 가상 IP DB(330)의 테이블에 구동 중지 요청된 애플리케이션(240), 터미널 단말의 오리지널 IP(220) 및 가상 IP(230)가 일치하는 행(row)을 삭제한다. 아울러, 가상 IP 에이전트(311)는 상기 터미널 단말(100)의 IP가 가상 IP DB(330)의 테이블에 존재하는지 확인하여 존재하지 않은 경우(즉, 터미널 단말(100)의 세션에 가상 IP가 필요한 애플리케이션이 전부 종료된 경우), NIC에 설정된 다수의 IP 중에 상기 터미널 단말(100)의 세션에 할당한 가상 IP를 제거한다(S413).
상술한 실시예에 따르면, 터미널 서버(300)는 터미널 세션별로 할당된 가상 IP를 토대로, 애플리케이션 서버(500)로 접근하여 데이터를 수신한다. 즉, 터미널 서버(300)는 네트워크 인터페이스 카드에 할당된 터미널 서버(300)의 자체 IP로만 애플리케이션 서버(500)와 통신하지 않고, 터미널 단말(100)의 세션을 위한 가상 IP를 통해서 애플리케이션 서버(500)와 통신한다. 이에 따라, 터미널 단말(100)의 사용자는 터미널 서버(300)의 IP 중복에 따른 서비스를 제한받지 않고, 원활한 서비스를 제공받을 수 있다.
본 명세서는 많은 특징을 포함하는 반면, 그러한 특징은 본 발명의 범위 또는 특허청구범위를 제한하는 것으로 해석되어서는 아니된다. 또한, 본 명세서에서 개별적인 실시예에서 설명된 특징들은 단일 실시예에서 결합되어 구현될 수 있다. 반대로, 본 명세서에서 단일 실시예에서 설명된 다양한 특징들은 개별적으로 다양한 실시예에서 구현되거나, 적절한 부결합(subcombination)에서 구현될 수 있다.
도면에서 동작들이 특정한 순서로 설명되었으나, 그러한 동작들이 도시된 바와 같은 특정한 순서로 수행되는 것으로, 또는 일련의 연속된 순서, 또는 원하는 결과를 얻기 위해 모든 설명된 동작이 수행되는 것으로 이해되어서는 아니된다. 어떤 환경에서, 멀티태스킹 및 병렬 프로세싱이 유리할 수 있다. 아울러, 상술한 실시예에서 다양한 시스템 구성요소의 구분은 모든 실시예에서 그러한 구분을 요구하지 않는 것으로 이해되어야 한다. 상술한 프로그램 구성요소 및 시스템은 일반적으로 단일 소프트웨어 제품 또는 멀티플 소프트웨어 제품에 패키지로 구현될 수 있다.
상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 형태로 기록매체(시디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다. 이러한 과정은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있으므로 더 이상 상세히 설명하지 않기로 한다.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.
본 명세서에 첨부되는 다음의 도면들은 본 발명의 바람직한 실시예를 예시하는 것이며, 전술하는 발명의 상세한 설명과 함께 본 발명의 기술사상을 더욱 이해시키는 역할을 하는 것이므로, 본 발명은 그러한 도면에 기재된 사항에만 한정되어 해석되어서는 아니된다.
도 1은 본 발명에 일 실시예에 따른 터미널 서비스 시스템의 구성을 나타내는 도면이다.
도 2는 가상 IP DB에 저장된 테이블을 나타내는 도면이다.
도 3은 본 발명의 일 실시예에 따른, 터미널 서비스 서버에서 터미널 세션별로 할당된 가상 IP를 근거로 외부 애플리케이션 서버와 접속하는 과정을 설명하는 흐름도이다.
도 4는 본 발명의 일 실시예에 따른, 터미널 서비스 서버에서 터미널 세션에 할당한 가상 IP를 회수하는 방법을 설명하는 흐름도이다.
<도면의 주요 부분에 대한 부호의 설명>
311 : 터미널 서비스 실행부 312 : 가상 IP 에이전트
321 : IP 필터링부 330 : 가상 IP DB

Claims (10)

  1. 원격 접속한 터미널 단말로 터미널 서비스를 제공하는 터미널 서버 장치에 있어서,
    가상 IP 풀(Pool)을 참조하여 가상 IP를 할당하는 가상 IP 에이전트;
    할당 가능한 상기 가상 IP 풀을 저장하고, 터미널 단말의 자체 오리지널 IP와 대응하여 터미널 세션에 할당된 가상 IP를 저장하는 가상 IP DB; 및
    상기 터미널 단말을 위한 독립된 터미널 세션을 생성하고, 해당 터미널 세션에서 사용자의 요청에 따라 특정 애플리케이션이 실행되면, 상기 애플리케이션이 IP 중복 미허용 애플리케이션 목록에 포함되어 있는지 여부를 확인하여 포함된 경우 상기 가상 IP 에이전트로부터 가상 IP를 할당받아 상기 가상 IP DB에 저장하고, 그 할당된 가상 IP에 근거하여 외부의 애플리케이션 서버로 접속하는 터미널 서비스 실행부;를 포함하는 터미널 서버 장치.
  2. 제 1 항에 있어서,
    운영 체제의 커널(kernel) 모드에서 외부로 전송되는 패킷을 분석하여 상기 애플리케이션 서버로 전송되는 패킷의 소스 IP를 가상 IP로 대체하는 IP 필터링부;를 더 포함하는 터미널 서버 장치.
  3. 삭제
  4. 제 1 항에 있어서,
    상기 가상 IP 에이전트는,
    네트워크 인터페이스 카드에 상기 할당된 가상 IP를 설정하는 것을 특징으로 하는 터미널 서버 장치.
  5. 제 4 항에 있어서,
    상기 가상 IP 에이전트는,
    상기 터미널 세션에서 사용자의 애플리케이션 종료에 따라 상기 터미널 서비스 실행부로부터 가상 IP 회수 요청을 수신하고 이에 기초하여 상기 가상 IP를 상기 가상 IP 풀에서 회수하는 것을 특징으로 하는 터미널 서버 장치.
  6. 원격 접속한 터미널 단말로 터미널 서비스를 제공하는 터미널 서버 장치에서 가상 IP의 동적 할당 방법으로서,
    (a) 상기 터미널 단말의 접속에 따라 독립된 터미널 세션을 생성하는 단계;
    (b) 상기 터미널 세션에서 사용자의 요청에 따라 특정 애플리케이션을 실행하는 단계;
    (c) 상기 터미널 세션에서 실행된 애플리케이션이 IP 중복 미허용 애플리케이션 목록에 포함되는지 확인하여 포함된 경우 가상 IP 풀(Pool)을 참조하여 상기 터미널 세션에 대한 가상 IP를 할당하는 단계; 및
    (d) 할당된 가상 IP에 근거하여 외부의 애플리케이션 서버에 접속하는 단계;를 포함하는 가상 IP의 동적 할당 방법.
  7. 제 6 항에 있어서,
    상기 (d) 단계는 운영 체제의 커널(kernel) 모드에서 수행되고,
    상기 애플리케이션 서버로 전송되는 패킷의 소스 IP를 상기 가상 IP로 대체하는 단계;를 더 포함하는 가상 IP의 동적 할당 방법.
  8. 삭제
  9. 제 6 항에 있어서,
    상기 (d) 단계는,
    네트워크 인터페이스 카드에 상기 가상 IP를 설정하는 단계;를 더 포함하는 것을 특징으로 하는 가상 IP의 동적 할당 방법.
  10. 제 9 항에 있어서,
    상기 터미널 세션에서 사용자의 요청에 따라 애플리케이션 실행을 종료하는 단계; 및
    상기 가상 IP를 상기 가상 IP 풀에서 회수하는 단계;를 더 포함하는 것을 특징으로 하는 가상 IP의 동적 할당 방법.
KR1020080088138A 2008-09-08 2008-09-08 터미널 환경의 서버 기반 컴퓨팅 시스템에서 다수의 사용자가 동일 ip접속으로 동일 응용 프로그램 실행시 충돌 오류를 방지하기 위한 가상 ip의 동적 할당 방법 및이를 위한 터미널 서버 장치 KR101001035B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080088138A KR101001035B1 (ko) 2008-09-08 2008-09-08 터미널 환경의 서버 기반 컴퓨팅 시스템에서 다수의 사용자가 동일 ip접속으로 동일 응용 프로그램 실행시 충돌 오류를 방지하기 위한 가상 ip의 동적 할당 방법 및이를 위한 터미널 서버 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080088138A KR101001035B1 (ko) 2008-09-08 2008-09-08 터미널 환경의 서버 기반 컴퓨팅 시스템에서 다수의 사용자가 동일 ip접속으로 동일 응용 프로그램 실행시 충돌 오류를 방지하기 위한 가상 ip의 동적 할당 방법 및이를 위한 터미널 서버 장치

Publications (2)

Publication Number Publication Date
KR20100029379A KR20100029379A (ko) 2010-03-17
KR101001035B1 true KR101001035B1 (ko) 2010-12-14

Family

ID=42179605

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080088138A KR101001035B1 (ko) 2008-09-08 2008-09-08 터미널 환경의 서버 기반 컴퓨팅 시스템에서 다수의 사용자가 동일 ip접속으로 동일 응용 프로그램 실행시 충돌 오류를 방지하기 위한 가상 ip의 동적 할당 방법 및이를 위한 터미널 서버 장치

Country Status (1)

Country Link
KR (1) KR101001035B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150124326A (ko) * 2014-04-28 2015-11-05 (주)텔라딘 페이크 아이피를 이용한 통신방법 및 장치

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003348085A (ja) * 2002-05-28 2003-12-05 Toshiba Corp Dhcpサーバー、ipアドレスの管理方法、サーバープログラム
US20060075123A1 (en) 2004-09-27 2006-04-06 Citrix Systems, Inc. System and method for managing virtual ip addresses

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003348085A (ja) * 2002-05-28 2003-12-05 Toshiba Corp Dhcpサーバー、ipアドレスの管理方法、サーバープログラム
US20060075123A1 (en) 2004-09-27 2006-04-06 Citrix Systems, Inc. System and method for managing virtual ip addresses

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150124326A (ko) * 2014-04-28 2015-11-05 (주)텔라딘 페이크 아이피를 이용한 통신방법 및 장치
KR101594777B1 (ko) * 2014-04-28 2016-02-17 (주)텔라딘 페이크 아이피를 이용한 통신방법 및 장치

Also Published As

Publication number Publication date
KR20100029379A (ko) 2010-03-17

Similar Documents

Publication Publication Date Title
US11029990B2 (en) Delivering a single end user experience to a client from multiple servers
US11418512B2 (en) Method for virtual machine to access physical server in cloud computing system, apparatus, and system
US7146431B2 (en) Virtual network environment
US6976174B2 (en) Secure multiprotocol interface
US10698717B2 (en) Accelerator virtualization method and apparatus, and centralized resource manager
US9742876B2 (en) Span out load balancing model
US6976258B1 (en) Providing quality of service guarantees to virtual hosts
US10073709B2 (en) Session monitoring of virtual desktops in a virtual machine farm
US10146566B2 (en) Enabling virtual desktop connections to remote clients
JP3730563B2 (ja) セッション管理装置およびセッション管理方法およびプログラムおよび記録媒体
WO2016177079A1 (zh) 云桌面资源的处理方法及装置
KR20140098919A (ko) 실시간 가상 데스크탑 서비스를 위한 가상머신 제공 방법 및 서비스 게이트웨이
US10817327B2 (en) Network-accessible volume creation and leasing
US20150205630A1 (en) Method and System for Mapping Multiple Virtual Machines, and Client Device
WO2022143714A1 (zh) 服务器系统、虚拟机创建方法及装置
JP5457916B2 (ja) メモリ共有装置
CN111343262A (zh) 分布式集群登录方法、装置、设备和存储介质
US20130007841A1 (en) Client server communication system
CN113438295A (zh) 容器组地址分配方法、装置、设备及存储介质
KR101001035B1 (ko) 터미널 환경의 서버 기반 컴퓨팅 시스템에서 다수의 사용자가 동일 ip접속으로 동일 응용 프로그램 실행시 충돌 오류를 방지하기 위한 가상 ip의 동적 할당 방법 및이를 위한 터미널 서버 장치
CN109819064B (zh) 模块间通信的方法、操作系统模块和会议平板
KR20200131375A (ko) 서버 애플리케이션 컨테이너화 방법 및 이를 수행하는 컴퓨터 시스템
JP6205013B1 (ja) アプリケーション利用システム
KR20170047747A (ko) 화면 압축 서비스 방법 및 그 방법을 수행하는 가상 네트워크 장치
KR20220129882A (ko) 브이디아이 환경에서 개방형 오에스 가상 데스크톱의 세션을 모니터링하는 방법 및 이를 적용한 브이디아이 환경의 개방형 os 모니터링 시스템

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: 20131017

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20141128

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20151204

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170405

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180109

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20190326

Year of fee payment: 9