1 of 31

Fedora In-context: �Front-ends

Islandora, Hydra and Custom

2 of 31

Learning Outcomes

Front-end options (Hydra, Islandora, custom)

Similarities and differences

Opportunities for interoperability

3 of 31

Islandora

From 1.x into the CLAW

4 of 31

  • Launched in 2006 at the University of Prince Edward Island
  • Islandora Foundation created in 2013 as steward of code
  • Provides a standards-based, open source platform with a sustainable approach to long-term data stewardship
  • Provides a sustainable software ecosystem via an active and diverse community of developers and users
  • 60+ Solution Packs and two yearly releases

Introduction to Islandora

5 of 31

Islandora 7.x-1.x Software Stack

DRUPAL 7.X �(CMS, Presentation, Workflows)

Islandora (MIDDLEWARE)

Fedora 3.8.1 (Storage and preservation)

6 of 31

Islandora CLAW Ecosystem

Multi Language

Distributed

Role Separation

Not a layer

This image was originally posted to Flickr by jonrawlinson at http://flickr.com/photos/94571281@N00/3237431. It was reviewed on 15 April 2007 by the FlickreviewR robot and was confirmed to be licensed under the terms of the cc-by-2.0.

7 of 31

Islandora CLAW Ecosystem

Chullo PHP Fedora 4 Connector/Wrapper class - client

Crayfish Silex Microservice, uses Chullo and exposes REST endpoints

PDX Silex Microservice, uses Crayfish and exposes PCDM utility REST endpoints

Alpaca Event-driven middleware based on Apache Camel that synchronizes Drupal content to a triple store.

Salmon Event-driven middleware based on Apache Camel that synchronizes a Fedora 4 repository with a Drupal instance.

8 of 31

Islandora CLAW Design Goals

  • We have a MVP to rule them all!

Big picture: Utilize Fedora 4/ Drupal 8 to their fullest

  • Easier to install
  • Easier to develop and contribute
  • Expose Linked Data
  • Easier to use
    • Enhanced user experience
    • Faster searching, display, and ingest
    • Expose more control of your repository through UI

Easier to scale

9 of 31

Islandora CLAW Methods

  • Installation bash scripts or Docker
  • Vagrant development environment
  • Tight Drupal 8 integration / UX RDF to Entities Mapping
  • Modal bi-directional Sync / JSON-LD based REST API
  • Asynchronous interactions via Camel
  • Transformation logic in the UI
  • Decoupling
  • Independent PHP Microservices / Silex
  • Data modelling out of the Source Code

10 of 31

Using Apache Camel

Camel is a framework for building middleware

  • Provides workflow-like structure for the code
  • Routes can be written in multiple languages
  • Message splitting, transformations, concurrent processing, error handling / redelivery
  • Works out of the box with everything you can think of
  • Used by Islandora for JMS Processing, bi-directional Sync and more
  • Runs on Karaf/ OSGI

11 of 31

CLAW Diagram

12 of 31

PHP Microservices and Silex

Slim/Lightweight Fedora 4 RESTful API wrappers

  • Silex apps deal with HTTP/Routing/LDP �and upper level Resource constructs
  • Chullo: Fedora 4 Client Library deals with Fedora 4 interaction
  • Modern PHP, based on a Kernel and Event propagation
  • Dependency Injection allows further decoupling
  • Microservices can live in a distributed system
  • Simple to code, extendable and fast (PHP7)
  • Drupal 8 is Symfony. Silex is subset of Symfony

13 of 31

https://github.com/Islandora-CLAW/CLAW

14 of 31

15 of 31

Hydra

16 of 31

What is Hydra?

  • A robust repository fronted by feature-rich, tailored applications and workflows (“heads”)
    • One body, many heads
  • Collaboratively built “solution bundles” that can be adapted and modified to suit local needs
  • A community of developers and adopters extending and enhancing the core
    • If you want to go fast, go alone. If you want to go far, go together.

17 of 31

18 of 31

19 of 31

20 of 31

21 of 31

22 of 31

Ruby on Rails

  • Rapid application development for web applications: “Convention over configuration”
  • Supportable: MVC (Model-View-Controller) and Rails framework make code well-structured, predictable
  • Testable: RSpec and Cucumber give powerful, automatable, testing tools
  • Learnable: Stanford went from 1 to 8 Ruby savvy developers in one year (no new hires)

23 of 31

24 of 31

Current Developments

  • PCDM modeling
  • Layered approach for configurability
  • Rails isn't required until CurationConcerns
  • Sufia and CurationConcerns may merge
  • Makes a deep stack even deeper

25 of 31

For More Information

Duraspace Wiki:

ProjectHydra:

  • https://projecthydra.org/ (may be outdated)

GitHub:

26 of 31

Custom Implementations

27 of 31

Extending Fedora

Islandora and Hydra are not the only options

REST-API can be used to build customizations

Extending Fedora 4 presentations on Day 3

28 of 31

Interoperability

29 of 31

Interoperability Considerations

  • Common Fedora, can view all resources
  • Common recipes for Camel integrations
    • Indexing: Triplestore, Solr, etc.
    • derivative generation: PCDM Use Extension
  • Common structural Ontologies, like PCDM (primer)

30 of 31

Where are we now?

  • Adopting WebAC as an authorization standard
  • Discussing common PCDM usage
  • Next: Common services?
    • API-X

31 of 31

Current Fedora 4 Implementations

A list of known Fedora 4 implementations can be found on the wiki:

https://wiki.duraspace.org/display/FF/Fedora+4+Implementations