In association with heise online

02 December 2011, 09:56

eBay's ql.io is an "SQL" for web APIs

  • Twitter
  • Facebook
  • submit to slashdot
  • StumbleUpon
  • submit to reddit

ql.io logo eBay has announced ql.io, a new domain specific language which combines SQL, JSON and procedural elements to create a compact language for making HTTP request that retrieve data, join the results of those requests, or generate responses. The developers do point out that, although inspired by SQL, ql.io is not SQL; ql.io is aimed at client apps which may need to combine data from multiple APIs in a single operation, a process commonly known as a mashup.

This mashup process can be a complex issue for client applications as it requires the developers to focus on writing code that performs the requests in the right order, handles interdependencies and works out how to efficiently perform the task in parallel. To help address this issue, ql.io offers a runtime which can act as a gateway or proxy for those complex queries, queries which can themselves be expressed in the ql.io declarative scripting language. A client application needs only to call the appropriately constructed script through the script's own HTTP API or WebSocket interface and the ql.io system will use its resources to perform the required steps to return a result as quickly as possible, making the client application appear more responsive and robust.

The runtime platform is built upon node.js, the JavaScript-based, event-driven, non-blocking web application framework, and can also be embedded into node.js applications. Ql.io scripts, although apparently procedural, can be executed out of order to handle dependencies and can be scheduled to run in parallel based on on-the-fly compile time dependency analysis.

The ql.io developers say in their announcement that the system should ease a number of "pain points", reducing the number of lines of code needed to perform a query and in turn reducing developer time needed, and reducing the number of queries and requests that take place between the client application and the servers by condensing the data requested to only essential fields. Ql.io does not set out to replace HTTP API frameworks though: it is designed to simplify the aggregation of existing and new HTTP APIs. A flexible deployment model means it can either be positioned close to the API servers, close to the client, or as part of the client, depending on where the the "network costs" are highest in an application.

Developed by eBay's platform engineering group, ql.io's source code is hosted on github and licensed under the Apache Licence 2.0. Documentation and examples are available from the ql.io site.

(djwm)

Print Version | Send by email | Permalink: http://h-online.com/-1388806
 


  • July's Community Calendar





The H Open

The H Security

The H Developer

The H Internet Toolkit