KR20100087632A - 분산된 시스템에서 서비스들을 교환하기 위한 방법, 장치, 및 시스템 - Google Patents

분산된 시스템에서 서비스들을 교환하기 위한 방법, 장치, 및 시스템 Download PDF

Info

Publication number
KR20100087632A
KR20100087632A KR1020100002938A KR20100002938A KR20100087632A KR 20100087632 A KR20100087632 A KR 20100087632A KR 1020100002938 A KR1020100002938 A KR 1020100002938A KR 20100002938 A KR20100002938 A KR 20100002938A KR 20100087632 A KR20100087632 A KR 20100087632A
Authority
KR
South Korea
Prior art keywords
service
advertisement
capabilities
requirements
registration
Prior art date
Application number
KR1020100002938A
Other languages
English (en)
Inventor
제이슨 제임스 그레이브스
케번 디. 홀더웨이
이반 로날드 올긴 주니어
Original Assignee
인터내셔널 비지네스 머신즈 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인터내셔널 비지네스 머신즈 코포레이션 filed Critical 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20100087632A publication Critical patent/KR20100087632A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0207Discounts or incentives, e.g. coupons or rebates
    • G06Q30/0236Incentive or reward received by requiring registration or ID from user
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/24Negotiation of communication capabilities

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Development Economics (AREA)
  • Signal Processing (AREA)
  • Accounting & Taxation (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Game Theory and Decision Science (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Information Transfer Between Computers (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

분산된 시스템에서 서비스들을 교환하기 위한 방법, 장치, 및 시스템이 개시된다. 통신 모듈은 서비스 제공자에 대한 서비스 능력들의 광고를 수신한다. 통신 모듈은 서비스 소비자에 대한 서비스 요구사항들의 등록을 더 수신한다. 매치 모듈은 그 서비스 능력들의 광고가 그 서비스 요구사항들의 등록과 매치하는지의 여부를 결정한다. 만약 그 서비스 능력들의 광고가 그 서비스 요구사항들의 등록과 매치한다면, 매치 모듈은 그 서비스 소비자의 서비스 요구사항들을 공급하도록 그 서비스 제공자를 구성한다. 수립 모듈은 그 서비스 제공자와 그 서비스 소비자 간의 서비스 관계를 수립한다. 서비스 제공자는 그 서비스 소비자의 서비스 요구사항들을 제공한다.

Description

분산된 시스템에서 서비스들을 교환하기 위한 방법, 장치, 및 시스템{METHOD, APPARATUS, AND SYSTEM FOR EXCHANGING SERVICES IN A DISTRIBUTED SYSTEM}
본 발명은 서비스들을 교환하는 것과 관련되며, 더 상세하게는 분산된 시스템(distributed system)에서 서비스들을 교환하는 것과 관련된다.
데이터 처리 시스템들은 흔히 분산된 시스템들로 구성된다. 분산된 시스템은 다수의 디바이스들(예를 들어, 서버들, 라우터들, 및 스토리지 디바이스들)을 포함할 수 있다. 분산된 시스템은 컴퓨팅 태스크(computing task)에 하나 또는 그 이상의 서버들, 라우터들, 및 스토리지 디바이스들을 할당함으로써 서비스할 수 있다.
불행하게도, 관리자(administrator)는 규정된 태스크를 수행하도록 분산된 시스템을 구성하기 위해 일반적으로 그 분산된 시스템에서 각 디바이스의 상세한 요구사항들(requirements) 및 능력들(capabilities)을 이해해야 한다. 예를 들어, 만약 관리자가 하나의 스토리지 디바이스를 서버에 결합하고자 한다면, 그 관리자는 서비스들을 교환하도록 그 서버 및 스토리지 디바이스를 구성하기 위해 그 서버의 스토리지 요구사항들을 이해할 필요가 있을 뿐만 아니라 그 스토리지 디바이스를 어떻게 관리(manage)하는지를 알 필요가 있다.
위의 논의로부터 알 수 있듯이, 분산된 시스템에서 서비스들을 교환하는 방법, 장치, 및 시스템에 대한 요구가 있다. 유익하게도, 그러한 방법, 장치, 및 시스템은 서비스들을 교환하기 위해 서비스 제공자들(service providers)을 서비스 소비자들(service consumers)과 자동으로(automatically) 매치(match)시킬 것이다.
본 발명은 기술 분야의 현재 상태에 대응하여, 특히, 현재 이용가능한 서비스 교환 방법들에 의해 아직까지 충분히 해결되지 않은 기술 분야의 문제들 및 요구들에 대응하여, 개발되었다. 따라서, 본 발명은 위에서 논의된 기술 분야의 단점들 중 다수 또는 모두를 극복하는, 분산된 시스템에서 서비스들을 위한 방법, 장치, 및 시스템을 제공하기 위해 개발되었다.
본 발명의 방법은 분산된 시스템에서 서비스들을 교환하기 위해 제공된다. 일 실시예에서, 그 방법은 서비스 능력들(service capabilities)의 광고(advertisement)를 수신하는 단계, 서비스 요구사항들(service requirements)의 등록(registration)을 수신하는 단계, 상기 광고가 상기 등록과 매치하는지의 여부를 결정하는 단계, 상기 서비스 요구사항들을 공급하도록 상기 서비스 제공자를 구성하는 단계, 및 서비스 관계(service relationship)를 수립(establish)하는 단계를 포함한다.
통신 모듈(communication module)은 서비스 제공자에 대한 서비스 능력들의 광고를 수신한다. 상기 통신 모듈은 서비스 소비자에 대한 서비스 요구사항들의 등록을 더 수신한다. 매치 모듈(match module)은 상기 서비스 능력들의 광고(the advertisement service capabilities)가 상기 서비스 요구사항들의 등록(the registration service requirements)과 매치하는지의 여부를 결정한다.
만약 상기 서비스 능력들의 광고가 상기 서비스 요구사항들의 등록과 매치한다면, 구성 모듈(configuration module)은 상기 서비스 소비자의 상기 서비스 요구사항들을 공급하도록 상기 서비스 제공자를 구성한다. 수립 모듈(establishment module)은 상기 서비스 제공자와 상기 서비스 소비자 간의 서비스 관계를 수립(establish)한다. 상기 서비스 제공자는 상기 서비스 소비자의 상기 서비스 요구사항들을 제공한다.
분산된 시스템에서 서비스들을 교환하기 위한 장치는 상기 방법의 단계들을 기능적으로 실행하도록 구성된 복수의 모듈들을 갖는다. 상기 모듈들은 통신 모듈(communication module), 매치 모듈(match module), 구성 모듈(configuration module), 및 수립 모듈(establishment module)을 포함한다.
상기 통신 모듈은 서비스 제공자에 대한 서비스 능력들의 광고를 수신한다. 상기 통신 모듈은 서비스 소비자에 대한 서비스 요구사항들의 등록을 더 수신한다. 상기 매치 모듈은 상기 서비스 능력들의 광고(the advertisement service capabilities)가 상기 서비스 요구사항들의 등록(the registration service requirements)과 매치하는지의 여부를 결정한다.
상기 서비스 능력들의 광고가 상기 서비스 요구사항들과 매치한다면, 상기 구성 모듈은 상기 서비스 소비자의 상기 서비스 요굿사항들을 공급하도록 상기 서비스 제공자를 구성한다. 상기 수립 모듈은 상기 서비스 제공자와 상기 서비스 소비자 간의 서비스 관계를 수립한다. 상기 서비스 제공자는 상기 서비스 소비자의 상기 서비스 요구사항들을 제공한다.
또한 본 발명의 시스템이 상기 분산된 시스템에서 서비스들을 교환하기 위해 제공된다. 상기 시스템은 블레이드 센터(blade center)에서 구현될 수 있다. 특히, 일 실시예에서 상기 시스템은 복수의 서비스 제공자들, 복수의 서비스 소비자들, 및 매니저(manager)를 포함한다.
상기 매니저는 통신 모듈, 매치 모듈, 구성 모듈, 및 수립 모듈을 포함한다. 상기 통신 모듈은 상기 복수의 서비스 제공자들에 대한 서비스 능력들의 복수의 광고들을 수신한다. 상기 통신 모듈은 상기 복수의 서비스 소비자들에 대한 서비스 요구사항들의 복수의 등록들을 더 수신한다. 상기 매치 모듈은 제1 서비스 제공자에 대한 서비스 능력들의 제1 광고가 제1 서비스 소비자에 대한 서비스 요구사항들의 제1 등록과 매치하는지의 여부를 결정한다.
만약 상기 서비스 능력들의 제1 광고(the first advertisement service capabilities)가 상기 서비스 요구사항들의 제1 등록(the first registration service requirements)과 매치한다면, 상기 구성 모듈은 상기 제1 서비스 소비자의 상기 제1 서비스 요구사항들을 공급하도록 상기 제1 서비스 제공자를 구성한다. 상기 수립 모듈은 상기 제1 서비스 제공자와 상기 제1 서비스 소비자 간의 서비스 관계를 수립한다. 상기 제1 서비스 제공자는 상기 제1 서비스 소비자의 상기 서비스 요구사항들을 제공한다.
본 명세서 전체에서의 특징들, 이점들, 또는 유사 표현에 대한 참조들은, 본 발명으로써 실현될 수 있는 특징들 및 이점들 모두가 본 발명의 어떤 하나의 실시예에 있어야 한다거나 있는 것을 의미하지는 않는다. 그보다는 오히려, 그 특징들 및 이점들을 참조하는 표현은, 실시예와 함께 기술된 특정 특징, 이점, 또는 특성이 본 발명의 적어도 하나의 실시예에 포함된다는 것을 의미하는 것으로 이해되어야 한다. 따라서, 본 명세서 전체에서의 특징들 및 이점들, 및 유사 표현에 관한 논의는 동일한 실시예를 참조할 수는 있으나, 반드시 그런 것은 아니다.
더 나아가, 본 발명의 기술된 특징들, 이점들, 및 특성들은 하나 또는 그 이상의 실시예들에서 어떤 적절한 방법으로 조합될 수 있다. 관련 기술 분야에서 숙련된 자는 특정 실시예의 하나 또는 그 이상의 구체적 특징들 또는 이점들 없이도 본 발명이 실행될 수 있다는 것을 알 것이다. 또 다르게는, 발명의 모든 실시예들에서 제공되지 않을 수 있는 추가 특징들 및 이점들을 알 수도 있다.
본 발명은 서비스 소비자의 서비스 요구사항들을 서비스 제공자의 서비스 능력들과 매치시킴으로써 분산된 시스템에서 서비스들을 자동으로 교환한다. 또한, 본 발명은 상기 서비스 제공자를 구성하고 상기 서비스 제공자와 상기 서비스 소비자 간의 서비스 관계를 수립한다. 본 발명의 이러한 특징들 및 이점들은 다음의 설명 및 첨부되는 청구항들로부터 충분히 분명해질 것이고, 이하에서 제시되는 발명의 실행에 의해 알 수 있다.
본 발명의 이점들은 쉽게 이해될 것이고 위에서 간단히 기술된 발명의 더 구체적인 설명은 첨부된 도면들에 도시된 특정 실시예들을 참조함으로써 표현될 것이다. 이들 도면들은 단지 발명의 전형적인 실시예들을 설명하기 위한 것이므로 발명의 범위를 한정하는 것으로 여겨져서는 아니됨을 알아야 할 것이고, 본 발명은 첨부 도면들 사용을 통해 더 구체적이고 상세하게 기술 및 설명될 것이다.
도 1은 본 발명에 따른 분산된 시스템의 일 실시예를 도시하는 개략적 블록도이다.
도 2는 본 발명의 블레이드 센터의 일 실시예를 도시하는 개략적 블록도이다.
도 3은 본 발명의 서비스 교환 장치의 일 실시예를 도시하는 개략적 블록도이다.
도 4는 본 발명의 블레이드 센터의 일 실시예를 도시하는 사시도이다.
도 5는 본 발명의 서비스 교환 방법의 일 실시예를 도시하는 개략적 흐름도이다.
도 6은 본 발명의 매칭 방법의 일 실시예를 도시하는 개략적 흐름도이다.
본 명세서에 기술된 많은 기능 유닛들(functional units)은 각각의 구현 독립성(implementation independence)을 더 구체적으로 강조하고자 모듈들로 표시되었다. 모듈들은 메모리를 갖는 하나 또는 그 이상의 프로세스들, VLSI(Very Large Scale Integration) 회로들, 게이트 어레이들(gate arrays), 프로그램가능 로직(programmable logic), 및/또는 개별 컴포넌트들과 같은 하드웨어 회로들을 포함할 수 있다. 상기 하드웨어 회로들은 논리 함수들(logic functions)을 수행하고, 실체적인(tangible) 스토리지 디바이스들 상에 저장된 컴퓨터 판독가능 프로그램들을 실행하고, 및/또는 프로그램된 함수들을 수행할 수 있다. 또한 모듈들은 실체적인 스토리지 디바이스 상에 저장된 컴퓨터 판독가능 프로그램을 포함하는 컴퓨터 판독가능 스토리지 매체를 포함할 수 있다. 상기 실체적인 스토리지 디바이스는 프로세스, 마이크로컨트롤러 등과 같은 하드웨어 회로들에 의해 실행될 때 하나의 펑션을 수행한다.
본 명세서 전반에서 "일 실시예", "하나의 실시예", 또는 유사한 표현이라 함은 실시예와 함께 기술된 특정 특징, 구조, 또는 특성이 본 발명의 적어도 하나의 실시예에 포함된다는 것을 의미한다. 따라서, 본 명세서 전반의 "일 실시예에서", "하나의 실시예에서" 및 이와 유사한 표현은 모두 동일한 실시예를 일컬을 수 있으나, 반드시 그런 것은 아니다.
더 나아가, 본 발명의 기술된 특징들, 구조들, 또는 특성들은 하나 또는 그 이상의 실시예들에서 어떤 적절한 방법으로 조합될 수 있다. 다음의 설명에서, 많은 구체적인 세부사항들 - 예를 들어, 프로그래밍의 예들, 소프트웨어 모듈들, 사용자 선택들, 네트워크 트랜잭션들(network transactions), 데이터베이스 질의들(database queries), 데이터베이스 구조들, 하드웨어 모듈들, 하드웨어 회로들, 하드웨어 칩들 등 - 이 제공되어 발명의 실시예들의 전반적인 이해를 돕는다. 그러나, 관련 기술 분야에서 숙련된 자는 하나 또는 그 이상의 구체적인 세부사항들없이 실행될 수 있거나, 다른 방법들, 컴포넌트들, 재료들 등과 함께 실행될 수 있다는 것을 알 수 있을 것이다. 또 어떤 경우에는, 잘 알려진 구조들, 재료들, 또는 동작들은 발명의 측면들을 모호하게 하는 것을 피하기 상세하게 도시 또는 기술되지 않았다.
도 1은 본 발명에 따른 분산된 시스템(100)의 일 실시예를 도시하는 개략적 블록 다이어그램이다. 시스템(100)은 하나 또는 그 이상의 서비스 제공자들(105), 하나 또는 그 이상의 서비스 소비자들(110), 네트워크(115), 및 매니저(120)를 포함한다.
일 실시예에서, 시스템(100)은 컴퓨팅 서비스들(computing services)을 제공한다. 예를 들어, 서비스 소비자들(110)은 독립형(stand alone) 서버들일 수 있고 서비스 제공자들(105)은 스토리지 영역 네트워크들(Storage Area Networks, SAN)일 수 있다. 시스템(100)은 컴퓨팅 태스크(computing task)를 할당(assign)받을 수 있다. 매니저(120)는 서비스 소비자(110)에게 컴퓨팅 태스크를 수행하도록 지시할 수 있다. 서비스 소비자(110)는 서비스 제공자(105)로부터 제공되는 스토리지를 사용하여 컴퓨팅 태스크를 수행할 수 있다.
이와는 다르게, 서비스 소비자(110)도 또한 서비스들을 제공할 수 있고 서비스 제공자(105)도 또한 서비스들을 소비할 수 있다. 예를 들어, 서버 서비스 소비자(110)는 스크러빙 서비스(scrubbing service)를 하드 디스크 서비스 제공자(105)에게 제공할 수 있다.
매니저(120)는 컴퓨팅 태스크를 수행할 때 서비스 소비자(110)에게 서비스를 제공하기 위해 서비스 제공자(105)를 더 연관(associate)시킬 수 있다. 예를 들어, 서비스 제공자(105)는 스토리지 디바이스일 수 있고 서비스 소비자(110)를 위해 데이터를 저장할 수 있다. 서비스 제공자들(105), 서비스 소비자들(110), 및 매니저(120)는 네트워크(115)를 통해 통신한다. 네트워크(115)는 인터넷, WAN(Wide Area Network), LAN(Local Area Network), 토큰 링 네트워크(token ring network), 블레이드 센터 백 플레인(blade center back plane) 등일 수 있다.
종래에는, 관리자(administrator)는 매니저(120)가 서비스 제공자들(105)을 서비스 소비자들(110)과 연관시키도록 지시했다. 관리자에게는 서비스 제공자들(105)의 능력들(capabilities) 및 서비스 소비자들(110)의 요구사항들을 이해하는 것이 요구되었다. 또한, 관리자에게는 컴퓨팅 태스크들을 수행하기 위해 서비스 제공자들(105)과 서비스 소비자들(110)의 구성을 지시하는 것이 요구되었다. 본 발명은 이후에 기술되는 바와 같이 분산된 시스템(100)에서 서비스 제공자들(105)과 서비스 소비자들(110) 간의 서비스들의 교환을 자동화(automate)한다.
도 2는 본 발명의 블레이드 센터(200)의 일 실시예를 도시하는 개략적인 블록도이다. 블레이드 센터(200)는 도 1의 분산된 시스템의 일 실시예이다. 기술 분야에서 숙련된 자는 분산된 시스템(100)이 다른 구성들로 구현될 수 있다는 것을 알 수 있을 것이다. 블레이드 센터(200)는 하나 또는 그 이상의 블레이드 서버들(205), 스위치(210), 하나 또는 그 이상의 스토리지 블레이드들(215), 및 관리 모듈(management module)(220)을 포함한다. 블레이드 센터(200)에 관한 설명은 도 1의 구성요소들을 참조하며, 유사한 참조부호들은 유사한 구성요소들을 참조한다.
일 실시예에서, 관리 모듈(220)은 도 1의 매니저(120)이다. 관리 모듈(220)은 블레이드 센터(200)를 관리한다. 예를 들어, 관리 모듈(220)은 호스트(미도시)로부터 컴퓨팅 태스크들을 수신할 수 있다. 그 컴퓨팅 태스크들은 데이터베이스를 호스팅하는 것, 웹사이트를 호스팅하는 것 등을 포함할 수 있다. 관리 모듈(220)은 특정 컴퓨팅 태스크들을 서버 블레이드들(205)에 할당할 수 있다.
서버 블레이드들(205)은 컴퓨테이셔널 서비스들(computational services)을 수행한다. 또한, 서버 블레이드들(205)은 로컬 스토리지를 포함할 수 있다. 일 실시예에서, 서버 블레이드들(205)은 또한 스토리지 서비스들의 소비자들이다. 예를 들어, 스토리지 블레이드들(215)은 하나 또는 그 이상의 서버 블레이드들(205)을 위해 데이터를 저장할 수 있다. 서버 블레이드들(205), 스토리지 블레이드들(215), 및 관리 모듈(220)은 스위치(210)를 통해 통신할 수 있다. 스위치(210)는 도 1의 네트워크(115)일 수 있다. 일 실시예에서, 스위치(210)는 논 블로킹(non-blocking) 스위치이다.
블레이드 서버(205)는 할당된 컴퓨팅 태스크를 수행하기 위해 하나 또는 그 이상의 스토리지 블레이드들(215)의 사용을 요구할 수 있다. 본 발명은 이후에 기술되는 바와 같이 스토리지 블레이드들(215)과 서버 블레이드들(205) 간의 서비스들의 교환을 자동화한다.
도 3은 본 발명의 서비스 교환 장치(300)의 일 실시예를 도시하는 개략적 블록도이다. 장치(300)는 도 1의 매니저(120)로 구현될 수 있다. 이와는 다르게, 장치(300)는 도 2의 관리 모듈(220)로 구현될 수 있다. 장치(300)에 관한 설명은 도 1-2의 구성요소들을 참조하며, 유사한 참조부호들은 유사한 구성요소들을 참조한다. 장치(300)는 통신 모듈(305), 서비스 데이터베이스(310), 매치 모듈(315), 구성 모듈(320), 수립 모듈(325), 광고(330), 및 등록(335)을 포함한다. 통신 모듈(305), 서비스 데이터베이스(310), 매치 모듈(315), 및 등록(335)은 서버, 관리 모듈(220), 매니저(110) 등과 같은 컴퓨터의 프로세서 상에서 실행되는 컴퓨터 판독가능 프로그램(computer readable program)을 저장하는 컴퓨터 판독가능 스토리지 매체(computer readable storage medium)로 구현될 수 있다.
통신 모듈(305)은 광고(330)를 수신한다. 광고(330)는 서비스 제공자(105)에 대한 서비스 능력들의 목록을 포함할 수 있다. 등록(335)은 서비스 소비자(110)에 대한 서비스 요구사항들의 목록을 포함할 수 있다. 일 실시예에서, 통신 모듈(305)은 서비스 데이터베이스(310)에 서비스 능력들의 광고(330) 및 서비스 요구사항들의 등록(335)을 저장한다.
매치 모듈(315)은 상기 서비스 능력들의 광고(the advertisement service capabilities)가 상기 서비스 요구사항들의 등록(the registration service requirements)과 매치하는지의 여부를 결정한다. 만약 서비스 능력들의 광고가 서비스 요구사항들의 등록과 매치한다면, 구성 모듈(320)은 서비스 소비자(110)의 서비스 요구사항들을 공급하도록 서비스 제공자(105)를 구성한다. 또한, 수립 모듈(325)은 서비스 제공자(105)와 서비스 소비자(100) 간의 서비스 관계를 수립한다. 예를 들어, 수립 모듈(325)은 제1 서비스 제공자(105a)와 제1 서비스 소비자(110a) 간의 서비스 관계를 수립할 수 있다. 그런 다음 제1 서비스 제공자(105a)는 제1 서비스 소비자(110a)의 서비스 요구사항들을 제공한다.
도 4는 본 발명의 블레이드 센터(400)의 일 실시예를 도시하는 사시도이다. 블레이드 센터(400)는 도 2의 블레이드 센터(200)일 수 있다. 도시된 블레이드 센터(400)는 블레이드 센터 컴포넌트들 간의 가능한 물리적 관계들을 보여주려고 의도된 것이지, 크기가 맞도록 도시된 것은 아니다. 블레이드 센터(400)는 뉴욕주 아몽크(Armonk)의 IBM사(International Business Machines Corporation)에 의해 제조된 블레이드센터(BladeCenter)와 유사할 수 있다. 블레이드 센터(400)에 관한 설명은 도 1-3의 구성요소들을 참조하며, 유사한 참조부호들인 유사한 구성요소들을 참조한다.
일 실시예에서, 블레이드 센터(400)는 14 개의 슬롯들(415)을 포함한다. 제1, 2, 및 3 슬롯(415a, 415b, 415c)은 빗금 해칭으로 나타낸 바와 같이 스토리지 블레이드들(215)에 의해 점유될 수 있다. 제4 내지 14 슬롯들(415d-m)은 서버 블레이드들(205)로 가득 차 있다. 일반적으로 블레이드 센터(400)는 탑재된 랙(rack mounted)이지만, 또한 독립형 디바이스일 수 있다. 랙 탑재 하드웨어는 도시되지 않았다.
서버 블레이드들(205) 및 스토리지 블레이드(215)는 슬롯들(415) 내로 슬라이딩함(sliding)으로써 블레이드 센터(400)에 탑재된다. 서버 블레이드들(205) 및 스토리지 블레이드들(215)에 더하여, 통신 블레이드들과 같은 다른 종류의 블레이드들이 슬롯들(415)에 탑재될 수 있다. 일반적으로, 블레이드들(205, 210)은 파워 커플링들(power couplings) 및 인터페이스 버스들에 연결된다. 이 인터페이스 버스들은 데이터 전송, 블레이드 관리, 블레이드 모니터링 등을 위해 사용될 수 있다. 블레이드들(205, 210)은 또한 케이블들로써 다른 디바이스들에 연결될 수 있다.
블레이드 센터(400)는 또한 하나 또는 그 이상의 표시등(indicator lights) 및/또는 버턴(430)을 포함할 수 있다. 블레이드 센터(400)는 또한 하나 또는 그 이상의 범용 직렬 버스 연결들(universal serial bus connections)(435)을 갖는 것으로 도시되어 있다. 블레이드 센터(400)는 또한 직렬 포트, 병렬 포트, FireWire® 연결, 무선 연결 등과 같은 다른 연결들을 포함할 수 있다. 블레이드 센터(400)는 또한 컴팩트 디스크 드라이브(420)와 같은 착탈식 스토리지 매체를 위한 디바이스들을 포함할 수 있다. 또한, 블레이드 센터(400)는 테이프 드라이브들, 광 드라이브들, 플로피 드라이브들 등(미도시)과 같은 다른 착탈식 스토리지 매체를 더 포함할 수 있다. 블레이드 센터(400)는 또한 다른 사용자 인터페이스 및 관리 제어들, 계기들(indicators), 및 장비를 포함할 수 있다. 기술 분야에서 숙련된 자는 블레이드 센터(400)에 적합한 다른 제어들, 계기들, 연결들, 착탈식 스토리지 매체, 및 장비를 알 수 있을 것이다.
서버 블레이드들(205)은 그들의 작은 크기(compact size), 신뢰성(reliability), 및 관리, 교체, 업그레이드, 및 추가의 용이함 때문에 유리하다. 스토리지 블레이드(215)를 블레이드 센터(400)에 추가하는 것은 크기 및 관리의 용이함을 스토리지 서브시스템들(storage subsytems)까지 확장한다. 또한 스토리지 블레이드(215)는 슬롯들(415) 중 단지 일부에만 탑재된 서버 블레이들(205)을 갖는 블레이드 센터(400)를 원하는 작은 비즈니스들 또는 다른 것들을 위한 편리한 시스템인어박스(system-in-a-box) 솔루션을 제공한다. 블레이드 센터(400)에서의 스토리지 블레이드(215)는 또한 사용자들이 공간을 보존하고 및/또는 케이블링을 감소시키기를 원하는 더 큰 컴퓨터 시스템들에 바람직할 수 있다.
계속되는 개략적인 흐름도는 논리적 흐름도로서 일반적으로 제시된다. 이와 같이, 도시된 순서 및 라벨링된 단계들은 본 방법의 일 실시예를 나타낸다. 다른 단계들 및 방법들은 설명되는 방법의 하나 또는 그 이상의 단계들 또는 그들의 일부분들에 상당하는 기능, 로직, 또는 효과를 가질 수 있다. 또한, 채용된 포맷(format) 및 심볼들(symbols)은 본 방법의 논리적 단계들을 설명하기 위해 제공되는 것이므로 본 방법의 범위를 한정하는 것으로 이해되어서는 아니된다. 비록 흐름도들에서 다양한 화살표 종류들 및 선 종류들이 채용될 수 있지만, 그것들은 대응하는 방법의 범위를 한정하는 것으로 이해되어서는 아니된다. 사실상, 몇몇 화살표들 또는 다른 연결부분들은 단지 본 방법의 논리적 흐름을 나타내기 위해 사용될 수 있다. 예를 들어, 하나의 화살표는 설명된 방법의 열거된 단계들 간의 명시되지 않은 시간의 구간을 기다리거나 모니터링하는 것을 나타낼 수 있다. 또한, 특정 방법이 실행될 수 있는 순서는 도시된 대응 단계들의 순서를 엄격하게 지킬 수도 있고 그렇지 않을 수도 있다.
도 5는 본 발명의 서비스 교환 방법(500)의 일 실시예를 도시하는 개략적 흐름도이다. 방법(500)은 실질적으로 도 1-4의 기술된 장치 및 시스템들의 동작에 관해 위에서 제공된 기능들을 수행하기 위한 단계들을 포함한다. 일 실시예에서, 방법(500)은 실체적인(tangible) 스토리지 디바이스 상에 저장된 컴퓨터 판독가능 프로그램(computer readable program)을 포함하는 컴퓨터 판독가능 스토리지 매체(computer readable storage medium)으로써 구현된다. 상기 컴퓨터 판독가능 스토리지 매체는 매니저(120) 또는 관리 모듈(220)과 같은 컴퓨팅 시스템 내에 통합될 수 있다. 여기서 컴퓨팅 시스템에 의해 실행되는 상기 컴퓨터 판독가능 프로그램은 방법(500)을 수행한다.
방법(500)이 시작되어, 일 실시예에서, 통신 모듈(305)은 서비스 제공자의 서비스 능력들을 결정한다(505). 설명을 간략화하기 위해 상기 방법은 하나의 서비스 제공자(105) 및 하나의 서비스 소비자(110)에 대해 설명되었으나, 기술 분야의 숙련된 자는 방법(500)이 복수의 서비스 제공자들(105) 및 복수의 서비스 소비자들(110)로써 실행될 수 있다는 것을 알 것이다. 일 실시예에서, 통신 모듈(305)은 서비스 제공자의 서비스 능력들을 결정하기 위해 서비스 제공자(105)에게 질의(query)한다.
이와는 다르게, 매니저(120)는 식별자를 얻기 위해(for an identifier) 서비스 제공자(105)에게 질의할 수 있다. 매니저(120)는 서비스 능력들의 데이터베이스에 질의하기 위해 서비스 제공자 식별자를 더 사용할 수 있다.
일 실시예에서, 통신 모듈(305)은 서비스 제공자(105)에 대한 서비스 능력들의 광고(330)를 수신한다(510). 광고(330)는 통신 모듈의 질의에 응답하여 서비스 제공자(105)로부터 통신 모듈(305)로 전달될 수 있다. 이와는 달리, 광고(330)는 서비스 능력들의 데이터베이스로부터 통신 모듈(305)로 전달될 수 있다.
일 실시예에서, 서비스 소비자(110)는 서비스 소비자(110)에 대한 서비스 요구사항들을 결정한다(515). 서비스 소비자(110)는 컴퓨팅 태스크를 수신하는 것에 응답하여 서비스 요구사항들을 결정할 수 있다(515). 이와는 다르게, 통신 모듈(305)은 서비스 요구사항들을 얻기 위해(for the service requirements) 서비스 소비자(110)에게 질의한다. 통신 모듈은 서비스 소비자(110)로부터의 서비스 요구사항들에 관한 등록(335)을 수신한다(520). 예를 들어, 서비스 소비자(110)는 서비스 소비자(110)가 1 테라바이트(Terabyte)의 스토리지를 필요로 한다는 것을 결정할 수 있고(515), 등록(335)에서의 1 테라바이트의 스토리지에 대한 서비스 요구사항을 통신 모듈(305)로 전달할 수 있다.
일 실시예에서, 통신 모듈(305)은 서비스 데이터베이스(310)에서 서비스 능력들의 광고(330) 및 서비스 요구사항들의 등록(335)을 저장한다. 서비스 데이터베이스(310)는 서비스 요구사항들의 테이블 및 서비스 능력들의 테이블을 포함할 수 있다. 일 실시예에서, 서비스 데이터베이스(310)는 복수의 특수한(specilized) 테이블들을 포함한다. 예를 들어, 서비스 데이터베이스(310)는 스토리지 서비스 요구사항들의 테이블, 통신 서비스 요구사항들의 테이블, 컴퓨팅 서비스 요구사항들의 테이블 등을 포함할 수 있다. 또한, 서비스 데이터베이스(310)는 스토리지 서비스 능력들의 테이블, 컴퓨팅 서비스 능력들의 테이블, 및 통신 서비스 능력들의 테이블 등을 포함할 수 있다.
매치 모듈(315)은 서비스 제공자(105)의 서비스 능력들의 광고(the advertisement service capabilities of the service)가 서비스 소비자(110)의 서비스 요구사항들의 등록(the registration service requirements of the service consumer)과 매치하는지의 여부를 결정한다(525). 일 실시예에서, 매치 모듈(315)은 등록(335)으로부터의 서비스 요구사항들의 목록에서의 각각의 서비스 요구사항을 광고(330)로부터의 서비스 능력들의 목록에서의 각각의 서비스 능력과 비교한다. 만약 각각의 서비스 요구사항이 서비스 능력에 의해 충족된다면, 매치 모듈(315)은 서비스 능력들의 광고가 서비스 요구사항들의 등록과 매치하는 것으로 결정할 수 있다(525).
만약 상기 서비스 능력들의 광고(the advertisement service capabilities)가 상기 서비스 요구사항들의 등록(the registration service requirements)과 매치하지 않는다면, 방법(500)은 서비스 능력들을 결정하는 단계(505)로 루프(loop)한다. 만약 서비스 능력들의 광고가 서비스 요구사항들의 등록과 매치한다면, 구성 모듈(320)은 서비스 소비자(110)의 서비스 요구사항들을 공급하도록 서비스 제공자(105)를 구성한다(530).
일 실시예에서, 구성 모듈(320)은 서비스 소비자(110)를 위해 스토리지 디바이스에 하나 또는 그 이상의 논리적 용량(logical volumes)을 할당한다. 또한, 구성 모듈(320)은 네트워크(115)를 통해 서비스 제공자(105)와 서비스 소비자(110) 간의 하나 또는 그 이상의 경로들(pathways)을 수립할 수 있다. 이와는 달리, 구성 모듈(320)은 스위치(210)를 통한 스토리지 블레이드(215)와 서버 블레이드(210) 간의 경로를 구성할 수 있다.
또한, 만약 서비스 능력들의 광고가 서비스 요구사항들의 등록과 매치한다면, 수립 모듈(325)은 서비스 제공자(105)와 서비스 소비자(110) 간의 서비스 관계를 수립한다(535). 일 실시예에서, 수립 모듈(325)은 서비스 소비자(110)에게 서비스 제공자(105)가 요구된 서비스를 제공할 것이라는 것을 통지한다. 또한, 수립 모듈(325)은 서비스 소비자(110)에게 요구된 서비스를 제공하도록 서비스 제공자(105)에게 지시할 수 있다.
예를 들어, 서비스 소비자(110)는 서버 블레이드(205)일 수 있고 서비스 제공자(205)는 스토리지 블레이드(215)일 수 있다. 구성 모듈(320)은 스토리지 블레이드(215) 상에 논리적 용량을 할당할 수 있다. 또한, 구성 모듈(320)은 스위치(210)를 통해 서버 블레이드(205)와 스토리지 블레이드(215) 간의 복수의 경로들을 수립할 수 있다. 수립 모듈(325)은 서버 블레이드(205)에게 스토리지 블레이드(215)가 서버 블레이드의 요구된 스토리지를 제공할 것이라는 것을 통지할 수 있다. 또한, 수립 모듈(325)은 서버 블레이드(205)에게 새롭게 할당된 논리적 용량에 억세스를 허용하도록 지시할 수 있다.
도 6은 본 발명의 매칭 방법의 일 실시예를 도시하는 개략적 흐름도이다. 방법(600)은 도 5의 단계(525)에 대해 기술된 매치의 결정을 수행하기 위한 단계들을 실질적으로 포함할 수 있다. 일 실시예에서, 방법(600)은 실체적인 스토리지 디바이스 상에 저장된 컴퓨터 판독가능 프로그램을 포함하는 컴퓨터 판독가능 스토리지 매체로써 구현된다. 상기 컴퓨터 판독가능 스토리지 매체는, 매니저(120) 또는 관리 모듈(220)과 같은 컴퓨팅 시스템 내에 통합될 수 있다. 여기서 컴퓨팅 시스템에 의해 실행되는 상기 컴퓨터 판독가능 프로그램은 방법(600)을 수행한다.
방법(600)은 시작하여, 일 실시예에서 매치 모듈(315)은 서비스 요구사항들의 등록(335)과 매치하는 서비스 능력들을 갖는 복수의 광고들(330) 중 각각의 광고(330)를 결정한다. 예를 들어, 서비스 데이터베이스(310)는 복수의 서비스 제공자들(105)로부터의 서비스 능력들을 갖는 광고들(330)을 저장할 수 있다. 매치 모듈(315)은 서비스 능력들의 각각의 광고(330)를 등록(335)으로부터의 서비스 요구사항들과 비교하고 각각의 광고(333)를 매칭 서비스 능력들로써 플래그(flag)한다.
일 실시예에서, 매치 모듈(315)은 수학식 1을 사용하여 각각의 매칭 광고(330)에 대해 가중치(weight) W를 계산한다. 여기서 만약 i 번째 서비스 요구사항에 대응하는 서비스 능력의 버전(version)이 i 번째 서비스 요구사항과 호환(compatible)된다면 i 번째 서비스 요구사항에 대해, Vi는 "1" 이다. 그리고 만약 서비스 능력의 그 버전이 i 번째 서비스 요구사항과 호환되지 않는다면, Vi는 "0" 이다. 여기서 Ki는 상수이다.
Figure pat00001
이와는 다르게, Vi는 i 번째 서비스 능력 및 대응하는 서비스 요구사항 간의 차이일 수 있다. 예를 들어, 만약 i 번째 서비스 요구사항이 64 기가바이트(GB)이고 대응하는 서비스 능력이 72 GB 라면, Vi는 8 GB일 수 있다. 일 실시예에서, 가중치 W는 광고(330)가 매칭 광고가 되도록 서비스 스레시홀드(service threshold)를 넘어서야만 한다.
매치 모듈(315)은 우선순위 랭킹(priority ranking)을 사용하여 각각의 매칭 광고(330)에 대해 랭킹 가중치(ranking weight)를 더 계산할 수 있다. 일 실시예에서, 랭킹 가중치(P)는 수학식 2를 사용하여 계산될 수 있다. 여기서 N은 서비스 요구사항들을 대기하는 서비스 소비자들(105)의 수이고, R은 서비스들을 요구하는 서비스 소비자들(105)의 대기열(queue)에서의 제1 서비스 소비자(105a)에 대한 등록 위치(registration position)이며, F는 서비스들에 대한 대기열에서의 어떤 서비스 소비자(105)에 의한 성공적인 요구들의 빈도(frequency)이다.
Figure pat00002
예를 들어, 서비스 소비자(105)가 서비스 요구사항들의 등록(335)을 전달할 때, 그 등록(335)은 다른 등록들과 함께 서비스 대기열에 배치될 수 있다. 랭킹 가중치(P)는 그 대기열에서의 모든 서비스 소비자들(110)에 대해 계산된다. 그런 다음 우선순위 목록은 결과 우선순위들(resulting priorities)에 기초하여 분류(sort)된다. 서비스 소비자(110)가 서비스 제공자(105)와 연결되므로, 그 대기열에서 남은 서비스 소비자들(110) 각각은 감소된 등록 위치(R)를 갖는다. 예를 들어, 그 대기열 상의 두 번째였던 서비스 소비자(110)는 이제 첫 번째이다. 일 실시예에서, 우선순위들(P)은 새로운 서비스 소비자(110)가 그 대기열에 추가되는 경우에만 다시 계산된다.
일 실시예에서, 만약 제1 서비스 제공자(105a)에 대한 가중치(W)가 그 대기열에서 가장 높게 랭크된 서비스 소비자(110)에 대한 서비스 스레시홀드를 충족시킨다면, 매치 모듈(315)은 제1 서비스 제공자(105a)를 가장 높게 랭크된 서비스 소비자(110)에 매치시키고(615), 수학식 2의 계산들은 수행되지 않을 수 있으며, 방법(600)은 종료된다. 그렇지 않고, 만약 제1 서비스 제공자(105a)에 대한 가중치(W)가 그 큐에서 가장 높게 랭크된 서비스 소비자(110)에 대한 서비스 스레시홀드를 충족시키지 않는다면, 매치 모듈(315)은 각각의 서비스 소비자(110)에 대해 랭킹 가중치(P)를 계산한다. 매치 모듈(315)은 서비스 제공자(105)를 갖는 서비스 소비자(110)를 가장 낮은 랭킹 가중치(P)에 더 매치시킬 수 있고(615), 방법(600)은 종료된다.
일 실시예에서, 매치 모듈(315)은 각각의 서비스 제공자(105)에 대해 수학식 1 및 2에 대한 입력들을 저장할 수 있다. 또한, 서비스 제공자(105)가 서비스 소비자(110)에 매치될 때, 매치 모듈(315)은 대기열로부터 서비스 소비자(110)를 제거(remove)할 수 있고 서비스 제공자(105)의 광고(330)를 수정(modify)하여 서비스 능력들에서의 변화를 반영할 수 있다.
본 발명은 서비스 제공자(105)를 서비스 소비자(110)에 매치시킴(525, 615)으로써 분산된 시스템(100)에서 자동으로 서비스들을 교환한다. 본 발명은 서비스 제공자(105)를 더 구성하고(530), 서비스 제공자(105)와 서비스 소비자(110) 간의 서비스 관계를 수립한다. 그리하여 본 발명은 서비스 제공자들(105)의 할당을 빠르게 하여, 분산된 시스템(100)의 효율을 증가시킬 수 있다. 컴퓨팅 작업은 관리자가 서비스 제공자들(105)을 서비스 소비자들(110)에 할당할 시 지연될 필요가 없다.
본 발명은 발명의 사상 또는 본질적인 특징들을 벗어남이 없이 다른 특정 형태들로 구현될 수 있다. 기술된 실시예들은 모든 면에서 단지 예시적인 것으로 고려되어야 할 것이지 제한적인 것으로 고려되어서는 아니된다. 따라서, 발명의 범위는 앞서의 설명에 의해서라기 보다는 첨부되는 청구항들에 의해 나타내어진다. 청구항들의 의미 및 균등 범위 내에 들어오는 모든 변경들은 발명의 범위에 포함된다.

Claims (20)

  1. 분산된 시스템(distributed system)에서 서비스들을 교환하기 위해 실체적인 스토리지 디바이스 상에 저장된 컴퓨터 판독가능 프로그램을 포함하는 컴퓨터 판독가능 스토리지 매체에 있어서, 상기 컴퓨터 판독가능 프로그램은 컴퓨터 상에서 실행될 때 상기 컴퓨터가,
    서비스 제공자에 대한 서비스 능력들의 광고(advertisement)를 수신하고;
    서비스 소비자에 대한 서비스 요구사항들의 등록(registration)을 수신하고;
    상기 서비스 능력들의 광고가 상기 서비스 요구사항들의 등록과 매치하는지의 여부를 결정하고;
    상기 서비스 능력들의 광고가 상기 서비스 요구사항들의 등록과 매치한다면 상기 서비스 소비자의 상기 서비스 요구사항들을 공급하도록 상기 서비스 제공자를 구성(configure)하고;
    상기 서비스 제공자와 상기 서비스 소비자 간의 서비스 관계를 수립(establish) - 여기서 상기 서비스 제공자는 상기 서비스 소비자의 상기 서비스 요구사항들을 제공함 - 하도록 하는,
    컴퓨터 판독가능 스토리지 매체.
  2. 청구항 1에 있어서, 상기 서비스 능력들의 광고는 스토리지, 네트워크 부착형 스토리지(Network Attached Storage, NAS), 컴퓨트(compute), 미러(mirror), 입력/출력(I/O), 아카이벌(archival), 및 데이터베이스 타입으로부터 선택되는 서비스 타입을 포함하는,
    컴퓨터 판독가능 스토리지 매체.
  3. 청구항 2에 있어서, 상기 서비스 타입은 상기 스토리지, NAS, 및 아카이벌 타입으로부터 선택되고, 상기 서비스 능력들의 광고는 이용가능한 스토리지, 지원될 수 있는 클라이언트들 수, RAID(Redundant Array of Independent Disks) 레벨, 논리적 위치, 및 물리적 위치를 더 포함하는,
    컴퓨터 판독가능 스토리지 매체.
  4. 청구항 3에 있어서, 상기 서비스 능력들의 광고는 스토리지 버전 번호, 인증 값, 및 이용가능 값(availability value)을 더 포함하는,
    컴퓨터 판독가능 스토리지 매체.
  5. 청구항 4에 있어서, 상기 서비스 능력들의 광고는 상기 이용가능한 스토리지, 상기 지원될 수 있는 클라이언트들의 수, 상기 RAID 레벨, 상기 논리적 위치, 및 상기 물리적 위치의 우선순위 랭킹(priority ranking)을 더 포함하는,
    컴퓨터 판독가능 스토리지 매체.
  6. 청구항 5에 있어서, 상기 서비스 능력들의 광고가 상기 서비스 요구사항들의 등록과 매치하는지의 여부를 판단하는 것은,
    상기 서비스 요구사항들의 등록과 매치하는 서비스 능력들을 갖는 복수의 광고들 중 각각의 광고를 결정하고;
    상기 우선순위 랭킹을 사용하여 각각의 매칭 광고에 대한 랭킹 가중치(ranking weight)를 계산하고;
    가장 높은 랭킹 가중치를 갖는 매칭 광고를 상기 서비스 요구사항들의 등록과 매치시키는 것을 포함하는,
    컴퓨터 판독가능 스토리지 매체.
  7. 청구항 1에 있어서, 상기 서비스 제공자는 블레이드 센터에 배치된 스토리지 디바이스이고, 상기 서비스 소비자는 상기 블레이드 센터에 배치된 서버이고, 상기 컴퓨터는 상기 블레이드 센터에 배치된 관리 모듈인,
    컴퓨터 판독가능 스토리지 매체.
  8. 청구항 1에 있어서, 상기 서비스 제공자는 제1 블레이드 센터에 배치된 스토리지 블레이드이고, 상기 서비스 소비자는 제2 블레이드 센터에 배치된 서버 블레이드이고, 상기 컴퓨터는 상기 제1 및 제2 블레이드 센터와 통신하는 디렉터 서버(director server)인,
    컴퓨터 판독가능 스토리지 매체.
  9. 청구항 1에 있어서, 상기 컴퓨터 판독가능 프로그램은 상기 컴퓨터에게,
    상기 서비스 제공자의 서비스 능력들을 결정하고;
    상기 서비스 소비자의 서비스 요구사항들을 결정하도록 하게 더 구성되는,
    컴퓨터 판독가능 스토리지 매체.
  10. 분산된 시스템(distributed system)에서 서비스들을 교환하기 위한 장치에 있어서,
    서비스 제공자에 대한 서비스 능력들의 광고(advertisement)를 수신하는 통신 모듈 - 상기 통신 모듈은 서비스 소비자에 대한 서비스 요구사항들의 등록(registeration)을 수신함 -;
    상기 서비스 능력들의 광고가 상기 서비스 요구사항들의 등록과 매치하는지의 여부를 결정하는 매치 모듈;
    만약 상기 서비스 능력들의 광고가 상기 서비스 요구사항들의 등록과 매치한다면, 상기 서비스 소비자의 서비스 요구사항들을 공급하도록 상기 서비스 제공자를 구성하는 구성 모듈; 및
    상기 서비스 제공자와 상기 서비스 소비자 간의 서비스 관계를 수립(establish)하는 수립 모듈 - 여기서 상기 서비스 제공자는 상기 서비스 소비자의 서비스 요구사항들을 제공함 - 을 포함하는,
    서비스 교환 장치.
  11. 청구항 10에 있어서, 상기 서비스 능력들의 광고는 스토리지, 네트워크 부착형 스토리지(Network Attached Storage, NAS), 컴퓨트(compute), 미러(mirror), 입력/출력(I/O), 아카이벌(archival), 및 데이터베이스 타입으로부터 선택되는 서비스 타입을 포함하는,
    서비스 교환 장치.
  12. 청구항 11에 있어서, 상기 서비스 타입은 상기 스토리지, NAS, 및 아카이벌 타입으로부터 선택되고, 상기 서비스 능력들의 광고는 이용가능한 스토리지, 지원될 수 있는 클라이언트들의 수, RAID(Redundant Array of Independent Disks) 레벨, 논리적 위치, 물리적 위치, 스토리지 버전 번호, 인증 값, 이용가능 값(availability value)을 더 포함하는,
    서비스 교환 장치.
  13. 청구항 12에 있어서, 상기 서비스 능력들의 광고는 상기 이용가능한 스토리지, 상기 지원될 수 있는 클라이언트들의 수, 상기 RAID 레벨, 상기 논리적 위치, 및 상기 물리적 위치의 우선순위 랭킹(priority ranking)을 더 포함하는,
    서비스 교환 장치.
  14. 청구항 13에 있어서, 상기 매치 모듈은 상기 서비스 능력들의 광고가 상기 서비스 요구사항들의 등록과 매치하는지의 여부를,
    상기 서비스 요구사항들의 등록과 매치하는 서비스 능력들을 갖는 복수의 광고들 중 각각의 광고를 결정하고;
    상기 우선순위 랭킹을 사용하여 각각의 매칭 광고에 대한 랭킹 가중치(ranking weight)를 계산하고;
    가장 높은 랭킹 가중치를 갖는 매칭 광고를 상기 서비스 요구사항들의 등록과 매치시키는 것에 의해,
    결정하는,
    서비스 교환 장치.
  15. 분산된 시스템(distributed system)에서 서비스들을 교환하기 위한 시스템에 있어서,
    복수의 서비스 제공자들;
    복수의 서비스 소비자들; 및
    프로세서에 의해 실행되는 컴퓨터 판독가능 프로그램을 저장하는 컴퓨터 판독가능 스토리지 매체를 포함하는 매니저(manager)를 포함하되,
    상기 매니저는, 상기 복수의 서비스 제공자들에 대한 서비스 능력들의 복수의 광고들을 수신하는 통신 모듈 - 상기 통신 모듈은 상기 복수의 서비스 소비자들에 대한 서비스 요구사항들의 복수의 등록들을 수신함 -, 제1 서비스 제공자에 대한 서비스 능력들의 제1 광고가 제1 서비스 소비자에 대한 서비스 요구사항들의 제1 등록과 매치하는지의 여부를 결정하는 매치 모듈, 만약 상기 서비스 능력들의 제1 광고가 상기 서비스 요구사항들의 제1 등록과 매치한다면 상기 제1 서비스 소비자의 제1 서비스 요구사항들을 공급하도록 상기 제1 서비스 제공자를 구성하는 구성 모듈, 상기 제1 서비스 제공자와 상기 제1 서비스 소비자 간의 서비스 관계를 수립하는 수립 모듈 - 여기서 상기 제1 서비스 제공자는 상기 제1 서비스 소비자의 서비스 요구사항들을 제공함 - 을 더 포함하는,
    서비스 교환 시스템.
  16. 청구항 15에 있어서, 서비스 능력들의 광고 각각은 스토리지, 네트워크 부착형 스토리지(Network Attached Storage, NAS), 컴퓨트(compute), 미러(mirror), 입력/출력(I/O), 아카이벌(archival), 및 데이터베이스 타입으로부터 선택되는 서비스 타입을 포함하는,
    서비스 교환 시스템.
  17. 청구항 16에 있어서,
    상기 서비스 타입은,
    상기 스토리지, NAS, 및 아카이벌 타입으로부터 선택되고, 상기 서비스 능력들의 광고는 이용가능한 스토리지, 지원될 수 있는 클라이언트들의 수, RAID(Redundant Array of Independent Disks) 레벨, 논리적 위치, 물리적 위치, 스토리지 버전 번호, 인증 값, 이용가능 값, 및
    상기 이용가능한 스토리지, 상기 지원될 수 있는 클라이언트들의 수, 상기 RAID 레벨, 상기 논리적 위치, 및 상기 물리적 위치의 우선순위 랭킹(priority ranking)을 더 포함하되,
    여기서 상기 매치 모듈은 상기 서비스 능력들의 제1 광고가 상기 서비스 요구사항들의 제1 등록과 매치하는지의 여부를,
    상기 서비스 요구사항들의 제1 등록과 매치하는 서비스 능력들을 갖는 복수의 광고들 중 각각의 광고를 결정하고, 상기 우선순위 랭킹을 사용하여 각각의 매칭 광고에 대한 랭킹 가중치(ranking weight)를 계산하고, 가장 높은 랭킹 가중치를 갖는 매칭 광고를 상기 서비스 요구사항들의 제1 등록과 매치시키는 것에 의해,
    결정하는,
    서비스 교환 시스템.
  18. 청구항 15에 있어서, 적어도 하나의 서비스 제공자는 제1 블레이드 센터에 배치된 스토리지 블레이드이고, 적어도 하나의 서비스 소비자는 제2 블레이드 센터에 배치된 서버 블레이드이고, 상기 매니저는 상기 제1 및 제2 블레이드 센터와 통신하는 디렉터 서버(director server)인,
    서비스 교환 시스템.
  19. 청구항 15에 있어서, 각각의 서비스 제공자는 블레이드 센터에 배치된 스토리지 블레이드이고, 각각의 서비스 소비자는 상기 블레이드 센터에 배치된 서버 블레이드이고, 상기 매니저는 상기 블레이드 센터에 배치된 관리 모듈인,
    서비스 교환 시스템.
  20. 분산된 시스템(distributed system)에서 서비스들을 교환하기 위한 컴퓨터 인프라스트럭쳐(computer infrastructure)를 배치(deploy)하기 위한 방법에 있어서, 상기 배치 방법은 컴퓨팅 시스템 내에 컴퓨터 판독가능 프로그램을 포함하는 컴퓨터 판독가능 스토리지 매체를 통합하는 것을 포함하는 것을 포함하되, 상기 컴퓨팅 시스템에 의해 실행되는 상기 프로그램은,
    서비스 제공자에 대한 서비스 능력들의 광고를 수신하는 것 - 여기서 상기 서비스 능력들의 광고는 스토리지, 네트워크 부착형 스토리지(Network Attached Storage, NAS), 및 아카이벌(archival) 타입으로부터 선택되는 서비스 타입을 포함하고, 상기 서비스 능력들의 광고는 이용가능한 스토리지, 지원될 수 있는 클라이언트들의 수, RAID(Redundant Array of Independent Disks) 레벨, 논리적 위치, 및 물리적 위치를 더 포함함 -;
    서비스 소비자에 대한 서비스 요구사항들의 등록을 수신하는 것;
    상기 서비스 능력들의 광고가 상기 서비스 요구사항들의 등록과 매치하는지의 여부를 결정하는 것;
    만약 상기 서비스 능력들의 광고가 상기 서비스 요구사항들의 등록과 매치한다면 상기 서비스 소비자의 서비스 요구사항들을 공급하도록 상기 서비스 제공자를 구성하는 것; 및
    상기 서비스 제공자와 상기 서비스 소비자 간의 서비스 관계를 수립하는 것 - 여기서 상기 서비스 제공자는 상기 서비스 소비자의 서비스 요구사항들을 제공함 - 을 수행하는,
    컴퓨터 인프라스트럭쳐 배치 방법.
KR1020100002938A 2009-01-28 2010-01-13 분산된 시스템에서 서비스들을 교환하기 위한 방법, 장치, 및 시스템 KR20100087632A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/361,531 US8312144B2 (en) 2009-01-28 2009-01-28 Method, apparatus, and system for exchanging services in a distributed system
US12/361,531 2009-01-28

Publications (1)

Publication Number Publication Date
KR20100087632A true KR20100087632A (ko) 2010-08-05

Family

ID=42354907

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100002938A KR20100087632A (ko) 2009-01-28 2010-01-13 분산된 시스템에서 서비스들을 교환하기 위한 방법, 장치, 및 시스템

Country Status (3)

Country Link
US (1) US8312144B2 (ko)
KR (1) KR20100087632A (ko)
CN (1) CN101789962A (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9049098B2 (en) * 2010-08-05 2015-06-02 Cisco Technology, Inc. Discovery of services provided by application nodes in a network
US9049099B2 (en) * 2010-08-05 2015-06-02 Cisco Technology, Inc. Label distribution protocol advertisement of services provided by application nodes
CN103186409A (zh) * 2011-12-30 2013-07-03 英业达集团(天津)电子技术有限公司 虚拟机部署系统
US10140638B2 (en) * 2012-12-06 2018-11-27 International Business Machines Corporation Providing information technology resiliency in a cloud-based services marketplace
US9705758B2 (en) * 2013-11-19 2017-07-11 International Business Machines Corporation Management of cloud provider selection
CN104967669B (zh) * 2015-05-29 2019-03-05 成都集致生活科技有限公司 一种向附近特定用户移动终端推送信息的方法
CN108353351B (zh) * 2015-11-10 2020-10-23 华为技术有限公司 选择服务网络的方法、网络设备和管理设备
GB2581473B (en) * 2019-02-01 2023-01-11 Arm Ip Ltd Electronic device configuration mechanism
CN113542325A (zh) * 2020-04-17 2021-10-22 北京沃东天骏信息技术有限公司 分布式服务调度方法、装置、电子设备和存储介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04336742A (ja) 1991-05-14 1992-11-24 Fujitsu Ltd 交換サービス制御方式
JPH07283875A (ja) * 1994-04-06 1995-10-27 Fujitsu Ltd 対地群管理を用いた交換制御方式
US5850518A (en) * 1994-12-12 1998-12-15 Northrup; Charles J. Access-method-independent exchange
US7330999B2 (en) * 2003-04-23 2008-02-12 Dot Hill Systems Corporation Network storage appliance with integrated redundant servers and storage controllers
US20040107283A1 (en) * 2003-10-06 2004-06-03 Trilibis Inc. System and method for the aggregation and matching of personal information
US20060253658A1 (en) * 2005-05-04 2006-11-09 International Business Machines Corporation Provisioning or de-provisioning shared or reusable storage volumes
US20070198398A1 (en) * 2006-01-28 2007-08-23 Gerardo Rios Electronic commerce global relational actualizing bargaining method and apparatus
GB2435114A (en) * 2006-02-08 2007-08-15 Rapid Mobile Media Ltd Providing targeted additional content

Also Published As

Publication number Publication date
US20100191595A1 (en) 2010-07-29
US8312144B2 (en) 2012-11-13
CN101789962A (zh) 2010-07-28

Similar Documents

Publication Publication Date Title
KR20100087632A (ko) 분산된 시스템에서 서비스들을 교환하기 위한 방법, 장치, 및 시스템
US9992077B2 (en) Optimizing allocation of on-demand resources using performance zones
US10241841B2 (en) Controlling virtual machine density and placement distribution in a converged infrastructure resource pool
JP5137709B2 (ja) アプリケーションマイグレーションのための候補データセンタを見つける方法および装置[0001]
US9633054B2 (en) Providing a database as a service in a multi-tenant environment
JP6290462B2 (ja) ネットワーク・アクセス可能なブロック・ストレージのための協調アドミッション制御
Cohen et al. Almost optimal virtual machine placement for traffic intense data centers
Papaioannou et al. The benefits of a disaggregated data centre: A resource allocation approach
US20150341223A1 (en) Automatic placement of clients in a distributed computer system based on at least physical network topology information
US11307802B2 (en) NVMe queue management multi-tier storage systems
US20150172204A1 (en) Dynamically Change Cloud Environment Configurations Based on Moving Workloads
US11669360B2 (en) Seamless virtual standard switch to virtual distributed switch migration for hyper-converged infrastructure
WO2013150490A1 (en) Method and device to optimise placement of virtual machines with use of multiple parameters
EP4029197B1 (en) Utilizing network analytics for service provisioning
US10908940B1 (en) Dynamically managed virtual server system
JP7217580B2 (ja) コンピューティング・クラスタにおけるデータ・アクセス認識によるワークロード管理
US10171309B1 (en) Topology service
US10587529B1 (en) Dynamic selection of router groups to manage computing instances
CN114584515B (zh) 存储区域网络拥塞的端点通知
US10630554B1 (en) Input/output (I/O) performance of hosts through bi-directional bandwidth feedback optimization
US20240022477A1 (en) PLACEMENT OF VIRTUAL COMPUTING INSTANCES (VCIs) BASED ON PHYSICAL NETWORK INTERFACE CONTROLLER (NIC) QUEUE INFORMATION

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application