Notice
Recent Posts
Recent Comments
Today
Total
05-04 17:52
Archives
관리 메뉴

Jeongchul Kim

09 개방형 API - REST 본문

사물인터넷

09 개방형 API - REST

김 정출 2016. 1. 29. 16:02

09 개방형 API - REST

개방형 API - REST

1. REST의 소개

개방형 API - REST

모비우스 플랫폼에서 사물인터넷 디바이스를 통하여 데이터를 수집하거나 수집 및 발생된 데이터를 매시업 플랫폼으로 전송할 때 모든 데이터 전송은 RESTful로 전송되며, 모든 플랫폼의 API는 개방형 API 형태로 제공됩니다. 이러한 개방형 API는 ‘개방형 API 사이트 (http://programmable-things.net)’에서 확인 및 제공 받을 수 있습니다.

웹사이트를 방문, 개방형 API를 다운로드해 보세요.

http://programmable-things.net/main/



REST에 대해 살펴보도록 하겠습니다. Representational State Transfer의 약자로, 이 용어는 로이 필딩(Roy Fielding)의 2000년 박사학위 논문에서 소개되었습니다. 월드 와이드 웹(www)과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처의 한 형식이며, 모비우스 플랫폼 역시 API를 REST 기술의 표준으로 사용합니다. 다시 말해 REST는 현재 인터넷에서 많이 사용하고 있는 API의 표준 기술이라고 할 수 있습니다.


REST 설계 패턴의 3가지 기본적인 측면으로 자원, URI, 기본 명령어가 있습니다. 자원은 REST 기술에서 중요한 구성 요소 중 하나로 서비스를 제공하는 시스템의 자원을 의미합니다.

예를 들어서, “영화 예매 시스템”의 경우 자원은 ‘고객, 예약번호, 좌석번호, 영화정보’ 등이 됩니다. 자원은 URI로 표시가 되며, URI은 Uniform Resource Identifier의 약자로 풀이해 보면 자원에 대한 균등한 식별자라는 뜻입니다. 참고로 URL은 Uniform Resource Locator 의 약자로, 정형화 된 리소스 위치표시라는

뜻입니다. URI의 하위개념으로 URL은 URI에 포함됩니다. 자원에 대한 행위는 HTTP 메소드로 표현합니다.



HTTP 메소드는 여러가지가 있지만 REST API에서는 Get, Put, Post, Delete 4개의 메소드가 사용됩니다. HTTP 전송 메소드에 대해 살펴보면, 자원의 생성에는 POST, 수정은 PUT, 조회는 GET, 삭제는 DELETE 메소드를 사용합니다. REST는 HTTP 프로토콜의 방식을 준수하여 정확히 의도에 맞게 활용하고 디자인하도록 유도하고 있습니다. 그래서 REST의 기본 원칙을 성실히 지킨 서비스 디자인은“RESTful 하다.” 라고 표현하기도 합니다.


HTTP프로토콜의 방식을 살펴보면, 전송에 대한 메타 데이터 즉, 결과 값, 세션 키는 최대한 HTTP 헤더로 선언하고 실제 Body Data는 자원(Resource)의 순수한 데이터 만을 전송하는 형태입니다.

2. REST의 예제

모비우스의 디바이스 API 예제를 살펴보겠습니다. GET에서 HTTP/1.1까지는 메시지 헤더의 시작으로 HTTP전송 규격 1.1버전을 따른다는 의미입니다. Get 메소드 URL과 countPerPage, startIndex 파라미터로 구성되어 있습니다.


나머지 부분은 Host, Accept, Content-Type uKey, Cache-Control 필드들로 구성됩니다. 여기에서 Application/XML은 메시지 본문이 XML로 구성되는 것을 의미합니다.

uKey는 인증을 위한 키값이고 no-cache는 캐시하지 않는다는 의미입니다.

IoT Open-API (Programmable-things.net)사이트에는 이런 API를 등록하고, 검색하여 볼 수 있습니다. REST API의 요청은 라이브러리의 함수 호출 같은 것입니다. 개념적으로 분산 컴퓨팅 환경에서 RPC(Remote Procedure Call), 원격함수호출입니다.

REST API는 요청과 응답으로 이루어져 있고, 이것은 응답 부분의 예입니다. 첫 줄은 응답 메시지의 본문으로 XML문서 규격을 따르며, 그 버전 1.0이라는 것과 UTF-8 포맷이라는 의미를 담고 있습니다. (resultCode)200(/resultCode)는 메소드의 결과값이 200으로 정상적인 응답 코드입니다. 그 결과는 다음과 같습니다. 만일 자원의 정보가 없는 경우나, 서버 에러의 경우에는

404, 요청정보가 정확하지 않을 경우에는 400, 인증 실패는 401의 응답메시지가 resultCode에 출력됩니다.



3. Postman

Postman은 REST 클라이언트로 크롬브라우저의 확장입니다. 이것을 이용하여 REST API를 테스트할 수 있습니다.

https://www.youtube.com/watch?v=VPLlkhhRMvQ&feature=youtu.be


4. OID

OID에 대해서 알아보도록 하겠습니다. OID란 Object Identifier의 약자로, 객체 식별자라고도 합니다. 국가 및 기관에서 보유하고 있는 전자적인 객체를 명확하게 식별하기 위하여 국제적으로 유일하게 할당한 값입니다. 표준화 기관의고유번호에 국가코드, 제조사 코드 등이 포함된 체계로 여러 표준에서 사용하는 디바이스 ID 체계라고 할 수 있습니다.

디바이스 ID는 자원의 URL처럼 디바이스의 주소, 이름 같은 것으로 유일하게 구분된 구분자 역할을 합니다. 인터넷 주소나 호스트 이름과 같이 디바이스는 고유의 ID가 필요합니다.

OID 체계는 객체에 대해서 전 세계적으로 중복되지 않고 유일한 고유 번호를 할당 및 등록하기 위해 트리 형태의 계층 구조를 사용하고 있습니다. 관리 체계는 그림과 같습니다.

루트 이름은 없으며 최상위 영역은 0, 1, 2 총 3개만 사용하고 각 영역은 국제 표준화 기구에서 개별 또는 공동으로 영역을관리합니다. 최상위 영역 관련 규정은 ITU-T X.660, ISO/IEC 9834-1 표준에서 정의하며, 최상위 영역 별 관리 주체는,0번은 ITU-T에서, 1번은 ISO에서, 2번은 ISO와 ITU-T가 함께 관리합니다. 이때 아크란 OID 계층 구조에서 각 자릿수를 의미합니다.

SK텔레콤이 KETI와 협약을 맺고 사물인터넷 플랫폼 국책과제 '모비우스' 사업화를 본격 진행합니다.


모비우스는 개방형 M2M 플랫폼이 주로 M2M 단말의 접속과 원격관리 기능 등에 초점을 맞춘 것에 비해 스마트폰과 연동돼 다양한 사물인터넷 디바이스와 웨어러블 디바이스 등의 B2C 제품도 지원합니다.

모비우스가 상용화되면 중소기업과 창업벤처 등 개발자 누구나 이 플랫폼을 통해 사물인터넷 서비스와 제품을 개발할 수 있게 됩니다.


SK텔레콤 이명근 기업사업부문장은 “플랫폼의 핵심기능은 다양한 플레이어(Player)가 참여할 수 있는 생태계를 구축하는 것이며, 향후 모비우스가 국내 사물인터넷 산업의 발전과 해외 진출에 중추적인 역할을 할 것으로 기대한다”면서,“사물인터넷포럼의 의장으로서 본격적으로 개화하는 사물인터넷 산업의 국제 표준화에도 적극 노력할 것”이라고 밝혔습니다.


KETI 성하경 선임 연구 본부장은“모비우스 플랫폼은 사물인터넷 관련 개방형 플랫폼 개발 · 실증 및 확산 사업 등에 활용할 수 있으며, SK 텔레콤의 플랫폼 사업화에 KETI도 적극적으로 협력하고 지원할 것”이라면서,“이번 협약은 연구원의 R&D 결과물을 실제 사업화 한다는 데 의미가 매우 크며, 이를 통해 사물인터넷

단말과 플랫폼 기술에 대한 지속적인 협력 및 기술 교류, 그리고 사물인터넷 생태계 활성화를 위한 큰 시너지가 만들어지기를 기대한다”고 말했습니다.









'사물인터넷' 카테고리의 다른 글

10 개방형 플랫폼 - Node-RED 실습  (0) 2016.02.01
10 개방형 플랫폼 - Node-RED  (0) 2016.02.01
09 개방형 플랫폼 - 모비우스  (2) 2016.01.29
08 개방형 플랫폼 - 이클립스  (0) 2016.01.29
07 개방형 플랫폼  (1) 2016.01.27
Comments