Карта сайта Хакер в RSS Энциклопедия Хакера PDA версия сайта Почтовые рассылки Хакера    Хакер в Twitter Хакер в ВКонтакте Приложение Хакер для Facebook Хакер на Formspring.me
Журнал Новости Форум Видео Life Xakep Live (блоги)
Bugtrack Статьи Блог Поиск English
Взлом как образ мысли Взлом как образ мысли
Интервью с человеком, который, как оказалось, является не только талантливым пентестером в одной из крупных ИБ-компании, но и хакером-ветераном, который уверенными шагами вышел на свет и прикоснулся к истории российской хак-сцены....
Полный гид по накрутке онлайн-голосований Полный гид по накрутке онлайн-голосований
Конкурсы с голосованием привлекают большое количество посетителей, а трафик, как известно, — это деньги. Особый интерес вызывают конкурсы, где за победу предлагаются лакомые призы....

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

Bookmark and Share

Компания 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-запрос с необходимыми параметрами).



Теги: eBay , программирование





СЛЕДУЮЩИЕ СТАТЬИ
Впервые в России пройдет конференция Microsoft по информационной безопасности
ПРЕДЫДУЩИЕ СТАТЬИ
Mobile Developer Day 2011: 7 декабря в Digital October
Developer Garage: 23 ноября в Нижнем Новгороде
Кодируй для России: Code4Russia
Microsoft Research показала интерфейс Holodesk
Microsoft опубликовала финальную программу конференции Tech∙Ed Russia 2011
Microsoft представила Visual Studio 11 и .Net 4.5
Управление рисками в стороннем ПО
13 сентября в России празднуется День программиста
Id опубликует исходники Doom 3
Samsung выпустил Bada 2.0 SDK
ОБСУЖДЕНИЕ СТАТЬИ
Логин:
Пароль:
Если у вас есть форумный логин - вы можете использовать его, иначе анонимный гостевой доступ.

Для оставления комментария вы можете зарегистрироваться по упрощенной процедуре.
Для отправки сообщения введите код, указанный на картинке
Сообщение





Keywords: zPOSTz zSOFTz, zHOWz, zNEWSz, zYANDEXz z57935z
Для Авторов: edit Lock delete Lock



    Rambler's Top100