Solrizer - DuraSpace Wiki

Download Report

Transcript Solrizer - DuraSpace Wiki

The Hydra Framework
as a Series of Diagrams
Naomi Dushay
Stanford University Libraries
April, 2012
1
High Level (Rough Conceptual)
Read
Create, Update, Delete
UI Layer:
Ruby on Rails
Hydra
Blacklight
(any) Solr Index
Solr
Blacklight for Stored Objects
Solr Index of Stored Objects
Fedora
Object Storage
Back End
2
Ruby on Rails
Rails is a Ruby gem that provides an MVC
framework for writing web applications
Views
Controllers
Models
SQL database
Views: UI presentation
Controllers: UI flow of control
Models: interface to stored data
Data storage
3
Blacklight Gem
Blacklight is a
Ruby-on-Rails gem
that provides a
web discovery
interface for a Solr
index
Views
Blacklight
Controllers
Models
Solr is external to
Blacklight, but required
(much as a SQL
database is required
for a Ruby-on-Rails
application)
Solr
SQL database
Views: UI presentation
Controllers: UI flow of control
Models: interface to stored data
Data storage
4
Your Blacklight Application
Your Rails Application
Views
Blacklight
Controllers
Models
Your Solr
Your SQL database
Your Data
5
High Level (Rough Conceptual, again)
Read
Create, Update, Delete
UI Layer:
Ruby on Rails
Hydra
Blacklight
(any) Solr Index
Solr
Blacklight Leveraged for Stored Objects
Solr Index of Stored Objects
Fedora
Object Storage
Back End
6
HydraHead Gem – part 1
Views
HydraHead is a
Ruby-on-Rails gem
that provides a
web interface for
creating, updating,
and deleting
Fedora objects.
Controllers
HydraHead
Models
Solr
Fedora
Your Data
in Fedora
7
HydraHead Gem – part 2
HydraHead utilizes
the Blacklight gem
for the UI pieces
related to discovery
(i.e. read only)
HydraHead
Views
Blacklight
Controllers
Models
Solr
SQL database
Fedora
8
Your Hydra Head/Application – part 1
Your Rails Application
HydraHead
Views
Blacklight
Controllers
Models
Your Solr
Your SQL database
Your
Fedora
Your Data
9
ActiveFedora Gem - part 1
ActiveFedora is akin to the ActiveRecord gem in a Rails application – it provides
the implementation of the logic between the models and the data storage.
Views: UI presentation
Views
Controllers: UI flow of control
Controllers
Models: which data, which behaviors
Models
ActiveRecord
SQL database
ActiveFedora
Fedora
Model Logic Implementation
Data storage
10
HydraHead Gem – part 3
Views
HydraHead utilizes the
ActiveFedora gem to
interact with Fedora
HydraHead
Controllers
Models
ActiveFedora
Fedora
11
Solrizer and Rubydora Gems
The Solrizer and Rubydora
gems allow Ruby access to the
Rest APIs for Solr and Fedora
Ruby access to Rest API
External Application
Solrizer
Rubydora
Rest API
Rest API
Solr
Fedora
12
Solrizer-Fedora Gem
Solrizer-Fedora extends the
Solrizer gem to work with
Fedora objects.
SolrizerFedora
Ruby access to Rest API
External Application
Solrizer
Rubydora
Rest API
Rest API
Solr
Fedora
13
ActiveFedora Gem – part 2
Views
Controllers
ActiveFedora utilizes Rubydora to interact
with Fedora and Solrizer-Fedora to keep
Solr in sync with Fedora.
The Solrizer-Fedora gem extends
Solrizer gem.
Solrizer
Solr
Models
ActiveFedora
SolrizerFedora
Rubydora
Fedora
14
HydraHead Gem – part 4
HydraHead requires
ActiveFedora which in
turn requires
additional Hydra
framework gems
Views
Controllers
HydraHead
Models
ActiveFedora
Solrizer
Solr
SolrizerFedora
Rubydora
Fedora
15
OM Gem
XML data
OM (Opinionated Metadata) eases
translation between raw XML and
ruby objects. OM also provides a
way to map the resulting ruby object
data into Solr.
Ruby access to Rest API
XML
OM
Solrizer
Solr
16
OM and ActiveFedora (Simplified)
Views
Fedora datastreams can have XML content
OM can be used to parse XML
datastream content and map
the content to Solr. The OM
mappings become part of the
ActiveFedora data models.
OM
Controllers
XML
datastream
content
Models
ActiveFedora
Solr
17
ActiveFedora Gem – part 2 (again)
Views
No XML content, so
no use of OM gem
Controllers
Models
ActiveFedora
Solrizer
Solr
SolrizerFedora
Rubydora
Fedora
18
Hydra Backend Gems
Views
Updates to Fedora
content must be
reflected in both
Solr and Fedora
Controllers
Models
XML
datastream
content
OM
ActiveFedora
SolrizerFedora
Solrizer
Rubydora
Solr
Fedora
19
HydraHead Gem – part 5
HydraHead is a Rubyon-Rails gem that
utilizes the Blacklight
gem to read and display
Solr documents, the
ActiveFedora gem to
express Fedora objects
in Ruby, the SolrizerFedora gem for ease of
syncing Fedora and Solr,
and other gems and
their dependencies as
needed.
HydraHead
Views
Controllers
Blacklight
Models
SQL database
Solr
ActiveFedora
SolrizerFedora
Solrizer
Rubydora
Fedora
20
Your Hydra Head/Application – part 2
Your Rails Application
HydraHead
Views
Controllers
Blacklight
Models
Your SQL database
ActiveFedora
Your Solr
Solrizer
SolrizerFedora
Rubydora
Your
Fedora
Your Data
21
Core Hydra-Framework Code
maintained by the Hydra Community
•
•
•
•
•
•
•
(Rubydora)
Solrizer
Solrizer-Fedora
OM
ActiveFedora
HydraHead
(Used, by not maintained by Hydra
Community: Blacklight, Solr, Fedora, …)
22
Additional Hydra-Framework Code
maintained by the Hydra Community
• Hydra-Jetty
• JettyWrapper
23
Jetty – Java Web Server and Servlet Container
Jetty: Java Web Server and Servlet Container
(note that Solr and Fedora are both written in java and utilize java servlets)
JettyWrapper
Hydra-Jetty
Ruby – start/stop jetty, etc.
(convenient for automated testing)
Jetty with Solr and Fedora pre-installed
24
One Possible Backend Configuration
Hydra-Jetty
Rest API
Rest API
Solr
Fedora
Solr and Fedora can be in the same web application or separate web
applications. Solr is also implemented in Ruby and other languages,
so it doesn’t need to be in a
25
Your Hydra Head/Application using Hydra-Jetty
Your Rails Application
HydraHead
Views
Controllers
Blacklight
Models
Your SQL database
ActiveFedora
Solrizer
Hydra-Jetty
Your Solr
SolrizerFedora
Rubydora
Your
Fedora
Your Data
26