2019-2020 Technical Roadmap
Excerpt Include |
---|
| 2019 - 2020 Technical Priorities |
---|
| 2019 - 2020 Technical Priorities |
---|
nopanel | true |
---|
|
2017-2018 Technical Roadmap
Expand |
---|
This priority is to clearly define the core services that Fedora promises as a standards-based RESTful API, accompany this API with any necessary domain-specific ontologies, and provide a compatibility test suite. Outstanding issues can be found on GitHub. Align the current Fedora implementation with the API specificationOnce the API specification is complete, the current Fedora implementation will need to be updated to fully align with the specification. This work will result in a 5.x Fedora release based on our move to semantic versioning. Support alternate Fedora implementationsOne of the goals of the API specification is to allow the community to experiment with different back-end Fedora implementations to address different use cases. We will support and encourage community members as they experiment along these lines. |
2016-2017 Technical Roadmap
Expand |
---|
Excerpt Include |
---|
| 2016 - 2017 Technical Priorities |
---|
| 2016 - 2017 Technical Priorities |
---|
nopanel | true |
---|
|
|
2015-2016 Technical Roadmap
Expand |
---|
Excerpt Include |
---|
| 2015 - 2016 Technical Priorities |
---|
| 2015 - 2016 Technical Priorities |
---|
nopanel | true |
---|
|
|
Previous Technical Roadmap Items
Candidate Features for Fedora 4.x
Section |
---|
Column |
---|
width | 32% |
---|
Advanced Tables - Table Plus |
---|
| Priority 1
Currently Supported Features | Design | Core | Non-core |
---|
|
| Alpha | Beta |
---|
3 to 4 Upgrade | | | x | | | AuthN/Z | design | | x | | b1 | | 4.0 | Use Cases |
---|
AuthN/Z | design |
| x | ![(tick)](/s/-141ylv/9012/1phy4ty/_/images/icons/emoticons/check.svg) |
Expand |
---|
title | Authorization Use Cases |
---|
| Content by Label |
---|
showLabels | false |
---|
max | 20 |
---|
showSpace | false |
---|
cql | label = "uc-authz" |
---|
labels | uc-authz |
---|
|
|
| Backup |
| Asynchronous storage API | x | | | b2 | Batch Operations | | x | | x | | Clustering | | x | | x | | Policy-driven Storage | design | x | | x | b1,2 | Relationships API | | x | | | | | Content by Label |
---|
showLabels | false |
---|
showSpace | false |
---|
cql | label = "uc-backup" |
---|
labels | uc-backup |
---|
|
|
| Clustering |
| x |
| ![(warning)](/s/-141ylv/9012/1phy4ty/_/images/icons/emoticons/warning.svg) | - Consistent deployment
- REST-API support against master node
| Content Modeling - Structural |
| x |
| ![(warning)](/s/-141ylv/9012/1phy4ty/_/images/icons/emoticons/warning.svg) |
Expand |
---|
title | Content Modeling Use Cases |
---|
| Content by Label |
---|
showLabels | false |
---|
showSpace | false |
---|
cql | label = "uc-content-modeling" |
---|
labels | uc-content-modeling |
---|
|
|
| Managed External Datastreams |
|
| x | ![(tick)](/s/-141ylv/9012/1phy4ty/_/images/icons/emoticons/check.svg) |
Expand |
---|
title | External Storage Use Cases |
---|
| Content by Label |
---|
showLabels | false |
---|
showSpace | false |
---|
cql | label = "uc-storage-external" |
---|
labels | uc-storage-external |
---|
|
|
|
|
Self-healing Storage | | | x | x | | | b2 | |
| ![(tick)](/s/-141ylv/9012/1phy4ty/_/images/icons/emoticons/check.svg) |
Expand |
---|
title | Large Files Use Cases |
---|
| Content by Label |
---|
showLabels | false |
---|
showSpace | false |
---|
cql | label = "uc-large-files" |
---|
labels | uc-large-files |
---|
|
|
| Search | design |
| x | ![(tick)](/s/-141ylv/9012/1phy4ty/_/images/icons/emoticons/check.svg) |
Expand |
---|
| Content by Label |
---|
showLabels | false |
---|
showSpace | false |
---|
cql | label = "uc-search" |
---|
labels | uc-search |
---|
|
|
| Transactions |
| x |
| ![(tick)](/s/-141ylv/9012/1phy4ty/_/images/icons/emoticons/check.svg) |
Expand |
---|
title | Transactions Use Cases |
---|
| Content by Label |
---|
showLabels | false |
---|
showSpace | false |
---|
cql | label = "uc-txns" |
---|
labels | uc-txns |
---|
|
|
| Triplestore | design |
| x | ![(tick)](/s/-141ylv/9012/1phy4ty/_/images/icons/emoticons/check.svg) |
Expand |
---|
title | Triplestore Use Cases |
---|
| Content by Label |
---|
showLabels | false |
---|
showSpace | false |
---|
cql | label = "uc-triplestore" |
---|
labels | uc-triplestore |
---|
|
|
| Versioning |
| x |
| ![(tick)](/s/-141ylv/9012/1phy4ty/_/images/icons/emoticons/check.svg) |
Expand |
---|
title | Versioning Use Cases |
---|
| Content by Label |
---|
showLabels | false |
---|
showSpace | false |
---|
cql | label = "uc-versioning" |
---|
labels | uc-versioning |
---|
|
|
| Non-Functional: Easy Deployment |
|
|
| ![(tick)](/s/-141ylv/9012/1phy4ty/_/images/icons/emoticons/check.svg) |
| Non-Functional: Performance - Single-node |
|
|
| ![(warning)](/s/-141ylv/9012/1phy4ty/_/images/icons/emoticons/warning.svg) |
Expand |
---|
title | Performance Use Cases |
---|
| Content by Label |
---|
showLabels | false |
---|
showSpace | false |
---|
cql | label = "uc-performance" |
---|
labels | uc-performance |
---|
|
|
|
|
|
|
|
|
| Post-4.0 Priority 1 |
---|
|
Transactions | | x | | x | | Triplestore | design | | x | | b2 | Versioning | | x | | | | | | | | | | Priority 2 Features | Design | Core | Non-core |
---|
|
Alpha | | Asynchronous storage Implementation | | x | | | | CMIS | | | x | x | | Content Modelling API | | x | | | | Disseminator-like Functionality | | | x | | | Human-readable Filesystem Storage | | | x | | | Managed External Datastreams | | | x | | | Metrics | | x | | x | | Multi-tenancy | | x | | | | OAI-PMH | design | | x | | | ORCID Support | | | x | | | Search | | | x | | | WebDAV | | | x | x | |
|
---|
|
4.0 Beta (July - December 2013)
Beta must address fundamental set of requirements, including:
- Authorization
- Policy-driven storage and asynchronous storage systems
- Durability
- Performance for large scale ingest
- Auditing
- On-the-fly configuration
During this phase, the project team will also work closely with several early adopter institutions to ensure Fedora 4 supports their needs.
At the end of this phase, the project team should deliver a stable, ready-for-testing Fedora 4 "beta". The beta should implement all core Fedora principles, a near-final REST API, support Hydra and Islandora use cases, support the "80%" use case for Fedora, and have a clear candidate migration path from Fedora 3.
At DLF 2013, the software should be ready for institutions to begin evaluating the software as a replacement for a Fedora 3 install, and provide meaningful feedback about enhancements, consistency, and deployment woes for the next phase of the project.
4.0 Alpha (January - July 2013)
Select a platform for Fedora 4 development.
Define Success Criteria for Fedora 4, particularly:
- Robust, modular, minimal Core Fedora.
- Considers the digital preservation/durability interest and balances that against other interests, such as scalability.
- Flexible, Extensible, Durable Architecture is the foundation.
- Able to describe to a CIO why Fedora needs to be a foundational component of the enterprise system.
- Preliminary architectural ideas appropriate to the architectural roadmap for 3.x+4 by the end of June
Develop and validate features around Fedora 3.x pain points, including:
Horizontal scale-out
High Availability
Web-friendly APIs
At the end of this phase, the project team should deliver an alpha-level prototype of Fedora 4. This prototype should demonstrate the core Fedora 4 principles, API design, and support for the hybrid use case. In addition, Hydra and Islandora should have functional builds that work against the Fedora 4 API.
At Open Repositories 2013, the software should be in a state that external developers can successfully install the software and provide meaningful feedback about additional user stories and technical requirements for the next phase of the project.
Fedora Futures Requirements Gathering (through December 2012)
Many members of the Fedora community- - both developers and stakeholders - -have expressed a desire to refresh the product's vision, and to produce an evolutionary short- and mid-term development roadmap for the repository. While Fedora's conceptual architecture is proven and still sound, the underlying technology needs to become more responsive to a wide range of current and emerging requirements, more performant and scalable, and capable of advancing in a more agile development framework. The feeling is that this work would require considerably more effort and a different approach than is possible using our current model of volunteer developer contributions led and coordinated by the DuraSpace organization.
At OR12, a group of Fedora stakeholders self-organized to plan some post-conference, informal discussions about "Fedora Futures". That group, encompassing representation from some large institutions, major projects like Hydra, Islandora, APTrust, and eSciDoc, plus DuraSpace, met in September 2013 for an initial conversation to explore these topics. The outcome was very positive, the group found a lot of common ground and interest on possible approaches to improving Fedora.
Initial use cases and user stories that we want to ensure Fedora 4 will be prepared to address were collected at Use Cases. The Phase I team synthesized the collected use cases into a series of user stories for alpha development.
...
4.0 | Use Cases |
---|
3 to 4 Upgrade | design |
| x |
|
Expand |
---|
title | F3 to F4 Upgrade Use Cases |
---|
| Content by Label |
---|
showLabels | false |
---|
showSpace | false |
---|
cql | label = "uc-3to4-upgrade" |
---|
labels | uc-3to4-upgrade |
---|
|
|
| Audit Service | design | x |
|
|
Expand |
---|
title | Audit Service Use Cases |
---|
| Content by Label |
---|
showLabels | false |
---|
showSpace | false |
---|
cql | label = "uc-audit" |
---|
labels | uc-audit |
---|
|
|
| Managed External Datastreams - Indexing |
|
| x |
|
| Asynchronous storage API | design | x |
|
|
Expand |
---|
title | Async Storage Use Cases |
---|
| Content by Label |
---|
showLabels | false |
---|
showSpace | false |
---|
cql | label = "uc-storage-async" |
---|
labels | uc-storage-async |
---|
| |
| Asynchronous storage Implementation |
| x |
|
|
Expand |
---|
title | Asynchronous Storage Use Cases |
---|
| Content by Label |
---|
showLabels | false |
---|
showSpace | false |
---|
cql | label = "uc-storage-async" |
---|
labels | uc-storage-async |
---|
|
|
| LDP-Paging |
| x |
|
|
| Web Access Control |
|
| x |
|
| API Partitioning |
| x |
|
|
|
|
|
|
|
|
| Post-4.0 Priority 2 Features | Design | Core | Non-core | 4.0 |
|
---|
Batch Operations |
| x |
|
|
Expand |
---|
| Content by Label |
---|
showLabels | false |
---|
showSpace | false |
---|
cql | label = "uc-batch" |
---|
labels | uc-batch |
---|
| |
| CMIS |
|
| x |
|
| Content Modeling - Services and Validation |
|
|
|
|
Expand |
---|
title | Content Modeling (extended) Use Cases |
---|
| Content by Label |
---|
showLabels | false |
---|
showSpace | false |
---|
cql | label = "uc-content-modeling-ext" |
---|
labels | uc-content-modeling-ext |
---|
|
|
| Disseminator-like Functionality |
|
| x |
|
Expand |
---|
title | Object Services Use Cases |
---|
| Content by Label |
---|
showLabels | false |
---|
showSpace | false |
---|
cql | label = "uc-object-services" |
---|
labels | uc-object-services |
---|
|
|
| Human-readable Filesystem Storage |
|
| x |
|
| Metrics |
| x |
|
|
Expand |
---|
| Content by Label |
---|
showLabels | false |
---|
showSpace | false |
---|
cql | label = "uc-audit" |
---|
labels | uc-audit |
---|
|
|
| Multi-tenancy |
| x |
|
|
Expand |
---|
title | Multi-tenancy Use Cases |
---|
| Content by Label |
---|
showLabels | false |
---|
showSpace | false |
---|
cql | label = "uc-multi-tenancy" |
---|
labels | uc-multi-tenancy |
---|
|
|
| OAI-PMH | design |
| x |
|
| ORCID Support |
|
| x |
|
| Policy-driven Storage | design | x |
|
|
Expand |
---|
title | Policy-Driven Storage Use Cases |
---|
| Content by Label |
---|
showLabels | false |
---|
showSpace | false |
---|
cql | label = "uc-storage-policy" |
---|
labels | uc-storage-policy |
---|
|
|
| Relationships API |
| x |
|
|
| Self-healing Storage |
|
| x |
|
| WebDAV |
|
| x |
|
| Non-Functional: Performance - Clustered |
|
|
|
|
Expand |
---|
title | Clustering Performance Use Cases |
---|
| Content by Label |
---|
showLabels | false |
---|
showSpace | false |
---|
cql | label = "uc-clustering" |
---|
labels | uc-clustering |
---|
| |
|
|
|
|
|
|
| Previously Un-prioritized Features | Design | Core | Non-core | 4.0 | Use Cases |
---|
Admin UI |
|
| x | ![(tick)](/s/-141ylv/9012/1phy4ty/_/images/icons/emoticons/check.svg) |
Expand |
---|
| Content by Label |
---|
showLabels | false |
---|
showSpace | false |
---|
cql | label = "uc-admin-ui" |
---|
labels | uc-admin-ui |
---|
|
|
| Content API |
| x |
| ![(tick)](/s/-141ylv/9012/1phy4ty/_/images/icons/emoticons/check.svg) |
Expand |
---|
title | Content API Use Cases |
---|
| Content by Label |
---|
showLabels | false |
---|
showSpace | false |
---|
cql | label = "uc-content-api" |
---|
labels | uc-content-api |
---|
|
|
| Identifiers |
| x |
| ![(tick)](/s/-141ylv/9012/1phy4ty/_/images/icons/emoticons/check.svg) |
Expand |
---|
title | Identifier Use Cases |
---|
| Content by Label |
---|
showLabels | false |
---|
showSpace | false |
---|
cql | label = "uc-identifiers" |
---|
labels | uc-identifiers |
---|
|
|
| Large-Scale Content |
| x |
| ![(warning)](/s/-141ylv/9012/1phy4ty/_/images/icons/emoticons/warning.svg) |
Expand |
---|
title | Large-Scale Content Use Cases |
---|
| Content by Label |
---|
showLabels | false |
---|
showSpace | false |
---|
cql | label = "uc-scale-content" |
---|
labels | uc-scale-content |
---|
|
|
|
|
|
|
|