KR100613318B1 - 외래 포트 분배에 기초하여 서버 부하를 분담하는 방법 및장치 - Google Patents

외래 포트 분배에 기초하여 서버 부하를 분담하는 방법 및장치 Download PDF

Info

Publication number
KR100613318B1
KR100613318B1 KR1020040006429A KR20040006429A KR100613318B1 KR 100613318 B1 KR100613318 B1 KR 100613318B1 KR 1020040006429 A KR1020040006429 A KR 1020040006429A KR 20040006429 A KR20040006429 A KR 20040006429A KR 100613318 B1 KR100613318 B1 KR 100613318B1
Authority
KR
South Korea
Prior art keywords
request
foreign
port
processes
ports
Prior art date
Application number
KR1020040006429A
Other languages
English (en)
Other versions
KR20040080951A (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 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20040080951A publication Critical patent/KR20040080951A/ko
Application granted granted Critical
Publication of KR100613318B1 publication Critical patent/KR100613318B1/ko

Links

Images

Classifications

    • 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/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61CDENTISTRY; APPARATUS OR METHODS FOR ORAL OR DENTAL HYGIENE
    • A61C19/00Dental auxiliary appliances
    • A61C19/06Implements for therapeutic treatment
    • A61C19/063Medicament applicators for teeth or gums, e.g. treatment with fluorides
    • A61C19/066Bleaching devices; Whitening agent applicators for teeth, e.g. trays or strips
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61CDENTISTRY; APPARATUS OR METHODS FOR ORAL OR DENTAL HYGIENE
    • A61C5/00Filling or capping teeth
    • A61C5/90Oral protectors for use during treatment, e.g. lip or mouth protectors
    • 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/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • 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/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1006Server selection for load balancing with static server selection, e.g. the same server being selected for a specific client
    • 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/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/101Server selection for load balancing based on network conditions
    • 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/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1012Server selection for load balancing based on compliance of requirements or conditions with available server resources
    • 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/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • 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/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • H04L69/162Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
    • 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/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Security & Cryptography (AREA)
  • Veterinary Medicine (AREA)
  • General Health & Medical Sciences (AREA)
  • Public Health (AREA)
  • Animal Behavior & Ethology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Epidemiology (AREA)
  • Dentistry (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Oral & Maxillofacial Surgery (AREA)
  • Computer And Data Communications (AREA)

Abstract

데이터 처리 시스템에서 요구(request)를 처리하는 방법, 장치 및 컴퓨터 명령이 제공된다. 요구를 처리하기 위한 복수의 프로세스가 제공된다. 상기 복수의 프로세스의 각각은 복수의 외래 포트(foreign port) 내의 외래 포트 서브세트로부터의 요구를 처리하도록 할당되며, 프로세스에 할당되는 하나의 외래 포트 세트가 상기 복수의 외래 포트 내의 다른 외래 포트 서브세트에 대하여 유일하도록 할당된다. 요구를 수신하는 것에 응답하여 상기 요구에서의 외래 포트가 식별된다. 상기 요구는, 상기 요구의 외래 포트와 일치하는 외래 포트를 포함하는 외래 포트 세트를 할당받은 프로세스에게 송신되어, 상기 프로세스에 의하여 처리된다.
작업량, 부하, 요구, 포트, 프로세스

Description

외래 포트 분배에 기초하여 서버 부하를 분담하는 방법 및 장치{METHOD AND APPARATUS FOR SERVER LOAD SHARING BASED ON FOREIGN PORT DISTRIBUTION}
도 1은 본 발명이 구현될 수 있는 데이터 처리 시스템의 네트워크를 도시하는 도면.
도 2는 본 발명의 바람직한 실시예에 따른 서버 컴퓨터로서 구현될 수 있는 데이터 처리 시스템의 블록도.
도 3은 본 발명의 바람직한 실시예에 따른 요구(request)를 처리하는 단계에서의 데이터 흐름을 도시하는 도면.
도 4는 본 발명의 바람직한 실시예에 따른 연결 요구를 처리하는 프로세스의 흐름도.
도 5는 본 발명의 바람직한 실시예에 따른 서버 프로세스를 생성(spawning) 및 제거하는 프로세스의 흐름도.
<도면의 주요 부분에 대한 간단한 설명>
300 : 서버 컴퓨터
302 : OS 커널
304, 306, 308 : 서버(프로세스)
312, 314, 316 : 슬레이브 스레드
310 : 요구
본 발명은 개선된 데이터 처리 시스템에 관한 것으로, 특히 요구(requests)를 처리하는 방법, 장치 및 컴퓨터 명령에 관한 것이다. 더욱 구체적으로, 본 발명은 클라이언트로부터의 요구를 처리하기 위하여 서버 부하를 분담하는 방법, 장치 및 컴퓨터 명령을 제공한다.
"인터네트워크"라고도 불리는 인터넷은, 송신 네트워크의 프로토콜로부터 수신 네트워크용 프로토콜로의 메시지 전환 및 데이터 전달을 처리하는 게이트웨이들에 의하여 함께 결합되며 서로 유사하지 않을 수 있는 컴퓨터 네트워크들의 세트이다. 대문자로 표기될 때, 인터넷("Internet")이라는 용어는 Transmission Control Protocol/Internet Protocol(TCP/IP) 프로토콜을 사용하는 네트워크와 게이트웨이들의 집합을 지시한다.
인터넷은 정보와 엔터테인먼트 양쪽의 제공원으로서의 문화적 설비(culture fixture)가 되었다. 많은 기업이, 브랜드 충성도(brand loyalty)를 발생시키기 위한 마케팅 노력의 필수 부분으로서 인터넷 사이트를 만들고, 소비자들에게 그 기업에 의하여 제공되는 제품 또는 서비스를 알리거나 그 외의 정보를 제공하고 있다. 많은 연방, 주 및 지방 관공서 또한 정보 제공의 목적으로 인터넷 사이트를 사용하고 있으며, 특히 국세청이나 국무 장관과 같이 실질적으로 사회의 모든 분야와 상 호 작용해야 하는 관공서는 특히 그러하다. 정보 안내 및/또는 온라인 공공 기록에 대한 검색이 가능한 데이터베이스를 제공함으로써 운영 비용을 감소시킬 수 있다. 또한, 인터넷은 상거래용 매체로서 점점 더 대중화되고 있다.
현재, 인터넷을 통하여 데이터를 전달하는 방법으로서 가장 일반적으로 사용되는 방법은, 간단히 "웹"이라고도 불리는 월드 와이드 웹 환경을 사용하는 것이다. File Transfer Protocol(FTP)와 같은 다른 정보 전달용 인터넷 자원들이 존재하지만, 웹만큼의 인기는 얻지 못하고 있다. 웹 환경에서, 서버와 클라이언트는 텍스트, 정지 영상, 오디오, 동영상 등과 같은 다양한 데이터 파일의 전송을 처리하는 공지된 프로토콜인 Hypertext Transfer Protocol(HTTP)을 이용하여 데이터 트랜잭션을 달성한다. 사용자에 대한 프리젠테이션을 위하여 다양한 데이터 파일의 정보가 표준 페이지 기술 언어인 Hypertext Markup Language(HTML)를 이용하여 포맷된다.
기본적인 프리젠테이션 포맷팅에 추가하여, HTML은 개발자가 Uniform Resource Locator(URL)에 의하여 식별되는 다른 웹 리소스로의 "링크"를 특정할 수 있도록 한다. URL은 특정 정보로의 통신 경로를 정의하는 특별한 문법 식별자이다. 클라이언트가 액세스할 수 있는 각 정보의 논리 블록은 "페이지" 또는 "웹 페이지"라고 불리며 URL에 의하여 식별된다. URL은 사용자가 아닌, 사용자의 웹 브라우저가 이러한 정보를 찾아내어 액세스할 수 있도록 하는 전세계적으로 일관성 있는 방법을 제공한다. 브라우저는 URL과 같은 식별자에 의하여 식별되는 정보에 대한 요구를 제출할 수 있는 프로그램이다. 사용자는 브라우저가 콘텐츠 소스에 액세스하도록 그래픽 사용자 인터페이스(graphic user interface; GUI)를 통하여 도메인 네임을 입력할 수 있다. 도메인 네임은 도메인 네임 시스템(DNS)에 의하여 자동적으로 인터넷 프로토콜(IP) 주소로 변환되는데, 이는 데이터베이스에서 도메인 네임을 조사함으로써 사용자에 의하여 입력된 심볼릭 네임을 IP 주소로 번역하는 서비스이다.
인터넷은 또한 브라우저를 이용하여 어플리케이션을 사용자에게 전달하는 데에 사용된다. 웹 상의 상거래에 있어서, 개별 소비자 및 기업은 다양한 상품 및 서비스를 구매하기 위하여 웹을 사용한다. 상품 및 서비스를 제공할 때, 일부 회사들은 그들의 영역을 확장하기 위하여 웹을 사용하는 반면, 다른 회사들은 웹 상에서만 상품 및 서비스를 제공한다.
웹 페이지 및 어플리케이션에 대한 다양한 연결 요구는 웹 서버 및 FTP 서버와 같은 서버에 의하여 처리된다. 이러한 서버에는 종종 과중한 부하가 가해지며, 이는 전형적으로 많은 수의 클라이언트가 동시에 서비스를 요구할 때 발생한다. 이러한 문제는 종종 작업 수행을 위한 슬레이브 서버(slave server)의 생성 또는 스포닝(spawning)에 의하여 해결된다. 이러한 구성에서, 마스터 서버(master server)는 계속 새로운 연결을 수용하고, 즉시 이러한 연결을 슬레이브 서버에게 분배한다. 그러나, 이러한 시스템에는 여전히 병목이 존재한다. 이 병목은 마스터 서버이며, 상기 마스터 서버는 모든 인입되는 연결(incoming connection)들을 감지하기 위한 단일의 소켓을 구비한다.
따라서, 서버 부하 분배를 위한 개선된 방법, 장치 및 컴퓨터 명령을 제공하는 것이 필요할 것이다.
본 발명은 데이터 처리 시스템에서 요구들을 처리하는 방법, 장치 및 컴퓨터 명령을 제공한다. 상기 요구들을 처리하기 위한 복수의 프로세스가 제공된다. 상기 복수의 프로세스의 각각은 복수의 외래 포트(foreign port) 내의 하나의 외래 포트 서브세트(a subset of foreign ports)로부터의 요구들을 처리하도록 할당된다. 본 예에서, 상기 할당은, 하나의 프로세스에 할당되는 하나의 외래 포트 세트가 상기 복수의 외래 포트 내의 다른 외래 포트 서브세트들에 대하여 유일하도록 행해진다. 요구를 수신하는 것에 응답하여, 상기 요구에서의 외래 포트가 식별된다. 상기 요구는, 상기 요구의 외래 포트와 일치하는 외래 포트를 포함하는 외래 포트 세트를 할당받은 프로세스로 송신된다.
본 발명의 고유한 새로운 특징들은 첨부된 청구 범위에 기재되어 있다. 그러나, 본 발명 자체 뿐 아니라 본 발명의 바람직한 사용 모드, 다른 목적 및 장점은 첨부된 도면과 관련하여 아래의 예시적인 실시예의 상세한 설명을 참조할 때 가장 잘 이해될 수 있을 것이다.
실시예
도 1은 본 발명이 구현될 수 있는 데이터 처리 시스템의 네트워크를 도시하는 도면이다. 네트워크 데이터 처리 시스템(100)은 본 발명이 구현될 수 있는 컴퓨터의 네트워크이다. 네트워크 데이터 처리 시스템(100)은 네트워크(102)를 포함 하며, 상기 네트워크는 네트워크 데이터 처리 시스템(100) 내에서 함께 연결된 다양한 장치 및 컴퓨터간의 통신 링크를 제공하는 데에 사용되는 매체이다. 네트워크(102)는 유선, 무선 통신 링크 또는 광섬유 케이블과 같은 연결을 포함할 수 있다.
도시된 예에서, 서버 컴퓨터(104)는 저장 장치(106)와 함께 네트워크(102)에 연결된다. 또한, 클라이언트(108, 110, 112)도 네트워크(102)에 연결된다. 이 클라이언트(108, 110, 112)는, 예를 들어 개인용 컴퓨터 또는 네트워크 컴퓨터일 수 있다.
도시된 예에서, 서버 컴퓨터(104)는 부트 파일, 운영 시스템 이미지 및 어플리케이션과 같은 데이터를 클라이언트(108-112)에 제공한다. 클라이언트(108, 110, 112)는 서버 컴퓨터(104)로의 클라이언트이다. 네트워크 데이터 처리 시스템(100)은 추가적인 서버 컴퓨터, 클라이언트 및 도시되지 않은 다른 장치를 포함할 수 있다. 도시된 예에서, 네트워크 데이터 처리 시스템(100)은 서로 통신하는 데에 Transmission Control Protocol/Internet Protocol(TCP/IP) 프로토콜을 사용하는 네트워크 및 게이트웨이의 전세계적 집합을 표시하는 네트워크(102)를 구비하는 인터넷이다. 인터넷의 중심에는, 데이터 및 메시지를 라우팅하는 수많은 상업용, 공공용, 교육용 및 그 외의 컴퓨터 시스템들로 이루어지는 주 노드 또는 호스트 컴퓨터간의 고속 데이터 통신 라인의 백본(backbone)이 있다. 물론, 네트워크 데이터 처리 시스템(100)은, 예를 들어 인트라넷, 근거리 통신망(LAN) 또는 원거리 통신망(WAN)과 같은 수많은 상이한 유형의 네트워크들로서 구현될 수도 있 다. 도 1은 예일 뿐이며, 본 발명의 구성을 제한하는 것으로 이해되어서는 안된다.
도 2에서, 도 1의 서버 컴퓨터(104)와 같은 서버 컴퓨터로서 구현될 수 있는 데이터 처리 시스템의 블록도가 본 발명의 바람직한 실시예에 따라 도시된다. 데이터 처리 시스템(200)은 시스템 버스(206)에 연결된 복수의 프로세서(202, 204)를 포함하는 대칭 멀티프로세서(symmetric multiprocessor; SMP) 시스템일 수 있다. 선택적으로, 단일 프로세서 시스템이 사용될 수도 있다. 또한 메모리 제어기/캐시(208)가 시스템 버스(206)에 연결되어 로컬 메모리(209)로의 인터페이스를 제공할 수 있다. I/O 버스 브리지(210)가 시스템 버스(206)에 연결되어 I/O 버스(212)로의 인터페이스를 제공할 수 있다. 메모리 제어기/캐시(208) 및 I/O 버스 브리지(210)는 도시된 바와 같이 결합될 수 있다.
I/O 버스(212)에 연결된 PCI(peripheral component interconnect) 버스 브리지(214)는 PCI 로컬 버스(216)로의 인터페이스를 제공한다. 많은 수의 모뎀이 PCI 로컬 버스(216)에 연결될 수 있다. 전형적인 PCI 버스 구현은 네 개의 PCI 확장 슬롯 또는 애드-인 커넥터를 지원할 것이다. 도 1의 클라이언트(108-112)로의 통신 링크가, 애드-인 보드를 통하여 PCI 로컬 버스(216)에 연결된 모뎀(218) 및 네트워크 어댑터(220)를 통하여 제공될 수 있다.
추가적인 PCI 버스 브리지(222, 224)는 추가적인 모뎀 및 네트워크 어댑터가 지원될 수 있는 추가적인 PCI 로컬 버스(226, 228)에 대한 인터페이스를 제공한다. 이런 방식으로, 데이터 처리 시스템(200)은 다수의 네트워크 컴퓨터로의 연결을 가 능하게 한다. 메모리-맵 그래픽 어댑터(memory-mapped graphic adapter; 230)와 하드디스크(232)도 도시된 바와 같이 I/O 버스(212)에 직접 또는 간접적으로 연결될 수 있다.
당업자는 도 2에 도시된 하드웨어의 변경이 가능하다는 점을 이해할 수 있을 것이다. 예를 들어, 광 디스크 드라이브와 그런 종류의 다른 주변 장치가 도시된 하드웨어에 추가되거나 또는 이를 대신하여 사용될 수도 있다. 도시된 예는 본 발명의 구성을 제한하도록 의도된 것이 아니다.
도 2에 도시된 데이터 처리 시스템은, 예를 들어 Armonk, New York에 위치한 International Business Machines Corporation의 제품으로서 Advanced Interactive Executive(AIX) 운영 시스템 또는 LINUX 운영 시스템을 실행하는 IBM 서버 계열 시스템일 수 있다.
본 발명은 외래 포트 분배에 기초하여 서버 부하를 분담하는 방법, 장치 및 컴퓨터 명령을 제공한다. 특히, 본 발명의 메커니즘은, 하나의 소켓(socket)이 임의의 외래 포트 또는 모든 외래 포트가 아닌, 하나의 외래 포트 세트에 연관되도록(bound) 한다. 소켓은 TCP/IP 스택을 사용하는 네트워크에서 데이터를 적절한 어플리케이션으로 보내는(direct) 데에 사용되는 메커니즘이다. 이러한 스택은 송신된 바이트의 총량이 올바르게 수신되는 것을 보장하는 운송 기능을 제공한다. 이러한 스택은 주소에 기초하여 메시지를 라우팅하는 데에도 사용된다. IP 주소 및 포트 번호는 소켓을 구성한다. 본 예에서, 소켓은, 서버 프로세스라고도 불리우는 서버와 연관된다. 본 명세서에서, "서버"라는 용어가 단독으로 사용되었 을 때, 이는 실제의 컴퓨터 또는 기계가 아닌 프로세스를 가리킨다. 본 방식에서, 연결을 처리할 때 서로 다른 외래 포트에 주의하도록(listen for) 하기 위하여 다수의 서버가 사용될 수 있다. 본 예에서, 연결은 로컬 IP(LIP) 주소, 외래 IP(FIP) 주소, 로컬 포트(LP) 및 외래 포트(FP)를 사용하여 식별된다. 일반적으로 서버가 사용하는 소켓은, 로컬 포트 번호가 일치하고 IP 주소가 그 서버에 속하는 한, 임의의 외래 IP 주소 및 임의의 외래 포트로부터의 연결을 수용한다.
본 발명에 따르면, 연결이 외래 포트에 기초하여 서버에 분배되도록 하기 위하여 다수의 서버가 사용된다. "외래 포트"는 TCP/IP 요구 패킷을 발생시킨 원격 기계 상의 프로세스(본 발명에서는 클라이언트 프로세스)를 식별하는 데에 사용되는 번호이다. 이 번호는 TCP/IP 프로토콜 스택의 전송 계층에서 사용된다. 외래 포트는 로컬 프로세스(본 발명에서는 서버 프로세스)에 의하여 최초의 패킷에 대한 응답을 생성하는 데에 사용된다. 상기 번호를 사용함으로써, 응답 패킷이 요구 패킷을 송신한 클라이언트 프로세스에 도달하는 것이 보장된다. 본 발명에 따르면, 각 서버에는 하나의 외래 포트 서브세트(a subset of foreign ports)가 할당된다. 도시된 예에서, 하나의 외래 포트가 둘 이상의 서버에 의하여 커버되지 않도록, 서브세트들은 서로에 대하여 유일하게 설정된다. 물론, 구현에 따라서, 서버들에게 중첩 할당이 될 수도 있다. 이러한 할당에 있어서, 각 서버는 소켓상의 인입 연결에 주의한다. 이러한 소켓은 모든 포트 번호로부터의 연결을 수용하는 대신, 하나의 외래 포트 번호 세트에 연관된다.
이러한 메커니즘은 연결에 대한 요구를 생성하는 클라이언트에 대해서는 어 떠한 변경도 요하지 않는다. 그러나, 인입되는 연결 요구를 적절한 소켓으로 지정하는 데에 사용되는 TCP/IP 스택에 대해서는 변경이 요구된다. 현재, TCP/IP 스택에서는, 모든 외래 포트 번호가 수용될 수 있다는 것을 의미하는 와일드 카드 포트 번호나, 하나의 외래 포트 번호만이 명시될 수 있다. 본 변경은 외래 포트 번호 세트를 명시할 수 있는 기능을 요한다. 즉, 외래 포트들을 상이한 서버 또는 소켓에 할당할 수 있도록 하는 추가적인 기능이 본 발명의 프로세스를 실행하는 서버 컴퓨터의 운영 시스템의 TCP/IP 스택 내에 구현된다. 도시된 예에서, 상기 변경은 TCP/IP 스택의 전송 계층에 대하여 행해진다.
도 3에서, 본 발명의 바람직한 실시예에 따라 요구를 처리하는 데이터 흐름도가 도시된다. 서버 컴퓨터(300)는 도 2의 데이터 처리 시스템(200)과 같은 데이터 처리 시스템으로 구현될 수 있다.
본 발명의 바람직한 실시예에 따르면, 하나의 서버와 연관되는 소켓은 모든 외래 포트 대신 하나의 외래 포트 세트에 연관될 수 있다. 일반적으로, 요구는 로컬 포트 주소, 외래 포트 주소, 로컬 포트 번호 및 외래 포트 번호를 포함한다. 운영 시스템 커널(operating system kernel; 302)에 의하여 서버 컴퓨터(300)와의 연결이 설정된다. 본 예에서, 만일 로컬 포트 번호가 일치하고 로컬 IP 주소가 서버 컴퓨터(300)에 할당된 것이면, 운영 시스템 커널(302)은 연결을 수용하여 처리한다.
본 발명의 바람직한 실시예에 따르면, 서버(304, 306, 308)는 상이한 클라이언트로부터 발생한 요구(310)에 대한 연결을 처리하는 데에 사용될 수 있다. 연결 은 운영 시스템 커널(302)에 의하여 서버로 송신된다. 특히, 이러한 연결은 운영 시스템 커널(302) 내의 TCP/IP 스택에 의하여 서버로 라우팅된다. 이러한 요구의 라우팅은 요구(310)의 외래 포트 번호에 기초하여 수행된다.
예를 들어, 외래 포트 범위가 1025 내지 4000이면, 상기 포트 번호는 서버(304, 306 및 308)에 분배될 수 있다. 본 예에서, 외래 포트 번호는 각 서버가 유일한 외래 포트 범위 세트를 갖도록 분배된다. 즉, 각 서브세트간에 외래 포트의 중첩은 발생하지 않는다. 일반적으로 외래 포트는 요구를 생성하는 클라이언트에 의하여 무작위로 할당되기 때문에, 이러한 메커니즘은 원활하게 동작한다. 외래 포트 범위가 1025 내지 4000일 때, 서버(304)가 외래 포트 번호(1025, 1028, 1031, ..., 3098)를 처리하고, 서버(306)가 외래 포트 번호(1026, 1029, 1032, ..., 3099)를 처리하며, 서버(308)가 외래 포트 번호(1027, 1030, 1033, ..., 4000)를 처리하도록 외래 포트 번호가 할당될 수도 있다.
이러한 방식으로, 각 서버는 소켓상의 인입 연결에 주의한다. 그러나, 이러한 소켓은 모든 포트 번호를 수용하는 대신, 상술한 바와 같이 하나의 외래 포트 번호 세트에 연관된다.
본 예에서, 서버(304)는 마스터 서버 프로세스이고 서버(306, 308)는 서버(304)에 의하여 생성(spawning)된 슬레이브 서버 프로세스이다. 선택적으로, 이러한 프로세스는 서버 컴퓨터(300)에서의 부하에 따라 슬레이브 서버 프로세스를 생성할 수 있는 마스터 서버 프로세스로서 동작할 수도 있다. 본 예에서, 요구의 처리는 슬레이브 스레드(slave thread; 312, 314, 316)와 같은 슬레이브 스레드에 게 넘겨질 수 있다. 이러한 슬레이브 스레드는 서버(304, 306, 308)에 의하여 생성될 수 있다. 본 예에서, 슬레이브 스레드(312)는 서버(304)에 의하여 생성되고, 슬레이브 스레드(314)는 서버(306)에 의하여 생성되며, 슬레이브 스레드(316)는 서버(308)에 의하여 생성된다.
본 메커니즘은, 종래의 메커니즘에 비하여, 단일 서버가 모든 연결을 처리하도록 하는 대신 요구가 서로 다른 서버들에게 분배됨으로써 서버 부하의 균형을 맞출 수 있다는 장점을 갖는다. 본 발명의 메커니즘은 네트워크 디스패쳐(network dispatcher)와는 상이하다. 이는, 네트워크 디스패쳐는 상이한 시스템간의 연결을 분할하지만, 이러한 네트워크 디스패쳐는 모든 외래 포트 번호에 주의하는 단일 소켓 번호를 사용하므로 여전히 병목이 존재하기 때문이다. 또한, 본 발명의 메커니즘은 요구를 생성하는 클라이언트에 대하여 변경을 요하지 않는다. 외래 포트를 서로 다른 소켓들에 할당할 수 있도록 하기 위하여 TCP/IP 스택에 대한 변경을 필요로 할 뿐이다.
도 4에서, 본 발명의 바람직한 실시예에 따라 연결 요구를 처리하는 프로세스의 흐름도가 도시된다. 도 4에서 도시된 프로세스는 도 3의 운영 시스템 커널(302)과 같은 운영 시스템으로 구현될 수 있다. 본 예에서, 본 메커니즘은 TCP/IP 스택으로 구현된다.
본 프로세스는 클라이언트로부터 인입되는 연결 요구를 기다리는 단계(단계 400)로부터 시작된다. 요구가 수신된 후, 커널에서 로컬 포트(LP), 로컬 포트 IP(LIP) 주소 및 외래 IP(FIP) 주소가 일치하는 소켓이 선택된다(단계 402). 본 예에서, 각각 하나의 외래 포트 서브세트에 할당되는 다수의 소켓이 존재한다. 단계(402)에서 이 소켓들 중 하나를 선택하여 처리한다.
이어서, 상기 요구의 외래 포트 세트가 상기 소켓에 할당된 외래 포트 세트의 일부인지에 대한 판단이 행해진다(단계 404). 만일 상기 요구의 외래 포트가 상기 선택된 소켓에 대한 세트 내에 있지 않으면, 소켓 목록의 종단부에 도달했는지에 대한 판단이 행해진다(단계 406). 이 단계는 모든 소켓이 처리되었는지를 판단하는 데에 사용된다. 만일 모든 소켓이 처리되지 않았으면, 단계(402)로 복귀하여 또 다른 소켓을 선택한다. 만일 모든 소켓이 처리되었으면, 상기 연결을 거부하고(단계 408), 그 후 프로세스는 종결된다.
단계(404)에서, 만일 상기 요구의 외래 포트가 상기 소켓에 할당된 외래 포트 세트 내에서 발견되면, 상기 연결은 소켓으로 전달되고(단계 408), 그 후 프로세스는 종결된다. 본 예에서, 서버 프로세스 중 하나가 연결 요구를 처리한다.
도 5에서, 본 발명의 일 실시예에 따라 서버 프로세스를 생성하고 제거하는 프로세스의 흐름도가 도시된다. 도 5에서 도시된 프로세스는 도 3의 서버(304)와 같은 어플리케이션으로 구현될 수 있다. 이 서버는, 예를 들어 웹 서버, 데이터베이스 서버 또는 FTP 서버일 수 있다.
본 프로세스는 네트워크 부하(network load)를 재계산하는 단계(단계 500)로부터 시작된다. 네트워크 부하는 다양한 공지된 프로세스를 통하여 계산될 수 있다. 네트워크 부하가 재계산된 후, 상기 부하가 제1 임계값(threshold)을 초과하여 증가했는지에 대한 판단이 행해진다(단계 502). 만일 부하가 이 임계값을 초과 하여 증가하지 않았으면, 부하가 제2 임계값 미만으로 감소했는지에 대한 판단이 행해진다(단계 504). 임계값을 설정하는 데에 사용될 수 있는 파라미터 중 하나는 인입되는 연결의 비율이다. 분당 y개의 연결이 인입되는 비율로 상한 임계값을 설정하고, 분당 x개의 연결이 인입되는 비율로 하한 임계값을 설정할 수 있다. 이러한 임계값의 실제 값은 특정 구현에 의존한다.
만일 부하가 제2 임계값 미만으로 감소하지 않았으면, 네트워크 부하의 다음 번 재계산을 위한 타임아웃(timeout)이 설정된다(단계 506). 이어서, 본 프로세스는 타이머가 만료되는 것을 기다린다(단계 508). 타이머가 만료될 때, 단계(500)로 복귀하여 네트워크 부하를 재계산한다.
단계(504)에서, 만일 부하가 제2 임계값 미만으로 감소하였으면, 서버의 수가 감소되고 포트 분배가 변경된다(단계 510). 본 예에서, 남은 각각의 서버에 대하여 유일한 외래 포트 서브세트를 설정하도록 외래 포트에 대한 포트 분배가 변경된다.
단계(502)에서, 만일 부하가 제1 임계값을 초과하여 증가하였으면, 서버의 수가 증가되고 포트 분배가 변경된다(단계 512). 이 경우, 상기 포트 분배는, 신규로 생성된 서버를 포함한 모든 서버에게 외래 포트를 분배하도록 변경된다. 추가되거나 제거되는 서버의 수는 특정 구현에 의존한다. 또한, 추가되거나 제거되는 서버의 수는 네트워크 부하가 임계값보다 얼마나 증가 또는 감소하였는가에 의존할 수 있다. 단계(502)의 제1 임계값 및 단계(504)의 제2 임계값은 특정 구현에 따라 같은 값 또는 다른 값일 수 있다.
이처럼, 본 발명은 외래 포트 분배에 기초하여 서버 부하를 분배하는 방법, 장치 및 컴퓨터 명령을 제공한다. 본 발명의 메커니즘은 외래 포트 범위를 서브세트로 분할하고 이러한 서브세트를 서로 다른 서버에 할당함으로써, 현존하는 병목을 회피한다. 예시된 예에서, 각 서브세트는 다른 서브세트들에 대하여 유일하며, 실질적으로 같은 수의 포트를 가진다. 물론, 특정 구현에 따라, 서브세트들은 중첩되는 외래 포트 번호를 포함할 수 있으며 일부 서브세트는 다른 서브세트보다 많은 외래 포트를 포함할 수 있다. 다수의 서버가, 외래 포트 서브세트가 할당된 서로 다른 소켓에 주의하며(listen for), 하나 이상의 서버 또는 프로세스가 클라이언트로부터의 연결에 대한 요구에 주의하여 이를 처리할 수 있다.
본 발명은 완전히 기능하는 데이터 처리 시스템에 의하여 설명되었지만, 본 발명의 프로세스는 명령을 포함하는 컴퓨터 판독 가능 기록 매체의 형태 및 다양한 형태로서 배포될 수 있으며, 본 발명이 상기 배포를 운반하는 데에 실제로 사용되는 신호 포함 매체의 특정 유형에 관계없이 적용될 수 있다는 점을 당업자가 이해할 수 있다는 점에 주의해야 한다. 컴퓨터 판독 가능 기록 매체는, 플로피 디스크, 하드 디스크 드라이브, RAM, CD-ROM, DVD-ROM과 같은 기록 가능형 매체와, 예를 들어 라디오 주파수 및 광파 전송과 같은 전송 형태를 이용하는 디지털 및 아날로그 통신 링크, 유선 또는 무선 통신 링크와 같은 전송형 매체를 포함한다. 컴퓨터 판독 가능 기록 매체는 특정 데이터 처리 시스템에서의 실제 사용을 위하여 디코딩되는 코딩된 포맷 형태를 취할 수 있다.
본 발명의 설명은 예시 및 설명의 목적으로 제공되었으며, 본 발명을 개시된 형태로 제한하고자 하는 것이 아니다. 많은 변형 및 변경이 당업자에게는 명백할 것이다. 본 실시예는 본 발명의 원리와 실제적인 응용을 가장 잘 설명하고, 당업자가 다양한 실시예에 대하여 그 특정 사용에 적합한 다양한 변경과 함께 본 발명을 이해할 수 있도록 선택되고 설명되었다.

Claims (23)

  1. 데이터 처리 시스템에서 요구(request)를 처리하는 방법에 있어서,
    요구를 처리하기 위한 복수의 프로세스를 제공하는 단계 - 상기 복수의 프로세스의 각각은 복수의 외래 포트(foreign port) 내의 하나의 외래 포트 서브세트(a subset of foreign ports)를 할당받음 - 와,
    요구를 수신하는 것에 응답하여 상기 요구의 외래 포트를 식별하는 단계와,
    상기 요구의 상기 외래 포트와 일치하는 외래 포트를 포함하는 외래 포트 서브세트를 할당받은 프로세스에게 상기 요구를 송신하여 상기 프로세스가 상기 요구를 처리하도록 하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서, 프로세스에 할당되는 외래 포트 세트가 상기 복수의 외래 포트 내의 다른 서브세트들에 대하여 유일하도록 외래 포트 서브세트가 할당되는 방법.
  3. 제1항에 있어서, 상기 요구는 요구자(requestor)로부터의 요구이며, 상기 요구를 처리하는 상기 프로세스는 상기 요구자와의 연결을 설정하는 방법.
  4. 제1항에 있어서, 상기 요구는 또한 로컬 포트 및 로컬 IP 주소를 포함하며,
    만일 상기 로컬 포트 및 상기 로컬 IP 주소가 상기 프로세스에 대한 로컬 포트 및 상기 프로세스에 대한 로컬 IP 주소와 일치하면, 상기 식별하는 단계를 시작하는 단계를 더 포함하는 방법.
  5. 제1항에 있어서,
    네트워크 부하(network load)를 계산하는 단계와,
    만일 상기 네트워크 부하가 제1 선택 임계값(a first selected threshold)를 초과하여 증가하였으면 상기 복수의 프로세스에 프로세스를 추가하는 단계와,
    만일 상기 네트워크 부하가 제2 선택 임계값(a second selected threshold) 미만으로 감소하였으면 상기 복수의 프로세스로부터 프로세스를 제거하는 단계
    를 더 포함하는 방법.
  6. 제1항에 있어서, 상기 복수의 프로세스 내의 하나의 프로세스는 마스터 프로세스(master process)이고, 상기 복수의 프로세스의 나머지 프로세스는 슬레이브 프로세스(slave process)인 방법.
  7. 제1항에 있어서, 상기 프로세스가 상기 요구를 수신하는 것에 응답하여 상기 요구를 처리하기 위한 슬레이브 프로세스를 생성(spawning)하는 단계를 더 포함하는 방법.
  8. 삭제
  9. 요구를 처리하기 위한 데이터 처리 시스템에 있어서,
    버스 시스템과,
    상기 버스 시스템에 연결되며 명령 세트를 포함하는 메모리와,
    상기 버스 시스템에 연결되는 통신 어댑터와,
    상기 버스 시스템에 연결되는 처리 장치
    를 포함하고,
    상기 처리 장치는 요구를 처리하기 위한 복수의 프로세스 - 상기 복수의 프로세스의 각각은 복수의 외래 포트 내의 하나의 외래 포트 서브세트를 할당받음 - 를 제공하고, 요구를 수신하는 것에 응답하여 상기 요구의 외래 포트를 식별하며, 상기 요구의 상기 외래 포트와 일치하는 외래 포트를 포함하는 외래 포트 서브세트를 할당받은 프로세스에게 상기 요구를 송신하기 위한 명령 세트를 실행하는 데이터 처리 시스템.
  10. 삭제
  11. 요구를 처리하는 데이터 처리 시스템에 있어서,
    요구를 처리하기 위한 복수의 프로세스를 제공하는 제공 수단 - 상기 복수의 프로세스의 각각은 복수의 외래 포트 내의 하나의 외래 포트 서브세트를 할당받음 - 과,
    요구를 수신하는 것에 응답하여 상기 요구의 외래 포트를 식별하는 식별 수단과,
    상기 요구의 상기 외래 포트와 일치하는 외래 포트를 포함하는 외래 포트 서브세트를 할당받은 프로세스에게 상기 요구를 송신하여 상기 프로세스가 상기 요구를 처리하도록 하는 송신 수단
    을 포함하는 데이터 처리 시스템.
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 데이터 처리 시스템에서 수신된 요구를 처리하기 위한 컴퓨터 프로그램을 포함하는 컴퓨터 판독 가능 기록 매체에 있어서, 상기 컴퓨터 프로그램은 상기 데이터 처리 시스템에 의하여 수행되었을 때 제1항 내지 제7항 중 어느 한 항에 기재된 방법을 수행하는 컴퓨터 판독 가능 기록 매체.
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
KR1020040006429A 2003-03-13 2004-01-31 외래 포트 분배에 기초하여 서버 부하를 분담하는 방법 및장치 KR100613318B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/388,973 2003-03-13
US10/388,973 US7310667B2 (en) 2003-03-13 2003-03-13 Method and apparatus for server load sharing based on foreign port distribution

Publications (2)

Publication Number Publication Date
KR20040080951A KR20040080951A (ko) 2004-09-20
KR100613318B1 true KR100613318B1 (ko) 2006-08-21

Family

ID=32962170

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040006429A KR100613318B1 (ko) 2003-03-13 2004-01-31 외래 포트 분배에 기초하여 서버 부하를 분담하는 방법 및장치

Country Status (3)

Country Link
US (2) US7310667B2 (ko)
JP (2) JP2004280815A (ko)
KR (1) KR100613318B1 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7310667B2 (en) * 2003-03-13 2007-12-18 International Business Machines Corporation Method and apparatus for server load sharing based on foreign port distribution
US7263555B2 (en) * 2003-04-30 2007-08-28 International Business Machines Corporation Apparatus and method for dynamic sharing of server network interface resources
US8713306B1 (en) * 2003-10-14 2014-04-29 Symantec Corporation Network decoys
JP2006287286A (ja) * 2005-03-31 2006-10-19 Saxa Inc Ip通信方法およびip通信装置
US8619790B2 (en) * 2005-06-07 2013-12-31 Broadcom Corporation Adaptive cache for caching context and for adapting to collisions in a session lookup table
US20060274787A1 (en) * 2005-06-07 2006-12-07 Fong Pong Adaptive cache design for MPT/MTT tables and TCP context
WO2009143152A1 (en) * 2008-05-19 2009-11-26 Citrix Systems, Inc. Systems and methods for automatically testing an application
US9430297B2 (en) * 2008-12-15 2016-08-30 International Business Machines Corporation Load balancing of adapters on a multi-adapter node
US8825859B2 (en) * 2009-12-23 2014-09-02 Citrix Systems, Inc. System and methods for mixed mode of IPv6 and IPv4 DNS of global server load balancing
US9098335B2 (en) 2009-12-23 2015-08-04 Citrix Systems, Inc. Systems and methods for managing spillover limits in a multi-core system
US8635344B2 (en) * 2009-12-23 2014-01-21 Citrix Systems, Inc. Systems and methods for managing ports for RTSP across cores in a multi-core system
US20120102185A1 (en) * 2010-10-20 2012-04-26 Sony Computer Entertainment America Inc. Resource management of server hosts in online game environment
US9003002B2 (en) 2012-01-18 2015-04-07 Microsoft Technology Licensing, Llc Efficient port management for a distributed network address translation
US20150106425A1 (en) * 2013-10-10 2015-04-16 International Business Machines Corporation Performance Optimization in a Secured Computing Environment
CN105791176A (zh) * 2014-12-23 2016-07-20 中兴通讯股份有限公司 信息技术it设备端口的确定方法及装置
JP7338384B2 (ja) * 2019-10-03 2023-09-05 トヨタ自動車株式会社 車両の演算処理装置、サーバコンピュータおよびプログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010036550A (ko) * 1999-10-09 2001-05-07 서평원 멀티포트 제어기에서의 멀티포트 제어 방법
KR20020027316A (ko) * 1999-05-17 2002-04-13 인빅타 네트워크스, 인크. 통신 방법, 통신 네트워크에 대한 침입 방지 방법 및 침입시도 검출 시스템

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5488533A (en) * 1994-02-07 1996-01-30 International Business Machines Corporation Methods and apparatus for isolating a power network from a load during an overcurrent condition
JP4008049B2 (ja) * 1995-03-20 2007-11-14 富士通株式会社 アドレス送信装置、アドレス送信方法およびアドレス送信システム
US5793763A (en) * 1995-11-03 1998-08-11 Cisco Technology, Inc. Security system for network address translation systems
US6104717A (en) * 1995-11-03 2000-08-15 Cisco Technology, Inc. System and method for providing backup machines for implementing multiple IP addresses on multiple ports
US6026425A (en) * 1996-07-30 2000-02-15 Nippon Telegraph And Telephone Corporation Non-uniform system load balance method and apparatus for updating threshold of tasks according to estimated load fluctuation
JP3312595B2 (ja) 1998-05-01 2002-08-12 日本電気株式会社 複数プロセスからなる通信処理システムにおける端末接続制御方法及び方式
JP3872909B2 (ja) 1998-11-04 2007-01-24 株式会社東芝 クラスタシステム
JP2001022714A (ja) 1999-07-12 2001-01-26 Hitachi Ltd サーバ計算機、負荷分散システム、電話交換システムおよび負荷分散方法
JP2002150000A (ja) 2000-11-13 2002-05-24 Dainippon Screen Mfg Co Ltd サーバシステム
US6732116B2 (en) * 2001-06-21 2004-05-04 International Business Machines Corporation Method and system for dynamically managing data structures to optimize computer network performance
US20030167295A1 (en) * 2002-03-01 2003-09-04 Verity, Inc. Automatic network load balancing using self-replicating resources
US7096228B2 (en) * 2002-03-27 2006-08-22 Microsoft Corporation Method and system for managing data records on a computer network
US7310667B2 (en) * 2003-03-13 2007-12-18 International Business Machines Corporation Method and apparatus for server load sharing based on foreign port distribution

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020027316A (ko) * 1999-05-17 2002-04-13 인빅타 네트워크스, 인크. 통신 방법, 통신 네트워크에 대한 침입 방지 방법 및 침입시도 검출 시스템
KR20010036550A (ko) * 1999-10-09 2001-05-07 서평원 멀티포트 제어기에서의 멀티포트 제어 방법

Also Published As

Publication number Publication date
JP2008071359A (ja) 2008-03-27
US20080040454A1 (en) 2008-02-14
US7310667B2 (en) 2007-12-18
US7487242B2 (en) 2009-02-03
US20040181595A1 (en) 2004-09-16
JP2004280815A (ja) 2004-10-07
KR20040080951A (ko) 2004-09-20

Similar Documents

Publication Publication Date Title
US7487242B2 (en) Method and apparatus for server load sharing based on foreign port distribution
US20020152310A1 (en) Method and apparatus to dynamically determine the optimal capacity of a server in a server farm
US6671723B2 (en) Method and apparatus for scanning a web site in a distributed data processing system for problem determination
US6807542B2 (en) Method and apparatus for selective and quantitative rights management
US8140644B2 (en) Method and apparatus for updating application servers
US6928440B2 (en) Delayed storage of cookies with approval capability
US7058727B2 (en) Method and apparatus load balancing server daemons within a server
US20040139151A1 (en) Apparatus and method for selecting a web service in response to a request from a client device
US6931428B2 (en) Method and apparatus for handling requests for content in a network data processing system
JP5100004B2 (ja) 情報処理システム、サーバ装置、情報処理装置及びそれらの制御方法
US6308210B1 (en) Method and apparatus for traffic control and balancing for an internet site
JP2007219608A (ja) 負荷分散処理プログラム及び負荷分散装置
US6725252B1 (en) Method and apparatus for detecting and processing multiple additional requests from a single user at a server in a distributed data processing system
US7137009B1 (en) Method and apparatus for securing a cookie cache in a data processing system
US8019884B2 (en) Proxy content for submitting web service data in the user&#39;s security context
KR100834361B1 (ko) 단일 시스템에서 효율적으로 지원하는 다중 원시 네트워크 프로토콜 구현
CA2283048A1 (en) Information processing method, information processing apparatus, and storage medium for storing an information processing program
US7865902B2 (en) Method and apparatus for optimizing web services binding
US7111325B2 (en) Apparatus, system and method of double-checking DNS provided IP addresses
US6418402B1 (en) Method and system for utilizing machine translation as input correction
US20060230263A1 (en) Method and apparatus to guarantee configuration settings in remote data processing systems
US6968356B1 (en) Method and apparatus for transferring data between a client and a host across a firewall
US20060224720A1 (en) Method, computer program product, and system for mapping users to different application versions
US7392313B2 (en) Method and apparatus for partitioned environment for web application servers
EP1754145A1 (en) Method and apparatus for supporting multiple versions of a web services 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: 20120725

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20130719

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee