Skip to content
Andy Jackson edited this page Jan 3, 2014 · 9 revisions

Introduction

The idea is to augment existing web-based access system in order to provide our communities with alternative forms of access for 'difficult' content types.

Architecture

There are two components in this architecture:

  • The Response Sniffer: This monitors requests and responses on and sniffs out the content types involved. For types that are known to be problematic, the user is redirected to the second component.
  • The Interjection Service: This takes a URL as an argument, and provides alternative representations of the original resource. It can be called directly, or during playback via the Response Sniffer.

The diagram below illustrates how the two components work together.

Interjection

Prototype Implementation

This repository contains prototype implementations of these two components:

The interject-servlet-filter performs the role of a Response Sniffer. It can be deployed over any Java Servlet application, and the initial target will be OpenWayback. That project also includes a couple of simple example conversion services, and the tests include full integration tests showing how the InterjectionRequestFilter might be deployed in a standard Java servlet application.

The interject-webapp provides the Interjection Service. It contains some example transformation services, along with a standalone content identification service. This allows the webapp to be used independently, as a self-contained 'content sniffer' that is inspects of a URL before deciding how to dereference it.

Installation

To run from git, first:

$ git clone git@github.com:ukwa/interject.git

Then, in ./interject/interject-servlet-filter

$ mvn install -DskipTests

Then, in interject/interject-webapp

$ play run

or, to run as a server:

$ play start

Example Interjection Workflows

URL Redirection Service

Our target workflow for the interject-webapp is something like this: