As of Fedora 2.1, the Fedora Service Framework is being introduced to facilitate the integration of new services with the Fedora repository. The framework takes a service-oriented architecture approach to building new functionality around a Fedora repository. While the Fedora repository, itself, exposes its functionality as a set of web service interfaces, all of these interfaces belong to the Fedora web application that runs in its own Tomcat The new Fedora Service Framework allows new services to be built around the core repository - as stand-alone web applications that run independently of the Fedora repository. While Fedora repository functionality can still be extended with new modules, the intent is to keep the repository service focused on the core functions of a repository. Yet, there are many other services that are beneficial companions to a repository, such as specialized ingest services, workflow services, preservation services, and many others. These are the kinds of services that the framework is intended to support. There are two main benefits to the service framework approach: (1) it allows new functionality to be added as atomic, modular services that can interact with Fedora repositories, yet not be part of the repository, (2) it makes co-development of new services for Fedora easier since each service can be independently developed and plugged into the framework. As of Fedora 2.1, the Fedora development team has released an initial set of services (Directory Ingest and OAI Provider described below), and will continue to develop new services over the coarse of Fedora Phase 2 (2005-2007), especially services for workflow, preservation, and search. Services that are part of the framework will be packaged as part of the Fedora open-source software distribution and will be kept up to date with new versions of the core Fedora repository service. Members of the Fedora community will be collaborating on the development of services and will contributed back to the Fedora Project. Further documentation will be provided to establish guidelines on how services should be designed to effectively plug into the framework. In the mean time, developers of new services can follow the design patterns of the Directory Ingest and OAI Provider services.
The Fedora Service Framework, establishes a means for coupling new services with the core Fedora repository service. The framework allows for the creation of atomic, modular services that can interact with the Fedora repository or each other. The diagram below depicts the Fedora Service Framework as it is envision to evolve during 2005-2007. The first two services introduced with Fedora 2.1 are depicted in orange: the OAI Provider and the Directory Ingest services. During Phase 2 of the Fedora Project (2005-2007), both the Fedora development team, and the Fedora community will develop the other services to fit into the framework. The Fedora Search and Workflow services are planned for Fedora 2.2 (estimated early Q3 2006).
The Fedora Service Framework can evolve to include new services conceived of by the Fedora community. Listed below is a brief description of each service, links to specifications when available, and status.
The Fedora Service Framework provides building blocks for higher-level customized services and user applications.
As of Fedora 2.1, the Fedora Core Repository Service can now be situated within the Fedora Service Framework, where a suite of companion services can be loosely coupled with the core repository to provide additional functionality that is essential to ensuring that the repository can be well-integrated into a broader service or application environment. The Fedora repository service was developed with the vision that it would to fit into a broader service-based architecture (SOA), and it provide web services interfaces to its core functionality. The core repository service actually has several web service APIs: an interface for repository management (API-M); an interface for repository access (API-A); interface for basic repository search; and an interface for RDF-based search of the Resource Index. All of these web service interfaces are available on the Fedora repository server web application that runs in Tomcat. The repository service is built in a modular manner, so that each inner function is implemented as a java-based module. The inner modules are configurable, and they can be replaced with alternate implementations.
The Fedora repository service is the core service in the Fedora Service Framework, and was depicted in the above diagram in the center of all other services. Below, the Fedora repository service is depicted in more detail, with its inner modules exposed, and all repository interfaces. The diagram depicts the repository service from the perspective of how it maps to the Open Archival Information System (OAIS) reference model which has been approved as an ISO standard.