Open-Club.Net Проект полностью ориентирован на Open Source-подход(изучаем, настраиваем, устанавливаем и общаемся о Linux).
Мы в соц. сетях:
Главная » 2011 » Декабрь » 5 » eBay представил ql.io, SQL-подобный язык для взаимодействия с web-сервисами
12:57
eBay представил ql.io, SQL-подобный язык для взаимодействия с web-сервисами

eBay  Компания 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-запрос с необходимыми параметрами).
Категория: Разное | Просмотров: 707 | Добавил: Root | Теги: ebay, sql, API, web, ql.io | Рейтинг: 5.0/1
Всего комментариев: 0
ComForm">
avatar
Профиль
Поиск
Категории раздела
Архив записей
Участвуйте в опросе
Что вы слушаете?!
Всего ответов: 120
Статистика

Яндекс.Метрика

Онлайн всего: 5
Гостей: 5
Пользователей: 0

Нас уже: 1302 Линуксоидов
Сегодня нас посетили следующие Линуксоиды -