開発ブログはじめました

はじめましてENUの永島です。

せっかくオープンソースで開発することにしたので、ソースコード以外も色々とオープンにして行こうということで開発ブログを始めました。

OpenEarmasって何?という人も多いと思いますので、簡単に説明をしますと「学術情報リポジトリ用のソフトウェア」です。 学術情報リポジトリというのは「大学等の研究機関が論文をアーカイブして公開するためのソフトウェア」です。

去年まではクローズドなアプリとして販売していたのですが、今年オープンソース版を作成して公開しました。

クローズド版とオープンソース版はプログラム的には開発言語から違っている完全に別物なのですが、プログラムだけではなくコンセプトも異なります。

Earmas(クローズド)

  • 開発言語はJava
  • ポータビリティーを高く
  • データベースを使わずデータはファイルで管理
  • 機能追加しやすく

Javaさえインストールされていれば基本的に動く」という事を前提に作られています。全てのデータがファイルベースで管理されているため、システムの移動やコピーが簡単でバックアップも普通のファイルコピーで行うことができます。また、共同リポジトリや資料等のコレクションデータベースを立ち上げる時などに、システムをディレクトリごとコピーをして設定を変更するだけで新しいリポジトリが作れます。

その反面、設定もファイルベースで行う必要があるため慣れるまでは大変で、ファイルの対しての処理が多く大量のデータの処理や表示は遅いためキャッシュが必須。要望に合わせて後から次々と機能追加を行っているため、コードが複雑になっています。

OpenEarmas(オープンソース)

  • 開発言語はRuby(on Rails)
  • 全ての設定は画面上から
  • RDBを使う
  • コードの構造をシンプルにする

システムの追加や変更は依頼されるので管理を簡単にしてもあまり意味がなかったという経験から、OpenEarmasでは管理より設定のしやすさを重視しています。画面上から全ての設定ができるようにし、高速にデータ修正ができるようRDBでデータを管理しています。

Earmasの初期はRDBを使ったWebアプリだったのですが紆余曲折あり今の形に落ち着き、OpenEarmasでまた普通のWebアプリに戻ったわけですが、データは10万件程度のデータが投入されたとしても高速にリストの閲覧を可能にするためにちょっと凝った構造にしています。

プログラム自体は、職業プログラマではなく情報系に詳しい図書館職員の方がソースを見る可能性が高いという前提で、なるべく抽象化や部品化を行わずソースが追いかけやすく誰が見てもなんとなくやっている事がわかるようにしてあります。そのため若干冗長な記述やソースベタ書きな定数などありますが、フラットで変更がしやすい構造になっています。

また、せっかく論文を公開するなら綺麗に見せるべき、ということでOpenEarmasでは見せ方を重視しており画面関係の設定が非常に多くなっています。

どう使い分けるか

EarmasとOpenEarmasはどちらの方が優れているといった上下関係はありません。どちらを使えばいいのかは

  • 共同リポジトリやコレクション系データベースなど、同じようなシステムを複数作成する場合は管理が簡単なEarmas。
  • データにも見た目にもこだわった、オリジナルなリポジトリを作りたい場合はOpenEarmas。

という感じで考えて頂ければと思います。


OpenEarmasでは、サーバの管理がそもそも面倒という要望に答えてwebサービス版のEarmas Cloud(ファーエンドテクノロジー株式会社)もあります。 http://www.earmas.net/