KR101433945B1 - 주기적인 분산형 시간을 통한 리소스 관리 - Google Patents

주기적인 분산형 시간을 통한 리소스 관리 Download PDF

Info

Publication number
KR101433945B1
KR101433945B1 KR1020077026784A KR20077026784A KR101433945B1 KR 101433945 B1 KR101433945 B1 KR 101433945B1 KR 1020077026784 A KR1020077026784 A KR 1020077026784A KR 20077026784 A KR20077026784 A KR 20077026784A KR 101433945 B1 KR101433945 B1 KR 101433945B1
Authority
KR
South Korea
Prior art keywords
time
resource
service
network
time domain
Prior art date
Application number
KR1020077026784A
Other languages
English (en)
Other versions
KR20080022080A (ko
Inventor
조르지오스 크리산타코폴로스
도날드 엠. 3세 그레이
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 KR20080022080A publication Critical patent/KR20080022080A/ko
Application granted granted Critical
Publication of KR101433945B1 publication Critical patent/KR101433945B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/08Clock generators with changeable or programmable clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/10Distribution of clock signals, e.g. skew
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Environmental & Geological Engineering (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Telephonic Communication Services (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)
  • Power Sources (AREA)

Abstract

분산형 네트워크의 리소스 관리를 제공하기 위한 시스템 및 방법이 기재되어 있다. 네트워크 내의 장치의 느슨한 집합은 다른 장치에 대한 전력 제약조건을 인식할 수 없다. 콘센트형 장치는 일반적으로 배터리형 이동식 장치와는 완전히 상이한 전력 설정을 가질 것이다. 본 발명은 네트워크의 각 장치 (또는 노드)의 국부적인 리소스 요구사항을 이해할 책임이 있는 국부적인 서비스에 종속되어 사용될 수 있는 시간에 대한 연합 정책을 제공한다. 이러한 분산형 시간 시스템에서, 특정 시간 영역의 모든 서비스들은 가속될 수도 있고, 감속될 수도 있고, 아니면 완전히 정지될 수도 있다.
분산형 시간, 리소스 관리, 시간 영역, 분산형 클럭 서비스, 타임키퍼 서비스, 리소스 사용 코디네이터

Description

주기적인 분산형 시간을 통한 리소스 관리{RESOURCE MANAGEMENT VIA PERIODIC DISTRIBUTED TIME}
일반적으로, 본 발명은 분산형 네트워크의 리소스 관리를 제공하기 위한 시스템 및 방법에 관한 것이다. 보다 구체적으로, 본 발명은 네트워크 노드의 국부적인 리소스 요구사항을 이해할 책임이 있는 서비스에 종속되어 사용될 수 있는 시간에 대한 연합 정책(federation policy)을 사용하는 시스템 및 방법에 관한 것이다.
네트워크 내의 장치들의 느슨한 집합(loose collection)은 네트워크 상의 다른 장치에 대한 어떤 제약조건을 인식할 수 없다. 예컨대, 벽의 콘센트를 통해 전력을 공급받는 장치(wall-powered device, 이하 '콘센트형 장치')는 배터리를 통해 전력을 공급받는 이동식 장치(이하, '배터리형 장치')와는 완전히 상이한 전력 설정을 가질 수 있다. 그러나, 이들 장치들이 상호작용될 때, 원격 서비스에 대한 전력 소비 설정에 기초하여 장치가 가속되거나 감속되기 위한 구조적으로 일관된 방법이 없다.
예컨대, 콘센트형 장치는 배터리형 장치에 전송되는 작업량을 감속시킬 필요가 있는데, 왜냐하면 전송되는 모든 패킷이 원격 장치의 제한된 배터리가 보다 많 은 전파 전력과 CPU 에너지를 소비하도록 요구하기 때문이다. 마찬가지로, 배터리형 장치는 계산 또는 저장을 다른 장치로 오프로드(offload)하고 싶어하는데, 왜냐하면 계산 작업을 국부적으로 실행하는 데에는 (에너지 소비 측면에서) 매우 많은 비용이 들기 때문이다.
따라서, 분산형 네트워크를 형성하는 다수의 노드들 간에서, 처리 전력, 배터리 수명 및 대역폭 사용과 같은 리소스를 관리하는 데에 이용가능한 시스템 및 방법이 존재한다면 바람직할 것이다.
본 발명은 분산형 네트워크 내의 장치 리소스를 관리하기 위한 시스템 및 방법을 제공한다. 이러한 리소스의 예에는 배터리 수명, 네트워크 대역폭, CPU 사용(utilization) 등이 포함될 수 있다. 특히, 본 발명은 장치들(각각이 네트워크 노드로 고려될 수 있음)의 네트워크를 통해 이러한 리소스들을 관리하기 위하여 분산형 및 연합형(federated) 방식을 제공한다. 여기서 사용됨에 있어서, "연합형"이란 용어는, 장치들이 국부적으로도 제어될 수 있지만 다수의 장치들이 어떤 공통성(commonality)을 갖는 소정의 중앙 집중형 방식으로도 모일 수 있는 시스템을 의미한다.
이러한 시스템에서, 시간에 대한 연합 정책은 장치의 요구사항을 이해할 책임이 있는 로컬 서비스에 종속되어 사용될 수 있다. 이러한 시간에 대한 연합 정책은 이전에 이미 개시되었다. 예컨대, U.S 특허 출원 제09/836,834호에서는 복수의 장치들 또는 서비스들이 하나의 마스터 클럭에 종속될 수 있는 분산형 시간 시스템을 개시하고 청구한다. 이러한 분산형 시간 시스템에서는, 소정의 시간 영역(time domain) 내의 모든 서비스들이 가속될 수도 있고, 감속될 수도 있고, 아니면 완전히 정지될 수도 있다. 예컨대, 클럭 틱(clock tick)과 같은 신호원은 서비스가 얼마나 빨리 실행되는지를 제어하는 주기적인 이벤트로서 전송될 수 있다. 하나의 분산된 클럭에 대해 복수의 서비스들을 종속시키면 그 시간 영역 내에 있는 다수의 서비스들을 록스텝(lockstep) 방식으로, 심지어는 아주 낮은(fractional) 레이트나 0의 레이트로 실행시킬 수 있다.
또한, 소정의 기간 동안 서비스에 "리스(lease)"가 승인될 수 있는 "리스홀더(leaseholder)" 서비스가 제공될 수 있다. 리스가 기간 만료되고 나서 서비스가 그 리스를 갱신하지 않은 경우, 서비스는 종료(dead)된 것으로 추정될 수 있고, 이용가능한 원격 서비스의 다른 노드 리스트로부터 "가비지 컬렉트"(garbage-collect)될 수 있다. 본 발명의 실시 양태에 의하면, 상이한 시간 영역들이 사용되고 있기 때문에 리스가 조급하게 만료되지 않음을 동시에 보장하면서 장치 리소스가 관리될 수 있다.
본 발명에 의하면, 로컬 장치는, 로컬 장치의 현재 정책 또는 현재 상태에 기초하여, 로컬 장치의 하나 이상의 리소스를 관리하기 위하여, 하나 이상의 로컬 또는 원격 서비스를 제어하는 행동에 영향을 미칠 수 있다. 예컨대, 배터리 수명을 관리하기 위해서는 전력 사용이 제어될 수 있다. 예컨대, 네트워크 대역폭을 관리하기 위해서는 패킷 대역폭이 관리될 수 있다. 예컨대, CPU 사용을 관리하기 위해서는 작업 아이템 스케쥴링 및 전력 사용이 제어될 수 있다. 따라서, 로컬 장치는 시간 서비스 및 리스홀더 서비스가, 배터리 전력 또는 CPU를 제어하기 위하여 입력 메시지 트래픽을 변화(즉, 감소, 가속 또는 정지)시키도록 할 수 있고, 아니면 네트워크 대역폭을 관리하기 위해 I/O 대역폭을 변화(즉, 감소 또는 증가)시키도록 할 수 있다.
어떤 I/O 패턴은 로컬 장치의 전력 상태 또는 전력 정책에 종속될 수 있다. 이러한 I/O 패턴은 작업 아이템의 스케쥴링, 라이브니스(liveness) 레이트 (또는 리스홀더 서비스의 임의의 주기적인 시그널링), 메모리 할당 레이트 (및 메모리의 수명 길이), 및 경계 전송 서비스(boundary transport service)(즉, 네트워크 컨트롤러들 및 이들 상부의 스택, 시리얼 버스 컨트롤러 등과 같은 시스템의 내부 및 외부의 I/O를 얻기 위하여 하드웨어를 실제로 사용하는 서비스)를 위한 I/O 레이트가 포함될 수 있다.
본 발명에 따른 예시적인 시스템은 분산형 클럭 서비스 및 리소스 사용 코디네이터를 포함할 수 있다. 분산형 클럭 서비스는 각각의 시간 영역을 유지하며, 각각의 시간 영역은 특정 리소스 또는 액티비티와 연관될 수 있다. 리소스 사용 코디네이터는 분산형 클럭 서비스가, 리소스가 네트워크 상의 장치에 의해 사용되는 레이트를 변화시키기 위하여 시간축들 중 적어도 하나를 변화시키게 한다.
도 1은 본 발명의 실시 양태가 구현될 수 있는 예시적인 컴퓨팅 환경을 도시하는 블록도.
도 2는 분산형 네트워크의 일례를 도시하는 도면.
도 3은 분산형 네트워크 환경에서 사용될 수 있는 시간 서비스를 도시하는 도면.
도 4A 및 도 4B는 시퀀서(sequencer)에 의해 관리되는 타이밍 이벤트를 도시하는 도면.
도 5는 분산형 네트워크 내의 장치 리소스를 관리하기 위한 예시적인 시스템의 기능적인 플로우챠트.
도 6은 분산형 네트워크 내의 장치 리소스를 관리하기 위한 예시적인 방법의 플로우챠트.
예시적인 컴퓨팅 환경
도 1 및 이하의 논의는 본 발명의 예시적인 실시예가 구현되기에 적합한 컴퓨팅 시스템 환경의 간단하고 일반적인 설명을 제공하기 위한 것이다. 그러나, 본 발명과 관련된 사용을 위하여 핸드헬드(handheld) 장치, 휴대용 장치 및 모든 종류의 다른 컴퓨팅 장치가 고려됨을 이해하여야 한다. 이하에서는 범용의 컴퓨터가 기재되어 있지만, 이는 단지 일례에 불과하다. 또한, 본 발명은 네트워크 서버 상호운용성 및 상호작용을 갖는 씬 클라이언트(thin client) 상에서도 적용가능하다. 따라서, 본 발명의 예시적인 실시예는 아주 적거나 아니면 최소한의 클라이언트 리소스만이 포함되는 네트워크화된 호스트 서비스의 환경, 예컨대 클라이언트 장치가 단지 월드 와이드 웹(World Wide Web)에 대한 인터페이스 또는 브라우저로서만 기능하는 네트워크화된 환경에서 구현가능하다. 또한, 이러한 컴퓨팅 장치는 임의의 직접적인 인간 인터페이스를 포함할 필요가 없으며, 네트워크를 통해서만 액세스될 수 있음을 이해하여야 한다.
반드시 요구되는 것은 아니지만, 본 발명은 개발업자 또는 테스트업자에 의한 사용을 위해 애플리케이션 프로그래밍 인터페이스(API)를 통해 구현될 수 있고/있거나, 일반적으로 하나 이상의 컴퓨터(예컨대, 클라이언트 워크스테이션, 서버 또는 다른 장치들)에 의해 실행되는 프로그램 모듈과 같은 컴퓨터 실행가능 명령어와 관련하여 기술되는 네트워크 브라우징 소프트웨어 내에 포함될 수 있다. 일반적으로, 프로그램 모듈은 특정 태스크를 수행하거나 특정 추상 데이터 유형을 구현하는 루틴, 프로그램, 객체, 컴포넌트, 데이터 구조 등을 포함한다. 통상적으로, 프로그램 모듈의 기능은 다양한 실시예에서 원하는 바와 같이 조합되거나 분산될 수 있다. 또한, 당업자는 본 발명이 다른 컴퓨터 시스템 구성과 함께 실행될 수 있음을 이해할 것이다. 본 발명에서 사용하는 데 적합할 수 있는 잘 알려진 다른 컴퓨팅 시스템, 환경 및/또는 구성의 예로는 퍼스널 컴퓨터(PC), 현금 자동 입출금기, 서버 컴퓨터, 핸드-헬드 또는 랩톱 장치, 멀티프로세서 시스템, 마이크로프로세서 기반 시스템, 프로그램가능한 가전제품, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터 등을 포함하지만, 이에 제한되는 것은 아니다. 본 발명의 실시예는 또한 통신 네트워크 또는 다른 데이터 전송 매체를 통해 연결되어 있는 원격 처리 장치들에 의해 태스크가 수행되는 분산형 컴퓨팅 환경에서 실시될 수 있다. 분산형 컴퓨팅 환경에서, 프로그램 모듈은 메모리 저장 장치를 비롯한 로컬 및 원격 컴퓨터 저장 매체 둘다에 위치할 수 있다.
따라서, 도 1은 본 발명이 구현되기에 적합한 컴퓨팅 시스템 환경(100)의 일례를 도시하고 있으며, 위에서 명백히 기재한 바와 같이, 컴퓨팅 시스템 환경(100)은 적합한 컴퓨팅 환경의 일례에 불과하며, 본 발명의 용도 또는 기능성의 범위에 관해 어떤 제한을 암시하고자 하는 것이 아니다. 컴퓨팅 환경(100)이 예시적인 운영 환경(100)에 도시된 컴포넌트들 중 임의의 하나 또는 그 컴포넌트들의 임의의 조합과 관련하여 어떤 의존성 또는 요구사항을 갖는 것으로 해석되어서는 안된다.
도 1과 관련하여, 본 발명을 구현하는 예시적인 시스템은 컴퓨터(110) 형태의 범용 컴퓨팅 장치를 포함한다. 컴퓨터(110)의 컴포넌트들은 처리 장치(120), 시스템 메모리(130), 및 시스템 메모리를 비롯한 각종 시스템 컴포넌트들을 처리 장치(120)에 연결시키는 시스템 버스(121)를 포함하지만 이에 제한되는 것은 아니다. 시스템 버스(121)는 메모리 버스 또는 메모리 컨트롤러, 주변 장치 버스 및 각종 버스 아키텍처 중 임의의 것을 이용하는 로컬 버스를 비롯한 몇몇 유형의 버스 구조 중 어느 것이라도 될 수 있다. 예로서, 이러한 아키텍처는 ISA(Industry Standard Architecture) 버스, MCA(Micro Channel Architecture) 버스, EISA(Enhanced ISA) 버스, VESA(Video Electronics Standards Association) 로컬 버스, 그리고 (메자닌 버스(Mezzanine bus)로도 알려진) PCI(Peripheral Component Interconnect) 버스 등을 포함하지만 이에 제한되는 것은 아니다.
컴퓨터(110)는 통상적으로 각종 컴퓨터 판독가능 매체를 포함한다. 컴퓨터(110)에 의해 액세스 가능한 매체는 그 어떤 것이든지 컴퓨터 판독가능 매체가 될 수 있고, 이러한 컴퓨터 판독가능 매체는 휘발성 및 비휘발성 매체, 이동식 및 비이동식 매체를 포함한다. 예로서, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함하지만 이에 제한되는 것은 아니다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보를 저장하는 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 이동식 및 비이동식 매체를 포함한다. 컴퓨터 저장 매체는 RAM(random access memory), ROM(read-only memory), EEPROM(Electrically-Erasable Programmable Read-Only Memory), 플래시 메모리 또는 기타 메모리 기술, CD-ROM(compact disc read-only memory), DVD(digital versatile disk) 또는 기타 광 디스크 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 기타 자기 저장 장치, 또는 컴퓨터(110)에 의해 액세스되고 원하는 정보를 저장할 수 있는 임의의 기타 매체를 포함하지만 이에 제한되는 것은 아니다. 통신 매체는 통상적으로 반송파(carrier wave) 또는 기타 전송 메커니즘(transport mechanism)과 같은 피변조 데이터 신호(modulated data signal)에 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터 등을 구현하고 모든 정보 전달 매체를 포함한다. "피변조 데이터 신호"라는 용어는, 신호 내에 정보를 인코딩하도록 그 신호의 특성들 중 하나 이상을 설정 또는 변경시킨 신호를 의미한다. 예로서, 통신 매체는 유선 네트워크 또는 직접 배선 접속(direct-wired connection)과 같은 유선 매체, 그리고 음향, RF, 적외선, 기타 무선 매체와 같은 무선 매체를 포함한다. 상술된 매체들의 모든 조합이 또한 컴퓨터 판독가능 매체의 영역 안에 포함되는 것으로 한다.
시스템 메모리(130)는 판독 전용 메모리(ROM)(131) 및 랜덤 액세스 메모 리(RAM)(132)와 같은 휘발성 및/또는 비휘발성 메모리 형태의 컴퓨터 저장 매체를 포함한다. 시동 중과 같은 때에, 컴퓨터(110) 내의 구성요소들 사이의 정보 전송을 돕는 기본 루틴을 포함하는 기본 입/출력 시스템(BIOS)(133)은 통상적으로 ROM(131)에 저장되어 있다. RAM(132)은 통상적으로 처리 장치(120)가 즉시 액세스 할 수 있고 및/또는 현재 동작시키고 있는 데이터 및/또는 프로그램 모듈을 포함한다. 예로서, 도 1은 운영 체제(134), 애플리케이션 프로그램(135), 기타 프로그램 모듈(136) 및 프로그램 데이터(137)를 도시하고 있지만 이에 제한되는 것은 아니다. RAM(132)은 다른 데이터 및/또는 프로그램 모듈을 포함할 수 있다.
컴퓨터(110)는 또한 기타 이동식/비이동식, 휘발성/비휘발성 컴퓨터 저장매체를 포함한다. 단지 예로서, 도 1은 비이동식·비휘발성 자기 매체에 기록을 하거나 그로부터 판독을 하는 하드 디스크 드라이브(141), 이동식·비휘발성 자기 디스크(152)에 기록을 하거나 그로부터 판독을 하는 자기 디스크 드라이브(151), CD-ROM 또는 기타 광 매체 등의 이동식·비휘발성 광 디스크(156)에 기록을 하거나 그로부터 판독을 하는 광 디스크 드라이브(155)를 포함한다. 예시적인 운영 환경에서 사용될 수 있는 기타 이동식/비이동식, 휘발성/비휘발성 컴퓨터 저장 매체로는 자기 테이프 카세트, 플래시 메모리 카드, DVD, 디지털 비디오 테이프, 고상(solid state) RAM, 고상 ROM 등이 있지만 이에 제한되는 것은 아니다. 하드 디스크 드라이브(141)는 통상적으로 인터페이스(140)와 같은 비이동식 메모리 인터페이스를 통해 시스템 버스(121)에 접속되고, 자기 디스크 드라이브(151) 및 광 디스크 드라이브(155)는 통상적으로 인터페이스(150)와 같은 이동식 메모리 인터페이스에 의해 시스템 버스(121)에 접속된다.
위에서 설명되고 도 1에 도시된 드라이브들 및 이들과 관련된 컴퓨터 저장 매체는, 컴퓨터(110)를 위해, 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 및 기타 데이터를 저장한다. 도 1에서, 예를 들어, 하드 디스크 드라이브(141)는 운영 체제(144), 애플리케이션 프로그램(145), 기타 프로그램 모듈(146), 및 프로그램 데이터(147)를 저장하는 것으로 도시되어 있다. 여기서 주의할 점은 이들 컴포넌트가 운영 체제(134), 애플리케이션 프로그램(135), 기타 프로그램 모듈(136), 및 프로그램 데이터(137)와 동일하거나 그와 다를 수 있다는 것이다. 운영 체제(144), 애플리케이션 프로그램(145), 기타 프로그램 모듈(146) 및 프로그램 데이터(147)에 다른 번호가 부여되어 있다는 것은 적어도 이들이 다른 사본(copy)이라는 것을 나타내기 위한 것이다. 사용자는 키보드(162) 및 마우스, 트랙볼(trackball) 또는 터치 패드와 같은 포인팅 장치(161) 등의 입력 장치를 통해 명령 및 정보를 컴퓨터(110)에 입력할 수 있다. 다른 입력 장치(도시 생략)로는 마이크, 조이스틱, 게임 패드, 위성 안테나, 스캐너 등을 포함할 수 있다. 이들 및 기타 입력 장치는 종종 시스템 버스(121)에 결합된 사용자 입력 인터페이스(160)를 통해 처리 장치(120a-f)에 접속되지만, 병렬 포트, 게임 포트 또는 USB(universal serial bus) 등의 다른 인터페이스 및 버스 구조에 의해 접속될 수도 있다.
모니터(191) 또는 다른 유형의 디스플레이 장치도 비디오 인터페이스(190) 등의 인터페이스를 통해 시스템 버스(121)에 접속된다. 모니터(191) 외에, 컴퓨터는 스피커(197) 및 프린터(196) 등의 기타 주변 출력 장치를 포함할 수 있고, 이들 은 출력 주변장치 인터페이스(195)를 통해 접속될 수 있다.
컴퓨터(110)는 원격 컴퓨터(180)와 같은 하나 이상의 원격 컴퓨터로의 논리적 접속을 사용하여 네트워크화된 환경에서 동작할 수 있다. 원격 컴퓨터(180)는 퍼스널 컴퓨터, 서버, 라우터, 네트워크 PC, 피어 장치 또는 기타 통상의 네트워크 노드일 수 있고, 비록 도 1에는 메모리 저장 장치(181)만이 도시되어 있지만, 통상적으로 컴퓨터(110)와 관련하여 상술된 구성요소들의 대부분 또는 그 전부를 포함한다. 도 1에 도시된 논리적 접속으로는 LAN(local area network)(171) 및 WAN(wide area network)(173)이 있지만, 기타 네트워크를 포함할 수도 있다. 이러한 네트워킹 환경은 사무실, 전사적 컴퓨터 네트워크(enterprise-wide computer network), 인트라넷, 및 인터넷에서 일반적인 것이다.
LAN 네트워킹 환경에서 사용될 때, 컴퓨터(110)는 네트워크 인터페이스 또는 어댑터(170)를 통해 LAN(171)에 접속된다. WAN 네트워킹 환경에서 사용될 때, 컴퓨터(110)는 통상적으로 인터넷과 같은 WAN(173)을 통해 통신을 설정하기 위한 모뎀(172) 또는 기타 수단을 포함한다. 내장형 또는 외장형일 수 있는 모뎀(172)은 사용자 입력 인터페이스(160) 또는 기타 적절한 메커니즘을 통해 시스템 버스(121)에 접속된다. 네트워크화된 환경에서, 컴퓨터(110) 또는 그의 일부와 관련하여 기술된 프로그램 모듈은 원격 메모리 저장 장치에 저장될 수 있다. 예로서, 도 1은 원격 애플리케이션 프로그램(185)이 메모리 장치(181)에 있는 것으로 도시하고 있지만 이에 제한되는 것은 아니다. 도시된 네트워크 접속은 예시적인 것이며 이 컴퓨터들 사이에 통신 링크를 설정하는 기타 수단이 사용될 수 있다는 것을 이해할 것이다.
당업자는 컴퓨터(110) 또는 다른 클라이언트 장치가 컴퓨터 네트워크의 일부로서 배치될 수 있음을 이해할 것이다. 이 점에서, 본 발명은 임의의 수의 메모리 또는 저장 유닛, 및 임의의 수의 애플리케이션 및 임의의 수의 저장 유닛 또는 볼륨을 통해 발생되는 프로세스를 포함하는 임의의 컴퓨터 시스템에 적합하다. 본 발명의 실시예는 원격 또는 로컬 저장 장치를 포함한 네트워크 환경에 배치되는 서버 컴퓨터 및 클라이언트 컴퓨터를 갖는 환경에 적용 가능하다. 또한, 본 발명은 프로그래밍 언어 기능, 번역 및 실행 능력을 포함하는 독립형(standalone) 컴퓨팅 장치에 적용가능하다.
예시적인 분산형 네트워크
도 2는 복수의 네트워크 노드들(10A-H)을 포함하는 분산형 네트워크의 일례를 도시한다. 이러한 노드는 예컨대, 퍼스널 컴퓨터일 수 있으며, 또는 예컨대 서버, 라우터, 네트워크 PC, 피어 장치 등과 같이 처리 및 데이터 저장 능력을 포함하는 임의의 다른 네트워크 장치일 수 있다. 노드(10A-H)는 예컨대, 인트라넷 또는 인터넷과 같은 근거리 통신망 또는 원거리 통신망을 통해 서로 상호접속되는 피어일 수 있다.
각 노드(10A-H)에는 고유한 어드레스가 할당될 수 있다. 어드레스의 길이는 각 노드가 고유한 어드레스를 가짐을 보장하도록 선택될 수 있다. 일례에서, 네트워크가 수 천만개의 노드들을 포함할 것으로 예상되는 인터넷 기반 시스템에서는, 160 비트 어드레스가 사용될 수 있다. 이러한 어드레스 구조는 TCP(transmission control protocol)의 상부에 라우팅 오버레이를 형성할 수 있다.
다수의 노드들(10A-H) 간에 분산된 프로세스는 SOAP(simple object access protocol) 메시지에 의하여 네트워크를 통해 서로 통신할 수 있다. SOAP는 잘 알려진 경량의 XML 기반의 분산형 컴퓨팅 프로토콜이다. SOAP 메시지는 SOAP 인벨로프(envelope)를 포함하는 XML 문서이다. 인벨로프는 선택적인 SOAP 헤더(header) 및 강제적인 SOAP 바디(body)를 포함한다. SOAP 메시지 헤더는 메시지의 메타데이터를 표시하고, SOAP를 확장하는 방식을 제공한다. SOAP 메시지 바디는 실제 메시지 페이로드(payload)이다. 분산된 프로세스들은 SOAP 패킷을 네트워크에 부여함으로써 서로 통신할 수 있다.
프로세스는 (예컨대, 도시된 바와 같이 노드(10A) 상의) 메시지 발신기(originator), (예컨대, 도시된 바와 같이 노드(10G) 상의) 목표(intended) 메시지 수신기, 또는 (도시된 바와 같이 노드(10C) 상의) 중개기일 수 있다. 메시지 발신기는 SOAP 메시지를 최초로 네트워크에 부여하는 프로세스이다. 목표 메시지 수신기는 메시지가 최종적으로 향하는 프로세스이다. 따라서, 메시지 발신기로부터 발신되는 SOAP 메시지는 목표 메시지 수신기와 연관된 어드레스를 포함할 수 있다.
분산된 시간 관리
도 3은 분산형 환경에서 시간 서비스가 사용될 수 있는 분산형 클럭 서비스를 도시한다. 이러한 분산형 클럭 서비스의 실시 양태는 복수의 분산된 서비스들이 균일한 형태로 영향받을 수 있도록 다수의 네트워크 노드들 중 일부 또는 전부 의 서비스 코드 내에서 통합될 수 있다. 도시된 바와 같이, 각 노드는 코어(core) 서비스로서 기본 타임키퍼(base timekeeper) 서비스를 가질 수 있다. 기본 타임키퍼는 NTP를 사용하는 노드에서 실제 시간(real time)을 관리하는 서비스일 수 있다. 기본 타임키퍼는 시간대(예컨대, 협정 세계시(UTC))에 독립적인 "실제 시간"을 추적할 수 있다.
만약 노드가 고립되어 있으면, 시간 개념은 국부적인 기계 시스템 클럭일 수 있다. 만약 노드가 액티브 링(active ring)의 일부이면, 어느 것이 가장 높은 타이밍 정밀도를 갖는지에 기초하는 서버 선택 프로세스를 사용하여 기본 타임키퍼 마스터가 선택될 수 있다. NTP(network time protocol)는 노드들의 동기화에 사용된다. 그러면, NTP 알고리즘은 동일한 링에 있는 모든 기본 타임키퍼들을 동기화하기 위하여 사용될 수 있다.
예시적인 실시예에서, 기본 타임키퍼는 초기에 고립되고, 국부적 기계 UTC를 이용하여 자기실행(self-running)될 수 있다. 고립 상태에 있는 동안, 기본 타임키퍼는 주기적으로 다른 노드들을 검색하는 시도를 할 수 있다. 다른 노드들이 발견되면, 기본 타임키퍼는 어떤 노드의 기본 타임키퍼가 가장 좋은 타임 마스터인지를 결정하기 위하여 다른 노드와 함께 서버 선택 프로세스에 관여할 수 있다. 발달된 링(mature ring)(예컨대, 3개 이상의 노드가 채워지고 실행되는 링)에 이 노드가 참여하고 있으면, 기본 타임키퍼 마스터가 이미 존재할 수 있다. 이 경우, 서버 선택 프로세스는 여전히 실행될 수 있지만, 보다 많은 노드들이 링에 가입함에 따라 현재 마스터가 물러나게 될 가능성이 감소된다.
모든 노드는 그 노드에서 특정 "시간 영역"을 추적하는 적어도 하나의 타임키퍼 서비스를 가질 수 있다. 시간 영역은 실제 시간과 관련되는 시간의 표시이다. 시간 영역은 실제 시간보다 빠를 수도 있고, 느릴 수도 있고, 아니면 실제시간과 동일할 수도 있다. 시간 영역은 중단되거나 조정될 수 있다. 시간 영역은 시간 경과(time passage)의 고유한 개념이 요구될 때마다 사용될 수 있다. 예컨대, 시간 영역은 특정 리소스의 사용을 관리하기 위하여 생성될 수 있다. 단일 시간 영역이 많은 수의 노드들에 관심을 가질 수 있다. 또한, 단일 노드가 많은 수의 시간 영역에 관심을 가질 수 있다. 따라서, 노드는 2 이상의 타임키퍼를 가질 수 있다. 정확한 국부적인 타이밍을 위하여, 노드에 관심이 있는 모든 시간 영역에 대하여 각각의 타임키퍼가 노드 내에 생성될 수 있다. 타임키퍼 서비스는, 디버깅 또는 다른 목적을 위한 타이밍 조정을 허용함으로써, 기본 타임키퍼의 특징에 따라 확대될 수 있다. 타임키퍼 상태는 타임키퍼와 (국부적인 기본 타임키퍼에 의해 나타난) 실제 시간 사이의 선형 관계를 특정하는 값을 포함할 수 있다.
"시퀀서"는 소정의 시간 영역에 대하여 노드 내의 타이밍 이벤트를 스케쥴링하는 서비스이다. 만약 노드 내의 다수의 엔터티들이 동일한 시간 영역을 사용하고 있고 주기적인 통지를 원한다면, 시퀀서는 적절한 타임키퍼(들)와 상호작용함으로써 이러한 기능을 제공할 수 있다. 상이한 시간 영역은 상이한 시퀀서를 필요로 할 수 있다. 시퀀서는 타임키퍼와 함께 구성될 수 있고, 주기적인 경고 및 비주기적인 경고에 대한 통상의 서비스로서 기능한다. 다른 서비스가 시퀀서와 함께 구성되어, 타임아웃 및 다른 타이밍 신호를 관리할 수 있다. 시퀀서 서비스는 연관 된 타임키퍼(즉, 원하는 시간 영역을 나타내는 타임키퍼)에게 쿼리하여, 현재 시간을 알아낼 수 있다. 만료 경고를 생성하기 위하여, 시퀀서는 연관된 타임키퍼를 구독할 수 있다. 이러한 형태로, 타이밍 이벤트는 시퀀서에 의해 관리될 수 있고, 시간의 진행은 내재되어 있는 타임키퍼에 의해 제어된다.
시간 매니저는 복수의 노드들에 걸쳐 시간 영역을 관리할 책임이 있는 서비스이다. 시간 매니저는 소정의 시간 영역을 구독하는 타임키퍼들의 하나 이상의 그룹을 유지할 수 있다. 링에 있는 모든 타임키퍼들은 동일한 그룹에 있을 수 있다. 그러나, 어떤 경우에는, 별개의 시간 영역들을 관리하는 것이 바람직할 수 있다. 따라서, 기계들 전체에서 시간이 느려지거나 정지되거나, 심지어는 거꾸로 갈 수도 있다. 시간 영역당 하나의 시간 매니저만이 요구되기도 한다.
도 3에 도시된 예에서는, 2개의 노드들("A" 및 "B"로 나타냄)이 하나의 시간 영역에 참여하고 있으며, 노드 B의 타임키퍼는 마스터이고, 노드 A의 타임키퍼는 종속자(slave)이다. 세 번째 노드("C"로 나타냄)는 별개의 시간 영역을 유지한다. 도 3에 명백히 도시되어 있지는 않지만, 원한다면, 단일의 노드가 복수의 타임키퍼들과 시퀀서들을 인스턴스화할 수 있음을 이해하여야 한다.
메시지 재생을 지원하기 위하여, 모든 메시지들에 타임스탬프가 표시될 수 있다. 타임스탬프는 기본 타임키퍼로부터 생성될 수 있으며, 이는 메시지 순서화(ordering)의 진정한 표시일 수 있다. 따라서, 기계를 전체에서의 타임스탬프들이 합리화될 수 있도록, 복수의 CPU들이 하나의 분산형 마스터 클럭에 종속될 수 있다. 그렇지 않으면, 기계들 간의 클럭 드리프트(drift)에 의해 시간 추적의 비 교를 쓸모없게 할 수 있다.
도 4A 및 도 4B는 시퀀서의 동작을 도시한다. 도 4A에 도시된 바와 같이, 하나 이상의 서비스(즉, SVC C, SVC D 및 SVC E)가 동일 시퀀스를 사용할 수 있다. 도시된 바와 같이, SVC C는 2개의 클럭 틱(△t)마다 메시지를 한번 전송한다. SVC D는 4개의 클럭 틱마다 메시지를 한번 전송한다. SVC E는 도시된 7개의 클럭 틱동안 메시지를 한번 전송한다. 시퀀서는 다수의 서비스들로부터의 메시지를 시퀀스에 부여하고, 적절한 시간에 이 메시지들을 네트워크에 디스패치(dispatch)한다.
도 4A에 도시된 바와 같이, 모든 서비스들은 동일한 시간 영역에서 동작될 수 있다. 그러나, 도 4B에 도시된 바와 같이, SVC C에 대한 시간 영역이 변화되었다(예컨대, 레이트가 반으로 느려짐). 예컨대, SVC C는 2개의 틱마다 메시지를 전송하는 것에 비해 느려져서 4개의 틱마다 메시지를 전송한다. 이 시퀀서는 SVC C가 1/2 레이트로 메시지를 전송하도록 제안된 것임을 알기 때문에, SVC C로부터의 메시지를 절반의 빈도로 시퀀스에 배치한다. 따라서, 시퀀서는 전부 동일한 시간 영역에서 실행되는 어떠한 수의 서비스에 대해서도 시퀀스를 제공할 수 있다.
주기적인 분산형 시간을 통한 리소스 관리
도 5는 주기적인 분산형 시간을 통해 분산형 네트워크 내의 장치 리소스를 관리하기 위한 예시적인 시스템(200)의 기능적인 플로우챠트이고, 도 6은 이를 위한 예시적인 방법(300)의 플로우챠트이다.
단계(302)에서, 로컬 장치(202)는 장치에 의해 사용되는 관리 리소스에 영향을 미치는 상태 변화를 감지한다. 이러한 로컬 장치의 예에는 무선 전화기, PDA(personal digital assistant), 랩톱 컴퓨터, 데스크톱 PC(personal computer) 등이 포함된다. 이러한 상태 변화의 예에는 무선 전화기나 PDA가 그들의 크레들로부터 제거된 것, 랩톱 컴퓨터의 플러그가 빠진 것 등이 포함된다. 이러한 리소스의 예에는 예컨대, 배터리 수명, 네트워크 대역폭, CPU 사용 등이 포함된다.
단계(304)에서, 로컬 장치(202)의 서비스는 결정기(204)에게 상태 변화를 통지할 수 있다. 로컬 장치의 서비스는 임의의 메시지 포맷을 사용하여 결정기에게 통지할 수 있지만, 예시적인 실시예에서는 WSAP(web services application protocol) NOTIFY 동작이 행해진다. WSAP는, U.S 특허 출원 제10/856,399호에서 개시되고 청구되었으며, 여기서는 그 명세서 내용이 참조로 포함되어 있고, 상태 변화의 관찰 및 전파 방법에 관한 많은 수의 기본적인 동사(basic verb)를 규정한다. 예컨대, WSAP는 NOTIFY 동작에 기초한 간단한 이벤트 통지 모델을 규정한다. NOTIFY 동작은 상태 변화가 생겼음을 알리는데 사용될 수 있다. 따라서, 로컬 장치는 네트워크를 통해 분산되어 있는 다른 서비스들이 그 상태를 볼 수 있도록 상태를 노출시킬 수 있다. NOTIFY 동작은 U.S 특허 출원 제10/856,399호에 보다 상세히 기술되어 있다.
결정기는 배터리 수명, 네트워크 대역폭, CPU 등과 같은 하나 이상의 관리되는 리소스와 연관될 수 있다. 바람직하게는, 결정기가 하나의 관리되는 리소스와만 연결되어, 각 리소스에 대해 상이한 결정기가 존재하는 것이다. 따라서, 로컬 장치는 임의의 수의 결정기와 통신할 수 있다. 로컬 장치에 상태 변화가 발생되면, 로컬 장치(202)는 하나 이상의 결정기 모두에게 상태 변화를 통지할 수 있다. 결정기(204)는 로컬 장치(202) 또는 임의의 다른 네트워크 노드에 존재할 수 있으며, 네트워크에 있는 임의의 수의 장치에 서비스할 수 있다.
장치의 서비스는 결정기의 통지 요청 없이도 결정기에게 통지할 수 있고, 아니면 결정기(204)가 특정 이벤트를 "구독"할 수 있다. 즉, 결정기(204)는 로컬 장치에게 특정 이벤트가 발생되었을 때 이를 통지하라고 요청할 수 있다.
WSAP는 구독자가 이벤트 소스에 요청을 발행하는 SUBSCRIBE 동작을 제공한다. 이 요청은 구독자가 상태 변화를 보는 것에 관심이 있는 이벤트 통지 소스의 일부를 식별하는 쿼리를 포함한다. SUBSCRIBE 동작이 수락되면, 이벤트 통지 소스는 소스의 현재 상태를 나타내는 NOTIFY 동작을 개시한다. 이 초기 NOTIFY 동작 후에, 이벤트 통지 소스의 상태가 적절히 변화될 때마다, 이벤트 통지 소스는 새로운 NOTIFY 동작을 발행한다. 따라서, SUBSCRIBE 동작이 서비스의 상태의 변화를 구독하는데 사용될 수 있다. 구독은 만료 시점에 의해 제한될 수 있고, 아니면 UNSUBSCRIBE 동작을 사용하여 임의의 시점에 종료될 수 있는데, 그러한 경우 구독 해지자는 더 이상의 통지를 취소하기 위하여 이벤트 소스에 UNSUBSCRIBE 동작을 전송한다. SUBSCRIBE 및 UNSUBSCRIBE 동작은 U.S 특허 출원 제10/856,399호에 보다 상세히 기재되어 있다.
단계(306)에서, 결정기(204)는 상태 변화 통지를 수신하고, 상태 변화 및 관리되는 리소스에 기초하여, 만약 해야할 일이 있다면, 무슨 일을 해야할 지를 결정한다. 결정기(204)는 장치의 현재 상태 및 장치에 의해 사용되는 리소스와 연관된 리소스 관리 정책에 기초하여, 리소스의 사용에 영향을 미치는 서비스를 식별할 수 있다.
예컨대, 결정기가 배터리 수명 관리와 연관되어 있다면, 결정기는 로컬 장치에 의해 사용되는 전력을 제어하는 가장 좋은 방법(예컨대, 메시지가 로컬 장치에 의해 전송되거나 로컬 장치에 전송되는 레이트를 제어하는 것)을 결정할 수 있다. 관리되는 리소스가 네트워크 대역폭이면, 결정기는 패킷 대역폭을 제어하는 가장 좋은 방법(예컨대, 패킷이 전송되는 레이트를 제어하는 것)을 결정할 수 있다. 관리되는 리소스가 CPU이면, 결정기는 전력 소비 및 처리 요구사항(예컨대, 작업 아이템 스케쥴링과 같은 것)을 제어하는 가장 좋은 방법을 결정할 수 있다.
결정기(204)가 상태 변화 및 관리되는 리소스에 기초하여, 해야할 일이 있다면 무엇을 해야할 지를 결정한 후에는, 단계(308)에서, 결정기(204)는 코디네이터(206)에게 변화시키고 싶은 것을 통지할 수 있다. 예컨대, 장치 B가 그 크레들로부터 이제 막 제거된 무선 장치라고 가정한다. 장치 B의 서비스는 배터리 수명을 제어하기 위해 결정기에게 그 상태가 변화되었음을 통지할 수 있다. 그러면, 결정기는 배터리 수명의 제어를 위해 미리 규정된 리소스 관리 정책에 기초하여, 장치가 작업 아이템을 발행하는 데에 대한 공칭 처리 레이트(즉, 어떤 일을 하기 위해 활성화 상태로 되었다가 다시 비활성화 상태로 되는 빈도)를 예를 들어 10%로 감속해야 한다고 결정할 수 있다. 따라서, 장치가 플러그인 될 때는, 시간이 실제 시간으로 크기 조정되어 100%로 구동될 수 있다. 그러나, 배터리 전력으로 동작되는 경우, 시간의 크기가 보다 낮은 퍼센트로 축소될 수 있다. 따라서, 장치가 보다 느리게 작업을 행하기 때문에, 리소스 수명(예컨대, 배터리 수명)이 연장될 수 있다.
결정기(204)는, 로컬 장치의 상태 및 관리되는 리소스와 연관된 리소스 관리 정책에 기초하여 리소스를 적절하게 관리하기 위해 결정기(204)가 어떤 동작들을 결정했는지를 나타내는 메시지를 코디네이터(206)에게 통지할 수 있다. 예컨대, 결정기(204)는, 로컬 장치가 저전력 모드에 있고 원격 장치는 로컬 장치에 전송하는 메시지의 수 또는 종류를 감소시켜야 함을 나타내는 메시지를, 코디네이터(206)에게 전송할 수 있다.
단계(310)에서, 코디네이터(206)에 의해 동작들이 취해지게 된다. 코디네이터(206)는 결정기(204)가 행하는 결정에 의해 촉진되는 임의의 변화를 초래하기 위하여 하나 이상의 메시지를 하나 이상의 장치에 전송할 수 있다. 이러한 메시지는 URI와 같이 로컬 장치와 연관된 식별자를 포함할 수 있다. 코디네이터로부터 이러한 메시지를 수신하는 장치(들)는 네트워크 상의 로컬 장치 및 임의의 다른 장치(들)를 포함할 수 있다. 또한, 이러한 메시지는, 명령을 받은 장치가, 코디네이터의 명령을 따르기 위하여 그 장치가 무엇을 해야하는지(또는 하지 말아야 하는지)를 이해할 수 있게 하는 정보를 포함할 수 있다. 예컨대, 메시지는 명령을 받은 장치가, 로컬 장치가 저전력 모드에 있으므로 원격 장치는 메시지가 로컬 장치에 전송되는 레이트를 감소시켜야 함(예컨대, 이러한 메시지 트래픽을 위해 원격 장치에서의 시간을 느리게 함)을 이해할 수 있도록 하는 레이트 정보를 포함할 수 있다.
메시지는 코디네이터로부터 연관된 시간 영역을 관리하는 시간 매니 저(TimeManager)에게 전송될 수 있다. 그러면, 시간 매니저는 피구독 타임키퍼에게 레이트 변화를 알릴 것이다. 그러면, 영향을 받은 서비스가 메시지 트래픽을 생성하는 레이트를 증가시키거나 감소시키기 위하여, 이 타임키퍼가 그 영향을 받은 서비스와 연관된 시퀀서를 더 자주 또는 덜 자주 호출할 것이다.
또한, 코디네이터(206)는 네트워크 상의 임의의 장소에서의 "트래픽 잼(traffic jam)"을 회피하기 위하여 "업스트림(upstream)" 트래픽을 조정하려는 시도를 할 수 있다. 즉, 코디네이터(306)는 업스트림 장치(메시지 전송 장치)에 메시지를 전송하여, 업스트림 장치에 다운스트림 장치(메시지 수신 장치)가 느리게 구동되고 있음을 알릴 수 있다. 또한, 메시지는 레이트 정보와 같이, 메시지가 다운스트림 장치로 전송되는 레이트를 업스트림 장치가 감소시켜야 함(다시 말해서, 예컨대 이러한 메시지 트래픽을 위해 업스트림 장치에서의 시간을 느리게 함)을 업스트림 장치가 이해할 수 있도록 하는 정보를 포함할 수 있다.
코디네이터는 배터리 수명, 네트워크 대역폭, CPU 등과 같은 관리되는 리소스와 연관될 수 있다. 바람직하게는, 코디네이터가 하나의 관리되는 리소스와만 연관되어, 각각의 리소스에 대해 상이한 코디네이터가 존재하는 것이다. 따라서, 결정기는 하나의 코디네이터와만 통신할 수 있고, 하나의 코디네이터는 하나의 결정기와만 통신할 수 있다. 그러나, 코디네이터는 2 이상의 관리되는 리소스와 연관될 수 있고, 결정기는 2 이상의 관리되는 리소스와 연관될 수 있어서, 임의의 수의 결정기가 임의의 수의 코디네이터와 통신할 수 있음을 이해하여야 한다.
코디네이터는 로컬 장치, 또는 임의의 다른 네트워크 노드에 존재할 수 있 다. 따라서, 로컬 장치는 그 자체로 코디네이터일 수 있고, 또는 다른 장치에 코디네이터가 될 책임을 위임(delegation)할 수 있다. 이러한 위임은 특히 저전력 모드에서 바람직할 수 있는데, 이렇게 하면, 로컬 장치가 다수의 원격 장치를 코디네이트하는 데에 필요한 모든 메시지가 아니라 하나의 메시지(즉, 위임 메시지)만을 전송하면 되기 때문이다.
코디네이터와 연관된 리소스를 사용하고 있거나 이를 사용하도록 야기되는 임의의 장치는 코디네이터를 인식할 수 있다. 코디네이터는 각 장치에서 발생되어야 하는 일들의 레이트에 관해 각 장치에 알려준다. 따라서, 각 장치는 시간 영역의 일관된 묘사를 가질 수 있다.
관리되는 리소스당 하나의 시간 영역이 존재하는 것이 바람직하다. 예컨대, 하나의 시간 영역은 데이터 저장을 위한 배터리 사용을 관리하고, 다른 시간 영역은 대역폭을 위한 배터리 사용, 음성을 위한 배터리 사용, 네트워크를 위한 데이터 저장 사용 등을 관리할 수 있다. 복수의 시간 영역에 의해, 시스템은 상이한 상대 시간(relative time)들을 유지할 수 있다. 예컨대, 로컬 장치는 VoIP(voice-over-IP)를 사용중일 수 있다. 이러한 장치는, 저대역폭 환경에서 동작되는 경우에 데이터보다는 음성에 더 높은 우선 순위를 부여하고 싶어한다. 장치가 어떤 특정한 시간에 통화를 하는데 사용되고 있지 않다면, 그 장치는 데이터에 대해 이용가능한 대역폭을 증가시키고 싶어할 것이다. 로컬 장치가 원하는 일에 대한 결정은 위치, 현재 전력 상태 등에 의존할 수 있다. 이러한 결정은 주기적으로 또는 비주기적으로 변화할 수 있다. 예컨대, 밀리초마다, 장치는 그 상태를 재평가하고, 결정기에 게 통지할 수 있다. 각 시간 영역은 노드당 적어도 하나의 시간 매니저 및 하나의 타임키퍼를 요구할 수 있다.
또한, 소정의 기간 동안 서비스에 "리스"가 승인될 수 있는 "리스홀더" 서비스가 제공될 수 있다. 리스가 기간 만료되고 나서 서비스가 그 리스를 갱신하지 않은 경우, 서비스는 종료된 것으로 추정될 수 있고, 이용가능한 원격 서비스의 다른 노드 리스트로부터 "가비지 컬렉트"될 수 있다.
본 발명의 실시 양태에 의하면, 상이한 시간 영역이 사용되기 때문에 리스가 조급하게 만료되지 않음을 동시에 보장하면서 장치 리소스가 제어될 수 있다. 특정 장치에서의 특정 리스 서비스에 대해서는 시간이 상대적으로 느리게 흐르기 때문에, (리스 서비스가 실행되고 있는 시간 영역에 비해 빠른 시간 영역에서 실행되고 있는 원격 서비스에 의해 결정되는 대로) 리스 서비스가 만료하기 전에는, 그 리스를 갱신하지 않을 수 있다. 그러나, 동일한 시간 영역에서 실행되고 있는 리스의 모든 양태에 의하면, 시간 영역이 변화됨에 따라서도 갱신 레이트가 적절하게 크기 조정될 수 있다.
본 발명의 실시 양태에 의하면, 예컨대 배터리형 장치일 수 있는 제1 장치는 계산 또는 저장을 다른 장치로 오프로드하고 싶어할 수 있다. 예시적인 실시예에서는, 서비스가 재배치될 수 있다. 따라서, 오프로드는 얼마나 많은 서비스가 이동하는지 및 이들 서비스를 어디에 부여하는지를 결정하는 간단한 프로세스일 수 있다. 모든 이름들이 전역적으로 어드레스될 수 있고 모든 서비스 상태들이 관찰가능하기 때문에, 재배치가 가능할 수 있다. 이는 임의의 서비스가 정지될 수 있 고, 그 상태가 저장될 수 있고, 새로운 위치에 생성될 수 있고, 또한 (그 저장된 버전을 이용하여) 재배치될 수 있음을 의미한다. 그러면, 변했을 수도 있고 변하지 않았을 수도 있는 새로운 이름을 파트너 서비스에게 알려줄 수 있다.
주기적인 분산형 시간을 통한 리소스 관리를 사용하는 예시적인 시스템
분산형 저장 네트워크의 구성원인 무선 전화기를 예로서 고려한다. 분산형 저장 네트워크는, 2005년 4월 20일에 출원되고, 발명의 명칭이 "분산형 비집중식 데이터 저장 및 검색을 제공하기 위한 시스템 및 방법"이며, 본 명세서에서 참조로 포함되어 있는, 동시 계류중인 U.S. 특허 출원 제11/110,128호에서 개시되고 청구된다. 만약 무선 전화기가 상대적으로 고대역폭 환경(예를 들어, 그 크레들)에서 동작되고 있으면, 전화기는 네트워크 주위의 분산형 저장 장치에 대해 한번에 모든 데이터를 업로드하려는 경향이 있다. 그러나, 만약 전화기가 무선(따라서, 저대역폭) 환경에서 동작되고 있으면, 전화기는 데이터를 업로드하는 것보다는 배터리 수명을 보전하려는 선택을 할 수 있어, 전화기가 그 충전기에 다시 꽂힌 후에도 행해질 수 있는 데이터 동기화보다는 통화에 배터리가 이용될 수 있다.
이러한 예에서, 전화기는 배터리 사용을 관리하고 있는 코디네이터에게, 예를 들어 로컬 장치가 데이터 저장 애플리케이션에 대해서는 25%, 광역 접속 대역폭에 대해서는 70%, 및 음성에 대해서는 100%로 동작하려함을 알리고 싶어할 수 있다. 그러면, 코디네이터는 전화기와 직접 또는 간접적으로 어떤 관계를 맺고 있는 모든 장치들에게 이 정보를 퍼뜨릴 수 있다. 따라서, 코디네이터는 데이터 동기화가 실행되는 레이트를 느리게 할 수 있다. 물론, 로컬 장치에 관심이 있는 임의의 알고리즘에 따라서 리소스들에 우선 순위가 부여될 수 있음을 이해하여야 한다.
다른 예에서, 사용자는 랩톱 컴퓨터를 사용중일 수 있다. 랩톱의 플러그가 콘센트에 꽂혀있음에도 불구하고, 사용자는 시스템 리소스에 우선 순위를 부여하고 싶어할 수 있다. 예컨대, 사용자가 작업중인 동안에, 사용자는 컴퓨터가 사용자가 사용중인 툴(예컨대, 워드 프로세서)에 추가적인 처리 전력을 기울이도록 하고 싶어할 수 있다. 예컨대, 사용자의 직접적인 관심의 대상이 아닌 백그라운드 처리들은 사용자가 작업중인 동안에는 보다 적은 처리 리소스를 공유할 수 있다. 만약 사용자가 휴식을 취하면(어떤 시간동안 HMI가 유휴중(idle)인 것을 시스템이 감지하면), 컴퓨터가 사용자가 되돌아왔음을 감지할 때까지, 백그라운드 태스크를 실행하는데 추가적인 리소스들이 할당될 수 있다. 따라서, 본 발명의 원리는 단일 장치에 적용될 수도 있으며, 네트워크를 통해 적용될 필요는 없다. 이러한 응용에서는, 결정기 및 코디네이터가 로컬 장치에 존재할 것이다.
따라서, 주기적인 분산형 시간을 통한 분산형 전력 관리에 대한 시스템 및 방법이 기재되어 있다. 비록 본 발명이 다양한 형태로 기재된 어떤 바람직한 실시예와 관련하여 기술되어 있지만, 다른 유사한 실시예가 사용될 수 있고, 본 발명을 벗어나지 않고도 본 발명을 실시하기 위하여 위에서 기재된 실시예에 변형 또는 추가가 행해질 수 있음을 이해하여야 한다. 따라서, 본 발명은 임의의 하나의 실시예에만 한정되는 것이 아니라 이하의 청구항에 따른 범위 및 폭으로 해석되어야 한다.

Claims (20)

  1. 시간 영역(time domains)에 기초하여 리소스들을 관리하기 위한 시스템으로서,
    실제 시간과 관련된 제1 시간 표현을 이용하는 제1 시간 영역 및 실제 시간과 관련된 제2 시간 표현을 이용하는 제2 시간 영역을 유지하는 연합형 클럭 서비스(federated clock service) 디바이스- 상기 제1 시간 영역은, 상기 제1 시간 영역에 할당된 제1의 복수의 장치들 중 하나 이상에 의해 이용되는 하나 이상의 리소스들을 관리하기 위해 이용되고, 상기 제2 시간 영역은, 상기 제2 시간 영역에 할당된 제2의 복수의 장치들 중 하나 이상에 의해 이용되는 하나 이상의 리소스들을 관리하기 위해 이용됨 -, 및
    적어도 하나의 리소스가 사용되는 레이트를 변화시키기 위하여, 상기 연합형 클럭 서비스 디바이스와 상호작용하여 상기 제1 시간 영역 또는 상기 제2 시간 영역 중 적어도 하나에서 적어도 하나의 시간 베이스(time base)를 변화시키게 하는 리소스 사용(utilization) 코디네이터 디바이스
    를 포함하는 리소스 관리 시스템.
  2. 제1항에 있어서,
    상기 연합형 클럭 서비스 디바이스는, 실제 시간에 관련된 정지 상태(paused state)로 상기 제1 또는 제2 시간 영역 중 적어도 하나를 배치하기 위해 이용되는 타임키퍼(timekeeper) 서비스 디바이스를 포함하는,
    리소스 관리 시스템.
  3. 제1항에 있어서,
    상기 연합형 클럭 서비스 디바이스는 기본 타임키퍼(base timekeeper) 서비스 디바이스를 포함하되,
    상기 기본 타임키퍼 서비스 디바이스는, 상기 제1 시간 표현을 네트워크 시간 프로토콜을 통해 상기 기본 타임키퍼에 제공되는 실제 시간보다 빠르거나, 느리거나 또는 동일한 것 중 하나로 배치하는,
    리소스 관리 시스템.
  4. 제1항에 있어서,
    타임키퍼 서비스 디바이스를 더 포함하되,
    상기 타임키퍼 서비스 디바이스는 상기 타임키퍼 서비스 디바이스와 실제 시간 사이의 선형 관계를 규정하는 하나 이상의 값을 포함하는 타임키퍼 상태를 제공하는,
    리소스 관리 시스템.
  5. 제1항에 있어서,
    상기 제1 시간 영역에서 적어도 하나의 장치에 적어도 하나의 리스를 제공하도록 구성된 리스홀더(leaseholder) 서비스 디바이스를 더 포함하되,
    상기 리스는 갱신되지 않는 경우 만료되는,
    리소스 관리 시스템.
  6. 제1항에 있어서,
    리소스는 전력과 연관되어 있고, 상기 리소스 사용 코디네이터 디바이스는, 장치에 의해 전력이 소비되는 레이트를 변화시키기 위하여, 상기 연합형 클럭 서비스 디바이스와 상호작용하여 적어도 하나의 시간 베이스를 변화시키는,
    리소스 관리 시스템.
  7. 제5항에 있어서,
    상기 제1 시간 영역에 할당된 복수의 장치에 의해 이용되는 하나 이상의 리소스들을 관리하는 것은, 상기 적어도 하나의 리스가 빨리(prematurely) 만료되지 않도록 보장하는 것을 포함하는,
    리소스 관리 시스템.
  8. 제7항에 있어서,
    상기 제1 시간 표현을 채용함으로써 상기 적어도 하나의 리스가 빨리 만료되지 않도록 보장하는 것을 포함하는
    리소스 관리 시스템.
  9. 제1항에 있어서,
    상기 제1 시간 영역에서 제1 장치에 제1 리스를 제공하고 상기 제2 시간 영역에서 제2 장치에 제2 리스를 제공하도록 구성된 리스홀더 서비스 디바이스를 더 포함하는
    리소스 관리 시스템.
  10. 제9항에 있어서,
    하나 이상의 리소스들을 관리하는 것은, 상기 제1 및 상기 제2 시간 표현을 채용함으로써 상기 제1 또는 상기 제2 리스 중 적어도 하나가 빨리 만료되지 않도록 보장하는 것을 포함하는,
    리소스 관리 시스템.
  11. 제1항에 있어서,
    시간 매니저 서비스 디바이스를 더 포함하되,
    상기 시간 매니저 서비스 디바이스는, 상기 제1 시간 영역과 상기 제2 시간 영역 사이의 상호작용을 제공하고, 마스터-종속자(master-slave) 구성을 이용하여 상기 제1 및 제2 시간 표현을 관리하는,
    리소스 관리 시스템.
  12. 네트워크 상의 장치에 의한 리소스 사용을 관리하기 위한 방법으로서,
    리소스 사용 코디네이터 디바이스에 의해, 제1 복수의 장치를 제1 시간 영역에 할당함으로써, 연합형 시간 정책을 실행하는 단계 - 상기 제1 시간 영역은 네트워크 시간 프로토콜을 통해 제1 베이스 타임키퍼 서비스에 제공되는 실제 시간을 조정함으로써 유도되는 제1 시간 표현을 이용하도록 구성됨 - ;
    상기 리소스 사용 코디네이터 디바이스에 의해, 제2 복수의 장치를 제2 시간 영역에 할당함으로써, 상기 연합형 시간 정책을 실행하는 단계 - 상기 제2 시간 영역은 네트워크 시간 프로토콜을 통해 제2 베이스 타임키퍼 서비스에 제공되는 실제 시간을 조정함으로써 유도되는 제2 시간 표현을 이용하도록 구성됨 - ;
    결정기에 의해, 장치의 현재 상태의 표시를 제공하는 정보를 수신하는 단계;
    상기 결정기에 의해, 상기 장치의 현재 상태 및 상기 장치에 의해 사용되는 리소스와 연관된 리소스 관리 정책에 기초하여 상기 리소스의 사용에 영향을 미치는 서비스를 식별하는 단계; 및
    상기 리소스 사용 코디네이터 디바이스에 의해, 상기 서비스가 상기 리소스의 사용에 영향을 미치는 적어도 하나의 레이트를 변화시키는 단계 - 상기 변화시키는 단계는 상기 제1 또는 제2 시간 영역 중 적어도 하나에 대한 상기 장치의 할당에 기초하여 수행됨 -
    를 포함하는, 리소스 사용 관리 방법.
  13. 제12항에 있어서,
    상기 적어도 하나의 레이트를 변화시키는 단계는 상기 서비스가 메시지를 생성하는 레이트를 변화시키는 단계를 포함하는,
    리소스 사용 관리 방법.
  14. 제13항에 있어서,
    상기 적어도 하나의 레이트를 변화시키는 단계는 상기 서비스가 상기 장치에 의해 전송되는 메시지를 생성하는 레이트를 변화시키는 단계를 포함하는,
    리소스 사용 관리 방법.
  15. 제12항에 있어서,
    상기 적어도 하나의 레이트를 변화시키는 단계는 상기 서비스가 상기 장치의 중앙 처리 장치(central processing unit)가 사용되게 하는 레이트를 변화시키는 단계를 포함하는,
    리소스 사용 관리 방법.
  16. 제12항에 있어서,
    상기 적어도 하나의 레이트를 변화시키는 단계는 상기 서비스에 의해 사용되는 대역폭을 변화시키는 단계를 포함하는,
    리소스 사용 관리 방법.
  17. 제12항에 있어서,
    상기 적어도 하나의 레이트를 변화시키는 단계는 복수의 서로 다른 시간 영역에서 동작하는 복수의 서비스에 영향을 미치는,
    리소스 사용 관리 방법.
  18. 제12항에 있어서,
    상기 리소스는 전력과 연관되어 있고, 상기 적어도 하나의 레이트를 변화시키는 단계는 상기 장치에 의한 배터리 사용에 영향을 미치는,
    리소스 사용 관리 방법.
  19. 시간 영역을 기초로 하여, 네트워크 상의 장치에 의한 리소스 사용을 관리하기 위한 방법으로서,
    리소스 사용 코디네이터 디바이스에 의해, 제1 시간 영역에 제1 복수의 장치를 할당하는 단계 - 상기 제1 시간 영역은 네트워크 시간 프로토콜을 통해 제1 베이스 타임키퍼 서비스에 제공되는 실제 시간을 조정함으로써 유도되는 제1 시간 표현임 - ;
    상기 리소스 사용 코디네이터 디바이스에 의해, 제2 시간 영역에 제2 복수의 장치를 할당하는 단계 - 상기 제2 시간 영역은 네트워크 시간 프로토콜을 통해 제2 베이스 타임키퍼 서비스에 제공되는 실제 시간을 조정함으로써 유도되는 제2 시간 표현임 - ;
    결정기에 의해, 상기 제1 시간 영역에 연관된 장치의 상태의 변화를 감지하는 단계;
    상기 결정기에 의해, 상기 장치의 상태의 변화에 의해 영향받는 리소스를 식별하는 단계; 및
    상기 리소스 사용 코디네이터 디바이스에 의해, 상기 제1 시간 표현을 사용하여 상기 리소스의 사용에 영향을 미치는 서비스와 연관된 시간 베이스를 변화시킴으로써, 상기 리소스가 사용되는 레이트에 영향을 미치는 단계
    를 포함하는 리소스 사용 관리 방법.
  20. 제19항에 있어서,
    상기 결정기에 의해, 상기 장치의 상태 및 상기 리소스와 연관된 리소스 관리 정책에 기초하여 상기 리소스의 사용에 영향을 미치는 서비스를 식별하는 단계를 더 포함하는 리소스 사용 관리 방법.
KR1020077026784A 2005-05-23 2006-04-14 주기적인 분산형 시간을 통한 리소스 관리 KR101433945B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/135,134 2005-05-23
US11/135,134 US8881233B2 (en) 2005-05-23 2005-05-23 Resource management via periodic distributed time
PCT/US2006/014126 WO2006127174A2 (en) 2005-05-23 2006-04-14 Resource management via periodic distributed time

Publications (2)

Publication Number Publication Date
KR20080022080A KR20080022080A (ko) 2008-03-10
KR101433945B1 true KR101433945B1 (ko) 2014-08-25

Family

ID=37449731

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077026784A KR101433945B1 (ko) 2005-05-23 2006-04-14 주기적인 분산형 시간을 통한 리소스 관리

Country Status (7)

Country Link
US (1) US8881233B2 (ko)
EP (1) EP1875652B1 (ko)
JP (1) JP4724748B2 (ko)
KR (1) KR101433945B1 (ko)
CN (1) CN101501676B (ko)
ES (1) ES2637233T3 (ko)
WO (1) WO2006127174A2 (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7428411B2 (en) * 2000-12-19 2008-09-23 At&T Delaware Intellectual Property, Inc. Location-based security rules
US20060294049A1 (en) * 2005-06-27 2006-12-28 Microsoft Corporation Back-off mechanism for search
US20070067455A1 (en) * 2005-08-08 2007-03-22 Microsoft Corporation Dynamically adjusting resources
US8015249B2 (en) * 2006-10-10 2011-09-06 Microsoft Corporation Mitigating data usage in messaging applications
US8856314B1 (en) * 2006-12-28 2014-10-07 Perftech, Inc. System, method and computer readable medium for determining users of an internet service
US9317179B2 (en) 2007-01-08 2016-04-19 Samsung Electronics Co., Ltd. Method and apparatus for providing recommendations to a user of a cloud computing service
US7937451B2 (en) 2007-01-08 2011-05-03 Mspot, Inc. Method and apparatus for transferring digital content from a computer to a mobile handset
US8218177B2 (en) * 2007-11-09 2012-07-10 Xerox Corporation Resource management profiles
US8271988B2 (en) * 2007-11-09 2012-09-18 Xerox Corporation System-generated resource management profiles
JP5053414B2 (ja) * 2010-05-13 2012-10-17 株式会社バッファロー 無線通信装置および無線通信装置の制御方法
US9134873B2 (en) 2010-09-28 2015-09-15 Qualcomm Incorporated Apparatus and methods for presenting interaction information
US9426097B1 (en) * 2010-12-09 2016-08-23 Qlogic, Corporation Facilitating communication between devices in a network
KR102500223B1 (ko) * 2015-07-14 2023-02-15 주식회사 엘지유플러스 네트워크 기능 가상화 장치 및 그의 타임 동기화 방법
CN109861922B (zh) * 2019-02-21 2022-03-29 北京百度网讯科技有限公司 用于控制流量的方法和装置
CN112019448B (zh) * 2020-10-29 2021-02-19 北京安盟信息技术股份有限公司 一种基于单向数据传输的可靠性控制方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5577075A (en) * 1991-09-26 1996-11-19 Ipc Information Systems, Inc. Distributed clocking system
US6438670B1 (en) 1998-10-02 2002-08-20 International Business Machines Corporation Memory controller with programmable delay counter for tuning performance based on timing parameter of controlled memory storage device
US20030204759A1 (en) 2002-04-26 2003-10-30 Singh Jitendra K. Managing system power

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6282561B1 (en) 1995-12-07 2001-08-28 Microsoft Corporation Method and system for resource management with independent real-time applications on a common set of machines
JPH09167141A (ja) * 1995-12-18 1997-06-24 Hitachi Ltd 負荷分散制御方法
US5960181A (en) * 1995-12-22 1999-09-28 Ncr Corporation Computer performance modeling system and method
US5889989A (en) * 1996-09-16 1999-03-30 The Research Foundation Of State University Of New York Load sharing controller for optimizing monetary cost
US5832529A (en) * 1996-10-11 1998-11-03 Sun Microsystems, Inc. Methods, apparatus, and product for distributed garbage collection
US5826239A (en) * 1996-12-17 1998-10-20 Hewlett-Packard Company Distributed workflow resource management system and method
JPH10268963A (ja) * 1997-03-28 1998-10-09 Mitsubishi Electric Corp 情報処理装置
US6009473A (en) * 1997-04-30 1999-12-28 Oracle Corporation Using callbacks to effectively manage resources
US6263359B1 (en) * 1997-05-22 2001-07-17 International Business Machines Corporation Computer resource proportional utilization and response time scheduling
US6904110B2 (en) 1997-07-31 2005-06-07 Francois Trans Channel equalization system and method
US5938728A (en) * 1997-10-30 1999-08-17 Advanced Micro Devices, Inc. Apparatus and method for selectively controlling clocking and resetting of a network interface
JP4051510B2 (ja) * 1998-07-16 2008-02-27 ソニー株式会社 データ記憶装置およびデータ記憶方法
US6661810B1 (en) * 1999-03-19 2003-12-09 Verizon Laboratories Inc. Clock skew estimation and removal
US7111297B1 (en) * 2000-05-02 2006-09-19 Microsoft Corporation Methods and architectures for resource management
DE60141613D1 (de) 2000-08-03 2010-04-29 Infineon Technologies Ag Konfigurierbarer Modulator
JP2002071219A (ja) 2000-08-29 2002-03-08 Toto Ltd 給湯機ヒータ電力管理装置
US6735709B1 (en) * 2000-11-09 2004-05-11 Micron Technology, Inc. Method of timing calibration using slower data rate pattern
JP2002208962A (ja) * 2000-12-28 2002-07-26 Fujitsu Ltd メディア配信資源管理装置および記録媒体
US6904537B1 (en) * 2001-08-27 2005-06-07 Network Elements, Inc. Data transmission across asynchronous time domains using phase-shifted data packet
US7325050B2 (en) * 2001-09-19 2008-01-29 Dell Products L.P. System and method for strategic power reduction in a computer system
US7337333B2 (en) * 2001-09-19 2008-02-26 Dell Products L.P. System and method for strategic power supply sequencing in a computer system with multiple processing resources and multiple power supplies
US7308714B2 (en) * 2001-09-27 2007-12-11 International Business Machines Corporation Limiting the output of alerts generated by an intrusion detection sensor during a denial of service attack
US6608528B2 (en) 2001-10-22 2003-08-19 Intel Corporation Adaptive variable frequency clock system for high performance low power microprocessors
US7328261B2 (en) * 2001-11-21 2008-02-05 Clearcube Technology, Inc. Distributed resource manager
JP2004246862A (ja) 2002-09-30 2004-09-02 Matsushita Electric Ind Co Ltd リソース管理装置
US7500152B2 (en) * 2003-12-05 2009-03-03 Freescale Semiconductor, Inc. Apparatus and method for time ordering events in a system having multiple time domains
US7380039B2 (en) * 2003-12-30 2008-05-27 3Tera, Inc. Apparatus, method and system for aggregrating computing resources
US7177728B2 (en) * 2003-12-30 2007-02-13 Jay Warren Gardner System and methods for maintaining power usage within a set allocation
JP2005196601A (ja) * 2004-01-09 2005-07-21 Hitachi Ltd 自律管理システム向けポリシシミュレータ
US7281148B2 (en) * 2004-03-26 2007-10-09 Intel Corporation Power managed busses and arbitration
US7784054B2 (en) * 2004-04-14 2010-08-24 Wm Software Inc. Systems and methods for CPU throttling utilizing processes
US20060026268A1 (en) * 2004-06-28 2006-02-02 Sanda Frank S Systems and methods for enhancing and optimizing a user's experience on an electronic device
US7698705B1 (en) * 2004-10-19 2010-04-13 Oracle America, Inc. Method and system for managing CPU time consumption
US7337335B2 (en) * 2004-12-21 2008-02-26 Packet Digital Method and apparatus for on-demand power management
US8526524B2 (en) * 2007-03-27 2013-09-03 Qualcomm Incorporation Orthogonal reference signal permutation
US7530072B1 (en) * 2008-05-07 2009-05-05 International Business Machines Corporation Method to segregate suspicious threads in a hosted environment to prevent CPU resource exhaustion from hung threads
CN101359238B (zh) * 2008-09-02 2012-01-18 中兴通讯股份有限公司 一种多核系统的时间同步方法及系统
US8345546B2 (en) * 2010-07-13 2013-01-01 Verizon Patent And Licensing Inc. Dynamic machine-to-machine communications and scheduling

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5577075A (en) * 1991-09-26 1996-11-19 Ipc Information Systems, Inc. Distributed clocking system
US6438670B1 (en) 1998-10-02 2002-08-20 International Business Machines Corporation Memory controller with programmable delay counter for tuning performance based on timing parameter of controlled memory storage device
US20030204759A1 (en) 2002-04-26 2003-10-30 Singh Jitendra K. Managing system power

Also Published As

Publication number Publication date
EP1875652A2 (en) 2008-01-09
ES2637233T3 (es) 2017-10-11
WO2006127174A3 (en) 2009-04-16
WO2006127174A2 (en) 2006-11-30
EP1875652A4 (en) 2015-01-28
US8881233B2 (en) 2014-11-04
CN101501676A (zh) 2009-08-05
JP2008546274A (ja) 2008-12-18
JP4724748B2 (ja) 2011-07-13
EP1875652B1 (en) 2017-05-17
CN101501676B (zh) 2016-09-21
US20060265738A1 (en) 2006-11-23
KR20080022080A (ko) 2008-03-10

Similar Documents

Publication Publication Date Title
KR101433945B1 (ko) 주기적인 분산형 시간을 통한 리소스 관리
US9942339B1 (en) Systems and methods for providing messages to multiple subscribers
EP2656215B1 (en) Scheduling and management in a personal datacenter
CN101981531B (zh) 聚集循环调度以优化资源消耗
US8639786B2 (en) Consistency domains for replication in distributed computing
EP1670181B1 (en) Communication apparatus and communication timing control method
EP3417598A1 (en) Communication system
Corradi et al. A DDS-compliant infrastructure for fault-tolerant and scalable data dissemination
JP2005234931A (ja) リソース探索方法、及び、クラスタマネージャ装置
Dianes et al. Using standards to integrate soft real-time components into dynamic distributed architectures
Bali et al. A new hierarchical transaction model for mobile adhoc network environment
Guidec et al. Supporting conflict-free replicated data types in opportunistic networks
CN111600958A (zh) 服务发现系统、服务数据管理方法、服务器及存储介质
Brunner et al. Software design for building model servers: Concurrency aspects
JP2006113828A (ja) 作業負荷管理可能なクラスタシステム
Bauer et al. Toward scalable real-time messaging
Wujuan et al. An object replication algorithm for real-time distributed databases
Barreto Conflict-Free Replicated Data Types in Dynamic Environments
Collins Communication paradigms for mobile ad hoc networks
Li et al. Just enough, just in time, just for" me" fundamental principles for engineering IoT-native software systems
Chatterjee et al. Gossip Based Distributed Real Time Task Scheduling with Guaranteed Performance on Heterogeneous Networks
Zhou et al. Flexible on-device service object replication with replets
Baldoni et al. Università di Roma “La Sapienza" February 23, 2007
Bakre et al. LA1 4YR, UK telephone:+ 44 (0) 524 65201 e-mail: nigel, gordon, kc, adrian@ comp. lancs. ac. uk
Calvo et al. Adding Synchronous Scheduling to CORBA-RT

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
E902 Notification of reason for refusal
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170719

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180718

Year of fee payment: 5