DSpaceシステムは3層構造でできており、各層は多くのコンポーネントで構成されています。
DSpaceシステムのアーキテクチャ
ストレージ層は、メタデータとコンテンツの物理的ストレージを担当します。 ビジネスロジック層は、アーカイブのコンテンツ、アーカイブのユーザ(e-person)、権限付与、ワークフローの管理を担当します。 アプリケーション層は、DSpaceの外部にある世界と対話するコンポーネント、たとえば、Webユーザインターフェースやオープンアーカイブイニシアティブ・メタデータハーベスティングプロトコルサービスなどを持ちます。
各層はその下位の層のみを呼び出します。たとえば、アプリケーション層が直接ストレージ層を使用することはありません。 ストレージ層とビジネスロジック層の各コンポーネントは定義済みの公開APIを持っています。 これらのコンポーネントのAPIを総称して、(ストレージ層の場合は)ストレージAPI、(ビジネスロジック層の場合は)DSpace公開APIと呼んでいます。 これらのAPIはJavaのクラス、オブジェクト、メソッドに組み込まれています。
各層はトラステッドであることに注意することが重要です。 権限付与アクションに関するロジックはビジネスロジック層にありますが、e-personを正しく安全に認証することに関しては、システムはアプリケーション層の個々のアプリケーションを信頼しています。 「悪意のある」あるいは安全でないアプリケーションが公開APIを直接呼び出すことを許可されたら、システムの任意のe-personになりすましてアクションを実行するのはきわめて容易なことでしょう。
この設計を選んだ理由は、ユーザ認証の方法がアプリケーションによりまったく異なっており、ロジックとその責任をアプリケーションに任せた方が合理的であると考えたからです。
ソースコードはこの3層アーキテクチャに完全に合致するように編成されています。
また、コンポーネントの公開APIに存在するメソッドだけに、アクセスレベルpublic
が設定されています。
これは、ソースコードがアーキテクチャに適合していることをJavaコンパイラが保証することを意味しています。
パッケージ | 対応するコンポーネントが含まれる層 |
---|---|
org.dspace.app |
アプリケーション層 |
org.dspace |
ビジネスロジック層(storage と app を除く) |
org.dspace.storage |
ストレージ層 |
ストレージ層とビジネスロジック層のAPIはJavadocスタイルのコメントを使って完全に記述されています。 HTML版のAPIは、ソースディレクトリで次のコマンドを実行して作成します。
ant public_api
各パッケージの説明書には、通常、パッケージの概要と使用例が含まれています。 パッケージの説明書に書かれている内容をここでは繰り返しませんので、この説明書とJavadoc APIを併用してください。
各層についてはそれぞれページを分けて説明します。