Fedora Commons Technology Roadmap V0.9 VisionOverviewFedora Commons was incorporated in May 2007 and startup funding from the Gordon and Betty Moore Foundation was granted in July 2007. Since that time, all business functions have been created and the new organization has been staffed. Fedora Commons has been granted federal and New York status 501(c)3 status. The Fedora software was developed as a joint project of Cornell University and the University of Virginia funded by the Mellon Foundation starting in 2001. The architecture resulted from the pioneering work of Sandy Payette and Carl Lagoze later joined by Thornton Staples and Rosser Wayland. With over ten releases of the software and having developed world-wide adoption, the need to create an organization to foster and develop the Fedora and its related technologies resulted in the formation of Fedora Commons. This document provides a roadmap for the development of Fedora Commons' technologies. It is the first such document published and the beginning of a community process for governing technology development in Fedora Commons. The roadmap summarizes the strategic vision of Fedora Commons that guides development, documents the themes and priorities of our community summarizing the needs we will address and provides a plan for the software releases we hope will enable those who adopt our technology. Our GoalsIt is now clear that much of the basis of our intellectual, organizational, scientific and cultural heritage is increasingly in digital form and can only be fully utilized in digital form. Our mission is to facilitate organizations and institutions whose own missions depend on technologies and techniques to create, manage, publish, share and preserve the world's information. Unless these organizations and institutions can sustain the world's information, provide durable access and the means to interconnect related information, regardless of the immediate economic value of the information, much of our heritage is at risk and our ability to perform important scientific and humanities research maybe greatly reduced.
We believe that a holistic approach to understanding the needs of our community and providing a sustainable open community, combined with open standards and open source software, is likely to provide the best platform for long term viability of the world's information and immediate utility for its use. This does not necessarily mean open access to all information since the rights of organizations, institutions and individuals must be respected. However, there must be no proprietary technological barrier that prevents accomplishing our mission and the missions of our community. Additionally, content owners must not be expected to yield their rights simply to use software or practices we provide. While we are a non-profit corporation, however, we believe that constructive engagement with profit making organizations is necessary to reach our goals. While the approaches described above are more often associated with larger systems, we must also ensure that the barrier to entry is low so that organizations with limited resources are served. One approach we expect to use is pre-integrated solution bundles that provide reasonable utility without substantial development. Solution bundles may be used as-is or be customized within the capabilities of the organization. It is interesting when a natural synergy forms between the needs of a community and emerging technology.
Roadmap ProcessThe Fedora Commons Technology Roadmap combines a description of the requirements we plan to support and the release plans for our software development projects. This first generation roadmap was prepared as a result of the first Fedora Architecture Summit held in April 2007, the formation of the Fedora Commons organization through the Moore Foundation grant, and a series of meetings held with our community including the Mellon Foundation and a number of the projects it funds. We are developing a transparent community process for authoring future versions of the roadmap, so this roadmap should be considered a living document whose next version will be prepared by the new process.
Over time the activities of Fedora Commons will grow but these activities must be prioritized by considerations of the scope in which Fedora Commons can be successful and the sustainability of the code base. The scale of our efforts is profoundly dependent on having a supportive community ecosystem contributing to the work. Themes and PrioritiesIntroductionIn this section we capture the needs of our community that Fedora Commons will address. These needs are expressed as a set of high level requirements found in the systems which members or organizations in our community are building or intend to build. These system requirements are captured from descriptions of our community's applications, scenarios of use (also called use cases) and experience with their existing systems, combined with imagination of innovations which we can enable. We have collected these requirements into "Themes" as an aid in understanding related sets of requirements. Themes provide a way to classify our community's needs, and may include both specific functionality and general characteristics like performance, scaling and robustness.
Active Themes
Persistent and Pervasive Themes
Deferred Themes
Pending Themes
Release PlansProjectsFedora Commons' software development has been divided into multiple projects, each producing core components or services. We are moving in a direction of Fedora Commons being the home for a set of inter-related open source software projects that produce components or software libraries that fit nicely into solution bundles or for integration into larger information systems. Software projects under the Fedora Commons umbrella must develop components or software libraries for use cases that are consistent with the Fedora Commons mission. Unlike Apache, which has many projects targeted at many different purposes, all Fedora Commons projects are synergistic and are intended to fit together. However, separate projects provide for better management and tracking. Fedora Commons uses software engineering methodologies and appropriate community governance mechanisms to help ensure that the components and libraries may be easily integrated. This is an evolving process as the organization and its software engineering methodologies matures. Fedora Repository ProjectThis project is the traditional Fedora distribution which includes the Fedora Repository service and several closely related components and libraries. This software has proven to be an attractive open-source option for organizations building service-oriented platforms for scholarly communication, e-research, advanced digital libraries, and more. From the Web perspective, the Fedora repository service has been shown to be an effective underpinning for Web applications (including traditional Web applications, Web 2.0 style applications, and increasing Semantic Web style applications). Over time this project will be divided into smaller projects to improve integration options, simplify feature development and facilitate management flexibility. The Fedora Repository service is a core component of future Fedora Commons' software development. The new Fedora 3.0 is currently in Beta release with production scheduled for April 2008. The current production release is Version 2.2.1. Fedora 2 will be maintained at least through January 2009 since there are a considerable number of organizations that use Fedora 2 as the basis for their production systems. There are no new features planned for Fedora 2 and development will be confined to defect repairs. Topaz ProjectBased loosely on the ORM (Object to Relational Mapping) family of software, Topaz is a powerful object to triple persistence and query service. It has its own software codebase (http://gandalf.topazproject.org) and integrates with both the Fedora Repository service and the Mulgara RDF Database (semantic triple-store). Major re-usable software components of Topaz include the OTM - Object Triple Mapping and OQL - Object Query Language. The Topaz Project is working with the Fedora Repository Project on re-architecture efforts that benefit both projects and bring them closer together. One result of this work in the past 6 months is the new Akubra Project, described next. Akubra ProjectThe Akubra Project is a new effort developed jointly by the Fedora and Topaz project teams as the first area of joint architecture work. The goal of Akubra is to provide a pluggable storage component that supports transactions on common file systems plus the ability to support multiple customized storage options at the same time. Akubra was a result of the architecture analysis by the Fedora and Topaz developers that concluded that the best opportunity for moving forward on joint architecture was to focus on building open source components to facilitate better integration of the low-level storage of files/bitstreams/blobs, and pluggability of heterogeneous underlying storage systems. We plan to integrate the new Akubra software with both the Topaz OTM and the Fedora Repository service. The primary intent is to create better abstraction and separation of concerns between file/bitstream/blob storage, and the services that Topaz and Fedora provides over them. Once this is done, there will be more flexibility in terms of how Topaz and Fedora can evolve architecturally. Mulgara ProjectMulgara (http://www.mulgara.org) is one of the premier RDF databases (semantic triple-stores) available in open-source and a key component of the Fedora Repository service and Topaz OTM. Fedora Commons has directly hired one of the lead architects of Mulgara to continue advancing the Mulgara to meeting the needs of Fedora Commons' projects. Fedora Commons and Topaz are hosting the Mulgara project resources (i.e., code repository, collaboration tools). Practical introduction of semantic technologies is important to realizing the full potential of the Fedora Commons mission and ensuring that a production-ready, supported RDF database (triple-store) is available as free, open-source software is a required component for many applications we support. Fedora Middleware ProjectThis project is funded by a grant to Cornell University from the Andrew W. Mellon Foundation. The goal of this work is to provide an improved Fedora Repository service and to enable new service integrations in accordance with the principles of Service Oriented Architecture (SOA). This work is motivated by use cases that suggest new models of scientific and scholarly communication. The Fedora Middleware Project will demonstrate reference integrations of middleware products provided in open source which are suitable for use in solutions that include services supplied by Fedora software. Middleware products for consideration and use include messaging products such as JMS providers, Enterprise Service Bus products, Choreography Engines, Business Rules Engines, Workflow/Business Process Execution Engines and Distributed Transaction Managers. No middleware products will be built as part of this project though a select group of best-of-breed integrations will be demonstrated. Both simple, lightweight approaches and enterprise-level approaches will be included as part the project. Also, approaches to management of business/mission semantics, message formats and governance issues will be considered. Summary Release PlanThe summary release plan provides a table for each project giving a high level listing of features and the timeline for their availability. Projects are identified by the codes described in the Legend table below. Codes identify the actions for which each project is responsible: the project developing (creating) the software and projects integrating (using) the software. Usually one project will be responsible for developing the software while many projects will integrate it. These codes help clearly identify who is responsible for the work (and who gets credit for the accomplishment). Projects integrating the software play an important role in the development process by collaborating on requirements, design, critical review, lessons-learned and skill sharing. Sometimes developers must collaborate in order to create a feature resulting in development responsibility being shared between projects. However, we hope that good modularity will minimize this.
It is important to realize that Fedora Commons is a community. We have included the code "O" to mean other independent open source projects. We currently integrate and depend on the work of many open-source developers who are not formally part of Fedora Commons at this time. It is yet to be determined how their work will be incorporated or the degree in which we will collaborate with other independent projects. Regardless, we recognize the Fedora Commons cannot succeed without their works and that having a single column in the tables cannot capture the richness of their contributions. We expect this will be a fertile ground for expansion in future roadmap versions. Fedora Repository
Topaz
Akubra
Mulgara
Fedora Middleware
|