SlideShare a Scribd company logo
1 of 15
Мета-данные в REST
модели
Дмитрий Намиот Лаборатория Открытых
Информационных
Технологий
dnamiot@gmail.com
Москва 2015
• REST модель
• REST vs. SOA
• Метаданные и их назначение
• Формы представления метаданных в REST
• Дискуссия
Содержание
REST
• Малый набор базовых принципов
• Унифицированный интерфейс
• Отсутствие необходимости поддержки
состояний
• Простая структура запросов
(self-descriptive messages).
REST
• Клиент-серверная архитектура
• Сервер не обязан сохранять информацию
о состоянии клиента
• Запрос клиента явно содержит указание
о возможности кэширования ответа и
получения ответа из кэша
• Возможность взаимодействия
через промежуточные узлы
• Унифицированный программный интерфейс
сервера (URI как пример).
SOA
Метаданные
• Данные о данных
• Метаданные в REST:
• отсутствуют в силу унификации интерфейса
• Метаданные в SOA:
• необходимость описывать различные ресурсы
• поддержка персонализации доступа
(обращений)
WSDL
Использование метаданных
• Задачи:
• Автоматизация программирования
(генерации программ, тестирования,
верификации)
• Документирование
• Области применения
• Много разных интерфейсов: M2M, IoT
• Непрерывность облуживания (SLA):
телеком
Метаданные в REST
• Описание точек доступа
• URLs для запросов
• Пути для ресурсов
• Методы для доступа к ресурсам (HTTP команды)
• Параметры в запросах.
• Заголовки HTTP
• Коды возвратов и сообщения об ошибках.
• Версии API
• Форматы для результатов запросов.
(JSON, JSONP, XML)
Псевдо-Метаданные в REST
•URL запроса используется для кодирования
•Twitter API:
https://api.twitter.com/1.1/statuses/mentions_timeline.json
•1.1 – это и есть номер версии.
•.json – формат отклика
•Нет возможности узнать про сам URL – только
из документации
Поддержка Метаданных в REST
•Разметка кода:
•Swagger, API Blueprint
•Основной результат:
•готовая документация
•статический генератор
•Аналогии:
•JavaDoc
Поддержка Метаданных в REST
•Платформы для API:
•Intel Mashery, Anypoint Platform
Поддержка Метаданных в REST
•Языки описания
•HAL, RSDL, WADL
•Web Application Description Language (WADL):
•XML для описания веб-приложений
•Наиболее близкий аналог WSDL
•WADL предложен как стандарт W3C
•Есть средства генерации кода по описанию
и описания по коду (Oracle, Java, JSR-311)
Дискуссия
•Стандарта де-факто: нет
•Сообществом разработчиков WADL не принят
•Java среда наиболее близка к “мета-данным в
REST”
•Задачи автоматизации программирования
останутся актуальны
•M2M (IoT) приложения не достигли
критических масштабов по разнообразию
устройств ?
•Wearables, BYOD могут изменить картину
•Возможность вертикальных решений
SDN
• GET /v2.0/networks?limit=2
• Accept: application/json
• Отклик:
• {
• "networks":[
• {
• "status":"ACTIVE",
• "subnets":[ …
cbcvb

More Related Content

Similar to Метаданные в модели REST

Стандарты и соглашения в сложных ООП-приложениях
Стандарты и соглашения в сложных ООП-приложенияхСтандарты и соглашения в сложных ООП-приложениях
Стандарты и соглашения в сложных ООП-приложенияхMagecom Ukraine
 
Web and mobile development for intersystems caché, Eduard Lebedyuk
Web and mobile development for intersystems caché, Eduard LebedyukWeb and mobile development for intersystems caché, Eduard Lebedyuk
Web and mobile development for intersystems caché, Eduard LebedyukInterSystems
 
04 - Базы данных. Архитектура СУБД
04 - Базы данных. Архитектура СУБД04 - Базы данных. Архитектура СУБД
04 - Базы данных. Архитектура СУБДRoman Brovko
 
Разработка мобильного и веб интерфейса для Caché
Разработка мобильного и веб интерфейса для CachéРазработка мобильного и веб интерфейса для Caché
Разработка мобильного и веб интерфейса для CachéInterSystems CEE
 
C# Web. Занятие 01.
C# Web. Занятие 01.C# Web. Занятие 01.
C# Web. Занятие 01.Igor Shkulipa
 
JSLab.Тимур Шемсединов. "Архитектура программных систем на Node.js"
JSLab.Тимур Шемсединов. "Архитектура программных систем на Node.js"JSLab.Тимур Шемсединов. "Архитектура программных систем на Node.js"
JSLab.Тимур Шемсединов. "Архитектура программных систем на Node.js"GeeksLab Odessa
 
Архитектура программных систем на Node.js
Архитектура программных систем на Node.jsАрхитектура программных систем на Node.js
Архитектура программных систем на Node.jsTimur Shemsedinov
 
04 Архитектура информационных систем. Архитектурные модели и стили
04 Архитектура информационных систем. Архитектурные модели и стили04 Архитектура информационных систем. Архитектурные модели и стили
04 Архитектура информационных систем. Архитектурные модели и стилиEdward Galiaskarov
 
Enterpise&Webservices
Enterpise&WebservicesEnterpise&Webservices
Enterpise&Webservicesscassau
 
Data Destribution service OMG standart
Data Destribution service OMG standart Data Destribution service OMG standart
Data Destribution service OMG standart Sergei Seleznev
 
Web весна 2012 лекция 6
Web весна 2012 лекция 6Web весна 2012 лекция 6
Web весна 2012 лекция 6Technopark
 
Андрей Зайчиков "Архитектура распределенных кластеров NoSQL на AWS"
Андрей Зайчиков "Архитектура распределенных кластеров NoSQL на AWS"Андрей Зайчиков "Архитектура распределенных кластеров NoSQL на AWS"
Андрей Зайчиков "Архитектура распределенных кластеров NoSQL на AWS"IT Event
 
7 создание веб сервисов
7 создание веб сервисов7 создание веб сервисов
7 создание веб сервисовKewpaN
 
АрхиГраф.MDM: управление мастер-данными
АрхиГраф.MDM: управление мастер-даннымиАрхиГраф.MDM: управление мастер-данными
АрхиГраф.MDM: управление мастер-даннымиSergey Gorshkov
 
Impress Application Server for node.js (ru)
Impress Application Server for node.js (ru)Impress Application Server for node.js (ru)
Impress Application Server for node.js (ru)Timur Shemsedinov
 
JavaScript Базовый. Занятие 01.
JavaScript Базовый. Занятие 01.JavaScript Базовый. Занятие 01.
JavaScript Базовый. Занятие 01.Igor Shkulipa
 
Моделирование для NoSQL БД
Моделирование для NoSQL БДМоделирование для NoSQL БД
Моделирование для NoSQL БДAndrew Sovtsov
 

Similar to Метаданные в модели REST (20)

Стандарты и соглашения в сложных ООП-приложениях
Стандарты и соглашения в сложных ООП-приложенияхСтандарты и соглашения в сложных ООП-приложениях
Стандарты и соглашения в сложных ООП-приложениях
 
Web and mobile development for intersystems caché, Eduard Lebedyuk
Web and mobile development for intersystems caché, Eduard LebedyukWeb and mobile development for intersystems caché, Eduard Lebedyuk
Web and mobile development for intersystems caché, Eduard Lebedyuk
 
04 - Базы данных. Архитектура СУБД
04 - Базы данных. Архитектура СУБД04 - Базы данных. Архитектура СУБД
04 - Базы данных. Архитектура СУБД
 
REST API JL.elama
REST API JL.elamaREST API JL.elama
REST API JL.elama
 
Разработка мобильного и веб интерфейса для Caché
Разработка мобильного и веб интерфейса для CachéРазработка мобильного и веб интерфейса для Caché
Разработка мобильного и веб интерфейса для Caché
 
C# Web. Занятие 01.
C# Web. Занятие 01.C# Web. Занятие 01.
C# Web. Занятие 01.
 
JSLab.Тимур Шемсединов. "Архитектура программных систем на Node.js"
JSLab.Тимур Шемсединов. "Архитектура программных систем на Node.js"JSLab.Тимур Шемсединов. "Архитектура программных систем на Node.js"
JSLab.Тимур Шемсединов. "Архитектура программных систем на Node.js"
 
REST
RESTREST
REST
 
Архитектура программных систем на Node.js
Архитектура программных систем на Node.jsАрхитектура программных систем на Node.js
Архитектура программных систем на Node.js
 
Управление данными (распределенная обработка)
Управление данными (распределенная обработка)Управление данными (распределенная обработка)
Управление данными (распределенная обработка)
 
04 Архитектура информационных систем. Архитектурные модели и стили
04 Архитектура информационных систем. Архитектурные модели и стили04 Архитектура информационных систем. Архитектурные модели и стили
04 Архитектура информационных систем. Архитектурные модели и стили
 
Enterpise&Webservices
Enterpise&WebservicesEnterpise&Webservices
Enterpise&Webservices
 
Data Destribution service OMG standart
Data Destribution service OMG standart Data Destribution service OMG standart
Data Destribution service OMG standart
 
Web весна 2012 лекция 6
Web весна 2012 лекция 6Web весна 2012 лекция 6
Web весна 2012 лекция 6
 
Андрей Зайчиков "Архитектура распределенных кластеров NoSQL на AWS"
Андрей Зайчиков "Архитектура распределенных кластеров NoSQL на AWS"Андрей Зайчиков "Архитектура распределенных кластеров NoSQL на AWS"
Андрей Зайчиков "Архитектура распределенных кластеров NoSQL на AWS"
 
7 создание веб сервисов
7 создание веб сервисов7 создание веб сервисов
7 создание веб сервисов
 
АрхиГраф.MDM: управление мастер-данными
АрхиГраф.MDM: управление мастер-даннымиАрхиГраф.MDM: управление мастер-данными
АрхиГраф.MDM: управление мастер-данными
 
Impress Application Server for node.js (ru)
Impress Application Server for node.js (ru)Impress Application Server for node.js (ru)
Impress Application Server for node.js (ru)
 
JavaScript Базовый. Занятие 01.
JavaScript Базовый. Занятие 01.JavaScript Базовый. Занятие 01.
JavaScript Базовый. Занятие 01.
 
Моделирование для NoSQL БД
Моделирование для NoSQL БДМоделирование для NoSQL БД
Моделирование для NoSQL БД
 

More from Coldbeans Software

On Internet of Things education
On Internet of Things educationOn Internet of Things education
On Internet of Things educationColdbeans Software
 
Стандарты в цифровой экономике
Стандарты в цифровой экономикеСтандарты в цифровой экономике
Стандарты в цифровой экономикеColdbeans Software
 
On Internet of Things programming models
On Internet of Things programming modelsOn Internet of Things programming models
On Internet of Things programming modelsColdbeans Software
 
Безопасный город
Безопасный городБезопасный город
Безопасный городColdbeans Software
 
Twitter as a Transport Layer Platform
Twitter as a Transport Layer Platform Twitter as a Transport Layer Platform
Twitter as a Transport Layer Platform Coldbeans Software
 
On data model for context–aware services
On data model for context–aware servicesOn data model for context–aware services
On data model for context–aware servicesColdbeans Software
 
On Web-based Domain-Specific Language for Internet of Things
On Web-based Domain-Specific Language for Internet of ThingsOn Web-based Domain-Specific Language for Internet of Things
On Web-based Domain-Specific Language for Internet of ThingsColdbeans Software
 
ON THE SYNERGY OF CIRCUITS AND PACKETS
ON THE SYNERGY OF CIRCUITS AND PACKETS ON THE SYNERGY OF CIRCUITS AND PACKETS
ON THE SYNERGY OF CIRCUITS AND PACKETS Coldbeans Software
 
Базы данных для временных рядов
Базы данных для временных рядовБазы данных для временных рядов
Базы данных для временных рядовColdbeans Software
 
ОБ ИСПОЛЬЗОВАНИИ BLUETOOTH ДЛЯ ПРЕДСТАВЛЕНИЯ ЛОКАЛЬНЫХ ДАННЫХ.
ОБ ИСПОЛЬЗОВАНИИ BLUETOOTH ДЛЯ ПРЕДСТАВЛЕНИЯ ЛОКАЛЬНЫХ ДАННЫХ.ОБ ИСПОЛЬЗОВАНИИ BLUETOOTH ДЛЯ ПРЕДСТАВЛЕНИЯ ЛОКАЛЬНЫХ ДАННЫХ.
ОБ ИСПОЛЬЗОВАНИИ BLUETOOTH ДЛЯ ПРЕДСТАВЛЕНИЯ ЛОКАЛЬНЫХ ДАННЫХ.Coldbeans Software
 
From Jules Verne’s Moon landing dream in 1865 to “Star Wars” now
From Jules Verne’s Moon landing dream in 1865 to “Star Wars” nowFrom Jules Verne’s Moon landing dream in 1865 to “Star Wars” now
From Jules Verne’s Moon landing dream in 1865 to “Star Wars” nowColdbeans Software
 
ON SOFTWARE STANDARDS FOR SMART CITIES: API OR DPI
ON SOFTWARE STANDARDS FOR SMART CITIES: API OR DPI ON SOFTWARE STANDARDS FOR SMART CITIES: API OR DPI
ON SOFTWARE STANDARDS FOR SMART CITIES: API OR DPI Coldbeans Software
 

More from Coldbeans Software (20)

On Internet of Things education
On Internet of Things educationOn Internet of Things education
On Internet of Things education
 
Стандарты в цифровой экономике
Стандарты в цифровой экономикеСтандарты в цифровой экономике
Стандарты в цифровой экономике
 
On Internet of Things programming models
On Internet of Things programming modelsOn Internet of Things programming models
On Internet of Things programming models
 
IoT education
IoT educationIoT education
IoT education
 
On Crowd-sensing back-end
On Crowd-sensing back-endOn Crowd-sensing back-end
On Crowd-sensing back-end
 
On Physical Web models
On Physical Web modelsOn Physical Web models
On Physical Web models
 
Безопасный город
Безопасный городБезопасный город
Безопасный город
 
Twitter as a Transport Layer Platform
Twitter as a Transport Layer Platform Twitter as a Transport Layer Platform
Twitter as a Transport Layer Platform
 
On hyper-local web pages
On hyper-local web pagesOn hyper-local web pages
On hyper-local web pages
 
On data model for context–aware services
On data model for context–aware servicesOn data model for context–aware services
On data model for context–aware services
 
On time-series databases
On time-series databasesOn time-series databases
On time-series databases
 
On Web-based Domain-Specific Language for Internet of Things
On Web-based Domain-Specific Language for Internet of ThingsOn Web-based Domain-Specific Language for Internet of Things
On Web-based Domain-Specific Language for Internet of Things
 
ON THE SYNERGY OF CIRCUITS AND PACKETS
ON THE SYNERGY OF CIRCUITS AND PACKETS ON THE SYNERGY OF CIRCUITS AND PACKETS
ON THE SYNERGY OF CIRCUITS AND PACKETS
 
Базы данных для временных рядов
Базы данных для временных рядовБазы данных для временных рядов
Базы данных для временных рядов
 
Bluetooth Data Points
Bluetooth Data PointsBluetooth Data Points
Bluetooth Data Points
 
ОБ ИСПОЛЬЗОВАНИИ BLUETOOTH ДЛЯ ПРЕДСТАВЛЕНИЯ ЛОКАЛЬНЫХ ДАННЫХ.
ОБ ИСПОЛЬЗОВАНИИ BLUETOOTH ДЛЯ ПРЕДСТАВЛЕНИЯ ЛОКАЛЬНЫХ ДАННЫХ.ОБ ИСПОЛЬЗОВАНИИ BLUETOOTH ДЛЯ ПРЕДСТАВЛЕНИЯ ЛОКАЛЬНЫХ ДАННЫХ.
ОБ ИСПОЛЬЗОВАНИИ BLUETOOTH ДЛЯ ПРЕДСТАВЛЕНИЯ ЛОКАЛЬНЫХ ДАННЫХ.
 
From Jules Verne’s Moon landing dream in 1865 to “Star Wars” now
From Jules Verne’s Moon landing dream in 1865 to “Star Wars” nowFrom Jules Verne’s Moon landing dream in 1865 to “Star Wars” now
From Jules Verne’s Moon landing dream in 1865 to “Star Wars” now
 
Cars as Tags
Cars as TagsCars as Tags
Cars as Tags
 
Sensing
SensingSensing
Sensing
 
ON SOFTWARE STANDARDS FOR SMART CITIES: API OR DPI
ON SOFTWARE STANDARDS FOR SMART CITIES: API OR DPI ON SOFTWARE STANDARDS FOR SMART CITIES: API OR DPI
ON SOFTWARE STANDARDS FOR SMART CITIES: API OR DPI
 

Метаданные в модели REST

  • 1. Мета-данные в REST модели Дмитрий Намиот Лаборатория Открытых Информационных Технологий dnamiot@gmail.com Москва 2015
  • 2. • REST модель • REST vs. SOA • Метаданные и их назначение • Формы представления метаданных в REST • Дискуссия Содержание
  • 3. REST • Малый набор базовых принципов • Унифицированный интерфейс • Отсутствие необходимости поддержки состояний • Простая структура запросов (self-descriptive messages).
  • 4. REST • Клиент-серверная архитектура • Сервер не обязан сохранять информацию о состоянии клиента • Запрос клиента явно содержит указание о возможности кэширования ответа и получения ответа из кэша • Возможность взаимодействия через промежуточные узлы • Унифицированный программный интерфейс сервера (URI как пример).
  • 5. SOA
  • 6. Метаданные • Данные о данных • Метаданные в REST: • отсутствуют в силу унификации интерфейса • Метаданные в SOA: • необходимость описывать различные ресурсы • поддержка персонализации доступа (обращений)
  • 8. Использование метаданных • Задачи: • Автоматизация программирования (генерации программ, тестирования, верификации) • Документирование • Области применения • Много разных интерфейсов: M2M, IoT • Непрерывность облуживания (SLA): телеком
  • 9. Метаданные в REST • Описание точек доступа • URLs для запросов • Пути для ресурсов • Методы для доступа к ресурсам (HTTP команды) • Параметры в запросах. • Заголовки HTTP • Коды возвратов и сообщения об ошибках. • Версии API • Форматы для результатов запросов. (JSON, JSONP, XML)
  • 10. Псевдо-Метаданные в REST •URL запроса используется для кодирования •Twitter API: https://api.twitter.com/1.1/statuses/mentions_timeline.json •1.1 – это и есть номер версии. •.json – формат отклика •Нет возможности узнать про сам URL – только из документации
  • 11. Поддержка Метаданных в REST •Разметка кода: •Swagger, API Blueprint •Основной результат: •готовая документация •статический генератор •Аналогии: •JavaDoc
  • 12. Поддержка Метаданных в REST •Платформы для API: •Intel Mashery, Anypoint Platform
  • 13. Поддержка Метаданных в REST •Языки описания •HAL, RSDL, WADL •Web Application Description Language (WADL): •XML для описания веб-приложений •Наиболее близкий аналог WSDL •WADL предложен как стандарт W3C •Есть средства генерации кода по описанию и описания по коду (Oracle, Java, JSR-311)
  • 14. Дискуссия •Стандарта де-факто: нет •Сообществом разработчиков WADL не принят •Java среда наиболее близка к “мета-данным в REST” •Задачи автоматизации программирования останутся актуальны •M2M (IoT) приложения не достигли критических масштабов по разнообразию устройств ? •Wearables, BYOD могут изменить картину •Возможность вертикальных решений
  • 15. SDN • GET /v2.0/networks?limit=2 • Accept: application/json • Отклик: • { • "networks":[ • { • "status":"ACTIVE", • "subnets":[ … cbcvb