KR20080077966A - 분산 서비스 사이트를 등록하기 위한 방법 및 시스템 - Google Patents
분산 서비스 사이트를 등록하기 위한 방법 및 시스템 Download PDFInfo
- Publication number
- KR20080077966A KR20080077966A KR1020087013166A KR20087013166A KR20080077966A KR 20080077966 A KR20080077966 A KR 20080077966A KR 1020087013166 A KR1020087013166 A KR 1020087013166A KR 20087013166 A KR20087013166 A KR 20087013166A KR 20080077966 A KR20080077966 A KR 20080077966A
- Authority
- KR
- South Korea
- Prior art keywords
- client
- remote site
- site
- link
- optimal
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- 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
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
-
- 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
-
- 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
-
- 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
- H04L67/1004—Server selection for load balancing
- H04L67/101—Server selection for load balancing based on network conditions
-
- 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
- H04L67/1004—Server selection for load balancing
- H04L67/1021—Server selection for load balancing based on client or server locations
-
- 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
- H04L67/1004—Server selection for load balancing
- H04L67/1023—Server selection for load balancing based on a hash applied to IP addresses or costs
-
- 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/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
Description
최신 컴퓨터 시스템은 네트워크 환경을 통하여 데이터 및 리소스를 교환하는 것을 가능하게 한다. 예를 들어, 최신 컴퓨터 네트워크는 다수의 상호 연결된 클라이언트 컴퓨터를 포함할 수 있다. 컴퓨터 네트워크는 리소스 또한 포함할 수 있다. 이들 리소스는, 예를 들어 클라이언트에 의해 액세스 가능한 데이터를 저장하기 위한 파일 서버, 클라이언트에게 프린터로의 액세스를 제공하기 위한 프린터 서버 및 저장된 데이터를 네트워크상의 다른 클라이언트 및 리소스가 이용 가능하게 하기 위한 클라이언트 컴퓨터상의 공유 저장 장치일 수 있지만, 이에 한정되지는 않는다.
네트워크의 규모는 다양하다. 소규모 네트워크는 구내 정보 통신망(Local Area Networks: LAN)을 포함한다. LAN의 예로 네트워크가 단일 가정 또는 비지니스 사이트 범위인 홈 네트워크 및 소규모 비지니스 네트워크가 있다. 대규모 네트워크는 광역 통신망(Wide Area Networks: WAN)을 포함한다. WAN의 한 일반적인 예로는 유비쿼터스 인터넷이 있다. 또 다른 예로는 기업 통신망(enterprise network)을 이루도록 상호 연결된 LAN의 집단이 있다. 기업 통신망과 유사한 것으로 포리스트(forest)가 있다. 포리스트는 중앙 제어하에 있는 시스템의 집단이다.
LAN이 상호 연결되어 기업 통신망을 이룰 때, 분기국(branch office)을 연결하여 기업 통신망에 대한 연결을 제공하는데 허브가 사용될 수 있다. 통상적으로, 기업 통신망은 전체에 걸쳐 다수의 분산 서비스(distributed service)를 포함한다. 기업 통신망 상의 클라이언트는 분산 서비스들 중 하나에 등록할 수 있다. 클라이언트가 등록된 분산 서비스는 등록된 클라이언트로부터의 메시지가 기업 통신망 내의 다른 클라이언트로 전달되는 것과, 다른 클라이언트로부터의 메시지가 등록된 클라이언트로 전달되는 것을 가능하게 하는 라우팅 능력을 제공한다. 분산 서비스는 네트워크에 대한 보안을 제공하는 기능을 포함할 수 있다. 예를 들어, 분산 서비스는 네트워크상의 통신을 인증하여 인증되지않은 통신 및/또는 악의적인 통신이 네트워크상에서 전송되는 것을 방지하기 위한 기능을 포함할 수 있다.
기업 통신망은 각각의 사이트가 한 범위의 네트워크 주소에 있는 사이트의 집단으로서 구성될 수 있다. 예를 들어, 사이트는 인터넷 프로토콜(IP) 주소의 집단으로서 정의될 수 있다. 흔히, IP 주소는 지리적 및/또는 논리적 근접도에 기초하여 할당된다. 따라서, 유사한 IP, 더 특정적으로 동일 사이트 내의 IP 주소, 를 갖는 클라이언트 및 분산 서비스는, 대개 지리적으로 및/또는 논리적으로 서로 근접하게 된다. 클라이언트로의 통신의 대부분 또는 전부가 클라이언트가 등록한 분산 서비스를 통해 진행되므로, 일반적으로 클라이언트와 동일 사이트 내의 분산 서비스에 클라이언트를 등록하는 것이 유리하다. 클라이언트와 분산 서비스가 가까운 근접도를 가질 때의 한 장점은 전체 네트워크 트래픽이 감소한다는 것인데, 이는 클라이언트로의 및 클라이언트로부터의 각각의 통신이 원격에 위치한 분산 서비 스에 도달하기 위해서 다수의 네트워크 연결을 거쳐서 라우팅될 필요가 없기 때문이다.
그러나, 불행히도 클라이언트가 그 클라이언트와 동일한 사이트에 있는 분산 서비스에 등록되거나 통신할 수 없는 경우가 발생할 수 있다. 이런 상황이 발생할 때, 클라이언트는 등록할 분산 서비스로서 또 다른 사이트의 또 다른 분산 서비스를 임의로 선택할 수 있다. 예상할 수 있듯이, 이로 인해 클라이언트로부터 지리적으로 및/또는 논리적으로 멀리 떨어진 분산 서비스에 클라이언트가 등록되는 결과가 발생할 수 있다.
본 발명의 범위는 오직 상기에 기술된 것과 같은 환경에서만 동작하거나 어떤 단점을 해결하는 실시예에 한정되지 않는다. 오히려, 이 배경기술은 단지 여기에 기술된 몇몇 실시예가 실시될 수 있는 예시적인 기술 분야를 설명하고자 제공되었다.
일 실시예는 클라이언트를 분산 서비스에 등록하는 방법을 안내한다. 본 방법은, 예를 들어, 로컬 사이트에 있는 클라이언트 및 원격 사이트에 있는 다수의 분산 서비스를 포함하는 네트워크 컴퓨팅 환경에서 실시될 수 있다. 본 방법은 하나 이상의 원격 사이트에 있는 하나 이상의 분산 서비스에 핑하는(pinging) 단계를 포함한다. 메시지는 하나 이상의 분산 서비스 중 하나로부터 수신된다. 메시지는 최적의 원격 사이트를 지정(specify)한다. 본 방법은 최적의 원격 사이트에 있는 분산 서비스에 등록하는 단계를 더 포함한다.
본 명세서에서 더 상세히 기술될 또 다른 실시예는 원격 사이트에 있는 분산 서비스로부터 최적의 원격 사이트의 표시를 로컬 사이트에 있는 클라이언트에 제공하는 방법이다. 본 방법은, 예를 들어, 로컬 사이트에 있는 클라이언트 및 다수의 원격 사이트에 있는 다수의 분산 서비스를 포함하는 네트워크 컴퓨팅 환경에서 실시될 수 있다. 본 방법은 클라이언트로부터 핑(ping)을 수신하는 단계를 포함한다. 최적의 원격 사이트는 클라이언트에 대한 정보 및 클라이언트를 최적의 원격 사이트에 연결하는 링크에 대한 정보에 기초하여 판정된다. 본 방법은 클라이언트에 메시지를 전송하는 단계를 더 포함한다. 메시지는 최적의 원격 사이트를 지정한다.
이 간략한 설명은 이하의 실시예에서 더 상세히 기술될 개념들의 선택을 간략화된 형태로 소개하기 위해 제공된다. 이 간략한 설명은 본 발명의 기본적인 특징 또는 필수적인 특징을 식별하고자 하는 것이 아니며, 본 발명의 권리 범위를 결정하는데 보조 수단으로 사용하고자 하는 것도 아니다.
부가적인 특징 및 장점은 이하의 실시예에 기술되고, 또 일부는 이하의 실시예로부터 자명하거나, 개시 내용의 실시에 의해 습득될 수 있을 것이다. 본 발명의 특징 및 장점은 첨부된 청구항 내에 특정적으로 지적된 장치 및 조합에 의해 인식되고 획득될 수 있다. 본 발명의 특징은 이하의 실시예 및 첨부된 청구항을 보면 더 명확해질 것이고, 이하에 기술된 바에 따라 본 발명을 실시함으로써 습득할 수도 있다.
상기에 기재된 장점 및 특징과 기타 장점 및 특징을 획득할 수 있는 방법을 기술하기 위해, 상기에 간략하게 기술된 본 발명의 요지에 대한 더 특정적인 기술이 첨부된 도면에 도시된 특정 실시예를 참조하여 표현될 것이다. 이 도면은 단지 통상적인 실시예를 묘사할 뿐이고 본 발명의 범주를 제한하는 것으로 간주 되어서는 안 됨을 이해하여야 할 것이다. 실시예들은 첨부된 도면을 사용하여 부가적인 특징 및 상세 사항과 함께 기술되고 설명될 것이다.
도 1은 기업 통신망을 도시하는 도면.
도 2는 원격 사이트에 있는 분산 서비스에 등록하는 방법을 도시하는 도면.
도 3은 최적의 원격 사이트를 표시하는 메시지를 클라이언트에 전달하는 방법을 도시하는 도면.
도 4는 일정 실시예가 실시될 수 있는 시스템을 도시하는 도면.
본 명세서에 개시된 실시예들은, 이하에 상세히 설명되는 바와 같이, 다양한 컴퓨터 하드웨어를 포함하는 특수 용도 또는 범용 컴퓨터를 포함할 수 있다.
본 명세서에 기술된 한 실시예는 한 분산 서비스가 원격 사이트에 위치하고 있고 그 원격 사이트가 최적의 원격 사이트라는 표시를 기업 통신망 상의 분산 서비스가 제공할 수 있는 시스템을 안내한다. 클라이언트가 그 클라이언트와 동일한 사이트에 있는 분산 서비스에 등록할 수 없는 경우, 클라이언트는 최적의 원격 사이트에 있는 분산 서비스에 등록하려는 시도를 할 것이다. 최적의 원격 사이트는 클라이언트별로 판단될 것이다. 예를 들어, 기업 통신망 상의 각각의 클라이언트 는 기업 통신망상에 있는 다른 클라이언트에 대한 최적의 원격 사이트와 동일한 최적의 원격 사이트를 가질 수도 있고 그렇지 않을 수도 있다. 클라이언트의 특성, 원격 사이트에 있는 시스템의 특성 및 클라이언트를 최적의 원격 사이트에 상호 연결하는 하나 이상의 링크의 특성과 같은 다양한 인자를 참조하여 최적의 사이트가 판정될 수 있다. 예를 들어, 클라이언트를 원격 사이트에 상호 연결하는 각각의 링크는 기업 통신망 상의 다른 링크와 비교되는 지수를 할당받을 수 있다. 공식은, 예를 들어, 링크의 신뢰도, 분당 경제적 비용, 링크의 대기 시간 및 성능, 사용자 기호, 링크의 보안, 네트워크 장비, 관리 비용, 링크의 대역폭 및 링크의 상충되는 사용(conflicting uses of a link)과 같은 인자를 포함할 수 있다. 기업 통신망 내의 분산 서비스는 링크 대 링크 지수를 포함하는 테이블을 포함할 수 있을 뿐만 아니라, 특정 사이트에 대하여 클라이언트에 대한 지수를 계산하는 능력을 갖출 수도 있다. 클라이언트 및 다른 사이트 간의 링크에 대하여 계산된 지수는 가장 최적의 지수를 갖는 사이트가 최적의 원격 사이트라는 것을 나타내는 메시지를 분산 서비스가 클라이언트에 반환할 수 있도록 비교될 수 있다.
이제 도 1을 참조하면, 기업 통신망(100)의 도식화된 참조를 사용하여 더 상세한 예시가 도시될 것이다. 기업 통신망(100)은 사이트 A, 사이트 B, 사이트 C, 사이트 D를 포함하여 다수의 사이트를 포함하는 것으로 도시되어 있다. 로컬 사이트 A(102)는 기업 통신망 상의 클라이언트에 제공될 수 있는 다양한 서비스를 포함할 수 있는 분산 서비스(104)를 포함한다. 도 1은 또한 로컬 사이트 A(102)에 있는 클라이언트(106) 도시하고 있다. 로컬 사이트 A(102)는 링크(110)에 의해 원격 사이트 B에 연결된다. 원격 사이트 B(108)는 링크(114)에 의해 원격 사이트 D(112)에 연결된다. 원격 사이트 B(108)는 링크(118)에 의해 원격 사이트 C(116)에 연결된다. 원격 사이트 D(112)는 분산 서비스(121)를 포함하는 것으로 도시되어 있다. 원격 사이트 C는 분산 서비스(120), 분산 서비스(122) 및 분산 서비스(124)를 포함하여 다수의 분산 서비스를 포함하는 것으로 도시되어 있다.
정상 동작 중에, 클라이언트(106)는 가능하면 클라이언트(106)의 로컬 사이트 (로컬 사이트 A(102)) 에 위치한 분산 서비스(104)에 등록하는 것이 바람직하다. 그러나, 클라이언트가 분산 서비스(104)에 등록할 수 없는 상황이 발생할 수도 있다. 클라이언트(106)는 먼저 로컬 사이트 A(102)에 있는 분산 서비스에 등록하려고 시도할 것이다. 로컬 사이트 A(102)에 클라이언트가 등록 가능한 분산 서비스가 없다는 것을 클라이언트(106)가 알게 되면, 클라이언트(106)는 그 다음으로 가장 근접한 사이트에 있는 분산 서비스에 등록하기 위해 그 다음으로 가장 근접한 사이트를 찾아내려는 시도를 할 것이다.
도 1에 나타난 예에서, 클라이언트(106)는 기업 통신망(100) 내의 분산 서비스(120)에 핑(126)을 전송한다. 일 실시예에서 분산 서비스(120)가 핑할 사이트를 선택하는 것은 클라이언트에 의해 기업 통신망(100) 내의 분산 서비스의 기록을 참조하여 랜덤 방식으로 수행될 수 있다. 클라이언트(106)가 핑(126)을 분산 서비스(120)에 전송하였으면, 클라이언트는 분산 서비스가 응답할 수 있도록 짧은 시간 동안 대기할 것이다. 만일 분산 서비스(120)가 응답하지 않는다면, 클라이언트(106)는 기업 통신망(100) 상의 다른 분산 서비스에 핑을 전송할 수 있다. 그러 나, 이 예에서는 분산 서비스(120)가 클라이언트(106)로부터의 핑(126)에 응답할 수 있다고 가정한다. 핑의 일부분으로서 전송된 메시지는 클라이언트(106)가 분산 서비스와 교신할 최적의 원격 사이트의 표시를 분산 서비스(120)가 반환하면 클라이언트(106)는 메시지를 사용하여 통신하고 지원하는 것이 가능하다는 내용을 분산 서비스(120)에 알려주는 표시를 포함할 수 있다. 예를 들어, 클라이언트(106)는 핑(126)의 일부분인 메시지와 함께 최적의 원격 사이트의 표시를 수신할 수 있는 능력을 표시하는 플래그를 포함할 수 있다.
플래그를 참조함으로써, 분산 서비스(120)는 클라이언트(106)에 대한 최적의 원격 사이트의 표시를 포함하는 클라이언트(106)로 메시지(128)가 전송되어야 하는지를 판단할 수 있다. 대안적인 실시예에서, 분산 서비스(120)는 전송된 핑(126) 내의 플래그를 참조하지 않고 기업 통신망(100) 내의 모든 클라이언트 및 분산 서비스가 최적의 원격 사이트 정보를 수신하는 기능을 지원한다고 가정할 수 있다. 일 실시예에서, 클라이언트(106)에 의해 플래그를 제공하는 것 및 분산 서비스(120)가 플래그를 참조하는 것은, 단순히 역방향 호환성(backward compatibility)을 갖추어 최적의 원격 사이트 정보를 요청하는 기능을 포함하는 시스템 및 최적의 원격 사이트 정보를 제공하는 기능을 포함하는 시스템이 그런 기능을 포함하지 않는 시스템과 함께 사용될 수 있도록 하기 위함이다.
분산 서비스(120) 또는 도 1에 도시된 다른 분산 서비스와 같은 분산 서비스는 클라이언트(106)와 기업 통신망(100) 내의 다양한 사이트(로컬 사이트 A(102), 원격 사이트 B(108), 원격 사이트 D(112))간의 링크에 대한 지수를 결정하는데 사 용될 수 있는 지수를 포함하는 매핑 테이블을 생성하고/하거나 저장하기 위한 기능을 포함할 수 있다. 예를 들어, 도 1에 도시된 바와 같이, 로컬 사이트 A(102) 및 원격 사이트 B(108) 간의 링크(110)는 1000의 지수 비용을 갖는다. 이 숫자는 링크의 신뢰도, 링크 비용, 사이트 간의 물리적 근접도 등과 같은 인자에 기초하여 지수 비용을 결정하는 알고리즘의 결과를 나타낸다. 지수 값 1000은 기업 통신망(100) 내의 각각의 분산 서비스에 저장된 비용 매핑 테이블에 저장될 수 있다. 도 1에 도시된 바와 같이 원격 사이트 B(108) 및 원격 사이트 D(112) 간의 링크(114)는 500의 비용 지수를 갖는다. 도 1에 도시된 바와 같이 원격 사이트 B(108) 및 원격 사이트 C(116) 간의 링크(118)는 1000의 비용 지수를 갖는다.
일 실시예의 기능에 대하여 설명하자면, 클라이언트(106)는 분산 서비스(120)에 핑(126)을 전송한다. 핑(126)은 클라이언트(106)의 위치에 대한 정보를 포함할 수 있다. 예를 들어, 핑(126)은 클라이언트(106)의 IP 주소를 포함할 수 있다. 클라이언트(106)의 IP 주소는 클라이언트가 로컬 사이트 A(102)의 멤버인지 확인하는데 사용될 수 있다. 로컬 사이트 A(102)에 존재하는 클라이언트(106)를 알게 되면, 분산 서비스(120)는 클라이언트(106)에 그 다음으로 근접한 사이트를 계산할 수 있다. 예를 들어, 분산 서비스(120)는 비용 지수 테이블을 참조하여 클라이언트(106)가 원격 사이트 B(108)를 1000의 비용으로 액세스할 수 있는지를 판단한다. 클라이언트(106)는 원격 사이트 D(112)를 1500의 비용으로 액세스할 수 있다. 클라이언트(106)는 원격 사이트 C를 2000의 비용으로 액세스할 수 있다. 이와 같이 하여, 분산 서비스(120)는 원격 사이트 B가 클라이언트(106)에 가장 근 접한 또는 최적의 원격 사이트임을 가리키는 메시지를 클라이언트(106)에 반환한다. 그리고나서 클라이언트는 원격 사이트(108)에 있는 분산 서비스(130)에 등록할 수 있다.
일 실시예에서, 클라이언트(106)가 (이 경우에는 원격 사이트 B(108)인) 최적의 원격 사이트에 있는 분산 서비스에 등록할 수 없으면, 클라이언트(106)는 도메인 컨트롤러의 리스트 내에 포함된 랜덤 도메인 컨트롤러에 클라이언트(106)를 등록하는 기법으로 되돌아간다.
한 대안적인 실시예에서, 분산 서비스(120)는 순위가 매겨진 최근접 사이트 목록을 제공할 수 있어서 클라이언트(106)가 가장 최적의 원격 사이트(원격 사이트 B(108))에 있는 분산 서비스에 접속하는데 실패한 경우 클라이언트(106)는 그 다음으로 최적인 원격 사이트 내의 분산 서비스와 교신하려는 시도를 할 수 있게 된다. 예를 들어, 분산 서비스(120)는, 원격 사이트 B(108)가 클라이언트(106)에 접속하기 위한 가장 최적의 (1000의 지수를 갖는) 원격 사이트고, 원격 사이트 D(112)가 그 다음으로 최적의 (1500의 지수를 갖는) 원격 사이트이며, 원격 사이트 C(116)가 그 다음으로 최적의 (2000의 지수를 갖는) 원격 사이트라는 메시지(128)를 반환할 수 있다. 이와 같이, 클라이언트(106)가 원격 사이트 B(108)에 있는 분산 서비스(130)에 등록하는 것을 실패한 경우, 클라이언트(106)는 원격 사이트 D(112)에 있는 분산 서비스(121)에 등록하려고 시도할 수 있다. 만일, 클라이언트(106)가 원격 사이트 D에 있는 분산 서비스에 등록하는 것을 실패하면, 클라이언트(106)는 원격 사이트 C(116)에 있는 분산 서비스(120, 122 또는 124)에 등록하려고 시도할 것이다.
상기에 기술된 실시예는 일반적인 관점에서 기술되었다. 그러나, 어떤 특정한 실시예 또한 구현될 수 있음을 깨달아야 한다. 예를 들어, 상기에 기술된 실시예는 워싱턴 레드몬드 주의 마이크로 소프트 코포레이션(Microsoft Corporation)으로부터 입수할 수 있는 서버에서 사용가능한 액티브 디렉토리(active directory) 기술을 사용하여 액티브 디렉토리 내에 구현될 수 있다. 예를 들어, 상기에 기술된 분산 서비스는 액티브 디렉토리 포리스트 내의 사이트에 있는 도메인 컨트롤러로서 구현될 수 있다.
이제 도 2를 참조하면, 클라이언트를 분산 서비스에 등록하는 방법(200)이 도시된다. 방법(200)은, 예를 들어, 로컬 사이트에 있는 클라이언트 및 다수의 원격 사이트에 있는 다수의 분산 서비스를 포함하는 네트워크 컴퓨팅 환경에서 실시될 수 있다. 방법(200)은 하나 이상의 원격 사이트에 있는 하나 이상의 분산 서비스에 핑하여 최적의 원격 사이트에 있는 분산 서비스를 발견하는 단계(단계 202)를 포함한다. 도 1을 다시 한 번 참조하면, 원격 사이트 C(116)에 있는 분산 서비스(120)에 핑하는 클라이언트(106)의 설명적인 예시가 도시되어 있다. 도 1에 도시된 바와 같이, 클라이언트(106)는 사이트 C에 있는 분산 서비스(120)에 핑(126)을 전송한다. 일 실시예에서, 하나 이상의 원격 사이트에 있는 하나 이상의 분산 서비스에 핑하는 단계(단계 202)는 클라이언트가 최적의 원격 사이트를 지정하는 메시지의 수신을 지원한다는 것을 표시하는 플래그를 전송하는 것을 포함한다. 예들 들어, 도 1을 다시 참조하면, 핑(126)은 클라이언트(106)가 최적의 원격 사이트 정보를 수신하는 것이 가능하다는 것을 표시하는 플래그를 포함할 수 있다. 만일 분산 서비스(120)가 최적의 원격 사이트 정보를 전송하는 기능을 지원한다면, 분산 서비스(120)는 핑(126)을 분석하여 클라이언트(106)가 최적의 원격 사이트 정보의 수신을 원하는지를 판단할 수 있다.
일 실시예에서, 하나 이상의 원격 사이트에 있는 하나 이상의 분산 서비스에 핑하는 단계(단계 202)는 클라이언트와 동일한 사이트에 있는 분산 서비스와 교신하려는 최초의 시도에 이어서 수행될 수 있다. 예를 들어 도 1을 다시 참조하면, 클라이언트(106)는 최초에 로컬 사이트 A(102)에 있는 분산 서비스(104)로의 등록을 시도할 수 있다. 만일 분산 서비스(104)가 이용 불가능하거나 또는 클라이언트(106)와 분산 서비스(104)의 교신이 불가능하면, 클라이언트(106)는 원격 사이트 C(116)에 있는 분산 서비스(120)에 핑(126)을 전송할 것이다.
도 2를 또 다시 참조하면, 방법(200)은 하나 이상의 분산 서비스 중 하나로부터 최적의 원격 사이트를 지정하는 메시지를 수신하는 단계(단계 204)를 더 포함한다. 일 실시예에서, 메시지는 UDP 메시지일 수 있다. 다시 한 번 도 1을 참조하면, 분산 서비스(120)는 메시지(128)를 전송함으로써 핑(126)에 응답할 수 있다. 메시지(128)는 클라이언트(106)가 속한 사이트 A(102)로부터 최적이 되는 원격 사이트를 지정하는 정보를 포함할 수 있다. 도 1에 도시된 예에서, 최적의 원격 사이트는 원격 사이트 B(108)이다. 도 1에 도시된 특정 예에서, 로컬 사이트 A(102)를 원격 사이트 B(108)로 연결하는 링크가 다른 원격 사이트(112, 116)로의 링크에 비해 낮은 지수를 가지므로 원격 사이트 B가 최적의 원격 사이트이다.
이전에 시사된 바와 같이, 지수는 로컬 사이트로부터 원격 사이트로의 링크들을 비교하는데 사용된다. 이와 같이, 다른 사이트에 대한 지수와 비교되는 지수에 의하여 최적의 원격 사이트가 판정될 수 있다. 지수는 다수의 상이한 인자를 사용하여 계산될 수 있다. 예를 들어, 지수는 클라이언트와 최적의 원격 사이트의 물리적 근접도, 클라이언트를 최적의 원격 사이트에 연결하는 링크의 경제적 비용, 링크의 신뢰도, 링크의 대기 시간 및 성능, 사용자 기호, 링크의 보안, 네트워크 장비, 관리 비용, 링크의 대역폭 또는 링크의 상충되는 사용 중 적어도 하나를 이용하여 계산될 수 있다.
상기에 기술된 바와 같이, 사이트들을 연결하는 링크의 지수를 계산하는데 사용되는 한 인자는 링크의 금전적 비용이다. 예를 들어, 서로 다른 유형의 링크는 그 링크의 사용에 있어서 상이한 금전적 비용이 든다. 예를 들어, 다이얼 업 연결, 직접 이더넷 연결, 위성 연결, DSL 연결, 무선 연결 등은 상호 간에 비교할 때 각각 상이한 금전 비용을 갖는다. 도 1에 도시된 예시에서, 지수가 낮을수록 링크가 더 최적에 가깝다는 것을 뜻하는데, 연결에 드는 금전적 비용이 적으면 그 링크에 대한 지수가 낮게 나타날 수 있다.
상기에 살펴본 바와 같이, 지수를 계산하는데 사용되는 또 다른 인자는 클라이언트를 최적의 원격 사이트에 연결하는 링크의 신뢰도일 수 있다. 어떤 유형의 통신은 다른 유형의 통신보다 신뢰성이 떨어질 수 있다. 따라서 통신 유형의 신뢰성이 높을 수록 링크에 대한 지수는 더 낮아질 수 있다.
지수를 결정하는데 사용될 수 있는 또 다른 인자는 링크의 대기 시간 및 성 능일 수 있다. 어떤 링크는 다른 링크보다 더 빠른 속도로 데이터를 전송하는 것이 가능할 수 있다. 이는 링크를 생성하는데 사용된 기술의 유형, 링크 상의 트래픽 량 또는 기타 다양한 이유에서 기인하는 것이다. 따라서, 일 실시예에서, 링크가 높은 성능을 가지고 낮은 대기시간을 가질 수록 낮은 지수를 가질 수 있다.
링크에 대한 지수를 결정하는데 사용될 수 있는 또 다른 인자는 링크의 보안과 관련이 있다. 예를 들어, 어떤 유형의 링크는 더 높은 수준으로 암호화되어 있거나 더 안전할 수 있다. 흔히, 고정 배선 링크가 무선 링크보다 더 안전하다. 어떤 유형의 무선 암호화는 다른 유형의 무선 암호화보다 더 안전하다. 따라서, 일 실시예에서, 더 안전한 링크는 덜 안전한 링크보다 더 낮은 지수를 갖거나, 링크가 최적에 더 가깝거나 덜 가깝다는 것을 가리키는 지수 표시가 더 낮다.
링크에 대한 지수 값을 결정하는데 사용될 수 있는 또 다른 인자는 링크의 대역폭이다. 일 실시예에서, 링크의 대역폭은 추가적인 클라이언트를 지원하는데 사용 가능한 대역폭을 지칭한다. 따라서, 한 예시적인 실시예에서, 링크가 전반적으로 높은 대역폭 가용도를 가짐에도 불구하고, 링크가 네트워크상의 다른 클라이언트 또는 서비스를 지원하는데 전적으로 사용되고 있어서 링크가 낮은 사용 가능 대역폭을 가지면 실제로 링크의 지수가 높아질 수 있다.
링크에 대한 지수를 판정하는데 사용될 수 있는 또 다른 인자는 링크의 상충되는 사용과 관련이 있다. 예를 들어, 어떤 링크는 다양한 유형의 네트워크 트래픽을 지원하는데 특히 유용할 수 있어서 그런 유형의 네트워크 트래픽을 위하여 남겨두어야 한다. 따라서, 링크는 차단되는 것이 다른 링크 상의 다른 통신보다 더 문제가 되는 다양한 유형의 네트워크 통신에 사용될 수 있기 때문에, 더 높은 지수 값을 받을 수 있다.
클라이언트의 IP 주소를 참조하여 로컬 사이트를 식별하는 것에 의해 최적의 원격 사이트가 판정될 수 있다. 예를 들어, 도 1을 다시 참조하면, 클라이언트(106)의 IP 주소는 클라이언트(106)가 로컬 사이트 A(102)에 있다는 표시를 제공할 수 있다. 이와 같이, 분산 서비스(120)는 사이트 A(102)를 기업 통신망(100) 내의 다른 사이트에 상호 연결하는 링크를 비교함으로써 가장 최적의 사이트를 판정할 수 있다. 상기에 설명한 바와 같이, 사이트 A(102)로부터 사이트 B(108)로의 링크에 대한 지수 값은 1000이다. 사이트 A(102)를 사이트 D(112)에 상호 연결하는 링크의 지수 값은 1500이다. 사이트 A(102)를 사이트 C(116)에 상호 연결하는 링크의 지수 값은 2000이다. 따라서, 분산 서비스(120)는 클라이언트(106)에 대한 가장 최적의 사이트는 사이트 B(108)라고 판정할 수 있다.
주목할만한 점은, 상기에 나타난 예에서, 더 낮은 지수 값을 가지면 더 최적에 가까운 속성을 가지는 것으로 설명되어 있다는 것이다. 그러나, 더 높은 지수 값이 더 최적에 가까움을 나타내거나 다른 지수 지시자가 링크의 최적성(optimalness)을 나타내는데 사용되는 시나리오를 생각할 수 있을 것이다. 따라서, 본 명세서에 개시된 실시예는 낮은 지수 값이 더 최적에 가까운 링크를 가리키는 실시예에 한정되어서는 안 된다.
도 2에 도시된 방법(200)은 최적의 원격 사이트에 있는 분산 서비스에 등록하는 단계(단계 206)를 더 포함한다. 따라서, 도 1에 도시된 바와 같이, 클라이언 트(106)는 최적의 사이트 B(108)에 있는 분산 서비스에 등록할 수 있다.
방법(200)은 최적의 원격 사이트를 표시하는 메시지가 수신되지 않은 경우 분산 서비스를 찾는 랜덤 핑 기법으로 되돌아가는 단계를 더 포함할 수 있다. 예를 들어, 도 1을 다시 참조하면, 분산 서비스가 가장 최적의 사이트를 지정하는 메시지를 지원하지 않는다면, 최적의 사이트를 표시하는 어떤 메시지(128)도 클라이언트(106)에 의해 수신되지 않을 것이다. 이와 같이, 클라이언트(106)는 클라이언트(106)가 등록할 분산 서비스를 임의로 선택하는 기법으로 되돌아갈 수 있다. 대안적인 실시예에서, 클라이언트(106)는 기업 통신망 내의 다른 분산 서비스에 핑하여 최적의 사이트 정보를 전달하는 것을 지원하는 분산 서비스를 찾아낼 수 있다.
이제 도 3을 참조하면, 최적의 원격 사이트 표시를 클라이언트에 제공하는 방법(300)이 도시된다. 방법(300)은, 예를 들어, 로컬 사이트에 있는 클라이언트 및 다수의 원격 사이트에 있는 다수의 분산 서비스를 포함하는 네트워크 컴퓨팅 환경 내에서 실시될 수 있다. 본 방법은 클라이언트로부터 핑을 수신하는 단계(단계 302)를 더 포함한다. 이제 도 1을 참조하면, 분산 서비스(120)는 클라이언트(106)로부터 핑(126)을 수신할 수 있다. 상기에 기술된 바와 같이, 핑(126)은 클라이언트(106)가 최적의 원격 사이트를 지정하는 메시지의 수신을 지원한다는 것을 표시하는 플래그를 포함할 수 있다.
방법(300)은 클라이언트에 대한 정보 및 클라이언트를 최적의 원격 사이트에 연결하는 링크에 대한 정보에 기초하여 최적의 원격 사이트를 판정하는 단계(단계 304)를 더 포함한다. 최적의 원격 사이트를 판정하는 단계(단계 304)는 최적의 원 격 사이트의 지수를 다른 사이트의 지수와 비교하는 단계를 포함할 수 있다. 지수는 클라이언트와 최적의 원격 사이트의 물리적 근접도, 클라이언트를 최적의 원격 사이트에 연결하는 링크의 경제적 비용, 링크의 신뢰도, 링크의 대기 시간 및 성능, 사용자 기호, 링크의 보안, 네트워크 장비, 관리 비용, 링크의 대역폭 또는 링크의 상충되는 사용을 사용하여 계산될 수 있다. 일 실시예에서, 최적의 원격 사이트는 클라이언트의 IP 주소를 참조하여 로컬 사이트를 식별하는 것으로써 판정될 수 있다. 예를 들어, 도 1에 도시된 바와 같이, 클라이언트(106)는 사이트 A(102)에 대한 IP 주소 범위에 해당하는 IP 주소를 가질 수 있다.
일 실시예에서, 방법(300)은 최적의 원격 사이트의 지수를 계산하는 단계를 포함할 수 있다. 이 실시예에서, 분산 서비스는 사이트들을 상호 연결하는 링크들을 비교하는데 사용되는 지수 및 숫자를 계산하기 위한 프로그램 모듈 또는 다른 기능을 포함할 수 있다. 프로그램 모듈은 상기에 기술된 것과 같은 정보를 입력으로서 받아들일 수 있고, 입력 정보에 기초하여 지수를 계산하기 위한 프로그램 모듈을 포함할 수 있다.
대안적인 실시예에서, 방법(300)은 계산된 최적의 원격 사이트의 지수를 수신하는 단계를 포함할 수 있다. 예를 들어, 기업 통신망 상의 분산 서비스는 기업 통신망 상의 다른 에이전트로부터 지수를 수신하기 위한 기능을 포함할 수 있는데 여기서 다른 에이전트는 기업 통신망 내의 사이트들을 상호 연결하는 링크에 대한 지수를 제공한다.
도 3에 도시된 방법(300)은 클라이언트에 최적의 원격 사이트를 지정하는 메 시지를 전송하는 단계(단계 306)를 더 포함한다. 도 1에 도시되고 상기에 시사되어 있듯이, 분산 서비스(120)는 메시지(128)를 클라이언트(106)에 전송할 수 있는데, 여기서 메시지(128)는 최적의 원격 사이트를 지정하는 정보를 제공한다. 예를 들어, 도 1에 도시된 예에서, 메시지(128)는 클라이언트(106)에 대한 최적의 원격 사이트는 사이트 B(108)라고 지정할 수 있다. 일 실시예에서, 클라이언트에 메시지를 전송하는 단계(단계 306)는 UDP 메시지를 전송하는 단계를 포함할 수 있다.
이제 도 4를 참조하면, 예시적인 컴퓨터 시스템(420)이 도시된다. 컴퓨터 시스템(420)은 분산 서비스에 핑하여 최적의 원격 사이트를 발견하고 분산 서비스에 등록하기 위한 기능을 포함할 수 있다. 분산 서비스는 도 4 에서 원격 컴퓨터 시스템(483)으로서 집합적으로 도시되어 있지만, 개별 시스템으로 구현될 수도 있다. 컴퓨터 시스템(420)은 프로세서(421)를 포함할 수 있다. 프로세서(421)는 컴퓨터 실행가능 명령어를 운영하도록 구성된다. 예를 들어, 프로세서는 운영 체제(435)의 일부로서 ROM(424) 내의 BIOS(426) 내에 저장된 명령어 및 애플리케이션 프로그램(436) 및 기타 프로그램 모듈(437)을 포함하는 다양한 프로그램 모듈을 실행하도록 구성될 수 있다. 이 프로그램 모듈은 프로세서에 의해 수행되기 위해 시스템 메모리(422)로 로딩 되는 것이 가능한 하드 디스크(439)와 같은 비휘발성의 지속성 저장장치 또는 기타 매체에 저장될 수 있다.
컴퓨터 시스템(420)은 또한, 상기에 시사된 바와 같이, 데이터 및 프로그램 모듈을 저장하도록 구성된 저장 매체를 포함할 수 있다. 예를 들어, 애플리케이션 프로그램(436)은 시스템 메모리(422)의 RAM(425)으로 로딩되는 것이 가능한 하드 드라이브(439)에 저장될 수 있다. 유사하게, 프로그램 데이터(438)는 하드 드라이브(439)에 저장되고 시스템 메모리(422)의 RAM(425) 내에 저장될 수 있다.
저장 매체는 하나 이상의 원격 사이트에 있는 하나 이상의 분산 서비스에 핑하도록 구성된 하나 이상의 프로그램 모듈(437)을 포함할 수 있다. 프로그램 모듈은 하나 이상의 분산 서비스 중 하나로부터 메시지를 수신하도록 더 구성될 수 있는데, 여기서 메시지는 최적의 원격 사이트를 지정한다. 하나 이상의 프로그램 모듈은 최적의 원격 사이트에 있는 분산 서비스로의 등록을 수행하도록 구성될 수 있다.
몇몇 실시예에서, 분산 서비스는 네트워크 인터페이스(453) 및 네트워크 연결(451)을 통해 컴퓨터 시스템(420)에 연결되는 원격 컴퓨터 시스템(483)에 의해 표현될 수 있다. 네트워크 연결(451)은 현재 존재하거나 미래에 존재할 수 있는 다양한 네트워크 연결 중 임의의 것일 수 있다. 현존하는 연결에는 블루투스 연결, 유선 및 무선 연결 및 다양한 기타 연결 등이 있다. 그러나, 실시예는 여기에 기재된 네트워크 연결에만 한정되지 않고, 미지의 다른 연결들을 사용하여 실시될 수도 있다.
일 실시예에서, 하나 이상의 프로그램 모듈(437)은 컴퓨터 시스템(420)이 최적의 사이트 정보를 처리하는 것이 가능하다는 표시를 전송하도록 더 구성될 수 있다. 또 다른 실시예에서, 프로그램 모듈은 최적의 원격 사이트를 표시하는 메시지가 수신되지 않으면 분산 서비스를 찾는 랜덤 핑 기법으로 되돌아가도록 구성될 수 있다.
실시예는 컴퓨터 실행가능 명령어 또는 데이터 구조를 저장하거나 전달하기 위한 컴퓨터 판독가능 매체 또한 포함할 수 있다. 이러한 컴퓨터 판독가능 매체는 범용 또는 특수 용도 컴퓨터에 의해 액세스 될 수 있는 임의의 이용 가능한 매체일 수 있다. 예로서, 이런 컴퓨터 판독가능 매체는 RAM, ROM, EEPROM, CD-ROM 또는 기타 광 디스크 저장 장치, 자기 디스크 저장 장치, 또는 원하는 프로그램 코드 수단을 컴퓨터 실행가능 명령어 또는 데이터 구조의 형태로 전달 또는 저장하는데 사용될 수 있고 범용 또는 특수 용도 컴퓨터에 의해 액세스될 수 있는 임의의 기타 매체를 포함할 수 있지만, 이에 한정되지 않는다. 네트워크 또는 다른 통신 연결(고정 배선, 무선 또는 고정 배선 또는 무선의 조합)를 거쳐 컴퓨터로 정보가 전송되거나 제공될 때, 컴퓨터는 그 연결을 컴퓨터 판독가능 매체로 적절히 간주한다. 따라서, 임의의 이런 연결은 컴퓨터 판독가능 매체로 적절히 일컬어질 수 있다. 상기의 조합 또한 컴퓨터 판독가능 매체의 범주에 포함될 수 있다.
컴퓨터 실행가능 명령어는, 예를 들어, 범용 컴퓨터, 특수 용도 컴퓨터 또는 특수 용도 처리 장치가 일정 기능 또는 기능의 그룹을 수행하게 하는 데이터 및 명령어를 포함한다. 본 발명이 구조적 형상 및/또는 방법론적인 행위에 특정된 형태로 기술되었지만, 본 발명의 권리 범위는 상기의 특정한 형상 또는 행위에 한정되지 않는다. 오히려, 상기에 기술된 특정 형상 및 행위는 본 발명을 구현하는 예시적인 형태로서 개시된 것이다.
본 발명은 본 발명의 사상 또는 주요 특징의 범위 내에서 다른 특정 형태로 실시될 수 있다. 기술된 실시예는 모든 점에서 예시적인 것으로 간주되어야 하고 제한적인 것으로 간주되어서는 안 된다. 따라서, 본 발명의 범주는 첨부된 청구항에 의해서 정해지는 것이지 전술한 설명에 의해서 정해지는 것이 아니다. 청구항의 내용 및 동등 범위 내의 모든 변화는 본 발명의 범주에 속하는 것으로 간주한다.
Claims (20)
- 로컬 사이트(102)에 있는 클라이언트(106) 및 다수의 원격 사이트(108, 112, 116)에 있는 다수의 분산 서비스(120, 121, 122, 124, 130)를 포함하는 네트워크 컴퓨팅 환경(100)에서, 상기 클라이언트를 분산 서비스에 등록하는 방법으로서,하나 이상의 원격 사이트에 있는 하나 이상의 분산 서비스에 핑하는(pinging) 단계(201);상기 하나 이상의 분산 서비스 중 하나로부터 최적의 원격 사이트를 지정(specify)하는 메시지를 수신하는 단계(204); 및상기 최적의 원격 사이트에 있는 분산 서비스에 등록하는 단계(206)를 포함하는 방법.
- 제1항에 있어서,상기 핑하는 단계는 상기 클라이언트가 상기 최적의 원격 사이트를 지정하는 메시지들을 수신하는 것을 지원한다는 표시를 전송하는 단계를 포함하는, 방법.
- 제2항에 있어서,상기 표시는 플래그를 포함하는, 방법.
- 제1항에 있어서,상기 최적의 원격 사이트는 다른 사이트들에 대한 지수(index)와 비교되는 지수에 의해 최적의 원격 사이트로 판정되고, 상기 지수는 상기 클라이언트와 상기 최적의 원격 사이트의 물리적 근접도, 상기 클라이언트를 상기 최적의 원격 사이트에 연결하는 링크에 대한 금전적 비용, 상기 링크의 신뢰도, 상기 링크의 대기 시간 및 성능, 사용자 기호, 상기 링크의 보안, 네트워크 장비, 관리 비용, 상기 링크의 대역폭 또는 상기 링크의 상충되는 사용들(conflicting uses of link) 중 적어도 하나를 사용하는 것에 의해 계산되는, 방법.
- 제1항에 있어서,상기 최적의 원격 사이트는 상기 클라이언트의 IP 주소를 참조하여 상기 로컬 사이트를 식별하는 것에 의해 판정되는, 방법.
- 제1항에 있어서,상기 최적의 원격 사이트에 있는 분산 서비스는 도메인 컨트롤러를 포함하는, 방법.
- 제1항에 있어서,상기 분산 서비스로부터 수신된 메시지는 UDP 메시지인, 방법.
- 제1항에 있어서,상기 하나 이상의 원격 사이트에 있는 하나 이상의 분산 서비스에 핑하는 단계는 상기 클라이언트와 동일한 사이트에 있는 분산 서비스와 교신(contact)하려는 제1 시도 후에 수행되는, 방법.
- 제1항에 있어서,최적의 원격 사이트를 표시하는 메시지가 수신되지 않은 경우 분산 서비스를 찾는 랜덤 핑 기법(random pinging method)으로 되돌아가는 단계를 더 포함하는 방법.
- 로컬 사이트(102)에 있는 클라이언트(106) 및 다수의 원격 사이트(108, 112, 116)에 있는 다수의 분산 서비스(120, 121, 122, 124, 130)를 포함하는 네트워크 컴퓨팅 환경(100)에서, 원격 사이트에 있는 분산 서비스로부터 최적의 원격 사이트의 표시를 상기 로컬 사이트에 있는 클라이언트에 제공하는 방법으로서,상기 클라이언트로부터 핑을 수신하는 단계(402);상기 클라이언트에 대한 정보 및 상기 클라이언트를 상기 최적의 원격 사이트에 연결하는 링크에 대한 정보에 기초하여 상기 최적의 원격 사이트를 판정하는 단계(304); 및상기 클라이언트에 상기 최적의 원격 사이트를 지정하는 메시지를 전송하는 단계(306)를 포함하는 방법.
- 제10항에 있어서,상기 핑(ping)은 상기 클라이언트가 상기 최적의 원격 사이트를 지정하는 메시지들을 수신하는 것을 지원함을 표시하는 플래그를 포함하는, 방법.
- 제10항에 있어서,상기 최적의 원격 사이트를 판정하는 단계는 상기 최적의 원격 사이트의 지수를 다른 사이트들의 지수와 비교하는 단계를 포함하고, 상기 지수는 상기 클라이언트와 상기 최적의 원격 사이트의 물리적 근접도, 상기 클라이언트를 상기 최적의 원격 사이트에 연결하는 링크에 대한 금전적 비용, 상기 링크의 신뢰도, 상기 링크의 대기 시간 및 성능, 사용자 기호, 상기 링크의 보안, 네트워크 장비, 관리 비용, 상기 링크의 대역폭 또는 상기 링크의 상충되는 사용들 중 적어도 하나를 사용하는 것에 의해 계산되는, 방법.
- 제12항에 있어서,상기 최적의 원격 사이트의 지수를 계산하는 단계를 더 포함하는 방법.
- 제12항에 있어서,계산된 상기 최적의 원격 사이트의 지수를 수신하는 단계를 더 포함하는 방법.
- 제10항에 있어서,상기 클라이언트에 대한 정보는 상기 클라이언트의 IP 주소를 포함하는, 방법.
- 제10항에 있어서,상기 최적의 원격 사이트에 있는 분산 서비스는 도메인 컨트롤러를 포함하는, 방법.
- 제10항에 있어서,상기 클라이언트에 메시지를 전송하는 단계는 UDP 메시지를 전송하는 단계를 포함하는, 방법.
- 클라이언트 시스템들(106) 및 분산 서비스들(104, 120, 121, 122, 124, 130)을 포함하는 컴퓨팅 환경(100)에서, 분산 서비스에 등록하도록 구성된 컴퓨터 시스템(420)으로서,프로그램 모듈들(437)을 실행하도록 구성된 프로세서(421); 및데이터(438) 및 프로그램 모듈들(437)을 저장하도록 구성된 저장 매체(422, 439)를 포함하고,상기 저장 매체는,하나 이상의 원격 사이트에 있는 하나 이상의 분산 서비스에 핑하고,상기 하나 이상의 분산 서비스 중 하나로부터 최적의 원격 사이트를 지정하는 메시지를 수신하고,상기 최적의 원격 사이트에 있는 분산 서비스에 등록하도록 구성된 하나 이상의 프로그램 모듈(437)을 포함하는, 컴퓨터 시스템.
- 제18항에 있어서,상기 하나 이상의 프로그램 모듈은 상기 컴퓨터 시스템이 최적의 사이트 정보를 처리하는 것이 가능하다는 표시를 전송하도록 더 구성된, 컴퓨터 시스템.
- 제18항에 있어서,상기 하나 이상의 프로그램 모듈은 최적의 원격 사이트를 표시하는 메시지가 수신되지 않은 경우 분산 서비스를 찾는 랜덤 핑 기법으로 되돌아가도록 더 구성된, 컴퓨터 시스템.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/292,771 | 2005-12-02 | ||
US11/292,771 US7606937B2 (en) | 2005-12-02 | 2005-12-02 | Next site for distributed service connections |
PCT/US2006/040046 WO2007064415A1 (en) | 2005-12-02 | 2006-10-10 | Method and system for registering a distributed service site |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20080077966A true KR20080077966A (ko) | 2008-08-26 |
KR101278744B1 KR101278744B1 (ko) | 2013-06-25 |
Family
ID=38092556
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020087013166A KR101278744B1 (ko) | 2005-12-02 | 2006-10-10 | 분산 서비스 사이트를 등록하기 위한 방법 및 시스템 |
Country Status (10)
Country | Link |
---|---|
US (1) | US7606937B2 (ko) |
EP (1) | EP1955181B1 (ko) |
JP (1) | JP4801169B2 (ko) |
KR (1) | KR101278744B1 (ko) |
CN (1) | CN101322114B (ko) |
AU (1) | AU2006320927B2 (ko) |
BR (1) | BRPI0617883A8 (ko) |
CA (1) | CA2624273C (ko) |
RU (1) | RU2427032C2 (ko) |
WO (1) | WO2007064415A1 (ko) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014055448A1 (en) * | 2012-10-02 | 2014-04-10 | Nextbit, Inc. | Customizing operating system based on detected carrier |
US8875127B2 (en) | 2012-10-02 | 2014-10-28 | Nextbit Systems Inc. | Operating system customization |
US9038060B2 (en) | 2012-10-02 | 2015-05-19 | Nextbit Systems Inc. | Automatically installing operating system specific to a detected network |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8805950B1 (en) * | 2007-09-12 | 2014-08-12 | Aol Inc. | Client web cache |
US20100088415A1 (en) * | 2008-10-07 | 2010-04-08 | Aaron Archer | Method and apparatus for locating facilities |
US10268550B2 (en) * | 2016-10-10 | 2019-04-23 | Quest Software Inc. | Virtualizing a secure active directory environment |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5483652A (en) * | 1994-01-24 | 1996-01-09 | Digital Equipment Corporation | Mechanism for locating without search discrete application resources known by common name only in a distributed network computing environment |
US5892946A (en) * | 1995-09-12 | 1999-04-06 | Alcatel Usa, Inc. | System and method for multi-site distributed object management environment |
US6012096A (en) * | 1998-04-23 | 2000-01-04 | Microsoft Corporation | Method and system for peer-to-peer network latency measurement |
US20010039587A1 (en) * | 1998-10-23 | 2001-11-08 | Stephen Uhler | Method and apparatus for accessing devices on a network |
US6304913B1 (en) * | 1998-11-09 | 2001-10-16 | Telefonaktiebolaget L M Ericsson (Publ) | Internet system and method for selecting a closest server from a plurality of alternative servers |
US6826692B1 (en) | 1998-12-23 | 2004-11-30 | Computer Associates Think, Inc. | Method and apparatus to permit automated server determination for foreign system login |
ATE366437T1 (de) * | 1999-08-13 | 2007-07-15 | Sun Microsystems Inc | Elegante verteilung des lastausgleichs für anwendungs-server |
US6922685B2 (en) | 2000-05-22 | 2005-07-26 | Mci, Inc. | Method and system for managing partitioned data resources |
US7155723B2 (en) * | 2000-07-19 | 2006-12-26 | Akamai Technologies, Inc. | Load balancing service |
US7089301B1 (en) * | 2000-08-11 | 2006-08-08 | Napster, Inc. | System and method for searching peer-to-peer computer networks by selecting a computer based on at least a number of files shared by the computer |
US6920498B1 (en) * | 2000-08-31 | 2005-07-19 | Cisco Technology, Inc. | Phased learning approach to determining closest content serving sites |
JP2002132462A (ja) * | 2000-10-26 | 2002-05-10 | Fujitsu Ltd | 印刷代行サービス方法及びシステム |
US7340505B2 (en) * | 2001-04-02 | 2008-03-04 | Akamai Technologies, Inc. | Content storage and replication in a managed internet content storage environment |
US20030009401A1 (en) * | 2001-04-27 | 2003-01-09 | Enerwise Global Technologies, Inc. | Computerized utility cost estimation method and system |
US6950847B2 (en) * | 2001-07-12 | 2005-09-27 | Sun Microsystems, Inc. | Service provider system for delivering services in a distributed computing environment |
US6792421B2 (en) * | 2001-08-13 | 2004-09-14 | Genesis Group Inc. | System and method for retrieving location-qualified site data |
DE60109947T2 (de) | 2001-12-21 | 2006-02-09 | Castify Networks S.A., Valbonne | Verfahren zur Server-Auswahl in einem Inhaltsauslieferungsnetzwerk |
US7113796B2 (en) * | 2002-01-18 | 2006-09-26 | Microsoft Corporation | Framework and method for QoS-aware resource discovery in mobile ad hoc networks |
KR100477653B1 (ko) * | 2002-06-22 | 2005-03-23 | 삼성전자주식회사 | 외부망에서의 dns 서버 검색 장치 및 방법 |
US7970876B2 (en) * | 2002-07-23 | 2011-06-28 | Avaya Communication Israel Ltd. | Global server load balancer |
US6909721B2 (en) * | 2002-10-31 | 2005-06-21 | Nokia Corporation | Device detection and service discovery system and method for a mobile ad hoc communications network |
EP1515233A3 (en) * | 2003-08-06 | 2007-03-14 | Matsushita Electric Industrial Co., Ltd. | Method, server and client for reducing processing time in synchronous communication in a client-server distributed system |
-
2005
- 2005-12-02 US US11/292,771 patent/US7606937B2/en not_active Expired - Fee Related
-
2006
- 2006-10-10 KR KR1020087013166A patent/KR101278744B1/ko active IP Right Grant
- 2006-10-10 RU RU2008121872/08A patent/RU2427032C2/ru not_active IP Right Cessation
- 2006-10-10 AU AU2006320927A patent/AU2006320927B2/en not_active Ceased
- 2006-10-10 BR BRPI0617883A patent/BRPI0617883A8/pt not_active Application Discontinuation
- 2006-10-10 CA CA2624273A patent/CA2624273C/en not_active Expired - Fee Related
- 2006-10-10 JP JP2008543284A patent/JP4801169B2/ja not_active Expired - Fee Related
- 2006-10-10 WO PCT/US2006/040046 patent/WO2007064415A1/en active Application Filing
- 2006-10-10 EP EP06825892.0A patent/EP1955181B1/en not_active Not-in-force
- 2006-10-10 CN CN2006800452958A patent/CN101322114B/zh not_active Expired - Fee Related
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014055448A1 (en) * | 2012-10-02 | 2014-04-10 | Nextbit, Inc. | Customizing operating system based on detected carrier |
US8806478B2 (en) | 2012-10-02 | 2014-08-12 | Nextbit Systems, Inc. | Customizing operating system based on detected carrier |
US8875127B2 (en) | 2012-10-02 | 2014-10-28 | Nextbit Systems Inc. | Operating system customization |
US9038060B2 (en) | 2012-10-02 | 2015-05-19 | Nextbit Systems Inc. | Automatically installing operating system specific to a detected network |
US9398063B2 (en) | 2012-10-02 | 2016-07-19 | Nextbit Systems Inc. | Customizing distribution of an operating system based on detected network carrier by retrieving differences between the distributed operating system and an operating system currently installed on a computing device |
US10346481B2 (en) | 2012-10-02 | 2019-07-09 | Razer (Asia-Pacific) Pte. Ltd. | Customizing operating system based on detected carrier |
Also Published As
Publication number | Publication date |
---|---|
AU2006320927B2 (en) | 2011-03-17 |
BRPI0617883A2 (pt) | 2011-08-09 |
RU2008121872A (ru) | 2009-12-10 |
CN101322114B (zh) | 2010-05-26 |
CA2624273A1 (en) | 2007-06-07 |
CN101322114A (zh) | 2008-12-10 |
BRPI0617883A8 (pt) | 2016-11-08 |
US7606937B2 (en) | 2009-10-20 |
EP1955181A1 (en) | 2008-08-13 |
WO2007064415A1 (en) | 2007-06-07 |
JP4801169B2 (ja) | 2011-10-26 |
AU2006320927A1 (en) | 2007-06-07 |
CA2624273C (en) | 2014-03-11 |
KR101278744B1 (ko) | 2013-06-25 |
JP2009518883A (ja) | 2009-05-07 |
RU2427032C2 (ru) | 2011-08-20 |
US20070130304A1 (en) | 2007-06-07 |
EP1955181A4 (en) | 2014-05-14 |
EP1955181B1 (en) | 2018-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8462665B2 (en) | Shared community storage network | |
US8813225B1 (en) | Provider-arbitrated mandatory access control policies in cloud computing environments | |
US8108502B2 (en) | Storage device for use in a shared community storage network | |
US8914502B2 (en) | System and method for dynamic discovery of origin servers in a traffic director environment | |
US8612561B2 (en) | Virtual network storage system, network storage device and virtual method | |
US20020083146A1 (en) | Data model for automated server configuration | |
CN101540755B (zh) | 一种修复数据的方法、系统和装置 | |
EP2248058B1 (en) | Peer to peer software license management system for temporarily relocating available software licenses | |
JP2013257897A (ja) | 目的ネットワークに基づくネットワークタスク実行方法及びシステム | |
JP6013300B2 (ja) | クラスタデータ処理のための方法及び装置 | |
KR101278744B1 (ko) | 분산 서비스 사이트를 등록하기 위한 방법 및 시스템 | |
US10567492B1 (en) | Methods for load balancing in a federated identity environment and devices thereof | |
CN101562558A (zh) | 一种终端等级划分的方法、系统和设备 | |
CN111327668A (zh) | 网络管理方法、装置、设备和存储介质 | |
US20240004684A1 (en) | System and method for exchanging messages between cloud services and software-defined data centers | |
US7701876B2 (en) | Message transmission method and device in mixture of private network and public network | |
US20070220132A1 (en) | Server device and communication system | |
US9270530B1 (en) | Managing imaging of multiple computing devices | |
US12095666B1 (en) | Efficient propagation of routing information for compute instances with network address ranges of multiple address families | |
CN116866415A (zh) | 一种服务治理方法与系统 | |
CN115883405A (zh) | 一种服务检测系统 | |
WO2009098430A1 (en) | Information access system |
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: 20160517 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20170522 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20180516 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20190515 Year of fee payment: 7 |