1 of 16

Fedora Fourward

2 of 16

Perennial Goals

No bugs

Excellent performance

Excellent scalability

Trivial installation

Pluggable modules

Runtime configurability ...

3 of 16

Strategic Goals

  • Standards-Based API

  • Interoperability

  • Portability of data

4 of 16

Standards-based RESTful API

Unpacked

  • Defining Fedora by its RESTful services
  • Aligning those services with standards
  • Specifying RESTful services
  • Creating technology compatibility kit (TCK)
  • Separating service specification from server-side implementation

5 of 16

Initial API State

HTTP

F4

REST API

(CRUD, Fixity, AuthZ, Atomicity, Versions)

Fedora 4

Implementation

6 of 16

Partition API

HTTP

Fedora 4

Implementation

F4

REST API

(CRUD)

F4

REST API

(Fixity)

F4

REST API

(AuthZ)

F4

REST API

(Atomicity)

F4

REST API

(Versions)

7 of 16

Adopt Standards

HTTP

Fedora 4

Implementation

LDP

REST API

(CRUD)

F4

REST API

(Fixity)

WebAC

REST API

(AuthZ)

F4

REST API

(Atomicity)

Memento

REST API

(Versions)

8 of 16

Specify APIs

HTTP

Fedora 4

Implementation

Core

Ontology

Core

TCK

Core

Ontology

Core

TCK

LDP

REST API

(CRUD)

F4

REST API

(Fixity)

WebAC

REST API

(AuthZ)

F4

REST API

(Atomicity)

Memento

REST API

(Versions)

9 of 16

Decouple Impl / API

HTTP

Fedora 4

Implementation

Version

Independently

Version

Independently

Core

Ontology

Core

TCK

Core

Ontology

Core

TCK

LDP

REST API

(CRUD)

F4

REST API

(Fixity)

WebAC

REST API

(AuthZ)

F4

REST API

(Atomicity)

Memento

REST API

(Versions)

10 of 16

Leverage Tooling

HTTP

Fedora 4

Implementation

Version

Independently

Version

Independently

LDP

Implementation

Memento

Implementation

Core

Ontology

Core

TCK

Core

Ontology

Core

TCK

LDP

REST API

(CRUD)

F4

REST API

(Fixity)

WebAC

REST API

(AuthZ)

F4

REST API

(Atomicity)

Memento

REST API

(Versions)

11 of 16

Standards-based RESTful API

Benefits

Coupled to standards (not Fedora-isms)

Web-community best practices

Client-side tooling

Server-side flexibility

12 of 16

Interoperability

Unpacked

  • Across Fedora application stacks
  • Across the Web
  • Of ingest formats
  • Of export formats

13 of 16

Interoperability

Benefits

Community-wide

  • Modeling
  • Tooling
  • Planning

Easy in / Easy out

14 of 16

Portability of Data

Unpacked

  • Software comes and goes
  • Data must move through time

15 of 16

Portability of Data

Benefits

Fedora version independence

Repository system independence

Preservation strategy

16 of 16

Reflections?