KR20090029715A - 복수의 컴퓨팅 시스템에 의해 제공되는 서비스의 위치를 찾는 것을 돕기 위한, 컴퓨팅 시스템을 위한 방법, 컴퓨터 프로그램 제품 및 프록시를 위한 방법 - Google Patents

복수의 컴퓨팅 시스템에 의해 제공되는 서비스의 위치를 찾는 것을 돕기 위한, 컴퓨팅 시스템을 위한 방법, 컴퓨터 프로그램 제품 및 프록시를 위한 방법 Download PDF

Info

Publication number
KR20090029715A
KR20090029715A KR1020087030426A KR20087030426A KR20090029715A KR 20090029715 A KR20090029715 A KR 20090029715A KR 1020087030426 A KR1020087030426 A KR 1020087030426A KR 20087030426 A KR20087030426 A KR 20087030426A KR 20090029715 A KR20090029715 A KR 20090029715A
Authority
KR
South Korea
Prior art keywords
scope
service
compiled
query
computing systems
Prior art date
Application number
KR1020087030426A
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 KR20090029715A publication Critical patent/KR20090029715A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

상호 통신이 가능한 복수의 컴퓨팅 시스템을 통합하는 컴퓨팅 환경에서, 컴퓨팅 시스템은 다른 컴퓨팅 시스템(들)에 의해 제공되는 서비스의 위치를 찾는 것을 돕는다. 예를 들어, 위치가 찾아질 서비스의 스코프를 나타내는 쿼리를 수신하면, 쿼리에 나타난 스코프는 컴파일된 스코프 정보와 비교될 수 있고, 각 스코프는 서로 다른 매칭 규칙들을 이용하여 컴파일된다. 그러면, 서비스의 제공자는 비교에 기초하여 위치가 찾아질 수 있다. 그러면, 서비스 제공자가 식별될 수 있다.
컴퓨팅 시스템, 서비스, 스코프, 컴파일, 매칭 규칙

Description

복수의 컴퓨팅 시스템에 의해 제공되는 서비스의 위치를 찾는 것을 돕기 위한, 컴퓨팅 시스템을 위한 방법, 컴퓨터 프로그램 제품 및 프록시를 위한 방법{LOCATING SERVICES USING COMPILED SCOPES}
통신 장치들은 오늘날 사회에서 점점 더 많이 사용되고 있다. 이 장치들의 급속한 채용은 문제가 일어나지 않는(trouble-free) 상호 운용성(interoperability)에 대한 요구를 야기하였다. 다수의 기업들은 통신 장치들을 생산하며, 이러한 장치들의 다수는 그 장치가 통신하게 하는 그 장치만의 규칙들의 집합을 갖는다. 이들 장치의 소비자들은 연결된 장치들에 의해 제공되는 서비스들을 효율적으로 액세스하기 위해, 장치들 사이, 및 장치들에서 실행되는 애플리케이션들 사이 둘 다에서 상호 운용성을 요구한다.
예를 들어, 서비스들의 한 범주는 MICROSOFT Corporation, IBM 등에 의해 공동으로 설계되는(engineered) 웹 서비스 프로토콜들에 대해 일관될 수 있지만, 장치들은 추가적으로 또는 대안적으로, 웹 서비스 프로토콜들에 따르지 않는(not compliant with) 서비스들을 제공할 수 있다. 웹 서비스는 애플리케이션들을 통합하기 위한 표준화된 방식이다. 표준화된 XML 문서들은 SOAP(Simple Object Access Protocol) 메시지 및 WSDL(Web Services Description Language) 기술과 사용되어, 통합되는 애플리케이션들에 대한 광범한 지식없이 애플리케이션들을 통합할 수 있 다. 웹 서비스들은 또한 장치들 간의 통신을 가능하게 하는 데 사용될 수 있다. 웹 서비스들은 다양한 유형의 장치들에 구현될 수 있으며, "WS-Discovery" 프로토콜을 이용하여 위치가 찾아질 수 있다(located).
통상적으로, 웹 서비스 프로토콜을 구현하는 경우, 클라이언트는 원하는 웹 서비스의 위치를 찾기 위해 WS-Discovery 프로토콜을 이용하여 멀티캐스트 메시지를 전송한다. 멀티캐스트 메시지는 원하는 웹 서비스를 식별하는 데 사용되는 "스코프(scope)"를 포함한다. 예를 들어, 건물 10층에 위치한 사용자가 10층에 위치한 컬러 프린터를 이용하여 문서를 인쇄하기를 원할 경우, 스코프는 층수(floor number) 및 원하는 프린터 기능(이 경우 컬러 인쇄)을 포함한다. 또 다른 예로서, 사용자가 555-8000 내지 555-8010의 범위 내에 있는 전화 번호를 갖는 웹-가능(web-enabled) 휴대 전화들과 통신하길 원하는 경우, 스코프는, 웹-가능이고 상기와 같은 전화 번호들의 범위 내에 있는 휴대 전화들만을 포함할 것이다.
그러면, 멀티캐스트 메시지를 수신하는 각 장치는 제공된 스코프를 이용하여 장치가 원하는 웹 서비스를 포함하는지를 결정함으로써 적절한 프로세싱을 수행할 수 있다. 프로세싱을 수행한 후, 요청하는 클라이언트가 스코프에 의해 식별된 바와 같이 요청된 서비스를 제공할 수 있는 장치들을 식별할 수 있도록 하기 위해, 장치들은 멀티캐스트 메시지에 응답한다.
이 멀티캐스트 메시지들 및 이로써 생성된 수많은 응답들은 상당한 네트워크 트래픽과 정체 현상(congestion)을 가져온다. 또한, 서비스들을 제공하는 장치들은 종종 적은 계산 능력(computational power)을 가지며, 종종 복수의 멀티캐스트 요청들을 프로세스하는 데 적합하지 않다.
여기에 청구된 본 발명은 임의의 불리한 점을 해결하는 실시예들 또는 위에서 설명된 것과 같은 환경들에서만 동작하는 실시예들에 제한되지 않는다. 오히려, 본 배경기술은 여기에 설명된 몇몇 실시예들이 실행될 수 있는 한 예시적인 기술 분야를 설명하기 위해서만 제공된 것이다.
<발명의 요약>
본 발명의 일 실시예에서, 사용자는 서비스들을 제공하는 시스템들 또는 네트워크에 꼭 상당량의 부하(burden)를 주지 않고서도 서비스의 위치를 찾을(locate) 수 있다. 사용자는, 예를 들어, 하나 이상의 검색 기준(search criteria)을 입력할 수 있고, 여기서 사용자의 컴퓨터 시스템은 하나 이상의 매칭(matching) 규칙들을 사용하여 스코프를 컴파일할 수 있다. 이러한 컴파일된 스코프는 서비스를 식별하기 위해 이용될 수 있다. 사용자는 서비스를 제공하는 컴퓨터 시스템에 의해 수신되는, 컴파일된 스코프를 포함하는 쿼리를 전송한다. 한 경우에서, 컴파일된 스코프는 컴퓨터 시스템으로 하여금, 원하는 서비스를 시스템이 제공하는지를 결정하기 위해 복잡한 알고리즘을 반드시 프로세스해야 하는 대신, 간단한 문자열 매칭(string match)을 수행할 수 있도록 한다.
다른 실시예에서, 사용자는 미리 컴파일된 스코프들의 집합에 쿼리를 비교하는 프록시에 쿼리를 전송함으로써, 네트워크가 멀티캐스트 메시지로 넘쳐나는 것을 막을 수 있다(avoid flooding the network with a multicast message). 쿼리를 비교한 후, 프록시는 원하는 서비스를 제공하는 시스템들의 목록과 함께 메시지를 사 용자의 컴퓨터에 반환한다. 이러한 방식으로, 리소스에 대한 감소된 부하에 의해 네트워크 대역폭 및 컴퓨터 시스템 프로세싱 능력 모두 이익을 얻을 수 있다.
본 발명의 요약은 아래의 상세한 설명에서 더 상세히 설명되는 개념들의 선택을 간략한 형태로 소개하기 위해 제공된 것이다. 본 발명의 요약은 청구된 본 발명의 주요 특징 또는 본질적 특징들을 식별하기 위한 것이 아니며, 또한 청구된 본 발명의 범위를 결정하는 데 있어 보조물로서 사용되도록 하기 위한 것이 아니다.
위에서 설명된 것 및 다른 이점 및 특징들을 얻을 수 있는 방식을 설명하기 위해, 위에서 간략히 설명된 본 발명에 대한 더 구체적인 설명이 첨부된 도면들에 도시된 구체적 실시예들과 관련하여 제공될 것이다. 이 도면들은 전형적인 실시예들만을 도시한다는 것을 이해해야 하며, 따라서 범위를 제한하는 것으로 고려되어서는 안되며, 실시예들은 첨부되는 도면들을 이용하여 추가적인 특정성(specificity) 및 세부 사항들로 묘사되고 설명될 것이다.
도 1은 본 발명의 원리들의 실시예가 동작할 수 있는 컴퓨팅 시스템을 도시한다.
도 2는 본 발명의 실시예들이 동작할 수 있는, 서비스들의 위치를 찾는 데 사용되는 쿼리들을 생성하는 다수의 서비스 소비자 컴퓨팅 시스템(service consumer computing system) 및 쿼리에 대한 응답들을 제공하는 서비스 중개자 컴퓨팅 시스템(service broker computing system)을 포함하는 환경을 개략적으로 도 시한다.
도 3은 본 발명의 실시예들에 따라 서비스들의 위치를 찾기 위한 방법의 흐름도를 도시한다.
도 4는 본 발명의 실시예들에 따라, 여러가지 매칭 규칙(matching rule)에 따라 컴파일되는 예시적인 스코프를 나타내는 흐름도를 도시한다.
도 5는 본 발명의 실시예들이 동작할 수 있는, 서비스들의 위치를 찾는 데 사용되는 쿼리들을 생성하는 다수의 서비스 소비자 컴퓨팅 시스템, 프록시 컴퓨팅 시스템, 및 쿼리에 대한 응답들을 제공하는 다수의 서비스 중개자 컴퓨팅 시스템을 포함하는 환경을 개략적으로 도시한다.
도 6은 본 발명의 실시예들에 따라 서비스들의 위치를 찾기 위한 방법의 흐름도를 도시한다.
본 발명의 실시예들은 컴퓨팅 시스템에서 서비스들의 위치를 찾고 식별하기 위해 스코프들을 컴파일하는 것으로 확장된다. 아래에 더 상세히 설명되는 바와 같이, 여기의 실시예들은 다양한 컴퓨터 하드웨어를 포함하는 특수 목적 또는 범용 컴퓨터를 포함할 수 있다. 도 1은 본 발명의 특징들을 구현하는 데 사용될 수 있는 예시적인 컴퓨팅 시스템(100)의 개략도를 도시한다. 설명된 컴퓨팅 시스템은 적합한 컴퓨팅 시스템의 일례일 뿐이며, 본 발명의 사용 또는 기능의 범위에 있어 어떤 제한을 제안하고자 하는 것이 아니다. 또한 본 발명은 도 1에 도시된 임의의 컴포넌트 또는 컴포넌트들의 조합과 관련하여 어떤 의존성 또는 요구사항을 갖는 것으로 이해되어서는 안된다.
이제 컴퓨팅 시스템들은 점점 더 다양한 형태를 갖는다. 컴퓨팅 시스템은, 예를 들어, 핸드 헬드 장치, 가전 제품, 랩톱 컴퓨터, 데스크톱 컴퓨터, 메인 프레임, 분산된 컴퓨팅 시스템, 또는 심지어 종래에는 컴퓨팅 시스템이라고 간주되지 않던 장치 또는 시스템들일 수 있다. 본 설명 및 청구항들에서, "컴퓨팅 시스템"이라는 용어는 적어도 하나의 프로세서, 및 프로세서에 의해 실행될 수 있는 컴퓨터 실행가능 명령어들을 가질 수 있는 메모리를 포함하는 임의의 장치 또는 시스템(또는 이들의 조합)을 포함하는 것으로서 광범위하게 정의된다. 메모리는 임의의 형태를 가질 수 있으며, 컴퓨팅 시스템의 특성 및 형태에 의존할 수 있다. 컴퓨팅 시스템은 네트워크 환경에 걸쳐 분산될 수 있으며 복수의 구성(constituent) 컴퓨팅 시스템들을 포함할 수 있다.
도 1을 참조하면, 가장 기본적인 구성에서, 컴퓨팅 시스템(100)은 통상적으로 적어도 하나의 처리 장치(102) 및 메모리(104)를 포함한다. 메모리(104)는 휘발성 또는 비휘발성이거나 이 둘의 어떤 조합일 수 있는 시스템 메모리일 수 있다. 휘발성 메모리의 예는 랜덤 액세스 메모리(RAM)를 포함한다. 비휘발성 메모리의 예는 판독 전용 메모리(ROM), 플래시 메모리, 기타 등등을 포함한다. "메모리"라는 용어는 또한 물리적 저장 매체와 같은 비휘발성 대용량 저장소를 지칭하도록 여기에서 사용될 수 있다. 이러한 저장소는 이동식 또는 비이동식일 수 있으며, PCMCIA 카드, 자기 및 광학 디스크, 자기 테이프, 기타 등등을 포함할 수 있다(그러나 이에 제한되지는 않음).
여기에 사용되는 바와 같이, "모듈" 또는 "컴포넌트"라는 용어는 컴퓨팅 시스템에서 실행되는 소프트웨어 객체 또는 루틴들을 지칭할 수 있다. 여기에 설명된 서로 다른 컴포넌트들, 모듈, 엔진, 및 서비스들은 (예를 들어, 개별 스레드(separate thread)들로서) 컴퓨팅 시스템에서 실행되는 객체 또는 프로세스들로서 구현될 수 있다. 여기에 설명된 시스템 및 방법들이 소프트웨어에 구현될 수 있지만, 하드웨어에의 구현, 및 소프트웨어와 하드웨어의 조합에서의 구현 또한 가능하며 숙고된다.
이어지는 설명에서, 본 발명의 실시예들은 하나 이상의 컴퓨팅 시스템에 의해 수행되는 동작들과 관련하여 설명된다. 이러한 동작들이 소프트웨어에 구현되는 경우, 동작을 수행하는 관련된 컴퓨팅 시스템의 하나 이상의 프로세서들은 컴퓨터 실행가능 명령어들을 실행한 것에 대한 응답으로 컴퓨팅 시스템의 동작(operation)을 지시한다. 이러한 동작의 예는 데이터의 조작을 포함한다. 컴퓨터 실행가능 명령어들(및 조작된 데이터)은 컴퓨팅 시스템(100)의 메모리(104)에 저장되거나 포함될 수 있다.
컴퓨팅 시스템(100)은 또한, 예를 들어 네트워크(110)를 통해, 컴퓨터 시스템(100)으로 하여금 다른 컴퓨팅 시스템들과 통신할 수 있도록 하는 통신 채널(108)들을 포함할 수 있다. 통신 채널(108)은 통신 매체의 예이다. 통신 매체는 통상적으로 반송파(carrier wave) 또는 기타 전송 메커니즘(transport mechanism)과 같은 피변조 데이터 신호(modulated data signal)에 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터 등을 구현하고 모든 정보 전달 매체를 포함한다. 예로서, 통신 매체는 유선 네트워크 또는 직접 배선 접속(direct-wired connection)과 같은 유선 매체, 그리고 음향, 무선 전파(radio), 적외선, 기타 무선 매체와 같은 무선 매체를 포함하지만 이에 제한되지는 않는다.
본 발명의 범위 내의 실시예들은 또한 컴퓨터 실행가능 명령어 또는 데이터 구조들을 저장하거나 지니기(carry) 위한 컴퓨터 판독가능 매체를 포함한다. 이러한 컴퓨터 판독가능 매체는 범용 또는 특수 목적 컴퓨터에 의해 액세스될 수 있는 임의의 사용가능한 매체일 수 있다. 예로서, 이러한 컴퓨터 판독가능 매체는 RAM, ROM, EEPROM, CD-ROM, 또는 다른 광학 디스크 저장소, 자기 디스크 저장소 또는 다른 자기 저장 장치들, 또는 원하는 프로그램 코드 수단을 컴퓨터 실행가능 명령어 또는 데이터 구조의 형태로 지니거나 저장하는 데 사용될 수 있고 범용 또는 특수 목적 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체와 같은 물리적 저장소 및/또는 메모리 매체를 포함할 수 있지만 이에 제한되지는 않는다. 정보가 네트워크 또는 다른 통신 연결(유선, 무선, 또는 유선과 무선의 조합임)을 통해 컴퓨터에 제공될 때, 컴퓨터는 연결을 컴퓨터 판독가능 매체로서 적절히 간주한다. 따라서, 임의의 이러한 연결은 적절히 컴퓨터 판독가능 매체라 불린다. 상기의 조합 또한 컴퓨터 판독가능 매체의 범위 내에 포함된다.
컴퓨터 실행가능 명령어들은, 예를 들어, 범용 컴퓨터, 특수 목적 컴퓨터, 또는 특수 목적 프로세싱 장치로 하여금 특정 기능 또는 기능들의 그룹을 수행하도록 하는 명령어 및 데이터를 포함한다. 본 발명이 구조적 특징 및/또는 방법론적 동작들에 있어 구체적인 언어들로 설명되었지만, 첨부된 청구항들에 정의된 본 발 명은 반드시 여기에 설명된 구체적 특징 또는 동작들에 제한되는 것은 아니라는 것을 이해해야 한다. 오히려, 여기에 설명된 구체적 특징 및 동작들은 청구항들을 구현하기 위한 예시적 형태로서 개시된다.
도 2는 본 발명의 원리들이 사용될 수 있는 환경(200)을 도시한다. 환경(200)은 하나 이상의 서비스 소비자 컴퓨팅 시스템(210)뿐 아니라 하나 이상의 서비스 중개자 컴퓨팅 시스템(220)을 포함한다. 서비스들(251-255)은, 삼각형(251), 평행사변형(252), 원(253), 사다리꼴(254), 또는 육각형(255)을 포함하는 다양한 모양으로 표시된다. 각 모양 종류는 서로 다른 유형의 서비스에 대응될 수 있다. 예를 들어, 웹 서비스는 사다리꼴(254)로 표시될 수 있다. 같은 유형의 서비스에 대해 복수의 인스턴스가 있는 경우, 서비스들의 개별 인스턴스들은 위에서 식별된 적절한 숫자와 이어지는 문자, 예를 들어, 253A, 253B, 253C 등으로 표시된다.
서비스는 컴퓨터 코드 또는 소프트웨어 애플리케이션 또는 어떤 원하는 기능에 대한 액세스를 제공하는 다른 수단일 수 있다. 예를 들어, 프린터는 인쇄 서비스를 제공할 수 있고, VPN 서버(Virtual Private Network server)는 VPN 서비스를 제공할 수 있다. 웹 서비스는 컴퓨팅 시스템들로 하여금, 예를 들어, SOAP(Simple Object Access Protocol) 메시지를 이용하여 서로 통신할 수 있도록 하는 서비스의 유형이다. 웹 서비스는 또한 XML(Extensible Markup Language) 및 WSDL(Web Services Description Language) 기술 기능을 제공함으로써 애플리케이션들의 통합을 원활하게 한다. 서비스들(251-255) 중 임의의 것이 웹 서비스 또는 다른 유형 의 서비스일 수 있다.
서비스 소비자 컴퓨팅 시스템(210) 중 임의의 것이 서비스를 이용하거나 이용할 서비스를 찾는 컴퓨팅 시스템일 수 있다. 서비스 중개자 컴퓨팅 시스템(220) 중 임의의 것이 서비스를 직접 제공하거나, 또는 다른 서비스 제공자(230)로의 링크를 제공하는 컴퓨팅 시스템일 수 있다. 컴퓨팅 시스템들(210 및 220)은 컴퓨팅 네트워크(240)를 통해 서로 통신하는 것이 가능하다. 컴퓨팅 네트워크(240)는 유선 또는 무선 네트워크일 수 있다.
컴퓨팅 환경(200)에서, 복수의 서비스 소비자 컴퓨팅 시스템(211-214)이 존재할 수 있다. 예를 들어, 도 2에서, 서비스 소비자 컴퓨팅 시스템(210)은 세 개의 서비스 소비자 컴퓨팅 시스템(211, 212, 및 213)을 포함하는 것으로 도시된다. 그러나, 세로 생략부호(214)는 서비스 소비자 컴퓨팅 시스템(210)이 도시된 세 개의 서비스 소비자 컴퓨팅 시스템보다 더 많은 서비스 소비자 컴퓨팅 시스템을 포함할 수 있음을 나타내며, 또한 여기서 본 발명의 원리들에 영향을 주지 않고 단지 하나 또는 어쩌면 두 개의 서비스 소비자 컴퓨팅 시스템이 있을 수 있음을 나타낸다.
마찬가지로, 복수의 서비스 중개자 컴퓨팅 시스템(221-224) 또한 환경(200)에 존재할 수 있다. 예를 들어, 도 2에서, 서비스 중개자 컴퓨팅 시스템(220)은 세 개의 서비스 중개자 컴퓨팅 시스템(221, 222, 및 223)을 포함하는 것으로 도시된다. 그러나, 세로 생략부호(224)는 서비스 중개자 컴퓨팅 시스템(210)이 도시된 세 개의 서비스 중개자 컴퓨팅 시스템보다 더 많은 서비스 중개자 컴퓨팅 시스템을 포함할 수 있음을 나타내며, 또한 여기서 본 발명의 원리들에 영향을 주지 않고 단지 하나 또는 어쩌면 두 개의 서비스 중개자 컴퓨팅 시스템이 있을 수 있음을 나타낸다.
각 서비스 소비자 컴퓨팅 시스템(211-214)은 임의의 서비스 중개자 컴퓨팅 시스템(221-224)과 통신할 수 있으며, 반대로, 서비스 중개자 컴퓨팅 시스템(221-224) 중 임의의 하나에 의해 링크된 임의의 서비스 제공자(230)와 통신할 수 있다. 컴퓨팅 환경(200)에서, 서비스 중개자 컴퓨팅 시스템(221)은 서비스를 직접 제공하지 않지만, 서비스들(253B, 252A, 및 253A 및 251B)을 각각 제공하는 세 개의 서비스 제공자(231, 232, 및 233)와 링크되어 있다. 서비스 중개자 컴퓨팅 시스템(222)은 서비스(253C 및 251A)를 직접 제공하지만, 임의의 다른 서비스 제공자(230)와 링크되어 있지 않다. 서비스 중개자 컴퓨팅 시스템(223)은 세 개의 서비스(253E, 255, 및 252B)를 직접 제공하며, 서비스들(253D 및 254)을 각각 제공하는 다른 서비스 제공자들(234 및 235)에 링크되어 있다. 서비스 중개자 컴퓨팅 시스템들은 임의의 수의 서비스들 또는 서비스 제공자(230)들로의 링크를 직접 제공할 수 있다.
도 3은 하나 이상의 서비스 중개자 시스템(220) 또는 서비스 제공자(230)에 의해 제공되는 서비스의 위치를 찾는 것을 돕기 위한, 서비스 소비자 컴퓨팅 시스템(210)을 위한 방법(300)의 흐름도를 도시한다. 방법(300)은 도 2의 환경(200)과 관련하여 수행될 수 있으므로, 이제 도 3의 방법(300)은 도 2를 종종 참조하여 설명될 것이다. 서비스 소비자 컴퓨팅 시스템에 의해 수행되거나 수행될 수 있는 동 작들은 도 3의 왼쪽 칸(left column)에서 "서비스 소비자 컴퓨팅 시스템(들)-210"이라는 표제 아래 도시된다. 서비스 중개자 컴퓨팅 시스템에 의해 수행되거나 수행될 수 있는 동작들은 도 3의 오른쪽 칸에서 "서비스 중개자 컴퓨팅 시스템(들)-220"이라는 표제 아래 도시된다.
방법(300)은 위치가 찾아질 서비스의 스코프를 나타내는 쿼리를 생성하는 동작을 포함한다(동작(311)). 스코프는 아이템에 대한 문맥적인 ID(contextual identification)로서, 예를 들어, 서비스의 위치에 대한 ID이다. 예를 들어, 사용자가 자신의 건물 4층에서의 컬러 인쇄와 같은 서비스를 요청한 경우, 스코프는 요청된 컬러 인쇄 서비스, 및 요청된 위치, 즉 4층을 포함한다. 계속해서 이 예에서, 스코프(컬러 인쇄 서비스, 4층)를 나타내는 쿼리가 생성된다(동작(311)). 쿼리는 스코프에 대한 텍스트 상의 표현(textual representation)을 포함하고/거나 사용자에 의해 입력된 검색 기준을 포함하거나 혹은 간단한 알림 메시지(notification message)를 포함할 수 있다. 사용자에 의해 입력된 검색 기준은, 예를 들어, 요구되는 서비스들에 대한 일반적인 정보를 포함할 수 있다.
예를 들어, 사용자가 4층에 있는 모든 스캐너 또는 팩스 기계들을 검색하길 원하는 경우, 검색 기준은 4층에 위치한 스캐너 및 팩스 기계들을 포함한다. 검색 기준은 스코프를 생성하는 데 사용될 수 있다. 몇몇 실시예에서, 스코프는 URI(Uniform Resource Identifier)이다. 스코프가 어떻게 생성되는지에 상관없이, 스코프는 매칭 규칙들(matching rules)과 컴파일되어 컴파일된 스코프를 생성할 수 있다(동작(331)). 동작(331)은 도 4의 데이터 구조 및 흐름(400)(이하에서는 "데 이터 흐름(400)"이라 지칭됨)에 도시된 복수의 단계들을 포함할 수 있다.
도 4의 데이터 흐름(400)은 동작(331)에 의해 식별된 바와 같이(도 3 참조) 컴파일된 스코프를 생성하는 동작을 도시한다. 스코프(410)는 매칭 규칙들(430)과 컴파일되어(동작(420) 참조) 결과적인 컴파일된 스코프 정보(resulting compiled scope information)(440)를 생성할 수 있다. 본 설명 및 청구항에서, 매칭 규칙들(430)은 환경(200)에서 서비스들을 분류(categorize)하고/거나 서비스들의 위치를 찾기 위한 메커니즘으로서 정의된다.
일 실시예에서, 예를 들어, 4층에 있는 컬러 프린터에 대한 LDAP(Lightweight Directory Access Protocol) 스코프(예를 들어,
Figure 112008085769883-PCT00001
)는 LDAP(431) 매칭 규칙과 컴파일될 수 있다. 이 경우, 이어지는 컴파일된 스코프 정보는 결과적으로:
Figure 112008085769883-PCT00002
이 되고, 여기서 "pf"는 적절한 LDAP 스키마에서 "프린터 층수(printer floor)"를 의미하는 것으로 알려진 것이고, "pt"는 "프린터 유형(printer type)"을 의미하는 것으로 알려진 것이다.
다시 도 4를 참조하여, 다른 매칭 규칙은 STRCMP0(String Compare)(432) 매칭 규칙을 포함할 수 있으며, 이는 스코프를 이용하여 텍스트 문자열을 생성한다. 예를 들어, 동일한 4층에 있는 컬러 프린터 스코프(예를 들어,
Figure 112008085769883-PCT00003
)는 String Compare을 이용하여 컴파일되는 경우 다음을 가져올 수 있다:
Figure 112008085769883-PCT00004
.
URI(Uniform Resource Identifier)(433) 매칭 규칙 또한 사용될 수 있다. URI 매칭 규칙은 URL(Uniform Resource Locator)과 같은 URI의 형태로 스코프를 공식화(formulate)한다. URI(433) 매칭 규칙을 이용하여 컴파일되는 경우에 4층 컬러 프린터 예에 대한 결과적인 컴파일된 스코프 정보는 다음과 같이 나타날 수 있다:
Figure 112008085769883-PCT00005
.
UUID(Universally Unique Identifier)(434) 매칭 규칙 또한 사용될 수 있으며, 이는 스코프를 간단한 고유 식별자로서 나타낸다. 예를 들어, 4층 컬러 프린터 스코프는 다음의 식별자: "500f0400-e31a11d4-a716-450010020300"에 의해 간단히 표현될 수 있으며, 여기서 식별자의 몇몇 부분들은 스코프의 특정 양상들과 상호 관련(correlate)될 수 있다(또는 상호 관련되지 않을 수 있다). 컴파일된 스코프는 다음과 같이 나타난다: "uuidmatch::500f0400-e31a-11d4-a716-450010020300."
몇몇 실시예에서, 스코프는 (예를 들어, 호환성 때문에) 모든 유형들 보다는 적은, 그리고 잠재적으로 하나의 유형의 매칭 규칙과 컴파일된다. 따라서, 스코프(410)는 하나 이상의 매칭 규칙들(430)과 컴파일(420)될 수 있고/거나 도 4에 도시되지 않은 다른 매칭 규칙들과 컴파일될 수 있다. 예를 들어, LDAP 스코프가 LDAP 규칙들과 컴파일되지만 UUID 규칙들과는 컴파일되지 않을 수 있다. 또한, 다른 실시예에서, 컴파일된 스코프 정보는 컴퓨팅 시스템 환경(200)(도 2 참조) 내에서 사용가능한 모든 서비스들의 컴파일된 스코프를 포함할 수 있다.
도 3을 참조하면, 서비스 소비자 컴퓨팅 시스템(210)은 스코프를 이용하여 쿼리를 생성한다(동작(311)). 스코프를 이용하여 쿼리를 생성하는 것(동작(311))은 단순히 스코프를 포함하는 쿼리를 생성하는 것과 관련될 수 있으며, 여기서 쿼리는 서비스 중개자 컴퓨팅 시스템(들)에 전송될 수 있다. 대안적으로, 서비스 소비자 컴퓨팅 시스템(210)은 동작들(331 및 332)을 포함하는, 쿼리를 생성하기 위한 추가적인 선택적 단계들을 수행할 수 있다. 도 3에서, 선택적 단계들은 점선을 이용하여 표현된다. 만약 있다면, 서비스 소비자 컴퓨팅 시스템(210)이 어느 추가적인 단계들을 수행하는지에 따라, 서비스 중개자 컴퓨팅 시스템은 쿼리 및 스코프를 평가(evaluate)할 때(동작(321)) 선택적 단계들을 완료할 수 있다.
일 실시예에서, 예를 들어, 서비스 소비자 컴퓨팅 시스템(210)이 스코프를 이용하여 쿼리를 생성할 때(동작(311)), 서비스 소비자 컴퓨팅 시스템(210)은 스코프를 이용하여 쿼리를 생성하는 데 있어 추가적인 단계들을 선택적으로 수행할 수 있다. 서비스 소비자 컴퓨팅 시스템(210)은 컴파일된 스코프를 생성(동작(331))하거나 또는 컴파일된 스코프 정보에 스코프를 비교하는(동작(332)) 추가적인 선택적 단계들 중 하나 또는 둘 다를 수행하거나, 둘 다 수행하지 않을 수 있다.
예를 들어, 서비스 소비자 컴퓨팅 시스템(210)은 단순히 스코프를 포함하는 쿼리를 생성함으로써 스코프를 이용하여 쿼리를 생성(동작(311))할 수 있고, 쿼리를 전송할 수 있다. 대안적으로, 서비스 소비자 컴퓨팅 시스템(210)은 대신 컴파일된 스코프를 생성할 수 있고(동작(331)), 다음, 컴파일된 스코프와 함께 쿼리를 전송할 수 있다. 대안적으로, 서비스 소비자 컴퓨팅 시스템은 컴파일된 스코프를 생성하는 것(동작(331)) 및 컴파일된 스코프 정보에 스코프를 비교하는(동작(332)) 두 선택적 단계를 모두 수행할 수 있고, 다음, 동작(332)의 비교 결과와 함께 쿼리를 전송할 수 있다.
도 3을 참조하여 이 예를 계속하면, 서비스 중개자 컴퓨팅 시스템(220)은, 쿼리 및 스코프를 평가(동작(321))하는 데 있어, 쿼리에서 수신된 정보에 따라 다음 중 임의의 것을 수행할 수 있다: 1) 쿼리가 스코프를 포함하는 경우, 서비스 중개자 컴퓨팅 시스템(220)은 컴파일된 스코프를 생성하는 것(동작(331)) 및 컴파일된 스코프 정보에 스코프를 비교하는(동작(332)) 선택적 단계들을 수행할 수 있고, 2) 쿼리가 컴파일된 스코프를 포함하는 경우, 서비스 중개자 컴퓨팅 시스템(220)은 동작(331)(컴파일된 스코프를 생성)을 건너뛰고 컴파일된 스코프 정보에 스코프를 비교하는 선택적 단계를 수행할 수 있고, 또는 3) 쿼리가 컴파일된 스코프 정보와 스코프의 비교 결과를 포함하는 경우, 서비스 중개자 컴퓨팅 시스템(220)은 간단히 쿼리 및 스코프를 평가(동작(321))할 수 있고, 추가적인 선택적 단계들(331 또는 332)을 수행하지 않을 수 있다.
서비스를 식별하는 동작(동작(322))은 컴파일된 스코프 정보와 스코프의 비교(동작(332))에 기초하여 서비스를 식별하는 것을 포함할 수 있다. 컴파일된 스코프 정보(440)(도 4 참조)는 하나 이상의 매칭 규칙들(430)을 이용하여 컴파일된 하나 이상의 컴파일된 스코프들의 조합일 수 있다. 일 실시예에서, 컴파일된 스코프 정보(440)는 하나 이상의 텍스트 문자열로서 구성(arranged)될 수 있다. 이러한 실시예에서, 서비스 중개자 컴퓨팅 시스템(220)은 단순히 텍스트 문자열들을 매칭함으로써 원하는 서비스를 식별할 수 있다. 이에 의해, 서비스 중개자 컴퓨팅 시스템(220)의 프로세싱 능력에 대한 잠재적 부하를 어느 정도 완화할 수 있다. 종종, 서비스 중개자 컴퓨팅 시스템(220)들은 복잡한 프로세싱을 수행하기에 적합하지 않다(예를 들어, 휴대 전화, 프린터, 팩스 기계 등). 텍스트 문자열 매칭이 매칭 규칙들로 스코프를 컴파일하는 것보다 실질적으로 더 적은 프로세싱 능력을 요구하기 때문에, 많은 서비스 중개자 컴퓨팅 시스템(220)들이 이득을 얻는다.
쿼리에 응답하는 동작(동작(323))은 하나 이상의 서비스 및/또는 서비스 제공자(230)의 위치를 전송하는 것을 포함할 수 있다. 쿼리에 대한 응답을 수신(동작(312))한 후, 서비스 소비자 컴퓨팅 시스템(210)은 그 응답으로부터 ID 정보를 액세스하고 추출할 수 있다(동작(313)). 다음, 서비스 소비자 컴퓨팅 시스템(210)은 추출된 ID 정보를 이용하여 서비스의 위치를 찾을 수 있다(동작(314)). ID 정보는 다음을 포함할 수 있지만 이에 제한되지는 않는다: 인터넷 프로토콜 주소(IP 주소), MAC 주소(Media Access Control address), UUID, 도메인 이름, 전화 번호, 일련번호(serial number), 스코프, 컴파일된 스코프, 또는, 서비스 또는 서비스 제공자를 식별하기 위한 임의의 다른 수단. 어떤 이유로 서비스 중개자 컴퓨팅 시스템(210)이 요구되는 서비스의 위치를 찾을 수 없는 경우, 쿼리에 대한 응답은 요구되는 서비스가 발견되지 않았음을 나타낼 수 있다.
도 5는 본 발명의 원리들이 사용될 수 있는 환경(500)을 도시한다. 환경(500)은 하나 이상의 서비스 소비자 컴퓨팅 시스템(210), 프록시 컴퓨팅 시스템(510), 및 다른 서비스 제공자(230)들과 링크될 수 있는 하나 이상의 서비스 중개자 컴퓨팅 시스템(220)을 포함한다. 환경(500)이 실질적으로 도 2와 유사하므 로, 도 5의 환경(500)은 이제 도 2를 종종 참조하여 설명될 것이다.
일 실시예에서, 환경(500)은 서비스 소비자 컴퓨팅 시스템(210)과 서비스 중개자 컴퓨팅 시스템(220) 사이에서 매개자(intermediary)로서 동작하도록 프록시 컴퓨팅 시스템을 사용한다. 프록시 컴퓨팅 시스템(510)은 적어도 쿼리들을 수신하고, 쿼리에 포함된 정보를 프로세스하고 쿼리들을 전송하도록 구성된 컴퓨팅 시스템이다. 일 실시예에서, 서비스 소비자 컴퓨팅 시스템(210)은 쿼리를 프록시 컴퓨팅 시스템(510)에 전송한다. 프록시 컴퓨팅 시스템(510)은 쿼리 내의 정보에 따라 쿼리를 프로세스하고, 다른 쿼리를 서비스 중개자 컴퓨팅 시스템(220)에 전송한다.
도 6은 하나 이상의 서비스 중개자 시스템(220) 또는 서비스 제공자(230)에 의해 제공되는 서비스의 위치를 찾는 것을 돕기 위한, 서비스 소비자 컴퓨팅 시스템(210) 및 프록시 컴퓨팅 시스템(510)을 위한 방법(600)의 흐름도를 도시한다. 방법(600)이 도 2의 환경(200) 및 도 5의 환경(500)과 관련하여 수행될 수 있으므로, 이제 도 6의 방법(600)은 도 2 및 도 5를 종종 참조하여 설명될 것이다. 서비스 소비자 컴퓨팅 시스템에 의해 수행되거나 수행될 수 있는 동작들은 도 6의 왼쪽 칸에서 "서비스 소비자 컴퓨팅 시스템(들)-210"이라는 표제 아래 도시된다. 프록시 컴퓨팅 시스템에 의해 수행되거나 수행될 수 있는 동작들은 도 6의 중간 칸에서 "프록시 컴퓨팅 시스템-510"이라는 표제 아래 도시된다. 서비스 중개자 컴퓨팅 시스템에 의해 수행되거나 수행될 수 있는 동작들은 도 6의 오른쪽 칸에서 "서비스 중개자 컴퓨팅 시스템(들)-220"이라는 표제 아래 도시된다.
일 실시예에서, 방법(600)은 원하는 서비스의 위치를 찾기 위해 서비스 소비 자 컴퓨팅 시스템(210), 프록시 컴퓨팅 시스템(510) 및 서비스 중개자 컴퓨팅 시스템(220)을 이용한다. 관련된 본 방법 및 단계들은 도 3의 방법(300)에 약술된 것들과 실질적으로 유사하다. 방법(300)에서와 같이, 선택적 단계들은 점선으로 표시된다. 서비스 소비자 컴퓨팅 시스템(210), 프록시 컴퓨팅 시스템(510), 및 서비스 중개자 컴퓨팅 시스템(220) 각각은 선택적 단계들 중 하나, 또는 둘 다를 수행할 수 있고, 또는 둘 다 수행하지 않을 수 있다. 마찬가지로, 방법(300)의 실시예에서와 같이, 선택적 단계들(동작(331) 및 동작(332))이 쿼리를 수신하기 전에 수행된 경우 선택적 단계들을 건너뛸 수 있다.
예를 들어, 서비스 소비자 컴퓨팅 시스템(210)이 쿼리를 전송하기 전에 스코프가 있는 쿼리를 생성한 경우, 서비스 소비자 컴퓨팅 시스템(210)은 추가적인 선택적 단계들(동작(331) 및 동작(332)) 중 하나 또는 둘 다를 수행할 수 있고, 또는 둘 다 수행하지 않을 수 있다. 서비스 소비자 컴퓨팅 시스템(210)이 동작(331)을 수행한 경우, 서비스 소비자 컴퓨팅 시스템(210)은 컴파일된 스코프와 함께 쿼리를 전송할 수 있다. 대안적으로, 서비스 소비자 컴퓨팅 시스템(210)이 선택적 단계 둘 다를 수행한 경우, 서비스 소비자 컴퓨팅 시스템(210)은 동작(332)으로부터의 비교의 결과들과 함께 쿼리를 전송할 수 있다. 대안적으로, 서비스 소비자 컴퓨팅 시스템(210)이 선택적 단계들 둘 다를 수행하지 않은 경우, 서비스 소비자 컴퓨팅 시스템(210)은 간단히 쿼리를 프록시 컴퓨팅 시스템(510)에 전송할 수 있다.
다음, 프록시 컴퓨팅 시스템(510)은 선택적으로 추가적인 선택적 단계들(동작(331) 및 동작(332)) 둘 다를 수행할 수 있고, 다음, 선택적 단계들의 결과에 기 초하여 쿼리를 전송할 수 있다. 또는 대안적으로, 프록시 컴퓨팅 시스템(510)은 쿼리가 어떤 추가적인 단계들을 이미 수행된 것으로 표시하는지에 따라, 추가적인 선택적 단계들 중 하나를 수행하거나, 둘 다 수행하지 않을 수 있다. 그러면, 프록시 컴퓨팅 시스템(510)은 다른 쿼리를 서비스 중개자 컴퓨팅 시스템(220)에 전송할 수 있다.
다음, 서비스 중개자 컴퓨팅 시스템(220)은 프록시 컴퓨팅 시스템(510)으로부터의 쿼리를 평가할 수 있다. 프록시 컴퓨팅 시스템(510)으로부터의 쿼리를 평가하는 중에, 서비스 중개자 컴퓨팅 시스템(220)은, 프록시 컴퓨팅 시스템(510)으로부터의 쿼리가 어떤 단계들을 이미 수행된 것으로 표시하는지에 따라, 추가적인 선택적 단계들(동작(331) 및 동작(332)) 중 하나 또는 둘 다를 수행할 수 있고, 또는 둘 다 수행하지 않을 수 있다.
방법(300)에서와 같이, 스코프는 미리 컴파일된 스코프일 수 있고, 여기서 미리 컴파일된 스코프는 하나 이상의 서로 다른 매칭 규칙들을 이용하여 생성되고, 또는 대안적으로, 스코프는 사용자에 의해 입력된 검색 기준일 수 있다. 쿼리를 모든 서비스 중개자 컴퓨팅 시스템(220)에 전송하는 대신 프록시 컴퓨팅 시스템(510)에 전송함으로써, 네트워크(240)의 트래픽은 상당히 감소될 수 있다.
프록시 컴퓨팅 시스템(510)으로부터의 쿼리를 평가한 후(동작(321)) 서비스 중개자 컴퓨팅 시스템(220)은 서비스의 위치를 식별할 수 있다(동작(322)). 그러면, 서비스 중개자 컴퓨팅 시스템(220)은 쿼리에 대한 응답을 전송할 수 있고(동작(323)), 이는 서비스 소비자 컴퓨팅 시스템(210)에 의해 수신되며(동작(312)), 여기서 서비스 소비자 컴퓨팅 시스템(210)은 응답으로부터 ID를 추출하고(동작(313)) ID를 이용하여 서비스의 위치를 찾는다(동작(314)).
몇몇 실시예에서, 스코프는 검색 기준 내에 컴파일될 수 있고 쿼리에 포함될 수 있다. 그러면, 서비스 중개자 컴퓨팅 시스템(220)은 컴파일된 스코프를 이용할 수 있고 이를 자신의 컴파일된 스코프와 비교하여 잠재적 매치(match)들을 식별할 수 있다. 지원되지 않거나 호환되지 않는 컴파일된 스코프들을 무시될 수 있다. 컴파일된 스코프들에 대한 스코프 정보는 각종 다른 방식으로 나타낼 수 있다. 몇몇 실시예에서, 컴파일된 스코프들에 대한 스코프 정보는 XML 스키마에 따라 정의된 XML 명령어들로 표현된다. 이어지는 명령어는 컴파일된 스코프들에 대한 스코프 정보를 나타내기 위해 사용되는, 예시적인 XML 스키마에 의해 정의된 데이터 형식(XML schema defined data format)을 나타낸다:
Figure 112008085769883-PCT00006
Figure 112008085769883-PCT00007
다음 명령어들은 XML 스키마에 따라 정의된 컴파일된 스코프들에 대한 스코프 정보를 포함하는 SOAP 메시지를 나타낸다:
Figure 112008085769883-PCT00008
이 예들로:
Figure 112008085769883-PCT00009
Figure 112008085769883-PCT00010
에 의해 명기된(specified) 매칭 알고리즘에 대해
Figure 112008085769883-PCT00011
에 의해 요청 내에 명기된 각각의 스코프들의 컴파일된 스코프들의 목록이다.
컴파일된 스코프들의 목록은 서비스의 컴파일된 스코프들과 매칭될 수 있는 문자열들의 목록이다. 프로브(Probe) 내의 컴파일된 스코프들이 서비스의 컴파일 된 스코프들과 매치(match)될 때 서비스가 응답할 수 있다.
Figure 112008085769883-PCT00012
는 프로브 내의 컴파일된 스코프들이 서비스의 컴파일된 스코프들과 어떻게 매칭될 수 있는지를 나타낸다. 거짓인 경우, 프로브 내의 컴파일된 스코프는 컴파일된 서비스 스코프들 중 하나와 매치될 수 있다. 참인 경우, 프로브 내의 컴파일된 스코프는, 서비스 스코프가 그것으로 시작되는 경우에도 매치될 수 있다(the compiled scope in the Probe can match even if the service scope starts with it).
따라서, 위에서 설명된 실시예들은 스코프 정보를 이용하여 하나 이상의 서비스 중개자 컴퓨팅 시스템 상에서 서비스들의 위치를 찾기 위한 시스템 및 방법을 설명한다. 서비스들의 위치를 찾기 위해 컴파일된 스코프 정보를 이용함으로써, 본 시스템 및 방법은 네트워크 트래픽의 감소 및 서비스 제공자들의 프로세싱 능력에 대한 부하의 감소에 잠재적으로 기여할 수 있다.
본 발명은 그의 정신 및 본질적 특징들로부터 벗어나지 않고 다른 구체적 형태들로 구현될 수 있다. 설명된 실시에들은 모든 관점에서 단지 예시적인 것으로서 고려되어야 하며 제한적인 것으로 고려되어서는 안된다. 따라서, 본 발명의 범위는 앞선 설명보다는 첨부된 청구항들에 의해 나타난다. 청구항들과 동등한 의미 및 범위 내에 포함되는 모든 변경들은 그들의 범위 내에 포함되어야 한다.

Claims (20)

  1. 상호 통신(intercommunication)이 가능한 복수의 컴퓨팅 시스템을 포함하는 컴퓨팅 환경에서, 하나 이상의 상기 복수의 컴퓨팅 시스템에 의해 제공되는 서비스의 위치를 찾는 것(locating)을 돕기 위한, 컴퓨팅 시스템을 위한 방법으로서,
    위치가 찾아질(located) 서비스의 스코프(scope)를 나타내는 쿼리를 수신하는 단계;
    상기 쿼리에 나타난 상기 스코프를 컴파일된 스코프 정보와 비교하는 단계 -상기 컴파일된 스코프 정보는 복수의 스코프들 중 적어도 하나의 스코프 각각에 대해, 각각 서로 다른 매칭 규칙(matching rule)을 이용하여 컴파일된 복수의 컴파일된 스코프를 포함함-;
    상기 비교하는 동작에 기초하여, 위치가 찾아질 상기 서비스를 제공하는 것으로서 상기 복수의 컴퓨팅 시스템 중의 적어도 하나를 식별하는 단계; 및
    상기 쿼리에 대한 응답을 제공하는 단계 -상기 응답은 상기 복수의 컴퓨팅 시스템 중의 상기 적어도 하나 중에서 하나 이상에 대한 ID(identification)를 포함함-
    를 포함하는, 복수의 컴퓨팅 시스템에 의해 제공되는 서비스의 위치를 찾는 것을 돕기 위한, 컴퓨팅 시스템을 위한 방법.
  2. 제1항에 있어서,
    상기 복수의 컴파일된 스코프들은 텍스트 문자열(text string)들을 포함하는, 복수의 컴퓨팅 시스템에 의해 제공되는 서비스의 위치를 찾는 것을 돕기 위한, 컴퓨팅 시스템을 위한 방법.
  3. 제1항에 있어서,
    상기 쿼리는 사용자에 의해 입력된 검색 기준(search criteria)을 포함하는, 복수의 컴퓨팅 시스템에 의해 제공되는 서비스의 위치를 찾는 것을 돕기 위한, 컴퓨팅 시스템을 위한 방법.
  4. 제1항에 있어서,
    상기 서비스는 웹 서비스를 포함하는, 복수의 컴퓨팅 시스템에 의해 제공되는 서비스의 위치를 찾는 것을 돕기 위한, 컴퓨팅 시스템을 위한 방법.
  5. 제1항에 있어서,
    상기 매칭 규칙은, URI(Uniform Resource Identifier), UUID(Universally Unique Identifier, LDAP(Lightweight Directory Access Protocol), 및 STRCMP0(String Compare) 중 하나 이상을 포함하는, 복수의 컴퓨팅 시스템에 의해 제공되는 서비스의 위치를 찾는 것을 돕기 위한, 컴퓨팅 시스템을 위한 방법.
  6. 제1항에 있어서,
    상기 복수의 컴파일된 스코프들은 하나 이상의 상기 복수의 컴퓨팅 시스템 상에 국지적으로(locally) 컴파일되는, 복수의 컴퓨팅 시스템에 의해 제공되는 서비스의 위치를 찾는 것을 돕기 위한, 컴퓨팅 시스템을 위한 방법.
  7. 제1항에 있어서,
    상기 쿼리에 나타난 상기 스코프는 미리 컴파일된 스코프 정보를 포함하는, 복수의 컴퓨팅 시스템에 의해 제공되는 서비스의 위치를 찾는 것을 돕기 위한, 컴퓨팅 시스템을 위한 방법.
  8. 제7항에 있어서,
    상기 미리 컴파일된 스코프 정보는 서로 다른 매칭 규칙들을 이용하여 컴파일되는, 복수의 컴퓨팅 시스템에 의해 제공되는 서비스의 위치를 찾는 것을 돕기 위한, 컴퓨팅 시스템을 위한 방법.
  9. 컴퓨팅 시스템의 하나 이상의 프로세서에 의해 실행되었을 때, 상기 컴퓨팅 시스템으로 하여금 복수의 컴퓨팅 시스템 중 하나 이상에 의해 제공되는 서비스의 위치를 찾도록 컴퓨팅 시스템을 위한 방법을 수행하도록 하는 컴퓨터 실행가능 명령어들을 갖는 하나 이상의 컴퓨터 판독가능 매체를 포함하는 컴퓨터 프로그램 제품으로서,
    상기 방법은,
    사용자 입력을 이용하여, 위치가 찾아질 서비스의 복수의 스코프들 중의 스코프를 식별하는 단계;
    식별된 상기 스코프의 복수의 컴파일(compilation)을 액세스하는 단계 -상기 복수의 스코프들 중 각각의 적어도 일부는 서로 다른 매칭 규칙을 이용하여 컴파일됨-;
    상기 복수의 컴파일(compilation) 중 적어도 하나를 포함하는 쿼리가 전송되도록 하는 단계;
    상기 쿼리에 대한 응답이 수신되었음을 검출하는 단계; 및
    상기 검출하는 단계에 응답하여, 상기 쿼리에 대한 응답을 액세스하는 단계 -상기 응답은 상기 서비스를 제공하는, 상기 복수의 컴퓨팅 시스템 중 적어도 하나를 식별하기에 충분한 정보를 포함함-
    를 포함하는, 컴퓨터 프로그램 제품.
  10. 제9항에 있어서,
    상기 사용자 입력은 하나 이상의 검색 기준을 포함하는 컴퓨터 프로그램 제품.
  11. 제10항에 있어서,
    상기 방법은 상기 하나 이상의 검색 기준에 기초하여 상기 스코프를 식별하는 단계를 더 포함하는 컴퓨터 프로그램 제품.
  12. 제9항에 있어서,
    상기 복수의 컴파일(compilation)들은 원격으로 액세스되는 컴퓨터 프로그램 제품.
  13. 제9항에 있어서,
    상기 복수의 컴파일들은 미리 컴파일되는 컴퓨터 프로그램 제품.
  14. 제13항에 있어서,
    상기 미리 컴파일된 복수의 컴파일들은 원격으로 액세스되는 컴퓨터 프로그램 제품.
  15. 상호 통신이 가능한 복수의 컴퓨팅 시스템을 포함하는 컴퓨팅 환경에서, 하나 이상의 상기 복수의 컴퓨팅 시스템에 의해 제공되는 서비스의 위치를 찾기 위한, 프록시(proxy)를 위한 방법으로서,
    위치가 찾아질 서비스의 스코프를 나타내는 제1 쿼리를 수신하는 단계;
    상기 제1 쿼리에 나타난 상기 스코프를 컴파일된 스코프 정보와 비교하는 단계 -상기 컴파일된 스코프 정보는 복수의 스코프들 중 적어도 하나의 스코프 각각에 대해, 각각 서로 다른 매칭 규칙을 이용하여 컴파일된 복수의 컴파일된 스코프를 포함함- 및;
    제2 쿼리를 전송하는 단계 -상기 제2 쿼리는 상기 복수의 컴파일된 스코프들 중 적어도 하나를 포함함-
    를 포함하는, 복수의 컴퓨팅 시스템에 의해 제공되는 서비스의 위치를 찾기 위한, 프록시를 위한 방법.
  16. 제15항에 있어서,
    상기 프록시는 하나 이상의 검색 기준을 수신하고 상기 검색 기준에 기초하여 상기 스코프를 컴퓨팅(computing)하는, 복수의 컴퓨팅 시스템에 의해 제공되는 서비스의 위치를 찾기 위한, 프록시를 위한 방법.
  17. 제15항에 있어서,
    상기 제1 쿼리는 미리 컴파일된 스코프 정보를 포함하는, 복수의 컴퓨팅 시스템에 의해 제공되는 서비스의 위치를 찾기 위한, 프록시를 위한 방법.
  18. 제17항에 있어서,
    상기 미리 컴파일된 스코프 정보는 서로 다른 매칭 규칙들을 이용하여 컴파일되는, 복수의 컴퓨팅 시스템에 의해 제공되는 서비스의 위치를 찾기 위한, 프록시를 위한 방법.
  19. 제15항에 있어서,
    상기 제2 쿼리는 사용자에 의해 입력된 검색 기준을 포함하는, 복수의 컴퓨팅 시스템에 의해 제공되는 서비스의 위치를 찾기 위한, 프록시를 위한 방법.
  20. 제15항에 있어서,
    상기 제2 쿼리는 미리 컴파일된 스코프 정보를 포함하는, 복수의 컴퓨팅 시스템에 의해 제공되는 서비스의 위치를 찾기 위한, 프록시를 위한 방법.
KR1020087030426A 2006-06-15 2007-05-08 복수의 컴퓨팅 시스템에 의해 제공되는 서비스의 위치를 찾는 것을 돕기 위한, 컴퓨팅 시스템을 위한 방법, 컴퓨터 프로그램 제품 및 프록시를 위한 방법 KR20090029715A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/424,458 2006-06-15
US11/424,458 US7783718B2 (en) 2006-06-15 2006-06-15 Locating services using compiled scopes

Publications (1)

Publication Number Publication Date
KR20090029715A true KR20090029715A (ko) 2009-03-23

Family

ID=38832055

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087030426A KR20090029715A (ko) 2006-06-15 2007-05-08 복수의 컴퓨팅 시스템에 의해 제공되는 서비스의 위치를 찾는 것을 돕기 위한, 컴퓨팅 시스템을 위한 방법, 컴퓨터 프로그램 제품 및 프록시를 위한 방법

Country Status (6)

Country Link
US (1) US7783718B2 (ko)
EP (1) EP2036257B1 (ko)
JP (1) JP2009540462A (ko)
KR (1) KR20090029715A (ko)
CN (1) CN101467397A (ko)
WO (1) WO2007145743A1 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10158590B1 (en) 2010-07-09 2018-12-18 Gummarus LLC Methods, systems, and computer program products for processing a request for a resource in a communication
US10419374B1 (en) 2010-07-09 2019-09-17 Gummarus, Llc Methods, systems, and computer program products for processing a request for a resource in a communication
US10171392B1 (en) 2010-07-09 2019-01-01 Gummarus LLC Methods, systems, and computer program products for processing a request for a resource in a communication
US10015122B1 (en) 2012-10-18 2018-07-03 Sitting Man, Llc Methods and computer program products for processing a search
US20140365588A1 (en) * 2012-09-22 2014-12-11 Cedar Point Partners, Llc Methods, systems, and computer program products for processing a data object identification request in a communication
US10212112B1 (en) 2010-07-09 2019-02-19 Gummarus LLC Methods, systems, and computer program products for processing a request for a resource in a communication
US10021052B1 (en) 2012-09-22 2018-07-10 Sitting Man, Llc Methods, systems, and computer program products for processing a data object identification request in a communication
US10013158B1 (en) 2012-09-22 2018-07-03 Sitting Man, Llc Methods, systems, and computer program products for sharing a data object in a data store via a communication
US10019135B1 (en) 2012-10-18 2018-07-10 Sitting Man, Llc Methods, and computer program products for constraining a communication exchange
US10033672B1 (en) 2012-10-18 2018-07-24 Sitting Man, Llc Methods and computer program products for browsing using a communicant identifier
US11138529B2 (en) * 2017-09-11 2021-10-05 Bentley Systems, Incorporated Techniques for coordinating codes for infrastructure modeling

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1140127B1 (en) 1998-12-22 2004-06-16 Janssen Pharmaceutica N.V. Antiprotozoal saponins
US7577834B1 (en) * 2000-05-09 2009-08-18 Sun Microsystems, Inc. Message authentication using message gates in a distributed computing environment
US6957199B1 (en) * 2000-08-30 2005-10-18 Douglas Fisher Method, system and service for conducting authenticated business transactions
JP2002196990A (ja) * 2000-12-27 2002-07-12 Kddi Corp サービス発見プロトコル変換ゲートウェイ
AU2002355530A1 (en) * 2001-08-03 2003-02-24 John Allen Ananian Personalized interactive digital catalog profiling
JP3826807B2 (ja) 2002-02-13 2006-09-27 日本電気株式会社 移動通信ネットワークにおける測位システム
US7570943B2 (en) * 2002-08-29 2009-08-04 Nokia Corporation System and method for providing context sensitive recommendations to digital services
US8108455B2 (en) * 2002-10-31 2012-01-31 Oracle America, Inc. Mobile agents in peer-to-peer networks
US7188155B2 (en) * 2002-12-17 2007-03-06 International Business Machines Corporation Apparatus and method for selecting a web service in response to a request from a client device
CN1277424C (zh) 2003-03-28 2006-09-27 华为技术有限公司 位置业务中进行去激活和激活操作的交互方法
CN1276671C (zh) 2003-07-04 2006-09-20 华为技术有限公司 位置业务中位置信息请求的处理方法
US7467389B2 (en) * 2004-11-23 2008-12-16 Sybase, Inc. System and methodology providing service invocation for occasionally connected computing devices

Also Published As

Publication number Publication date
US7783718B2 (en) 2010-08-24
EP2036257A4 (en) 2013-11-06
CN101467397A (zh) 2009-06-24
US20070294711A1 (en) 2007-12-20
JP2009540462A (ja) 2009-11-19
WO2007145743A1 (en) 2007-12-21
EP2036257A1 (en) 2009-03-18
EP2036257B1 (en) 2021-12-29

Similar Documents

Publication Publication Date Title
KR20090029715A (ko) 복수의 컴퓨팅 시스템에 의해 제공되는 서비스의 위치를 찾는 것을 돕기 위한, 컴퓨팅 시스템을 위한 방법, 컴퓨터 프로그램 제품 및 프록시를 위한 방법
US7707152B1 (en) Exposing rich internet application content to search engines
US8521754B2 (en) System and methods for web data transformation sourcing
JP2009530736A (ja) 初期動的レンダリング制御データの推定
US7370036B2 (en) Facilitating identification of entire web pages when each web page is rendered from multiple portions and interest is expressed based on content of the portions
US9086932B2 (en) System landscape aware inter-application communication infrastructure
US7869585B2 (en) Declarations for transformations within service sequences
US9311281B2 (en) Methods for facilitating web page image hotspots and devices thereof
CN111988171B (zh) 基于RESTful风格请求调用SOAP Web服务的方法、代理服务器及系统
US9323587B2 (en) Method and system for automatic detecting and resolving APIs
US20080104258A1 (en) System and method for dynamic data discovery in service oriented networks with peer-to-peer based communication
CN107463453B (zh) 同一终端不同应用间通信的方法、装置、设备和存储介质
KR100901281B1 (ko) 유비쿼터스 웹서비스 방법
US20050198336A1 (en) Methods and apparatuses for automatic adaptation of different protocols
US9189546B2 (en) Semantic client, semantic information management server, method of generating semantic information, method of searching semantic information, and computer program recording medium for performing the methods
US8112472B2 (en) Method and apparatus for supporting multiple versions of a web services protocol
US20080065679A1 (en) Method for rules-based drag and drop processing in a network environment
US20060004722A1 (en) Method and system for supporting multiple versions of web services standards
US9537736B2 (en) Methods and systems to generate reports including report references for navigation
US20210149752A1 (en) Communication System
US20060047619A1 (en) UDDI metadata query development

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid