2011-07-17 12 views
2

この記事のタイトルを中心に、ほとんどの質問は、OSGiコンテナ内でHibernateや他のアクセス層を動作させることについて尋ねます。または、データソースをOSGiコンテナで実行するように頼んでいます。OSGiと永続性のモジュール性:関係の影響

私の質問は、OSGiのモジュール性がデータベースそのものの構造に与える影響についての質問です。具体的に: - 言い、連絡先管理 - 私たちは、モジュールをロードする際に よう

  1. はどのように我々は、データベース自体はモジュラー構造を作るのですかスキーマは は、特にそのモジュールに関連付けられたテーブルを含むように更新されますか?
  2. 前述のアプローチが関係に与える影響は何ですか?

私は第2の質問がより興味深いと思います。連絡先管理とプロジェクト管理は、2つの異なるOSGiモジュールであるとします。それぞれには、スキーマ内に独自のテーブルセットがあります。しかし、データベースレベルで、複数のテーブル間でモジュール間の関係を形成する必要がある場合はどうすればよいでしょうか?特定の連絡先が作業している、または作業しているプロジェクトのリストを見たい場合があります。

どのような解決策でも、さまざまなモジュールの経路を導きすぎて、お互いをあまり知り合わなくてはならないようです。プロジェクトマネジメント仕様書には、そのモジュールが連絡先を期待し、サービス、インターフェイス、パブサブなどを介してそのような期待を抽象化することができます。しかし、多くの作業のように見えますが、 2つのモジュールの基礎となるテーブル

以下の表の関係でモジュール性を破壊する必要がある場合は、モジュール化されたトップと中間のポイントは何ですか?非正規化とサービスバスは本当に健康的なソリューションですか?

どのような考えですか?

ありがとうございます。

答えて

0

第1の質問に関しては、LiquiBaseを使用することができる。バンドルのアクティブ化と非アクティブ化に関するチェンジセットの更新とロールバックが可能です。

2番目の質問については、アーキテクチャを設計する際に考慮する必要があると思います。いくつかのツールからの助けはありません。 PMモジュールがCMモジュールに依存する場合、PMモジュールが現在CMテーブルが存在していると想定し、それらと外部との関係を確立することは安全ですが、反対の方向には関係しません。どのモジュールがどのモジュールに依存し、依存関係のサイクルを防止するかは、アーキテクチャで明確にする必要があります。

0

このような状況では、これらのモジュール/コンテキストがどのように独立しているかを評価することが重要です。 DDDという言葉では、これらの2つは独立した境界のあるコンテキストのように見えるため、pmモジュール内の連絡先は、cmモジュール内の連絡先とは別のエンティティ(および別のクラス)です。この区別を保持すると、連絡先エンティティで非正規化されます(たとえば、プロジェクトに追加するときにIDと名前をコピーします。後でcmモジュール内の連絡先に変更を加えると、pubsubに一貫性が保たれる必要があります)。各モジュールは非常に独立しています。私は、両方に応じて必要な接着剤を提供する(つまり、IDとそれらの間に必要な情報を渡す)ことによって、UIを個別のモジュールとして保持します。

0

多分私は疑問を誤解しましたが、私の意見ではOSGIのモジュール性はデータベース構造に全く影響しません。これはデータストレージレベルですが、モジュール化することもできますが、パフォーマンス、データボリューム、負荷などの独自の理由から、クラスタ、olap、パーティション分割、レプリケーションといった独自のソリューションがあります。

cmとpmの間のデータの整合性が必要な場合は、最初にそのような種類のタスク(RDBMS)用に設計された手段で提供する必要があります。ソフトウェアのモジュール性が必要な場合は、OSGIソリューションを選択すると、モジュールはより高い論理/ビジネスレベルで通信します。永続性がどのように提供されるかは、プレーンテキストファイルまたは100ノードのOracle RACクラスタには絶対に認識できません。

1

JPAの5年後、私はそれを残すことにしました。数ヶ月の調査の後、私はQuerydsl + Liquibaseコンボを最高に見つけました。

私はヘルパーOSGiコンポーネントとmaven-pluginの開発に多くの作業をしました。 maven-plugin(コード生成)の機能は、他のビルドツールに簡単に統合することができます。これは、Mavenプラグインがスタンドアロンライブラリのラッパーにすぎないためです。

解決策の詳細については、こちらをご覧ください。http://bzsoldos.wordpress.com/2014/06/18/modularized-persistence/