KR101671549B1 - 스마트 라우팅 - Google Patents
스마트 라우팅 Download PDFInfo
- Publication number
- KR101671549B1 KR101671549B1 KR1020117022956A KR20117022956A KR101671549B1 KR 101671549 B1 KR101671549 B1 KR 101671549B1 KR 1020117022956 A KR1020117022956 A KR 1020117022956A KR 20117022956 A KR20117022956 A KR 20117022956A KR 101671549 B1 KR101671549 B1 KR 101671549B1
- Authority
- KR
- South Korea
- Prior art keywords
- computer
- module
- server module
- server
- router
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
라우터 모듈은 클라이언트 요청을 수신한다. 그 요청을 수신하는 것에 응답하여, 라우터 모듈은 그 요청을 충족시키는 서버 모듈의 네트워크 주소를 획득한다. 그런 다음, 라우터 모듈은 라우터 모듈이 서버 모듈과 동일한 물리적 컴퓨터 상에서 실행 중인지 여부를 판단한다. 서버 모듈이 동일한 물리적 컴퓨터 상에서 실행 중이 아니라고 라우터 모듈이 판단하면, 라우터 모듈은 표준 네트워크 이송을 이용하여 클라이언트 요청을 서버 모듈로 전달한다. 서버 모듈이 동일한 컴퓨터 상에서 실행 중이라고 라우터 모듈이 판단하면, 라우터 모듈은 최적 로컬-머신-전용 이송과 같은 최적 이송을 사용하여 클라이언트 요청을 서버 모듈로 전달한다.
Description
본 발명은 스마트 라우팅 기술에 관한 것이다.
많은 유형의 클라이언트-서버 아키텍처에서, 클라이언트에 의해 생성된 요청이 그 요청을 충족시키는 서버에 도달할 때까지 클라이언트에 의해 생성된 요청에 대한 한 형태의 라우팅이 수행된다. 이러한 유형의 라우팅은 보다 높은 품질의 서비스를 소정의 카테고리의 클라이언트로 제공하거나 한 그룹의 서버 컴퓨터들 사이에서 부하를 분산시키는 것과 같은 많은 이유를 위해 발생할 수 있다.
일부의 경우에, 라우팅을 수행하는 서버와 클라이언트 요청을 충족시키는 서버는 동일한 물리적 서버이다. 이들의 경우에, 서버는 대개 클라이언트 요청을 네트워크를 거쳐 라우팅하며 처리를 위해 동일한 물리적 서버로 다시 라우팅한다. 이러한 유형의 라우팅은 비효율적일 수 있다.
본 명세서의 개시 내용은 이들 및 다른 고려 사항에 관해 제시된다.
본 명세서에서는 스마트 라우팅에 대한 기술이 설명된다. 특히, 본 명세서에서 제시된 개념 및 기술의 구현을 통해, 충족시키는 서버와 라우터가 동일한 물리적 컴퓨터 시스템 상에 존재하는 경우에, 클라이언트 요청을 라우터로부터 서버로 운반하기 위해 그리고 응답을 다시 운반하기 위해 최적 이송이 이용된다. 예를 들어, 최적 이송은 클라이언트 요청이 네트워크를 거쳐 라우팅될 필요가 없는 로컬-머신-전용 이송(local-machine-only transport)일 수 있다. 오히려, 로컬-머신-전용 이송은 네트워크 스택(network stack)을 이용하지 않으면서 클라이언트 요청을 라우팅하기 위한 최적 메커니즘을 제공한다.
일 실시예에 따라, 라우터 모듈은 클라이언트 요청을 수신한다. 그러한 요청을 수신하는 것에 응답하여, 라우터 모듈은 그 요청을 충족시키는 서버 모듈의 네트워크 주소를 획득한다. 예를 들어, 라우터 모듈은 서버 모듈의 네트워크 주소를 획득하기 위해 부하 분산 장치(load balancer)에게 질의할 수 있다. 그런 다음, 라우터 모듈은 서버 모듈의 네트워크 주소를 기초로 라우터 모듈이 서버 모듈과 동일한 물리적 컴퓨터 상에서 실행 중인지 여부를 판단한다. 일 실시예에서, 라우터 모듈은 이러한 판단을 수행하기 위해 서버 모듈의 네트워크 주소를 라우터 모듈이 실행 중인 서버가 응답하는 네트워크 주소의 리스트와 비교한다.
라우터 모듈이 서버 모듈이 동일한 물리적 컴퓨터 상에서 실행 중이 아니라고 판단하면, 라우터 모듈은 전송 제어 프로토콜/인터넷 프로토콜(transmission control protocol/internet protocol(TCP/IP)), 하이퍼-텍스트 이송 프로토콜(hyper-text transport protocol(HTTP)), 또는 또 다른 유형의 이송과 같은 표준 네트워크 이송(standard network transport)을 이용하여 클라이언트 요청을 서버 모듈로 전달한다. 라우터 모듈이 서버 모듈이 동일한 컴퓨터 상에서 실행 중이라고 판단하면, 라우터 모듈은 최적 이송(optimized transport)을 사용하여 클라이언트 요청을 서버 모듈로 전달한다. 예를 들어, 하나의 특정 구현에서, 최적 이송은 TCP 이송과 같은 이진 암호화(binary encoding)를 이용하는 이송을 포함할 수 있다. 또 다른 구현에서, 최적 이송은 네트워크 스택을 사용하지 않으면서 라우터 모듈과 서버 모듈 사이에 통신을 가능하게 하기 위한, 네임드 파이프 바인딩(named pipe binding)과 같은 최적 로컬-머신-전용 이송을 포함한다. 서버 모듈로부터 서버 모듈로 응답을 전송하기 위해 최적 이송이 또한 이용된다.
전술된 본 발명은 컴퓨터 제어식 장치, 컴퓨터 프로세스, 컴퓨터 시스템(computing system), 또는 컴퓨터 판독 가능한 매체와 같은 제조자의 품목으로서 또한 구현될 수 있다는 것이 이해되어야 한다. 이들 특징 및 다양한 다른 특징은 다음의 발명을 실시하기 위한 구체적인 내용을 읽고 첨부된 도면을 참조함으로써 명백할 것이다.
이러한 과제의 해결 수단은 상세한 설명에서 추가로 후술되는 몇몇의 개념을 단순화된 형태로 소개하기 위해 제공된다. 이러한 과제의 해결 수단은 청구된 본 발명의 주요 특징 또는 필수 특징을 식별하도록 의도되지도 않으며 청구된 본 발명의 범위를 제한하기 위해 이러한 과제의 해결 수단이 사용되도록 의도되지도 않는다. 또한, 청구된 본 발명은 이러한 개시 사항의 임의의 일부분에서 언급된 임의의 또는 모든 단점을 해결하는 구현예로 제한되지 않는다.
도 1은 본 명세서에서 제시된 실시예를 위한 하나의 예시적인 운영 환경을 도시하는 네트워크 다이어그램이다.
도 2는 최적 라우팅을 위해 본 명세서에서 제시된 일 실시예의 양태를 도시하는 네트워크 다이어그램이다.
도 3은 본 명세서에서 제시된 일 실시예에서 클라이언트 요청의 최적 라우팅을 위한 하나의 예시적인 프로세스를 도시하는 흐름도이다.
도 4는 본 명세서에서 제시된 실시예의 양태를 구현할 수 있는 컴퓨터 시스템을 위한 예시적인 컴퓨터 하드웨어 및 소프트웨어 아키텍처를 도시하는 컴퓨터 아키텍처 다이어그램이다.
도 2는 최적 라우팅을 위해 본 명세서에서 제시된 일 실시예의 양태를 도시하는 네트워크 다이어그램이다.
도 3은 본 명세서에서 제시된 일 실시예에서 클라이언트 요청의 최적 라우팅을 위한 하나의 예시적인 프로세스를 도시하는 흐름도이다.
도 4는 본 명세서에서 제시된 실시예의 양태를 구현할 수 있는 컴퓨터 시스템을 위한 예시적인 컴퓨터 하드웨어 및 소프트웨어 아키텍처를 도시하는 컴퓨터 아키텍처 다이어그램이다.
다음의 상세한 설명은 최적 라우팅을 위한 기술에 관한 것이다. 본 명세서에서 설명된 본 발명이 컴퓨터 시스템 상의 운영 체제 및 애플리케이션 프로그램의 실행과 함께 실행하는 일반적인 컨텍스트(context)의 프로그램 모듈로 제시되는 반면, 당업자라면 다른 유형의 프로그램 모듈과 함께 다른 구현이 수행될 수 있다는 것을 인식할 것이다. 일반적으로, 프로그램 모듈은 루틴(routine), 프로그램, 컴포넌트(component), 데이터 구조, 및 특정 임무를 수행하거나 특정 추상적 데이터 유형을 구현하는 다른 유형의 구조를 포함한다. 아울러, 당업자라면 본 명세서에서 설명된 본 발명이 핸드-헬드 장치(hand-held device), 멀티프로세서 시스템, 마이크로프로세서 기반(microprocessor-based) 또는 프로그램 가능한 가전 제품, 미니컴퓨터, 메인 프레임 컴퓨터 등을 포함하는 다른 컴퓨터 시스템 구성을 이용하여 실시될 수 있다는 것을 이해할 것이다.
다음의 상세한 설명에서, 상세한 설명의 일부를 형성하며 특정 실시예 또는 예를 예시를 통해 도시한 첨부 도면을 참조한다. 이제, 몇 개의 도표 모두에서 유사한 부호가 유사한 요소를 나타내고 있는 도면을 참조하여, 최적 라우팅을 위한 컴퓨터 시스템 및 방법론의 양태가 제시될 것이다.
이제 도 1을 다시 참조하여, 본 명세서에서 제시된 실시예를 위한 하나의 예시적인 운영 환경에 관한 설명이 제공될 것이다. 특히, 도 1은 본 명세서에서 제시된 실시예에 대한 예시적인 운영 환경을 형성하는 시스템(100)의 양태를 도시한다. 도 1에 도시된 바와 같이, 클라이언트 컴퓨터(104)는 네트워크(106)를 통해 하나 이상의 서버 컴퓨터(102A-102B)에 접속한다. 네트워크(106)와 같은 본 명세서에서 논의된 네트워크가 단지 예시적이며, 본 명세서에서 제시된 기술의 실제 구현에서는 보다 많은 혹은 보다 적은 네트워크가 이용될 수 있다는 것이 이해되어야 한다. 아울러, 도 1에는 단일 네트워크(106)가 예시되었지만, 본 명세서에서 제시된 다양한 실시예에서는 예시된 것보다 많은 네트워크가 이용될 수 있다는 것도 또한 이해되어야 한다. 아울러, 네트워크(106)는 예를 들어 인터넷에 걸쳐서 연결될 수 있다는 것이 이해되어야 한다. 예를 들어, 클라이언트 컴퓨터(104)는 하나의 대륙에 위치하고 서버 컴퓨터(102A-102B)는 또 다른 대륙에 위치할 수 있다.
클라이언트 컴퓨터(104)가 서버 컴퓨터로 요청을 발생시킬 수 있는 임의의 유형의 컴퓨터 시스템(computing system)을 포함할 수 있다는 것이 또한 이해되어야 한다. 예를 들어, 클라이언트 컴퓨터(104)는 표준 데스크탑 또는 랩탑 컴퓨터 시스템, 서버 컴퓨터, 핸드헬드 컴퓨터 시스템(handheld computing system), 셋탑 박스(set top box), 또는 데이터 보유 능력(data capability)을 갖는 무선 이동 전화를 포함할 수 있다.
도 1에 도시된 바와 같이, 각각의 서버 컴퓨터(102A-102B)는 각각의 라우터 모듈(108A-108B) 및 각각의 서버 모듈(110A-110B)을 갖출 수 있다. 라우터 모듈(108A-108B)은 클라이언트 컴퓨터(104)로부터 요청을 수신하는 소프트웨어 프로그램을 포함한다. 또한 라우터 모듈(108A-108B)은 클라이언트 컴퓨터(104)로부터 수신된 요청을 처리를 위해 적절한 서버 모듈(110A-110B)로 라우팅하기 위한 기능을 제공한다. 각각의 서버 모듈(110A-110B)로부터의 응답은 본래의 요청을 서버 모듈로 전달했던 라우터 모듈(108A-108B)로 되돌려진다. 그런 다음, 라우터 모듈은 응답을 클라이언트 컴퓨터(104)로 전달한다. 서버 모듈(110A-110B)이 요청을 수신하면서 요청에 응답하도록 구성된 소프트웨어 컴포넌트를 포함한다는 것이 이해되어야 한다. 예를 들어, 서버 모듈(110A-110B)은 웹 서버 프로그램, 웹 서비스 및 다른 유형의 서버 컴포넌트를 포함할 수 있다.
클라이언트 컴퓨터(104)로부터 수신된 클라이언트 요청이 어떤 서버 모듈(110A-110B)로 라우팅되어야 하는지를 판단하기 위해, 라우터 모듈(108A-108B)은 부하 분산 장치(load balancer)(112)의 서비스를 이용하도록 구성된다. 부하 분산 장치는 클라이언트 컴퓨터(104)로부터의 요청을 충족시키기 위한 서버 모듈(110A-110B) 중 하나의 서버 모듈을 식별하도록 구성된 소프트웨어 또는 하드웨어 컴포넌트이다. 부하 분산 장치(112)가 적절한 서버 모듈(110A-110B)을 식별하기 위해 보다 높은 품질의 서비스를 어떤 카테고리의 클라이언트 컴퓨터(104)로 제공하는 서버 컴퓨터(102A-102B)의 현재 처리 부하 및 다른 요인을 포함하지만 이제 제한되지 않는 다양한 알고리즘을 이용할 수 있다는 것이 이해되어야 한다. 본 명세서에서 제시된 실시예가 특정 클라이언트 요청을 충족시켜야 하는 서버 모듈(110A-110B)을 식별하기 위해 부하 분산 장치(112)에 의해 이용된 임의의 특정 메커니즘에 따라 달라지지 않는다는 것이 이해되어야 한다.
요청이 라우터 모듈(108A-108B) 중 하나의 라우터 모듈에 의해 클라이언트 컴퓨터(104)로부터 수신될 때, 요청을 수신하는 라우터 모듈은 클라이언트 요청을 충족시키는 서버 모듈(110A-110B)의 네트워크 주소를 위해 부하 분산 장치(112)에게 질의할 것이다. 일단 라우터 모듈(108A-108B)이 요청을 충족시키기 위한 서버 모듈(110A-110B)의 네트워크 주소를 가지면, 라우터 모듈은 클라이언트 요청을 적절한 서버 모듈(110A-110B)로 전달한다. 예를 들어, 라우터 모듈(108A)이 클라이언트 요청을 서버 모듈(110B)로 전달하도록 명령을 받게 되면, 적절한 네트워크 접속을 거쳐 서버 모듈(110B)과의 네트워크 접속(114B)이 설정된다. 마찬가지로, 라우터 모듈(108B)이 클라이언트 요청을 서버 모듈(110A)로 전달하도록 명령을 받게 되면, 클라이언트 요청은 네트워크 접속(114D)을 통해 전달된다. 마찬가지로, 라우터 모듈(108A)이 요청을 서버 모듈(110A)로 전달하도록 명령을 받게 되면, 클라이언트 요청을 위해 라우터 모듈과 서버 모듈(110A) 사이에 네트워크 접속(114A)이 설정된다. 마찬가지로, 라우터 모듈(108B)이 클라이언트 요청을 서버 모듈(110B)로 전달하도록 명령을 받게 되면, 라우터 모듈(108B)과 서버 모듈(110B) 사이에 네트워크 접속(114C)이 설정되고, 클라이언트 요청이 그를 통해 전달된다. 적절한 서버 모듈(110A-110B)로부터의 응답도 또한 동일한 네트워크 접속을 통해 라우터 모듈(108A-108B)로 되돌려진다.
도 1에 예시된 예에서, 비록 라우터 모듈(108A)과 서버 모듈(110A)이 동일한 서버 컴퓨터(102A) 상에서 실행 중이더라도, 이들 컴포넌트 사이에 네트워크 접속(114A)이 설정된다. 마찬가지로, 비록 라우터 모듈(108B)과 서버 모듈(110B)이 동일한 물리적 서버 컴퓨터(102B) 상에서 실행 중이더라도, 이들 컴포넌트 사이에 네트워크 접속(114C)이 설정된다. 이런 방식으로 네트워크 접속(114A 및 114C)을 설정하는 것은 매우 비효율적이다. 도 2 내지 도 4를 참조하여 아래 설명된 다양한 개념 및 기술이 이러한 특정 라우팅 시나리오를 해결한다.
이제 도 2를 다시 참조하여, 라우터 모듈(108A)과 서버 모듈(110A) 사이에 최적 라우팅을 제공하기 위한 예시적인 시스템(200)의 양태가 설명될 것이다. 도 2에 도시된 시스템(200)에서, 라우터 모듈(108A)과 서버 모듈(110A)이 동일한 물리적 서버 컴퓨터(102A) 상에서 실행 중일 때, 라우터 모듈(108A)은 서버 모듈(110A)로 최적 라우팅을 생성하도록 구성된다. 이러한 프로세스에 관한 추가 설명은 아래에 제공될 것이다.
도 2에 도시된 바와 같이, 라우터 모듈(108A)은 클라이언트 요청(202)을 클라이언트 컴퓨터(104)로부터 수신할 수 있다. 클라이언트 요청(202)을 수신한 것에 응답하여, 라우터 모듈(108A)은 클라이언트 요청(202)을 충족시키는 서버 모듈(110A-110B)의 네트워크 주소를 위한 요청(204)을 부하 분산 장치(112)로 전송한다. 요청(204)을 수신하는 것에 응답하여, 부하 분산 장치(112)는 클라이언트 요청(202)을 충족시키는 서버 모듈(110A-110B)의 표적 주소(206)를 되돌린다.
라우터 모듈(108A)이 부하 분산 장치(112)로부터 표적 주소(206)를 수신할 때, 라우터 모듈(108A)은 클라이언트 요청(202)을 충족시키는 서버 모듈이 라우터 모듈(108A)과 동일한 물리적 컴퓨터(102A) 상에서 실행 중인지 여부를 판단한다. 예를 들어, 하나의 구현에서, 라우터 모듈(108A)은 표적 주소(206)를 서버 컴퓨터(102A)가 응답하는 네트워크 주소의 리스트(208)와 비교함으로써 이러한 판단을 한다. 표적 주소가 네트워크 주소의 리스트(208) 내에서 식별되면, 라우터 모듈(108A)은 서버 모듈(110A)이 동일한 물리적 서버 컴퓨터(102A) 상에서 실행 중이라고 결론을 내린다. 표적 주소(206)가 네트워크 주소의 리스트(208) 내에 포함되지 않으면, 라우터 모듈(108A)은 클라이언트 요청(202)을 충족시키는 서버 모듈이 서버 컴퓨터(102B)와 같은 또 다른 물리적 컴퓨터 상에서 실행 중이라고 결론을 내린다.
라우터 모듈(108A)이 클라이언트 요청(202)을 충족시키는 서버 모듈(110B)과 같은 서버 모듈이 또 다른 물리적 서버 컴퓨터 상에서 실행 중이라고 결론을 내리면, 라우터 모듈(108A)은 클라이언트 요청(202)을 표준 네트워크 이송(212)을 거쳐 서버 모듈(110B)로 전달한다. 예를 들어, 클라이언트 요청(202)을 적절한 서버 모듈(110B)로 전달하고 클라이언트 요청(202)에 대한 응답을 라우터 모듈(108A)로 되돌려보내기 위해 TCP/IP 이송 메커니즘이 이용될 수 있다.
그러나, 라우터 모듈(108A)이 클라이언트 요청(202)을 충족시키는 서버 모듈이 동일한 물리적 서버 컴퓨터(102A) 상에서 실행 중이라고 판단하면, 라우터 모듈(108A)은 클라이언트 요청(202)을 최적 이송(210)을 통해 적절한 서버 모듈(110A)로 전달한다. 일 실시예에 따라, 최적 이송(210)은 이진 암호화를 이용하는 TCP 이송을 포함한다.
대안적인 실시예에서, 최적 이송(210)은 최적 로컬-머신-전용 이송을 포함한다. 최적 이송(210)은 네트워크 스택(network stack)을 이용하지 않는 이송이며, 따라서 다른 유형의 이송에 비해 고도로 최적화된다. 예를 들어, 일 실시예에서, 최적 로컬-머신-전용 이송은 윈도우즈 커뮤니케이션즈 파운데이션(Windows Communications Foundation(WCF)) 네임드 파이프 바인딩(named pipe binding)을 포함한다. 네임드 파이프 바인딩은 라우터 모듈(108A)과 서버 모듈(110A)이 통신할 수 있게 해주는 서버 컴퓨터(102A) 상의 공유 메모리 영역을 생성한다. 비록 WCF 네임드 파이프 바인딩이 본 명세서에서 설명된 하나의 특정 구현에서 이용되지만, 라우터 모듈(108A)과 서버 모듈(110A)이 동일한 물리적 컴퓨터 상에서 실행 중일 때 이들 컴포넌트 사이에 이송을 생성하기 위해 당업자에게 공지된 다른 유형의 프로세스 간 통신 메커니즘(inter-process communication mechanism)이 이용될 수 있다는 것이 이해되어야 한다. 이러한 프로세스에 관한 추가 설명이 도 3 및 도 4를 참고하여 아래에 제공될 것이다.
이제 도 3을 참조하면, 최적 라우팅을 위해 본 명세서에서 제시된 실시예에 관한 추가 설명이 제공될 것이다. 특히, 도 3은 본 명세서에서 제시된 일 실시예에 따라 라우터 모듈(108A-108B)의 동작의 양태를 예시하는 흐름도이다.
본 명세서에서 설명된 논리 연산이 (1) 컴퓨터 시스템 상에서 실행되는 컴퓨터 구현 작용 또는 프로그램 모듈의 시퀀스로서 그리고/또는 (2) 컴퓨터 시스템 내의 상호접속형 머신 논리 회로(interconnected machine logic circuit) 또는 상호접속형 머신 논리 회로 모듈로서 구현되는 것이 이해되어야 한다. 구현은 컴퓨터 시스템의 성능 및 다른 요건에 따라 달라지는 선택의 문제이다. 따라서, 본 명세서에서 설명된 논리 연산은 상태 연산, 구조 장치, 작용, 또는 모듈로서 다양하게 지칭된다. 이들 연산, 구조 장치, 작용, 및 모듈은 소프트웨어로, 펨웨어로, 특정 목적의 디지털 논리로, 그리고 이들의 임의의 조합으로 구현될 수 있다. 도면에 도시되고 본 명세서에서 설명된 것보다 많거나 적은 연산이 수행될 수 있다는 것이 또한 이해되어야 한다. 또한, 이들 연산은 본 명세서에서 설명된 것과 다른 순서로 수행될 수도 있다.
루틴(300)은 연산(302)에서 시작하며, 연산(302)에서 라우터 모듈(108A)은 서버 컴퓨터(102A)가 통신을 위해 이용하는 네트워크 주소의 리스트(208)를 검색한다. 연산(302)으로부터, 루틴(300)은 연산(304)으로 진행하며, 연산(304)에서 라우터 모듈(108A)은 클라이언트 요청(202)이 예를 들어 클라이언트 컴퓨터(104)와 같은 컴퓨터로부터 수신되었는지 여부를 판단한다. 수신되지 않았으면, 루틴(300)은 그러한 판단이 또 수행되는 연산(304)으로 되돌아간다. 비록 도 3에 도시된 기능이 루프(loop)로 수행되는 것으로 예시되었지만, 다른 실시예는 루핑 메커니즘(looping mechanism)을 이용하지 않을 수 있다는 것이 이해되어야 한다. 예를 들어, 하나의 구현에서, 클라이언트 요청이 수신될 때 도 3에 도시된 프로세스가 개시될 수 있다. 결과적으로, 그러한 구현에서 도 3에 도시된 방식으로 프로세스가 루프 처리될 필요는 없다.
라우터 모듈(108A)이 클라이언트 요청(202)을 수신하면, 루틴(300)은 연산(306)으로 진행한다. 연산(306)에서, 라우터 모듈(108A)은 클라이언트 요청(202)을 충족시키는 서버 모듈(110A-110B)의 표적 주소(206)를 획득하기 위한 요청(204)을 부하 분산 장치(112)로 전송한다. 일단 라우터 모듈(108A)이 표적 주소(206)를 수신하면, 라우터 모듈(108A)은 라우터 모듈(108)과 클라이언트 요청(202)을 충족시킬 서버 모듈(110A-110B)이 동일한 물리적 컴퓨터 시스템 상에서 실행 중인지 여부를 판단하기 위해 표적 주소(206)를 네트워크 주소의 리스트(208) 내에 포함된 네트워크 주소와 비교한다.
라우터 모듈(108)과 클라이언트 요청(202)을 충족시킬 서버 모듈(110A-110B)이 동일한 물리적 컴퓨터 상에서 실행 중이 아니라면, 루틴(300)은 연산(310)으로부터 연산(312)으로 진행한다. 연산(312)에서, 라우터 모듈(108A)은 표준 네트워크 이송(212)을 이용하여 클라이언트 요청(202)을 서버 모듈(110B)과 같은 서버 모듈로 전달하고 클라이언트 요청(202)에 응답하여 서버 모듈(110B)로부터 응답을 수신한다. 연산(312)으로부터, 루틴(300)은 전술된 연산(304)으로 진행하며, 연산(304)에서 또 다른 그러한 클라이언트 요청이 유사한 방식으로 처리될 수 있다.
라우터 모듈(108A)이 클라이언트 요청(202)을 충족시키는 서버 모듈(110A-110B)의 표적 주소가 동일한 물리적 서버 컴퓨터 상에서 실행 중이라고 판단하면, 루틴(300) 연산(310)으로부터 연산(314)으로 진행한다. 연산(314)에서, 라우터 모듈(108A)은 최적 이송(210)을 이용하여 클라이언트 요청(202)을 클라이언트 요청(202)을 충족시킬 서버 모듈(110A)과 같은 서버 모듈로 전송하고 클라이언트 요청(202)에 대한 응답을 수신한다. 전술된 바와 같이, 최적 이송(210)은 일 실시예에서 이진 암호화(binary encoding)를 이용하는 이송을 포함할 수 있다. 예를 들어, 최적 이송(210)은 TCP 이송을 포함할 수 있다. 대안적으로, 최적 이송(210)은 네임드 파이프 바인딩과 같은 이진 암호화를 이용하는 최적 로컬-머신-전용 이송을 포함할 수 있다. 연산(314)으로부터, 루틴(300)은 전술된 연산(304)으로 되돌아가며, 연산(304)에서 또 다른 클라이언트 요청(202)이 유사한 방식으로 수신되거나 처리될 수 있다.
도 4는 최적 라우팅을 위해 본 명세서에서 설명된 소프트웨어 컴포넌트를 상기에서 제시된 방식으로 실행할 수 있는 컴퓨터(400)를 위한 예시적인 컴퓨터 아키텍처를 도시한다. 도 4에 도시된 컴퓨터 아키텍처는 통상적인 데스크탑, 랩탑, 또는 서버 컴퓨터를 예시하며, 클라이언트 컴퓨터(104), 서버 컴퓨터(102A-102B), 및 부하 분산 장치(112) 상에서 실행되는 것으로 설명된 본 명세서에서 제시된 소프트웨어 컴포넌트의 임의의 양태를 실행하기 위해 이용될 수 있다.
도 4에 도시된 컴퓨터 아키텍처는 중앙 처리 장치(central processing unit(CPU))(402), 랜덤 액세스 메모리(RAM)(414) 및 판독 전용 메모리(ROM)(416)을 포함하는 시스템 메모리(408), 및 메모리를 CPU(402)에 연결시키는 시스템 버스(404)를 포함한다. 시동하는 동안과 같이 컴퓨터(400) 내의 요소들 사이에서 정보를 전달하는 것을 용이하게 하는 기본 루틴을 포함하는 기본 입력/출력 시스템이 ROM(416) 내에 저장된다. 컴퓨터(400)는 운영 체제(418), 애플리케이션 프로그램, 및 다른 프로그램 모듈을 저장하기 위한 대용량 저장 장치(mass storage device)(410)를 또한 포함하며, 이는 본 명세서에서 보다 상세하게 설명된다.
대용량 저장 장치(410)는 시스템 버스(404)에 연결된 대용량 저장소 제어기(도시되지 않음)를 통해 CPU(402)에 연결된다. 대용량 저장 장치(410) 및 관련 컴퓨터 판독 가능한 매체는 컴퓨터(400)를 위한 비휘발성 저장소를 제공한다. 비록 본 명세서에 포함된 컴퓨터 판독 가능한 매체의 설명이 하드 디스크 또는 CD-ROM 드라이브와 같은 대용량 저장 장치를 지칭하지만, 컴퓨터 판독 가능한 매체가 컴퓨터(400)에 의해 액세스될 수 있는 임의의 이용 가능한 컴퓨터 저장 매체일 수 있다는 것이 당업자에게 이해되어야 한다.
예를 들어, 컴퓨터 판독 가능한 매체는 컴퓨터 판독 가능한 명령, 데이터 구조, 프로그램 모듈 또는 다른 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 제거 가능한 그리고 제거 가능하지 않은 매체를 포함할 수 있지만 그에 제한되지 않는다. 예를 들어, 컴퓨터 판독 가능한 매체는 RAM, ROM, EPROM, EEPROM, 플래시 메모리 또는 다른 고체 상태 메모리 기술, CD-ROM, 디지털 다기능 디스크(digital versatile disk(DVD)), HD-DVD, BLU-RAY, 또는 다른 광 저장소, 자기 카세트, 자기 테이프, 자기 디스크 저장소 또는 다른 자기 저장 장치, 또는 요구된 정보를 저장하기 위해 사용될 수 있으면서 컴퓨터(400)에 의해 액세스될 수 있는 임의의 다른 매체를 포함하지만 그에 제한되지 않는다.
다양한 실시예에 따라, 컴퓨터(400)는 네트워크(420)와 같은 네트워크를 통해 원격 컴퓨터에 대한 논리 접속(logical connection)을 사용하여 네트워크 환경(networked environment) 내에서 동작할 수 있다. 컴퓨터(400)는 시스템 버스(404)에 연결된 네트워크 인터페이스 장치(406)를 통해 네트워크(420)에 접속할 수 있다. 다른 유형의 네트워크 및 원격 컴퓨터 시스템에 접속하기 위해 네트워크 인터페이스 장치(406)가 또한 이용될 수 있다는 것이 이해되어야 한다. 컴퓨터(400)는 키보드, 마우스, 또는 전자 스타일러스(도 4에 도시되지 않음)을 포함한 복수의 다른 장치로부터의 입력을 수신하고 처리하기 위한 입력/출력 제어기(412)를 또한 포함할 수 있다. 마찬가지로, 입력/출력 제어기는 출력을 디스플레이 스크린, 프린터, 또는 다른 유형의 출력 장치(역시 도 4에 도시되지 않음)로 제공할 수 있다.
간단하게 전술된 바와 같이, 네트워크에 연결된 데스크탑, 랩탑, 또는 서버 컴퓨터의 연산을 제어하기에 적절한 운영 체제(418)를 포함하는 복수의 프로그램 모듈 및 데이터 파일이, 컴퓨터(400)의 대용량 저장 장치(410) 및 RAM(414) 내에 저장될 수 있다. 대용량 저장 장치(410) 및 RAM(414)은 하나 이상의 프로그램 모듈을 또한 저장할 수 있다. 특히, 대용량 저장 장치(410) 및 RAM(414)은 라우터 모듈(108) 및 서버 모듈(110)을 저장할 수 있으며, 이들은 각각 도 1 내지 도 3을 참조하여 상세하게 전술되어 있다. 대용량 저장 장치(410) 및 RAM(414)은 다른 유형의 프로그램 모듈 및 데이터를 또한 저장할 수 있다.
본 명세서에서 설명된 소프트웨어 컴포넌트는 CPU(402) 내로 로딩(loading)되고 실행될 때 CPU(402) 및 전체 컴퓨터(400)를 일반 목적의 컴퓨터 시스템으로부터 본 명세서에서 제시된 기능을 용이하게 하도록 주문 제작된 특수 목적의 컴퓨터 시스템으로 변환시킬 수 있다는 것이 이해되어야 한다. CPU(402)는 임의의 개수의 트랜지스터 또는 다른 이산 회로 요소로부터 구성될 수 있으며, 이는 개별적으로 또는 집합적으로 임의의 개수의 상태를 가정한다. 보다 구체적으로, CPU(402)는 본 명세서에서 개시된 소프트웨어 모듈 내에 포함된 실행 가능한 명령에 응답하여 유한 상태 머신(finite-state machine)으로서 동작할 수 있다. 이들 컴퓨터 판독 가능한 명령은 CPU(402)가 상태들 사이에서 어떻게 전이하는지를 특정함으로써 CPU(402)를 변환시킬 수 있으며, 이에 따라 CPU(402)를 구성하는 트랜지스터 또는 다른 이산 하드웨어 요소를 변환시킬 수 있다.
본 명세서에서 제시된 소프트웨어 모듈을 부호화하는 것은 본 명세서에서 제시된 컴퓨터 판독 가능한 매체의 물리적 구조를 또한 변환시킬 수 있다. 물리적 구조의 특정 변환은 이러한 설명의 상이한 구현에서 다양한 요인에 따라 달라질 수 있다. 그러한 요인의 예는 컴퓨터 판독 가능한 매체가 주 저장소로 특정되던지 또는 부 저장소 등으로 특정되던 지의 여부 컴퓨터 판독 가능한 매체를 구현하기 위해 사용된 기술 등을 포함할 수 있지만 그에 제한되지 않는다. 예를 들어, 컴퓨터 판독 가능한 매체가 반도체 기반 메모리로서 구현되면, 본 명세서에서 개시된 소프트웨어는 반도체 메모리의 물리적 상태를 변환시킴으로써 컴퓨터 판독 가능한 매체 상에 부호화될 수 있다. 예를 들어, 소프트웨어는 트랜지스터, 커패시터(capacitor), 또는 반도체 메모리를 구성하는 다른 이산 회로 요소의 상태를 변환시킬 수 있다. 소프트웨어는 그러한 컴포넌트 상에 데이터를 저장하기 위해 그러한 컴포넌트의 물리적 상태를 또한 변환시킬 수 있다.
또 다른 예로서, 본 명세서에 개시된 컴퓨터 판독 가능한 매체는 자기 또는 광 기술을 사용하여 구현될 수 있다. 그러한 구현에서, 본 명세서에서 제시된 소프트웨어는 그 소프트웨어가 자기 또는 광 매체 내에 부호화될 때 자기 또는 광 매체의 물리적 상태를 변환시킬 수 있다. 이들 변환은 주어진 자기 매체 내부에 특정 위치의 자기 특성을 변경시키는 것을 포함할 수 있다. 이들 변환은 그들 위치의 광 특성을 변화시키기 위해 주어지 광 매체 내부의 특정 위치의 물리적 특징 또는 특성을 변경시키는 것을 또한 포함할 수 있다. 전술된 예가 단지 이러한 논의를 용이하게 하기 위해 제공된 것이므로, 본 발명의 상세한 설명의 범위 및 사상을 벗어나지 않으면서, 상태에서 물리적 매체의 또 다른 변환이 가능하다.
전술된 설명의 관점에서, 본 명세서에서 제시된 소프트웨어 컴포넌트를 저장하고 실행하기 위해 많은 유형의 물리적 변환이 컴퓨터(400) 내에서 일어나는 것이 이해되어야 한다. 컴퓨터(400)는 핸드헬드 컴퓨터, 내장형 컴퓨터 시스템, 개인 휴대 정보 단말기(personal digital assistant), 및 당업자에게 공지된 다른 유형의 컴퓨터 계산 장치를 포함한 다른 유형의 컴퓨터 계산 장치를 포함할 수 있다는 것이 또한 이해되어야 한다. 컴퓨터(400)는 도 4에 도시된 컴포넌트를 모두 포함하지 않을 수 있거나, 도 4에 명시적으로 도시되지 않은 다른 컴포넌트를 포함할 수 있거나, 또는 도 4에 도시된 것과 완전히 다른 아키텍처를 이용할 수 있다는 것이 또한 고려된다.
전술한 설명에 기초하여, 최적 라우팅을 위한 기술이 본 명세서에서 제공된다는 것이 이해되어야 한다. 비록 본 명세서에서 제시된 본 발명이 컴퓨터 구조 특징, 방법론적 및 변환적 작용, 특유의 컴퓨터 계산 기계류, 및 컴퓨터 판독 가능한 매체에 특유한 언어로 설명되었지만, 첨부된 특허청구범위에서 정의된 발명은 본 명세서에서 설명된 특정된 특징, 작용, 또는 매체로 필연적으로 제한되지 않아야 한다는 것이 이해되어야 한다. 오히려, 특정된 특징, 작용 및 매체는 특허청구범위를 구현하는 예시적인 형태로서 개시된다.
전술된 본 발명은 단지 예시로서 제공되며 제한하는 것으로 해석되지 않아야 한다. 예시되고 설명된 예시적인 실시예 및 응용예를 따르지 않으면서 그리고 다음의 특허청구범위에서 설명되는 본 발명의 진정한 사상과 범위를 벗어나지 않으면서 본 발명에 대해 다양한 수정과 변경이 수행될 수 있다.
Claims (13)
- 컴퓨터 실행가능 명령어가 저장된 컴퓨터 판독가능 매체로서,
상기 컴퓨터 실행가능 명령어는 요청을 수신하도록 구성된 라우터 모듈을 포함하고,
상기 라우터 모듈은
상기 요청의 수신에 응답하여, 상기 요청을 충족하는 서버 모듈의 네트워크 주소를 획득하기 위해 부하 분산 장치(load balancer)에 질의하고, 상기 부하 분산 장치로부터 수신된 상기 네트워크 주소를 상기 라우터 모듈을 실행하는 컴퓨터가 응답하는 네트워크 주소의 네트워크 주소 리스트의 네트워크 주소와 비교함으로써 상기 서버 모듈이 상기 라우터 모듈과 동일한 컴퓨터에서 실행되고 있는지 여부를 판정하며, 상기 서버 모듈이 상기 라우터 모듈과 동일한 컴퓨터에서 실행되고 있지 않다는 판정에 응답하여 상기 요청을 상기 서버 모듈에게 표준 이송(standard transport)을 이용하여 전달하고, 상기 서버 모듈이 상기 라우터 모듈과 동일한 컴퓨터에서 실행되고 있다는 판정에 응답하여 상기 요청을 상기 서버 모듈에게 네임드 파이프 바인딩(named pipe binding)을 이용하여 전달하도록 구성되는
컴퓨터 판독가능 매체.
- 제 1 항에 있어서,
상기 네임드 파이프 바인딩은 윈도우즈 커뮤니케이션즈 파운데이션(WCF: Windows Communications Foundation) 네임드 파이프 바인딩을 포함하는
컴퓨터 판독가능 매체.
- 제 1 항에 있어서,
상기 네임드 파이프 바인딩은 이진 암호화(binary encoding)를 이용하는
컴퓨터 판독가능 매체.
- 제 2 항에 있어서,
상기 윈도우즈 커뮤니케이션즈 파운데이션 네임드 파이프 바인딩은 이진 암호화를 이용하는
컴퓨터 판독가능 매체.
- 클라이언트 요청을 서버 모듈로 라우팅하기 위한 시스템으로서,
부하 분산 장치와,
상기 클라이언트 요청을 수신하고 이에 응답하도록 구성되는 서버 모듈과,
라우터 모듈을 실행하는 컴퓨터
를 포함하되,
상기 라우터 모듈은 상기 클라이언트 요청을 수신하고, 상기 클라이언트 요청을 수신하는 것에 응답하여,
상기 서버 모듈의 네트워크 주소를 획득하기 위해 부하 분산 장치에게 질의하고,
상기 부하 분산 장치로부터 수신된 상기 네트워크 주소를 상기 라우터 모듈을 실행하는 컴퓨터가 응답하는 네트워크 주소 리스트의 네트워크 주소와 비교함으로써 상기 서버 모듈이 상기 라우터 모듈과 동일한 컴퓨터에서 실행되고 있는지 여부를 판정하며,
상기 서버 모듈이 상기 동일한 컴퓨터에서 실행되고 있지 않다는 판정에 응답하여 상기 요청을 상기 서버 모듈에게 표준 이송을 이용하여 전달하고,
상기 서버 모듈이 상기 동일한 컴퓨터에서 실행되고 있다는 판정에 응답하여 상기 요청을 상기 서버 모듈에게 네임드 파이프 바인딩을 이용하여 전달
하도록 구성되는
시스템.
- 제 5 항에 있어서,
상기 네임드 파이프 바인딩은 윈도우즈 커뮤니케이션즈 파운데이션(WCF) 네임드 파이프 바인딩을 포함하는
시스템.
- 제 6 항에 있어서,
상기 윈도우즈 커뮤니케이션즈 파운데이션 네임드 파이프 바인딩은 이진 암호화를 이용하는
시스템.
- 제 5 항에 있어서,
상기 네임드 파이프 바인딩은 이진 암호화를 이용하는
시스템.
- 클라이언트 요청을 서버 모듈에게 라우팅하는, 컴퓨터로 구현되는 방법으로서,
라우터 모듈에서 클라이언트 요청을 수신하는 단계와,
상기 클라이언트 요청을 수신하는 것에 응답하여,
상기 클라이언트 요청을 충족하는 상기 서버 모듈의 표적 네트워크 주소(garget network address)에 대해 부하 분산 장치에게 질의하고, 상기 라우터 모듈과 상기 서버 모듈이 동일한 컴퓨터에서 실행되고 있는지 여부를 판정하기 위해 상기 표적 네트워크 주소를 상기 라우터 모듈이 응답하는 네트워크 주소 리스트의 네트워크 주소와 비교하며, 상기 서버 모듈이 상기 라우터 모듈과 동일한 컴퓨터에서 실행되고 있지 않다는 판정에 응답하여 상기 클라이언트 요청을 상기 서버 모듈에게 표준 이송을 이용하여 전달하고, 상기 서버 모듈이 상기 라우터 모듈과 동일한 컴퓨터에서 실행되고 있다는 판정에 응답하여 상기 클라이언트 요청을 상기 서버 모듈에게 네임드 파이프 바인딩을 이용하여 전달하는 단계
를 포함하는 컴퓨터로 구현되는 방법.
- 제 9 항에 있어서,
상기 네임드 파이프 바인딩은 윈도우즈 커뮤니케이션즈 파운데이션(WCF) 네임드 파이프 바인딩을 포함하는
컴퓨터로 구현되는 방법.
- 제 9 항에 있어서,
상기 네임드 파이프 바인딩은 이진 암호화를 이용하는
컴퓨터로 구현되는 방법.
- 제 10 항에 있어서,
상기 윈도우즈 커뮤니케이션즈 파운데이션 네임드 파이프 바인딩은 이진 암호화를 이용하는
컴퓨터로 구현되는 방법. - 삭제
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/413,607 US8166200B2 (en) | 2009-03-30 | 2009-03-30 | Smart routing |
US12/413,607 | 2009-03-30 | ||
PCT/US2010/028935 WO2010117689A2 (en) | 2009-03-30 | 2010-03-26 | Smart routing |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20120004433A KR20120004433A (ko) | 2012-01-12 |
KR101671549B1 true KR101671549B1 (ko) | 2016-11-01 |
Family
ID=42785648
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020117022956A KR101671549B1 (ko) | 2009-03-30 | 2010-03-26 | 스마트 라우팅 |
Country Status (10)
Country | Link |
---|---|
US (1) | US8166200B2 (ko) |
EP (1) | EP2415213B1 (ko) |
JP (1) | JP2012522318A (ko) |
KR (1) | KR101671549B1 (ko) |
CN (1) | CN102369691B (ko) |
BR (1) | BRPI1008999A2 (ko) |
CA (1) | CA2753878C (ko) |
RU (1) | RU2520360C2 (ko) |
SG (1) | SG173821A1 (ko) |
WO (1) | WO2010117689A2 (ko) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9203704B2 (en) * | 2011-08-22 | 2015-12-01 | Verizon Patent And Licensing Inc. | Discovering a server device, by a non-DLNA device, within a home network |
CH705456A1 (de) * | 2011-08-31 | 2013-03-15 | Ferag Ag | Computerisiertes Maschinensteuerungssystem. |
US9183065B1 (en) * | 2012-11-01 | 2015-11-10 | Amazon Technologies, Inc. | Providing access to an application programming interface through a named pipe |
US10171612B2 (en) | 2015-12-28 | 2019-01-01 | Microsoft Technology Licensing, Llc | Caching service with client-enabled routing |
RU2692571C1 (ru) * | 2018-01-10 | 2019-06-25 | Акционерное общество "Информационные спутниковые системы" имени академика М.Ф. Решетнёва" | Контроллер сетевого транспортного протокола |
CN108664343B (zh) * | 2018-05-09 | 2022-08-23 | 顺丰科技有限公司 | 一种微服务的有状态调用方法及装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060271705A1 (en) | 2000-03-16 | 2006-11-30 | Garcia-Luna-Aceves J J | System and method for discovering information objects and information object repositories in computer networks |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3361663B2 (ja) * | 1994-10-03 | 2003-01-07 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 通信管理方法 |
GB2309558A (en) * | 1996-01-26 | 1997-07-30 | Ibm | Load balancing across the processors of a server computer |
US6424992B2 (en) | 1996-12-23 | 2002-07-23 | International Business Machines Corporation | Affinity-based router and routing method |
US20030069968A1 (en) | 1998-10-01 | 2003-04-10 | O'neil Kevin M. | System for balancing loads among network servers |
US6505254B1 (en) | 1999-04-19 | 2003-01-07 | Cisco Technology, Inc. | Methods and apparatus for routing requests in a network |
US6578068B1 (en) * | 1999-08-31 | 2003-06-10 | Accenture Llp | Load balancer in environment services patterns |
US6687735B1 (en) * | 2000-05-30 | 2004-02-03 | Tranceive Technologies, Inc. | Method and apparatus for balancing distributed applications |
US7082476B1 (en) * | 2000-05-24 | 2006-07-25 | Cisco Technology, Inc. | System and method of optimizing retrieval of network resources by identifying and substituting embedded symbolic host name references with network addresses in accordance with substitution policies |
US7089293B2 (en) * | 2000-11-02 | 2006-08-08 | Sun Microsystems, Inc. | Switching system method for discovering and accessing SCSI devices in response to query |
WO2002057917A2 (en) * | 2001-01-22 | 2002-07-25 | Sun Microsystems, Inc. | Peer-to-peer network computing platform |
US7043731B2 (en) | 2001-07-12 | 2006-05-09 | Qwest Communications International, Inc. | Method and system for distributing access to group of objects based on round robin algorithm and only when the object is available |
US6968389B1 (en) | 2001-07-17 | 2005-11-22 | Cisco Technology, Inc. | System and method for qualifying requests in a network |
US7290059B2 (en) * | 2001-08-13 | 2007-10-30 | Intel Corporation | Apparatus and method for scalable server load balancing |
US7117243B2 (en) | 2001-10-02 | 2006-10-03 | Citrix Systems, Inc. | Methods for distributed program execution with file-type association in a client-server network |
JP2003122732A (ja) * | 2001-10-16 | 2003-04-25 | Nec Corp | 情報通信システム |
US7047315B1 (en) | 2002-03-19 | 2006-05-16 | Cisco Technology, Inc. | Method providing server affinity and client stickiness in a server load balancing device without TCP termination and without keeping flow states |
US7480737B2 (en) * | 2002-10-25 | 2009-01-20 | International Business Machines Corporation | Technique for addressing a cluster of network servers |
US20060048163A1 (en) * | 2004-08-27 | 2006-03-02 | Thierry Bessis | Method for routing messages between servers located on the same board |
US7921216B2 (en) * | 2005-02-01 | 2011-04-05 | Microsoft Corporation | System and method for building and using communication binding objects |
US20090027495A1 (en) | 2007-07-25 | 2009-01-29 | Stas Oskin | Internet visual surveillance and management technology for telecommunications, Internet, cellular and other communications companies |
US8046625B2 (en) * | 2008-02-22 | 2011-10-25 | Hill-Rom Services, Inc. | Distributed fault tolerant architecture for a healthcare communication system |
-
2009
- 2009-03-30 US US12/413,607 patent/US8166200B2/en not_active Expired - Fee Related
-
2010
- 2010-03-26 EP EP10762130.2A patent/EP2415213B1/en active Active
- 2010-03-26 CA CA2753878A patent/CA2753878C/en active Active
- 2010-03-26 CN CN2010800158034A patent/CN102369691B/zh active Active
- 2010-03-26 JP JP2012503538A patent/JP2012522318A/ja active Pending
- 2010-03-26 WO PCT/US2010/028935 patent/WO2010117689A2/en active Application Filing
- 2010-03-26 BR BRPI1008999A patent/BRPI1008999A2/pt not_active IP Right Cessation
- 2010-03-26 KR KR1020117022956A patent/KR101671549B1/ko active IP Right Grant
- 2010-03-26 RU RU2011139714/08A patent/RU2520360C2/ru active
- 2010-03-26 SG SG2011060761A patent/SG173821A1/en unknown
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060271705A1 (en) | 2000-03-16 | 2006-11-30 | Garcia-Luna-Aceves J J | System and method for discovering information objects and information object repositories in computer networks |
Also Published As
Publication number | Publication date |
---|---|
US8166200B2 (en) | 2012-04-24 |
CN102369691B (zh) | 2013-04-24 |
WO2010117689A2 (en) | 2010-10-14 |
CA2753878C (en) | 2016-08-02 |
CA2753878A1 (en) | 2010-10-14 |
RU2520360C2 (ru) | 2014-06-20 |
BRPI1008999A2 (pt) | 2016-03-22 |
SG173821A1 (en) | 2011-09-29 |
EP2415213A2 (en) | 2012-02-08 |
WO2010117689A3 (en) | 2011-01-13 |
EP2415213A4 (en) | 2015-07-01 |
JP2012522318A (ja) | 2012-09-20 |
US20100250776A1 (en) | 2010-09-30 |
EP2415213B1 (en) | 2019-07-31 |
RU2011139714A (ru) | 2013-04-20 |
CN102369691A (zh) | 2012-03-07 |
KR20120004433A (ko) | 2012-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11232160B2 (en) | Extensible and elastic data management services engine external to a storage domain | |
US9137172B2 (en) | Managing multiple proxy servers in a multi-tenant application system environment | |
KR101671549B1 (ko) | 스마트 라우팅 | |
RU2549135C2 (ru) | Система и способ для обеспечения более быстрой и более эффективной передачи данных | |
US20090327460A1 (en) | Application Request Routing and Load Balancing | |
US20150271256A1 (en) | Message Processing Using Dynamic Load Balancing Queues in a Messaging System | |
CN108028833A (zh) | 一种nas数据访问的方法、系统及相关设备 | |
JP6506374B2 (ja) | キャッシュ管理 | |
WO2018058998A1 (zh) | 一种数据加载方法、终端和计算集群 | |
US10915524B1 (en) | Scalable distributed data processing and indexing | |
US9483493B2 (en) | Method and system for accessing a distributed file system | |
US10701143B1 (en) | Server-orchestrated peer-to-peer content sharing in CMS and sync-n-share applications | |
US20160246517A1 (en) | Methods for policy-based data tiering using a cloud architecture and devices thereof | |
CN110650209B (zh) | 实现负载均衡的方法和装置 | |
WO2022247316A1 (zh) | 存储对象处理系统、请求处理方法、网关和存储介质 | |
CN113630310A (zh) | 一种分布式高可用网关系统 | |
US20130339486A1 (en) | Scalable Storage with Programmable Networks | |
US20190373053A1 (en) | Ranked session affinity to improve load balancing efficiency for stateful requests | |
JP2015094976A (ja) | 情報処理装置、情報処理方法、及び、プログラム | |
CN103609074A (zh) | 应用特定web请求路由 | |
CN112860505A (zh) | 一种分布式集群的调控方法及装置 | |
US10621148B1 (en) | Maintaining multiple object stores in a distributed file system | |
KR20190119497A (ko) | 분산 파일 시스템 기반의 대용량 다중 vod 스트리밍 서비스 제공 시스템 및 그 제공 방법 | |
Maksimović et al. | Task Queue Implementation for Edge Computing Platform | |
Naidu et al. | A Distributed Application to Maximize the Rate of File Sharing in and Across Local Networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
N231 | Notification of change of applicant | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |