aar アーカイブ ファイルとは何か、それらが war とどのように異なるのかはわかりません。私はそれらが幾分転換可能であることを読みました。いつどちらを使用するのですか?長所と短所、および制限とは何ですか。
2 に答える
.war は、任意の Java EE アプリケーション サーバーにデプロイできる Web アーカイブです。
.aar は、Axis2 標準 Web アプリケーションが既にデプロイされているアプリケーション サーバーにデプロイできる特定の axis2 アーティファクトです。
http://wso2.com/library/90で説明されているように、「組み込み」モードを使用して、複数のサービスを含む Axis2 アプリケーションを標準の Web アプリケーションにデプロイすることもできます。.aar モードから埋め込みモードへの変換は、すべてのファイルを抽出し、それらを埋め込みモードの適切な場所に慎重に配置することで構成されます。
@renat-gilmanovが答えたように、.aarのプロはホットな展開です。
.war(組み込み)のプロは
- 実稼働環境での展開と管理が容易になります。複雑な展開手順に従う必要はなく、任意のアプリケーション サーバーに 1 つの .war を展開するだけです。
- クライアントアプリケーションなど、同じ .war にさらに多くのサーブレットを含めることができます。
軸アーカイブ (.aar)
Axis 2 サービスは、Axis アーカイブ (.aar) としてパッケージ化されています。これは、アーカイブの META-INF ディレクトリにパッケージ化された services.xml ファイルを含む JAR ファイル (jar または zip ユーティリティを使用して作成) です。
例、StockQuoteService.aar としてパッケージ化された場合の StockQuoteService は、次の構造を持ちます。
./stock/StockQuoteService.class
./META-INF/services.xml
Axis2 でのサービスのデプロイは非常に簡単です。.aar ファイルを、サーブレット コンテナー内の axis2 Web アプリケーションの axis2/WEB-INF/services ディレクトリにコピーするだけです。Tomcat の場合、$TOMCAT_HOME/webapps/axis2/WEB-INF/services になります。
根拠
サービスは非常に小さなソフトウェアです。次のことを考えてください。
- 開発中のサービスを展開/再展開/展開解除する必要があるため、サービスのライフサイクル
- デプロイされたすべてのアプリケーションに関連するコンテナーのオーバーヘッド
- 複数の Axis2 インスタンスが並行してデプロイされることによるオーバーヘッド
- 疎結合アーキテクチャ
- ...
基本的に、Axis2 は *.aar を軽量アプリケーションとして扱うことを提案しています。同じ Axis2 インスタンスを共有し、ビジネス全体を停止することなく、簡単に管理および再デプロイできます。
複雑なシステムを開発するとします。優れた開発者およびアーキテクトとして、サービスを最小の機能として使用して、疎結合システムを構築することにしました。分解がうまくいったので、約 100 個のサービスがあります。ちなみに、次のことができるので、これは良いことです。
- 開発を簡素化する
- いくつかのサービスを並行して開発する
- テストを簡素化
- ...
問題は、これらすべてのサービスを個別のアプリケーション (戦争) として開発することを好むかどうかです。私はあなたがしないことを願っています。Axis Archives のような軽量のアプローチを使用する方が、はるかに簡単で効率的です。
Axis では、Tomcat がアプリケーションに対して行うように、サービスのライフサイクルを管理できることに注意してください。
エンタープライズ レベルのアプリケーションに関して言えば、可用性は大きな懸念事項です。短いダウンタイムでも非常に有害な場合があるため、サーバーの再起動は適切なオプションではありません。システムをシャットダウンせずに更新する必要があります。ここで、ホット デプロイメントとホット アップデートの出番です。
ホット デプロイメントは、システムの稼働中に新しいサービスをデプロイする機能です。例として、2 つのサービス (service1 と service2) が稼働中で、システムをシャットダウンせずに service3 という新しいサービスをデプロイするとします。service3 のデプロイは、ホット デプロイ シナリオです。
ホット アップデートは、システムをシャットダウンせずに既存の Web サービスに変更を加える機能です。これは重要な機能であり、テスト環境で必要です。
Axis2 デプロイメント・モデル、パート 1: Axis2 デプロイメント・モデルをよりユーザーフレンドリーにする 6 つの方法