Eddystone의 URL, SSDP 그리고 mDNS를 지원 물리적 웹

Eddystone의 URL, SSDP 그리고 mDNS를 지원 물리적 웹

실제 웹 소개

비콘 일상의 사물과 환경 사이의 통신을 요구하는 애플리케이션 시나리오의 모든 종류에 적합. 실제 웹 사용자가 결과 기회를 최적으로 사용하는 데 도움을주는. 이 글에서, 우리는 물리적 인 웹 작업을 수행하는 방법을 소개합니다, 그리고 Eddystone URL이 Eddystone의 작업시에 중요한 역할을한다는 것을 의심의 여지가있다.

에서 2014, 구글은 진짜와 더욱 밀접하게 가상 세계를 연결하는 목적으로 자사의 오픈 소스 프로젝트 실제 웹 발표. 버스 정류장, 관광 명소, 개체 또는 슈퍼마켓 항목 일상 – 원칙적으로, 그들 모두는 이제 독립적으로 비콘을 통해 스마트 폰에 메시지를 보낼 수 있습니다. 이러한 통신의 기초는 블루투스 로우 에너지이다 (BLE) 무선 기술. 항목은 표지가 장착 된 경우, 그것은 스마트 폰 그에게 메시지를 보낼 수있는 지원 BLE, 예를 들어 지연에 대해 알리는, 이벤트 나 캠페인 일 특별.

이러한 맥락에서, 실제 웹 보장하지만, 다른 것들 사이, 사용자는 모든 곳에서 새로운 응용 프로그램을 설치하지 않아도, 하지만 균일 한 인터페이스에서 뉴스를 볼 수 있습니다. 그것은 사용자가 자신의 환경에 대한 정보에 관심이 나있는 그들과 스마트 객체 간의 상호 작용이 필요하는 거의 모든 경우에 사용할 수 있습니다. 위해서는 이러한 시나리오의 더 나은 아이디어를 얻을 수 있습니다, 세 개의 짧은 응용 프로그램의 예는 다음과.

지능형 버스 정류장: 다음 버스가 올 때 버스 정류장이 인근에 스마트 폰을 통해 사람들을 기다리고 말할 수. 이 경우, 실제 웹 BLE 센서는 URL을 전송하는 버스 정류장의 웹 사이트에 리드. 순서대로 다른 사람과 구별하기, URL이 정지의 식별 코드를 포함하는 것.

자동 판매기과의 상호 작용: 인터넷에 연결되어있는 자동 판매기는 그들과 함께 현금이없는 경우 고객이 자동 판매기의 지불 기능을 사용하여 웹 사이트에 액세스하는 데 사용할 수있는 URL을 전송. URL은 각 구매 후 동적으로 변경하는 토큰이 포함되어. 기계 및 스마트 폰에 오픈 한 웹 사이트는 같은 토큰을 사용하여 공급자의 백 엔드 서버에 연결. 구매가 처리되면, 서버는 구매 한 제품을 발행하는 자동 판매기에 요청을 보냅니다. 실제 웹은 스마트 폰에 URL을 전송하는 데 사용됩니다. 다른 모든 단계는 평소처럼 인터넷에서 발생하는. 예를 들면, 소위 웹 소켓은 기계 또는 웹 사이트와 서버 간의 양방향 통신을 위해 사용할 수 있습니다.

모니터 가전 제품: 피지컬 웹은 또한 세탁기로 제어하고 모니터 가전 제품에 사용될 수있는. 각각의 장치는 IP 어드레스를 참조하여, 로컬 네트워크에 연결된 경우에만 접근 할 수있는 URL을 송출. 이러한 mDNS를 SSDP와 같은 네트워크 탐색 기법 BLE 대신 사용하는 경우, URL의 표시는 네트워크의 장치들로 한정 될 수있다.

실제 웹 또는 단일 애플 리케이션

다른 정보 제공과는 대조적으로 (예컨대. 시간표 정보 나 관광 협회), 사용자는 각 공급자에 대한 자신의 응용 프로그램을 설치해야 할 곳, 그들이 페이지에 검색 쿼리 것처럼 Eddystone URL 통합하는 실제 웹 비콘에 의해 전송. 사용자는 하나의 응용 프로그램과 함께 자신의 환경에서 스마트 오브젝트를 찾아 그들과 직접 상호 작용할 수 있도록. 또 다른 장점: 아무런 사전 알림이 전송되지 않습니다. 그가가 원하는 경우 사용자는 자신의 지역에있는 개체의 목록을 본다.

BLE에 추가, MOKOSmart, 하는 저자는 작동, 단순 서비스 검색 프로토콜을 기반으로 로컬 네트워크에서 URL을 전송 및 수신하는 방법을 제안한다 (SSDP). SSDP의 도움으로, 로컬 네트워크로 전송 Eddystone URL의 가시성을 제한하고, 따라서 연결 보안을 높일 수있다.

물리적 웹 MOKOSmart에 아파치 라이센스 하에서 프로젝트로 사용할 수 있으며 안드로이드 등 플랫폼의 구현을 포함, 아이폰 OS, 와 Node.js를. 안드로이드 및 iOS 용 실제 웹 응용 프로그램은 애플 앱 스토어와 구글 플레이 스토어에서 사용할 수있는. 모든 응용 프로그램은 프로토 타입으로 이해되어야한다, 초기 단계에서 물리적 웹 실험에 개발을 가능하게하는. 앞으로, 그것은 스마트 폰 외에 다른 모바일 장치에서 사용할 수 있어야합니다.

eddystone의 URL

어떻게 물리적 인 웹 작업을 수행?

실제 웹은 인터넷의 확장이라고합니다. 모든 웹 기술처럼, 그것은 모든 사람에게 열려 있고 모든 사람이 그것을 더 발전시킬 수. 이 시스템은 URL의 디스플레이를 기반으로하기 때문에, 그것은 분산 누군가에 의해 제어되지 않는다. Eddystone URL은 간단한 정보 페이지로 이어질 수, 더 복잡한, 심지어 원시 응용 프로그램 또는 대화 형 웹 응용 프로그램. 실제 웹은 웹 검색에 필적:

사용자는 자신의 주변에서 개체의 목록을 호출.
URL 목록이 표시됩니다.
사용자가 선택을 한.
URL이 브라우저 창에서 온다.
다음과 같은 측면은 기술적 인 관점에서 고려되어야한다:
1. 의견 보내기
2. 역사
3. 저장
4. 커뮤니티

• 송신 및 수신 된 URL: URL을 전송하는 방법에는 여러 가지가 있습니다. 실제 웹은 현재 BLE를 통해 전송을 지원, mDNS를, 및 SSDP (다음 절에서 이에 대한 자세한).
웹 사이트에서 기본 정보를 검색: 실제 웹 클라이언트가 발견 된 URL을 수집하고 모든 관련 정보와 함께 보냅니다 (예컨대. 신호 강도) 웹 서비스에 대한. 이, 차례로, 같은 제목으로 기본적인 정보를 호출, 기술, 및 웹 사이트의 아이콘은 클라이언트에 검색 결과를 반환. 웹 서비스의 프로토 타입 구현은 프로젝트의 GitHub의 저장소에서 사용할 수 있습니다.

• 결과를 표시: 이 지역에서 많은 URL-전송 장치 표시에 올 때 순위는 중요하다. 실제 웹 클라이언트는 신호 강도에 따라 정렬 할 수 있습니다, 개인 취향 및 기타 기준. 이 시스템은 스팸 사전을 분류한다. 검색 엔진은 같은 문제가 있기 때문에, 그들의 접근 방식은 실제 웹에 사용할 수 있습니다. 결과 디스플레이, 사용자는 목록 개체를 클릭하고 브라우저는 관련 웹 사이트를 엽니 다.

• 말한 바와 같이, 실제 웹은 현재 보내고 URL을받을 수있는 세 가지 방법을 알고있다. 그들은 두 개의 서로 다른 프로세스를 기반으로: 블루투스 로우 에너지 및 네트워크 서비스 검색. 이론적으로, 자세한 방법은 향후에 추가 될 수있다. 예를 들면, 개발자들은 오디오 신호에 포함 된 URL로 오디오 워터 마킹 기술을 사용할 수 있습니다. 이 경우, 실제 웹 클라이언트는 오디오 신호를 수신 할 수 있도록 확장해야하고 URL이 안에 포함 된 디코딩 것.

상상력 블루투스 및 Eddystone

물리적 웹의 첫 번째 초안은 해당 패키지에 URL을 보낼 수 BLE 용도. 이 기술은 매우 에너지 효율적이다, 를 사용하여 제품은 전송 모드에서 작동 특히 (비 접속 모드 BLE), 물리적 웹의 경우와 같이. 작은 BLE 장치는 거의 2 년 동안 하나의 버튼 셀과 Eddystone URL을 보낼 수 있습니다.

실제 웹의 기본 빌딩 블록 중 하나는 Eddystone URL입니다. 프로토콜 사양으로, Eddystone 블루투스 코어 사양에 기반 인접 비콘 블루투스 저전력 메시지 포맷을 정의. 이 비컨은 개별적으로 또는 조합하여 사용할 수있는 다른 프레임 유형을 설명: Eddystone-UID, Eddystone-TLM, 및 상기 Eddystone URL, 이는 실제 웹에 유일한 관련.

Eddystone 메시지는 광고 데이터 블록에 두 개의 기본 데이터 유형으로 구성 (기원 후): UUID 및 데이터 서비스. 두 가지 유형의 16 비트 범용 고유 식별자를 사용 (UUID) 그 블루투스 표준을 준수합니다. Eddystone에 예약 된 UUID 서비스 0xFEAA입니다. 그것은 효율적인 메커니즘을 제공, Android 및 iOS 모두 허용하는 것이 크로스 플랫폼 백그라운드 검색. 광고 블록의 후속 바이트는 프레임의 특정 데이터를 포함. 첫 번째 바이트 프레임 유형을 정의. 만 4 개의 가장 중요한 비트는 현재 사용되는. 네 낮은 사람은 나중에 사용하기 위해 예약되어 값이 있어야합니다 0000.

Eddystone UID 프레임은 10 바이트의 스페이스 ID로 구성된 16 바이트 고유 비컨 ID 및 6 바이트 인스턴스 ID를 전송. 네임 스페이스 ID는 비컨의 A 군의 특정 세트를 사용할 수 있지만, 인스턴스 ID는 그룹 내의 디바이스를 식별하는 데 유용.

당신은 Eddystone UID의 개념을 보면, 그것은 애플에 의해 도입 된 iBeacons 유사한 방식으로 작동 2013. 아이 비콘 패킷 포함 16 바이트 UUID에 가까운, 2 바이트의 기본 도메인, 그리고 2 바이트 보조 도메인. 아이 비콘 패킷을 포함하는 16 바이트 근접 UUID, 2-전공 및 2 바이트 사소한 필드 바이트. 근접의 UUID는 비즈니스와 같은 조직이나 응용 프로그램을 식별하는 데 사용할 수 있습니다. 전공 및 부전공 필드는 정체성에 대한 자세한 할당은 UUID에 의해 결정 수, 지점의 경우와 같이. Eddystone-TLM은 이제 배터리 상태로 원격 측정 정보를 전송한다, 디바이스 온도와 패킷의 수는 비콘 전송.

Eddystone URL 프레임 부호화에 의해 생성 된 URL의 축소 된 버전을 전송. 압축은 가능한 제한된 광고 패키지에 많은 데이터를 전송할 수있게. 첫 번째의 형식 11 바이트 (바이트 0 ...을 통하여 10) Eddystone 메시지 모든 프레임 타입 같다. 다음 바이트가 설정되는 방법 (바이트에서 시작 11), 하나, 프레임 타입에 따라:

• 바이트 11 프레임 유형을 정의. Eddystone URL 프레임에 대한 그 값은 0x10입니다.
• 바이트 12 TX의 힘을 정의. 그것은 TX 전원 레벨 블루투스 특성에 설명 된대로 서명 된 8 비트 정수 값

네트워크 서비스 검색

BLE 비콘 및 Eddystone URL에 추가, 같은 SSDP 및 mDNS를 같은 네트워크 검색 방법은 전송 URL의 옵션을 제공. 또한 로컬 네트워크에있는 장치에 URL을 보낼 수 있습니다. 방법은 BLE 이상이 장점이 있습니다: 먼저, 로컬 네트워크에 로그인 한 사용자 만 URL을 볼 수 있습니다, 하고 초, 더 URL 길이 제한은 BLE와 마찬가지로이 없다.

실제 웹을위한 네트워크 검색을 사용하면 보안 및 개인 정보 보호가 중요한 역할을 상황에서 의미가 있습니다. 장치에 대한 액세스 만 동일 세대의 사람들로 제한 할 필요가있는 경우 예는 스마트 홈 지역이 될 것입니다.

단순 서비스 검색 프로토콜 (SSDP) 로컬 네트워크에서 서비스 및 장치의 광고 및 검색을위한 네트워크 프로토콜입니다. 그것은 보편적 인 플러그 앤 플레이 프로토콜의 발견 층을 형성 (UPnP를) 및 제어 지점으로 정의 새로 추가 된 장치를 홍보하는 데 도움이. 그것은 또한 당신이 장치와 특정 서비스를 검색 할 수 있습니다.

이러한 기능은 SSDP 메시지의 두 가지 유형을 기반으로하는. 먼저, 장치가 즉시이 네트워크에 추가로 송출하는 광고 메시지가. 표준 멀티 캐스트 주소와 포트에 메시지 239.255.255.250:1900 SSDP입니다: 살아 있는. 제어 포인트는 SSDP 메시지를 수신하는 포트를 듣고 따라서 새로운 장치 및 서비스를 검색 할 수 있도록. UPnP 장치는 네트워크에서 사라지지 또는 더 이상 사용할 수 전에, 그들은 메시지 SSDP를 전송해야: 동일한 멀티 캐스트 주소에 안녕과 해당 포트.

다른 한편으로는, SSDP는 제어 포인트도 네트워크에 대한 관심의 기기와 서비스를 찾을 수있는 검색 기능이 있습니다. 이 경우, 제어 포인트가 멀티 캐스트 어드레스 및 포트에 대한 검색 요청을 전송 239.255.255.250:1900. 요청 된 서비스를 지원하는 UPnP 장치는 요청을 보낸 체크 포인트의 주소로 유니 캐스트 응답을 보낼. 응답의 형식은 형 SSDP의 SSDP 메시지와 유사한: 살아 있는.

실제 웹 SSDP 보내고 로컬 네트워크에 URL을 받도록 지원. 프라운호퍼 FOKUS는 개념과 대응 메커니즘의 구현을 개발. 구현은 프로토콜을 통해 URL을 수신 안드로이드 및 iOS 용 실제 웹 응용 프로그램에서 SSDP의 통합을 포함. 게다가, Node.js를 기반으로하는 크로스 플랫폼 도구는 같은 방식으로 URL을 보낼 수 있습니다.

SSDP를 사용하는 경우, 로컬 네트워크에 접속 된 실제 웹 장치는 다음의 SSDP를 보낸다: 이 네트워크에서 사용할 수있게되면 곧 살아 메시지:

NOTIFY * HTTP / 1.1 주최자: 239.255.255.250:1900
CACHE-CONTROL: 광고가 만료 될 때까지 최대 사용 기간은 초 =
위치: 웹 페이지의 URL은 광고 할
NT: 항아리: 물리적 웹 조직: 장치: 기본: 1
NTS: SSDP: 살아 있는
섬기는 사람: OS / 버전의 UPnP / 1.0 생성물 / 버전
USN: 광고 UUID
첫 번째 줄의 알림 방법은 광고 메시지가 있음을 나타냅니다. Location 헤더가 전송되는 실제 웹 URL을 정의하는 동안, 신약 헤더는 장치 유형을 정의, 이는 물리적 웹의 경우 항아리입니다: 물리적 웹 조직: 장치: 기본: 1. SSDP를: 국세청 헤더의 살아 값은 실제 웹 장치를 사용할 수 있음을 나타냅니다. 드디어, USN 헤더는 장치를 식별하는 데 사용할 수있는 고유 한 이름을 제공합니다. 스마트 폰 또는 태블릿에서 실행되는 실제 웹 클라이언트는 멀티 캐스트 주소와 포트를 듣고 239.255.255.250:1900 그리고 NT 헤더의 값을 확인하여 실제 웹 SSDP 메시지를 필터링. 그런 다음 SSDP 메시지를 분석하고 보냈습니다 URL을 전달 Location 헤더의 값을 읽을 수 있습니다.

실제 웹 장치는 다음 SSDP를 보내야합니다: 네트워크에서 사라지기 전에 바이 바이 메시지를:

NOTIFY * HTTP / 1.1 주최자: 239.255.255.250: 1900
NT: 항아리: 물리적 웹 조직: 장치: 기본: 1
NTS: SSDP: 안녕
USN: 광고 UUID
SSDP: 바이 바이는 물리적 웹 장치가 지금부터 더 이상 사용할 수 있음을 지우하게. USN 헤더 값은 SSDP에 동일하게 유지: 살아 메시지. USN과 관련된 URL에 대한 이러한 메시지 모양을 받게 한 다음 목록에서 제거 물리적 웹 클라이언트.