プラグインのモジュール化

Liferay 6開発者のためのLiferay 7のメリットで記載されているように、OSGiのモジュールを含むアプリケーションは、モノリシックアプリケーション上で重要な利点を提供します。

主な利点は、モジュール式の開発手法が、メンテナンスコストを削減する方法でコードを構成するということです。 たとえばこれらのプラクティスには、コントラクト(APIなど)をより明確に定義すること、内部クラスを非表示にすること、依存関係をより慎重に処理することが含まれます。 これに関連して、Javaパッケージの依存関係はモジュール内に明示的にリストされます。 モジュールは、すべての依存関係が満たされた場合にのみ実行されます。 これにより、多くの不明瞭な実行タイムエラーが排除されます。

大きなアプリケーションを小さな独立したモジュールに分割すると、それらのモジュールの小さなリリースサイクルに集中できます。 個々のモジュールは、他のモジュールから独立してアップデートできます。 たとえば、アプリケーションのWeb(クライアント)モジュールでJSPのセキュリティ事象を修正できます。 この事象はそのモジュールにのみ影響します。アプリケーションの他のモジュールを変更する必要はありません。

以下に説明するシナリオは、アプリケーションをモジュールに変換するかどうかを判断するのに役立ちます。

変換しない場合

  • JSR-168/286互換のポートレットがあり、それでも別のポートレットコンテナにデプロイできるようにしたいという 場合は、従来のWARモデルを使用することをお勧めします。 (変換しないという根拠を除去するため、Liferayは他のベンダーとモジュラーポートレットを標準にする可能性について議論しています。)
  • Java EEプログラミングモデルに強く結び付けられた複雑なWebフレームワークを使用しており、OSGiで動作させるために必要な労力は、感知する以上に必要または正当とされています。
  • アプリケーションをLiferay DXP 7.1で動作させるための労力を最小限に抑える必要があります。

いつ変換するか

  • 多くのコード行数がある非常に大きなアプリケーションがあり、 もしたくさんの開発者が変更を行っている場合、コードをモジュールに分けることで、リリースを簡単かつ迅速に行うことができます。
  • アプリケーションには、その外部で利用する再利用可能な部分があります。 たとえばアプリケーションには、さまざまなプロジェクトで再利用しているビジネスロジックがあります。 モジュールを使用すると、他のモジュールからサービスを利用できます。
  • 一般に、モジュール開発の利点を受けるようになります。

これで、従来のアプリケーションをアップグレードし続けるどうかについて、そのまま行うべきか、もしくはモジュラリティを活用するためモジュール化するべきか、十分な情報を得た上での決定ができます。

« 従来のプラグインをWorkspace Webアプリケーションに移行する既存のポートレットのモジュール化 »
この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています