Меню

Протокол OData – основное назначение и реализация в SAP NetWeaver, обзор

OData – это REST-протокол общения между клиентом и сервером для запроса и обновления данных; предназначается для построения REST-API.

OData – это REST-сервис

OData – это REST-протокол общения между клиентом и сервером для запроса и обновления данных; предназначается для построения REST-API. Грубо: sql-подобный язык, предназначенный для запроса и обновления данных на сервере с клиента; имеет похожее с SQL назначение, но SQL – для общения сервера с базой, а OData – для общения клиента и сервера (не факт, что будет общение с базой).

Что понимается под REST? И RESTful?

REST – Representational State Transfer. Имеется несколько переводов для этого термина: передача состояния представления (wiki), репрезентативная передача состояния (msdn).

Перевод Олега Башкатова: Передача самодостаточного состояния (=свойств и данных). Перевод MSDN – самый подходящий.

Общая цель этих требований/ограничений: сделать приложения надежными, производительными, масштабируемым, прозрачно/понятными с точки зрения взаимодействия, независимо расширяемыми; чтобы компоненты были портативными/переносимыми (между технологиями, серверами и т.д.); обеспечить легкость внесения изменения; обеспечить эволюционность систем, состоящих из таких компонентов.

Архитектура REST была введена Роем Филдингом (Roy Fielding); им же была предложена эта архитектурная концепция для WWW, где общение между браузером (клиентом) и сервером происходит через web-service с помощью URL (unified resource locator). Собственно, web-service будет являться restful, если он отвечает всем требования/ограничениям выше.

OData – происхождение и назначение

OData была начата в рамках Microsoft в апреле 2007г. Цель: дать возможность обратиться к данным всем web-клиентам в рамках корпоративной сети и в рамках Интернет. Это начали достигать с помощью HTTP, URIs для доступа к различным частям данных через сервис, а также представления в рамках простых форматах XML и JSON. В 2010 Microsoft официально объявил об OData (Open Data Protocol), а также сделал поддержки в Excel и SharePoint.

В 2009 SAP начал разработку SAP NetWeaver Gateway.

В 2012 Microsoft, Citrix, IBM, Progress Software, SAP, WSO2 создали OASIS – организацию по структуризации информационных стандартов. Собственно с тех пор экосистема OData растет и постепенно увеличиваются OData-producers (реализация серверной части) и OData-consumers (реализации клиентской части). SAP Gateway представляет из себя OData producers, а UI5.odata.model – odata-consumer. Детально об экосистеме OData.

По мере развития OData появлялись различные версии. На текущий момент OData v4 – является самой последний версией; а в среде SAP – самой распространённой в продуктивных целях, а также наиболее задокументированной с точки зрений описательной (блоги, сайты энтузиастов) документации – odata v2 (её мы и будет рассматривать). В копилку текущей важности OData V2 также добавляется факт того, что UI5-smart элементы (таблицы, деревья, графики) не поддерживают пока OData V4 по состоянию на 2021год (нота 2322624 - SAP Gateway SAP_GWFND OData V4 protocol - Known Constraints + 3036992 - SmartTable, Smartvariant, Smartfield, Smartchart and other Smart issues with oData V4 version - Uncaught (in promise) TypeError); внутри ABAP OData V4 разрабатывать уже можно. И кто после этого скажет, что ABAP отстающий язык?

Таким образом, назначение OData – это обеспечить единый язык обращения к серверу. Чтобы клиент смог получить/обновить данные на сервере используя лишь HTTP-подключение. По сути, вся концепция OData состоит из двух частей: абстрактная модель данных и протокол (набор ключевых слов для взаимодействия) для взаимодействия между клиентом и сервером.

Рис 1. Общая модель взаимодействия по протоколу OData клиент-сервер

Таким образом, составными частями архитектуры:

  1. OData-data model
  2. OData-protocol (ключевые слова для обеспечения CRUDQB&Media-взаимодействия клиент-сервера) C – create, R – read, U – update, D – delete, Q – query (получения списка), а также Batch (массовый запрос); и Media-передачи: загрузка и выгрузка бинарных файлов.
  3. Библиотека на уровне клиента
  4. OData-service / библиотека OData-provider.

SAP NetWeaver On-premise

Применительно к SAP On-premise

Если хотите прочитать статью полностью и оставить свои комментарии присоединяйтесь к sapland

У вас уже есть учетная запись?

Войти