Transcript
Page 1: Curation Micro-Services “It’s a Series of Tubes” Curation Micro-Services “It’s a Series of Tubes”

UC3 M e r r i t t

Curation Micro-Services“It’s a Series of Tubes”

Curation Micro-Services“It’s a Series of Tubes”

Page 2: Curation Micro-Services “It’s a Series of Tubes” Curation Micro-Services “It’s a Series of Tubes”

UC3 M e r r i t t

The Unix philosophy

“Make each program do one thing well”

“To do a new job, build afresh rather than complicate old programs by adding new features”

“Expect the output of every program to become the input to another, as yet unknown, program”

“Design and build software … to be tried early”

“Don't hesitate to throw away the clumsy parts and rebuild them”

— D. L. McIlroy et al., “Unix time-sharing system forward,” Bell System Technical Journal 57:6, part 2 (1978): 1902

Page 3: Curation Micro-Services “It’s a Series of Tubes” Curation Micro-Services “It’s a Series of Tubes”

UC3 M e r r i t t

The micro-services “philosophy”

http://www.flickr.com/photos/elsie/8229790/CC http://www.flickr.com/photos/oskay/265899811/CC

Page 4: Curation Micro-Services “It’s a Series of Tubes” Curation Micro-Services “It’s a Series of Tubes”

UC3 M e r r i t t

Curation micro-servicesMetaphors Assumptions Principles Preferences Practices

Pipeline Safety through redundancy Modularity The small and simple over

the large and complexFocus on outcomes, not means

Lego bricks Meaning through context Granularity The minimally sufficient

over the feature ladenComplexity through composition, not addition

Utility through service Orthogonality The configurable over the

prescribedPolicy neutral, platform and protocol independent

Value through use (and reuse) Emergence The proven over the

(merely) novelApproach sufficiency through incrementally necessary steps

Stewardship is a relay Evolution Early prototyping, frequent

refactoring

Parsimony Code to interfaces

Page 5: Curation Micro-Services “It’s a Series of Tubes” Curation Micro-Services “It’s a Series of Tubes”

UC3 M e r r i t t

Curation micro-servicesMode Focus Value Service Valence Visibility

Curation

ValueAccretion Annotation

UI / Access control / M

essage queuing

Interoperation

User-facing

Visibility Notification

Utility

Accessibility Access

Application

Derivation Transformation

Selectivity Search

Actionability Index

Stewardship Ingest

Preservation

ContextEpistemology Characterization

Interpretation

Provider-facing

Ontology Inventory

State

Reliability Replication

ProtectionFixity Fixity

Stability Storage

Identity Identity

Page 6: Curation Micro-Services “It’s a Series of Tubes” Curation Micro-Services “It’s a Series of Tubes”

UC3 M e r r i t t

Design goals

Principle of least surprise

Multiple interface modalities– RESTful HTTP– Command line– Procedural (Java, Perl, Ruby, …)

Linked data

Stable URL references

The file system is the database

http://example-store/

State or content

Storage nodeObjectVersionFile

default/1234/3/xyzstate/

Storage service

Page 7: Curation Micro-Services “It’s a Series of Tubes” Curation Micro-Services “It’s a Series of Tubes”

UC3 M e r r i t t

“You say micro, I say macro…”

AccessANVLARKBagItCANCheckmDflatERCEZIDGhOSTIngestInventoryLockItN2TNamasteNoidPairtreeReDDRUUStorage

AccessANVLARK

bagit.pl BagItCANcheckm.pl Checkm

DflatERC

EZIDGhOSTIngestInventory

LockItN2T

namaste.pl NamasteNoid

PairtreeReDD

RUUStorage

Service Tool Convention

Page 8: Curation Micro-Services “It’s a Series of Tubes” Curation Micro-Services “It’s a Series of Tubes”

UC3 M e r r i t t

Development roadmap

First wave Second wave Third wave Fourth wave Fifth wave Sixth wave

Identity Inventory Index Search Notification Annotation

Storage Ingest / Access Fixity Replication Characterization Transformation

IDm / Authn / Authz Metadata standards

Object / collection modeling Semantic interoperability

Policy / business model development

Page 9: Curation Micro-Services “It’s a Series of Tubes” Curation Micro-Services “It’s a Series of Tubes”

UC3 M e r r i t t

Ingest process flow

Submitting user agent

Submitting user agent IngestIngest

InventoryInventory

StorageStorage

NodeNode

NodeNode

NodeNode

IdentityIdentity

Submit

Create identifier

Identifier

Add version

Get version metadata

Version metadata

Version metadata

Notification

Notification

Version metadata

Get version metadata

Add version

Page 10: Curation Micro-Services “It’s a Series of Tubes” Curation Micro-Services “It’s a Series of Tubes”

UC3 M e r r i t t

Ingest implementation

Submitting user agent

Submitting user agent

SubmitterSubmitter ConsumerConsumer IngesterIngester StorageStorageQueue

HTML form

ServletImplicitly multi-threaded

ServletImplicitly multi-threaded

DæmonExplicitly multi-threaded

Zookeeper dæmon

Job metadata

Job payload

Submission notification

Ingest notification

Batch or single object

Page 11: Curation Micro-Services “It’s a Series of Tubes” Curation Micro-Services “It’s a Series of Tubes”

UC3 M e r r i t t

Questions?

silverpipes.jog / firstpresmacomb.org

Page 12: Curation Micro-Services “It’s a Series of Tubes” Curation Micro-Services “It’s a Series of Tubes”

UC3 M e r r i t t

More information

UC Curation Center (UC3)http://www.cdlib.org/uc3

Micro-service specificationshttps://confluence.ucop.edu/display/Curation

Digital curation grouphttp://groups.google.com/group/digital-curation

UC3Stephen Abrams Erik Hetzner Margaret Low Mark Reyes

Perry WillettPatricia Cruse Greg Janée David Loy Tracy SenecaScott Fisher John Kunze Isaac Rabinovitch Marisa Strong


Recommended