pace-api.7.1.source-code.overview.html Maven / Gradle / Ivy
Show all versions of dspace-api Show documentation
The API for programming the DSpace system.
DSpace System Architecture
Briefly, DSpace consists of a three-layer architecture:
Application Layer
org.dspace.app.*
Business Logic Layer
org.dspace.*
Storage Layer
org.dspace.storage.*
Each layer is divided into subsystems. These are stored in separate packages.
Only the public API of each subsystem should be used by other subsystems.
Additionally, subsystems in the Application Layer should not use the Storage
Layer directly.
The top level of each package must contain only public classes and methods that
are part of the public API of the subsystem. This way, conservative use of
import
ensures that subsystems are only using appropriate public
APIs.
Test classes for subsystems that have automatic self-tests reside in a
test
sub-package. For example, the browse subsystem tests reside
in org.dspace.browse.test
. Such test classes must also have a name
that ends in Test.Java
, for example BrowseTest.java
.
Each of the layers and the packages that are part of them are described below.
Application Layer
Presently, the application layer consists of:
- The Web user interface
- The Open Archives Protocol for Initiative Metadata Harvesting implementation
- Item import and export tools
- The Media Filter tool, which is a batch tool that iterates through the bitstreams in DSpace, and applies filters to bitstreams of a particular format. This can be used to e.g. generate image thumbnails, and extract full-text from documents for indexing.
- The METS tools -- currently just an exporter, which exports DSpace AIPs with the metadata stored in an XML METS file. Soon a corresponding importer will be added too.
Since this and other applications are
"customers" of DSpace, they do not need to have strictly defined public APIs. Subsystems in the application layer should be sub-packages of
org.dspace.app
. Subsystems in the application layer should not
use the storage layer directly.
Business Logic Layer
This is where the main smarts of the system lie. It consists of a number of
subsystems, stored in sub-packages of org.dspace
, and some core
classes in org.dspace.core
. Sub-packages of org.dspace that are
not in org.dspace.app
or org.dspace.storage
are
business logic subsystems.
org.dspace.content
(the content management API) is probably the
most useful to applications. Other subsystems are generally only directly used
by applications providing administrative functionality.
Storage Layer
The storage layer currently consists of two subsystems: The relational
database management system interface, and the bitstore. These are in
packages org.dspace.storage.rdbms
and
org.dspace.storage.bitstore
respectively. Any new storage
subsystems should also be sub-packages of org.dspace.storage
.
More Information
More detailed architectural information for the current stable release of DSpace can be found here:
http://dspace.org/technology/system-docs/
If you're using a beta or earlier version of DSpace, you should download the 'dspace-docs' documentation package corresponding to the version you're using from the SourceForge download page: