-
Notifications
You must be signed in to change notification settings - Fork 2
Home
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.
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.
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.
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
Our target workflow for the interject-webapp is something like this:
- User finds some Spectrum Tape files in our index.
- The link there currently takes them to the Internet Archive Wayback Machine. However, most users will not be able to access that content easily, so instead, the links should be passed to the interject-webapp. e.g. {HOST}/interject/inspect/{URL}
- The inspection service can decide what to do, or provide the user with an interface through which do decide how to proceed:
- Inform the user of what we know about the resources format.
- Allow them to download it directly.
- Provide them a link that lets them view it in a browser-based emulator.
