KR100996065B1 - 서비스 검색 및 서비스와 상호작용하기 위한 시스템 및방법 - Google Patents

서비스 검색 및 서비스와 상호작용하기 위한 시스템 및방법 Download PDF

Info

Publication number
KR100996065B1
KR100996065B1 KR1020087014409A KR20087014409A KR100996065B1 KR 100996065 B1 KR100996065 B1 KR 100996065B1 KR 1020087014409 A KR1020087014409 A KR 1020087014409A KR 20087014409 A KR20087014409 A KR 20087014409A KR 100996065 B1 KR100996065 B1 KR 100996065B1
Authority
KR
South Korea
Prior art keywords
service
command
response data
search information
multicast
Prior art date
Application number
KR1020087014409A
Other languages
English (en)
Other versions
KR20080080118A (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
Application filed by 파나소닉 전공 주식회사 filed Critical 파나소닉 전공 주식회사
Publication of KR20080080118A publication Critical patent/KR20080080118A/ko
Application granted granted Critical
Publication of KR100996065B1 publication Critical patent/KR100996065B1/ko

Links

Images

Classifications

    • 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
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • 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
    • G06F9/46Multiprogramming arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/12Arrangements for remote connection or disconnection of substations or of equipment thereof
    • 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/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering 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
    • 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/56Provisioning of proxy services
    • 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/56Provisioning of proxy services
    • H04L67/59Providing operational support to end devices by off-loading in the network or by emulation, e.g. when they are unavailable

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Computer Hardware Design (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Telephonic Communication Services (AREA)
  • Small-Scale Networks (AREA)

Abstract

요청자는 서비스 명령을 멀티캐스트한다. 하나의 서비스가 그 서비스 명령을 수신하는 경우, 그 서비스는 상기 서비스 명령에 의해 규정된 동작을 수행하고, 응답 데이터를 생성할 수 있다. 그런 다음 서비스는 유니캐스트를 통하여 응답 메시지를 송신할 수 있고, 요청자는 그 응답 메시지를 수신할 수 있다. 응답 메시지는 응답 데이터를 포함할 수 있다. 응답 메시지는 또한 서비스에 대한 검색 정보를 포함할 수 있고, 검색 정보는 요청자에 의한 서비스의 검색을 용이하게 하는 정보이다. 요청자는 응답 데이터 및 검색 정보를 처리한다. 만일 서비스와 그 이상의 상호작용이 요구되면, 요청자는 그 서비스와의 접속을 구축하기 위하여 상기 검색 정보를 이용할 수 있다.
서비스, 명령, 멀티캐스트, 유니캐스트, 요청자, 제공자, 검색, 응답

Description

서비스 검색 및 서비스와 상호작용하기 위한 시스템 및 방법{Systems and method for discovering and interacting with services}
본 발명은 컴퓨터 및 컴퓨터 관련 기술에 관한 것이다. 특히, 본 발명은 서비스를 검색하기 위한 그리고 서비스와 상호작용하기 위한 시스템 및 방법에 관한 것이다.
컴퓨터 및 통신 기술은 빠른 속도로 계속해서 진보하고 있다. 실제로, 컴퓨터 및 통신 기술은 다양한 양상의 인간의 일상에 관련되고 있다. 예를 들면, 소비자들에 의해 오늘날 사용되고 있는 많은 장치들은 장치의 내부에 소형 컴퓨터를 가지고 있다. 이러한 소형 컴퓨터들은 크기 및 정교함의 정도를 변화시키고 있다. 이러한 소형 컴퓨터들은 한 개의 마이크로컨트롤러로부터 충분한 기능의 완전한 컴퓨터 시스템에 이르기까지 모든 것을 포함한다. 예를 들면, 이러한 소형 컴퓨터들은 마이크로컨트롤러와 같은 원-칩(one-chip) 컴퓨터, 컨트롤러와 같은 원-보드(one-board)형 컴퓨터, 호환성이 있는 IBM-PC와 같은 전형적인 데스크탑(desktop) 컴퓨터 등일 수 있다.
컴퓨터들은 일반적으로 하나 또는 그 이상의 프로세서를 컴퓨터의 심장부에 지니고 있다. 프로세서는 보통 다른 외부의 입력요소 및 출력요소와 상호 접속되어 있고, 특정 컴퓨터 또는 장치를 관리하도록 작용한다. 예를 들면, 자동 온도 조절장치에 있는 프로세서는 온도 설정을 선택하기 위해 사용되는 버튼, 온도를 변화시키기 위한 화로 또는 냉난방 장치, 그리고 현재의 온도를 읽고 표시창에 표시하기 위한 온도 센서에 접속될 수 있다.
많은 기구, 장치 등은 하나 또는 그 이상의 소형 컴퓨터를 포함하고 있다. 예를 들면, 자동 온도 조절장치, 화로, 냉난방 시스템, 냉장고, 전화, 타자기, 자동차, 자동 판매기, 그리고 많은 다른 형태의 산업 장비는 현재 일반적으로 그들의 내부에 소형 컴퓨터 또는 프로세서를 가지고 있다. 컴퓨터 소프트웨어는 이러한 컴퓨터들의 프로세서를 운용하고 있으며, 프로세서로 하여금 어떤 작업을 수행하도록 하는 방법을 지시한다. 예를 들면, 자동 온도 조절장치상에서 동작하는 컴퓨터 소프트웨어는 냉난방 장치로 하여금 어떤 특정 온도에 도달되면 가동을 중단하도록 하거나, 필요한 경우 히터가 작동하도록 하게 할 수 있다.
장치, 설비, 기구 등의 일부인 이러한 형태의 소형 컴퓨터들은 종종 내장 (embedded) 디바이스 또는 내장 시스템으로 지칭된다. ("내장 디바이스" 및 "내장 시스템"이라는 용어는 여기에 교환가능하게 사용될 것이다.) 내장 시스템은 보통 더 큰 시스템의 부분인 컴퓨터 하드웨어 및 소프트웨어를 나타낸다. 내장 시스템들은 키보드, 마우스, 모니터와 같은 일반적인 입력 및 출력 장치를 가지지 않을 수도 있다. 일반적으로, 각 내장 시스템의 심장부에는 하나 또는 그 이상의 프로세서가 존재한다.
조명 시스템은 내장 시스템을 내장할 수 있다. 내장 시스템은 조명 시스템의 효과를 모니터링 및 조절하기 위하여 사용될 수 있다. 예를 들면, 내장 시스템은 조명 시스템 내에서의 광의 밝기를 어둡게 하기 위한 제어를 제공할 수 있다. 다른 방안으로, 내장 시스템은 조명 시스템 내에서의 광의 밝기를 증가시키기 위한 제어를 제공할 수 있다. 내장 시스템은 조명 시스템 내에서의 각각 다른 조명 (패턴들) 중에서 특정 조명 패턴을 시작하도록 하는 제어를 제공할 수 있다. 내장 시스템들은 조명 시스템 내에 있는 개개의 스위치들에 연결될 수 있다. 이러한 내장 시스템들은 그 스위치들에게 개별 조명들 또는 조명 시스템 전체의 전원을 올리거나 내리도록 명령할 수 있다. 유사하게, 내장 시스템들은 조명 시스템 내에 있는 개별 조명들에 연결될 수 있다. 각 개별 조명의 밝기 또는 전원 상태는 내장 시스템에 의해 제어될 수 있다.
보안 시스템도 또한 내장 시스템을 내장할 수 있다. 그 내장 시스템은 보안 시스템을 구성하는 개별 보안 센서들을 제어하기 위해 사용될 수 있다. 예를 들면, 내장 시스템은 각 보안 센서의 전원을 자동으로 올리기 위한 제어를 제공할 수 있다. 내장 시스템들은 각 개별 보안 센서에 연결될 수 있다. 예를 들면, 어떤 내장 시스템은 동작 센서에 연결될 수 있다. 그 내장 시스템은 개별 동작 센서의 전원을 자동으로 올릴 수 있고, 동작이 감지되면 동작 센서를 가동시키기 위한 제어를 제공할 수 있다. 동작 센서를 가동시키는 것은 동작 센서 내에 위치된 LED에 전원을 넣고, 동작 센서의 출력 포트로부터 알람(alarm)과 같은 것을 출력하기 위한 명령을 제공하는 것을 포함할 수 있다. 내장 시스템들은 또한 도어를 감시하는 센서들에 연결될 수 있다. 그 내장 시스템은 도어를 감시하는 센서에 도어가 열리거나 닫 힐 때 가동하도록 하는 명령을 제공할 수 있다. 유사하게, 내장 시스템들은 창문을 감시하는 센서들에 연결될 수 있다. 그 내장 시스템은 창문을 감시하는 센서에 창문이 열리거나 닫힐 때 가동하도록 하는 명령을 제공할 수 있다.
어떤 내장 시스템들은 또한 셀 폰(cell phone)과 같은 무선 제품들을 제어하기 위해 사용될 수 있다. 그 내장 시스템은 그 셀 폰의 LED 디스플레이의 전원을 올리기 위한 명령을 제공할 수 있다. 내장 시스템은 또한 사용자에게 셀 폰과 관련한 오디오 통지를 제공하기 위하여 셀 폰 내의 오디오 스피커를 가동시킬 수 있다.
가전 제품들도 또한 내장 시스템을 내장할 수 있다. 가전 제품들은 전통적인 부엌에서 일반적으로 사용되는 제품들, 즉 스토브(stove), 냉장고, 전자 레인지 등을 포함할 수 있다. 가전 제품들은 또한 사용자의 건강 및 안녕과 관련된 제품들을 포함할 수 있다. 예를 들면, 메시지 등받이 의자는 내장 시스템을 내장할 수 있다. 그 내장 시스템은 사용자의 선호에 따라 자동으로 의자의 등받이 부분을 눕히도록 하는 명령을 제공할 수 있다. 그 내장 시스템은 또한 사용자의 선택에 따라 등받이 의자 내에서의 진동을 야기하는 의자 내부의 진동 구성요소를 가동시키기 위한 명령을 제공할 수 있다.
가정에서 일반적으로 검색되는 추가적인 제품들은 또한 내장 시스템을 내장할 수 있다. 예를 들면, 어떤 내장 시스템은 수조를 다시 채우기 위해 사용되는 물의 수위를 제어하기 위하여 변기 내부에 사용될 수 있다. 내장 시스템들은 공기의 유출량을 제어하기 위하여 분사식 욕조 내에 사용될 수 있다.
설명한 바와 같이, 내장 시스템들은 많은 다른 시스템, 재원, 제품 등을 감 시 또는 제어하기 위하여 사용될 수 있다. 인터넷 및 월드 와이드 웹(the World Wide Web)의 성장으로 말미암아, 내장 시스템들은 그들이 원격으로 감시 또는 제어될 수 있도록 더욱더 인터넷에 연결되고 있다. 다른 내장 시스템들은 LAN(Local Area Network), WAN(Wide Area Network) 등을 포함하는 컴퓨터 네트워크에 연결될 수 있다. 여기에 사용된 바와 같은, "컴퓨터 네트워크"(또는 단순히 "네트워크")라는 용어는 일련의 노드들이 통신 경로에 의해 서로 연결되어 있는 어떤 시스템을 지칭한다. "노드"라는 용어는 컴퓨터 네트워크의 부분으로 연결될 수 있는 어떤 디바이스를 지칭한다. 내장 시스템은 네트워크 노드일 수 있다. 네트워크 노드들의 다른 예들은 컴퓨터, PDA(personal digital assistant), 셀 폰, 등을 포함한다.
어떤 내장 시스템들은 데이터 및/또는 서비스를 컴퓨터 네트워크를 이용하여 다른 컴퓨팅 장치들에게 제공할 수 있다. 많은 종류의 서비스들이 제공될 수 있다. 서비스들의 몇몇 예들은 어떤 장소로부터의 온도 데이터의 제공, 감시 데이터의 제공, 날씨 정보의 제공, 오디오 스트림의 제공, 비디오 스트림의 제공 등을 포함한다. 여기에 사용된 바와 같은, "요청자(requester)"라는 용어는 제공자로부터의 서비스를 요청하는 노드를 지칭한다. "제공자(provider)"라는 용어는 서비스를 요청자에게 제공하는 노드를 지칭한다.
컴퓨터 네트워크 내의 몇몇 노드들은 멀티캐스트 기술을 이용하여 네트워크 상의 다른 노드들에게 메시지를 전송하도록 구성될 수 있다. 컴퓨터 네트워크의 환경 내에서, "멀티캐스팅(multicasting)"이라는 용어는 네트워크상의 하나 이상의 노드에게 메시지를 동시에 전송하는 프로세스를 지칭한다. 멀티캐스팅이 네트워크 내의 특정 그룹의 노드들에게 메시지를 전송하는 것을 의미하는 반면에, 브로드캐스팅(broadcasting)은 네트워크상의 모든 노드들에게 메시지를 전송하는 것을 의미한다는 점에서 멀티캐스팅은 브로드캐스팅과 다르다.
다양한 프로토콜들이 노드들이 네트워크상에서 이용할 수 있는 서비스들을 검색하도록 허용하는 것에 대해 제한받아 왔다. 그러한 프로토콜들의 몇몇 예들은 SLP(Service Location Protocol), 본쥬르(Bonjour) 등을 포함한다. 알려진 검색 (discovery) 프로토콜들은 서비스들 및 정보와 상호작용하기 위한 방법에 대한 서비스와 정보를 검색하기 위해 일반적으로 멀티캐스트 기술을 사용한다.
알려진 접근방법들로 말미암아, 서비스를 검색하는 프로세스는 서비스와 상호작용하는 프로세스로부터 분리되어 있다. SLP 및 본쥬르와 같은 프로토콜들은 서비스들을 검색하기 위한 메커니즘은 제공하지만, 그들(서비스들)과 상호작용하기 위한 메커니즘은 제공하지 못한다. 일단 서비스가 검색되면, 완전히 서로 다른 프로토콜(예를 들면, SOAP)이 서비스와 상호작용하기 위해 사용된다. 따라서, 알려진 접근방법들을 이용하여, 서비스 요청자는 일반적으로 서비스를 처리하기 위한 두 개의 프로토콜 스택(stack)과, 서비스 검색을 위한 한 개의 프로토콜 스택 및 서비스 상호작용을 위한 한 개의 분리된 프로토콜 스택을 갖는다. 하지만, 서비스를 위해 두 개의 분리된 프로토콜 스택을 실행하는 것은 몇몇 내장 시스템들과 같은, 한정된 재원(처리 능력, 메모리 등)을 갖는 몇몇 장치들에는 곤란할 수 있다.
전술한 것을 고려하여, 컴퓨터 네트워크상에서 서비스들을 검색하는 것 및 그들과 상호작용하는 것과 관련된 개선에 의해 이익이 실현될 수 있다. 컴퓨터 네 트워크상에서 서비스의 더욱 효과적인 검색을 용이하게 하는 몇 개의 모범적인 시스템 및 방법이 여기에 개시된다.
서비스들을 검색하고 그들과 상호작용하기 위한 시스템 및 방법이 개시된다. 바람직한 실시예에 있어서, 요청자는 서비스 명령을 멀티캐스트한다. 서비스 명령에 응하여, 요청자는 이전에 자신에 의해 검색된 적이 없는 적어도 하나의 서비스로부터 응답 데이터를 수신한다. 요청자는 또한 요청자가 적어도 하나의 서비스와 더 상호작용하는 것을 가능하게 하는 검색 정보를 수신할 수 있다. 특정 서비스에 대한 검색 정보는 요청자가 서비스 제공자와 접속(예를 들면, TCP/IP 접속)을 구축하는 것을 가능하게 할 수 있다. 예를 들면, 특정 서비스에 대한 검색 정보는 서비스 제공자의 네트워크 어드레스, 그리고 서비스가 이용될 수 있는 제공자의 포트일 수 있다. 만일 서비스와 그 이상의 상호작용이 요구된다면, 요청자는 서비스 제공자와 접속을 구축하기 위한 검색 정보를 이용할 수 있다.
몇몇 실시예에서, 특정 서비스로부터의 응답 데이터 및 요청자가 서비스와 그 이상으로 상호작용하는 것을 가능하게 하는 검색 정보는 동시에 수신될 수 있다. 예를 들면, 응답 데이터는 서비스로부터 전송된 패킷의 유료부하(payload) 내에 포함될 수 있고, 검색 정보는 패킷의 운반(transport) 헤더 내에 포함될 수 있다.
요청자는 UDP(User Datagram Protocol) 실행에 따라서 서비스 명령을 멀티캐스트할 수 있다. 응답 데이터 및 검색 정보는 UDP 실행에 따라서 유니캐스트 (unicast)를 통하여 수신될 수 있다.
요청자는 비-멀티캐스트 제공자에 배치된 서비스로부터 응답 데이터를 수신할 수 있다. 이러한 상황에서, 검색 정보는 요청자가 멀티캐스트 프럭시(proxy)에 연결을 구축하는 것을 가능하게 할 수 있으며, 멀티캐스트 프럭시는 요청자와 비-멀티캐스트 제공자 사이에 인터페이스로서 기여할 수 있다.
요청자는 멀티캐스트 어드레싱을 라우트하도록 구성되지 않은 적어도 하나의 네트워킹 디바이스에 의해 요청자의 네트워크로부터 분리된 네트워크에 있는 제공자에 배치된 서비스로부터 응답 데이터를 수신할 수 있다.
본 발명의 바람직한 실시예들은 첨부된 도면과 관련하여, 다음의 설명 및 첨부된 청구범위로부터 더욱 명백해질 것이다. 이러한 도면들은 단지 바람직한 실시예들을 보여주는 것으로 이해되어야 하고, 따라서, 본 발명의 범위를 한정하는 것으로 생각해서는 아니 되며, 본 발명의 바람직한 실시예들은 첨부된 도면을 이용하여 추가적인 전문성 및 상세함을 가지고 설명될 것이다.
도 1은 일 실시예에 따른 서비스를 검색하고 서비스와 상호작용하기 위한 시스템을 보여주는 블록도.
도 2는 도 1에 도시된 실시예에서 요청자의 작용을 보여주는 흐름도.
도 3은 일 실시예에 따른 서비스 명령에 대한 응답을 포함하는 패킷 구성을 보여주는 블록도.
도 4는 일 실시예에 따른 서비스에 의해 실행될 수 있는 조건 함수를 보여주 는 블록도.
도 5는 일 실시예에 따른 비-멀티캐스트 노드들에 배치된 서비스들을 검색하고 그 서비스들과 상호작용하기 위한 시스템을 보여주는 블록도.
도 6은 일 실시예에 따른 분리된 네트워크에 있는 서비스들을 검색하고 그 서비스들과 상호작용하기 위한 시스템을 보여주는 블록도.
도 7은 일 실시예에 따라 구성된 내장 시스템에서 사용될 수 있는 하드웨어 구성요소의 블록도.
도 8은 본 시스템 및 방법이 실시될 수 있는 바람직한 조명 시스템을 보여주는 도면.
도 9는 본 시스템 및 방법이 실시될 수 있는 바람직한 보안 시스템을 보여주는 도면.
도 10은 본 시스템 및 방법이 실시될 수 있는 바람직한 홈 제어기 시스템을 보여주는 도면.
본 발명의 다양한 실시예들이 도면을 참조하여 설명되며, 여기서 동일한 참조 번호들은 동일한 또는 기능적으로 유사한 요소들을 나타낸다. 여기의 도면들에서 일반적으로 설명되고 도시된 바와 같은, 본 발명의 실시예들은 갖가지의 서로 다른 구성으로 배열 및 설계될 수 있다. 따라서, 도면에 나타내어진 바와 같은, 본 발명의 여러 바람직한 실시예들에 대한 다음의 더욱 상세한 설명은 청구된 바와 같은, 본 발명의 범위를 한정하기 위한 것은 아니며, 단지 본 발명의 실시예들을 나 타내는 것에 불과하다.
"exemplary"라는 용어는 여기서는 오로지 "견본, 실례 또는 예증으로 쓰인다는 것"을 의미하기 위해 사용된다. "exemplary"로서 여기에 설명된 어떠한 실시예도 반드시 다른 실시예들 보다도 더 좋은 또는 유리한 것으로 해석되는 것은 아니다. 다양한 형태의 실시예들이 도면에 나타내어지지만, 도면은 특별히 지시되지 않는 한, 반드시 일정한 비례로 그려지는 것은 아니다.
여기에 개시된 실시예들의 많은 특징은 컴퓨터 소프트웨어, 전자적인 하드웨어 또는 이 두 가지의 결합으로 실행될 수 있다. 하드웨어와 소프트웨어의 이러한 호환성을 확실하게 설명하기 위하여, 다양한 구성요소들이 통상 그들의 기능에 관한 용어로 설명될 것이다. 그러한 기능이 하드웨어나 소프트웨어로 실행되는지의 여부는 전체 시스템에 부과된 특정 애플리케이션 및 설계상의 제약사항들에 의해 좌우된다. 숙련된 기술자들은 설명된 기능을 각 특정 애플리케이션에 대하여 다양한 방식으로 실행할 수 있지만, 그러한 실행 결정이 본 발명의 범위로부터 일탈을 초래하는 것으로 해석되어서는 아니 된다.
설명된 기능이 컴퓨터 소프트웨어로 실행되는 경우에, 그러한 소프트웨어는 기억 장치 내에 배치된 및/또는 시스템 버스나 네트워크에 의해서 전자적인 신호로 전송된 어떤 형태의 컴퓨터 명령 또는 컴퓨터로 실행가능한 코드를 포함할 수 있다. 여기에 설명된 구성요소들과 관련된 기능을 실행하는 소프트웨어는 단일 명령, 또는 다수의 명령을 포함할 수 있고, 여러 개의 서로 다른 코드 조각들로, 서로 다른 프로그램들 사이에, 그리고 여러 개의 기억 장치들에 걸쳐 분산될 수 있다.
도 1은 일 실시예에 따른 서비스를 검색하고 서비스와 상호작용하기 위한 시스템(100)을 보여주는 블록도이다. 요청자(102)는 서비스 명령(104)을 멀티캐스트를 통하여 멀티캐스트 그룹으로 전송한다. (위에서 지시된 바와 같이, "요청자 (requestor)"라는 용어는 제공자로부터 서비스를 요청하는 노드를 지칭한다.) 서비스 명령(104)은 동작을 수행하기 위해 하나의 서비스(106)에 대한 명령이다. 서비스 명령(104)의 예들은 상기 서비스(106)에 의해 제공되는 기능을 호출하는 것, 서비스(106) 등에 의해 제공되는 변수를 판독/설정하는 것을 포함한다.
요청자(102)가 이전에 검색한 적이 없는 서비스(106)가 도 1에 도시되어 있다. 서비스(106)는 제공자(114) 상에 배치되어 있다.(위에서 지시된 바와 같이, "제공자(provider)"라는 용어는 서비스를 요청자에게 제공하는 노드를 지칭한다.) 제공자(114)가 서비스(106) 액세스를 네트워크에 제공하고, 사실은 실제로 서비스 명령(104)을 수신하여 응답 메시지(110)를 전송하는 것으로 이해될 것이다. 이러한 제공자(114)는 서비스 명령(104)이 제공된 멀티캐스트 그룹과 결합하고, 이 멀티캐스트 그룹과 결합된 멀티캐스트 포트 상에서 귀를 기울이고 있다. 그 결과, 제공자 (114)는 요청자(102)로부터 서비스 명령(104)을 수신하여 그것을 서비스(106)로 전송(forward)한다. 서비스(106)는 서비스 명령(104)에 의해 규정된 동작을 수행하여, 응답 데이터(108)을 생성할 수 있다. 예를 들면, 만일 서비스 명령(104)이 어떤 변수를 읽으라는 명령이면, 그때 응답 데이터(108)는 그 변수의 값일 수 있다. 다른 예로, 만일 서비스 명령(104)이 함수 호출이면, 그때 응답 데이터(108)는 그 함수에 의해 복귀된 하나 이상의 값일 수 있다.
서비스 명령(104)에 의해 규정된 동작을 수행한 후, 제공자(114)는 유니캐스트를 통해 응답 메시지(110)를 요청자(102)에게 전송한다. 전송된 응답 메시지 (110)는 응답 데이터(108)를 포함한다. 더구나, 응답 메시지(110)는 또한 서비스(106)와 제공자(114)에 대한 검색 정보(112)를 포함한다. 검색 정보(112)는 요청자(102)에 의한 서비스(106)와 제공자(114)의 검색을 용이하게 하는 정보이다.(위에서 설명된 바와 같이, 요청자(102)는 자신이 서비스 명령(104)을 멀티캐스트할 때, 서비스(106)를 아직 검색한 적이 없다.) 예를 들면, 검색 정보(112)는 제공자(114)의 네트워크 주소 및 서비스(106)가 이용될 수 있는 제공자(114) 상의 포트와 같은, 요청자(102)가 제공자(114)와 연결(예를 들면, TCP/IP 연결)을 구축하는 것을 가능하게 하는 정보를 포함할 수 있다. 제공자(114)가 실제로 서비스 명령(104) 및 응답 메시지(110)를 송신 및 수신한다 할지라도, 그들은 서비스(106)에 의해 마찬가지로 수신 및 송신된다고 말해질 수 있다. 유사하게, 검색 정보(112)의 일부는 제공자(114)에 관련되고 일부는 서비스(106)에 관련된다. 검색 정보(112)는 제공자(114)와 서비스(106) 모두를 동시에 검색한다.
위에서 논의된 바와 같이, 알려진 접근방법으로 서비스를 검색하는 프로세스는 서비스와 상호작용하는 프로세스로부터 격리된다. 그에 반해서, 기술된 실시예에서 요청자(102)는 동시에 서비스(106)를 검색하고 서비스(106)와 상호작용한다. 요청자(102)는 서비스 명령(104)을 멀티캐스트하는 것에 대응하여, 동시에 응답 데이터(108) 및 검색 정보(112)를 수신한다. 요청자(102)는 응답 메시지(110) 내에 포함되어 있는 서비스(106)에 대한 검색 정보(112)(예를 들면, 네트워크 주소 및 포트)를 처리함으로써 서비스(106)를 검색한다. 요청자(102)는 응답 메시지(110) 내에 포함되어 있는 응답 데이터(108)를 처리함으로써 서비스(106)와 상호작용한다.
간편을 위해, 도 1은 요청자(102)에 의해 전송된 서비스 명령(104)에 응답하는 단일 서비스(106)를 보여준다. 그러나, 다수의 서비스(106)들이 서비스 명령(104)에 응답할 수 있다. 서비스 명령(104)은 그 서비스 명령(104)을 수신하는 각 서비스(106)가 그것(서비스 명령(104))에 응답하도록 설계될 수 있다. 이것은 요청자(102)가 특정 영역 내에서 모든 서비스(106)를 검색하는 것을 허용한다. 예를 들면, 만일 서비스 명령(104)이 프린터 서비스(106)로부터 프린터 이름 변수를 읽으라는 명령인 경우, 그 서비스 명령(104)을 수신하는 각 프린터 서비스(106)는 자신의 프린터 이름 변수 값을 되돌려줄 수 있고, 그것에 의해 요청자(102)가 특정 영역(예컨대, 컴퓨터 네트워크) 내에서 이용가능한 모든 프린터들을 검색하는 것을 허용할 수 있다.
비록 다수의 서비스(106)가 서비스 명령(104)에 응답하는 것이 가능하다 할지라도, 어떤 환경하에서는 요청자(102)가 특정 영역 내에서 이용가능한 모든 프린터들을 검색하는 것을 원하지 않을 수도 있다. 대신에, 요청자(102)는 특정의 서비스(106), 또는 특정의 서비스 세트에 대해 단순히 문의하기를 원할 수도 있다. 예를 들면, 특정 영역 내에서 모든 프린터들을 검색하는 대신에, 요청자(102)는 특정 프린터 서비스(106)(예를 들면, 그것(특정 프린터 서비스)이 프린트 작업을 특정 프린터로 보낼 수 있도록 하는)를 검색하는 것을 원할 수도 있다. 이러한 기능을 제공하는 메커니즘이 아래에서 논의될 것이다.
어떤 환경하에서, 응답 메시지(110)가 서비스(106)로부터 수신된 이후에 요청자(102)가 서비스(106)와 추가적인 상호 작용을 갖는 것이 바람직할 수 있다. 예를 들면, 하나의 장치(소자)의 온도를 되돌려주는 서비스(106)를 고려해보자. 만일 서비스(106)가 그 장치(소자)의 온도가 어떤 한계값(threshold)을 초과하는 것을 나타내는 응답 메시지(110)를 보낸다면, 그때에 요청자(102)는 서비스(106)로부터 추가적인 정보를 요청하도록 구성될 수 있다.
만일 응답 메시지(110)가 서비스(106)로부터 수신된 이후에 서비스(106)와의 더 이상의 상호작용이 요망될 경우, 요청자(102)는 서비스(106)와 상호작용하기 위하여, 서비스(106)로부터 수신된 검색 정보(112)를 이용하여 제공자(114)와 접속 (116)(예를 들면, TCP/IP 접속)을 구축할 수 있다. 그 다음에 요청자(102)는 이러한 접속(116)을 통하여 서비스(106)와 한층 더 상호작용할 수 있다.
어떤 실시예들에서, 요청자(102)는 서비스 명령(104)을 멀티캐스트하기 위하여 UDP(User Datagram Protocol)의 실행을 전송 프로토콜로 이용할 수 있다. 또한, 서비스(106)는 응답 메시지(110)를 원래의 요청자(102)에게 유니캐스트(unicast)하기 위하여 UDP를 전송 프로토콜로 이용할 수 있다.
도 2는 도 1에 도시된 실시예에서 요청자(102)의 동작을 보여주는 흐름도이다. 요청자(102)는 서비스 명령(104)을 멀티캐스트 그룹으로 멀티캐스트한다(202). 요청자(102)가 이전에 검색(탐색)해본 적이 없는 적어도 하나의 서비스(106)가 요청자(102)로부터 서비스 명령(104)을 수신하고 그 서비스 명령(104)에 응답한다.
서비스(106)가 서비스 명령(104)을 수신하면, 서비스(106)는 서비스 명령 (104)에 의해 규정된 동작을 수행하고, 그것(서비스)은 응답 데이터(108)를 생성할 수 있다. 서비스(106)는 그 이후에 응답 메시지(110)를 유니캐스트를 통하여 전송할 수 있고, 요청자(102)는 그 응답 메시지(110)를 수신할 수 있다(204). 응답 메시지(110)는 또한 서비스(106)에 대한 검색 정보(112)를 포함할 수 있고, 그것(검색 정보)은 요청자(102)에 의해 서비스(106)의 검색을 용이하게 하는 정보이다.
요청자(102)는 응답 메시지(110) 내에 포함된 제공자(114)(예를 들면, 네트워크 어드레스 및 포트)에 대한 검색 정보(112)를 처리함으로써(206) 서비스(106)를 검색한다. 요청자(102)는 응답 메시지(110) 내에 포함된 응답 데이터(108)를 처리함으로써(208) 서비스(106)와 상호작용한다. 따라서, 응답 메시지(110)를 수신하고 처리함으로써, 요청자(102)는 서비스(106)를 검색하는 동시에 서비스(106)와 상호작용한다.
서비스(106)로부터 응답 메시지(110)가 수신된 후 서비스(106)와 더 이상의 상호작용이 요망되면, 요청자(102)는 서비스(106)로부터 수신된 검색 정보(112)를 이용하여 서비스(106)와 접속(116)(예를 들면, TCP/IP 접속)을 구축할 수 있다(210). 그런 후 요청자(102)는 이러한 접속(116)을 통하여 서비스(106)와 한층 더 상호작용할 수 있다(212).
도 3은 일 실시예에 따른 서비스 명령(104)에 대한 응답을 포함하는 패킷 (310)의 구성을 보여주는 블록도이다. 도시된 실시예에서, 응답 패킷(310)의 전송 헤더(318)는 서비스(106)가 속박되는 제공자(114) 상의 포트(322)뿐만 아니라, 서 비스(106)의 제공자(114)의 네트워크 어드레스(320)를 포함한다. 이러한 검색 정보 (312)는 전송 헤더(318)에 포함된다. 왜냐하면 응답 패킷(310)이, 응답 패킷(310)이 전송되기를 요청하는 서비스(106)의 일부로서 제공자(114)에 의해 처리되기 때문이다. 검색 정보(312)가 응답 패킷(310)의 전송 헤더(318)에 포함되어 있기 때문에, 검색 정보(312)가 응답 패킷(310)의 유료부하(payload)(324)에 포함되는 것은 필요하지 않다. 결과적으로, 응답 패킷(310)의 유료부하(324)는 응답 데이터(308), 즉 서비스 명령(104)에 응하여 요청자(102)에게 전송할 데이터를 포함할 수 있다.
서비스 검색(탐색)에 대한 알려진 접근방법들로 말미암아, 요청자는 일반적으로 어떤 서비스에 대한 정보를 검색하기 위해 그 서비스와 상호작용하지는 않는다. 대신에, 별도의 검색 서버가 이용가능한 서비스들에 대한 정보를 제공할 수 있다. 또한, 이용가능한 서비스들에 대한 정보의 요청에 대한 응답은 일반적으로 임시 포트(ephemeral port), 즉 응답을 전송할 목적으로 임시로 할당된 포트로부터 전송된다. 따라서, 알려진 접근로를 따라 전송된 응답 패킷(310)의 전송 헤더(318)는 서비스와 접속을 구축하는 방법에 대한 정보를 제공하지 못한다. 그에 반해서, 도시된 실시예에서 검색 정보(312)(즉, 제공자(114)의 네트워크 어드레스(320) 및 포트(322))는, 응답 패킷(310)의 유료부하(324)에 응답 데이터(308)를 위한 추가적인 공간을 남겨 놓은 채, 응답 패킷(310)의 전송 헤더(318)에 포함된다.
위에서 지적된 바와 같이, 어떤 환경하에서, 요청자는 특정 영역 내에 있는 이용가능한 모든 서비스를 검색하고 싶어하는 것이 아닐 수도 있다. 대신에, 요청자는 단순히 특정 서비스, 또는 특정 세트의 서비스에 대해 문의하기를 원할 수도 있다. 예를 들면, 네트워크 내에 있는 모든 프린터를 검색하는 대신에, 요청자는 특정 프린터(예를 들면, 요청자가 프린트 작업을 그 특정 프린터에 보낼 수 있도록 하는)를 검색하기를 원할 수도 있다.
요청자들이 특정 영역 내에 있는 특정 서비스(또는 세트의 서비스)를 검색하는 것을 가능하게 하기 위하여, 그 영역 내에 있는 각 서비스는 하나 이상의 조건이 만족되는 경우에만 어떤 값을 되돌려주는 기능을 제공할 수 있다. 이러한 종류의 기능은 여기에서는 조건부 기능으로 지칭될 것이다.
도 4는 일 실시예에 따른 서비스(406)에 의해 실행될 수 있는 하나의 조건부 기능(426)을 보여주는 블록도이다. 조건부 기능(426)은 하나 이상의 입력 파라미터들(parameters)(428), 하나 이상의 조건 평가 작용(430), 그리고 하나 이상의 조건부 반환 작용(432)을 포함한다. 입력 파라미터들(428)은 요청자가 조건부 기능 (426)을 호출할 때 요청자에 의해 제공되는 값들이다. 조건 평가 작용(430)은 하나 이상의 조건들이 만족되는지의 여부를 평가하는 작용이다. 조건 평가 작용(430)은 입력 파라미터들(428)을 서비스(406)에 의해 유지되는 하나 이상의 변수들(434)과 비교하는 것을 포함할 수 있다. 조건부 반환 작용(432)은 적절한 조건이 만족되는 경우에 값들(values)을 호출 요청자에게 되돌려주는 작용이다.
도 4에 예시된 조건부 기능(426)의 특정 예가 이제 논의될 것이다. 이 예에서, 요청자가 네트워크 내에 있는 특정 프린터를 검색하기를 원한다고 가정하자. 네트워크 내에 있는 각 프린터 서비스는 요망된 프린터의 이름을 입력 파라미터 (428)로 수용하는 조건부 기능(426)을 갖도록 구성될 수 있다. 조건부 기능(426)은 요망된 프린터의 이름을 서비스(406)에 의해 유지되는 프린터 이름 변수(434)와 비교하는 것을 포함하는 조건 평가 작용(430)을 수행한다. 조건부 반환 작용(432)이 그 다음에 수행된다. 특히, 요망된 프린터의 이름이 프린터 이름 변수(434)와 일치하면, 조건부 기능(426)은 하나의 값(예를 들면, TRUE)을 호출 요청자에게 되돌려준다. 만일 요망된 프린터의 이름이 프린터 이름 변수(434)와 일치하지 않으면, 조건부 기능(426)은 요청자에게 아무것도 되돌려주지 않는다. 만일 요청자가 하나의 콜을 본 예에서 논의된 조건부 기능(426)에 멀티캐스트하면, 오직 요망된 프린터에 해당하는 프린터 서비스(406)만이 응답할 것이다. 따라서, 요청자는 네트워크 내에서 특정 프린터를 검색할 수 있다.
위에서 설명된 실시예들은 서비스를 검색하고 서비스와 상호작용하기 위해 멀티캐스트 기술의 사용을 포함한다. 그러나, 어떤 형태의 노드들은 멀티캐스트 메시지를 처리하도록 구성되지 않을 수도 있다. 예를 들면, 어떤 노드들은 멀티캐스트 메시지를 수신 및/또는 처리할 능력이 없을 수도 있다(예를 들면, 그들은 멀티캐스트 메시지를 처리하기에 적당한 멀티캐스트 프로토콜 스택을 갖고 있지 않다). 또한, 멀티캐스트 메시지를 처리할 능력이 있는 어떤 노드들은 적어도 일시적으로 멀티캐스트 메시지를 처리하지 않도록 구성될 수 있거나 통보받을 수 있다. "비-멀티캐스트 노드(non-multicast node)"라는 용어는 여기에서 멀티캐스트 메시지를 처리하지 않는 노드를 지칭하기 위하여 사용될 수 있다. 왜냐하면, 그것은 멀티캐스트 메시지를 처리할 능력이 없거나, 멀티캐스트 메시지를 처리하지 않도록 구성되어 있거나 통보받았기 때문이다. 어떤 상황하에서, 요청자는 비-멀티캐스트 노드에 의해 제공된 서비스를 검색하고 그 서비스와 상호작용하기를 원할 수 있다.
도 5는 일 실시예에 따른 비-멀티캐스트 노드 상에 배치된 서비스를 검색 및 그 서비스와 상호작용하기 위한 시스템(500)을 보여주는 블록도이다. 시스템(500)은 멀티캐스트 프럭시(proxy)(536)를 포함한다. 일상적인 말로, 멀티캐스트 프럭시 (536)는 멀티캐스트-가능한 노드와 비-멀티캐스트 노드 사이에서 인터페이스로서의 역할을 한다. 비-멀티캐스트 노드는 멀티캐스트 프럭시(536)에 등록한다. 멀티캐스트 프럭시(536)는 등록된 비-멀티캐스트 노드를 위해 멀티캐스트 메시지를 수신하고, 그것을 등록된 비-멀티캐스트 노드로 전송(forward)한다. 비-멀티캐스트 노드는 멀티캐스트 프럭시를 통해 멀티캐스트 메시지에 응답할 수 있다.
요청자(502)가 서비스 명령(504)을 멀티캐스트를 통해 멀티캐스트 프럭시 (536)를 포함하는 멀티캐스트 그룹으로 송신하면, 멀티캐스트 프럭시(536)는 서비스 명령(504)을 수신하여 그것을 요청된 서비스를 제공하는 하나 이상의 비-멀티캐스트 노드 - 그것은 여기서는 "비-멀티캐스트 제공자(non-multicast providers)"로 지칭될 것임 - 로 전송(forward)한다. 도시된 실시예에서, 멀티캐스트 프럭시(536)와 비-멀티캐스트 제공자(514) 사이에는 하나의 접속(517)(예를 들면, TCP/IP 접속)이 존재한다. 멀티캐스트 프럭시(536)는 서비스 명령(504)을 접속(517)을 통해 비-멀티캐스트 제공자(514)로 송신(transmit)할 수 있다. 서비스 명령(504)에 의해 규정된 동작을 수행한 후, 서비스(506)는 응답 메시지(510)를 접속(517)을 통해 원래의 멀티캐스트 프럭시(536)로 보낸다. 응답 메시지(510)는 응답 데이터(508), 즉 서비스(506)가 서비스 명령(504)에 응하여 요청자(502)에게 보내는 데이터를 포함 한다. 멀티캐스트 프럭시(536)는 자신의 검색 정보(512)(즉, 멀티캐스트 프럭시 (536)의 검색을 용이하게 하는 정보)를 응답 메시지(510)에 추가하고 그 응답 메시지(510)를 유니캐스트를 통하여 최초의 요청자(502)에게 전송(forward)한다.
방금 설명된 과정은 요청자(502)가 비-멀티캐스트 제공자(514) 상에 배치된 서비스를 검색하고 그 서비스와 상호작용하는 것을 허용한다. 위에서 논의된 바와 같이, 요청자(502)는 응답 메시지(510) 내에 포함되어 있는 응답 데이터(508)를 처리함으로써 서비스(506)와 상호작용한다. 요청자(502)는 응답 메시지(510) 내에 포함되어 있는 멀티캐스트 프럭시(536)에 대한 검색 정보(512)를 처리함으로써 서비스(506)와 한층 더 상호작용하는 방법을 찾아낸다. 만일 서비스(506)와 그 이상의 상호작용이 요구된다면, 요청자(502)는 멀티캐스트 프럭시(536)와의 접속(516)을 구축하기 위하여 검색 정보(512)를 이용할 수 있다. 그런 다음 요청자(502)는 멀티캐스트 프럭시(536)를 통하여 서비스(506)와 한층 더 상호작용할 수 있다.
어떤 실시예에 있어서, 멀티캐스트 프럭시(536)는 자신이 수신한 멀티캐스트 메시지를 선택적으로 전송(forward)하는 선택적 멀티캐스트 프럭시일 수 있다. 선택적 멀티캐스트 프럭시는 멀티캐스트를 통하여 하나의 서비스 요청을 수신하면, 요청된 서비스의 제공자를 확인하여 그 서비스 요청을 그 제공자에게 명확히 송신하도록 구성될 수 있다. 바꿔 말하면, 선택적 멀티캐스트 프럭시는 서비스 요청을 오직 그 제공자에게만 전송(forward)하고, 다른 비-멀티캐스트 노드들과 같은 다른 노드들에는 전송하지 않는다. 선택적 멀티캐스트 프럭시에 대한 추가적인 상세는 출원계류중인 미국특허출원, "Systems and Methods for Providing a Selective Multicast Proxy on a Computer Network"(2005.12.16 출원, 발명자:Thomas Milligan 및 Bryant Eastham)에 설명되어 있다. 본 발명의 양수인에게 양도된, 이 출원계류중인 미국특허출원은 온전히 그대로 참고자료로 여기에 삽입된다.
어떤 환경하에서, 요청자는 분리된 네트워크에 있는 노드에 의해 제공되는 서비스를 검색하고 그 서비스와 상호작용하기를 원할 수 있다. 일반적으로, 하나 이상의 네트워킹 장치들(예를 들면, 라우터, 방화벽, 등)은 제공자의 네트워크로부터 요청자의 네트워크를 분리시킨다. 이러한 네트워킹 장치들의 몇몇 혹은 모두가 멀티캐스트 어드레싱을 라우트(route)하도록 구성되지 않을 수도 있다. 위에서 논의된 바와 같이, 요청자는 서비스 명령을 멀티캐스팅함으로써 서비스를 검색하고 그 서비스와 상호작용하는 프로세스에 착수한다. 따라서, 서비스의 검색 및 서비스와의 상호작용을 용이하게 하기 위하여, 네트워크들을 가로질러 멀티캐스트 트래픽 (traffic)의 가교역할을 하기 위한 어떤 메커니즘이 제공될 수 있다.
도 6은 일 실시예에 따른 분리된 네트워크에 있는 서비스를 검색하고 그 서비스와 상호작용하는 시스템(600)을 보여주는 블록도이다. 시스템(600)은 복수의 컴퓨터 네트워크(640), 즉 네트워크 A(640a)와 네트워크 B(640b)를 포함한다. 각 네트워크(640a)(640b)는 복수의 상호접속된 노드를 포함한다. 네트워크(640a) (640b)는 멀티캐스트 어드레싱을 라우트하도록 구성되지 않은 적어도 하나의 네트워킹 장치(642)(예를 들면, 라우터, 방화벽 등)에 의해 분리된다.
각 네트워크는 멀티캐스트 중계기(646)를 포함하는 적어도 하나의 노드(644)를 포함한다. 더 명확히는, 네트워크 A(640a)는 멀티캐스트 중계기(646a)를 포함하 는 하나의 노드(644a)를 포함하고, 네트워크 B(640b)는 멀티캐스트 중계기(646b)를 포함하는 하나의 노드(644b)를 포함한다. 일상적인 말로, 멀티캐스트 중계기(646a) (646b)는 일측 분리 네트워크(예컨대, 네트워크 A(640a)) 상에서 시발하는 멀티캐스트 메시지가 (타측 분리 네트워크로) 중계되도록 하고, 타측 분리 네트워크(예컨대, 네트워크 B(640b)) 상의 노드에 의해 응답되도록 하는 것을 허용한다. 이것을 성취하기 위하여, 각 멀티캐스트 중계기(646a)(646b)는 자신이 수신하는 각 멀티캐스트 메시지를 알려진 모든 다른 중계기로 전송(forward)하도록 구성된다(멀티캐스트 메시지가 이미 전송되지 않은 한). 멀티캐스트 중계기(646a)(646b)의 구성과 동작에 대한 추가적인 상세는 미국특허출원, "Systems and Methods for Providing a Network Bridge for UDP Multicast Traffic"(2005.12.20 출원, 발명자:Thomas Milligan 및 Bryant Eastham)에서 제공된다. 본 발명의 양수인에게 양도된, 이 미국특허출원은 여기에 온전히 그대로 참조자료로 삽입된다.
네트워크 A(640a)에서 요청자(602)가 서비스 명령을 멀티캐스트하면, 네트워크 A(640a)의 멀티캐스트 중계기(646a)는 그 서비스 명령을 수신하고 그것을 네트워크 B 중계기(646b)로 구축된 하나의 접속(예컨대, TCP/IP 접속)을 통해 네트워크 B(640b)의 멀티캐스트 중계기(646b)로 전송(forward)한다. 네트워크 B 중계기 (646b)는 네트워크 B(640b) 상의 서비스 명령을 멀티캐스트하고, 이 장소(네트워크 B)에서 네트워크 B(640b)의 제공자(614) 상의 서비스(606)에 의해 서비스 명령이 수신되고 응답된다.
전술된 바와 같이, 네트워크 내에 있는 노드는 하나 이상의 내장 시스템을 포함할 수 있다. 본 시스템 및 방법은 하나의 내장 시스템이 데이터 및/또는 서비스를 다른 컴퓨팅 장치로 제공하는 컴퓨터 네트워크에서 실행될 수 있다. 도 7은 일 실시예에 따라 구성된 내장 시스템(702)에서 사용될 수 있는 하드웨어 구성요소들의 블록도이다. CPU(708) 또는 프로세서는, 버스(710)를 통하여 CPU(708)에 접속되는 그곳의 다른 구성요소들을 포함하는, 내장 시스템(702)의 동작을 제어하기 위해 제공될 수 있다. CPU(708)는 마이크로프로세서, 마이크로컨트롤러, 디지털 신호 처리기, 또는 당 기술분야에서 알려진 다른 장치로 구현될 수 있다. CPU(708)는 메모리(714) 내에 저장되어 있는 프로그램 코드를 바탕으로 논리적 및 산술적 연산을 수행한다. 어떤 실시예에서, 상기 메모리(714)는 CPU(708)에 포함된 온-보드(on-board) 메모리일 수 있다. 예를 들면, 마이크로컨트롤러는 종종 어느 정도의 온-보드 메모리를 포함할 수 있다.
내장 시스템(702)은 또한 네트워크 인터페이스(712)를 포함할 수 있다. 네트워크 인터페이스(712)는 내장 시스템(702)이 하나의 네트워크에 접속되는 것을 허용하며, 상기 네트워크는 페이저 네트워크, 셀룰러 네트워크, 글로벌(global) 통신 네트워크, 인터넷, 컴퓨터 네트워크, 전화 네트워크 등일 수 있다. 네트워크 인터페이스(712)는 적용가능한 네트워크에 대한 표준 프로토콜에 따라 동작한다.
내장 시스템(702)은 또한 메모리(714)를 포함할 수 있다. 메모리(714)는 임시 데이터를 저장하기 위한 RAM(random access memory)을 포함할 수 있다. 다른 방안으로, 또는 추가로, 메모리(714)는 고정 코드 및 구성(configuration) 데이터와 같은, 영구적인 데이터를 저장하기 위한 ROM(read-only memory)을 포함할 수 있다. 메모리(714)는 또한 하드 디스크 드라이브와 같은, 마그네틱 저장 장치로 구현될 수 있다. 메모리(714)는 전자적 정보를 저장할 수 있는 어떤 형태의 전자적 장치일 수 있다.
내장 시스템(702)은 또한 하나 이상의 통신 포트(716)를 포함할 수 있으며, 상기 통신 포트(716)는 다른 장치와의 통신을 용이하게 한다. 내장 시스템(702)은 또한 키보드, 마우스, 조이스틱, 터치스크린, 모니터, 스피커, 프린터 등과 같은 입력/출력 장치(718)를 포함할 수 있다.
물론, 도 7은 단지 내장 시스템(702)의 하나의 가능한 구성을 보여준다. 여러 다른 아키텍처(architecture) 및 구성요소들이 활용될 수 있다.
본 시스템 및 방법은 여러 환경에서 사용될 수 있다. 도 8은 본 시스템 및 방법이 실시될 수 있는 시스템의 일 실시예를 보여준다. 도 8은 조명 제어기 시스템(808)을 포함하는 조명 시스템(800)의 일 실시예를 보여주는 블록도이다. 도 8의 조명 시스템(800)은 가정에서 여러 방에 설비될 수 있다. 도시된 바와 같이, 조명 시스템(800)은 방 A(802), 방 B(804), 방 C(806)를 포함한다. 비록 도 8에는 방 3개가 도시되어 있지만, 조명 시스템(800)은 가정, 거주지 또는 다른 환경 내에 있는 어떠한 수효의 그리고 다양한 방들에도 실행될 수 있다.
조명 제어기 시스템(808)은 조명 시스템(800) 내의 추가적인 내장 시스템 및 구성요소들을 감시 및 제어할 수 있다. 일 실시예로서, 방 A(802) 및 방 B(804)는 각각 스위치 구성요소(814)(818)를 포함한다. 스위치 구성요소(814)(818)는 또한 제2 내장 시스템(816)(820)을 포함할 수 있다. 제2 내장 시스템(816)(820)은 조명 제어기 시스템(808)으로부터 명령을 수신할 수 있다. 제2 내장 시스템(816)(820)은 그 후에 그 명령을 실행할 수 있다. 명령은 여러 조명 구성요소들(810,812,822, 824)의 전원을 온(ON) 또는 오프(OFF)하는 것을 포함할 수 있다. 명령은 또한 여러 조명 구성요소들(810,812,822,824)의 밝기를 감소시키거나 증가시키는 것을 포함할 수 있다. 명령은 여러 조명 구성요소들(810,812,822,824)의 밝기를 다양한 형태로 조정하는 것을 더 포함할 수 있다. 제2 내장 시스템(816)(820)은 조명 제어기 시스템(808)이 방 A(802) 및 방 B(804)에 위치된 각 조명 구성요소들(810,812,822,824)을 감시 및 제어하는 것을 용이하게 한다.
조명 제어기 시스템(808)은 또한 상술된 방 C(806)에 있는 제2 내장 시스템 (828)을 포함하는 조명 구성요소(826)에 직접적으로 명령을 제공할 수 있다. 조명 제어기 시스템(808)은 제2 내장 시스템(828)에 개별 조명 구성요소(826)의 전원을 내리거나 올리라고 명령(지시)할 수 있다. 유사하게, 조명 제어기 시스템(808)으로부터 수신된 명령은 개별 조명 구성요소(826)의 밝기를 감소시키거나 증가시키는 것을 포함할 수 있다.
조명 제어기 시스템(808)은 또한 시스템(800) 내에 있는 개별 조명 구성요소들(830)(832)을 감시할 수 있고 그들에게 직접적으로 명령을 제공할 수 있다. 이러한 명령은 전술된 바와 유사한 명령을 포함할 수 있다.
도 9는 본 발명의 본 시스템 및 방법이 실행될 수 있는 시스템의 추가적인 실시예이다. 도 9는 보안 시스템(900)을 보여주는 블록도이다. 상술된 실시예로서의 보안 시스템(900)은 방 A(902), 방 B(904) 및 방 C(906)에 실행된다. 이러한 방 들은 가정 또는 다른 폐쇄된 환경의 범위 내에 있는 것으로 될 수 있다. 보안 시스템(900)은 또한 방 A,B,C(902)(904)(906)가 각각 영역 또는 경계를 나타내는 개방된 환경에서 실행될 수 있다.
보안 시스템(900)은 보안 제어기 시스템(908)을 포함한다. 보안 제어기 시스템(908)은 시스템 내에 있는 다양한 구성요소들을 감시하고 그들로부터 정보를 입수한다. 예를 들면, 동작 센서(914)(918)는 제2 내장 시스템(916)(920)을 포함할 수 있다. 동작 센서(914)(918)는 동작이 제2 내장 시스템(916)(920)을 통해 감지될 때, 동작에 대한 즉각적인 간격을 감시하고 보안 제어기 시스템(908)을 경계시킨다. 보안 제어기 시스템(908)은 또한 보안 시스템(900) 내에 있는 다양한 구성요소들에 명령을 제공할 수 있다. 예를 들면, 보안 제어기 시스템(908)은 제2 내장 시스템(916)(920)에 윈도우 센서(910)(922) 및 도어 센서(912)(924)의 전원을 올리거나 내리라는 명령을 제공할 수 있다. 하나의 실시예에 있어서, 제2 내장 시스템 (916)(920)은 보안 제어기 시스템(908)에 윈도우 센서(910)(922)가 윈도우의 움직임을 감지한 때를 통보한다. 유사하게, 제2 내장 시스템(916)(920)은 보안 제어기 시스템(908)에 도어 센서(912)(924)가 도어의 움직임을 감지한 때를 통보한다. 제2 내장 시스템(916)(920)은 동작 센서(914)(918)에 동작 센서(914)(918) 내부에 위치된 LED(미도시)를 구동시키라고 명령할 수 있다.
보안 제어기 시스템(908)은 또한 보안 시스템(900) 내에 있는 개별 구성요소들을 감시하고 그들에게 직접적으로 명령을 제공할 수 있다. 예를 들면, 보안 제어기 시스템(908)은 동작 센서(930) 또는 윈도우 센서(932)를 감시하고, 동작 센서 (930) 또는 윈도우 센서(932)에 전원을 올리거나 내리라는 명령을 제공할 수 있다. 보안 제어기 시스템(908)은 또한 동작 센서(930) 및 윈도우 센서(932)에 그 센서들 (930)(932) 내부에 있는 LED(미도시) 또는 오디오 경보 통지를 구동시키라고 명령할 수 있다.
보안 시스템(900)을 구성하는 각 개별 구성요소는 또한 제2 내장 시스템을 포함할 수 있다. 예를 들면, 도 9는 제2 내장 시스템(928)을 포함하는 도어 센서 (926)를 보여준다. 보안 제어기 시스템(908)은 전술된 바와 유사한 방식으로 제2 내장 시스템(928)을 감시할 수 있고, 제2 내장 시스템(928)에 명령을 제공할 수 있다.
도 10은 홈 제어 시스템(1000)의 일 실시예를 보여주는 블록도이다. 홈 제어시스템(1000)은 상기 조명 시스템(800), 보안 시스템(900) 등과 같은 다양한 시스템들의 감시를 용이하게 하는 홈 제어기(1008)를 포함한다. 홈 제어 시스템(1000)은 사용자가 하나 이상의 내장 시스템을 통하여 다양한 구성요소들 및 시스템들을 제어하는 것을 허용한다. 일 실시예로서, 홈 제어기(1008)는 도 8 및 9와 관련하여 전술된 바와 동일한 방식으로 감시하고 정보를 제공한다. 상술된 실시예에서, 홈 제어기(1008)는 제2 내장 시스템(1020)을 통하여 난방 구성요소 (1024)에 명령을 제공한다. 난방 구성요소(1024)는 주거지나 사무실에서 일반적으로 발견되는 난로 또는 다른 난방 장치를 포함할 수 있다. 홈 제어기(1008)는 제2 내장 시스템(1020)을 통하여 난방 구성요소(1024)의 전원을 올리거나 내리도록 하는 명령을 제공할 수 있다.
유사하게, 홈 제어기(1008)는 냉방 구성요소(1030)와 같은 홈 제어 시스템 (1000) 내에 있는 하나의 구성요소를 감시할 수 있고 그 구성요소에 직접적으로 명령을 제공할 수 있다. 냉방 구성요소(1030)는 주거지나 사무실에서 일반적으로 발견되는 에어컨 또는 다른 냉방 장치를 포함할 수 있다. 중앙의 홈 제어기(1008)는 중앙의 내장 시스템(미도시)에 의해 수집된 온도 독출값에 따라 냉방 구성요소 (1030)에 전원을 올리거나 내리도록 명령할 수 있다. 홈 제어 시스템(1000)은 도 8 및 9와 관련하여 전술된 바와 유사한 방식으로 작용한다.
정보 및 신호들은 다양한 서로 다른 응용과학 및 기술의 어떤 것을 이용하여 표현될 수 있다. 예를 들면, 위의 설명을 통하여 아마 줄곧 언급된 데이터, 지시, 명령, 정보, 신호, 비트(bit), 심볼 및 칩(chip)은 전압, 전류, 전자파, 자계 또는 자기 입자, 광학장(optical field) 또는 광입자, 또는 그 어떤 조합으로 표현될 수 있다.
여기에 개시된 실시예들과 관련하여 설명된 여러 가지의 예시적인 논리적 블록들, 모듈들, 회로들 및 알고리즘 단계들은 전자적인 하드웨어, 컴퓨터 소프트웨어, 또는 그 둘의 결합으로 실행될 수 있다. 이러한 하드웨어와 소프트웨어의 호환성을 명확하게 설명하기 위하여, 다양한 예시적인 구성요소들, 블록들, 모듈들, 회로들 및 단계들이 일반적으로 그들의 기능성의 견지에서 위에서 설명되어 왔다. 그러한 기능성이 하드웨어 또는 소프트웨어로 실행되는지의 여부는 시스템 전체에 부과된 특별한 애플리케이션 및 디자인 제약에 달려 있다. 숙련된 기술자들은 설명된 기능성을 각각의 특별한 애플리케이션에 대하여 다양한 방식으로 실행할 수 있지 만, 그러한 실행 결정은 본 발명의 범위로부터 일탈을 야기하는 것으로 해석되어서는 아니 된다.
여기에 개시된 실시예들과 관련하여 설명된 여러 가지의 예시적인 논리적 블록들, 모듈들, 회로들은 범용 프로세서, DSP(Digital Signal Processor), ASIC (Application Specific Integrated Circuit), FPGA(Field Programmable Gate Array) 또는 다른 프로그래머블 로직 디바이스, 개별 논리회로 또는 트랜지스터 논리(logic), 개별 하드웨어 구성요소, 또는 여기에 설명된 기능들을 수행하도록 설계된 그 어떤 조합으로 실행 또는 수행될 수 있다. 범용 프로세서는 마이크로프로세서일 수 있지만, 대안으로, 그 프로세서는 어떤 종래의 프로세서, 컨트롤러, 마이크로컨트롤러, 또는 상태 컴퓨터(state machine)일 수 있다. 프로세서는 또한 컴퓨팅 장치의 조합, 예를 들면, DSP와 하나의 마이크로프로세서, 복수의 마이크로프로세서, DSP 코어와 결합하는 하나 이상의 마이크로프로세서, 또는 어떤 다른 그러한 구성의 조합으로 실시될 수 있다.
여기에 개시된 실시예들과 관련하여 설명된 방법 또는 알고리즘의 단계들은 하드웨어로, 프로세서에 의해 실행된 소프트웨어 모듈로, 또는 그 둘의 조합으로 즉시 구현될 수 있다. 소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터(register), 하드 디스크, 이동가능한 (removable) 디스크, CD-ROM, 또는 당해 기술분야에서 알려진 어떤 다른 형태의 저장 매체에 존재할 수 있다. 전형적인 저장 매체가 프로세서에 결합되어 프로세서는 그 저장 매체로부터 정보를 읽을 수 있고, 그 저장 매체에 정보를 기록할 수 있다. 대안으로, 저장 매체는 프로세서에 집적될 수 있다. 프로세서와 저장 매체는 ASIC에 존재할 수 있다. ASIC은 사용자 단말에 존재할 수 있다. 대안으로, 프로세서 및 저장 매체는 사용자 단말 내부에 개별 구성요소로 존재할 수 있다.
여기에 개시된 방법들은 설명된 방법을 성취하기 위한 하나 이상의 단계들 또는 행위들을 포함한다. 그 방법 단계 및/또는 행위들은 본 발명의 범위로부터 벗어남이 없이 서로 간에 바꾸어 놓여 질 수 있다. 다시 말해서, 단계들 또는 행위들의 특정 순서가 실시예의 적절한 동작을 위해 요구되지 않는 한, 특정 단계들 및/또는 행위들의 순서 및/또는 사용은 본 발명의 범위로부터 벗어남이 없이 변경될 수 있다.
본 발명의 구체적인 실시예들 및 애플리케이션이 예시되고 설명되었다 할지라도, 본 발명은 여기에 개시된 정밀한 구성 및 구성요소들에 한정되지 않는다는 것이 이해될 것이다. 당업자에게 자명한 다양한 변형, 변화 및 변경이 본 발명의 사상 및 범위를 벗어남 없이 여기에 개시된 본 발명의 방법 및 시스템의 배치, 동작 및 세부사항에 있어서 만들어질 수 있다.
본 발명은 내장 시스템에 적용될 수 있다.

Claims (20)

  1. 서비스 검색 및 서비스와 상호작용하기 위한 방법으로서, 상기 방법은 요청자에 의해 실행되며, 상기 요청자는 서비스를 제공하는 노드로부터 서비스를 요구하는 컴퓨터 시스템 내의 노드를 대표하고,
    서비스 명령을 멀티캐스트하며, 상기 서비스 명령은 처리를 실행하는 서비스의 지시 단계;
    상기 서비스 명령에 응하여 적어도 하나의 서비스로부터 응답 데이터를 수신하고, 상기 응답 데이터는 상기 서비스 명령에 의해 지정된 상기 처리를 실행하는 것에 의해 적어도 하나의 서비스로부터 생성되는 단계;
    상기 서비스 명령에 응하여, 상기 요청자가 적어도 하나의 서비스와 상호작용하는 것을 가능하게 하기 위하여, 상기 요청자에 의해 상기 적어도 하나의 서비스의 검색을 용이하게 하는 검색 정보를 수신하는 단계;
    상기 검색 정보를 처리하는 것에 기초하여 상기 적어도 하나의 서비스를 검색하는 단계 및
    상기 응답 데이터를 처리하는 것에 기초하여 적어도 하나의 서비스와 정보를 취하는 단계를 포함하는 것을 특징으로 하는 서비스 검색 및 서비스와 상호작용하기 위한 방법.
  2. 제1항에 있어서,
    상기 적어도 하나의 서비스는 상기 요청자에 의해 이전에 검색된 적이 없는것을 특징으로 하는 서비스 검색 및 서비스와 상호작용하기 위한 방법.
  3. 제1항에 있어서,
    상기 응답 데이터 및 상기 검색 정보는 동시에 수신되는 것을 특징으로 하는 서비스 검색 및 서비스와 상호작용하기 위한 방법.
  4. 제1항에 있어서,
    상기 적어도 하나의 서비스와 접속하기 위하여 상기 검색 정보를 이용하는 것을 더 포함하는 것을 특징으로 하는 서비스 검색 및 서비스와 상호작용하기 위한 방법.
  5. 제1항에 있어서,
    하나의 특정 서비스로부터의 상기 검색 정보는,
    상기 서비스의 제공자의 네트워크 어드레스; 및
    상기 서비스가 이용가능하게 되는 상기 제공자 상의 하나의 포트를 포함하는것을 특징으로 하는 서비스 검색 및 서비스와 상호작용하기 위한 방법.
  6. 제1항에 있어서,
    하나의 특정 서비스로부터의 상기 검색 정보는 상기 서비스로부터 발송된 패킷의 전송 헤더(transport header) 내에 포함되어 있는 것을 특징으로 하는 서비스 검색 및 서비스와 상호작용하기 위한 방법.
  7. 제1항에 있어서,
    하나의 특정 서비스로부터의 상기 응답 데이터는 상기 서비스로부터 발송된 패킷의 유료부하(payload) 내에 포함되어 있는 것을 특징으로 하는 서비스 검색 및 서비스와 상호작용하기 위한 방법.
  8. 제1항에 있어서,
    상기 서비스 명령은 하나의 조건부 기능에 대한 호출인 것을 특징으로 하는 서비스 검색 및 서비스와 상호작용하기 위한 방법.
  9. 제1항에 있어서,
    상기 적어도 하나의 서비스는 비-멀티캐스트 제공자 상에 배치된 서비스를 포함하는 것을 특징으로 하는 서비스 검색 및 서비스와 상호작용하기 위한 방법.
  10. 제1항에 있어서,
    상기 적어도 하나의 서비스는 멀티캐스트 어드레싱을 라우트하도록 구성되지않은 적어도 하나의 네트워킹 장치에 의해 상기 요청자의 네트워크로부터 분리된 네트워크에서의 제공자 상에 배치된 서비스를 포함하는 것을 특징으로 하는 서비스 검색 및 서비스와 상호작용하기 위한 방법.
  11. 제1항에 있어서,
    상기 서비스 명령의 멀티캐스팅은 UDP(User Datagram Protocol) 실행에 따라 수행되는 것을 특징으로 하는 서비스 검색 및 서비스와 상호작용하기 위한 방법.
  12. 제1항에 있어서,
    상기 응답 데이터 및 상기 검색 정보는 UDP 실행에 따라 유니캐스트를 통하여 수신되는 것을 특징으로 하는 서비스 검색 및 서비스와 상호작용하기 위한 방법.
  13. 서비스 검색 및 서비스와 상호작용하기 위한 방법을 실행하도록 구성된 컴퓨터 시스템으로서,
    프로세서;
    상기 프로세서와 전자적으로 통신하는 메모리;
    상기 메모리에 저장된 명령들을 포함하고, 상기 명령들은 하나의 방법을 실시하도록 실행가능하게 되며, 상기 하나의 방법은,
    서비스 명령을 멀티캐스트하고, 상기 서비스 명령은 처리를 실행하는 서비스의 지시 단계;
    상기 서비스 명령에 응하여 적어도 하나의 서비스로부터 응답 데이터를 수신하고, 상기 응답 데이터는 상기 서비스 명령에 의해 지정된 상기 처리를 실행하는 것에 의해 적어도 하나의 서비스로부터 생성되는 단계;
    상기 서비스 명령에 응하여, 상기 요청자가 상기 적어도 하나의 서비스와 상호작용하는 것을 가능하게 하기 위하여, 상기 요청자에 의해 상기 적어도 하나의 서비스의 검색을 용이하게 하는 검색 정보를 수신하는 단계;
    상기 검색 정보를 처리하는 것에 기초하여 상기 적어도 하나의 서비스를 검색하는 단계 및
    상기 응답 데이터를 처리하는 것에 기초하여 적어도 하나의 서비스와 정보를 취하는 단계를 포함하는 것을 특징으로 하는 서비스 검색 및 서비스와 상호작용하기 위한 방법을 실행하도록 구성된 컴퓨터 시스템.
  14. 제13항에 있어서,
    상기 적어도 하나의 서비스는 상기 요청자에 의해 이전에 검색된 적이 없는 것을 특징으로 하는 서비스 검색 및 서비스와 상호작용하기 위한 방법을 실행하도록 구성된 컴퓨터 시스템.
  15. 제13항에 있어서,
    상기 응답 데이터 및 상기 검색 정보는 동시에 수신되는 것을 특징으로 하는 서비스 검색 및 서비스와 상호작용하기 위한 방법을 실행하도록 구성된 컴퓨터 시스템.
  16. 제13항에 있어서,
    상기 방법은 상기 적어도 하나의 서비스와 접속하기 위하여 상기 검색 정보를 이용하는 것을 더 포함하는 것을 특징으로 하는 서비스 검색 및 서비스와 상호작용하기 위한 방법을 실행하도록 구성된 컴퓨터 시스템.
  17. 컴퓨터 노드로부터 실행될 때, 상기 컴퓨터가 서비스를 검색하고 서비스와 상호작용하게 하기 위한 방법을 실시하기 위한 실행가능한 명령들을 포함하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체로서,
    상기 방법은,
    서비스 명령을 멀티캐스트하고, 상기 서비스 명령은 처리를 실행하는 서비스의 지시 단계;
    상기 서비스 명령에 응하여 적어도 하나의 서비스로부터 응답 데이터를 수신하고, 상기 응답 데이터는 상기 서비스 명령에 의해 지정된 상기 처리를 실행하는 것에 의해 적어도 하나의 서비스로부터 생성되는 단계;
    상기 서비스 명령에 응하여, 상기 컴퓨터 노드에 의해 적어도 하나의 서비스와 상호작용하는 것을 가능하게 하기 위하여, 상기 컴퓨터 노드에 의해 상기 적어도 하나의 서비스의 검색을 용이하게 하는 검색 정보를 수신하는 단계;
    상기 검색 정보를 처리하는 것에 기초하여 상기 적어도 하나의 서비스를 검색하는 단계 및
    상기 응답 데이터를 처리하는 것에 기초하여 적어도 하나의 서비스와 정보를 취하는 단계를 포함하는 것을 특징으로 하는 서비스를 검색하고 서비스와 상호작용하기 위한 방법을 실시하기 위한 실행가능한 명령들을 포함하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체.
  18. 제17항에 있어서,
    상기 적어도 하나의 서비스는 이전에 상기 컴퓨터 노드에 의해 검색된 적이 없는 것을 특징으로 하는 서비스를 검색하고 서비스와 상호작용하기 위한 방법을 실시하기 위한 실행가능한 명령들을 포함하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체.
  19. 제17항에 있어서,
    상기 응답 데이터 및 상기 검색 정보는 동시에 수신되는 것을 특징으로 하는 서비스를 검색하고 서비스와 상호작용하기 위한 방법을 실시하기 위한 실행가능한 명령들을 포함하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체.
  20. 제17항에 있어서,
    상기 방법은 상기 적어도 하나의 서비스와 접속하기 위하여 상기 검색 정보를 이용하는 것을 더 포함하는 것을 특징으로 하는 서비스를 검색하고 서비스와 상호작용하기 위한 방법을 실시하기 위한 실행가능한 명령들을 포함하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체.
KR1020087014409A 2005-12-28 2006-02-07 서비스 검색 및 서비스와 상호작용하기 위한 시스템 및방법 KR100996065B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/320,498 US7330882B2 (en) 2005-12-28 2005-12-28 Systems and methods for discovering and interacting with services
US11/320,498 2005-12-28

Publications (2)

Publication Number Publication Date
KR20080080118A KR20080080118A (ko) 2008-09-02
KR100996065B1 true KR100996065B1 (ko) 2010-11-22

Family

ID=36588899

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087014409A KR100996065B1 (ko) 2005-12-28 2006-02-07 서비스 검색 및 서비스와 상호작용하기 위한 시스템 및방법

Country Status (8)

Country Link
US (1) US7330882B2 (ko)
EP (1) EP1966692B1 (ko)
JP (1) JP4140660B1 (ko)
KR (1) KR100996065B1 (ko)
CN (1) CN100451973C (ko)
HK (1) HK1108742A1 (ko)
RU (1) RU2399086C2 (ko)
WO (1) WO2007077633A1 (ko)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3973986B2 (ja) * 2002-07-12 2007-09-12 株式会社エヌ・ティ・ティ・ドコモ ノード探索方法、ノード、通信システム及びノード探索プログラム
US7613426B2 (en) * 2005-12-20 2009-11-03 Microsoft Corporation Proximity service discovery in wireless networks
US8478300B2 (en) * 2005-12-20 2013-07-02 Microsoft Corporation Proximity service discovery in wireless networks
US8559350B2 (en) * 2005-12-20 2013-10-15 Microsoft Corporation Mechanism to convey discovery information in a wireless network
US20070264991A1 (en) * 2006-05-15 2007-11-15 Microsoft Corporation Services near me: discovering and connecting to available wireless services utilizing proximity discovery
US10681151B2 (en) 2006-05-15 2020-06-09 Microsoft Technology Licensing, Llc Notification framework for wireless networks
US7974574B2 (en) * 2007-07-25 2011-07-05 Microsoft Corporation Base station initiated proximity service discovery and connection establishment
US8681691B2 (en) 2007-07-25 2014-03-25 Microsoft Corporation Base station initiated proximity service discovery and connection establishment
US9105031B2 (en) * 2008-02-22 2015-08-11 Microsoft Technology Licensing, Llc Authentication mechanisms for wireless networks
CN102006315A (zh) * 2009-08-28 2011-04-06 迈普通信技术股份有限公司 分布式系统远程过程调用通信方法
US9164494B2 (en) * 2010-01-11 2015-10-20 Innovation Timing Systems, LLC Sports timing system (STS) integrated communication system and method
EP2367356B1 (en) * 2010-03-17 2012-05-23 Lg Electronics Inc. Method for IPTV service discovery and IPTV receiver using the same
EP2772025A4 (en) * 2011-10-24 2015-12-23 Schneider Electric Ind Sas REMOTE COMMUNICATION SYSTEMS AND METHODS
KR20130091098A (ko) * 2012-02-07 2013-08-16 한국전자통신연구원 노드 탐색 메시지를 전송하기 위한 장치 및 방법
CN103684900B (zh) * 2012-09-19 2018-03-16 腾讯科技(深圳)有限公司 业务巡检方法和系统
US10284659B2 (en) * 2013-01-25 2019-05-07 Apple Inc. Hybrid unicast/multicast DNS-based service discovery
CN105340247B (zh) * 2013-04-09 2020-10-16 罗伯特·博世有限公司 用于计算机网络中网络容变服务发现的方法
KR102062078B1 (ko) 2013-06-05 2020-01-03 한국전자통신연구원 통신 개체 탐색 방법 및 장치
CN104283979B (zh) * 2013-07-11 2017-11-17 华为技术有限公司 组播域名系统中报文传输的方法、装置及系统
KR102016416B1 (ko) 2014-03-03 2019-09-02 한국전자통신연구원 노드 및 노드 간 통신 연결 방법
US20160192403A1 (en) * 2014-12-30 2016-06-30 Qualcomm Incorporated Mechanism to provide lte voice, internet and embms services over ethernet for connected home architecture
US10419497B2 (en) * 2015-03-31 2019-09-17 Bose Corporation Establishing communication between digital media servers and audio playback devices in audio systems

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6185611B1 (en) 1998-03-20 2001-02-06 Sun Microsystem, Inc. Dynamic lookup service in a distributed system
US20030140119A1 (en) * 2002-01-18 2003-07-24 International Business Machines Corporation Dynamic service discovery
US20040019636A1 (en) * 2002-07-24 2004-01-29 Sun Microsystems, Inc. System and method for dynamically routing web procedure calls

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3999051A (en) * 1974-07-05 1976-12-21 Sperry Rand Corporation Error logging in semiconductor storage units
US6845393B1 (en) 1999-06-14 2005-01-18 Sun Microsystems, Inc. Lookup discovery service in a distributed system having a plurality of lookup services each with associated characteristics and services
US6615374B1 (en) * 1999-08-30 2003-09-02 Intel Corporation First and next error identification for integrated circuit devices
US6776636B1 (en) * 1999-11-05 2004-08-17 Baker Hughes Incorporated PBR with TEC bypass and wet disconnect/connect feature
US20020107939A1 (en) * 2001-02-07 2002-08-08 Ford Daniel E. System and method for accessing software components in a distributed network environment
US7962605B2 (en) * 2001-11-20 2011-06-14 Microsoft Corporation Distributed device discovery framework for a network
US6876636B2 (en) 2002-07-09 2005-04-05 Qualcomm Inc. Method and system for a multicast service initiation in a communication system
US7035257B2 (en) * 2002-11-14 2006-04-25 Digi International, Inc. System and method to discover and configure remotely located network devices
CN1178424C (zh) * 2003-01-31 2004-12-01 联想(北京)有限公司 网络会议中设备及服务动态加入的方法及其系统
JP2004272632A (ja) * 2003-03-10 2004-09-30 Sony Corp 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
CN1282366C (zh) * 2003-03-31 2006-10-25 联想(北京)有限公司 网络中设备状态的检测方法
CN101095127B (zh) * 2003-06-02 2014-04-09 精工爱普生株式会社 通过网络通告图像显示设备的存在的方法
US9160571B2 (en) 2004-03-11 2015-10-13 Hewlett-Packard Development Company, L.P. Requesting a service from a multicast network
US7423986B2 (en) 2004-03-26 2008-09-09 Cisco Technology, Inc. Providing a multicast service in a communication network

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6185611B1 (en) 1998-03-20 2001-02-06 Sun Microsystem, Inc. Dynamic lookup service in a distributed system
US20030140119A1 (en) * 2002-01-18 2003-07-24 International Business Machines Corporation Dynamic service discovery
US20040019636A1 (en) * 2002-07-24 2004-01-29 Sun Microsystems, Inc. System and method for dynamically routing web procedure calls

Also Published As

Publication number Publication date
EP1966692B1 (en) 2015-09-30
EP1966692A1 (en) 2008-09-10
KR20080080118A (ko) 2008-09-02
JP4140660B1 (ja) 2008-08-27
JP2008542853A (ja) 2008-11-27
US20070150570A1 (en) 2007-06-28
WO2007077633A1 (en) 2007-07-12
RU2399086C2 (ru) 2010-09-10
RU2008124972A (ru) 2009-12-27
US7330882B2 (en) 2008-02-12
CN101069159A (zh) 2007-11-07
CN100451973C (zh) 2009-01-14
HK1108742A1 (en) 2008-05-16

Similar Documents

Publication Publication Date Title
KR100996065B1 (ko) 서비스 검색 및 서비스와 상호작용하기 위한 시스템 및방법
RU2408993C2 (ru) Системы и способы для предоставления избирательного многоадресного прокси-сервера по компьютерной сети
US7529241B2 (en) Systems and methods for providing a network bridge for UDP multicast traffic
JP4412405B2 (ja) ネットワーク内通信用転送処理を選択するためのシステムと方法
KR100970533B1 (ko) 피투피 네트워크 내에서의 트래픽 관리 시스템 및 방법
EP1964373B1 (en) Systems and methods for efficient electronic communication in a distributed routing environment
KR100996026B1 (ko) 분산 라우팅 환경에서의 장애 극복 처리 시스템 및 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20131018

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20141022

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20151016

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20161020

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20171018

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20181022

Year of fee payment: 9