eSciDoc Infrastructure ArchitectureThe eSciDoc Infrastructure is mainly built out of existing open-source software packages. Main components are PostgreSQL, JBoss Application Server, and Tomcat Servlet Container. The eSciDoc Content Repository is based on Fedora (Flexible Extensible Digital Object Repository Architecture). Fedora comes with a Semantic Store (Mulgara Triplestore or MPTStore), which allows for the efficient administration of statements about objects and their relations, expressed in RDF (Resource Description Framework). Related objects form a graph, which can then be queried or used to infer new facts, based on existing RDF.
The software is implemented as a Java Enterprise Application (J2EE). It can be roughly differentiated into the Enterprise Context and a Persistence Layer. The Enterprise Context is deployed to the JBoss Application Server and the Tomcat Servlet Container. The Spring Framework provides a centralized, automated configuration and wiring of the application objects by Dependency Injection and Inversion of Control. The service layer offers web services with REST and SOAP interfaces. The Persistence Layer encompasses specialized solutions for the different types of data: an RDBMS for structured data, Fedora for unstructured data, and MPTStore for semantic data.
The Core Services Layer of the eSciDoc Infrastructure implements a set of resource handlers. Each resource handler is responsible for handling of a specific type of a resource. The most important resources are Items, Containers, and Contexts. Items are basic objects that represent content entities within the repository, e.g. articles, images, or videos. Containers are aggregation objects that allow for arbitrary grouping of items and other containers. Whereas the general layout of Item and Container resources remains the same, they can be further specialized by content types. Content types impose constraints on objects (e.g. allowed metadata schemas, required metadata, allowed file types and mime types for the binary content and specify a set of content type specific properties). Contexts represent units of administration for a set of Items and Containers. They are associated with an institutional body responsible for the management of the content.