KR20180029232A - M2m 디바이스들의 크롤링 - Google Patents

M2m 디바이스들의 크롤링 Download PDF

Info

Publication number
KR20180029232A
KR20180029232A KR1020187002980A KR20187002980A KR20180029232A KR 20180029232 A KR20180029232 A KR 20180029232A KR 1020187002980 A KR1020187002980 A KR 1020187002980A KR 20187002980 A KR20187002980 A KR 20187002980A KR 20180029232 A KR20180029232 A KR 20180029232A
Authority
KR
South Korea
Prior art keywords
crawler
service
web
devices
metadata
Prior art date
Application number
KR1020187002980A
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 KR20180029232A publication Critical patent/KR20180029232A/ko

Links

Images

Classifications

    • G06F17/30864
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements
    • G06Q30/0277Online advertisement
    • 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/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • 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
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/70Services for machine-to-machine communication [M2M] or machine type communication [MTC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W80/00Wireless network protocols or protocol adaptations to wireless operation
    • H04W80/08Upper layer protocols
    • H04W80/12Application layer protocols, e.g. WAP [Wireless Application Protocol]

Abstract

다양한 예시적인 실시예들에 따르면, M2M 크롤러 서비스는 M2M 디바이스들이 웹 크롤러들에 의해 효율적으로 그리고 효과적으로 크롤링될 수 있게 하는 능력들을 지원할 수 있다. 그 결과, M2M 디바이스들은 웹 검색 엔진들에 의해 그리고 그에 따라 웹 검색 엔진들을 사용하는 웹 사용자들에 의해 인덱싱되고 검색될 수 있다. 따라서, 본원에 설명된 M2M 크롤러 서비스는 M2M 디바이스들이 사물 인터넷/사물 웹으로 통합되는 것을 가능하게 할 수 있다.

Description

M2M 디바이스들의 크롤링{CRAWLING OF M2M DEVICES}
관련 출원들에 대한 상호 참조
본 출원은 2013년 10월 21일자로 출원된 미국 가특허 출원 제61/893,573호의 혜택을 주장하는데, 그것의 개시내용은 이로써 참조로 본원에 완전히 제시된 것처럼 포함된다.
웹 사용자들은 웹 페이지들, 문서들 등과 같은 이용가능 웹 콘텐츠를 선행적으로 발견하기 위해 웹 크롤러들, 인덱서들 및 검색 엔진들에 많이 의존한다. 따라서, 사용자들은 선택 웹 브라우저들 및 검색 엔진들을 통해 적시적 및 효과적 방식으로 이들이 보고 있는 웹 콘텐츠를 질의하고 발견할 수 있다.
사람들이 검색 엔진(예를 들어, 구글)을 통해 웹사이트를 발견할 수 있도록, 웹사이트는 검색 엔진의 웹 크롤러(예를 들어, 구글봇)에 의해 우선 크롤링되고 웹사이트의 콘텐츠는 검색 엔진의 인덱스 데이터베이스(예를 들어, 구글의 인덱스 데이터베이스)에 인덱싱되고 추가된다. 예로서, 도 1을 참조하면, 웹 크롤러(102)는 웹 서버들, FTP 서버들 등을 크롤링할 수 있다. 웹 인덱서(104)는 예를 들어 URL들 또는 키워드들을 사용하여 크롤링된 콘텐츠를 인덱싱할 수 있고, 웹 검색 엔진(106)은 검색 결과들로 디스플레이될 수 있는 인덱싱된 콘텐츠를 발견할 수 있다. 이러한 크롤링 및 인덱싱 액션들은 웹 검색 엔진들(106)에 의해 사용될 수 있는 정보의 검색가능 데이터베이스를 생성하기 위해 선행적 방식으로 수행될 수 있다. 그렇게 함으로써, 웹 검색들은 질의를 웹 검색 엔진으로 입력하는 것과 응답을 되찾는 것 사이의 매우 적은 지연을 갖는 적시적 방식으로 수행될 수 있다. 웹 크롤러(102), 웹 인덱서(104), 및 웹 검색 엔진(106)이 도 1에 개별적으로 도시되지만, 실례는 단지 예시적인 목적들을 위한 것이고, 웹 크롤러들, 웹 인덱서들, 및 웹 검색 엔진들은 서로 통합될 수 있다는 점이 이해될 것이다.
따라서, 웹 크롤러는 일반적으로 그것이 인덱싱하는 새로운 또는 갱신된 웹 페이지들 및 문서들을 발견하는 웹사이트에서 웹사이트로 가는(크롤링하는) 웹 클라이언트를 언급한다. 웹 크롤러는 또한 웹 로봇 또는 봇으로 언급될 수 있다. 상기 언급된 바와 같이, 웹 인덱싱은 키워드들을 추상화하는 웹 페이지 또는 문서 및/또는 검색 엔진의 인덱싱 데이터베이스에 추가될 수 있는 정보를 스캐닝하는 프로세스를 언급한다. 웹 검색 엔진은 일반적으로 웹 크롤링 및 인덱싱에 의해 제공되는 정보를 사용하여 웹 상에 이용가능한 정보에 대한 질의들을 서비스하도록 설계되는 소프트웨어를 언급한다. 웹사이트들은 일반적으로 웹사이트를 운영하고 유지할 책임이 있는 사람인 웹마스터에 의해 전형적으로 유지되고 관리된다. 상기 언급된 바와 같이, 웹 크롤러들은 웹 서버들, FTP 서버들 등을 크롤링할 수 있지만, 현재 웹은 능력들이 없다. 예를 들어, 현재 웹은 예를 들어 다양한 머신-대-머신(machine-to-machine)(M2M) 디바이스들과 같은 자원 제약 디바이스들을 효율적으로 그리고 효과적으로 크롤링하지 못한다. 따라서, 다양한 M2M 디바이스들은 웹 검색 엔진들에 의해 효과적으로 인덱싱되거나 검색되지 않는다.
머신-대-머신(M2M) 디바이스들을 크롤링하는 방법들, 디바이스들, 및 시스템들이 본원에 설명된다. 예를 들어, 일 실시예에서, 서비스는 자동화 웹마스터 유사 기능성을 종래의 인간 웹마스터를 갖지 않는 M2M 디바이스들에 제공한다. 다른 예시적인 실시예에 따르면, M2M 노드는 프로세서, 및 프로세서와 결합되는 메모리를 포함하며, 메모리에는, 프로세서에 의해 실행될 때 프로세서가 동작들을 시행하게 하는 실행가능 명령어들이 저장되어 있다. 동작들은 M2M 디바이스와 연관되는 크롤러 메타데이터를 수신하는 것을 포함할 수 있다. M2M 노드는 M2M 크롤러 서비스를 호스팅할 수 있다. M2M 노드는 수신된 크롤러 메타데이터에 따라 하나 이상의 자원들에 대해 M2M 디바이스를 크롤링할 수 있다. 게다가, M2M 노드는 하나 이상의 자원들이 웹 크롤러, 서비스, 또는 애플리케이션 중 적어도 하나에 의해 발견될 수 있도록 하나 이상의 자원들을 퍼블리싱할 수 있다. 예를 들어, M2M 노드는 크롤러 메타데이터에 대해 M2M 디바이스에 질의를 송신할 수 있고, 크롤러 메타데이터는 질의에 응답하여 수신될 수 있다. 다른 예시적인 실시예에 따르면, M2M 노드는 가입 요청을 M2M 디바이스에 송신할 수 있다. 가입 요청은 크롤러 이벤트와 연관되는 트리거 조건을 포함할 수 있으며, M2M 디바이스는 가입 요청에 따라 구성된다. 트리거 조건이 만족될 때, M2M 노드는 크롤러 이벤트의 통지를 수신할 수 있다. 통지를 수신하는 것에 응답하여, M2M 노드는 하나 이상의 자원들 중 선택 자원에 대해 M2M 디바이스를 재크롤링할 수 있으며, 선택 자원은 가입 요청에서 정의된다. 대안적으로 또는 부가적으로, 통지를 수신하는 것에 응답하여, M2M 노드는 하나 이상의 웹 크롤러들에 대한 제2 통지를 생성할 수 있다.
본 요약은 상세한 설명에서 아래에 더 기재되는 개념들의 선택을 간략한 형태로 도입하기 위해 제공된다. 본 요약은 청구된 발명 대상의 주요 특징들 또는 본질적 특징들을 식별하도록 의도되지 않으며, 청구된 발명 대상의 범위를 제한하기 위해 사용되도록 의도되지 않는다. 더욱이, 청구된 발명 대상은 본 개시내용의 임의의 부분에 언급되는 임의의 또는 모든 장점들을 해결하는 제약들에 제한되지 않는다.
더 상세한 이해는 첨부 도면들과 함께 예로서 주어지는 이하의 설명으로부터 이루어질 수 있다.
도 1은 웹 크롤링, 인덱싱 및 검색의 일 예를 도시하는 도면이다.
도 2는 크롤러들이 회피해야 하는 웹 페이지들의 목록을 정의하는 예시적인 파일을 나타내는 표이다.
도 3은 M2M 서비스 계층을 포함하는 예시적인 프로토콜 스택의 묘사이다.
도 4는 예시적인 실시예에 따른 M2M 크롤러, M2M 인덱서 및 검색 서비스들을 예시하는 시스템도이다.
도 5는 예시적인 실시예에 따른 분산형 M2M 크롤러 서비스 아키텍처를 예시하는 시스템도이다.
도 6은 예시적인 실시예에 따른 중앙집중형 M2M 크롤러 서비스 아키텍처를 예시하는 시스템도이다.
도 7은 예시적인 실시예에 따른 M2M 디바이스들을 크롤링하는 흐름도이다.
도 8은 다양한 예시적인 실시예들에 따라 M2M 크롤러 메타데이터가 퍼블리싱되는 것을 나타내는 호출 흐름이다.
도 9는 예시적인 실시예에 따른 M2M 크롤러 메타데이터에 대해 M2M 디바이스에 질의하는 호출 흐름이다.
도 10은 예시적인 실시예에 따른 M2M 크롤러 서비스가 크롤러 메타데이터를 자동 생성하라는 요청들을 모니터링하는 것을 나타내는 호출 흐름이다.
도 11은 다른 예시적인 실시예에 따른 M2M 크롤러 서비스가 크롤러 메타데이터를 수신하기 위해 이벤트들에 가입하는 것을 나타내는 호출 흐름이다.
도 12는 예시적인 실시예에 따른 M2M 크롤링에 대한 흐름도이다.
도 13은 다른 예시적인 실시예를 따르지 않고 크롤러 메타데이터 없이 M2M 디바이스 자원들을 크롤링하는 호출 흐름이다.
도 14는 예시적인 실시예에 따른 예시적인 사이트맵 파일에 대한 M2M 크롤러 확장자들의 묘사이다.
도 15는 예시적인 실시예에 따라 퍼블리싱하는 수동적 및 선행적 M2M 크롤러 메타데이터를 예시하는 호출 흐름이다.
도 16은 예시적인 실시예에 따른 크롤러 이벤트 생성을 지원하는 M2M 크롤러 서비스를 예시하는 호출 흐름이다.
도 17은 예시적인 실시예에 따른 oneM2M 크롤러 능력 서비스 기능(Capability Service Function)(CSF)을 예시하는 블록도이다.
도 18a는 하나 이상의 개시된 실시예들이 구현될 수 있는 예시적인 머신-대-머신(M2M) 또는 사물 인터넷(Internet of Things)(IoT) 통신 시스템의 시스템도이다.
도 18b는 도 18a에 예시되는 M2M / IoT 통신 시스템 내에 사용될 수 있는 예시적인 아키텍처의 시스템도이다.
도 18c는 도 18a에 예시되는 통신 시스템 내에 사용될 수 있는 예시적인 M2M / IoT 단말 또는 게이트웨이 디바이스의 시스템도이다.
도 18d는 도 18a의 통신 시스템의 양태들이 구현될 수 있는 예시적인 컴퓨팅 시스템의 블록도이다.
다음의 상세한 설명은 예시적인 실시예들을 예시하기 위해 제공되고 본 발명의 범위, 적용가능성, 또는 구성을 제한하도록 의도되지 않는다. 다양한 변화들은 본 발명의 사상 및 범위로부터 벗어나는 것 없이 요소들 및 단계들의 기능 및 배열로 이루어질 수 있다.
일반적으로 아래에 더 상세히 설명되는 도 18a 및 도 18b를 참조하면, 예시적인 머신-대-머신(M2M), 사물 인터넷(IoT), 또는 사물 웹(Web of Things)(WoT) 통신 시스템(10)은 예를 들어 복수의 머신-대-머신(M2M) 디바이스들과 같은 복수의 디바이스들, 및 통신 네트워크(12)를 통해 M2M 디바이스들과 통신할 수 있는 서비스 계층(22)을 포함할 수 있다. 본원에 사용되는 바와 같이, M2M 디바이스는 예를 들어 게이트웨이 디바이스(14) 또는 단말(종단점) 디바이스들(18)과 같은, 네트워크에서 통신하는 임의의 디바이스를 언급할 수 있다. M2M 게이트웨이 디바이스들(14) 및 M2M 단말 디바이스들(18) 각각은 통신 네트워크(12) 또는 직접 무선 링크를 통해 신호들을 송신하고 수신하도록 구성될 수 있다. M2M 디바이스들(18)은 또한 M2M 애플리케이션(20) 또는 다른 M2M 디바이스(18)로부터 데이터를 수신할 수 있다. 게다가, 데이터 및 신호들은 M2M 서비스 계층(22)을 통해 M2M 애플리케이션(20)에 송신되고 M2M 애플리케이션으로부터 수신될 수 있다. M2M 서비스 계층(22)은 원하는 대로 임의의 수의 M2M 애플리케이션들, M2M 게이트웨이 디바이스들, M2M 단말 디바이스들, 및 통신 네트워크들과 통신할 수 있다는 점이 이해될 것이다. M2M 서비스 계층(22)은 하나 이상의 서버들, 컴퓨터들 등에 의해 구현될 수 있다. 서비스 계층(22)은 다양한 서비스들 및 능력들을 M2M 애플리케이션들(20), M2M 게이트웨이 디바이스들(14), 및 M2M 디바이스들(18)에 제공할 수 있다. 게다가, M2M 서비스 계층들은 다양한 서버들, 게이트웨이들, 및 디바이스들 상에 전개될 수 있다. 본원에 사용되는 바와 같이, 다르게 지정되지 않는 한, M2M 노드는 예를 들어 M2M 시스템(10)과 같은 M2M 네트워크 내의 임의의 디바이스, 게이트웨이, 또는 서버를 언급한다. M2M 서비스 계층(22)은 한 세트의 애플리케이션 프로그래밍 인터페이스들(Application Programming Interfaces)(APIs) 및 하부 네트워킹 인터페이스들을 통해 M2M 애플리케이션들 및 디바이스들에 대한 부가 가치 서비스들을 지원하는 (IP 스택 위의) 소프트웨어 미들웨어 계층으로 구현될 수 있다. 예시적인 실시예에 따라 전개될 수 있는 예시적인 M2M 서비스는 아래에 상세히 설명되는 M2M 크롤러 서비스(400)이다.
크롤링, 인덱싱, 및 검색 웹사이트들에 관한 추가 배경으로서, 웹마스터들은 일반적으로 웹사이트를 유지할 책임이 있다. 특히, 웹마스터들은 웹사이트의 사이트맵 및 robots.txt 파일들을 유지할 수 있다. 웹사이트의 사이트맵은 크롤러를 돕는 속성들(예를 들어, 종종 페이지를 크롤링하는 법)뿐만 아니라 크롤러들이 크롤링해야 하는 웹 페이지들에의 링크들의 목록을 정의한다. 표 1은 예시적인 지원 사이트맵 XML 프로토콜 속성들을 열거한다. 웹마스터는 웹사이트가 통지되도록 주어진 웹사이트의 사이트맵을 인기 있는 검색 엔진들에 수동으로 제출할 수 있다. 예시적인 검색 엔진들은 제한 없이, 구글, 빙 및 야후!를 포함하고, 및 예시적인 전문 검색 엔진들은 빙 헬스, WebMD, 및 야후! 뉴스를 포함한다.
Figure pat00001
웹사이트의 robots.txt는 도 2에 묘사되는 예에 도시된 바와 같이 크롤러들이 웹사이트, 재크롤링 사이의 지연, 및 웹 사이트의 사이트맵의 위치를 크롤링할 때 배제해야 하는 웹 페이지들의 목록을 정의할 수 있다.
웹사이트에 크롤링하고 사이트의 웹 페이지들 및 링크들을 가로지르기 위해, 웹 크롤러들은 전형적으로 웹사이트의 웹마스터에 의해 제공되는 웹사이트의 사이트맵 및 robots.txt 파일들에 의존한다. 웹 크롤러들은 또한 다른 웹사이트들을 크롤링하는 동안에 웹 크롤러가 마주치는 웹사이트에의 하이퍼링크들에 의존할 수 있다. 웹 크롤러는 웹사이트에서 웹사이트로 가며, 그것에 의해 새로운/갱신된 웹 페이지들, 및 문서들을 발견하고 이때 인덱싱될 수 있는 이것들의 스냅숏들을 저장한다. 웹사이트들은 반복적으로 및 비조정된 방식으로 많은 독립 웹 크롤러들에 의해 크롤링될 수 있다. 주어진 웹 크롤러의 알고리즘들 및 정책들에 기초하여, 웹 크롤러는 웹사이트를 재크롤링하고 사이트의 웹 페이지들/문서들을 재인덱싱할 경우/때를 결정할 수 있다. 웹 인덱서는 웹 크롤러에 의해 발견되는 웹 콘텐츠를 인덱싱한다. 웹 인덱서는 웹 크롤러와 통합될 수 있거나 통합되지 않을 수 있다. 인덱싱은 키워드들을 추상화하는 웹 페이지/문서 및 검색 엔진의 인덱싱 데이터베이스에 추가되는 정보를 스캐닝하는 것을 포함할 수 있다. 웹 인덱서들은 텍스트 기반(예를 들어, .txt, .html, .doc, .xls, .ppt, .pdf 등)인 콘텐츠를 인덱싱하는 것을 지원할 수 있다. 웹 검색 엔진들은 검색 엔진 질의들을 서비스하기 위해 웹 크롤러들 및 웹 인덱서들로부터 이용가능해지는 인덱싱된 정보에 의존할 수 있다. 웹 검색 엔진들은 크롤링되고 인덱싱되었던 다양한 웹사이트들 상에 호스팅되는 정보에 대한 키워드 검색들을 지원한다. 웹 검색 엔진은 검색 요청에 지정되는 키워드(들)와 일치하는 엔트리들에 대해 인덱스 데이터베이스에 질의할 수 있고, 질의 요청에 지정되는 키워드(들)와 일치하는 콘텐츠를 포함하는 웹 페이지들 및 웹 문서들을 참조하는 일치 링크들(예를 들어, URL들)의 목록으로 구성되는 검색 결과들을 생성할 수 있다.
일반적으로 도 18a 및 도 18b를 다시 참조하면, M2M 서비스 계층은 서비스 계층에 의해 지원되는 M2M 중심 능력들의 집합에 애플리케이션 및 디바이스 액세스를 제공하는 애플리케이션 프로그래밍 인터페이스들(APIs)을 지원할 수 있다. 수개의 예들은 제한 없이 제시되는 보안, 과금, 데이터 관리, 디바이스 관리, 프로비저닝, 및 연결성 관리를 포함한다. 이러한 능력들은 M2M 서비스 계층에 의해 정의되는 메시지 포맷들, 자원 구조들, 및 자원 표현들을 사용하는 API들을 통해 애플리케이션들에 이용가능해질 수 있다.
드래프트 ETSI TS 102 690 1.1.1(2011-10)에서 논의되는 유럽 전기 통신 표준 협회(European Telecommunications Standards Institute)(ETSI) M2M 서비스 계층, 드래프트 버전 1.0 - 14 Mar 2013에서 논의되는 오픈 모바일 연합(Open Mobile Alliance)(OMA) 경량 M2M 서비스 계층, 및 oneM2M-TS-0001 oneM2M 기능 아키텍처-V-0.1.2. M2M 서비스 계층 아키텍처들(예를 들어, ETSI M2M, OMA LWM2M, 및 oneM2M)에서 논의되는 oneM2M 서비스 계층과 같은 서비스 계층들을 갖는 다수의 M2M 아키텍처들이 있다. 도 3은 전형적인 예시적 네트워킹 프로토콜 스택(300)을 예시하고, 따라서 도 3은 M2M 서비스 계층이 전형적인 네트워킹 프로토콜 스택에 상주하는 경우를 도시한다.
이제 도 4 내지 도 6을 참조하면, 다양한 예시적인 실시예들에 따라, 아래에 설명되는 M2M 크롤러 서비스(400)는 다양한 M2M 서비스 계층들 내에서 특정 타입의 서비스/능력으로 구현될 수 있다. 일 실시예에서, 크롤러 서비스(400)는 oneM2M에 따라 구현된다. 다른 실시예에서, 크롤러 서비스(400)는 ETSI M2M에 따라 구현된다. 게다가, M2M 크롤러 서비스(400)는 M2M 서비스 계층 내에 구현되는 것에 제한되지 않는다는 점이 이해될 것이다. 예를 들어, M2M 크롤러 서비스(400)는 또 다른 예시적인 실시예에 따른 독립형 웹 서비스로 구현될 수 있다.
웹 크롤러들, 인덱서들, 및 검색 엔진들의 강화된 버전들은 M2M 디바이스들이 IoT/WoT로 완전히 통합될 수 있도록 웹 사용자들이 웹 콘텐츠를 현재 발견하는 것과 유사한 방식으로 이용가능 M2M 디바이스들을 발견하는 것을 허용할 수 있다는 점이 본원에서 인식된다. 예로서, 강화된 웹 크롤러들, 인덱서들, 및 검색 엔진들은 공공 공간들(예를 들어, 쇼핑 몰들, 도시들, 경기장들, 공항들, 박물관들 등)에 전개되는 센서들을 발견할 수 있다. M2M 디바이스들을 이러한 방식으로 검색가능하게 하는 것은 수수료 징수로 이용가능한 M2M 디바이스들 뿐만 아니라, 무료 공공 서비스들(예를 들어, 날씨, 교통 등)로 이용가능한 M2M 디바이스들의 인지를 증가시킬 수 있다는 점이 본원에서 인식된다. 일부 사용 경우들에 대해, M2M 디바이스들을 검색가능하게 하는 것은 원하지 않고/않거나 적용가능하지 않을 수 있다는 점이 본 개시내용에서 인정된다. 예를 들어, 사생활 또는 보안이 관심(예를 들어, 헬스케어 센서 디바이스들, 보안 디바이스들 등)인 경우에 M2M 디바이스들을 검색가능하게 하는 것이 바람직하지 않을 수 있다.
본 개시내용이 검토됨에 따라 유사한 문제를 처리하지만, 본원에 설명되는 접근법들을 사용하지 않는 시도들이 있을 수 있었다. 예를 들어, 본원에 설명되는 예시적인 실시예들은 IMS 네트워크 구성요소들을 강화하지 않으며, 검색 엔진 요청들의 실시간 처리 또는 소셜 네트워크들로부터의 정보의 강화에 기초하지 않는다. 그 대신에, 예를 들어, 본원에 설명되는 실시예들은 기존 웹 크롤러들이 M2M 디바이스들을 효과적으로 및 효율적으로 크롤링할 수 있게 하는 서비스들을 정의한다.
상기 설명된 바와 같이, 현재 웹은 M2M 디바이스들을 효율적으로 및 효과적으로 크롤링하는 능력들이 없다. 그 결과, M2M 디바이스들은 웹 검색 엔진들(예를 들어, 구글, 야후! 등)에 의해, 및 따라서 웹 사용자들에 의해 효과적으로 인덱싱되고 검색될 수 없다.
예를 들어, 현재 M2M 디바이스들은 현재 웹 크롤러 프레임워크를 지원하는 능력들이 없을 수 있다. 현재 웹에서, 웹사이트들은 전형적으로 웹 크롤러들에 등록하고 그 자체의 웹 크롤러 트래픽을 서비스할 책임이 있다. 그러나, M2M 디바이스들은 본질적으로 종종 제약되고 웹 크롤러들에 등록하고 웹 크롤러 요청들을 서비스하기 위해 자원들 및 지능이 없다. 종래의 웹사이트들과 달리, M2M 디바이스들은 전형적으로 웹마스터(인간)에 의해 능동적으로 관리되지 않는다. 그 결과, M2M 디바이스들은 예를 들어 그것들 자체를 웹 상의 상이한 검색 엔진들에 등록하는 것과 같은 다양한 액션들을 수행가능하지 않을 수 있다. 게다가, M2M 디바이스들은 다수의 웹 크롤러들로부터의 요청들을 서비스하는 능력을 갖지 않을 수 있다.
다른 예로서, 현재 웹 프레임워크는 M2M 디바이스들이 효과적으로 크롤링될 수 있도록 M2M 디바이스들을 원조하는 서비스들이 없다. 예를 들어, 상기 참조된 기존 M2M 서비스 계층들(예를 들어, ETSI M2M, OMA LWM2M, oneM2M)은 웹 크롤러들이 이해하는 포맷(예를 들어, 사이트맵 프로토콜)으로 M2M 디바이스 크롤러 메타데이터를 선행적으로 발견하고 웹 크롤러들에 퍼블리싱하는 적절한 지원이 없을 수 있다. 그 결과, 기존 웹 크롤러들은 M2M 디바이스들의 인지, M2M 디바이스들이 지원하는 자원들, 및 그러한 자원들과 관련되는 속성들이 없을 수 있다. 기존 M2M 서비스 계층들은 또한 크롤러 이벤트들(예를 들어, M2M 디바이스들이 크롤링/재크롤링을 필요로 하는 것을 표시하는 이벤트들)을 생성하는 능력이 없을 수 있다. M2M 서비스 계층들은 또한 하나 이상의 M2M 디바이스들이 디바이스 자원들의 생성, 수정, 또는 삭제로 인해 재크롤링될 필요가 있을 경우/때를 웹 크롤러들에게 통지하기 위해 웹 크롤러들에 이러한 이벤트들을 전송하는 지원이 없을 수 있다. 이것은 M2M 디바이스들에 관하여 주로 수동적 방식으로 동작하는 현재 M2M 서비스 계층들로 인한 것일 수 있다. 현재 M2M 서비스 계층들은 서비스 계층과의 상호작용을 개시하기 위해(예를 들어, 서비스 계층에 등록하고, 데이터를 서비스 계층에 저장하는 등 하기 위해) 디바이스들에 의존하다. 따라서, 기존 M2M 서비스 계층들은 M2M 디바이스들과의 상호작용을 선행적으로 개시하는 능력이 없을 수 있다. 예를 들어, 현재 M2M 서비스 계층들은 M2M 디바이스들 또는 M2M 디바이스들 상에 호스팅되는 자원들을 선행적으로 발견하거나, 디바이스 자원들이 생성/수정/삭제되었을 경우/때 생성될 수 있는 크롤러 이벤트들과 연관되는 통지들과 같은 통지들을 디바이스들로부터 가입하고 수신하는 능력이 없을 수 있다. 현재 M2M 서비스들은 또한 재발생으로 M2M 디바이스 자원들을 선행적으로 크롤링하고(예를 들어, 디바이스의 자원들을 주기적으로 또는 이벤트에 기초하여 검색하고) 자원들의 로컬 카피들을 저장/캐싱하는 능력이 없다. 그 결과, 현재 M2M 서비스 계층들은 새로운, 수정된, 또는 삭제된 자원들을 추적하고 검출하는 능력이 없고, 따라서 재크롤링이 보장되는 것을 웹 크롤러들이 통지받아야 하는지를 결정하는 능력이 없을 수 있다.
또 다른 예로서, 웹 크롤러들은 현재 웹에서 이벤트 기반 크롤링을 위한 지원이 없을 수 있다. 예를 들어, 웹 크롤러들은 전형적으로 웹 서버들을 무계획 방식으로(예를 들어, 다른 웹 서버로부터 웹 서버로 링크를 마주칠 때) 또는 주기적 방식으로 재크롤링하여 그들의 크롤링된 콘텐츠를 (예를 들어, 사이트맵 또는 Robots.txt 파일 내의 웹 서버에 의해 지정되는 일부 바람직한 빈도에 기초하여) 리프레시한다. 이러한 타입들의 크롤링은 예를 들어 웹 서버의 콘텐츠가 갱신되지 않았을 때에 웹 서버의 재크롤링이 심지어 수행될 수 있기 때문에 불충분하다. 게다가, 많은 M2M 디바이스들은 웹 크롤러가 그것들을 크롤링하려고 시도할 때 이용가능하지 않을 수 있다(예를 들어, 이 디바이스들은 슬리핑일 수 있음). 많은 M2M 디바이스들이 예측불가능 및 이벤트 기반 방식으로 변화되기 때문에, 이벤트 기반 크롤링의 결핍은 자원 제약 M2M 디바이스들 및 네트워크들에 나쁜 영향을 줄 수 있는 M2M 디바이스들의 불충분한 및/또는 불필요한 크롤링 및 재크롤링을 초래할 수 있다는 점이 본원에서 인식된다.
본원에 설명되는 바와 같이, M2M 크롤러 서비스(400)는 다른 것들 중에서, 상기 식별된 문제들을 처리할 수 있다. M2M 크롤러 서비스(400)는 M2M 디바이스들이 웹 크롤러들에 의해 효율적으로 및 효과적으로 크롤링가능하게 될 수 있다. 그 결과, M2M 디바이스들은 웹 검색 엔진들(예를 들어, 구글, 야후! 등)에 의해, 및 따라서 웹 검색 엔진들을 사용하는 웹 사용자들에 의해 효과적으로 인덱싱되고 검색될 수 있다. 따라서, M2M 크롤러 서비스(400)는 사물 인터넷/사물 웹으로 M2M 디바이스들의 통합을 위한 키 인에이블러의 역할을 할 수 있다.
M2M 크롤러 서비스(400)는 웹 크롤러들에 등록함에 따라 자원 제약 M2M 디바이스들을 원조하는 능력들을 제공할 수 있다. 예시적인 실시예에 따르면, M2M 크롤러 서비스(400)는 또한 디바이스에 의해 생성되는 크롤러 이벤트들을 구성하고 크롤러 이벤트들에 가입할 뿐만 아니라 디바이스 상에 호스팅되는 자원들을 발견하고 크롤링하기 위해 M2M 디바이스들과 선행적으로 상호작용하는 것을 지원한다. 게다가, M2M 크롤러 서비스(400)는 M2M 디바이스들이 오버로딩되지 않도록 M2M 디바이스들을 대신하여 웹 크롤러 요청들을 서비스할 수 있다.
일 실시예에서, M2M 크롤러 서비스(400)는 M2M 디바이스들을 크롤링함에 따라 웹 크롤러들을 원조한다. M2M 크롤러 서비스는 크롤링된 M2M 디바이스 자원들을 선행적으로 크롤링하고 저장하는 것 및 이러한 결과들을 웹 크롤러들에 이용가능하게 하는 것을 지원한다. 그렇게 함으로써, 예를 들어, 웹 크롤러들은 특히 길고 예측불가능 슬립 사이클들을 갖는 M2M 디바이스들에 대해 문제가 있을 수 있는 M2M 디바이스 자원들을 직접 크롤링하지 않아야 한다. 그 대신에, 웹 크롤러들은 M2M 크롤러 서비스(400)에 의해 사전에 선행적으로 크롤링되었던 M2M 디바이스 자원들의 캐싱된/저장된 버전들을 크롤링할 수 있다. M2M 크롤러 서비스(400)는 또한 예를 들어 그것이 크롤링되었던 디바이스 자원들의 상태의 검출된 변화들에 기초하여, 크롤러 이벤트들을 생성할 수 있다. M2M 크롤러 서비스(400)는 이러한 이벤트들을 웹 크롤러들에 퍼블리싱할 수 있다.
이제 도 4를 참조하면, 예시적인 M2M 시스템(401)은 복수의 디바이스들, 예컨대 M2M/웹 서버들(402), 검색 엔진 서버들(404), M2M 게이트웨이들(14)를 포함하며, M2M 게이트웨이들은 또한 웹 프록시들(14)로 언급될 수 있다. 예시된 디바이스들은 웹 또는 인터넷(406)을 통해 서로 통신할 수 있다. M2M 시스템(401)은 애플리케이션들(20) 및 M2M 크롤링 서비스(400)를 더 포함한다. 예시된 디바이스들은 일반적으로 노드들로 언급될 수 있다. 따라서, 도시된 바와 같이, M2M 크롤러 서비스(400)는 예를 들어 M2M 게이트웨이들(18), M2M 서버들(402), 웹 프록시들(14), 및 웹 서버들(402)에서와 같이 네트워크 내의 다양한 노드들에 전개될 수 있다. 기존 웹 크롤러 서비스들(403)은 예를 들어 구글 또는 마이크로소프트와 같은 검색 엔진 회사들에 의해 제공되고 운영될 수 있는 검색 엔진 서버들(404) 상에 전개될 수 있다. M2M 크롤러 서비스(400)는 예를 들어 서비스 계층(22)과 같은 수평 서비스들 계층 내의 능력들로 전개될 수 있고, 서비스 계층은 서비스 능력 서버(service capability server)(SCS), M2M 서버, oneM2M 서버 등을 포함할 수 있다. 따라서, M2M 크롤러 서비스는 예를 들어 ETSI M2M, oneM2M, 또는 OMA LWM2M과 같은 다양한 서비스 계층들에 전개될 수 있다. 대안적으로, M2M 크롤러 서비스(400)는 독립형 웹 서비스로 전개될 수 있고 웹 애플리케이션들 및/또는 다른 웹 서비스들에 이용가능해질 수 있다. 따라서, M2M 크롤링 서비스는 기존 웹 크롤러들을 보완하기 위해 사용될 수 있거나, 그들은 개별 전용 M2M 크롤러들로서 독립적으로 전개될 수 있다.
본원에 설명되는 다양한 실시예들은 편의상 시스템(401)을 언급한다. 예시적인 시스템(401)은 개시된 발명 대상의 설명을 용이하게 하도록 단순화되고 본 개시내용의 범위를 제한하도록 의도되지 않는다는 점이 이해될 것이다. 다른 디바이스들, 시스템들, 및 구성들은 시스템(401)과 같은 시스템에 더하여, 또는 시스템 대신에 본원에 개시되는 실시예들을 구현하기 위해 사용될 수 있고, 모든 그러한 실시예들은 본 개시내용의 범위 내에 있는 것으로 생각된다.
M2M 크롤러 서비스(400)의 다양한 기능성의 도입을 위해, 쇼핑 몰과 계약했던 M2M 센서 회사는 그것이 몰의 주차장들, 상점들, 및 공공 영역들 내의 무선 네트워크 센서들을 전개하는 것을 허용하는 예시적인 사용 경우를 고려한다. 센서들은 쇼핑객들이 누구인지(예를 들어, 나이, 성 등), 쇼핑객들이 무엇을 구입하는지, 쇼핑객들이 얼마나 많이 구입하는지, 쇼핑객들이 언제 쇼핑하는지, 어떤 종류의 차량들이 주차장에 있는지 등과 같은 쇼핑객들에 관한 통계를 추적한다. 따라서, 센서들은 쇼핑객들과 관련되는 다양한 자원들을 모니터링하고 포함한다. M2M 센서 회사는 몰 도처에 그것의 센서들을 전개시키는 수수료를 몰에 지불하기로 동의했다. 대신에, M2M 센서 회사는 그것의 센서 데이터(자원들)를 다양한 세트의 퍼스펙티브(perspective) 클라이언트들 예컨대 예를 들어 소매점 소유자들, 소매 상품 제조자들, 및 광고자들에게 (수수료 지불로) 이용가능하게 할 계획이다. 이러한 클라이언트들은 더 지능적인 마켓팅, 제품 배치, 및 제품 개발 결정들을 이룰 수 있도록 이러한 정보를 획득하는 것에 관심이 있을 수 있다. 예를 들어, 인근 전자 광고판의 소유자는 그 또는 그녀가 하루, 일주일, 또는 일년의 어느 시간에 디스플레이할 어느 광고를 더 지능적으로 선택할 수 있도록 이러한 M2M 센서 디바이스들을 발견하고 그들의 센서 피드들에 연결하기를 좋아할 수 있다.
상기 예시적인 사용 경우를 계속하면, M2M 센서 회사는 몰에서 그것의 센서들로부터의 스트리밍되는 정보를 발견하고 액세스할 수 있는 클라이언트들의 수를 최대화하기를 원할 수 있다. 이것을 용이하게 하기 위해, 예시적인 시나리오에 따르면, M2M 센서 회사는 그의 센서들을 네트워킹하여 그것들을 인터넷/웹을 통해 액세스가능하게 할 수 있고 M2M 크롤러 서비스(400)를 사용하여 그의 센서들이 통상 사용된 웹 검색 엔진들(예를 들어, 구글, 야후!, 빙 등)에 의해 발견될 수 있는 것을 보장할 수 있다.
상기 설명된 예시적인 사용 경우를 계속 참조하면, 예시적인 실시예에 따르면, M2M 크롤러 서비스(400)는 M2M 센서 디바이스들에 대한 크롤러 프록시의 기능을 할 수 있다. M2M 크롤러 서비스는 센서들에 의해 생성되는 크롤러 이벤트들 및 각각의 센서의 슬립 상태에 기초하여 각각의 M2M 디바이스를 선행적으로 및 지능적으로 크롤링할 수 있다. 크롤러 서비스(400)는 이벤트 기반 방식으로 개별 센서들의 재크롤링을 지원할 수 있다. 예로서, 크롤러 서비스(400)는 센서가 그것의 상태의 변화를 크롤러 서비스(400)에 시그널링할 때 주어진 센서를 재크롤링하는 것을 지원할 수 있다. 크롤링되었던 각각의 센서에 대해, 크롤러 서비스(400)는 센서 데이터를 설명하기 위해 사용되는 메타데이터와 함께 센서 판독을 캐싱/저장할 수 있다. 예시적인 메타데이터는 제한 없이, 센서 위치, 센서의 타입, 센서 데이터의 포맷, 센서 데이터가 갱신된 이후의 시간 등을 표시할 수 있다. 그 다음, 크롤러 서비스(400)는 링크들(예를 들어, URI들)을 이러한 캐싱된/저장된 센서 판독들(자원들)에 선행적으로 퍼블리싱할 수 있다. 크롤러 서비스(400)는 또한 예를 들어 센서들의 설명들 및 각각의 센서를 재크롤링할 때를 표시하는 이벤트들과 같은 센서들과 연관되는 메타데이터를 퍼블리싱할 수 있다. 정보는 다양한 웹 검색 엔진들(예를 들어, 구글, 야후!, 빙 등)에 퍼블리싱될 수 있다. 이러한 퍼블리싱된 정보를 사용하면, 웹 검색 엔진들은 캐싱된/저장된 센서 판독들을 크롤링하고 인덱싱할 수 있으며, 이 센서 판독들은 일반적으로 자원들 또는 자원 표현들로 언급될 수 있고, 센서들이 종래의 웹 사이트들을 사용하는 동일한 웹 검색 엔진들을 사용하여 클라이언트들에 의해 효과적으로 검색가능하게 될 수 있다. 아래에 더 설명되는 바와 같이, 이것은 예를 들어 다양한 웹 검색 엔진들이 센서들에 직접 액세스하지 않기 때문에, 센서들 상에 대량의 오버헤드를 도입하는 것 없이 행해질 수 있다. 그 대신에, 웹 검색 엔진들은 센서들을 대신하여 웹 크롤러 서비스에 의해 저장되는 크롤링된 자원 표현들의 캐싱된/저장된 버전들에 액세스할 수 있다. 게다가, 예시적인 실시예에 따르면, 크롤러 서비스(400)는 그것이 크롤링되었던 센서 자원들(예를 들어, 새로운/갱신된 자원들)에 대한 변화들을 검출할 수 있다. 그러한 검출들에 기초하여, 크롤러 서비스(400)는 웹 검색 엔진들이 주기적 방식보다는 오히려 이벤트 기반 방식으로 센서 자원들의 크롤링을 수행할 수 있도록 센서들을 효율적으로 재크롤링하고 웹 검색 엔진들에 크롤러 이벤트들을 생성할 수 있다.
센서 자원들이 웹 검색 엔진들에 의해 성공적으로 크롤링되고 인덱싱되었다면, 웹 사용자들은 관심 센서들을 발견하기 위해 웹 검색 엔진을 사용할 수 있다. 웹 사용자가 저장된/캐싱된 센서 데이터에 액세스할 때, 웹 크롤러는 또한 예를 들어 M2M 센서 회사가 정보에의 액세스를 위해 사용자들에게 대금을 청구할 수 있게 하는 과금/요금 부과 서비스들과 같은 다양한 서비스들을 제공할 수 있다. 상기 설명된 예시적인 사용 경우가 M2M 센서들의 컨텍스트에서 제시되지만, 센서들은 예시적인 목적들을 위해 사용되고, 따라서 M2M 크롤링 서비스(400)는 원하는 대로 서비스를 임의의 M2M 디바이스에 제공할 수 있다는 점이 이해될 것이다.
도 5를 참조하면, 예시적인 실시예에 따르면, M2M 크롤러 서비스(400)는 예시적인 분산형 아키텍처(500)와 같은 분산형 아키텍처에 의해 구현될 수 있다. 대안적으로, 도 6을 참조하면, 다른 예시적인 실시예에 따르면, M2M 크롤러 서비스(400)는 중앙집중형 아키텍처에 의해 구현될 수 있고, 따라서 중앙집중형 M2M 크롤러 서비스(400a)로 언급될 수 있다. 도 6은 중앙집중형 M2M 크롤러 서비스(400a)를 포함하는 예시적인 중앙집중형 아키텍처(600)를 도시한다. 분산형 아키텍처(500)는 M2M 크롤러 서비스(400)의 다수의 인스턴스들을 정의할 수 있다. 도시된 바와 같이, 인스턴스들은 예를 들어 M2M 서버들(402), M2M 게이트웨이들(14), 및 M2M 디바이스들(18)와 같이, 시스템(401)을 통해 다양한 M2M 노드들 상에 호스팅될 수 있다. 도 6을 참조하면, 예시된 실시예에 따르면, 중앙집중형 아키텍처(600)는 중앙 위치 M2M 노드, 예컨대 M2M 서버(402a) 상에 호스팅되는 단일 M2M 크롤러 서비스 인스턴스를 정의한다. 분산형 아키텍처(500)는 크롤링이 더 많은 병렬 방식으로 수행가능하게 될 수 있고 중앙집중형 아키텍처(600)와 비교하여 더 큰 확장성을 가능하게 할 수 있다. 중앙집중형 아키텍처(600)는 예를 들어 크롤러 서비스(400)가 중앙집중형 서버 또는 서버 팜 상에 호스팅될 수 있기 때문에, 크롤러 서비스(400)의 관리를 단순화할 수 있다.
다시 도 5를 참조하면, 분산형 아키텍처(500) 내의 M2M 크롤러 서비스(400)의 인스턴스들은 하나 이상의 M2M 서비스 제공자들에 의해 소유, 운영, 및/또는 제휴되고 M2M 자원들을 호스팅하는 M2M 서버들(402), M2M 게이트웨이들/프록시들(14), M2M 디바이스들(18), 및 M2M 애플리케이션들(20)이 크롤링, 인덱싱, 및 검색되는 것을 허용할 수 있다. 도 5에 도시된 바와 같이, M2M 크롤러 서비스(400)는 네트워크 내의 하나 이상의 M2M 서버들(402), 하나 이상의 M2M 게이트웨이들/프록시들(14), 및/또는 하나 이상의 M2M 디바이스들(18) 상에 호스팅될 수 있다. 따라서, M2M 크롤러 서비스 인스턴스들은 분산형 방식에 따라 네트워크 내의 M2M 노드들에 의해 호스팅되는 M2M 자원들을 효율적으로 크롤링하기 위해 사용될 수 있다. M2M 크롤러 서비스(400)의 인스턴스들은 아래에 더 설명되는 바와 같이, 서로 협력할 수 있다.
다시 도 6을 참조하면, 중앙집중형 M2M 크롤러 서비스(400a)는 하나 이상의 M2M 서비스 제공자들에 의해 소유, 운영, 및/또는 제휴되고 다양한 M2M 자원들을 호스팅하는 M2M 서버들(402), M2M 게이트웨이들/프록시들(14), M2M 디바이스들(18), 및 M2M 애플리케이션들(20)이 크롤링되는 것을 허용할 수 있다. 중앙집중형 M2M 크롤러 서비스(400a)는 M2M 크롤러 서비스(400a)가 네트워크 내의 다양한 M2M 자원들을 효율적으로 크롤링하기 위해 사용될 수 있도록 네트워크 내에서 중앙집중형 방식으로 호스팅된다.
이제 도 5 및 도 6을 참조하면, 수개의 인터페이스들이 이제 설명될 것이다. 제1 인터페이스(502)는 M2M 디바이스들(18)과 M2M 크롤러 서비스(400) 사이에 정의되며, M2M 크롤러 서비스는 중앙집중형 M2M 크롤러 서비스(400a) 또는 분산형 M2M 크롤러 서비스의 인스턴스를 언급한다. 제1 인터페이스(502)는 M2M 크롤러 서비스(400)가 M2M 디바이스들(18) 및 M2M 디바이스들(18)과 연관되는 자원들을 발견하고 크롤링가능하게 할 수 있다. 제2 인터페이스(504)는 M2M 크롤러 서비스(504)의 인스턴스들 사이에 정의된다. 제2 인터페이스(504)는 아래에 더 설명되는 바와 같이, M2M 크롤러 서비스(400)의 분산 인스턴스들 사이의 협력이 크롤러 메타데이터 및 결과들을 서비스 인스턴스들의 그룹 또는 계층에 걸쳐 분산가능하게 할 수 있다. 제3 인터페이스(506)는 종래의 웹 크롤러를 포함할 수 있는 웹 검색 엔진 서버(404)와, M2M 크롤러 서비스(400) 사이에 정의된다. 제3 인터페이스(506)는 웹 검색 엔진들이 M2M 크롤러 서비스들과 상호작용가능하게 할 수 있다. 제4 인터페이스(508)는 M2M 애플리케이션들(20)과 M2M 크롤러 서비스(400) 사이에 정의된다. 제4 인터페이스(508)는 M2M 애플리케이션들(20)이 M2M 크롤러 서비스(400)와 상호작용가능하게 할 수 있다. 제5 인터페이스(510)는 애플리케이션들(20)과 검색 엔진 서버들(404) 상에 호스팅되는 웹 크롤러들 사이에 정의된다. 제5 인터페이스(510)는 M2M 크롤러 서비스들에 의해 가능해지는 웹 검색 엔진들을 사용하여 애플리케이션들(20)이 M2M 디바이스들을 간접적으로 검색하고 발견가능하게 할 수 있다.
아래에 더 설명되는 바와 같이, M2M 크롤러 서비스(400)는 다양한 M2M 디바이스들이 제1 인터페이스(502)를 통해 M2M 크롤러 메타데이터를 퍼블리싱하는 것을 허용하는 능력들을 지원할 수 있다. 예시적인 실시예에 따르면, 다양한 M2M 디바이스들은 예를 들어 주어진 M2M 디바이스가 크롤러 메타데이터를 호스팅하지만 제1 인터페이스(502)를 통해 그것을 퍼블리싱할 수 없는 경우들에서, M2M 크롤러 메타데이터를 획득하기 위해 선행적으로 질의받을 수 있다. M2M 크롤러 메타데이터는 예를 들어 주어진 M2M 디바이스가 M2M 크롤러 메타데이터를 호스팅하지 않는 경우, 또는 M2M 크롤러 서비스(400)가 부가할 수 있는 부가 크롤러 메타데이터를 가질 때의 시나리오들에서, 자동 생성되고/강화될 수 있다. 제1 인터페이스(502)를 통해, 주어진 M2M 디바이스 상에 호스팅되는 크롤러 메타데이터는 예를 들어 M2M 디바이스에 의해 생성되는 크롤러 이벤트들을 제어하도록 구성될 수 있다. M2M 서비스(400)는 제1 인터페이스(502)를 통해 M2M 디바이스들을 선행적으로 및 독자적으로 크롤링하기 위해 M2M 크롤러 메타데이터를 사용할 수 있다. 따라서, 새로운/갱신된 자원 표현들은 디바이스들을 오버로딩하지 않는 지능적이고 효율적인 방식(예를 들어, 디바이스 상태의 변화들에 기초한 이벤트 기반 크롤링)으로 검색될 수 있다. 일부 경우들에서, M2M 크롤러 서비스(400)는 제3 인터페이스(506)를 통해 M2M 디바이스들을 대신하여 웹 크롤러들과 상호작용하지 않을 수 있어, 웹 크롤러들은 M2M 디바이스들을 인지하지만 크롤러 트래픽으로 디바이스들을 압도하지 않는다. 예를 들어, M2M 서비스(400)는 웹 크롤러들이 M2M 디바이스들을 인지하도록 M2M 디바이스 크롤러 메타데이터를 웹 크롤러들과 공유시킬 수 있다. M2M 서비스(400)는 크롤링된 M2M 디바이스 자원 표현들(현재 또는 과거)을 공유하고 이러한 표현들을 사용하여 주어진 M2M 디바이스의 자원 상태의 변화들을 검출할 수 있다. 자원 표현들은 M2M 디바이스들을 대신하여 웹 크롤러 요청들을 서비스하기 위해 더 사용될 수 있다. 예를 들어, 크롤러 요청들은 M2M 디바이스들로부터 오프로딩될 수 있다. 크롤러 이벤트들은 웹 크롤러들이 주기적 재크롤링 대신에, 또는 주기적 재크롤링에 더하여 이벤트들에 기초하여 재크롤링을 지원할 수 있도록 웹 크롤러들에 생성될 수 있다. M2M 크롤링 서비스(400)는 웹 크롤러가 M2M 크롤러 서비스(400)에 의해 호스팅되는 크롤러 메타데이터를 구성하여 M2M 크롤러 서비스(400)에 의해 생성되는 크롤러 이벤트들을 제어하는 것을 허용할 수 있다. 다른 실시예에 따르면, 네트워크 내의 M2M 크롤러 서비스들의 다수의 인스턴스들은 제2 인터페이스(504)를 통해 서로 협력할 수 있다. M2M 크롤러 서비스들은 M2M 크롤러 메타데이터를 공유하거나, 크롤링된 자원 표현들을 공유하거나, 크롤러 이벤트들에 가입하거나 크롤러 이벤트들을 생성하는 등 하기 위해 서로 협력할 수 있다. 게다가, 예시적인 실시예에서, M2M 애플리케이션들(20)은 인터페이스(508)를 통해 M2M 디바이스 크롤러 메타데이터에 액세스할 수 있고, M2M 애플리케이션들(20)은 또한 자원 표현들로 언급될 수 있는 크롤링된 M2M 디바이스 자원들에 액세스할 수 있다. 다른 예시적인 실시예에 따르면, M2M 애플리케이션들은 아래에 더 설명되는 바와 같이, 크롤러 이벤트들에 가입할 수 있다.
M2M 크롤러 메타데이터는 이제 더 상세히 설명될 것이다. 일부 경우들에서, 주어진 M2M 디바이스가 효율적으로 및 효과적으로 크롤링되도록, 디바이스 및 그것의 자원들에 관한 특정 타입들의 정보가 공지될 필요가 있을 수 있다. 그러한 정보는 M2M 크롤러 메타데이터로 언급될 수 있다. 표 2는 M2M 크롤링 서비스(400)에 의해 사용될 수 있는 M2M 크롤러 메타데이터의 예시적인 목록을 정의하지만, 부가 또는 대안 크롤러 메타데이터는 원하는 대로 M2M 크롤러 서비스에 의해 사용될 수 있다는 점이 이해될 것이다. 메타데이터는 일반적으로 M2M 디바이스들 상에 호스팅되는 M2M 자원들의 효율적이고 효과적인 크롤링을 지원한다. M2M 크롤러 메타데이터는 M2M 디바이스들에 의해 및/또는 M2M 크롤러 서비스(400)에 의해 생성되거나 호스팅될 수 있다. M2M 크롤러 메타데이터는 또한 웹 크롤러들 및/또는 애플리케이션들과 같은 네트워크 내의 다른 엔티티들과 공유될 수 있다.
Figure pat00002
Figure pat00003
도 7을 참조하면, 크롤러 서비스(400)를 사용하여 수행될 수 있는 예시적인 방법이 도시된다. 702에서, 방법은 예를 들어 및 제한 없이, 크롤러 서비스(400)에 등록하는 새로운 디바이스 또는 크롤러 서비스(400)에 의해 수신되는 크롤러 이벤트의 통지에 의해 트리거될 수 있다. 704에서, 예시된 실시예에 따르면, 크롤러 서비스(400)는 주어진 디바이스와 연관되는 퍼블리싱된 크롤러 메타데이터가 이용가능한지를 결정할 수 있다. 예시적인 실시예에 따르면, M2M 디바이스는 M2M 크롤러 메타데이터(예를 들어, 표 2 참조)를 제1 인터페이스(502)를 통해 M2M 크롤러 서비스(400)에 명시적으로 퍼블리싱할 수 있다. 따라서, M2M 크롤러 서비스(400)는 M2M 디바이스들(18)이 그들의 M2M 크롤러 메타데이터를 M2M 크롤러 서비스(502)에 직접 퍼블리싱하는 것을 허용하는 능력을 제1 인터페이스(502)를 통해 지원할 수 있다. 대안적으로, M2M 크롤러 서비스(400)가 협력하는 다른 서비스들은 M2M 디바이스들(18)로부터 퍼블리싱된 M2M 크롤러 메타데이터를 수신하는 것을 지원할 수 있다. 일부 경우들에서, 예를 들어 표 2에 표현되는 메타데이터와 같은 M2M 크롤러 메타데이터는 M2M 디바이스가 M2M 크롤러 서비스(400)에 등록할 때 또는 M2M 크롤러 서비스(400)가 협력하는 다른 서비스에 M2M 디바이스가 등록할 때 M2M 디바이스에 의해 퍼블리싱될 수 있다.
예로서, 본원에 설명된 M2M 크롤러 메타데이터 퍼블리싱 능력을 사용하면, 이동 M2M 디바이스(예를 들어, 자동차 내의 원격 측정 센서)는 자원 링크들이 이동성(예를 들어, M2M 디바이스의 위치의 변화)으로 인해 변화될 경우/때에 갱신을 그것의 자원 링크들에 관한 M2M 크롤러 서비스(400)에 제공할 수 있다. 예를 들어, M2M 디바이스가 새로운 IP 어드레스를 할당받을 수 있기 때문에 디바이스들이 네트워크 도메인들을 변화시킬 때, 그것이 URI들의 "호스트" 구성요소가 또한 변화될 수 있다. M2M 디바이스와 연관되는 URI들이 변화되면, 예를 들어 이때 M2M 디바이스는 M2M 크롤러 서비스(400)를 갱신하고, 따라서 변화들의 웹 크롤러들을 갱신하기 위해 M2M 크롤러 메타데이터 퍼블리싱 능력을 사용할 수 있다.
도 8을 참조하면, M2M 디바이스(18)가 M2M 크롤러 메타데이터를, 표현 상태 전송(representational state transfer)(RESTful) 아키텍처에 따라, 제1 인터페이스(502)를 통해 M2M 크롤러 서비스(400)에 퍼블리싱하는 예시적인 실시예가 도시된다. 부가 컨텍스트에 대해, RESTful 아키텍처는 사용되는 물리 구성요소 구현 또는 통신 프로토콜들에 관한 것보다는 오히려 아키텍처에 사용되는 구성요소들, 엔티티들, 커넥터들, 및 데이터 요소들에 적용되는 제약에 관하여 설명된다. 따라서, 구성요소들, 엔티티들, 커넥터들, 및 데이터 요소들의 역할들 및 기능들이 설명될 것이다. RESTful 아키텍처에서, 고유 어드레스가능 자원들의 표현들은 엔티티들 사이에서 전송된다. RESTful 아키텍처에서 자원들을 핸들링할 때, 생성(차일드 자원들을 생성함), 검색(자원의 콘텐츠를 판독함), 갱신(자원의 콘텐츠를 기록함) 또는 삭제(자원을 삭제함)와 같은 자원들에 적용될 수 있는 기본 방법들이 있다. 본 기술분야의 통상의 기술자는 현재 실시예들의 구현들이 본 개시내용의 범위를 유지하는 동안에 변화될 수 있는 것을 인식할 것이다. 본 기술분야의 통상의 기술자는 또한 예시적인 실시예들을 설명하기 위해 본원에 사용되는 oneM2M을 사용하여 개시된 실시예들이 구현들에 제한되지 않는 것을 인식할 것이다. 개시된 실시예들은 ETSI M2M, 및 OMA LWM2M, 및 다른 관련 M2M 시스템들 및 아키텍처들과 같은 아키텍처들 및 시스템들로 구현될 수 있다. 도 8을 계속 참조하면, 제약된 RESTful 환경(constrained RESTful environment)(CoRE) 자원 디렉토리(Resource Directory)(RD) 등록 인터페이스 프로토콜의 강화된 버전은 예를 들어 표 2에 정의되는 그러한 속성들과 같은 M2M 크롤러 메타데이터 속성들에 대한 확장자들을 지원하기 위해 사용될 수 있다.
예를 들어, 예시된 예에 따르면, 802에서, M2M 디바이스(18)는 CoRE RD 등록 요청을 M2M 크롤러 서비스(400)에 송신한다. 하나의 예시된 실시예에 따르면, CoRE RD 등록 요청은 표 2에 정의되는 디바이스 중심 M2M 크롤러 메타데이터를 새로운 URI 질의 스트링 파라미터들로 CoRE RD 등록 요청 내에 반송한다. 메타데이터의 예들은 제한 없이 제시되는, 디바이스의 타입(dt=sensor), 디바이스가 크롤러 프록시를 필요로 하는지(cp=true), 연속적 크롤러 요청들 사이의 최소 지연(min_dcd=3600), 및 디바이스의 위치(loc=10.523, -78.324)를 포함한다. 804에서, M2M 크롤러 서비스는 M2M 디바이스와 연관되는 퍼블리싱된 크롤러 메타데이터를 수신한다. 대안적으로, 803을 참조하면, 디바이스 특정 크롤러 메타데이터를 URI 질의 스트링 파라미터들로 반송하는 것보다는 오히려, 메타데이터는 그 대신에 또한 크롤러 메타데이터를 지원하기 위해 새로운 확장자들을 지원하는 CoRE RD 등록 요청 페이로드 내에 반송될 수 있다. 804에서, 도 8에 도시되는 예시된 예들 둘 다에 따르면, M2M 크롤러 서비스는 M2M 디바이스(18)와 연관되는 퍼블리싱된 크롤러 메타데이터를 수신한다. 806에서, 퍼블리싱된 크롤러 메타데이터를 수신하면, M2M 크롤러 서비스(400)는 예를 들어 및 제한 없이, 디바이스의 타입, 디바이스가 크롤러 프록시를 필요로 하는지, 연속적 크롤러 요청들 사이의 최소 지연, 크롤러 우선순위, 및 디바이스의 위치와 같은 M2M 디바이스(18)에 관한 정보를 발견하기 위해 수신된 메타데이터를 파싱(parsing)할 수 있다. M2M 크롤러 서비스(400)는 이러한 정보를 저장할 수 있고 이러한 정보를 사용하여 장래에 M2M 디바이스(18)의 크롤링을 어떻게 수행하는지 및/또는 수행할 때를 결정할 수 있다.
따라서, 예를 들어 M2M 크롤러 서비스(400)를 호스팅할 수 있는 제1 또는 M2M 노드는 M2M 디바이스와 연관되는 크롤러 메타데이터를 수신할 수 있다. M2M 노드는 수신된 크롤러 메타데이터에 따라 하나 이상의 자원들에 대한 M2M 디바이스를 크롤링할 수 있다. 게다가, M2M 노드는 하나 이상의 자원들이 웹 크롤러, 서비스, 또는 애플리케이션 중 적어도 하나에 의해 발견될 수 있도록 하나 이상의 자원들을 퍼블리싱할 수 있다.
도 8에 도시된 바와 같이, 표 2에 정의되는 자원 특정 M2M 크롤러 메타데이터는 크롤러 메타데이터를 지원하기 위해 새로운 확장자들을 지원하는 CoRE RD 등록 요청 페이로드 내에 반송될 수 있다. 기존 CoRE RD 등록 요청은 자원들을 설명하기 위해 CoRE 링크 포맷 설명 신택스를 사용하는 것을 지원한다. 예시적인 실시예에 따르면, 개별 자원에 특정한 M2M 크롤러 메타데이터는 새로운 코어 링크 포맷 속성들로 반송될 수 있다. 일부 예들은 제한 없이 제시되는, 크롤링 우선순위(p=0.8), 재크롤링 시도들 사이의 최대 지연(max_rcd=86400), 자원 유닛들(ru="Celsius"), 및 지원된 자원 동작들(ro="RO")을 포함한다.
다시 도 7을 참조하면, 퍼블리싱된 메타데이터가 이용가능하지 않은 것으로 704에서 결정되면, 예컨대 주어진 M2M 디바이스가 M2M 크롤러 메타데이터를 M2M 크롤러 서비스(400)에 퍼블리싱하는 것을 지원하지 않기 때문에, 이때 프로세스는 708로 진행할 수 있으며, M2M 크롤러 서비스(400)는 제1 인터페이스(502)를 통해 M2M 디바이스에 질의할 수 있다. M2M 디바이스는 M2M 디바이스와 연관되는 M2M 크롤러 메타데이터를 발견하기 위해 질의될 수 있다. 질의는 주어진 M2M 디바이스를 검출하면, 예를 들어 디바이스가 크롤러 서비스(400)를 호출하고/하거나 M2M 크롤러 서비스(400)에 등록할 때 M2M 크롤러 서비스(400)에 의해 선행적 및 독자적 방식으로(예를 들어, 애플리케이션에 의해 호출되는 것 없이) 수행될 수 있다.
도 9는 제1 인터페이스(502)를 통해 M2M 디바이스(18)에 질의하는 M2M 크롤러 서비스(400)의 일 예를 도시한다. 902에서, 예시된 실시예에 따르면, M2M 크롤러 서비스(400)는 CoRE 링크 포맷 정의 '.well-known/core' 자원의 강화된 버전을 표 3에 정의되는 M2M 크롤러 메타데이터 확장자들을 지원하는 M2M 디바이스(18)에 송신한다. 따라서, M2M 크롤러 서비스(400)는 그것의 '.well-known/core' 자원을 검색함으로써 M2M 디바이스(18)에 질의할 수 있다. 904에서, M2M 디바이스(18)는 M2M 크롤러 메타데이터 확장자들을 포함하는 그것의 CoRE 링크 포맷 설명으로 응답한다. 따라서, 906에서, M2M 크롤러 서비스(400)는 M2M 디바이스(18)로부터 질의된 크롤러 메타데이터를 수신한다.
따라서, 상기 설명된 바와 같이, 예를 들어 M2M 크롤러 서비스(400)를 호스팅할 수 있는 M2M 노드는 M2M 디바이스와 연관되는 크롤러 메타데이터를 수신할 수 있다. M2M 노드는 수신된 크롤러 메타데이터에 따라 하나 이상의 자원들에 대한 M2M 디바이스를 크롤링할 수 있다. 게다가, M2M 노드는 하나 이상의 자원들이 웹 크롤러, 서비스, 또는 애플리케이션 중 적어도 하나에 의해 발견될 수 있도록 하나 이상의 자원들을 퍼블리싱할 수 있다. M2M 노드는 질의를 크롤러 메타데이터에 대한 M2M 디바이스에 송신할 수 있고, M2M 노드는 질의에 응답하여 크롤러 메타데이터를 수신할 수 있다.
도 8 및 도 9에 예시되는 단계들을 수행하는 엔티티들은 도 18c 또는 도 18d에 예시되는 것들과 같은 디바이스, 서버, 또는 컴퓨터 시스템의 메모리에 저장되고, 이들의 프로세서 상에 실행하는 소프트웨어(예를 들어, 컴퓨터 실행가능 명령어들)의 형태로 구현될 수 있는 논리 엔티티들인 점이 이해될 것이다. 즉, 도 8 및 도 9에 예시되는 방법(들)은 도 18c 또는 도 18d에 예시되는 디바이스 또는 컴퓨터 시스템과 같은 컴퓨팅 디바이스의 메모리에 저장되는 소프트웨어(예를 들어, 컴퓨터 실행가능 명령어들)의 형태로 구현될 수 있으며, 컴퓨터 실행가능 명령어들은 컴퓨팅 디바이스의 프로세서에 의해 실행될 때, 도 8 및 도 9에 예시되는 단계들을 수행한다.
M2M 디바이스와 연관되는 M2M 크롤러 메타데이터는 디바이스 특정 크롤러 메타데이터로 언급될 수 있다. 그러한 메타데이터는 예를 들어 및 제한 없이, 디바이스의 타입(dt=sensor), 디바이스가 크롤러 프록시를 필요로 하는지(cp=true), 연속적 크롤러 요청들 사이의 최소 지연(min_dcd=3600), 및 디바이스의 위치(loc=10.523, -78.324)와 같은 디바이스 특정 자원의 속성들(예를 들어 /dev)로 지정될 수 있다. 일부 경우들에서, 주어진 M2M 디바이스 상에 호스팅되는 개별 자원에 특정한 M2M 크롤러 메타데이터는 예를 들어 및 제한 없이, 크롤링 우선순위(p=0.8), 재크롤링 시도들 사이의 최대 지연(max_rcd=86400), 자원 유닛들(ru="Celsius"), 및 지원된 자원 동작들(ro="RO")과 같은 개별 자원의 속성들로 지정될 수 있다. 다시 도 7을 참조하면, 710에서, M2M 크롤링 서비스는 질의된 메타데이터가 주어진 M2M 디바이스를 크롤링하기에 충분한지를 결정할 수 있다. 예컨대, M2M 디바이스는 M2M 크롤러 메타데이터를 M2M 크롤러 서비스(400)에 퍼블리싱하고 M2M 크롤러 서비스(400)가 M2M 크롤러 메타데이터를 질의하고 발견하는 것을 허용하기 위해 메커니즘들을 지원하지 않을 수 있다. 따라서, 프로세스는 단계(712)로 진행할 수 있으며, M2M 서비스는 M2M 디바이스가 크롤러 메타데이터의 자동 생성을 지원하는지를 결정한다. 디바이스는 자동 생성 크롤러 메타데이터를 지원하지 않으면, 이때, 예시된 예에 따라, 프로세스는 730으로 진행하며, 그것은 종료한다. M2M 디바이스가 자동 생성 크롤러 메타데이터를 지원하면, 이때, 예시된 예에 따라, 프로세스는 단계(714)로 진행하며, 크롤러 메타데이터가 자동 생성된다.
예를 들어, 도 10을 참조하면, 크롤러 메타데이터는 인터페이스(502)를 통해 M2M 디바이스(18)를 타겟팅하는 요청들을 모니터링하는 M2M 크롤러 서비스(400)를 통해 자동 생성될 수 있다. M2M 크롤러 서비스는 모니터링된 요청들의 타겟들인 자원들의 목록을 추출한다. 도시된 바와 같이, M2M 크롤러 서비스(400)는 M2M 디바이스(18)를 타겟팅하는 트랜잭션들이 흐르는 M2M 게이트웨이(14) 상에 호스팅되는 서비스 계층(22)의 일부일 수 있다. 도시된 바와 같이, M2M 크롤러 서비스(400)는 예컨대 요청들을 M2M 디바이스(18)에 송신하기 전에, 애플리케이션들(20)로부터 하나 이상의 요청들(1002)을 검사할 수 있다. 도시된 바와 같이, 5개의 요청들(요청들(1002a, 1002b, 1002c, 1002d, 및 1002e))이 모니터링되지만, 임의의 수의 요청들은 원하는 대로 모니터링되고 검사될 수 있다는 점이 이해될 것이다. 게다가, M2M 크롤러 서비스(400)는 M2M 디바이스(18)로부터 응답들을 검사할 수 있다. 게다가, 예시적인 실시예에 따르면, M2M 크롤러 서비스(400)는 요청들(1002)에 의해 타겟팅되는 자원들의 목록을 유지할 수 있다. 이러한 목록은 M2M 크롤러 메타데이터의 역할을 할 수 있고 M2M 디바이스(18)의 장래의 크롤링을 수행하기 위해 사용될 수 있다. 따라서, M2M 크롤러 서비스(400)는 M2M 디바이스에 대한 요청들을 모니터링할 수 있고, M2M 크롤러 서비스(400)는 M2M 디바이스의 다양한 자원들을 위해 타겟팅되는 크롤러 메타데이터를 자동 생성할 수 있다.
유사하게, 다른 예시적인 실시예에 따르면, M2M 크롤러 서비스는 M2M 디바이스에 의해 개시되는 요청들을 모니터링하고, 모니터링된 정보를 사용하여 크롤러 메타데이터를 생성할 수 있다. 예를 들어, 일부 경우들에서, M2M 디바이스들은 그들의 자원들을 프록시 또는 게이트웨이 노드에 미러링하기 위해 요청들을 개시할 수 있다. 그러한 M2M 디바이스들은 주기적 또는 이벤트 기반 방식으로 노드를 갱신할 수 있다. 요청들 및/또는 이러한 요청들에 의해 타겟팅되는 자원들을 모니터링함으로써, M2M 크롤러 서비스(400)는 M2M 디바이스에 의해 지원되는 자원들의 목록을 자동 생성할 수 있다. 이러한 목록은 또한 M2M 크롤러 메타데이터의 역할을 할 수 있고 M2M 디바이스의 장래의 크롤링을 수행하기 위해 사용될 수 있다.
따라서, 제1 노드(M2M 서비스(400)를 호스팅할 수 있음)를 포함하는 복수의 머신-대-머신(M2M) 노드들 및 복수의 M2M 디바이스들을 포함하는 시스템에서, 복수의 M2M 노드들은 네트워크를 통해 통신하며, 제1 노드는 복수의 M2M 디바이스들 중 적어도 하나와 연관되는 크롤러 메타데이터를 수신할 수 있다. 제1 노드는 수신된 크롤러 메타데이터에 따라 하나 이상의 자원들에 대한 적어도 하나의 M2M 디바이스를 크롤링할 수 있다. 게다가, 제1 노드는 하나 이상의 자원들이 웹 크롤러, 서비스, 또는 애플리케이션 중 적어도 하나에 의해 발견될 수 있도록 하나 이상의 자원들을 퍼블리싱할 수 있다. 본원에 설명되는 바와 같이, 제1 노드는 적어도 하나의 M2M 디바이스를 타겟팅하는 하나 이상의 요청들을 모니터링할 수 있다. 모니터링에 기초하여, 제1 노드는 적어도 하나의 M2M 디바이스와 연관되는 컨텍스트 정보를 결정할 수 있다. 게다가, 컨텍스트 정보에 기초하여, 제1 노드는 적어도 하나의 M2M 디바이스가 크롤링될 수 있도록 적어도 하나의 M2M 디바이스와 연관되는 크롤러 메타데이터를 구성할 수 있다.
게다가, 다른 예시적인 실시예에 따르면, M2M 크롤러 서비스(400)는 또한 M2M 서비스 계층 내의 배경 서비스로서(또는 M2M 서비스 계층과의 협력으로) 실행하여 M2M 서비스 계층 자원들을 정기적으로 철저히 찾고 이러한 자원들로부터 크롤러 메타데이터를 추출할 수 있다. 그러한 일 실시예는 데이터를 M2M 서비스 계층 자원들 내에 저장하는 M2M 타입 디바이스들에 유용할 수 있다.
다른 예에서, M2M 크롤러 서비스(400)는 M2M 디바이스의 타입에 기초하여 M2M 디바이스와 연관되는 M2M 크롤러 메타데이터를 생성하는 것을 지원할 수 있다. 예를 들어, M2M 크롤러 서비스(400)를 호출하고/이 서비스에 등록할 때, M2M 디바이스는 그것의 디바이스 타입(예를 들어, ACME 브랜드 온도 센서)를 퍼블리싱할 수 있다. 대안적으로, M2M 크롤러 서비스(400)는 디바이스에 질의함으로써 타입을 발견할 수 있다. 다양한 예시적인 시나리오들에서, 예를 들어 일부 타입들의 디바이스들은 디바이스들이 지원하는 표준화된 세트의 자원들을 가질 수 있기 때문에 디바이스의 타입을 인식하는 것은 M2M 크롤러 서비스(400)가 디바이스의 지원된 세트의 자원들을 추론하는 것을 허용할 수 있다. 일부 경우들에서, M2M 크롤러 서비스(400)는 상이한 M2M 디바이스 타입들에 대한 M2M 크롤러 메타데이터의 내부 라이브러리를 포함할 수 있거나, M2M 크롤러 서비스(400)는 외부 룩업 디렉토리/서비스를 강화하여 그러한 정보를 발견할 수 있다.
다시 도 7을 참조하면, 716에서, M2M 크롤러 서비스(400)는 주어진 M2M 디바이스가 크롤러 메타데이터 강화를 지원할 수 있는지를 결정할 수 있다. 706 또는 710에서 크롤러 메타데이터가 주어진 M2M 디바이스를 크롤링하기에 충분한 것으로 결정되면, 프로세스는 단계(716)로 진행할 수 있다. 따라서, M2M 크롤러 서비스(400)는 퍼블리싱되거나, 질의되거나, 또는 자동 생성된 M2M 디바이스 크롤러 메타데이터를 강화하는 위치에 있을 수 있다. 예시적인 실시예에 따르면, 강화는 아래에 더 설명되는 바와 같이, M2M 크롤러 서비스(400)가 수집하는 컨텍스트 또는 상태를 강화함으로써 지원된다.
718에서, M2M 크롤러 서비스(400)는 크롤러 메타데이터를 강화할 수 있다. 예를 들어, M2M 크롤러 서비스(400)는 인터페이스(502)를 통해 흐르는 요청들 및/또는 응답들을 관찰함으로써 컨텍스트 정보를 수집할 수 있다. 강화에 대한 예시적인 속성들은 제한이 아닌 예로서 제시되는 아래의 표 3에 열거된다. 다른 속성들은 원하는 대로 메타데이터를 강화할 수 있다는 점이 이해될 것이다.
Figure pat00004
표 3을 참조하면, M2M 크롤러 서비스(400)는 다양한 실시예들에 따라 이러한 정보를 관찰하기 위해 상이한 메커니즘들을 사용할 수 있다. 예를 들어, M2M 크롤러 서비스(400)는 주어진 M2M 디바이스로/로부터 인터페이스(502)를 통해 흐르는 트랜잭션들을 능동적으로 모니터링하고 모니터링된 정보를 추상화할 수 있다. 모니터링 및 추상화는 다량의 추가된 오버헤드 및 복잡성 없이 달성될 수 있다. 예를 들어, 타겟팅된 어드레스(예를 들어, URI)를 요청들, 요청들의 타임스탬프, 주어진 M2M 디바이스가 요청들에 응답하는지의 여부, 및 대응하는 응답 코드 내에 모니터링함으로써, M2M 크롤러 서비스(400)는 상기 열거된 컨텍스트 정보와 같은 컨텍스트 정보를 관찰할 수 있다. 대안적으로, M2M 크롤러 서비스(400)는 (예를 들어, 인터페이스(504)를 통해 다른 M2M 크롤러 서비스들과 협력함으로써) 이러한 정보를 수집하기 위해 네트워크 내의 다른 서비스들과 협력할 수 있다.
모니터링된 정보를 사용하면, 예를 들어, M2M 크롤러 서비스(400)는 상위 레벨 컨텍스트 정보를 추혼(결정)하고 그러한 정보를 사용하여 예를 들어 및 제한 없이, 크롤러 프록시가 크롤러 요청들을 그것의 대신에 서비스하는 것을 주어진 M2M 디바이스가 필요로 하는지의 여부와 같은 크롤러 메타데이터; 및 크롤러들이 예를 들어 주어진 M2M 디바이스를 재크롤링할 때를 결정할 때 사용해야 하는 최대/최소 지연 또는 스케줄과 같은 크롤링 정책들의 정의 구성할 수 있다. 따라서, M2M 디바이스와 연관되는 컨텍스트 정보에 기초하여, M2M 크롤러 서비스(400)는 M2M 디바이스가 크롤링될 수 있도록 M2M 디바이스와 연관되는 크롤러 메타데이터를 구성할 수 있다.
M2M 크롤러 서비스(400)는 다양한 실시예들에 따라 이러한 상위 레벨 컨텍스트를 추론하기 위해 상이한 메커니즘들을 구현할 수 있다. 예를 들어, M2M 크롤러 서비스(400)는 M2M 크롤러 서비스(400)가 이러한 타입의 컨텍스트를 추론하기 위해 사용할 수 있는 고유 세트의 알고리즘들 및/또는 정책들을 지원할 수 있다. M2M 크롤러 서비스(400)는 또한 컨텍스트를 추론하기 위해 구성가능 및/또는 프로그램가능 세트의 알고리즘들 및/또는 정책들을 지원할 수 있다. 예를 들어, M2M 크롤러 서비스(400)는 주어진 M2M 디바이스가 제1 인터페이스(502)를 통해 크롤러 요청들에 응답하지 않고 있는 것, 또는 예를 들어 재시도 상태와 같은 에러 응답 코드로 응답하고 있는 것을 검출하면, M2M 크롤러 서비스(400)는 M2M 디바이스가 크롤러 요청들을 처리하는 것과 보조를 맞출 수 없는 것을 추론할 수 있다. 그러한 시나리오에서, M2M 크롤러 서비스(400)는 최소/최대 크롤러 지연들을 적절히 조정하기 위해 크롤러 메타데이터를 강화할 수 있다. 따라서, M2M 디바이스와 연관되는 컨텍스트 정보에 기초하여, M2M 크롤러 서비스(400)는 M2M 디바이스가 크롤링될 수 있도록 M2M 디바이스와 연관되는 크롤러 메타데이터를 구성할 수 있다. 대안적으로, M2M 크롤러 서비스는 M2M 디바이스를 대신하여 크롤러 프록시의 기능을 하는 것을 선행적으로 결정할 수 있다.
다시 도 7을 참조하면, 720에서, 크롤러 메타데이터가 강화된 후에 또는 메타데이터 강화가 지원되지 않는 것을 결정한 후에, M2M 크롤러 서비스(400)는 메타데이터가 M2M 디바이스를 크롤링하기에 충분한지를 결정할 수 있다. 메타데이터가 충분하지 않으면, 프로세스는 730으로 진행할 수 있으며, 그것은 종료한다. 메타데이터가 충분하면, M2M 크롤러 서비스(400)는 M2M 디바이스가 크롤링될 수 있는지를 결정할 수 있다. M2M 디바이스가 크롤링될 수 있으면, M2M 디바이스는 724에서 크롤링된다. M2M 디바이스가 크롤링된 후에 또는 M2M 디바이스가 크롤링을 지원하지 않는 것으로 결정된 후에, M2M 크롤러 서비스(400)는 메타데이터 및/또는 크롤링 결과들을 퍼블리싱하기 위해 다른 서비스들과 협력할 수 있는지가 결정된다. M2M 크롤러 서비스(400)가 협력하지 않으면, 프로세스는 단계(730)로 진행하며, 그것은 종료한다. M2M 크롤러 서비스가 협력할 수 있으면, 프로세스는 단계(728)로 진행하며, M2M 크롤러 서비스(400)는 메타데이터 및/또는 크롤링 결과들을 퍼블리싱하기 위해 다른 서비스들과 협력한다.
예시적인 실시예에서, M2M 디바이스들의 효율적인 이벤트 기반 크롤링을 (주기적 또는 랜덤 크롤링보다는 오히려) 지원하기 위해, M2M 크롤러 서비스(400)는 M2M 디바이스들을 구성하는 것, M2M 디바이스들에 가입하는 것, 및 M2M 디바이스들로부터 크롤러 이벤트들의 통지들을 수신하는 것을 지원한다. 예를 들어, M2M 크롤러 서비스(400)는 M2M 디바이스들에 관한 트리거 조건들을 구성할 수 있어, M2M 크롤러 서비스(400)는 특정 이벤트들이 발생할 때 통지받는다. M2M 크롤러 서비스는 또한 M2M 디바이스들의 고유(고정) 트리거 조건들을 지원할 수 있다. 예시적인 세트의 시맨틱은 구성가능 크롤러 이벤트 트리거 조건들을 지원하기 위해 본원에 정의된다. 표 4는 예시적인 실시예에 따라 JSON 기반인 예시적인 세트의 시맨틱을 예시한다. 다른 대안 포맷들은 또한 원하는 대로 사용될 수 있고, 부가 또는 대안 시맨틱은 원하는 대로 M2M 크롤러 서비스(400)에 의해 사용될 수 있다는 점이 이해될 것이다.
Figure pat00005
이제 도 11을 참조하면, M2M 디바이스들로부터 제1 인터페이스(502)를 통해 크롤러 이벤트들의 통지들을 수신하는 것을 지원하기 위해, M2M 크롤러 서비스(400)는 크롤러 이벤트 통지들을 수신하기 위해 M2M 디바이스들에 가입할 수 있다. 가입의 일부로서, M2M 크롤러 서비스(400)는 크롤러 이벤트가 디바이스에 의해 생성되는 경우/때를 제어하기 위해 트리거 조건들을 구성할 수 있다. 도 11을 참조하면, 예시된 실시예에 따르면, M2M 크롤러 서비스(400)는 M2M 디바이스(18)에 의해 생성되는 크롤러 이벤트들에 가입한다. 1102에서, M2M 크롤러 서비스(400)는 가입 요청을 M2M 디바이스(18)에 송신한다. 예시된 M2M 디바이스(18)는 M2M 크롤러 서비스(400)가 RESTful POST 동작을 사용하여 크롤러 이벤트들에 가입하는 것을 허용하기 위해 디바이스 크롤러 이벤트 가입 자원(예를 들어, '/디바이스/dce/가입들')을 지원한다. 표 4에 지정되는 예시된 JSON 포맷 시맨틱 설명들을 사용하는 크롤러 이벤트에 대한 트리거 조건은 예시적인 가입 요청의 페이로드에 포함된다. 또한 트리거 조건이 만족되는 경우/때 크롤러 이벤트를 M2M 크롤러 서비스(400)에 송신하기 위해 M2M 디바이스(18)가 사용할 수 있는 콜백 URI가 예시적인 가입 요청에 포함된다. 예를 들어, 1104에서, 요청에 응답하여, 크롤러 이벤트 가입은 M2M 디바이스(18)에서 생성되고, 트리거는 M2M 디바이스(18)에서 구성된다. 1106에서, 크롤러 이벤트가 트리거된다. 1108에서, 크롤러 이벤트, 또는 크롤러 이벤트의 통지는 M2M 크롤러 서비스(400)에 송신된다. 예시된 예에 따르면, 크롤러 이벤트는 RESTful POST 요청을 사용하여 M2M 크롤러 서비스(400)에 송신된다. 이러한 요청은 그것의 페이로드 내의 이벤트 정보를 포함할 수 있다. 이벤트 정보는 예를 들어 크롤링/재크롤링을 필요로 하는 자원들에 대한 URI들의 목록을 포함할 수 있다. 크롤러 이벤트를 수신하면, 1110에서, M2M 크롤러 서비스(400)는 본원에 설명되는 바와 같이 M2M 디바이스(18)의 크롤링을 수행하는지 및/또는 본원에 설명되는 바와 같이 대응하는 크롤러 이벤트를 하나 이상의 웹 크롤러들에 생성하는지를 결정할 수 있다. 예를 들어, 1112에서, M2M 크롤러 서비스(400)는 크롤러 이벤트와 연관되는 통지를 수신하는 것에 기초하여, M2M 디바이스(18)의 하나 이상의 자원들을 크롤링할 수 있다.
따라서, 예를 들어 M2M 크롤러 서비스(400)를 호스팅할 수 있는 제1 또는 M2M 노드는 M2M 디바이스와 연관되는 크롤러 메타데이터를 수신할 수 있다. M2M 노드는 수신된 크롤러 메타데이터에 따라 하나 이상의 자원들에 대한 M2M 디바이스를 크롤링할 수 있다. 게다가, M2M 노드는 하나 이상의 자원들이 웹 크롤러, 서비스, 또는 애플리케이션 중 적어도 하나에 의해 발견될 수 있도록 하나 이상의 자원들을 퍼블리싱할 수 있다. 상기 설명된 바와 같이, M2M 노드는 가입 요청을 M2M 디바이스에 송신할 수 있다. 가입 요청은 크롤러 이벤트와 연관되는 트리거 조건을 포함할 수 있고, M2M 디바이스는 가입 요청에 따라 구성될 수 있다. 트리거 조건이 만족될 때, M2M 노드는 크롤러 이벤트의 통지를 수신할 수 있다. 통지를 수신하는 것에 응답하여, M2M 노드는 하나 이상의 자원들 중 선택 자원에 대해 M2M 디바이스를 재크롤링할 수 있으며, 선택 자원은 가입 요청에서 정의된다. 대안적으로, 또는 부가적으로, 통지를 수신하는 것에 응답하여, M2M 노드는 하나 이상의 웹 크롤러들에 대한 제2 통지를 생성할 수 있다.
상기 언급된 바와 같이, M2M 크롤러 서비스(400)는 예를 들어 크롤링된 자원들의 표현들을 저장/캐싱하는 것과 같이, 크롤러 프록시 서비스들을 M2M 디바이스들에 제공할 수 있다. 그러한 서비스들은 M2M 서비스 계층에 등록하지 않고/않거나 그들의 자원 표현들을 M2M 서비스 계층 자원들 내에 저장하지 않는 M2M 디바이스들과 같은 다양한 디바이스들에 유용할 수 있다. M2M 크롤러 서비스(400)는 크롤링을 개시함으로써 독자적/선행적 방식으로 이러한 크롤링을 수행할 수 있거나, M2M 크롤러 서비스(400)는 또한 주어진 M2M 디바이스로부터의 명시적 이벤트 및/또는 요청에 기초하여 크롤링할 수 있다. M2M 디바이스를 크롤링한 후에, M2M 크롤러 서비스(400)는 크롤링된 정보를 사용하여 다양한 서비스들을 제공할 수 있다. 예를 들어, M2M 크롤러 서비스(400)는 종래의 웹 크롤러들에 의해 사용되는 그 자체의 크롤러 이벤트들을 생성할 수 있다. 생성된 크롤러 이벤트들은 예를 들어 새롭게 추가되거나, 생성되거나, 삭제된 디바이스 자원들의 검출에 기할 수 있다. M2M 크롤러 서비스(400)는 또한 크롤링된 M2M 디바이스 자원들의 캐싱된/저장된 표현들을 사용하는 M2M 디바이스들을 대신하여 웹 크롤러 요청들을 서비스할 수 있다. 그렇게 함으로써, M2M 디바이스들은 잠재적인 다수의 크롤러 요청들을 서비스해야 하는 것으로부터 경감(오프로드)될 수 있다.
이제 도 12를 참조하면, M2M 크롤러 서비스(400)는 M2M 디바이스 상에 호스팅되는 각각의 자원 및 자원에 대응하는 크롤러 속성들을 식별하기 위해 M2M 크롤러 메타데이터를 파싱할 수 있다. M2M 디바이스에 관한 각각의 자원의 크롤러 속성들에 기초하여, M2M 크롤러 서비스(400)는 어느 자원들이 크롤링하는지(예를 들어, '크롤링하지 않는' 속성에 기초하여), 자원들을 크롤링하는 순서(예를 들어, '영속적' 속성에 기초하여), 및 자원들을 크롤링할 때(예를 들어, '디바이스 크롤러 지연' 및/또는 '자원 크롤러 지연' 및/또는 '다음 갱신 시간' 속성들에 기초하여)를 결정할 수 있다.
도 12를 참조하면, 예시된 예에 따르면, M2M 크롤러 서비스는 1202에서, 주어진 M2M 디바이스(18)를 크롤링하는 것을 시작하다. 1204에서, M2M 크롤러 서비스(400)는 주어진 M2M 디바이스와 연관되는 크롤러 데이터가 이용가능한지를 결정한다. 크롤러 메타데이터가 이용가능하면, 크롤러 서비스(400)는 예를 들어 '크롤링하지 않는' 메타데이터와 같은 메타데이터에 기초하여 크롤링하기 위해 자원들을 식별한다. 1208에서, 크롤러 서비스(400)는 M2M 디바이스와 연관되는 메타데이터에 기초하여, 예를 들어 '자원 크롤링 우선순위' 메타데이터에 기초하여 크롤링 순서를 결정한다. 1210에서, 크롤러 서비스(400)는 M2M 디바이스와 연관되는 메타데이터에 기초하여, 예를 들어 '크롤링 지연' 메타데이터에 기초하여 크롤링 스케줄을 결정한다. 1212에서, 크롤러 서비스(400)는 이미 페치되지 않았던 최고 우선순위와 연관되는 자원을 페치할 수 있다. 페치된 자원은 또한 메타데이터에 의해 정의되는 크롤러 스케줄링 요건들을 충족시킬 수 있다. 1214에서, 예시된 예에 따르면, 크롤러 서비스(400)는 크롤링된 자원 표현, 크롤러 메타데이터, 컨텍스트 정보, 상태 정보 등과 같은 크롤링과 연관되는 다양한 정보를 저장할 수 있다. 1216에서, 크롤러 서비스(400)는 크롤링될 필요가 여전히 있는 자원들이 있는지를 결정한다. 크롤링될 필요가 있는 자원들이 있으면, 프로세스는 단계(1212)로 복귀한다. 크롤링될 필요가 있는 자원들이 더 이상 없으면, 1228에서, 크롤링이 종료한다.
따라서, 상기 설명된 바와 같이, 크롤링되는 각각의 자원에 대해, M2M 크롤러 서비스(400)는 도 13을 참조하여 아래에 더 설명되는 바와 같이, M2M 디바이스로부터 자원 표현을 페치하고 자원 표현을 (예를 들어, 국부적으로 또는 네트워크 저장 영역에) 저장/캐싱할 수 있다. 크롤링은 선행적/독자적 방식 또는 이벤트 기반 방식으로 행해질 수 있다. 예를 들어, M2M 디바이스는 1202에서, 크롤링을 개시하기 위해 이벤트를 M2M 크롤러 서비스에 트리거할 수 있다. 크롤러 이벤트에 대한 트리거 조건은 상기 설명된 바와 같이 M2M 크롤러 서비스(400)에 의해 M2M 디바이스 상에 구성될 수 있다. M2M 크롤러 서비스(400)는 또한 부가 정보에 자원을 저장할 수 있다. 예를 들어, M2M 크롤러 메타데이터에 포함되는 정보에는 크롤링된 자원 표현(예를 들어, 표현이 비롯된 디바이스 타입 또는 자원 타입, 표현의 콘텐츠 타입, 자원 유닛들, 및 표현을 인덱싱할 때 표현으로부터 추출하는 키워드들, 관련된 페어런트/차일드/시블링 자원 표현들에의 링크들 등)이 저장될 수 있다. 게다가, 1214에서, M2M 크롤러 서비스(400)가 관찰/수집하는 컨텍스트 및/또는 상태 정보에는 또한 크롤링된 자원 표현(예를 들어, 타임스탬프, 위치, 크롤링을 트리거한 이벤트들, 표현들 및/또는 이러한 자원과 관계가 있는 다른 자원들에의 링크들 등)이 저장될 수 있다.
도 12를 계속 참조하면, 크롤러 메타데이터가 1204에서 이용가능하지 않은 것으로 결정되면, 크롤러 서비스(400)는 1218에서, 다른, 예컨대 다음 M2M 디바이스 자원을 계층에서 검색할 수 있다. 1220에서, 크롤링된 자원 표현이 저장되고, 다른 정보에는 크롤링된 자원 표현이 저장될 수 있다. 1222에서, 크롤러 서비스(400)는 크롤링된 자원과 연관되는 크롤러 메타데이터를 생성한다. 1224에서, 크롤러 서비스(400)는 크롤링되어야 하는 서브자원에의 링크를 위한 크롤링된 자원 표현을 체크한다. 1226에서, 크롤러 서비스(400)는 서브자원이 존재하는지를 결정한다. 서브자원이 존재하면, 프로세스는 서브자원이 크롤링될 수 있도록 단계(1218)로 복귀한다. 서브자원이 존재하지 않으면, 크롤링은 1228에서 끝난다.
도 12에 예시되는 단계들을 수행하는 엔티티는 도 18c 또는 도 18d에 예시되는 것들과 같은 디바이스, 서버, 또는 컴퓨터 시스템의 메모리에 저장되고, 이들의 프로세서 상에서 실행되는 소프트웨어(예를 들어, 컴퓨터 실행가능 명령어들)의 형태로 구현될 수 있는 논리 엔티티들인 점이 이해될 것이다. 즉, 도 12에 예시되는 방법(들)은 도 18c 또는 도 18d에 예시되는 디바이스 또는 컴퓨터 시스템과 같은 컴퓨팅 디바이스의 메모리에 저장되는 소프트웨어(예를 들어, 컴퓨터 실행가능 명령어들)의 형태로 구현될 수 있으며, 컴퓨터 실행가능 명령어들은 컴퓨팅 디바이스의 프로세서에 의해 실행될 때, 도 12에 예시되는 단계들을 수행한다.
또한 도 13을 참조하면, M2M 크롤러 서비스(400)는 예시적인 실시예에 따라 M2M 크롤러 메타데이터의 사용 없이 크롤링을 지원할 수 있다. 예를 들어, M2M 크롤러 서비스(400)는 디바이스의 베이스 자원 표현을 우선 검색하고 저장한 다음에, 그것을 검사하여 자원 표현이 임의의 서브자원들에의 링크들을 포함하는지를 인식함으로써 주어진 M2M 디바이스를 재귀적으로 '워킹(walking)'할 수 있다. 예를 들어, 1302에서, M2M 크롤러 서비스(400)는 크롤러 이벤트를 통지받는다. 1304에서, M2M 크롤러 서비스(400)는 상기 설명된 바와 같이, 퍼블리싱된 메타데이터, 질의로부터 수신되는 메타데이터, 또는 자동 생성된 메타데이터를 사용하여 하나 이상의 크롤러 요청들을 구축할 수 있다. 1306에서, M2M 크롤러 서비스(400)는 제1 크롤러 요청을 제1 M2M 디바이스(18)에 송신한다. 요청에 응답하여, 1308에서, 제1 M2M 디바이스(18)는 응답을 M2M 크롤러 서비스(400)에 송신할 수 있다. 응답은 요청과 연관되는 자원 표현을 포함할 수 있다. 1310에서, 예시된 예에 따르면, M2M 크롤러 서비스(400)는 크롤링된 자원 표현, 크롤러 메타데이터, 및 컨텍스트 정보를 저장한다. 1312에서, M2M 크롤러 서비스(400)는 제2 크롤러 요청을 제2 M2M 디바이스(18)에 송신한다. 요청에 응답하여, 1314에서, 제2 M2M 디바이스(18)는 응답을 M2M 크롤러 서비스(400)에 송신할 수 있다. 응답은 제2 요청과 연관되는 자원 표현을 포함할 수 있다. 1316에서, 예시된 예에 따르면, M2M 크롤러 서비스(400)는 크롤링된 자원 표현, 크롤러 메타데이터, 및 컨텍스트 정보를 저장한다. 1318에서, M2M 크롤러 서비스(400)는 제3 크롤러 요청을 제3 M2M 디바이스(18)에 송신한다. 요청에 응답하여, 1320에서, 제3 M2M 디바이스(18)는 제3 응답을 M2M 크롤러 서비스(400)에 송신할 수 있다. 제3 응답은 제3 요청과 연관되는 자원 표현을 포함할 수 있다. 1322에서, 예시된 예에 따르면, M2M 크롤러 서비스(400)는 크롤링된 자원 표현, 크롤러 메타데이터, 및 컨텍스트 정보를 저장한다. 3개의 응답들 및 요청들이 도 13에 예시되지만, 예시는 예시적인 목적들을 위한 것이고, 임의의 수의 요청들은 임의의 수의 M2M 디바이스들에 송신될 수 있다는 점이 이해될 것이다.
응답들에 기초하여, 상기 설명된 바와 같이, M2M 크롤러 서비스는 서브자원 표현들을 검색하고 저장하며, 또한 서브자원들에서 링크들을 체크할 수 있다. 예시적인 실시예에서, 이러한 프로세스는 서브자원들에의 링크들이 더 이상이 발견되지 않을 때까지 계속할 수 있다. 이러한 동작들을 수행함으로써, M2M 크롤러 서비스(400)는 주어진 M2M 디바이스를 크롤링할 수 있고, M2M 크롤러 서비스(400)는 예를 들어 M2M 크롤러 메타데이터가 공유될 수 있는 네트워크 내의 M2M 크롤러 서비스(400) 또는 다른 크롤러들에 의한 M2M 디바이스의 후속 재크롤링을 위해 사용될 수 있는 M2M 디바이스에 대한 M2M 크롤러 메타데이터를 자동 생성할 수 있다.
상기 언급된 바와 같이, 주어진 M2M 크롤러 서비스는 M2M 크롤러 서비스들의 다른 인스턴스들과 협력할 수 있다. 예를 들어, 일 실시예에서, M2M 크롤러 서비스(400)는 제2 인터페이스(504)를 통해 M2M 크롤러 서비스들(400)의 다른 인스턴스들과 협력한다. M2M 크롤러 서비스(400)는 또한 제3 및 제4 인터페이스들(506 및 508) 각각을 통해 네트워크 내의 다른 타입들의 서비스들 및/또는 애플리케이션들과 협력할 수 있다. 협력은 예를 들어 및 제한 없이, 크롤러 메타데이터를 공유하는 것, 크롤링된 자원 표현들을 공유하는 것, 크롤러 기반 이벤트들에 가입하는 것, 크롤러 기반 이벤트들을 구성하는 것, 크롤러 기반 이벤트들을 생성하는 것 등을 포함할 수 있다.
따라서, 예를 들어, M2M 크롤러 서비스(400)를 호스팅하는 제1 또는 M2M 노드는 적어도 하나의 웹 크롤러, 서비스, 또는 애플리케이션으로부터 질의 메시지를 수신할 수 있다. M2M 노드는 질의 메시지를 수신하는 것에 응답하여 하나 이상의 자원들을 퍼블리싱할 수 있다. M2M 노드는 하나 이상의 자원들을 네트워크 내의 다른 또는 제2 노드 상에 호스팅되는 M2M 크롤러 서비스의 인스턴스에 퍼블리싱할 수 있다. 게다가, M2M 디바이스와 연관되는 크롤러 메타데이터는 네트워크 내의 다른 또는 제2 노드 상에 호스팅되는 M2M 크롤러 서비스(400)의 인스턴스로부터 수신될 수 있다.
예시적인 실시예에서, M2M 크롤러 서비스(400)는 M2M 크롤러 메타데이터 확장자들 및 자동화 퍼블리싱을 지원하는 사이트맵 프로토콜의 강화된 버전을 사용하여 M2M 크롤러 메타데이터 및/또는 크롤링된 자원 표현들을 퍼블리싱할 수 있다. 예를 들어, M2M 크롤러 서비스(400)는 본원에 설명되는 상이한 타입들의 크롤러 메타데이터 및 컨텍스트 정보를 갖는 사이트맵 파일들을 강화할 수 있다. 예를 들어, 새로운 사이트맵 XML 태그 정의들은 예를 들어 표 2에 예시되는 크롤러 메타데이터와 같은 다양한 M2M 크롤러 메타데이터, 및 예를 들어 표 3에 예시되는 컨텍스트 정보와 같은 다양한 컨텍스트 정보를 지원하기 위해 정의된다. 도 14는 크롤러 메타데이터 확장자들(볼드체)을 지원하는 예시적인 사이트맵 XML 파일을 도시하지만, 다른 크롤러 메타데이터 확장자들은 원하는 대로 본원에 설명되는 실시예들에 의해 사용될 수 있다는 점이 이해될 것이다.
M2M 크롤러 서비스는 그것이 선행적으로 크롤링되었던 M2M 디바이스 자원들의 크롤링된 버전들에 대한 하나 이상의 사이트맵 파일들에서 크롤러 메타데이터를 퍼블리싱할 수 있다. 예를 들어, 이러한 강화된 사이트맵 파일들은 제3 인터페이스(506)를 통해 웹 크롤러들에 퍼블리싱될 수 있다. 이것은 자원들이 M2M 디바이스들 상에 호스팅되는 것 대신에 크롤러 요청들이 네트워크에 저장되는 M2M 디바이스 자원 표현의 크롤링된 버전에 타겟팅되는 것을 야기할 수 있다. 대안적으로, M2M 크롤러 서비스는 M2M 디바이스들 상에 호스팅되는 자원된(예를 들어, M2M 디바이스들이 자원 제약되지 않는 경우들)에 대한 하나 이상의 사이트맵 파일들에서 크롤러 메타데이터를 퍼블리싱할 수 있다. 이것은 M2M 크롤러 서비스(400)보다는 오히려 크롤러 요청들이 M2M 디바이스들 자체에 타겟팅되는 것을 야기할 수 있다.
M2M 크롤러 서비스는 다양한 실시예들에 따라 사이트맵 파일들을 통해 크롤러 메타데이터를 퍼블리싱하는 상이한 방법들을 지원할 수 있다. 일 실시예에서, M2M 크롤러 서비스는 크롤러 서비스들을 제공하고 있는 M2M 디바이스들에 대한 단일 사이트맵 파일을 유지할 수 있다. 이러한 방법을 사용하면, 예를 들어, M2M 크롤러 서비스는 단일 사이트맵 파일 내에 다수의 M2M 디바이스들에 대한 M2M 크롤러 메타데이터를 결집할 수 있다. 이것은 각각의 M2M 디바이스에 대한 사이트맵 XML에 개별 <디바이스> ... </디바이스> 부분들을 포함함으로써 행해질 수 있다. 단일 사이트맵 파일을 유지하는 장점은 M2M 크롤러 메타데이터를 다른 웹 크롤러들, 서비스들, 애플리케이션들 등에 퍼블리싱하도록 M2M 크롤러 서비스를 위해 요구되는 요청들의 수의 감소일 수 있다. 이러한 실시예에 따른 예시적인 호출 흐름은 도 16에 도시된다.
대안적으로, M2M 크롤러 서비스는 M2M 크롤러 서비스(400)가 서비스들을 제공하는 각각의 M2M 디바이스에 대한 개별 사이트맵 파일들을 유지할 수 있다. 이러한 개별 사이트맵 파일들은 네트워크 내의 다양한 웹 크롤러들, 서비스들, 및/또는 애플리케이션들에 독립적으로 퍼블리싱될 수 있다. 게다가, M2M 크롤러 서비스(400)는 각각의 M2M 디바이스에 대한 개별 사이트맵 파일들 각각에 참조(예를 들어, 링크)를 포함하는 사이트맵 인덱스 파일을 유지할 수 있다. 이러한 사이트맵 인덱스 파일 및 개별 사이트맵 파일들은 M2M 크롤러 서비스(400)에 의해 퍼블리싱될 수 있다. 따라서, 크롤러 메타데이터는 네트워크내의 웹 크롤러들, 서비스들, 및/또는 애플리케이션들을 선택하도록 선택 M2M 디바이스들을 위해 퍼블리싱될 수 있다.
M2M 크롤러 서비스(400)가 단일 사이트맵 파일 또는 다수의 사이트맵 파일들을 유지하는지와 관계없이, M2M 크롤러 서비스는 다양한 예시적인 실시예들에 따라 선행적 퍼블리싱 또는 수동적 퍼블리싱을 지원할 수 있다. 이제 도 15를 참조하면, 선행적 퍼블리싱은 M2M 크롤러 서비스(400)가 사이트맵 파일(들)을 네트워크 내의 하나 이상의 웹 크롤러들(404), 서비스들(22), 및/또는 애플리케이션들(20)에 송신하는 것을 포함할 수 있다(1503 참조). 이에 응답하여, 1505에서, 웹 크롤러들, 서비스들, 및/또는 애플리케이션들은 퍼블리싱 요청이 성공적으로 수행된 것을 표시하는 응답을 M2M 크롤러 서비스(400)에 송신할 수 있다. 대안적으로, 1504에서, M2M 크롤러 서비스(400)는 사이트맵 파일(들)을 국부적으로 널리 공지된 경로(예를 들어, /Sitemap.xml)에서 이용가능하게 할 수 있으며 파일(들)은 M2M 크롤러 서비스(400)를 액세스/호출/크롤링하는 네트워크 내의 웹 크롤러들, 서비스들, 애플리케이션들에 의해 발견될 수 있다. 이것은 수동적 퍼블리싱으로 언급될 수 있고, 크롤러 서비스(400)는 질의 메시지에 응답하여 하나 이상의 사이트맵 파일들을 수동으로 퍼블리싱할 수 있다(1502 참조).
따라서, M2M 크롤러 서비스의 사이트맵 파일(들)은 M2M 크롤러 메타데이터 및 컨텍스트 정보를 퍼블리싱하기 위해 사용될 수 있다. 게다가, 상기 설명된 바와 같이, M2M 크롤러 서비스(400)는 크롤링된 자원 표현들을 국부적으로 저장할 수 있거나 크롤러 서비스(400)는 M2M 크롤러 메타데이터만을 수집 및 퍼블리싱할 수 있다. M2M 크롤러 서비스(400)가 크롤링된 자원 표현들을 저장하는 예시적인 시나리오에서, 네트워크 내의 웹 크롤러들, 서비스들, 및 애플리케이션들로부터의 크롤러 요청들(1506 참조)은 M2M 디바이스들(18)에 대한 크롤러 프록시의 기능을 할 수 있는 M2M 크롤러 서비스(400)를 향해 타겟팅될 수 있다. 따라서, 1508에 도시된 바와 같이, M2M 크롤러 서비스(400)는 요청들에 직접 응답할 수 있다. M2M 크롤러 서비스(400)가 크롤링된 자원 표현들을 저장하지 않는 예시적인 시나리오에서, 네트워크 내의 웹 크롤러들, 서비스들, 및 애플리케이션들로부터의 요청들(1510 참조)은 M2M 크롤러 서비스(400)보다는 오히려 M2M 디바이스들(18)을 향해 타겟팅될 수 있다. 따라서, 1512에 도시된 바와 같이, M2M 디바이스들(18)은 요청들에 응답할 수 있다.
따라서, 상기 설명된 바와 같이, 예를 들어 M2M 크롤러 서비스(400)를 호스팅할 수 있는 M2M 노드는 M2M 디바이스와 연관되는 크롤러 메타데이터를 수신할 수 있다. M2M 노드는 수신된 크롤러 메타데이터에 따라 하나 이상의 자원들에 대한 M2M 디바이스를 크롤링할 수 있다. 게다가, M2M 노드는 하나 이상의 자원들이 웹 크롤러, 서비스, 또는 애플리케이션 중 적어도 하나에 의해 발견될 수 있도록 하나 이상의 자원들을 퍼블리싱할 수 있다. 하나 이상의 자원들을 퍼블리싱하는 것은 하나 이상의 사이트맵 파일들을 적어도 하나의 웹 크롤러, 서비스, 또는 애플리케이션에 직접 송신하는 것을 포함할 수 있다. 대안적으로, 또는 부가적으로, 하나 이상의 자원들을 퍼블리싱하는 것은 하나 이상의 사이트맵 파일들이 적어도 하나의 웹 크롤러, 서비스, 또는 애플리케이션에 의해 어드레스에서 검색될 수 있도록 하나 이상의 사이트맵 파일들을 어드레스에서 이용가능하게 하는 것을 포함할 수 있다.
이제 도 16을 참조하면, M2M 크롤러 서비스(400)는 또한 크롤러 이벤트들을 생성하는 것, 예를 들어 크롤러 이벤트들을 생성하여 제3 인터페이스(506)를 통해 제1 웹 크롤러(1600)와 같은 하나 이상의 웹 크롤러들에 송신하는 것을 지원할 수 있다. 게다가, M2M 크롤러 서비스(400)는 인터페이스(504)를 통해 M2M 크롤러 서비스들의 다른 인스턴스들에 대한 크롤러 이벤트들을 생성할 수 있다. 게다가, M2M 크롤러 서비스(400)는 인터페이스(508)를 통해, M2M 애플리케이션들(20), 예컨대 M2M 디바이스들(18)을 크롤링하는 M2M 애플리케이션들(20)에 대한 크롤러 이벤트들을 생성할 수 있다. 크롤러 이벤트 생성은 상기 설명된 바와 같이 임의의 M2M 디바이스 크롤러 이벤트의 수신에 의해 트리거될 수 있다. 이벤트 생성은 또한 M2M 크롤러 서비스(400)에 의해 독자적으로 및 고유적으로 트리거될 수 있다. 예를 들어, M2M 크롤러 서비스(400)는 M2M 크롤러 서비스(400)가 M2M 디바이스(18)를 크롤링하는 동안에 생성되는 크롤러 이벤트를 트리거할 수 있다. 예를 들어, 크롤링 동안에, M2M 크롤러 서비스(400)는 생성되는 크롤러 이벤트를 트리거하는 M2M 크롤러 서비스(400)에 의해 유지되는 자원 상태의 이전 버전(들)과 비교하여 하나 이상의 디바이스 자원들의 상태에서 추가, 삭제, 또는 변화와 같은 특정 조건들을 검출할 수 있다. M2M 크롤러 서비스(400)는 또한 웹 크롤러들, M2M 서비스들, 및/또는 M2M 애플리케이션들에 제공되는 이벤트 트리거들을 구성할 수 있다. 게다가, M2M 크롤러 서비스(400)는 예를 들어 표 4에 예시되는 것들과 같은 다양한 크롤러 트리거 조건 시맨틱을 사용하여 지원하는 크롤러 이벤트들을 구성할 수 있다.
도 16을 계속 참조하면, 예시된 M2M 크롤러 서비스(400)는 웹 크롤러들, M2M 서비스들, 및 M2M 애플리케이션들이 RESTful POST 동작을 사용하여 크롤러 이벤트들에 가입하는 것을 허용하는 크롤러 이벤트 가입 자원('크롤러/dce/가입들')을 지원한다. 1602에서, 웹 크롤러는 가입 요청을 M2M 크롤러 서비스(400)에 송신한다. 표 4에 지정되는 예시적인 JSON 포맷 시맨틱 설명들을 사용하는 크롤러 이벤트에 대한 트리거 조건은 예시적인 가입 요청의 페이로드에 포함된다. 이러한 예에서, 웹 크롤러(1600)는 크롤러 서비스(400)가 그것의 M2M 디바이스들의 모두에 걸쳐 관찰하는 생성, 갱신 또는 삭제 동작들의 전체 수가 1000보다 더 클 경우/때 크롤러 이벤트를 생성하기 위해 M2M 크롤러 서비스(400)를 구성한다. 또한 트리거 조건이 만족될 경우/때 크롤러 이벤트를 웹 크롤러(1600)에 송신하기 위해 M2M 크롤러 서비스(400)가 사용하는 콜백 URI는 예에 포함된다. 따라서, 1604에서, M2M 크롤러 서비스(400)는 크롤러 이벤트 가입을 생성하고 응답에 따라 트리거를 구성한다. 1606에서, 지정된 크롤러 이벤트가 트리거된다. 1608에서, 이벤트 페이로드는 웹 크롤러(1600)에 송신된다. 상태의 변화들로 인해 크롤링을 필요로 하는 자원들의 URI들의 목록은 예시적인 이벤트 페이로드에 포함된다. 예를 들어, 610에서, 크롤러 이벤트를 수신하면, 웹 크롤러(1600)는 이벤트 페이로드에 따라 M2M 디바이스 자원들의 크롤링을 수행하는지를 결정할 수 있다. 1612에서, 웹 크롤러(1600)는 선택 M2M 디바이스 자원들을 크롤링할 수 있다.
따라서, 상기 설명된 바와 같이, 예를 들어 M2M 크롤러 서비스(400)를 호스팅할 수 있는 M2M 노드는 웹 크롤러로부터 가입 요청을 수신할 수 있다. 가입 요청은 크롤러 이벤트와 연관되는 트리거 조건을 포함할 수 있다. M2M 노드는 가입 요청에 따라 크롤러 이벤트 가입을 생성할 수 있다. 트리거 조건이 만족되면, M2M 노드는 크롤러 이벤트의 통지를 웹 크롤러에 송신할 수 있다. 통지는 트리거 조건과 연관되는 하나 이상의 자원들의 목록을 포함할 수 있다.
도 15 및 도 16에 예시되는 단계들을 수행하는 엔티티들은 도 18c 또는 도 18d에 예시되는 것들과 같은 디바이스, 서버, 또는 컴퓨터 시스템의 메모리에 저장되고, 이들의 프로세서 상에 실행하는 소프트웨어(예를 들어, 컴퓨터 실행가능 명령어들)의 형태로 구현될 수 있는 논리 엔티티들인 점이 이해될 것이다. 즉, 도 15 및 도 16에 예시되는 방법(들)은 도 18c 또는 도 18d에 예시되는 디바이스 또는 컴퓨터 시스템과 같은 컴퓨팅 디바이스의 메모리에 저장되는 소프트웨어(예를 들어, 컴퓨터 실행가능 명령어들)의 형태로 구현될 수 있으며, 컴퓨터 실행가능 명령어들은 컴퓨팅 디바이스의 프로세서에 의해 실행될 때, 도 15 및 도 16에 예시되는 단계들을 수행한다.
도 5를 참조하여 설명하는 바와 같이, M2M 크롤러 서비스 인스턴스들은 M2M 디바이스들(예를 들어, M2M 서버들, M2M 게이트웨이들, M2M 디바이스들 등)의 네트워크에 걸쳐 분산될 수 있다. 그러한 서비스 인스턴스들은 크롤러 요청들을 분산시키고 크롤러 메타데이터 및 크롤링된 자원 표현들을 서로 공유하기 위해 분산 및/또는 계층 방식으로 협력할 수 있다. 예를 들어, M2M 게이트웨이 디바이스 상에 호스팅되는 M2M 크롤러 서비스 인스턴스는 게이트웨이에 등록되는 M2M 디바이스들을 크롤링할 수 있다. 그 다음, M2M 크롤러 서비스는 (예를 들어, 인터페이스(504)를 통해) 이러한 크롤링된 자원 표현들 및 크롤러 메타데이터를 M2M 게이트웨이가 등록되는 M2M 서버 상에 호스팅되는 M2M 크롤러 서비스 인스턴스에 퍼블리싱할 수 있다. 유사하게, 이러한 M2M 크롤러 서비스는 이러한 크롤러 결과들을 네트워크 내의 다른 M2M 서버들 상에 호스팅되는 다른 M2M 크롤러 서비스 인스턴스들에 퍼블리싱할 수 있다.
예시적인 실시예에서, M2M 크롤러 서비스 협력은 상기 설명된 사이트맵 퍼블리싱 메커니즘들에 기초하며, 각각의 M2M 크롤러 서비스 인스턴스는 그것의 사이트맵(들)을 계층에서 더 높은 다른 M2M 크롤러 서비스 인스턴스들에 퍼블리싱한다. 그렇게 함으로써, 네트워크 도처에서 M2M 디바이스들의 크롤링은 현재 웹 크롤러들이 웹을 크롤링하는 방식과 비교하여 더 조정된 방식으로 수행될 수 있다. 크롤러 메타데이터 및 결과들을 계층 방식으로 퍼블리싱함으로써, 예를 들어, M2M 크롤러 서비스 협력은 크롤러 결과들이 계층에서 더 높은 M2M 크롤러 서비스 인스턴스들까지 버블링될 수 있기 때문에 개별 M2M 디바이스가 크롤링되는 시간들의 양을 감소시킬 수 있다. 그 다음, 다른 M2M 크롤러 서비스 인스턴스들과 비교하여 계층에서 더 높이 상중하는 M2M 크롤러 서비스 인스턴스들은 더 낮은 M2M 크롤러 서비스 인스턴스들 전에 크롤러 요청들을 서비스하기 위해 사용될 수 있다. 특정 M2M 크롤러 서비스 인스턴스는 요청을 서비스할 수 없으면(예를 들어, 유효 크롤러 결과들을 갖지 않으면), 그것은 이때 요청을 계층에서 더 낮은 M2M 크롤러 서비스 인스턴스들에 전송하는지의 여부를 결정할 수 있다. 이러한 형태의 계층 M2M 크롤러 서비스 협력을 지원함으로써, 자원 제약 M2M 디바이스들 상의 크롤러 트래픽의 부담뿐만 아니라, M2M 네트워크들 내의 크롤러 트래픽의 양이 크게 감소될 수 있다.
이제 도 17을 참조하면, oneM2M은 능력 서비스 기능들(CSFs)(1702)로 언급되는 oneM2M 서비스 계층에 의해 지원되는 능력들을 정의한다. oneM2M 서비스 계층은 능력 서비스들 엔티티(Capability Services Entity)(CSE)(1704)로 언급된다. 일 실시예에서, M2M 크롤러 서비스(400)는 oneM2M CSF로 지원될 수 있고, 따라서 M2M 크롤러 CSF(400)로 언급될 수 있다. 예를 들어, 크롤러 CSF(400)가 크롤링하는 M2M 디바이스들은 애플리케이션들 및/또는 CSE들 자체를 호스팅하는 M2M 디바이스들, 게이트웨이들, 및 서버들일 수 있다. 애플리케이션들 및 CSE들(1704)은 M2M 크롤러 CSF(400)가 메타데이터를 크롤링하고 수집할 수 있는 자원들을 지원할 수 있다. 이러한 크롤링은 oneM2M 정의된 'X' 및 'Y' 기준 지점들을 통해 수행될 수 있다. 인터페이스들(502, 506, 및 508)을 통해 M2M 크롤러 서비스(400)에 대해 본원에 설명되는 기능성은 oneM2M 'X' 기준 지점 상에 대응하는 기능성을 정의함으로써 지원될 수 있다. 유사하게, M2M 크롤러 서비스(400) 인터페이스(504)의 본원에 설명되는 기능성은 oneM2M 'Y' 기준 지점 상에 동작들을 정의함으로써 지원될 수 있다.
예를 들어, 크롤러 CSF(400)는 크롤러 결과들을 네트워크 내의 다른 크롤러 CSF 인스턴스들과 공유할 수 있다. 크롤러 CSF(400)는 또한 크롤러 결과들을 네트워크 내의 다른 non-oneM2M 서비스들 및 애플리케이션들(예를 들어, 웹 크롤러들) 뿐만 아니라 다른 타입들의 CSF들과 공유할 수 있다.
예시적인 실시예에 따르면, 표 2에 예시되는 M2M 크롤러 메타데이터, 표 3에 예시되는 M2M 크롤러 컨텍스트 정보, 및 상기 설명된 M2M 크롤러 이벤트 가입 및 시맨틱은 oneM2M 아키텍처 내의 새로운 자원들 및 속성들로 정의될 수 있다. 유사하게, 본원에 설명되는 M2M 크롤러 방법들은 oneM2M 아키텍처 내의 M2M 크롤러 CSF 절차들로 정의될 수 있다.
ETSI M2M은 서비스 능력들(Service Capabilities)(SCs)로 언급되는 ETSI M2M 서비스 계층에 의해 지원되는 능력들을 정의한다. ETSI M2M 서비스 계층은 서비스 능력 계층(Service Capability Layer)(SCL)으로 언급된다. 일 실시예에서, 본원에 설명되는 M2M 크롤러 서비스(400)는 ETSI M2M SC로 지원된다. 크롤러 SC가 크롤링하는 M2M 디바이스들은 애플리케이션들 및/또는 SCLs 자체를 호스팅하는 M2M 디바이스들, 게이트웨이들, 및 서버들일 수 있다. 애플리케이션들 및 SCL들은 M2M 크롤러 SC가 메타데이터를 크롤링하고 수집할 수 있는 자원들을 지원할 수 있다. 이러한 크롤링은 'dla', 'mIa' 및 'mId' 기준 지점들을 통해 수행될 수 있으며, 본원에 설명되는 M2M 크롤러 서비스(400) 인터페이스(502)는 'dIa' 기준 지점 상에 동작들을 정의함으로써 지원될 수 있고, 본원에 설명되는 인터페이스(506 및 508)는 'mIa' 기준 지점 상에 동작들을 정의함으로써 지원될 수 있고, 본원에 설명되는 인터페이스(504)는 'mId' 기준 지점 상에 동작들을 정의함으로써 지원될 수 있다.
예를 들어, 크롤러 SC는 크롤러 결과들을 네트워크 내의 다른 크롤러 SC 인스턴스들과 공유할 수 있다. 크롤러 SC는 또한 크롤러 결과들을 네트워크 내의 다른 비-ETSI M2M 서비스들 및 애플리케이션들(예를 들어, 웹 크롤러들) 뿐만 아니라 다른 타입들의 SC들과 공유할 수 있다.
표 2에 예시되는 예시적인 M2M 크롤러 메타데이터, 표 3에 예시되는 M2M 크롤러 컨텍스트 정보, 및 상기 설명된 M2M 크롤러 이벤트 가입 및 시맨틱은 예시적인 실시예에 따른 ETSI M2M 자원 구조 내의 새로운 자원들 및 속성들로 정의될 수 있다. 유사하게, 본원에 설명되는 M2M 크롤러 방법들은 ETSI M2M 아키텍처 내의 M2M 크롤러 SC 절차들로 정의될 수 있다. 예를 들어, 일 실시예에 따르면, M2M 크롤러 SC는 배경 작업으로 실행하고, M2M 서비스 계층 내에 저장되는 M2M 디바이스 자원을 크롤링하고, 크롤러 메타데이터를 생성할 수 있다. 그렇게 함으로써, 이러한 메타데이터는 웹 크롤러들에(예를 들어, 강화된 사이트맵 방법들을 통해) 차례로 이용가능해질 수 있다. 따라서, 예를 들어, M2M 크롤러 SC는 크롤러 메타데이터를 사람들이 더 용이하게 발견할 수 있는 웹 검색 엔진들에 광고함으로써 SCL에 등록되는 M2M 디바이스들 뿐만 아니라 로컬 SCL에 서비스를 제공한다.
상기 설명된 바와 같이, 실시예들은 강화된 IoT 웹 브라우징을 허용한다. 예를 들어, M2M 디바이스들은 웹 검색 엔진들을 사용하여 검색될 수 있다. 다양한 질의들은 M2M 디바이스들과 연관되는 정보를 검색하도록 사용자에 의해 검색 엔진으로 입력될 수 있다. 예시적인 질의들은 예를 들어 및 제한 없이, M2M 디바이스의 타입과 관련되는 질의들, M2M 디바이스의 물리 위치, M2M 디바이스들과 연관되는 콘텐츠 타입, M2M 디바이스들과 연관되는 측정 단위들 등을 포함한다. 게다가, 상기 설명된 실시예들을 사용하면, 검색 엔진 결과들은 예를 들어 주어진 M2M 디바이스의 도달가능 상태, M2M 디바이스와 연관되는 콘텐츠(예를 들어, 과거 또는 현재)의 이용가능성 등과 같은 M2M 디바이스들과 연관되는 다양한 정보를 포함하는 사용자의 컴퓨팅 디바이스 상에 디스플레이될 수 있다.
도 18a는 하나 이상의 개시된 실시예들이 구현될 수 있는 예시적인 머신-대-머신(M2M), 사물 인터넷(IoT), 또는 사물 웹(WoT) 통신 시스템(10)의 도면이다. 일반적으로, M2M 기술들은 IoT/WoT를 위한 빌딩 블록들을 제공하고, 임의의 M2M 디바이스, M2M 게이트웨이 또는 M2M 서비스 플랫폼은 IoT/WoT 서비스 계층뿐만 아니라 IoT/WoT의 구성요소 등일 수 있다.
도 18a에 도시된 바와 같이, M2M/ IoT/WoT 통신 시스템(10)은 통신 네트워크(12)를 포함한다. 통신 네트워크(12)는 고정 네트워크(예를 들어, 이더넷, 파이버, ISDN, PLC 등) 또는 무선 네트워크(예를 들어, WLAN, 셀룰러 등) 또는 이종 네트워크들의 네트워크일 수 있다. 예를 들어, 통신 네트워크(12)는 보이스, 데이터, 비디오, 메시징, 브로드캐스트 등과 같은 콘텐츠를 다수의 사용자들에게 제공하는 다수의 액세스 네트워크들을 포함할 수 있다. 예를 들어, 통신 네트워크(12)는 하나 이상의 채널 액세스 방법들, 예컨대 코드 분할 다중 액세스(code division multiple access)(CDMA), 시분할 다중 액세스(time division multiple access)(TDMA), 주파수 분할 다중 액세스(frequency division multiple access)(FDMA), 직교 FDMA(orthogonal FDMA)(OFDMA), 단일 캐리어 FDMA(single-carrier FDMA)(SC-FDMA) 등을 이용할 수 있다. 게다가, 통신 네트워크(12)는 예를 들어 코어 네트워크, 인터넷, 센서 네트워크, 산업 제어 네트워크, 개인 영역 네트워크, 융합 개인 네크워크, 위성 네트워크, 홈 네트워크, 또는 기업 네트워크와 같은 다른 네트워크들을 포함할 수 있다.
도 18a에 도시된 바와 같이, M2M/ IoT/WoT 통신 시스템(10)은 인프라스트럭처 도메인 및 필드 도메인을 포함할 수 있다. 인프라스트럭처 도메인은 엔드 투 엔드 M2M 전개의 네트워크 측을 언급하고, 필드 도메인은 통상 M2M 게이트웨이 뒤의 영역 네트워크들을 언급한다. 필드 도메인은 M2M 게이트웨이들(14) 및 단말 디바이스들(18)을 포함한다. 임의의 수의 M2M 게이트웨이 디바이스들(14) 및 M2M 단말 디바이스들(18)은 원하는 대로 M2M/ IoT/WoT 통신 시스템(10)에 포함될 수 있다는 점이 이해될 것이다. M2M 게이트웨이 디바이스들(14) 및 M2M 단말 디바이스들(18) 각각은 통신 네트워크(12) 또는 직접 무선 링크를 통해 신호들을 송신하고 수신하도록 구성된다. M2M 게이트웨이 디바이스(14)는 고정 네트워크 M2M 디바이스들(예를 들어, PLC) 뿐만 아니라 무선 M2M 디바이스들(예를 들어 셀룰러 및 비셀룰러)이 운영자 네트워크들, 예컨대 통신 네트워크(12) 또는 직접 무선 링크를 통해 통신하는 것을 허용한다. 예를 들어, M2M 디바이스들(18)은 데이터를 수집하고 데이터를 통신 네트워크(12) 또는 직접 무선 링크를 통해, M2M 애플리케이션(20) 또는 M2M 디바이스들(18)에 송신할 수 있다. M2M 디바이스들(18)은 또한 M2M 애플리케이션(20) 또는 M2M 디바이스(18)로부터 데이터를 수신할 수 있다. 게다가, 데이터 및 신호들은 아래에 설명되는 바와 같이, M2M 서비스 계층(22)를 통해 M2M 애플리케이션(20)에 송신되고 M2M 애플리케이션(20)으로부터 수신될 수 있다. M2M 디바이스들(18) 및 게이트웨이들(14)은 예를 들어 셀룰러, WLAN, WPAN(예를 들어, 지그비, 6LoWPAN, 블루투스), 직접 무선 링크, 및 전선을 포함하는 다양한 네트워크들을 통해 통신할 수 있다.
도 18b를 참조하면, 필드 도메인 내의 예시된 M2M 서비스 계층(22)은 M2M 애플리케이션(20), M2M 게이트웨이 디바이스들(14), 및 M2M 단말 디바이스들(18) 및 통신 네트워크(12)를 위한 서비스들을 제공한다. M2M 서비스 계층(22)은 원하는 대로 임의의 수의 M2M 애플리케이션들, M2M 게이트웨이 디바이스들(14), M2M 단말 디바이스들(18), 및 통신 네트워크들(12)과 통신할 수 있다는 점이 이해될 것이다. M2M 서비스 계층(22)은 하나 이상의 서버들, 컴퓨터들 등에 의해 구현될 수 있다. M2M 서비스 계층(22)은 M2M 단말 디바이스들(18), M2M 게이트웨이 디바이스들(14) 및 M2M 애플리케이션들(20)에 적용되는 서비스 능력들을 제공한다. M2M 서비스 계층(22)의 기능은 다양한 방식들로, 예를 들어 웹 서버, 셀룰러 코어 네트워크, 클라우드 등으로 구현될 수 있다.
예시된 M2M 서비스 계층(22)과 유사하게, 인프라스트럭처 도메인에 M2M 서비스 계층(22')이 있다. M2M 서비스 계층(22')은 인프라스트럭처 도메인 내의 M2M 애플리케이션(20') 및 하부 통신 네트워크(12')를 위한 서비스들을 제공한다. M2M 서비스 계층(22')은 또한 필드 도메인 내의 M2M 게이트웨이 디바이스들(14) 및 M2M 단말 디바이스들(18)을 위한 서비스들을 제공한다. M2M 서비스 계층(22')은 임의의 수의 M2M 애플리케이션들, M2M 게이트웨이 디바이스들 및 M2M 단말 디바이스들과 통신할 수 있다는 점이 이해될 것이다. M2M 서비스 계층(22')은 상이한 서비스 제공자에 의해 서비스 계층과 상호작용할 수 있다. M2M 서비스 계층(22')은 하나 이상의 서버들, 컴퓨터들, 가상 머신들(예를 들어, 클라우드/계산/저장 팜들 등) 등에 의해 구현될 수 있다.
여전히 도 18b를 참조하면, M2M 서비스 계층(22 및 22')은 다양한 애플리케이션들 및 버티컬들이 강화할 수 있는 코어 세트의 서비스 전달 능력들을 제공한다. 이러한 서비스 능력들은 M2M 애플리케이션들(20 및 20')이 디바이스들과 상호작용하고 기능들 예컨대 데이터 수집, 데이터 분석, 디바이스 관리, 보안, 요금 청구, 서비스/디바이스 발견 등을 수행할 수 있게 한다. 본질적으로, 이러한 서비스 능력들은 이러한 기능성들을 구현하는 애플리케이션들의 부담을 없애므로, 따라서 애플리케이션 개발을 단순화하고 마켓에 대한 비용 및 시간을 감소시킨다. 서비스 계층(22 및 22')은 또한 서비스 계층(22 및 22')이 제공하는 서비스들과 관련하여 M2M 애플리케이션들(20 및 20')이 다양한 네트워크들(12 및 12')을 통해 통신할 수 있게 한다.
일부 실시예들에서, M2M 애플리케이션들(20 및 20')은 본원에서 논의되는 바와 같이, 세션 크리덴셜들을 사용하여 통신하는 원하는 애플리케이션들을 포함할 수 있다. M2M 애플리케이션들(20 및 20')은 제한 없이, 수송, 건강 및 건강관리, 커넥티드 홈, 에너지 관리, 애셋 트래킹, 및 보안 및 감시와 같은 다양한 산업들 내의 애플리케이션들을 포함할 수 있다. 상기 언급된 바와 같이, 시스템의 디바이스들, 게이트웨이들, 및 다른 서버들에 걸쳐 실행하는 M2M 서비스 계층은 예를 들어 데이터 수집, 디바이스 관리, 보안, 요금 부과, 위치 추적/지오펜싱(geofencing), 디바이스/서비스 발견, 및 레거시 시스템들 통합과 같은 기능들을 지원하고, 이러한 기능들을 서비스들로서 M2M 애플리케이션들(20 및 20')에 제공한다.
본 출원의 M2M 크롤링 서비스(400)는 임의의 서비스 계층의 일부로 구현될 수 있다. 서비스 계층은 한 세트의 애플리케이션 프로그래밍 인터페이스들(APIs) 및 하부 네트워킹 인터페이스들을 통해 부가 가치 서비스 능력들을 지원하는 소프트웨어 미들웨어 계층이다. M2M 엔티티(예를 들어, 하드웨어 및 소프트웨어의 조합에 의해 구현될 수 있는 디바이스, 게이트웨이, 또는 서비스/플랫폼과 같은 M2M 기능 엔티티)는 애플리케이션 또는 서비스를 제공할 수 있다. ETSI M2M 및 oneM2M 둘 다는 본 발명의 E2E M2M 서비스 계층 세션 관리 및 다른 것들을 포함할 수 있는 서비스 계층을 사용한다. ETSI M2M의 서비스 계층은 서비스 능력 계층(SCL)으로 언급된다. SCL은 M2M 디바이스(디바이스 SCL(device SCL)(DSCL)로 언급됨), 게이트웨이(게이트웨이 SCL(gateway SCL)(GSCL)로 언급됨) 및/또는 네트워크 노드(네트워크 SCL(network SCL)(NSCL)로 언급됨) 내에서 구현될 수 있다. oneM2M 서비스 계층은 한 세트의 공통 서비스 기능들(Common Service Functions)(CSFs)(즉 서비스 능력들)을 지원한다. 한 세트의 하나 이상의 특정 타입들의 CSF들의 인스턴스화는 상이한 타입들의 네트워크 노드들(예를 들어 인프라스트럭처 노드, 중간 노드, 애플리케이션 특정 노드) 상에 호스팅될 수 있는 공통 서비스 엔티티(Common Services Entity)(CSE)로 언급된다. 게다가, 본 출원의 E2E M2M 서비스 계층 세션 관리 및 다른 것들은 다른 것들 중에서, 본 출원의 세션 종단점, 세션 매니저, 및 세션 크리덴셜 기능과 같은 서비스들에 액세스하기 위해 서비스 지향 아키텍처(Service Oriented Architecture)(SOA) 및/또는 자원 지향 아키텍처(resource-oriented architecture)(ROA)를 사용하는 M2M 네트워크의 일부로 구현될 수 있다.
도 18c는 예를 들어 M2M 단말 디바이스(18) 또는 the M2M 게이트웨이 디바이스(14)와 같은 예시적인 M2M 디바이스(30)의 시스템도이다. 도 18c에 도시된 바와 같이, M2M 디바이스(30)는 프로세서(32), 송수신기(34), 송신/수신 요소(36), 스피커/마이크로폰(38), 키패드(40), 디스플레이/터치패드(42), 비착탈식 메모리(44), 착탈식 메모리(46), 전원(48), 위성 위치 확인 시스템(global positioning system)(GPS) 칩셋(50), 및 다른 주변 장치들(52)를 포함할 수 있다. M2M 디바이스(30)는 일 실시예와 일치를 유지하는 동안에 이전 요소들의 임의의 서브 조합을 포함할 수 있다는 점이 이해될 것이다. 이러한 디바이스는 M2M 크롤링 서비스(400)를 포함하는 개시된 시스템들 및 방법들을 사용하는 디바이스일 수 있다.
프로세서(32)는 범용 프로세서, 특수 목적 프로세서, 종래의 프로세서, 디지털 신호 프로세서(digital signal processor)(DSP), 복수의 마이크로프로세서들, DSP 코어와 연관되는 하나 이상의 마이크로프로세서들, 제어기, 마이크로제어기, 주문형 집적 회로(Application Specific Integrated Circuits)(ASICs), 필드 프로그램가능 게이트 어레이(Field Programmable Gate Array)(FPGAs) 회로들, 임의의 다른 타입의 집적 회로(integrated circuit)(IC), 상태 머신 등일 수 있다. 프로세서(32)는 신호 코딩, 데이터 처리, 전력 제어, 입력/출력 처리, 및/또는 M2M 디바이스(30)가 무선 환경에서 동작할 수 있게 하는 임의의 다른 기능성을 수행할 수 있다. 프로세서(32)는 송신/수신 요소(36)에 결합될 수 있는 송수신기(34)에 결합될 수 있다. 도 18c는 프로세서(32) 및 송수신기(34)를 개별 구성요소들로서 도시하지만, 프로세서(32) 및 송수신기(34)는 전자 패키지 또는 칩에서 함께 집적될 수 있다는 점이 이해될 것이다. 프로세서(32)는 애플리케이션 계층 프로그램들(예를 들어, 브라우저들) 및/또는 무선 액세스 계층(radio access-layer)(RAN) 프로그램들 및/또는 통신들을 수행할 수 있다. 프로세서(32)는 예를 들어 액세스 계층 및/또는 애플리케이션 계층에서와 같이, 인증, 보안 키 합의, 및/또는 암호 동작들과 같은 보안 동작들을 수행할 수 있다.
송신/수신 요소(36)는 신호들을 M2M 서비스 플랫폼(22)에 송신하거나 M2M 서비스 플랫폼(22)으로부터 신호들을 수신하도록 구성될 수 있다. 예를 들어, 일 실시예에서, 송신/수신 요소(36)는 RF 신호들을 송신 및/또는 수신하도록 구성되는 안테나일 수 있다. 송신/수신 요소(36)는 WLAN, WPAN, 셀룰러 등과 같은 다양한 네트워크들 및 무선 인터페이스들을 지원할 수 있다. 일 실시예에서, 송신/수신 요소(36)는 예를 들어 IR, UV, 또는 가시 광 신호들을 송신 및/또는 수신하도록 구성되는 방사기/검출기일 수 있다. 또 다른 실시예에서, 송신/수신 요소(36)는 RF 및 광 신호들 둘 다를 송신하고 수신하도록 구성될 수 있다. 송신/수신 요소(36)는 무선 또는 유선 신호들의 임의의 조합을 송신 및/또는 수신하도록 구성될 수 있다는 점이 이해될 것이다.
게다가, 송신/수신 요소(36)가 단일 요소로 도 18c에 도시되지만, M2M 디바이스(30)는 임의의 수의 송신/수신 요소들(36)을 포함할 수 있다. 더 구체적으로, M2M 디바이스(30)는 MIMO 기술을 이용할 수 있다. 따라서, 일 실시예에서, M2M 디바이스(30)는 무선 신호들을 송신하고 수신하는 2개 이상의 송신/수신 요소들(36)(예를 들어, 다수의 안테나들)을 포함할 수 있다.
송수신기(34)는 송신/수신 요소(36)에 의해 송신되는 신호들을 변조하고 송신/수신 요소(36)에 의해 수신되는 신호들을 복조하도록 구성될 수 있다. 상기 언급된 바와 같이, M2M 디바이스(30)는 멀티모드 능력들을 가질 수 있다. 따라서, 송수신기(34)는 M2M 디바이스(30)가 예를 들어 UTRA 및 IEEE 802.11과 같은 다수의 RAT들을 통해 통신할 수 있게 하는 다수의 송수신기들을 포함할 수 있다.
프로세서(32)는 비착탈식 메모리(44) 및/또는 착탈식 메모리(46)와 같은 임의의 타입의 적절한 메모리로부터 정보에 액세스하고, 이 메모리에 데이터를 저장할 수 있다. 비착탈식 메모리(44)는 랜덤 액세스 메모리(random-access memory)(RAM), 판독 전용 메모리(read-only memory)(ROM), 하드 디스크, 또는 임의의 다른 타입의 메모리 저장 디바이스를 포함할 수 있다. 착탈식 메모리(46)는 가입자 식별 모듈(subscriber identity module)(SIM) 카드, 메모리 스틱, 보안 디지털(secure digital)(SD) 메모리 카드 등을 포함할 수 있다. 다른 실시예들에서, 프로세서(32)는 M2M 디바이스(30) 상에, 예컨대 서버 또는 가정용 컴퓨터 상에 물리적으로 위치되지 않는 메모리로부터 정보에 액세스하고, 메모리에 데이터를 저장할 수 있다. 프로세서(32)는 본원에 설명되는 실시예들의 일부에서 M2M 크롤링 서비스(400)(예를 들어, 크롤링, 퍼블리싱, 협력)가 성공하거나 실패하는지에 응답하여 디스플레이 또는 표시기들(42) 상에서 조명 패턴들, 이미지들, 또는 컬러들을 제어하고, M2M 크롤링 서비스(400) 성능의 상태를 다른 방법으로 표시하도록 구성될 수 있다. 다른 예에서, 디스플레이는 본원에 설명되는 크롤링 이벤트들에 관한 정보를 나타낼 수 있다. 디스플레이 상에 나타낼 수 있는 그래픽 사용자 인터페이스는 사용자가 본원에 설명되는 하부 M2M 크롤링 서비스(400)를 통해 M2M 디바이스들의 웹 검색을 상호작용으로 설정하고 관리하는 것을 허용하기 위해 API의 위에 계층화될 수 있다. 예를 들어, 검색 엔진 결과들은 예를 들어 주어진 M2M 디바이스의 도달가능 상태, M2M 디바이스와 연관되는 콘텐츠(예를 들어, 과거 또는 현재)의 이용가능성 등과 같은 M2M 디바이스들과 연관되는 다양한 정보를 포함하는 사용자의 컴퓨팅 디바이스 상에 디스플레이될 수 있다.
프로세서(32)는 전원(48)으로부터 전력을 수신할 수 있고, 전력을 M2M 디바이스(30) 내의 다른 구성요소들에 분배 및/또는 제어하도록 구성될 수 있다. 전원(48)은 M2M 디바이스(30)에 전력을 공급하는 임의의 적절한 디바이스일 수 있다. 예를 들어, 전원(48)은 하나 이상의 건전지 배터리들(예를 들어, 니켈 카드뮴(nickel-cadmium)(NiCd), 니켈 아연(nickel-zinc)(NiZn), 니켈 수소 금속(nickel metal hydride)(NiMH), 리튬 이온(lithium-ion)(Li-ion) 등), 태양 전지들, 연료 전지들 등을 포함할 수 있다.
프로세서(32)는 또한 M2M 디바이스(30)의 현재 위치에 관한 위치 정보(예를 들어, 경도 및 위도)를 제공하도록 구성되는 GPS 칩셋(50)에 결합될 수 있다. M2M 디바이스(30)는 일 실시예와 일치를 유지하는 동안 임의의 적절한 위치 결정 방법으로 위치 정보를 취득할 수 있다는 점이 이해될 것이다.
프로세서(32)는 부가 특징들, 기능성 및/또는 유선 또는 무선 연결성을 제공하는 하나 이상의 소프트웨어 및/또는 하드웨어 모듈들을 포함할 수 있는 다른 주변 장치들(52)에 더 결합될 수 있다. 예를 들어, 주변 장치들(52)은 가속도계, 전자 나침반, 위성 송수신기, 센서, 디지털 카메라(사진들 또는 비디오를 위함), 범용 직렬 버스(universal serial bus)(USB) 포트, 진동 디바이스, 텔레비전 송수신기, 핸즈 프리 헤드셋, 블루투스® 모듈, 주파수 변조(frequency modulated)(FM) 라디오 유닛, 디지털 뮤직 플레이어, 미디어 플레이어, 비디오 게임 플레이어 모듈, 인터넷 브라우저 등을 포함할 수 있다.
도 18d는 예를 들어 도 18a 및 도 18b의 M2M 서비스 플랫폼(22)이 구현될 수 있는 예시적인 컴퓨팅 시스템(90)의 블록도이다. 컴퓨팅 시스템(90)은 컴퓨터 또는 서버를 포함할 수 있고 컴퓨터 판독가능 명령어들에 의해 주로 제어될 수 있으며, 컴퓨터 판독가능 명령어들은 어디든지 소프트웨어의 형태일 수 있거나, 어떤 수단에 의해 그러한 소프트웨어가 저장되거나 액세스된다. 그러한 컴퓨터 판독가능 명령어들은 컴퓨팅 시스템(90)이 작업하게 하기 위해 중앙 처리 유닛(CPU)(91) 내에 실행될 수 있다. 많은 공지된 워크스테이션들, 서버들, 및 개인용 컴퓨터들에서, 중앙 처리 유닛(91)은 마이크로프로세서로 불려지는 단일 칩 CPU에 의해 구현된다. 다른 머신들에서, 중앙 처리 유닛(91)은 다수의 프로세서들을 포함할 수 있다. 코프로세서(81)는 부가 기능들을 수행하거나 CPU(91)를 원조하는, 메인 CPU(91)와 별개의 선택적인 프로세서이다. CPU(91) 및/또는 코프로세서(81)는 세션 크리덴셜들을 수신하거나 세션 크리덴셜들에 기초하여 인증하는 것과 같이, E2E M2M 서비스 계층 세션들을 위한 개시된 시스템들 및 방법들과 관련되는 데이터를 수신, 생성, 및 처리할 수 있다.
동작에서, CPU(91)는 명령어들을 페치, 디코딩, 및 실행하고, 컴퓨터의 메인 데이터 전송 경로, 즉 시스템 버스(80)를 통해 다른 자원들로 및 다른 자원들로부터 정보를 전송한다. 그러한 시스템 버스는 컴퓨팅 시스템(90) 내의 구성요소들을 연결하고 데이터 교환을 위한 매체를 정의한다. 시스템 버스(80)는 전형적으로 데이터를 송신하는 데이터 라인들, 어드레스들을 송신하는 어드레스 라인들, 및 인터럽트들을 송신하고 시스템 버스를 동작시키는 제어 라인들을 포함한다. 그러한 시스템 버스(80)의 일 예는 주변 구성요소 상호연결(Peripheral Component Interconnect)(PCI) 버스이다.
시스템 버스(80)에 결합되는 메모리 디바이스들은 랜덤 액세스 메모리(RAM)(82) 및 판독 전용 메모리(ROM)(93)를 포함한다. 그러한 메모리들은 정보가 저장되고 검색되는 것을 허용하는 회로를 포함한다. ROM들(93)은 일반적으로 용이하게 수정될 수 없는 저장된 데이터를 포함한다. RAM(82)에 저장되는 데이터는 CPU(91) 또는 다른 하드웨어 디바이스들에 의해 판독되거나 변화될 수 있다. RAM(82) 및/또는 ROM(93)에의 액세스는 메모리 제어기(92)에 의해 제어될 수 있다. 메모리 제어기(92)는 명령어들이 실행됨에 따라 가상 어드레스들을 물리 어드레스들로 변환하는 어드레스 변환 기능을 제공할 수 있다. 메모리 제어기(92)는 또한 시스템 내에서 프로세스들을 분리하고 사용자 프로세스들로부터 시스템 프로세스들을 분리하는 메모리 보호 기능을 제공할 수 있다. 따라서, 제1 노드에서 실행하는 프로그램은 그 자체의 프로세스 가상 어드레스 공간에 의해 매핑되는 메모리만에 액세스하고; 그것은 프로세스들 사이의 메모리 공유가 설정되지 않았으면 다른 프로세스의 가상 어드레스 공간 내에서 메모리에 액세스할 수 없다.
게다가, 컴퓨팅 시스템(90)은 명령어들을 CPU(91)로부터 주변 장치들, 예컨대 프린터(94), 키보드(84), 마우스(95), 및 디스크 드라이브(85)로 전달할 책임이 있는 주변 장치 제어기(83)를 포함할 수 있다.
디스플레이 제어기(96)에 의해 제어되는 디스플레이(86)는 컴퓨팅 시스템(90)에 의해 생성되는 시각 출력을 디스플레이하기 위해 사용된다. 그러한 시각 출력은 텍스트, 그래픽스, 애니메이션 그래픽스, 및 비디오를 포함할 수 있다. 디스플레이(86)는 CRT 기반 비디오 디스플레이, LCD 기반 평면 패널 디스플레이, 가스 플라즈마 기반 평면 패널 디스플레이, 또는 터치 패널로 구현될 수 있다. 디스플레이 제어기(96)는 디스플레이(86)에 송신되는 비디오 신호를 생성하도록 요구되는 전자 구성요소들을 포함한다.
게다가, 컴퓨팅 시스템(90)은 컴퓨팅 시스템(90)을 외부 통신 네트워크, 예컨대 도 18a 및 도 18b의 네트워크(12)에 연결하기 위해 사용될 수 있는 네트워크 어댑터(97)를 포함할 수 있다.
본원에 설명되는 시스템들, 방법들 및 프로세스들 중 임의의 것 또는 전부는 컴퓨터 판독가능 저장 매체 상에 저장되는 컴퓨터 실행가능 명령어들(즉, 프로그램 코드)의 형태로 구현될 수 있으며, 명령어들은 컴퓨터, 서버, M2M 단말 디바이스, M2M 게이트웨이 디바이스 등과 같은 머신에 의해 실행될 때, 본원에 설명되는 시스템들, 방법들 및 프로세스들을 수행 및/또는 구현한다는 점이 이해된다. 구체적으로, 상기 설명된 단계들, 동작들 또는 기능들 중 임의의 것은 그러한 컴퓨터 실행가능 명령어들의 형태로 구현될 수 있다. 컴퓨터 판독가능 저장 매체는 정보의 저장을 위한 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 착탈식 및 비착탈식 매체 둘 다를 포함하지만, 그러한 컴퓨터 판독가능 저장 매체는 신호들을 포함하지 않는다. 컴퓨터 판독가능 저장 매체는 원하는 정보를 저장하기 위해 사용될 수 있고 컴퓨터에 의해 액세스될 수 있는 RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, 디지털 다기능 디스크들(digital versatile disks)(DVD) 또는 다른 광 디스크 스토리지, 자기 카세트들, 자기 테이프, 자기 디스크 저장 또는 다른 자기 저장 디바이스들, 또는 임의의 다른 물리 매체를 포함하지만, 이들에 제한되지 않는다.
본 개시내용의 발명 대상의 바람직한 실시예들을 설명할 시에, 도면들에 예시된 바와 같이, 특정 전문용어는 명확성을 위해 이용된다. 그러나, 청구된 발명 대상은 그렇게 선택되는 특정 전문용어에 제한되도록 의도되지 않고, 각각의 특정 요소는 유사한 목적을 달성하기 위해 유사한 방식으로 동작하는 모든 기술적 균등물들을 포함한다는 점이 이해되어야 한다.
이러한 문서 설명은 최상의 모드를 포함하는 본 발명을 개시하고, 또한 본 기술분야의 임의의 통상의 기술자가 임의의 디바이스들 또는 시스템들을 제조하고 사용하는 것 및 임의의 통합된 방법들을 수행하는 것을 포함하는 본 발명을 실시할 수 있게 하기 위해 예들을 사용한다. 본 발명의 특허가능 범위는 청구항들에 의해 정의되고, 본 기술분야의 통상의 기술자들에게 떠오르는 다른 예들을 포함할 수 있다. 그러한 다른 예들은 청구항들의 문자 언어와 다르지 않은 구조적 요소들을 가지면, 또는 청구항들의 문자 언어들로부터의 비실질적인 차이들을 갖는 등가 구조적 요소들을 포함하면 청구항들의 범위 내에 있도록 의도된다.

Claims (1)

  1. 도면에 따른 방법 및 장치.
KR1020187002980A 2013-10-21 2014-10-21 M2m 디바이스들의 크롤링 KR20180029232A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201361893573P 2013-10-21 2013-10-21
US61/893,573 2013-10-21
PCT/US2014/061530 WO2015061290A1 (en) 2013-10-21 2014-10-21 Crawling of m2m devices

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020167013273A Division KR101825700B1 (ko) 2013-10-21 2014-10-21 M2m 디바이스들의 크롤링

Publications (1)

Publication Number Publication Date
KR20180029232A true KR20180029232A (ko) 2018-03-20

Family

ID=51866349

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020187002980A KR20180029232A (ko) 2013-10-21 2014-10-21 M2m 디바이스들의 크롤링
KR1020167013273A KR101825700B1 (ko) 2013-10-21 2014-10-21 M2m 디바이스들의 크롤링

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020167013273A KR101825700B1 (ko) 2013-10-21 2014-10-21 M2m 디바이스들의 크롤링

Country Status (6)

Country Link
US (1) US20160275190A1 (ko)
EP (1) EP3061272B1 (ko)
JP (1) JP6463768B2 (ko)
KR (2) KR20180029232A (ko)
CN (1) CN105766004B (ko)
WO (1) WO2015061290A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11651042B2 (en) 2018-06-05 2023-05-16 Samsung Electronics Co., Ltd. Information processing method and device

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170019749A1 (en) * 2014-02-04 2017-01-19 Ntt Docomo, Inc. Service control system, user apparatus, and service control method
US10929907B1 (en) * 2014-04-25 2021-02-23 PetroCloud LLC Automation platform for the internet of things
CN105610880B (zh) * 2014-11-10 2020-06-16 中兴通讯股份有限公司 M2m通信架构、信息交互方法及装置
CN104503983A (zh) * 2014-11-27 2015-04-08 百度在线网络技术(北京)有限公司 为搜索引擎提供网站认证数据的方法及装置
US10262066B2 (en) 2014-12-24 2019-04-16 Samsung Electronics Co., Ltd. Crowd-sourced native application crawling
US20160188716A1 (en) * 2014-12-24 2016-06-30 Quixey, Inc. Crowd-Sourced Crawling
WO2016195199A1 (ko) 2015-06-04 2016-12-08 엘지전자 주식회사 무선 통신 시스템에서 폴링 채널을 통해 요청을 처리하기 위한 방법 및 이를 위한 장치
CN106469040B (zh) * 2015-08-19 2019-06-21 华为终端有限公司 通信方法、服务器及设备
US10797935B2 (en) 2015-09-02 2020-10-06 Convida Wireless, Llc Methods and apparatus for enhancing native service layer device management functionality
AU2015413329B2 (en) * 2015-10-28 2020-02-06 Viasat, Inc. Time-dependent machine-generated hinting
US20170187831A1 (en) * 2015-12-29 2017-06-29 Itron, Inc. Universal Abstraction Layer and Management of Resource Devices
CN109155789B (zh) * 2016-03-04 2022-01-14 康维达无线有限责任公司 用于服务层中的请求处理的方法、装置和存储介质
US10145691B2 (en) * 2016-05-18 2018-12-04 Here Global B.V. Ambiguity map match rating
US10397303B1 (en) * 2016-08-29 2019-08-27 Amazon Technologies, Inc. Semantic annotation and translations for devices
US10650621B1 (en) 2016-09-13 2020-05-12 Iocurrents, Inc. Interfacing with a vehicular controller area network
US10771479B2 (en) * 2016-09-26 2020-09-08 Splunk Inc. Configuring modular alert actions and reporting action performance information
US20180089281A1 (en) * 2016-09-29 2018-03-29 Convida Wireless, Llc Semantic query over distributed semantic descriptors
TW201814554A (zh) * 2016-10-12 2018-04-16 香港商阿里巴巴集團服務有限公司 搜索方法、裝置、終端設備和操作系統
US10979879B2 (en) 2016-12-09 2021-04-13 Convida Wireless, Llc Mechanisms for resource-directory to resource-directory communications
JP7338475B2 (ja) * 2017-12-19 2023-09-05 ソニーグループ株式会社 端末管理装置及び端末装置
JP7032970B2 (ja) * 2018-03-28 2022-03-09 京セラ株式会社 通信システム、通信モジュール、サーバ、制御方法、及び制御プログラム
US11256764B2 (en) * 2018-05-03 2022-02-22 EMC IP Holding Company LLC Managing content searches in computing environments
EP3764243B1 (en) * 2019-07-09 2023-11-29 ABB Schweiz AG An industrial information identification and retrieval system
CN111767442B (zh) * 2020-04-29 2023-12-26 百度在线网络技术(北京)有限公司 数据更新方法、装置、搜索服务器、终端及存储介质
KR102615979B1 (ko) 2020-04-29 2023-12-20 바이두 온라인 네트웍 테크놀러지 (베이징) 캄파니 리미티드 데이터 업데이트 방법, 장치, 검색 서버, 단말 및 저장매체
KR20230022944A (ko) * 2020-06-16 2023-02-16 광동 오포 모바일 텔레커뮤니케이션즈 코포레이션 리미티드 자원 게시 방법, 장치, 게이트웨이, 클라우드 플랫폼 및 컴퓨터 저장 매체
CN113656683A (zh) * 2021-07-12 2021-11-16 北京旷视科技有限公司 订阅数据推送方法、装置、系统、电子设备及存储介质
CN113821705B (zh) * 2021-08-30 2024-02-20 湖南大学 网页内容的获取方法、终端设备及可读存储介质
CN114866354B (zh) * 2022-07-06 2022-10-11 中国人民解放军国防科技大学 基于指纹元搜索与扩展识别的物联网终端设备识别方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US102690A (en) * 1870-05-03 Improvement in pipe-tongs
JPH0981429A (ja) * 1995-09-19 1997-03-28 Mitsubishi Electric Corp キャッシュ管理装置
JP2001273303A (ja) * 2000-03-27 2001-10-05 Sony Corp 情報取得システム、情報取得装置及び情報取得方法並びにプログラム格納媒体
US8065359B2 (en) 2004-09-16 2011-11-22 Nokia Corporation Integrated method and apparatus to manage mobile devices and services
US7653617B2 (en) * 2005-08-29 2010-01-26 Google Inc. Mobile sitemaps
EP2131292A1 (en) * 2008-06-06 2009-12-09 NTT DoCoMo, Inc. Method and apparatus for searching a plurality of realtime sensors
US9113283B2 (en) 2012-04-03 2015-08-18 Telefonaktiebolaget L M Ericsson (Publ) Systems and methods for event notification framework in a machine-to-machine (M2M) context
CN103092936B (zh) * 2013-01-08 2018-01-02 华北电力大学(保定) 一种物联网动态页面实时信息采集方法
KR101432128B1 (ko) * 2013-01-29 2014-08-21 주식회사 케이티 M2m 네트워크상에서의 리소스를 디바이스 오브젝트로 추상화하는 m2mm 플랫폼

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11651042B2 (en) 2018-06-05 2023-05-16 Samsung Electronics Co., Ltd. Information processing method and device

Also Published As

Publication number Publication date
CN105766004A (zh) 2016-07-13
KR101825700B1 (ko) 2018-02-06
EP3061272A1 (en) 2016-08-31
JP6463768B2 (ja) 2019-02-06
EP3061272B1 (en) 2019-09-25
JP2016536729A (ja) 2016-11-24
CN105766004B (zh) 2019-12-03
US20160275190A1 (en) 2016-09-22
KR20160074611A (ko) 2016-06-28
WO2015061290A1 (en) 2015-04-30

Similar Documents

Publication Publication Date Title
KR101825700B1 (ko) M2m 디바이스들의 크롤링
US10412053B2 (en) Service layer device location management and privacy control
US10635663B2 (en) Mechanisms for semantics publishing and discovery
JP6510023B2 (ja) M2mシステムにおけるセマンティクスサポートおよび管理
KR101973298B1 (ko) M2m-iot 서비스의 발행 및 발견
CN106489144B (zh) 针对资源目录的搜索引擎优化
US11076013B2 (en) Enabling semantic mashup in internet of things
US20210026904A1 (en) Mechanisms for service layer resource ranking and enhanced resource discovery

Legal Events

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