Raining content: IB for Drupal

Rain: IB client/server solution for Drupal

Rain is what's behind this site (IBU News). User features:

  • DB offloaded (client/server).
  • Client side (Drupal) which talks to a number of distributed (federated) servers for high availability.
  • Uses powerful and highly performant IB search engine.
  • Supports AJAX for a host of features including Scan
  • Clickless search: selecting some on a page runs a search in a layer.
The AJAX bits (the "Live Scan") is all native Drupal to our remote server (and the word scan too is realtime to what's in the index and not just some dictionary).

Drupal Module

The client side code (what's running in Drupal) is a Drupal module written using standard PHP code. Its open source "freeware" and covered by a liberal license that provides a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute to the extent that they don't violate any other applicable licenses such as those applied to PHP and the Drupal platform itself. In order words.. From our point of view: Do with it as you please.

The module creates synthetic "nodes" via remote searches to one or more search servers. Unfortunately the standard Drupal node architecture assumes that all content is from a local DB so we have to slightly modify things. These modifications, however, are quite straightforward.

Search Server

The server is built around the "nano http[d]" program. Nano_http[d] is open source, covered by a liberal BSD inspired license and written in Python using the IB kernel libs via a Python loadable module.

Pre-requisites

  • python 2.6
    [sources available from python.org]
  • MX extensions
  • MX experimental extensions
    [available from http://www.egenix.com/products/python/]
  • IB libs and Python loadable module