adsense(728_90)


Physical Web에 대하여 IT

IoT 혹은 WoT의 두가지 접근 방법

Internet of Things를 접근하는 방법을 크게 두 가지 부류로 나눌 수 있다. Thing에 초점을 맞추는 방법과 Thing보다는 Internet에 초점을 맞추는 방법이다.
Thing에 초점을 맞출 경우 Thing은 파워풀해지고 다양성을 지니게 된다. 즉, Thing이 Fat Thing이 되어가게 된다. 바보 Thing에 센서를 달고 마이크로칩을 달고 모니터를 달고 심지어는 인텔리전트한 능력까지 스스로 갖추게 하려 한다.
반면에 IoT에서 Internet에 더 초점을 맞추면 Thing은 Internet에 접근하기 위한 최소한의 것만을 수행하고 나머지는 Internet 혹은 클라우드가 맡게 된다. 즉, Thing은 저렴하고 가벼워진다.
전자의 방식은 스타트업이나 전자쪽에 강점이 있는 곳에서 좋아한다. 반면 후자의 방식은 이미 인터넷이나 모바일쪽에서 클라우드 기반의 플랫폼을 갖추고 있는 사업자들이 좋아한다. 구글, 애플등이다. 애플은 이미 iBeacon 스펙을 공개하였다. 어떤 Thing이라도 BLE기반의 iBeacon규격을 맞춘 서비스를 하는 것은 그리 어렵지 않다. 



위의 그림 중 왼쪽의 것이 바로 Thing의 기능을 최소화하고 대신에 Thing에 대한 정보를 처리하거나 비즈니스로직을 담고 있는 클라우드의 기능이 중요한 애플의 iBeacon방식이다. 그리고 이번에 구글에서 조금 어설프고 못생겼지만 비슷한 기술이 출현했다. 바로 Physical Web이다.


Physical Web의 기본 개념
앞서 그림에서 설명한 대로 Physical Web은 Thing에 소형의 저렴한 BLE칩을 설치하고 오로지 자신의 URI정보만을 broadcasting 한다. 따라서 Thing에 투자할 비용을 최소화할 수 있다. 또한 이 Thing의 URI정보를 스마트 디바이스에 선 탑재된 Physical Web Agent가 수신하여 사용자에게 알려준다. 현재 이 앱은 PlayStore에서 다운로드받을 수 있으며 소스코드 역시 다운로드 가능하다. 향후에 구글이 정말 이 Agent를 안드로이드 기기에 탑재할 지는 알려진 바없으나 정책의 문제일뿐 기술적으로는 아주 단순한 편이다. Physical Web Agent는 수신한 URI들을 정렬하거나 더 자세한 meta데이타를 수신해서 사용자 context에 맞게 보여줘야 한다. 따라서 URI들의 metadata나 비즈니스 로직을 담고 있는 Thing Server에 접근하여 추가적인 Thing정보를 가져온다. 이 Thing 서버는 오픈되지 않았으나 규격은 나와있으므로 업체마다 구현하면 되는 부분이다.
매우 단순한 개념으로 출발한 프로젝트이며 근본적으로 애플의 iBeacon 규격과 크게 차이가 나는 부분은 없다. 다만 iBeacon이 BLE 신호에 UUID값으로 beacon의 identity를 나타낸다면, Physical Web에서는 UUID가 아닌 20byte의 URI정보로 나타낸다는 것과 Thing서버를 통한 데이터 송수신 인터페이스를 규격화한 점(그래봤자 JSON덩어리를 송수신하는 단순한 것이긴 하지만). 그리고 단말에 탑재되는 agent를 공개했다는 것이 다른 점이라면 다른 점이다.

Physical Web에 대한 오해와 한계
Physical Web에 대해 사람들이 오해하는 것은 모든 것이 웹을 기반으로 동작한다고 생각하는 것이다. 사실 엄밀하게 말하면 BLE가 송신하는 identity정보를 URI로 표현한 것을 제외하면 어떤 것도 웹과 밀접하게 관련있는 것은 없다고 할 수 있다. 스마트디바이스에 탑재된 agent도 결국 native app이며 그 app이 사용자에게 보여줄 최종 컨텐츠 역시 굳이 웹일 필요는 없다. Physical Web의 Thing URI는 Deep link 즉, 앱컨텐츠도 지원하고 있기 때문이다.
또한 구글이 뭔가 전략적으로 이 Physical Web을 추진하고 있다는 언론의 설레발에 너무 흥분할 필요도 없다고 생각한다. 위에서 언급한 이상의 뭔가 구글의 대단한 awesome한 것이 탑재되어 있는 상태는 현재까지는 아니기 때문이다. 아주 초기 단계 프로젝트일 뿐이다. 이게 의도대로 잘 커나가면 구글에서도 뭔가 본격적으로 자신들의 전략에 넣겠지만, 미래는 알 수 없다.

그럼에도 불구하고 의미있는 것
Thing과 사용자간의 통신 규격이 Physical Web에서와 같이 단순해지면 결국 Thing서버의 역할이 매우 중요해진다. 구글의 경우 저 Thing 서버를 구글 나우가 대신해 줄 수 있을 것이다. 즉, 구글이나 애플같은 플랫폼사업자들이 궁극적으로 IoT시대에 원하는 아키텍처가 무엇인지 명확해졌다. Thing은 최대한 단순화 경량화 시키고 그 외의 모든 비즈니스 트랜잭션은 자신들이 이미 확보한 모바일 플랫폼과 클라우드를 중심으로 돌아가게 하기! 이것이 그들의 전략이다.

직접 사용해보기
Physical Web Agent를 다운로드받는 것은 그냥 PlayStore에서 할 수 있고 필요하면 소스코드도 공개되어 있다. Beacon을 만드는 것이 관건인데 Bluetooth가 되는 리눅스 랩탑이 있다면 Beacon을 만들 수 있다. 좀 그럴듯하게 하려면 RFDuino나 라즈베리파이+BT Dongle로 Beacon을 만들 수 있는데, 여기서는 라즈베리파이+BT Dongle로 Physical Web Beacon을 구축하는 방법을 공개해본다.

준비물: 라즈베리파이 b+, Bluetooth USB Dongle(싼거 아무거나)
1. 라즈베리파이에 BT 모듈을 설치해야 한다.
2. 라즈베리파이에 node.js를 설치한다.
3. 블루투스 관련 모듈을 좀 더 설치한다. sudo apt-get install bluetooth bluez-utils libbluetooth-dev
4. Bluetooth USB Dongle을 삽입한다.
5. Physical Web node.js 소스코드를 다운로드받아서 라즈베리파이에 설치한다.
6. 해당 node.js 소스코드 디렉토리에 bleno를 설치한다. npm install bleno
7. Physical Web node.js 들을 하나씩 실행해본다.
8. 안드로이드 스마트폰에서 Physical Web agent를 설치하여 확인한다.

덧글

댓글 입력 영역
◀ 다음덧글    이전덧글 ▶


Google Analytics