Apache Hivemindとはなんなのか?
今回はApache Hivemindについて調べてみました。 今回も以下のツールを使って対象プロジェクトを決めました!
※ 本企画に関する記事の目的は、それぞれのプロジェクトを本格的に深ぼるのではなく、プロジェクト名⇆どんな内容かをパッと思い出せるようにすることを目指します!
※ とはいえ深ぼってみたいプロジェクトがあればどんどん複数連載になると思います。
Apache Hivemindとは?
公式サイトによると、
HiveMind is an services and configuration microkernel. Its features are also referred to as Inversion of Control (IoC) Container or Lightweight Container. The adoption of HiveMind in an application ensures the use of certain design principles which improve encapsulation, modularization, testability and reusability.
ということで、要約すると以下になります。
- サービスと構成を扱うマイクロカーネル(制御の反転(IoC)コンテナまたは軽量コンテナ)
- アプリケーションに導入することで、カプセル化やモジュール化、テスト容易性、再利用性を向上させる特定の設計原則を適用可能
また、以下の二つの特徴があります。
- サービス
- HiveMind サービスは、簡単にアクセスおよび組み合わせることができる POJO (Plain Old Java Objects)
- 各サービスは、実装するJavaインターフェースを定義するのが理想的であるが必須ではない
- サービスのライフサイクルを管理し、サービスのインスタンス化と終了処理を行い、必要に応じて各サービスを設定
- 依存性注入を通じてサービス間の連携を可能にするため、サービスコード自体は依存関係の検索作業から解放される
- 設定
- 複雑な設定データを定義した形式でサービスに提供可能
- 複数のモジュールから提供されるデータを統合し、すべてをデータオブジェクトに変換
- HiveMindの設定により、サービスアーキテクチャとシームレスに連携する強力なデータ駆動型ソリューションを実現
なお、Apache Hivemindは2009年4月15日にリタイアしたらしく、今はApache Atticに含まれているとのことです。Apache Atticについてこちらで言及したいところですが、他のApacheプロジェクトもApache Attic内に含まれていることがかなりある模様で、ここでの言及は避け、将来Apache Atticの回でじっくり解説させてもらえたらと思います。
サードパーティの関連プロジェクト
Apache Atticのページにて以下の関連プロジェクトが紹介されていたので軽く紹介させていただきます(詳しくは紹介記事をお待ちください)。
- Apache Tapestry:裏でHiveMindを使用するWebフレームワーク
- HiveMind Utilities:トランザクション処理、セキュリティ、リモート処理、イベント、リッチ クライアントをサポートするためのHiveMind拡張機能のリポジトリ
- Crispy:プロキシ経由で様々なサービスをリモート呼び出しするためのクライアントであり、HiveMindサービスの呼び出しのための拡張機能を提供
まとめ
今回はApache Hivemindについて紹介しました。アプリケーションを開発するためのJava向けプロジェクトということでしたが、現在はすでに退役しているということで、使われることはないかと思いますが、数々のApacheプロジェクトの中でHivemindというものがあることをしれてよかったです。そして毎度感じますが、Java関連のプロジェクトが多いので、簡単にでもJavaを触れるようになろうと思いました。
Discussion