KR101143201B1 - 웹 서비스를 위한 평판 시스템 및 방법 - Google Patents

웹 서비스를 위한 평판 시스템 및 방법 Download PDF

Info

Publication number
KR101143201B1
KR101143201B1 KR1020117013485A KR20117013485A KR101143201B1 KR 101143201 B1 KR101143201 B1 KR 101143201B1 KR 1020117013485 A KR1020117013485 A KR 1020117013485A KR 20117013485 A KR20117013485 A KR 20117013485A KR 101143201 B1 KR101143201 B1 KR 101143201B1
Authority
KR
South Korea
Prior art keywords
web services
web
data
web service
services
Prior art date
Application number
KR1020117013485A
Other languages
English (en)
Other versions
KR20110069897A (ko
Inventor
저지 무레
그레고리 메레디스
Original Assignee
마이크로소프트 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US10/328,714 external-priority patent/US7467206B2/en
Application filed by 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Publication of KR20110069897A publication Critical patent/KR20110069897A/ko
Application granted granted Critical
Publication of KR101143201B1 publication Critical patent/KR101143201B1/ko

Links

Images

Classifications

    • 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
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques

Abstract

클라이언트와 서버 사이에 관련된 계약적 웹 서비스를 잘 처리하기 위해, 평판 정보에 기초하여 웹 서비스의 선택을 자동화하기 위한 시스템 및 방법이 제공된다. 평판 정보는, 웹 서비스 응답성, 웹 서비스 레이턴시, 웹 서비스 가동시간, 비용 데이터, 사업적 지급 능력, 및 다른 신뢰도 및 사업-관련 데이터와 같은 행동적 속성들로 체계화된다. 일부 평판 데이터는 경험적으로 결정될 수 있으며, 독립적인 또는 다른 신뢰적인 감사기들에 의해 제공될 수 있다. 일 구현에서, 클라이언트는 검색 엔진에 질의하고, 이 검색 엔진은, 감사기에 의해 수집된 것과 같이, 각 웹 서비스에 대해 계산된 평판 점수에 기초해서 정렬된 웹 서비스의 정렬된 리스트를 반환한다. 클라이언트는 수치적 데이터를 제공하여, 속성 각각에 가중치를 부여한다. 공동 인터넷은 웹 서비스에 대한 평판 데이터를 유지하여, 감사기로서 작용할 수 있고, 웹 서비스 서버는 또한 신뢰적 코드를 실행하여, 감사기로서 작용할 수 있다.

Description

웹 서비스를 위한 평판 시스템 및 방법{REPUTATION SYSTEM FOR WEB SERVICES}
본 발명은 일반적으로 컴퓨터 시스템 및 네트워크에 관한 것으로, 보다 구체적으로 웹 서비스에 관한 것이다.
컴퓨터 사용자들 및 애플리케이션들이 조정하거나 액세스할 필요가 있는 다양한 타입의 컴퓨팅 시스템, 리소스 및 데이터가 존재하며, 이는 국부적으로 유지되는 서비스 및 데이터, 회사 네트워크상에서 유지되는 데이터, 및 인트라넷 및 인터넷을 포함하는 기타 원격으로 접근가능한 사이트상에서 유지되는 데이터 등을 포함한다. 웹 서비스의 개념은 일반적으로 컴퓨터 서비스를, 실질적으로 크로스 플랫폼(cross-platform) 프로토콜들 및 표준들을 통해, 클라이언트에게 제공하는 것에 관한 것이다. 예를 들어, 웹 서비스는 분배된 애플리케이션의 노드들을 함께 배선하기 위한 기본 툴을, 요청 클라이언트가 실행하고 있는 플랫폼의 형태에 관계없이 제공한다.
HTTP(하이퍼텍스트 전송 규약;Hypertext Transfer Protocol), XML(eXtensible Markup Language), XML Schema, 및 SOAP(Simple Object Access Protocol) XML을 포함하는, 통상적으로 사용되는 네트워크 정보의 교환을 용이하게 하는 다수의 서로 다른 컴퓨팅 플랫폼, 다양한 플랫폼에 관계없는 메카니즘, 및 프로토콜들이 존재한다. 사업체, 단체, 및 기타 제공자들이 사용자 및 애플리케이션들에 제공하는 웹 서비스의 개념은 현재 이들 표준들에 기초한다.
중요하게, 웹 서비스는 사용자들 및 애플리케이션들이 서비스를 배치하고, 서비스를 실행하기 위해 필요한 정보를 교환할 수 있도록 할 필요가 있다. 이 때문에, UDDI(Universal Description Discovery and Integration)는 정의된 서비스 세트(예를 들어, 세계적 사업 등록)를 제공하고, 이 서비스 세트는, 사용가능한 웹 서비스의 설명 및 이들 서비스에 액세스하는데 필요한 기술적 인터페이스에 따라서, 사용자 및 애플리케이션이 이러한 사업체, 단체, 및 다른 웹 서비스 제공자들을 발견하는 것을 돕는다.
현재, 사용가능한 웹 서비스의 수는 상대적으로 적기 때문에, 개인들은 소비자와 웹 서비스의 제공자 사이에 수동적 접속을 제공하는 경우가 있다. 주문, 타이밍, 및 리소스 사용법을 포함하는, 요청된 인터페이스를 처리하는 속성 리스트에서 상세되는 계약 요구와 같은 소비자의 소정 요구에 맞추어 웹 서비스의 유형을 배치시키기 위한, 다양한 메카니즘이 존재하거나, 개발되고 있다. UDDI-기반의 기술 및 최근 개선 기술들은 웹 서비스의 세밀하게 정의된 자동화된 검색을 가능하게 한다. 그러나, 웹 서비스의 수가 대단히 많아짐으로써, 이러한 검색의 결과는 클라이언트의 기준에 맞는 수백 또는 수천의 웹 서비스를 포함하게 될 수 있다. 클라이언트가, 기준에 맞는 수천개의 작은 서브셋으로부터 웹 서비스를 선택할 수 있는 자동화된 방법이 요구된다.
검색된 웹 서비스를 인기도 순으로 정렬하는 것은, 엄격하게 제어된 네트워크 외부에서 불충분한 모델이 될 수도 있고, 이에 따라 인터넷 상에서 이용가능한 웹 서비스를 정렬시키는 것에 대해 상대적으로 부적합할 수 있다. 먼저, 웹이 지워지지 않는 상태로 남아 있는 단순한 웹 사이트 접근과 달리, 매우 공개적인 링크는 자신의 속성상 웹 서비스를 추적하고, 이러한 추적을 남기지 않는다. 또한, 웹 서비스 사용의 추적을 기록하기 위한 메카니즘이 배치되더라도, 개인 또는 기업의 운영상 실행들이 그 추적을 결정할 수 있어, 프라이버시가 문제될 수 있다. 또한, 특정 웹 서비스의 운영자는, 새로운 소비자를 끌어오기 위해서 자신들의 실제 인기도를 부풀리는 경향이 있으며, 이는, 필연적으로 인기도에 기초한 검색 결과의 리스트에서 이들의 사이트에 높은 순위를 주도록 한다. 검색 엔진 운영자는 또한 검색 결과의 순서를 변경하고, 이는, 이들의 서비스가 소비자의 요구에 가장 적합한 것이 아니더라도, 부풀져진 순위에 대해 대가를 지불하려고 하는 웹 서비스 제공자들에게 결국 더 높은 순위를 파는 것이 된다. 또한, 웹 서비스의 소비자들은 소정 웹 서비스의 인기도에 대해서 다른 사람들을 속이려고 시도할 수도 있고, 이는 자신의 경쟁자들이 더 신뢰할 수 없는 웹 서비스를 사용한다는 것을 조장하면서, 경쟁자에게 비밀로 하여, 자신의 웹 서비스가 계속해서 보다 잘 응답하도록 하기 위한 것이다.
결국, 소비자에게 유익하고, 소비자의 요구를 가장 잘 충족시키는 웹 서비스의 정렬(ranking)을 위한 자동화된 시스템이 요구된다. 인기도-기반의 모델과는 달리, 이 시스템은 사기성 행위들에 대해 충분히 전제가 되어 있어야 하고, 따라서, 실제의 등급 설정이 심하게 조작될 수 없게 된다.
간략하게, 본 발명은 웹 서비스의 선택 또는 평판(reputation) 정보에 기초한 다른 리소스들의 선택을 자동화하기 위한 시스템 및 방법을 제공한다. 평판 정보는, 기술적-지향(또는 기술 관련(technically-oriented)) 및 사업적-지향(또는 사업 관련(business-oriented)) 속성을 포함하는 행동 속성(또는 거동 속성(behavioral attribute))으로 체계화된다. 기술적 결과들은, 웹 서비스 응답성, 웹 서비스 레이턴시, 및 웹 서비스 가동시간(uptime)과 같은 경험적 데이터로서 제3자가 볼 수 있는 서비스-레벨의 동의 아이템들을 포함한다. 사업적-지향의 행동 속성은, 비즈니스 모델, 및 웹 서비스를 제공하는 회사의 신뢰성을 나타내는 것이다. 이러한 속성은, 비용 데이터, 지급 능력 데이터, 이 회사를 감사하는 엔티티의 신원, 회사 및/또는 감사기(auditor)가 비밀 정책, 회사의 비밀 정책을 입증하는 엔티티의 신원을 갖는지를 확인하는 디지털 증명서, 및 다른 참조 사항들을 포함한다.
일 실시예에서, 클라이언트는 검색 엔진에 질의하고, 이 검색 엔진은, 각 웹 서비스에 대해 계산된 평판 점수에 기초한 순위를 갖는, 웹 서비스의 정렬된 리스트를 반환한다. 결국, 감사기는 평판 데이터를 수집하여, 이를 검색 엔진에 제공한다. 검색 엔진은 계약 데이터 및 평판 데이터를 저장하고, 클라이언트는 질의와 함께, 계약 요건 및 평판 요건을 제공한다. 검색 엔진은 계약 데이터를 검색하여, 어느 웹 서비스가 클라이언트의 기본 조작 요건에 맞는지를 결정하고, 이들 계약에 맞는 웹 서비스 중 어느것이 가장 평판이 좋은지를 결정하도록 평판 데이터를 검색한다. 검색 엔진은 랭킹 메카니즘을 사용해서, 감사기에 의해 제공되는 평판 점수에 기초해서 각 웹 서비스에 대한 점수를 계산한다. 계산된 평판 점수는, 예를 들어, 최고로 순위가 매겨진 웹 서비스의 서브셋에 대해서, 감사기 및 웹 서비스 제공자에 의해 검증된다.
각 웹 서비스에 대한 평판 점수는, 다양한 행동 속성에 상응하는 등으로 카테고리화되고, 클라이언트는 수치적 데이터를 제공하여, 속성에 각각 가중치를 부여한다. 클라이언트는 평판 요건이 어떻게 카테고리를 충족시키는지, 예를 들어, 정확하게 충족하는지, 또는 수용가능한 범위내에 있는지를 지정한다. 클라이언트는 각 평판 요건을 지정할 필요가 없으며, 디폴트로서 생략된 카테고리는 랭킹의 요소가 되지 않을 것이다.
또 다른 구현에서, 공동 인터넷은 웹 서비스에 대한 평판 데이터를 보존할 수 있고, 이에 따라 그 자신의 감사기로서 작용할 수 있다. 공동 인터넷 구현은 자신의 인터넷에서 웹 서비스를 선택할 수도 있고, 또는, 일반적으로 상술한, 검색 엔진-기반의 독립적 감사기-기반의 컴퓨팅 환경과 결합하여 작동할 수도 있다. 웹 서비스 서버는 또한 신뢰성 있는 코드를 실행시켜 감사기로서 작용할 수도 있고, 다른 구현들 또는 상술한 구현들에서 작동할 수도 있다.
도면을 참조할 때, 다음의 상세한 설명들로부터 본 발명의 다른 장점들이 나타날 것이다.
소비자에게 유익하고, 소비자의 요구를 가장 잘 충족시키는 웹 서비스의 정렬을 위한 자동화된 시스템이 요구되는데, 본 발명은 웹 서비스의 선택 또는 평판 정보에 기초한 다른 리소스들의 선택을 자동화하기 위한 시스템 및 방법을 제공한다.
도 1은 본 발명과 관련되는 컴퓨터 시스템을 일반적으로 나타내는 블록도이다.
도 2는 본 발명의 일 양상에 따라서, 플랫폼에 관계없는 방법으로 리소스들과 통신하도록 배치된 컴퓨터 시스템을 일반적으로 나타내는 블록도이다.
도 3은 본 발명의 일 양상에 따라서, 평판 데이터에 기초한 리소스의 선택을 일반적으로 나타내는 블록도이다.
도 4는, 본 발명의 일 양상에 따라서, 평판 데이터에 기초해서 웹 서비스를 자동적으로 배치하기 위한 분산 시스템 성분들을 일반적으로 나타내는 블록도이다.
도 5는 본 발명의 일 양상에 따라서, 평판 데이터에 기초해서 웹 서비스를 자동적으로 배치하는 타이밍 시나리오를 일반적으로 나타내는 블록도이다.
도 6은 본 발명의 일 양상에 따라서, 평판 데이터를 자동적으로 수집하기 위한 성분들을 갖는 공동 인트라넷을 포함하는, 웹 서비스 환경을 일반적으로 나타내는 블록도이다.
도 7은 본 발명의 일 양상에 따라서, 요청 클라이언트에게 평판 데이터를 제공하는 웹 서비스 서버를 일반적으로 나타내는 블록도이다.
예시적 동작 환경
도 1은, 본 발명이 구현될 수 있는 적당한 컴퓨팅 시스템 환경의 일례를 도시한다. 컴퓨팅 시스템 환경은 적당한 컴퓨팅 환경의 일례일 뿐이며, 본 발명의 사용 또는 기능 범위를 한정하려는 것은 아니다. 컴퓨팅 환경은 예시적인 동작 환경에 도시된 성분들 중의 어느 하나 또는 성분들의 조합과 관련하여 어떠한 의존성이나 요구 사항을 갖는 것으로 해석되어서는 안된다.
본 발명은 다수의 다른 범용 또는 특수 목적의 컴퓨팅 시스템 환경 또는 구성으로도 동작할 수 있다. 본 발명에 사용하기에 적당할 수 있는 널리-공지된 컴퓨팅 시스템, 환경, 및/또는 구성의 예로는 개인용 컴퓨터, 서버 컴퓨터, 핸드-헬드 또는 랩탑 장치, 타블릿(tablet) 장치, 멀티프로세서 시스템, 마이크로프로세서-기반 시스템, 셋톱 박스, 프로그램 가능한 상용 전자제품, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 상기 시스템 또는 장치들 중 하나를 포함하는 분산 컴퓨팅 환경 등을 들 수 있지만, 이에 한정되는 것은 아니다.
본 발명은 컴퓨터에 의해 실행되는, 프로그램 모듈과 같은, 컴퓨터-실행가능 명령어들의 일반적인 문맥으로 설명될 수 있다. 일반적으로, 프로그램 모듈은 특정한 태스크를 수행하거나 특정한 추상적 데이터형을 구현하는 루틴, 프로그램, 오브젝트, 성분, 데이터 구조 등을 포함한다. 본 발명은 또한, 통신 네트워크를 통해 링크되어 있는 원격 처리 장치들에 의해 태스크가 수행되는 분산 컴퓨팅 환경에서 실시될 수 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈들은 메모리 저장 장치들을 포함하는 로컬 및 원격 컴퓨터 저장 매체 모두에 배치될 수 있다.
도 1을 참조하면, 본 발명을 구현하기 위한 예시적 시스템은 컴퓨터(20) 형태의 범용 컴퓨팅 장치를 포함한다. 컴퓨터(20)의 성분으로는 처리 유닛(21), 시스템 메모리(22), 및 시스템 메모리를 포함하는 다양한 시스템 성분들을 처리 유닛(21)에 결합시키는 시스템 버스(23)를 들 수 있지만, 이에 한정되는 것은 아니다. 시스템 버스(23)는, 메모리 버스 또는 메모리 컨트롤러, 주변 장치 버스 및 다양한 버스 아키텍처들 중 하나를 사용하는 로컬 버스를 포함하는 몇가지 타입의 버스 구조들 중 하나일 수 있다. 한정이 아닌 일례로써, 이러한 아키텍처로는 ISA(Industry Standard Architecture) 버스, MCA(Micro Channel Architecture) 버스, EISA(Enhanced ISA) 버스, VESA(Video Electronics Standards Association) 로컬 버스, 및 Mezzanine 버스라고도 하는 PCI(Peripheral Component Interconnects) 버스를 들 수 있다.
컴퓨터(20)는 통상적으로 다양한 컴퓨터 판독가능 매체를 포함한다. 컴퓨터 판독가능 매체는 컴퓨터(20)에 의해 액세스될 수 있는 이용가능한 임의의 매체일 수 있으며, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체 모두를 포함한다. 한정이 아닌 일례로써, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 구비할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 다른 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, DVD 또는 다른 광학 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 다른 자기 저장 장치, 또는 소정 정보를 저장하는데 사용될 수 있으며 컴퓨터(20)에 의해 액세스될 수 있는 임의의 다른 매체를 포함하지만, 이것으로 한정되는 것은 아니다. 통신 매체는 통상적으로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 반송파와 같은 변조 데이터 신호나 다른 전송 방식에서의 다른 데이터를 구현하며 임의의 정보 전달 매체를 포함한다. "변조 데이터 신호"라는 용어는, 하나 이상의 특징들의 세트를 가지며, 정보를 신호로 인코딩하는 방식으로 변경된 신호를 의미한다. 한정이 아닌 일례로써, 통신 매체는 유선 네트워크 또는 직접-유선 접속과 같은 유선 매체, 및 음향, RF, 적외선 및 다른 무선 매체와 같은 무선 매체를 포함한다. 상기한 것들의 임의 조합들 또한 컴퓨터 판독가능 매체의 범위내에 포함되어야 한다.
시스템 메모리(22)는 ROM(24) 및 RAM(25)과 같은 휘발성 및/또는 비휘발성 메모리 형태의 컴퓨터 저장 매체를 포함한다. 스타트-업(start-up) 동안과 같은 때에, 컴퓨터(20)내의 요소들 사이에서 정보 전달을 돕는 기본적 루틴을 포함하는 BIOS(basic input/output system;26)는 ROM(24)에 저장된다. RAM(25)은 통상적으로, 처리 유닛(21)으로 즉시 액세스될 수 있거나 및/또는 처리 유닛(21)에 의해 현재 연산되고 있는 데이터 및/또는 프로그램 모듈을 포함한다. 한정이 아닌 일례로써, 도 1은 오퍼레이팅 시스템(35), 애플리케이션 프로그램들(37), 다른 프로그램 모듈들(38), 및 프로그램 데이터(39)를 도시한다.
컴퓨터(20)는 다른 분리형/비분리형, 휘발성/비휘발성 컴퓨터 저장 매체도 포함할 수 있다. 단지 일례로써, 도 1은 비분리형, 비휘발성 자기 매체로부터 판독하고 그에 기입하는 하드 디스크 드라이브(27), 분리형, 비휘발성 자기 디스크(29)로부터 판독하고 그에 기입하는 자기 디스크 드라이브(28), 및 CD-ROM 또는 다른 광학 매체와 같은, 분리형, 비휘발성 광학 디스크(31)로부터 판독하고 그에 기입하는 광학 디스크 드라이브(30)를 도시한다. 예시적 동작 환경에 사용될 수 있는 다른 분리형/비분리형, 휘발성/비휘발성 컴퓨터 저장 매체로는 자기 테이프 카세트, 플래시 메모리 카드, DVD, 디지털 비디오 테이프, 반도체 RAM, 반도체 ROM 등을 들 수 있지만, 이에 한정되는 것은 아니다. 하드 디스크 드라이브(27)는 통상적으로 인터페이스(32)와 같은 비휘발성 메모리 인터페이스를 통해 시스템 버스(23)에 접속되고, 자기 디스크 드라이브(28) 및 광학 디스크 드라이브(30)는 통상적으로 인터페이스(33) 또는 인터페이스(34)와 같은 분리형 메모리 인터페이스에 의해 시스템 버스(23)에 접속된다.
상술되고 도 1에 도시된 드라이브들 및 그들과 관련된 컴퓨터 저장 매체는 컴퓨터(20)에 컴퓨터-실행가능 명령어들, 데이터 구조들, 프로그램 모듈들 및 다른 데이터를 저장한다. 도 1에는, 예를 들어, 하드 디스크 드라이브(27)가 오퍼레이팅 시스템(35), 애플리케이션 프로그램들(37), 다른 프로그램 모듈들(38), 및 프로그램 데이터(39)를 저장하는 것으로 도시되어 있다. 이들 성분들은 오퍼레이팅 시스템(35), 애플리케이션 프로그램들(37), 다른 프로그램 모듈들(38), 및 프로그램 데이터(39)와 동일하거나 상이할 수 있다. 여기에서는, 최소한, 이들이 상이한 복사본임을 지시하기 위해, 오퍼레이팅 시스템(35), 애플리케이션 프로그램들(37), 다른 프로그램 모듈들(38), 및 프로그램 데이터(39)에 상이한 번호가 부여되어 있다. 사용자는 타블릿, 또는 전자 디지털화 장치, 마이크로폰, 키보드(40) 및, 보통 마우스, 트랙볼 또는 터치패드라고 하는, 포인팅 장치(42)와 같은 입력 장치를 통해 명령 및 정보를 컴퓨터(20)에 입력할 수 있다. 도 1에 나타내지 않은 다른 입력 장치로는, 조이스틱, 게임 패드, 위성 안테나, 스캐너 등을 포함할 수 있다. 이들 및 다른 입력 장치들은 대개, 시스템 버스에 결합되어 있는 사용자 입력 인터페이스를 통해 처리 유닛(21)에 접속되지만, 예를 들어, 병렬 포트, 게임 포트 또는 USB(universal serial bus)와 같은 다른 인터페이스 및 버스 구조에 의해 접속될 수도 있다. 모니터(47) 또는 다른 타입의 디스플레이 장치 또한, 비디오 인터페이스(48)와 같은 인터페이스를 통해 시스템 버스(23)에 접속되어 있다. 모니터(47)는 터치 스크린 패널등과 결합될 수 있다. 모니터 및/또는 터치 스크린 패널은, 타블릿-형 개인용 컴퓨터와 같은, 컴퓨팅 장치(20)가 결합된 하우징과 물리적으로 접속될 수 있다. 또한, 컴퓨터는 출력 주변 장치 인터페이스 등을 통해 접속될 수 있는, 스피커 및 프린터와 같은, 다른 주변 출력 장치들도 포함할 수 있다.
컴퓨터(20)는, 원격 컴퓨터(49)와 같은, 하나 이상의 원격 컴퓨터들로의 논리적 접속을 사용하는 네트워크 환경에서 동작할 수 있다. 원격 컴퓨터(49)는 개인용 컴퓨터, 서버, 라우터, 네트워크 PC, 피어 장치 또는 다른 보통의 네트워크 노드일 수 있으며, 통상적으로 컴퓨터(20)와 관련하여 상술한 요소들 중 많은 것을 또는 그 전부를 포함하지만, 메모리 저장 장치(50)만이 도 1에 도시되어 있다. 도 1에 도시된 논리적 접속은 LAN(local area network;51) 및 WAN(wide area network;52)을 포함하지만, 다른 네트워크들을 포함할 수도 있다. 이러한 네트워킹 환경은 사무실, 기업-범위의 컴퓨터 네트워크, 인트라넷 및 인터넷에서 흔히 볼 수 있다. 예를 들어, 본 발명에서, 컴퓨터 시스템(20)은 데이터가 이동하는 소스 기기를 포함하고, 원격 컴퓨터(49)는 목적지 기기를 포함한다. 그러나, 소스 및 목적지 기기는 네트워크 또는 임의의 다른 수단들에 의해 접속될 필요가 없지만, 대신에, 데이터가, 소스 플랫폼에 의해 기입되고, 목적지 플랫폼(들)에 의해 판독될 수 있는 소정의 매체를 통해서 이동되어야 한다.
LAN 네트워킹 환경에서 사용될 경우, 컴퓨터(20)는 네트워크 인터페이스 또는 어댑터(53)를 통해 LAN(51)에 접속된다. WAN 네트워킹 환경에서 사용될 경우, 컴퓨터(20)는 통상적으로, 인터넷과 같은, WAN(52)에 대해 통신을 설정하기 위한 모뎀(54) 또는 다른 수단을 포함한다. 내장형이거나 외장형일 수 있는 모뎀(54)은 사용자 입력 인터페이스 또는 다른 적절한 메커니즘을 통해 시스템 버스(23)에 접속될 수 있다. 네트워크 환경에서, 컴퓨터(20)와 관련하여 도시된 프로그램 모듈들 또는 그 일부는 원격 메모리 저장 장치에 저장될 수 있다. 한정이 아닌 일례로써, 도 1은 원격 애플리케이션 프로그램들(37')을 메모리 장치(50)에 상주하는 것으로 도시하고 있다. 나타낸 네트워크 접속은 예시적인 것이며, 컴퓨터들간에 통신 링크를 확립하는 다른 수단이 사용될 수도 있다는 것이 이해된다.
웹 서비스에 대한 평판
본 발명은, 부분적으로, 클라이언트 소비자가, 서버 제공자에게 클라이언트를 위한 소정 서비스를 수행하도록 요청하고, 클라이언트에게 적절한 응답을 제공하도록 하는, 웹 서비스의 배치에 관한 것이다. 이 요청 및 응답은 하나 이상의 플랫폼에 관계없는 프로토콜을 통해 이루어지고, 이를 통해 실질적으로 소정 클라이언트가 자신의 각 플랫폼에 관계없이 실질적으로 임의의 서버와 통신할 수 있게 된다.
그러나, 플랫폼에 관계없는 프로토콜에 기초한 일반적인 웹 서비스 모델은 클라이언트를 위해 소프트웨어를 실행하는 서버로서 제한되는 것은 아니고, 클라이언트가 접근하기를 원하는 임의이 리소스에 적용될 수 있다는 것이 이해될 것이다. 예를 들어, 가까운 미래에, 하드웨어는 어느 정도 집적화될 것이고, 다양한 방법으로 소프트웨어-지향의 웹 서비스와 실질적으로 구별되지 않게 될 것이며, 여기에서 사용자는 하드웨어 성분들의 세트를 선택하여, 이들을 플랫폼에 관계없는 통신 프로토콜을 통해서 상호연결시켜서 컴퓨팅 업무를 수행할 수 있다. 예를 들어, 사용자는 포켓 사이즈의 개인용 컴퓨터를 사용해서, 물리적으로 분리된 저장 장치와 (증폭기와 결합된) 스피커 세트를 동적으로 접속시키고, 저장 장치의 음악을 복구하여, 음악을 재생시키도록 음악을 스피커에 보내지는 적절한 신호로 변환할 수 있다. 각 장치가 통신 프로토콜에 따르는 한, (그리고, 적절한 양의 대역폭이 사용가능하다면), 실질적으로 임의의 인증된 장치는 다른 장치와 데이터 통신하여, 자신의 리소스를 사용할 수 있다. 도 2는 (예를 들어, 도 1의 컴퓨터 시스템(20)일 수 있는) 클라이언트 컴퓨터 시스템(202)을 나타내고, 이는 플랫폼에 관계없는 프로토콜, 예를 들어, XML-포맷화된 메시지(208) 등을 통해서 선택된 외부 리소스(206)와 통신하는 오퍼레이팅 시스템(204)을 포함한다.
또한, 하드웨어 및 소프트웨어 성분들은 통상적으로, 모니터, 마우스, 키보드, 디스크 드라이브, 및/또는 하드웨어 장치와 소프트웨어를 인터페이싱하기 위한 종래의 장치 드라이버를 갖는 실질적인 임의의 장치 등의 단일 컴퓨터 시스템의 일부로서 고려되고, 이는 유사한 방식으로 플랫폼에 관계없는 프로토콜을 통해 데이터 통신할 수 있는 것으로 기대된다. 따라서, 예를 들어, 도 2에서 일반적으로 도시된 바와 같이, 하드 디스크 드라이브 제조자는 각 컴퓨팅 플랫폼에 대해서 서로 다른 장치 드라이버가 필요하지 않고, 대신에, 적절한 플랫폼에 관계없는 프로토콜 (예를 들어, XML-포맷된 메시지(212))을 사용하는 주어진 하드 디스크(212)에 대해 단일의 장치 드라이버(210)를 기입할 수 있다. 유사하게, 애플리케이션 프로그램(220)은 플랫폼의 기능 호출을 인식해서 프로그램될 필요는 없고, 대신에 플랫폼에 관계없는 메시지(222)를 오퍼레이팅 시스템(204)으로 보내도록 기입될 수 있으며, 이에 따라, 임의의 플랫폼에 응할 수 있다.
따라서, 본 발명의 일 양상이 주로 종래에 웹 서비스로 고려되는 것들을 참조하여 설명되었지만, 본 발명은 일반적으로 임의의 리소스를 배치시키는 것에 관한 것이고, 이는 소프트웨어-기반의 웹 서비스, 원격 장치, 또는 클라이언트가 사용하기를 원하는 내부 소프트웨어 또는 하드웨어가 될 수 있다. 이와 같이, "리소스" 및 "웹 서비스"라는 용어는 본 명세서에서 사용되는 것과 동일하며, 예를 들어, 외부 하드웨어 장치 및 소프트웨어, 및 내부 소프트웨어 또는 하드웨어 성분이 또한 웹 서비스로 고려될 수 있다.
도 3에서 일반적으로 나타낸 바와 같이, 본 발명의 일 양상은, 리소스 평판에 기초해서, (클라이언트의 요구에 맞는 복수의 사용가능 리스소들로부터) 리소스를 선택하는 것에 관한 것이다. 결국, 선택 메카니즘(302)은 리스트(304) (또는, 다른 적절하게 배치된 데이터)로부터 리소스를 선택하고, 이 리스트를 평판 데이터(208)에 기초해서 선택된 리소스(306)로 범위를 좁히는 것이다. 이 리스트는, 컴퓨터 요청 선택에 대해 내부 또는 외부에 있는 리스팅 메카니즘(310)에 의해 유지될 수 있고, 평판 데이터는 내부 또는 외부 감사기(312)에 의해 제공된다. 선택 메카니즘(302)을 포함하여, 도 3의 일부 또는 전체 성분은 도 2의 컴퓨터 시스템(202)에서 실행될 수 있고, 이 컴퓨터 시스템에 대해 외부에서 실행되거나, 내부 또는 외부 성분들로 분배될 수 있으며, 선택된 리소스(306)는, 예를 들어, 디스크 드라이버/디스크(210, 212), 외부 하드웨어 또는 소프트웨어 리소스(206), 애플리케이션(200), 또는 다른 리소스와 같은 도 2에 도시된 리소스들 중 하나일 수 있다는 것을 주지한다. 예를 들어, 다음에서 설명되는 바와 같이, 웹 서비스의 세트의 일부는, 검색 엔진의 선택 메카니즘 성분에 의해서 웹 서비스의 서브셋으로 범위가 좁혀질 것이고, 이 서브셋은 클라이언트의 선택 메카니즘에 의해 하나의 웹 서비스로 좁혀진다.
평판 데이터(308)는 본래, 기타 적합한 리소스(웹 서비스)가, 클라이언트가 수행하기를 원하는 주어진 컴퓨팅 업무에 대해서 얼마나 훌륭한 지 및/또는 적절한 지를 설정한다. 본 발명은 계약의 개념을 보완하고, 이는 웹 서비스의 유형에 대해서 클라이언트의 기본적 동작 요건에 맞는 (가능한 많은) 웹 서비스의 세트를 찾는 것에 기초하고, 즉, 계약은 웹 서비스가 클라이언트에 맞게 동작할 지를 결정한다. 이러한 요건들은 호출에 대한 인터페이스, 타이밍 관계, 및 종료시 리소스를 개방하기 위한 상세를 포함한다. 계약은 일반적으로, 본 발명의 양수인에게 양도되고, 본 명세서에서 참조적으로 결합되는 미국 특허 출원 일련 번호 제10/262,551에 개시되어 있다.
본 발명의 일 양상에 따르면, 다음에 설명되는 바와 같이, 웹 서비스의 계약 신청에 따른 클라이언트의 계약 요건을 만족시켜서 결정되는 세트로부터, 클라이언트는 궁극적으로, 평판 데이터에 기초하여 사용될 하나의 웹 서비스를 선택한다. 다시 말하면, 매우 자세하게 상세된 계약은, 웹 서비스 제공자의 총체적인 검색을 가능하는 하는 특정 웹 서비스 인터페이스 한정과 매칭된다. 통상적으로, 검색 결과가 특정 계약 요건에 맞는 하나 이상의 이러한 리소스를 포함할 때, 클라이언트는 검색 결과로부터 하나를 선택할 필요가 있다. 본 발명은 평판 데이터를 통해서 검색 결과를 필터링 및/또는 정렬함으로써 리소스를 선택하기 위한 방법 및 시스템을 제공한다.
결국, 평판 데이터는 체계화되고, 경험적으로 결정되며, 기술적-지향의 행동 속성 및 사업적-지향의 행동 속성을 모두 포함하는 행동 속성을 포함할 수 있다. 예를 들어, 기술적 결과는, 제3자에 의해 경험적 데이터로서 관찰될 수 있는 서비스-레벨의 동의 아이템을 포함할 수 있고, 이는, 웹 서비스가 특정 포트로부터 얼마나 자주 판독되는 지에 따라 설정되는 응답성, 특정 동작의 결과에 대해서 상한(not-to-exceed) 레이턴시를 보장함으로써 설정되는 레이턴시, 및 사용에 대해서 사용가능한(사용불가능한) 것으로 관찰되는 사이트 또는 장치를 얼마나 자주 포함하는지, 하루 중 어느 시간에 포함하는 지를 지정하는 가동시간을 포함한다.
사업적-지향의 행동 속성의 예로서, 요청 클라이언트가 비지니스 모델, 및 웹 서비스를 제공하는 회사의 신뢰성을 확인하기 위해 사용할 수 있는 메트릭(metric)을 포함하는 것이 있다. 이러한 속성은, 웹 서비스를 사용하기 위해 금전적 비용이 드는지, 무료로 제공되는지(예를 들어, 구매 주문을 하기 위해 제공되는 웹 서비스와 같이 일부 다른 비지니스 지원에서) 여부를 포함한다. 만약 있다면, 비용은 서비스되는 거래의 포트당 비용으로서 인코딩될 것이다. 다른 사업적 지향의 정보는, 재정 및 신뢰도-유형의 데이터, 예를 들어, 희망하는 웹 서비스를 제공하는 회사가 얼마나 지급능력이 있는지를 나타내는 일부 지표, 회사 및/또는 감사기가 갖는 디지털 증명서, 회사가 갖는 프라이버시 정책들, 및 예를 들어, 회사의 프라이버시 정책 증명서를 누가 감사했는지를 결정하기 위해 정책을 증명하는 엔티티의 식별을 포함한다.
이러한 데이터들로, 본 발명은 평판 정보에 기초해서 웹 서비스의 선택을 자동화하는 시스템 및 방법을 제공한다. 보다 구체적으로, 다음에서 기술되는 바와 같이 일 구현에서는, 웹 서비스를 요청하는 소비자가 평판 점수를 사용하여, 우선 소비자의 계약 요건에 맞추어 얻어지는 검색 결과의 리스트를 필터링 및/또는 정렬할 수 있다. 정렬시에, 각 행동 속성 카테고리에 대한 다양한 점수들에 서로 다른 가중치들이 주어질 수 있다. 예를 들어, 특정 요청 소비자가 비용에 대해 가장 관심을 갖는다면, 소비자는 다른 카테고리보다 비용 카테고리에 보다 큰 가중치를 줄 것이고, 이에 따라, 낮은 레이턴시에 보다 관심있는 다른 소비자들과는 다르게 정렬된 검색 결과를 얻을 것이다. 다음에서 기술되는 바와 같이, 필터링 및/또는 정렬은 실제로 클라이언트에 의해 수행될 필요가 없고, 대신에, 클라이언트 측의 서버에 의해 수행될 수 있다.
도 4는 본 발명의 일 양상에 따라서 배열된 분산 평판 시스템을 나타낸다. 도 4에서, 웹 클라이언트 코드(402)는, 질의(404)에서의 웹 서비스 평판 요건들 및 특정 웹 서비스 계약을, 예를 들어, UDDI 검색 엔진과 같은 웹 서비스 검색 엔진(406)으로 보낸다. 이에 따라, 일 예시적 구현에서는, xSpresso라고 불리는 다양한 질의 언어가 클라이언트 코드(402)에 대한 메카니즘을 제공하여, 예를 들어, 검색 엔진(406)과 같은 UDDI 검색 서비스에 의해 매칭 및 분류되기 위해서 특정 계약 및 평판 질의 어구로 보내진다. 또한, xSpresso 질의는 평판 카테고리에 대해 다른 가중치가 특정되도록 할 수 있다. 일반적으로, xSpresso(본 명세서에서 참조적으로 결합되는, 2002년 5월 10일에 출원된 미국 가특허 출원 일련 번호 60/379,864 및 2002년 11월 22일에 출원된 특허 출원 일련 번호[아직 번호 사용불가]에 기술됨)는 브로커가 제어하는 프로그래밍 언어 및 런타임, 및 동기성 시스템 성분들 사이를 지나가는 데이터에 관한 것이다. 그 중에서, xSpresso는, 프로그램적으로 입증될 수 있는 주문, 타이밍을 포함하는 프로그램 또는 서비스의 공통 차원들을 나타낸다. 언어는 XML과 같이 주문할 수 있는 태그(tag)-기반의 언어로부터 형성된 조직적 기법의 전달을 프로그램적으로 나타낼 수 있다.
다음의 xSpresso 코드 예에서, 질의는 UDDI 서버(예를 들어, 검색 엔진(406))로 전달되어, FindService 질의에 의해 반환된 검색 주문을 요청한다. 이 예에서, 질의는 특정 계약 상세가 평판 데이터에 따라 매칭되는 지에 대해 특히 관심을 갖는다. 평판 데이터는, 99.995%의 최소 가동시간 요건을 갖는 웹 서비스 제공자, 거래의 포트당 비용이 $0.0005을 초과하지 않는 비용, 및 WXYZ 재정 검토 회사에 의해 검토된 회사를 지정한다.
Figure 112011044213617-pat00001
다음은, 예를 들어, 와이어를 통해 실제로 송신되는 질의, 및 UDDI 서버에서 질의 형태로 돌아가는 정렬되지 않은 질의와 같은, 와이어를 통해 전송하기 위해 xSpresso로부터 XML로 상기 질의를 편집한 원(raw) XML 결과를 나타낸다. 이들 결과는 FindService 질의와 결합되는 <clause> 문구만을 포함한다.
Figure 112011044213617-pat00002
Figure 112011044213617-pat00003
도 4를 다시 참조하면, 웹 서비스 검색 엔진(406)은, 웹 서비스 계약 신청들(4101-410n)을 제공하는 다수의 웹 서비스 서버들(4081-408n)에 대한 계약 데이터 및 평판 데이터에 액세스하고, 질의가 있을 때, 클라이언트의 계약 요건에 맞는 서버를 찾기 위해 계약 데이터를 크롤링(crawling)한다. 계약 데이터와, 가능하다면 서버의 평판 데이터의 일부 또는 전부가 백그라운드 로딩되어, 웹 서비스 검색 엔진(406)에 저장되는 것이 바람직하고, 이에 따라, 질의는 웹 서비스 및 평판이 저장된 뷰로부터 신속하게 처리될 수 있다.
본 발명의 일 양상에 따르면, 웹 서비스 검색 엔진(406)은 또한, 클라이언트의 평판 요건에 맞는 서버를 찾기 위해 저장된 평판 데이터를 크롤링한다. 계약 및/또는 평판에 대한 검색이 완료한 후에도 매칭하는 것이 없는 경우, 웹 서비스 검색 엔진(406)은 메시지를, 예를 들어, 결과를 얻었는지, 클라이언트(402)가 자신의 요구 조건을 확대할 필요가 있는 지를 나타내는 클라이언트 코드(402)로 반환할 수 있다.
상술한 바와 같이, 평판은 다양한 요소들에 기초할 수 있고, 평판 데이터는 다양한 소스들로부터 얻어질 수 있다. 예를 들어, 웹 서비스 서버들(4081-408n)은 데이터(4121-412n)를 감사기(414)에 제공함으로써 자신의 평판을 공개할 수 있다. 클라이언트(402)는 또한 실제로 관찰된 반응성을 포함하는 평판 데이터(416)를 감사기(414)에 제공할 수 있다. 다른 클라이언트와 같은 다른 무리들, 독립적 평가 서비스(평자가 및 검토자들), 및 다른 관심 엔티티들이 또한 평판 데이터(418)를 감사기(414)에 제공할 수 있다. 감사기는 다양한 소스들로부터의 평판 데이터를 상관시키고, 상관된 데이터(420)를 웹 서비스 검색 엔진(406)에 제공하고, 검색 엔진(406)은, 클라이언트의 평판 요건과 매칭하기 위해 필요한 경우 이 데이터를 크롤링하기 위해 저장한다.
예를 들어, 웹 서비스는 자신의 보증서를 공개할 수 있으며, 이는, 예를 들어, 이미 사업을 평가하고, 신용 점수를 제공하며, 디지털 신뢰 서비스 서명을 제공하고, 및/또는 제품을 검토한 회사와 같은, 소정 수의 서로 다른 독립적 서비스 감사자에 의해 크롤링되고 저장될 수 있다. 감사기는 또한 서비스의 공개된 기술적 결과들과, 수천, 수백만의 서비스 소비자에 의해 관찰된 실제의 기술적 결과들을 비교할 수 있다. 독립성을 가지며, 신뢰되는 감사기는 또한, 데이터를 제공하는 회사들 또는 개인들에게 익명성을 제공하는 것이 보다 유익하다.
평판 데이터의 각 소스들은 자신의 평판을 보유하며, 이 평판은, 감사기에 제공된 각 소스의 평판 데이터의 값으로 분배된다. 예를 들어, 신뢰되고 독립적인 제3의 검토자로부터 얻어진 것으로 평가된 점수로부터의 평판 값의 단일 세트는 의심스러운 소스로부터 얻어진 수천개의 점수보다 높은 가중치를 얻는다. 다수의 경쟁적이고 독립적인 감사기들은 이 감사기가 신뢰될 수 있도록 압력을 넣고, 실제로, 웹 서비스의 소비자들 및 검색 엔진 제공자들은, 어느 감사기가 소비자에게 최고로 적합한지를 결정하기 위해, 그 자신의 경험에 기초하여 다양한 감사기에 대한 평판 점수를 채용할 수 있다.
도 4를 참조하면, 계약 및 평판 검색이 완료되면, (일시적으로) 정렬된 리스트(422)가 웹 서비스 검색 엔진(406)에서 구성되고, 이에 따라, 통상 웹 서비스 서버의 관리하기 쉬운 서브셋이 제공된다. 각 카테고리에 대해 제공된 클라이언트 가중치에 의해 승산되는, 가산기에 의해 반환된 카테고리당 평판 점수의 곱을 가산하는 간단한 방법을 포함해서, 실질적으로 임의의 랭킹 알고리즘(424)이 사용될 수 있다는 것이 이해될 것이다 (예를 들어, 응답성은 일 평판 카테고리 점수가 될 수 있고, 가동시간이나 비용 등도 다른 카테고리 점수가 될 수 있다):
서비스의 점수 =
(카테고리1 점수 * 카테고리1에 대한 클라이언트 가중치) +
(카테고리2 점수 * 카테고리2에 대한 클라이언트 가중치) + ...
(카테고리X 점수 * 카테고리X에 대한 클라이언트 가중치).
웹 서비스 검색 엔진(406)이 정렬된 리스트(422)를 일단 구축하면, 웹 서비스 검색 엔진(406)은 이 리스트를 더 처리하기 위한 다수의 업무를 수행하고, 이는 최상위로 정렬된 웹 서비스 서버와 통신하여, 이 서버가 요청된 서비스를 제공하도록 여전히 사용가능한지를 확인하고, 및/또는 감사기와 통신하여, 각각의 최상위로 정렬된 웹 서비스 서버의 평판 데이터가 여전히 맞는지를 확인한다. 예를 들어, 웹 서비스는 그 서버의 현재 로드에 기초해서, 즉, 서버가 너무 바쁘지 않은 경우에는, 서비스가 높게 평가되지만, 바쁜 경우에는 서비스가 낮게 평가되는 식으로, 그 평판을 변동시킨다. 로드는 신속하게 변할 수 있기 때문에, 감사기는 거의 실시간으로 접속하여, 최상위로 정렬된 후보들에 대해서 보다 최근의 평판 데이터를 얻을 수 있으며, 필요한 경우, 리스트상의 최상위로 정렬된 웹 서비스의 일부 또는 전부를 재조정하여, 부가하고, 제거하고, 정리 등을 행한다.
마지막으로, 적어도 하나의 웹 서비스 서버가 계약 및 평판 요건을 충족시키면, 그 다음, 웹 서비스 검색 엔진(406)은, 특정 웹 서비스를 구현하는 제공자(예를 들어, 서비스에 대한 링크 등)의 정렬된 리스트(426)를 질의(404)에 응답하여 클라이언트(402)로 반환한다. 검색 엔진(406)은 최상위로 정렬된 제공자만을 반환하겠지만, 클라이언트는 여러개의 최상위로 정렬된 제공자들의 리스트로부터 하나를 선택하는 것을 선호할 수도 있다. 예를 들어, 클라이언트는, 클라이언트 자신의 경험 또는 선호, 예를 들어, 특정 서버의 웹 서비스는 그 랭킹에 관계없이 절대 사용하지 않는다던가, 랭킹에 관계없이 다른 것보다 선호하는 것 등과 같은, 평판 기법에서 필수적이지 않은 다른 기준을 가질 수 있다.
일반적으로, 웹 서비스 검색 엔진(406)은 정렬된 리스트(426)에서 클라이언트(402)로 반환된 데이터의 양(리스트의 사이즈)을 필터링하도록 크롤링을 수행한다. 그러나, 적어도 일부의 필터링은, 리스트로부터 선택되는 것을 떠나서, 클라이언트(402)에 의해 수행될 수 있다. 예를 들어, (익명성은 항상 문제가 되는 것은 아니라고 가정할 때) 웹 서비스 검색 엔진(406)은, 예를 들어, 응답성, 레이턴시, 가동시간, 비용, 재정, 감사, 프라이버시, 및/또는 레퍼런스와 같은, 점수를 설정하는 데 사용되는 가능한 요소들의 일부와 상응하는 점수 세트를 각 제공자에 대해 제공한다. 이러한 개별 점수는, 예를 들어, 분류된 리스트(422)가 다수의 매우 근접하게 정렬된 서버들을 포함하거나, 및/또는 클라이언트가, 자신의 일부 후-결과 필터링을 행하기를 원하는 대신, 클라이언트의 기호에 대해 충분히 한정된 질의를 제공할 수 없는 경우에, 클라이언트가 최종 선택을 하는데 있어서 유용하다.
도 5는 도 4에서 도시된 것과 유사한 구현이 어떻게 동작하는 지에 대한 일반적인 타이밍을 도시한다. 일반적으로, 클라이언트(502)는, 도 5에서 화살표 (1)로 나타낸 바와 같이, 웹 서비스 제공자의 정렬된 리스트를 요청하는 웹 서비스 질의를 웹 서비스 검색 엔진(506)에 송신하는 것으로 처리를 시작한다. 다음에서 설명되는 바와 같이, 질의는 계약 및 평판 요건을 포함한다.
또한, 상술한 바와 같이, 웹 서비스 검색 엔진(506)은, 도 5에서 화살표 (2)로 나타낸 바와 같이, 저장된 데이터(530)를 크롤링하여, 계약 요건 및 평판 요건과 제공자를 매칭시킨다. 이는 일반적으로, 예를 들어, 최상위로 정렬된 제공자가 수천가지 중의 수백개가 되는 대신에 10개가 되는 것과 같이, 랭킹 및 입증될 수 있는 서브셋이 보다 조정하기 쉽게 되도록 한다. 최상위로 정렬된 제공자의 이러한 서브셋은 클라이언트(502)에게 반환될 리스트보다 다소 크게 될 수 있으며, 이는 연속적인 증명 처리가 랭킹 순서를 변경하는 경우에, 예를 들어, 클라이언트가 10개의 최상위로 정렬된 제공자의 리스트를 원한다면, 서브셋은 20개 정도가 되어, 추가의 처리를 통해 최상위의 10개가 된다.
정렬된 리스트에서 각각의 최상위로 정렬된 제공자에 대해서, 웹 서비스 검색 엔진(506)은, (예를 들어, 캐시내의 타임스탬프에 기초해서) 제공자의 상응하는 서버(예를 들어, 5081)와 통신하는 것을 선택하여, 이 서버에 참조 또는 확인 등을 요청할 수 있고, 일반적으로, 적어도 서버의 예상으로부터 서버(5081-508r)가 동작가능하고, 요청된 서비스에 대해서 여전히 수행되는 지를 확인한다. 이들 통신은 일반적으로 도 5에서 화살표 (3) 및 (4)로 나타낸다.
웹 서비스 검색 엔진(506)은 또한 (예를 들어, 캐시내의 타임스탬프에 기초해서) 감사기(514)와 통신하는 것을 선택하여, 감사기의 예상으로부터 각 제공자의 공개된 데이터가 감사기의 현재 데이터와 상응하는 지를 확인하며, 이 현재 데이터는, 예를 들어, 다른 클라이언트들, 독립적 평가들, 다른 검토자들, 및 일반적으로 상술된 것 등의 가능한 분산된 소스들로부터 집합된 것이다. 서버와 접속되었는 지에 관계없이, 감사기(514)와의 이러한 통신은, 클라이언트가 매우 최근의 평판 데이터에 기초한 리스트를 수신할 수 있도록 하고, 이는, 수백만개의 웹 서비스에 있어서, 주어진 웹 서비스에 대해 저장된 평판 데이터가, 서버의 현재 로드에 따라 변하는 응답성 데이터와 같이 빠르게 변하는 데이터에 대하여 뒤떨어지게 되기 때문이다. 검색 엔진(506)은 그 저장된 평판 데이터를, 평판 데이터가 서버 및/또는 감사기로부터 수신되는 각 웹 서비스에 대해 갱신할 수 있다.
서버 및 감사기(514)로부터 수신된 데이터(532)에 있어서, 웹 서비스 검색 엔진(506)은, 일반적으로 도 5에서 화살표 (7)로 나타낸 바와 같이, 수신된 데이터(532)를 처리하여, 이를 리스트와 연관시킨다. 이로서, 순서를 재정리하고, 하나 이상의 제공자를 리스트로부터 떨어뜨리는 것 등을 포함하여 변경될 랭킹의 초기 순서가 나온다. 검색 엔진(506)이 리스트를 완성시키도록 더 많은 제공자를 필요로 하는 경우, 및/또는 결과가 불만족스러운 경우, 검색 엔진은 초기 랭킹에 있었지만, (도 5의 화살표 (3) 내지 (6)을 통해) 개별 참조 확인을 위해 전에 선택되지 않았던 다른 제공자들에서 데이터를 얻을 수 있다. 예를 들어, 상술한 바와 같이 서버 및/또는 감사기 각각과 통신한 후에, 웹 서비스 검색 엔진(506)은, 평판 점수의 일부 또는 전부가 초기 평판 점수 아래로 떨어지고, 다른 제공자들은 개별적으로 전혀 확인되지 않은 것을 알 수 있으며, 이에 따라, 클라이언트에게 더 좋은 리스트를 제공하기 위해서, 이들 다른 제공자의 일부에 대한 현재 데이터가 획득되어야만 한다고 결정할 것이다.
이 처리 후에 최종 리스트가 정렬되면, 리스트는 도 5에서 화살표 (8)로 나타낸 바와 같이, 클라이언트로 반환된다. 그 다음, 클라이언트(502)는 리스트로부터 제공자를 선택하여, 이에 대응하는 서버(예를 들어, 도 5의 서버(5081))와 결합시켜서, 서비스를 수행되도록 한다. 이 통신은 일반적으로 도 5의 화살표 (9) 및 (10)과 같이 표시된다. 서비스 수행에 이어서, 클라이언트(502)는, 도 5에서 화살표 (11)로 나타낸 바와 같이, 관련 평판 데이터, 예를 들어, 관찰된 수행 결과를 감사기(514)에 보고한다. 감사기(514)는, 예를 들어, 클라이언트의 평판에 기초해서 가중치를 부여하고, 이 특정 제공자에 대해 가중치가 부여된 값을 다른 입력과 정확하게 결합시킴으로써, 결과 데이터를 수집한다.
도 6은, 엔터프라이즈 환경에 대해서와 같이, 본 발명의 일 양상에 따라서 배열된 분산 평판 시스템(600)의 또 다른 택일적인 예시적 구현을 도시한다. 도 6에서, 공동 인트라넷(644)은 웹 클라이언트 코드(6021-602m)와 같은 다수의 소비자를 포함한다. 공동 프럭시/침입 차단(646)은 수행 평가 메카니즘(648)으로 코딩되어, 웹 서비스 제공자(608)로부터 수신된 공개된 기술적 (평판) 결과(612)와, 실제의 평가된 기술적 결과(650) 사이의 차이를 관찰한다.
이 구현에서, 각 엔터프라이즈는 그 자신의, 웹 서비스 제공자의 공개된 평판의 모형 감사기가 될 수 있다. 사업주는 내부 공동 네트워크 상에서, 관찰된(로그된) 행동들에 대해서 프라이버시를 기대하지 않는다. 특정 비지니스 라인의 애플리케이션의 시스템 관리자는 이러한 메카니즘을 사용하여, 외부 회사들의 접근실패(failure)를 통지 받아, 이들의 서비스 동의에 따르도록 하고, 이에 따라 이들의 내부 클라이언트 코드를 정정하여, 필요에 따라 (또는 자동 안전 장치(failsafe)로서 자동화된 방식으로) 상응하는 웹 서비스를 사용할 수 있다. 또한, 웹 서비스 제공자의 일부 또는 전부는 공동 인트라넷(644)에 대해 내부에 있어서, 관리자는 어느 내부 제공자가 다른 것들보다 좋은지를 신속하게 알 수 있다.
도 6에 도시된 선택적 구현이 도 4에 도시된 선택적 구현과 결합될 수 있다는 것은 쉽게 이해될 수 있다. 예를 들어, 평가된 평판 데이터(650)(도 6)는, 검색 엔진(406)(도 4)에 의해 반환된 정렬된 리스트(426)로부터 하나의 서비스를 선택하도록 사용될 수 있다. 또한, 엔터프라이즈는, 자신의 외부 웹 서비스의 평가된 결과들(650)을 전체적으로 집합시키기 위해 독립적 외부 서비스 감사기(514) (및 가능한 다른 감사기)로 보내고, 이는 다른 웹 서비스의 장래 질의들을 줄이기 위해 교환 가능하며, 또는 글로벌 데이터를 획득하기 위한 요건이 될 수 있다.
본 발명에 따른 전체 웹 (또는 충분히 큰 네트워크)에 대한 평판 데이터의 집합은, 요청자 또는 제공자들에 의한 소정의 거짓된 또는 잘못된 데이터를 경감시키고, 이는 대형 통계적 샘플이 임의의 극단값을 제거하기 때문이다. 집합된 데이터는 또한, 소비자들(예를 들어, 엔터프라이즈)이, 관찰된 행동들이, 웹 서비스의 제어를 벗어난 일부 행동들로 인한 착오들인지를 정보에 근거해서 결정할 수 있도록 한다. 예를 들어, 통신 링크내의 로컬 브레이크는 관찰된 로컬 레이턴시에 강한 영향을 주지만, 전체적으로 관찰된 레이턴시에 대해서는 영향을 주지 않는다.
도 7은, 웹 서비스 서버(708)가 신뢰적 감사기(750)를 내부적으로 실행시키는 또 다른 선택적 구현(700)을 도시한다. (중간 검색 엔진(도시 생략)으로 보내질) 질의(752)에 응답해서, 웹 서비스 서버(708)는, 계약 신청(756)에 따라 신뢰적 감사기에 의해 평가되는 실제의 평판 데이터(754)를 반환한다. 신뢰적 감사기는 선택적으로, (또는 부가적으로) 도 4 및 5에 도시된 것들과 같은, 더 크고 독립적인 감사기에 보고할 수 있다.
도 7의 구현에서, 웹 서비스 서버(708)는 본래 자신의 감사기로 작용한다는 것이 쉽게 이해될 수 있을 것이다. 이러한 모델의 신뢰성은 다수의 방법으로 보장될 수 있다. 예를 들어, 훌륭한 웹 서비스 제공자는 자신이 독립적으로 동작한다거나, 또는 완전히 신뢰할 수 있는 감사기 코드(750)가 변경되지 않았다는 것을 단언할 수 있으며, 데이터를 있는 그대로 보고할 수 있다. 외부 감사들, 클라이언트 평가들 등은 이를 바꿀 수 있고, 좋은 평판을 갖는 대형 회사는, 평판이 코드 또는 실제의 결과들을 함부로 고침으로써 손상되지 않도록 할 것이다.
진실한 내부 감사가 실행되는 다른 예로서, 신뢰되는 공간에서 코드를 감사하는 것이 있다. 보다 구체적으로, 오퍼레이팅 시스템 및 하드웨어는 코드를 실행할 수 있고, 부당하게 변경되지 않는 신뢰되는 공간에 데이터를 저장할 수 있다. 서비스의 시스템 관리자가 효율적으로 도달할 수 없는 내부 감사기(750)를 포함함으로써, 오퍼레이팅 시스템은 웹 서비스가 실제로 어떻게 수행하는 지에 대해서 편견없는 관점을 제공할 수 있다.
신뢰되는 감사기의 또 다른 예로서, 클라이언트 및 제공자가 본래 동일한 엔티티를 소유할 때, 공동 네트워크 등에서, 홈 네트워크가 될 수 있고, 또는 상호접속된 하드웨어 또는 소프트웨어 리소스를 가질 수 있다. 이러한 환경에서, 제공자는 클라이언트의 판단을 그르치게 할 어떤 동기도 갖지 않으며, 이는 둘이 동일한 엔티티이기 때문이다.
예를 들어, 하나 이상의 사용가능한 컴퓨팅 장치에서 애플리케이션을 실행시키기 원하는 클라이언트가 있다고 고려한다. 클라이언트의 식별자와 결합된 다양한 장치에 대해 분배된 오퍼레이팅 시스템 서비스에 있어서, 경험적인 데이터가 신뢰성, 수행성, 및 하드웨어의 기타 평판을 위해서 수집된다. 예를 들어, 다양한 사용가능한 기기와 본질적으로 동일한 다른 선택 요소들이 충분한 용량 및 처리 속도를 갖는다는 것을 가정하고, 사용자는 애플리케이션의 분배된 부분들, 또는 신뢰성에 있어서 높은 평판을 갖는 이들 기기에서의 웹 서비스를 실행하기를 원한다고 가정한다.
또한, 본 발명은 상술한 바와 같이, 다수의 서비스를 처리하도록 비율을 늘릴 수 있지만, 이는 또한, 개별 하드웨어 또는 소프트웨어 성분들의 레벨을 낮출 수 있다. 이 레벨에서의 평판은 서로 다른 메트릭 세트, 예를 들어, 결점없이 잘 정의된 인터페이스를 갖는 소프트웨어, 충분한 계약 설명, 매우 우수한 증명 문서, 그 카테고리에 대해 더 적은 점수를 갖는 커뮤니티들 보다 더 좋은 평판을 갖는 후속 외부 커뮤니티 등을 포함한다. 유사하게, 사용자는 일반적으로, 사용자가 사용가능한 장치를 선택할 수 있는 경우에, 또 다른 하드웨어 장치와 상호접속하기 위해 신뢰할 수 없는 하드웨어 장치를 첫번째로 선택하지는 않을 것이다. 이 데이터는, 사용자가 상호접속 장치에 사용하는 중앙 장치(예를 들어, 개인용 컴퓨터)의 평판 데이터로서 저장되거나, 다른 것들로부터 획득될 수도 있다.
상세한 상기 설명으로부터 알 수 있는 바와 같이, 평판 데이터에 기초한 웹 서비스의 선택을 자동화하는 방법 및 시스템이 제공된다. 이 시스템 및 방법은 웹 서비스를 평판 점수에 기초해서 정렬할 수 있고, 이에 따라, 다수의 웹 서비스가 클라이언트의 기타 요건들을 만족하는 경우에, 하나의 웹 서비스를 선택하는 것을 용이하게 할 수 있다. 본 발명은 또한, 내부 소프트웨어 성분들, 및 하드웨어 장치들 및 성분들과 함께 처리하는 경우 등에서, 웹 서비스를 더 적은 수로부터 용이하게 선택하도록 범위를 정할 수 있다. 따라서, 이 방법 및 시스템은 최근 컴퓨팅에서 필요한 중요한 장점들 및 이점들을 제공한다.
본 발명은 다양한 변형들 및 선택적 구성들이 가능하며, 소정의 예시적 실시예들이 도면에 도시되고, 상세하게 상술되었다. 그러나, 이는 본 발명을 개시된 특정 형태로 제한하려는 것이 아니며, 반대로, 모든 변형들 및 선택적 구성들을 포괄하는 것으로서, 본 발명의 사상 및 범위내에서 동일한 것으로 취급한다.
20 : 컴퓨터
21 : 처리 유닛
22 : 시스템 메모리
23 : 시스템 버스
35 : 오퍼레이팅 시스템
37 : 애플리케이션 프로그램
39 : 프로그램 데이터

Claims (3)

  1. 프로토콜들 및 크로스 플랫폼(cross-platform) 표준들을 통해 클라이언트들에게 컴퓨팅 서비스들을 제공하는 데 웹 서비스들이 사용되는 컴퓨팅 환경에서, 소비자의 컴퓨팅 서비스 요구들(needs)과 웹 서비스들을 매칭시키고, 웹 서비스의 인기도(popularity) 데이터 또는 다른 조작가능한 데이터에 의해 크게 영향받지 않는 방식으로 웹 서비스들을 찾고 정렬(ranking)하기 위한 시스템으로서,
    복수의 웹 서비스들을 식별하는 리스팅(listing) 메카니즘 - 상기 웹 서비스들 각각은 상기 시스템에 상호작용 기능(interoperative functionality)을 제공하도록 동작가능함 - ;
    상기 복수의 웹 서비스들에 대한 거동 속성(behavioral attribute)들에 대응하는 평판(reputation) 데이터를 수집하는 감사기(auditor) - 상기 거동 속성들은 적어도 웹 서비스 응답성(responsiveness)을 포함한, 웹 서비스 인기도와 무관한 웹 서비스의 기술적 속성(technical attribute)들을 포함하고, 웹 서비스 응답성은 특정한 포트로부터 웹 서비스가 판독되는 빈도의 척도(measure)임 - ; 및
    소비자의 요구들에 하나 이상의 웹 서비스를 매칭시키기 위한 선택 메카니즘 - 상기 선택 메카니즘은 적어도 상기 감사기에 의해 제공되는 기술적 속성들을 포함한 평판 데이터에 기초하여, 상기 리스팅 메카니즘에 의해 식별되는 복수의 웹 서비스들의 범위를, 적어도 하나의 웹 서비스를 식별하는 서브셋으로 좁히도록 구성되고, 상기 복수의 웹 서비스들의 범위를 좁히는 데 사용되는 기술적 속성들은 적어도 웹 서비스 응답성들에 대한 경험적(empirical) 데이터를 포함하고, 상기 복수의 웹 서비스들의 제공자들에 의한 조작이 가능한 인기도 데이터를 포함한 속성들을 배제함 -
    을 포함하며,
    상기 선택 메카니즘은, 요청 클라이언트(requesting client)에게 상기 서브셋으로서 적어도 2개의 웹 서비스들의 리스트를 반환하는 서버 컴포넌트를 포함하고,
    상기 선택 메카니즘은 상기 리스트의 범위를 단일의 선택된 웹 서비스로 더욱 좁히는 클라이언트 컴포넌트를 포함하고,
    상기 복수의 웹 서비스들의 범위를 좁히는 데 사용되는 평판 데이터는 사업 관련(business-oriented) 속성 데이터를 포함하는 시스템.
  2. 프로토콜들 및 크로스 플랫폼 표준들을 통해 클라이언트들에게 컴퓨팅 서비스들을 제공하는 데 웹 서비스들이 사용되는 컴퓨팅 환경에서, 소비자의 컴퓨팅 서비스 요구들과 웹 서비스들을 매칭시키고, 웹 서비스의 인기도 데이터 또는 다른 조작가능한 데이터에 의해 크게 영향받지 않는 방식으로 웹 서비스들을 찾고 정렬하기 위한 시스템으로서,
    복수의 웹 서비스들을 식별하는 리스팅 메카니즘 - 상기 웹 서비스들 각각은 상기 시스템에 상호작용 기능을 제공하도록 동작가능함 - ;
    상기 복수의 웹 서비스들에 대한 거동 속성들에 대응하는 평판 데이터를 수집하는 감사기 - 상기 거동 속성들은 적어도 웹 서비스 응답성을 포함한, 웹 서비스 인기도와 무관한 웹 서비스의 기술적 속성들을 포함하고, 웹 서비스 응답성은 특정한 포트로부터 웹 서비스가 판독되는 빈도의 척도임 - ; 및
    소비자의 요구들에 하나 이상의 웹 서비스를 매칭시키기 위한 선택 메카니즘 - 상기 선택 메카니즘은 적어도 상기 감사기에 의해 제공되는 기술적 속성들을 포함한 평판 데이터에 기초하여, 상기 리스팅 메카니즘에 의해 식별되는 복수의 웹 서비스들의 범위를, 적어도 하나의 웹 서비스를 식별하는 서브셋으로 좁히도록 구성되고, 상기 복수의 웹 서비스들의 범위를 좁히는 데 사용되는 기술적 속성들은 적어도 웹 서비스 응답성들에 대한 경험적 데이터를 포함하고, 상기 복수의 웹 서비스들의 제공자들에 의한 조작이 가능한 인기도 데이터를 포함한 속성들을 배제함 -
    을 포함하며,
    상기 선택 메카니즘은, 요청 클라이언트에게 상기 서브셋으로서 적어도 2개의 웹 서비스들의 리스트를 반환하는 서버 컴포넌트를 포함하고,
    상기 선택 메카니즘은 상기 리스트의 범위를 단일의 선택된 웹 서비스로 더욱 좁히는 클라이언트 컴포넌트를 포함하고,
    상기 복수의 웹 서비스들의 범위를 좁히는 데 사용되는 평판 데이터는 웹 서비스 제공자의 지급 능력 수준(solvency level)을 나타내는 정보를 포함하는 시스템.
  3. 프로토콜들 및 크로스 플랫폼 표준들을 통해 클라이언트들에게 컴퓨팅 서비스들을 제공하는 데 웹 서비스들이 사용되는 컴퓨팅 환경에서, 소비자의 컴퓨팅 서비스 요구들과 웹 서비스들을 매칭시키고, 웹 서비스의 인기도 데이터 또는 다른 조작가능한 데이터에 의해 크게 영향받지 않는 방식으로 웹 서비스들을 찾고 정렬하기 위한 시스템으로서,
    복수의 웹 서비스들을 식별하는 리스팅 메카니즘 - 상기 웹 서비스들 각각은 상기 시스템에 상호작용 기능을 제공하도록 동작가능함 - ;
    상기 복수의 웹 서비스들에 대한 거동 속성들에 대응하는 평판 데이터를 수집하는 감사기 - 상기 거동 속성들은 적어도 웹 서비스 응답성을 포함한, 웹 서비스 인기도와 무관한 웹 서비스의 기술적 속성들을 포함하고, 웹 서비스 응답성은 특정한 포트로부터 웹 서비스가 판독되는 빈도의 척도임 - ; 및
    소비자의 요구들에 하나 이상의 웹 서비스를 매칭시키기 위한 선택 메카니즘 - 상기 선택 메카니즘은 적어도 상기 감사기에 의해 제공되는 기술적 속성들을 포함한 평판 데이터에 기초하여, 상기 리스팅 메카니즘에 의해 식별되는 복수의 웹 서비스들의 범위를, 적어도 하나의 웹 서비스를 식별하는 서브셋으로 좁히도록 구성되고, 상기 복수의 웹 서비스들의 범위를 좁히는 데 사용되는 기술적 속성들은 적어도 웹 서비스 응답성들에 대한 경험적 데이터를 포함하고, 상기 복수의 웹 서비스들의 제공자들에 의한 조작이 가능한 인기도 데이터를 포함한 속성들을 배제함 -
    을 포함하며,
    상기 선택 메카니즘은, 요청 클라이언트에게 상기 서브셋으로서 적어도 2개의 웹 서비스들의 리스트를 반환하는 서버 컴포넌트를 포함하고,
    상기 선택 메카니즘은 상기 리스트의 범위를 단일의 선택된 웹 서비스로 더욱 좁히는 클라이언트 컴포넌트를 포함하고,
    상기 복수의 웹 서비스들의 범위를 좁히는 데 사용되는 평판 데이터는 기술 관련(technically-oriented) 속성 데이터 및 사업 관련의 속성 데이터를 포함하는 시스템.
KR1020117013485A 2002-12-23 2003-11-25 웹 서비스를 위한 평판 시스템 및 방법 KR101143201B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/328,714 US7467206B2 (en) 2002-12-23 2002-12-23 Reputation system for web services
US10/328,714 2002-12-23
PCT/US2003/037854 WO2004061703A1 (en) 2002-12-23 2003-11-25 Reputation system for web services

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020057011877A Division KR101064807B1 (ko) 2002-12-23 2003-11-25 웹 서비스를 위한 평판 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20110069897A KR20110069897A (ko) 2011-06-23
KR101143201B1 true KR101143201B1 (ko) 2012-05-18

Family

ID=47599182

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117013485A KR101143201B1 (ko) 2002-12-23 2003-11-25 웹 서비스를 위한 평판 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR101143201B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000063442A (ko) * 2000-07-12 2000-11-06 김시우 검색순위 결정시스템 및 이를 이용한 순위 결정방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000063442A (ko) * 2000-07-12 2000-11-06 김시우 검색순위 결정시스템 및 이를 이용한 순위 결정방법

Also Published As

Publication number Publication date
KR20110069897A (ko) 2011-06-23

Similar Documents

Publication Publication Date Title
KR101064807B1 (ko) 웹 서비스를 위한 평판 시스템 및 방법
USRE48681E1 (en) System and method for tracking web interactions with real time analytics
US11537665B2 (en) System and method for collecting and processing data
US20180096070A1 (en) Method And Apparatus For Remotely Monitoring A Social Website
US6360249B1 (en) Enterprise interaction hub for managing an enterprise web system
US9135658B2 (en) Generating data clusters
US7761730B2 (en) Determination of impact of a failure of a component for one or more services
US7856453B2 (en) Method and apparatus for tracking functional states of a web-site and reporting results to web developers
US7624173B2 (en) Method and system for classifying content and prioritizing web site content issues
US20120042237A1 (en) Method and Apparatus for Detecting Changes in Websites and Reporting Results to Web Developers for Navigation Template
EP1574013B1 (en) Content management system
CA2402437C (en) Methods and systems for monitoring quality assurance
Badr et al. Enhancing web service selection by user preferences of non-functional features
JP2008015733A (ja) ログ管理計算機
Chandrasekaran et al. Toward a testbed for evaluating computational trust models: experiments and analysis
Hahner et al. A classification of software-architectural uncertainty regarding confidentiality
US20090132491A1 (en) Data Processing System And Method
Al‐Masri et al. WSB: a broker‐centric framework for quality‐driven web service discovery
KR101143201B1 (ko) 웹 서비스를 위한 평판 시스템 및 방법
CN114004456B (zh) 数据标签的计算方法、装置、计算机设备和存储介质
Liu et al. Towards service discovery and subscription based on community-of-interest
CN115473735A (zh) 数据请求的风险评估方法和装置
Algaet et al. A review on framework and quality of service based web services discovery
Chakajnarodom et al. Web services with behavior specifications
JP2004304629A (ja) アドレスデータ管理方法及びアドレスデータ管理プログラム

Legal Events

Date Code Title Description
A107 Divisional application of patent
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: 20170330

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180328

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190328

Year of fee payment: 8