1 of 95

State of The CLAW Address; The Long version

2 of 95

Project history and background

3 of 95

4 of 95

5 of 95

Fedora 4 Interest Group

6 of 95

7 of 95

Fedora 3 is End of Life

8 of 95

ils sont en fin de parcours

3.8.1

9 of 95

What's that mean?

10 of 95

Community Support

11 of 95

Phase 1

December 2014-August 2015

12 of 95

Thank you to our sponsors:

13 of 95

I’m going to blur Phase 1 and Phase 2

14 of 95

Atonement

ethos

15 of 95

Community

We have to do this together

16 of 95

17 of 95

Contributing

18 of 95

“All contributions are welcome: use-cases, documentation, code, patches, bug reports, feature requests, etc. You do not need to be a programmer to speak up!”

19 of 95

CLAW Calls

Wednesdays at 1PM EST

20 of 95

21 of 95

Documentation

22 of 95

I love Markdown...

...and I have this theory...

23 of 95

24 of 95

25 of 95

DevOps

DevOps

DevOps

DevOps

DevOps

26 of 95

27 of 95

vagrant up

(that’s it!)

28 of 95

29 of 95

30 of 95

31 of 95

32 of 95

Thank you Univeristy of Manitoba!

33 of 95

34 of 95

Code4Lib 2015

Portland, Oregon

35 of 95

PCDM

Fedora, Hydra, Islandora… Repository communities unite!

36 of 95

37 of 95

38 of 95

Hylandora Day

iCamp CT

39 of 95

Phase 2;

November 2015-Present

40 of 95

DevOps

Community

Community

Community

Community

41 of 95

CLAW Calls

Wednesdays at 1PM EST

42 of 95

CLAW Lessons

43 of 95

CLAW Calls

Wednesdays at 1PM EST

44 of 95

This is us.

Make the lobster happy, not sad.

45 of 95

46 of 95

47 of 95

PHP Services

48 of 95

Project Restructuring

49 of 95

Drupal 8

50 of 95

AuthN

Drupal 8; CAS, Shibboleth, OpenLDAP

51 of 95

AuthZ

WebAC

52 of 95

...nobody likes XACML

53 of 95

54 of 95

DIEGO!!!

55 of 95

Islandora 2.x

Tech Intro to Claw

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

56 of 95

What we know about current Islandora (7.x-1.7)

https://github.com/islandora/islandora

DRUPAL 7.X CMS

Islandora (MIDDLEWARE)

Fedora 3.81 (Storage and preservation)

57 of 95

Design Goals for Islandora 2.x

Utilize Fedora 4/ Drupal to its fullest.

  • Easier to use
    • Better user experience
    • Faster searching, display, and ingest
    • Expose more control of your repository through UI
  • Easier to install/configure
  • Easier to develop and contribute
  • Easier to scale
  • Community Based design.

Islandora is no longer Middleware

58 of 95

Islandora 2.x (zoom level 0)

Where is Islandora here?

59 of 95

Islandora-CLAW is a bit everywhere

(and among us)

60 of 95

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

I make use of existing tools integrating myself into each one. I’m not a layer, i play roles in multiple ones.

Multi Language

Distributed

Role Separation

Not a layer

Islandora Claw Ecosystem

61 of 95

Diagrams are good

62 of 95

Quick Facts about Islandora CLAW

(or how we achieve the Goals)

  • Makes use of Drupal CMS completely (tight and close)
  • Islandora Solution Packs? Real Drupal Modules
  • Resources Live in Drupal and in Fedora 4 (same meaning, different representations)
  • There is no “Source Master”.
    • Bi-directional Sync between Drupal and Fedora via CAMEL
  • Exposes endpoints everywhere (RESTful API)
  • It’s written in PHP(variety of frameworks), JAVA, Spring, Blueprint XML
  • It deals with data in a very Async fashion (event driven)
  • We have Microservices (Silex, PHP)
  • It’s a stack of moving pieces that depend on each other

63 of 95

Data definition @ Islandora-CLAW

Islandora generates real Drupal Content.(In the future Entities)

Islandora CRUDs Real Fedora 4 Resources

64 of 95

So we need to transform back and forth

(Welcome to the data flow)

65 of 95

Apache Camel

(Java?)

66 of 95

Don’t be scared of 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

67 of 95

Simplified Islandora-CLAW data flow

68 of 95

The immediate Future�¿microservices in CLAW?

https://github.com/Islandora-CLAW/CLAW/tree/sprint-002/services

69 of 95

A simple idea

Instead of having a Big chunk of all purpose code

We build slim, lightweight PHP Services that do a particular task, reusing code, classes or full packages

I’m a Specialist in all styles

ResourceService �I handle RDF, do some stuff, pass it to chullo

Chullo Here.� I pass messages to F4

70 of 95

A simple idea

Micro Services: These are not just classes reusable /php code. �These are services that run at an HTTP URL/PORT listening and processing what you send them.

ResourceService �I will take that HTTP POST “BUllet” for YOU

Chullo

Invoke me with that message when you are done processing( whatever you do, I don’t care)

71 of 95

Role separation: Chullo, where all started (not a service)

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

Uses EasyRDF and Guzzle to talk to Fedora 4. Has interfaces.

�Provides Classes

Islandora\Chullo

  • FedoraAPI (full api)
  • Chullo (simplified access to api)
  • TriplestoreClient (talks to triple store)

Islandora\Chullo\Uuid

  • UuidGenerator (UUID V4 and V5 generator)

Class Namespace (hu!)

Class Name

72 of 95

Simple ideas require new knowledge

ResourceService �I was built In SILEX. i can USE YOU, simple PHP PACKAGE!!

I’m not SILEX

there is More: WE built these Microservices using a PHP Framework named SILEX!

Let’s avoid reinventing the wheel and do some cool apps!

73 of 95

Silex in a few words

http://silex.sensiolabs.org/doc/usage.html

  • It’s a Micro-framework (you can build a one file app!)
  • Imagine something “like” Camel but in PHP with less stuff.
  • Makes handling HTTP requests so simple
  • It’s based on a larger framework named Symfony (DRUPAL 8 is Symfony!)

74 of 95

Silex will replace CAMEL?

You want to replace ME!

No WAY! You are better at Async. But i’m PHP. My people loves PHP

75 of 95

Conclusions

76 of 95

Benefits of this approach

  • The Real Drupal Experience
  • 3rd Party Modules(Drupal)
    • Use all that is out there as normal Drupal users do
  • Fedora 4 is better, faster, safer than Fedora 3
  • Async is good
  • Common Data modelling (standard Ontologies)
  • Simpler contributing to code
  • Less code
  • Community based

77 of 95

BACK TO NICK

78 of 95

Upgration!

How are we going to get there?

...or portmanteaus are awesome!

79 of 95

York University

Solution Packs:

Collection, Audio, Book, Compound, Large Image, Video, Web Archive

80 of 95

81 of 95

Property Mappings

82 of 95

fcrepo3->fcrepo4

Object properties

83 of 95

84 of 95

fcrepo3->fcrepo4

Datastream properties

85 of 95

86 of 95

fcrepo3->fcrepo4

RELS-EXT/RELS-INT

87 of 95

88 of 95

Islandora Ontology

89 of 95

90 of 95

91 of 95

Islandora Ontology

92 of 95

fcrepo3->fcrepo4

auditTrail

93 of 95

94 of 95

migration-utils

95 of 95

Questions/Discussion