Новости IT, хостинга
  Android, Apple, Facebook, Google, Linux, Microsoft, Samsung, Twitter, Интернет, Россия, браузеры, обновление ПО, онлайн-сервисы, операционные системы, планшеты, рынок ИТ, сделки, смартфоны, социальные сети, уязвимости  
  новостей: 10357
  комментариев: 2247

eBay представил ql.io, SQL-подобный язык для взаимодействия с web-сервисами


Компания eBay представила проект ql.io, в рамках которого подготовлена реализация декларативного предметно-ориентированного языка для формирования выборок, выступающая в роли надстройки над традиционным Web API существующих сервисов. Язык ql.io базируется на идеях SQL и использует при манипуляциях данными формат JSON. Целью проекта является сокращение времени разработки за счет упрощения процесса работы с данными через использование более привычных и наглядных механизмов формирования запросов. Исходные тексты ql.io написаны на языке JavaScript и распространяются под лицензией Apache.

Наиболее оправдан ql.io в мэшап-приложениях, манипулирующих данными из разрозненных web-сервисов, например, комбинирующих запросы к API Google Maps и API eBay. При помощи ql.io данные, полученные из разных Web API, обрабатываются в рамках единых операций объединения и агрегирования, примерно также как оператор SELECT обрабатывает данные из нескольких разных таблиц. Используя ql.io разработчику больше не нужно на каждом шагу оглядываться на особенности Web API разных сервисов, достаточно один раз определить их спецификацию и в дальнейшем обращаться к ним через унифицированный интерфейс.

В качестве демонстрации возможностей ql.io приводится пример выполнения действия по поиску продукта с выводом координат продавцов. Алгоритм выполнения данной операции сводится к выводу из базы eBay идентификаторов продуктов по ключевым словам, получение через отдельный API параметров заявок и определение для заявок координат через Google Geocoding API. При традиционном подходе для реализации указанного примера потребовалось бы написание довольно объемного кода, отправляющего запросы и разбирающего вывод от трёх разных Web API. При использовании ql.io все эти действия укладываются в один SELECT-запрос.

По аналогии с SQL вначале формируются виртуальные таблицы, отождествлённые с тем или иным существующим Web API. Затем для обработки данных и формирования запросов к Web API можно использовать синтаксис SQL-оператора SELECT. При этом поддерживается возможность совершения вложенных запросов, агрегации данных, сортировки и объединения результатов (JOIN) нескольких запросов к различным таблицам, за которыми могут стоять Web API совершенно разных сервисов. Результат возвращается в формате JSON. Для добавления данных предлагается использовать оператор INSERT.

Пример создания таблицы и простого SQL-запроса (в действии скрипт можно запустить на специальной демонстрационной web-консоли):

create table google.geocode
on select get from "http://maps.googleapis.com/maps/api/geocode/{format}?sensor=true&address={^address}"
using defaults format = 'json'
resultset 'results';

select g.geometry.location from google.geocode as g where g.address = 'г. Москва, Красная площадь';

Кроме увеличения удобства обращения к Web API и сокращения числа строк кода с реализацией логики работы, новый язык также позволяет уменьшить задержки и увеличить скорость выполнения операций за счет сокращения числа запросов к серверу, выполнения операций по агрегации данных на сервере и передачи клиенту только необходимых для web-приложения данных. Для оптимизации выполнения сложных запросов, требующих работы с большими объемами данных, в рамках проекта подготовлен специальный серверный шлюз (по сути выполняет задачи СУБД), который может взять на себя первичную загрузку и обработку данных, возвращая клиенту уже готовый результат. Компоненты шлюза ql.io запускаются поверх серверной платформы node.js. На шлюз загружаются готовые скрипты в формате ql.io, которые затем вызываются из конечного web-приложения через определённый в скрипте интерфейс WebSocket или HTTP API (web-приложению достаточно отправить на шлюз обычный http-запрос с необходимыми параметрами).


Источник: openent.ru

  5 декабря 2011 387
Версия для печати

← предыдущая новость следующая новость →

Мой комментарий
Ваше имя*:
Email:
Комментарий*:
Зарегистрироваться автоматически: Вы будете зарегистрированы на сайте автоматически при добавлении комментария. Обязательно заполните поле Email для этого.
Сумма чисел 9 и 11*:            


Хостеры (2446)
HostDB (35)
Софт (2640)
Железо (993)
Интернет (1435)
Статистика и аналитика (3324)


Лучшие новости

Самые читаемые новости

Отправить сообщение администратору

Сумма чисел 33 и 2*:


Яндекс цитирования
сообщить о неточности