- PR -

【ノータッチデプロイメントについての質問】

1
投稿者投稿内容
Face
常連さん
会議室デビュー日: 2003/06/22
投稿数: 43
投稿日時: 2004-08-22 03:05
ノータッチデプロイメントに関して知識をお持ちの
方がいらっしゃったらご指導くださいませんでしょうか。
よろしくお願いいたします。

【疑問点】
・ネットワーク障害などでWEBサーバーにアクセスできない場合、
 ノータッチデプロイメントではバージョンチェックは行えない事は問題ないが、
 AP実行ができないことは問題では?(バッチ処理などのEXEなど)

【実現したい事】
・ノータッチデプロイメントによってクライアントに最新バージョンのAPを実行させたい
・ネットワーク障害などでWebサーバーにアクセスできない場合は、
 クライアント上のキャッシュを利用する。

現在は、WEBサーバーにアクセスできる事を前提にして、VB.NETでIEを起動して
特定のURLにアクセスすることでノータッチデプロイメントを利用し、AP実行
しています。しかし、これではネットワーク障害などが発生した場合、
AP実行ができません。
どうにかして

【理想動作】
1、APのバージョンを確認しにかかる
2、ネットワーク障害などでWebサーバーにアクセスできない場合、
  クライアント上のキャッシュをそのまま実行する。
3、障害のない場合はノータッチデプロイメントでバージョンが変更されていれば
  更新して実行する。

を実現できないでしょうか?
下記が環境条件です。

【環境条件】
・クライアント、WEBサーバーともに自由に設定可能
・ゾーンなどのセキュリティポリシーも自由に変更可能

以上、お知りの方がいらっしゃいましたらよろしくお願いいたします。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-08-22 06:59
 現行の.NETのノータッチは、そんな手順は無理のような?だいたい、キックするためにWebにアクセスしなければならず、そのキックさえできないのでは?

 Java Web Start のように、起動させるアプリがローカルにあって、自分でその手順を行うなら、可能なような???
masa
常連さん
会議室デビュー日: 2003/04/16
投稿数: 38
投稿日時: 2004-08-22 20:33
ノータッチ・デプロイメントで、WebサーバーからアプリケーションをPull形式で展開する方法(つまり、クライアントから自動的に「配置(Deployment)」と「更新(Update)」を行う方法)には、次の3つがあります。

 1. URLから起動する方法
   (URL Activation。通称:href-exes。「配置」と「更新」ができる)
 2. Assembly.LoadFromメソッドで自動ダウンロードする方法
   (Self-Downloading。「更新」のみ)
 3. 自動更新メカニズムのコンポーネントを使う方法
   (Self-Updating。「更新」のみ)

 ※なお狭義のノータッチ・デプロイメント(No-touch deployment)は1と2のみを指し、3(Automatic updates)は含まないので注意(関連リンクのあるサイト:MSDN「No Touch Deployment and Update」)。

3の方法では、まず最初のアプリケーション・スタブ(Application Launcher。AppStart.exe)をローカル・ディスクに「配置」します。
そしてそのスタブが、自動更新メカニズムのコンポーネントを含めた、アプリケーションの残りのモジュールをローカル・ディスクにインストールします。
あとはこのローカルにあるアプリケーションを実行することで、アプリケーションがWebサーバーから自動的に「更新」される仕組みになっています。

この3の方法の利点は、次のとおりです。
 a. セキュリティ制限の問題がなくなる(ローカル・ディスクから起動するので)
 b. オフライン対応できる
 c. 一括インストール可能(1や2のノータッチ・デプロイメントでは、要求されて始めてダウンロードされるので、ローカルにすべてのコンポーネントがダウンロード済みとは限らないため、オフラインの場合に問題となる)

アプリケーションをオフライン対応にするには、この3の方法しか選択肢がありません。

ただしこの3の方法の難点は、一番最初にアプリケーション・スタブをローカル環境にインストールする必要があるため、アプリケーション・スタブをMSIパッケージにしてインストールする必要があります。もしくは、事前にアプリケーション・スタブの実行権限をクライアントに設定しておき、ノータッチ・デプロイメント(href-exes)でアプリケーション・スタブを「配置」することもできます(Smart Client Architecture and Design Guideの「No-touch deployment with an application update stub」を参照)。

自動更新メカニズムのコンポーネント(3つある)は次の場所からダウンロードできます。

Updater Application Block for .NETのダウンロード解説(通称:UAB。企業アプリケーション向け。最良)
.NET Application Updater Component(通称:AppUpdater。比較的手軽)
クライアント・アプリケーション自動更新メカニズムの提案

オフライン対応のコンポーネントも次の場所からダウンロードできます。
このコンポーネントを使えば、最小限の手間で、既存のアプリケーションをオフライン対応にできます。

Smart Client Offline Application Blockのダウンロード解説

上記のようなアプリケーションは「スマート・クライアント」と呼ばれるので、スマート・クライアントで情報を探すとよいです。あと実は、ノータッチ・デプロイメントの問題点を解消して改良を加えた「ClickOnce」がVisual Studio 2005(.NET Framework 2.0)で登場します。

[ メッセージ編集済み 編集者: masa 編集日時 2004-08-22 20:36 ]

[ メッセージ編集済み 編集者: masa 編集日時 2004-08-22 20:37 ]
Face
常連さん
会議室デビュー日: 2003/06/22
投稿数: 43
投稿日時: 2004-08-23 00:30
jitta様、masa様
すごく詳しい知識をお持ちですね!
非常に参考になりました。
ありがとうございます。
これで調査の方向性がはっきりしました。
実現できるように頑張ります。
お世話になりました。
小野@どっとねっとふぁん
ぬし
会議室デビュー日: 2001/10/30
投稿数: 402
投稿日時: 2004-08-24 09:53
引用:

masaさんの書き込み (2004-08-22 20:33) より:
 1. URLから起動する方法
 2. Assembly.LoadFromメソッドで自動ダウンロードする方法
 3. 自動更新メカニズムのコンポーネントを使う方法

アプリケーションをオフライン対応にするには、この3の方法しか選択肢がありません。



IEの設定をあらかじめオフライン作業とすれば1の方法でもオフライン対応が
できませんでしたっけ?
まぁ、これをユーザが理解して、きちんと設定変えて動作させろ、というのは
無理があるかもしれませんが。
masa
常連さん
会議室デビュー日: 2003/04/16
投稿数: 38
投稿日時: 2004-08-24 10:54
引用:
IEの設定をあらかじめオフライン作業とすれば1の方法でもオフライン対応が
できませんでしたっけ?
まぁ、これをユーザが理解して、きちんと設定変えて動作させろ、というのは
無理があるかもしれませんが

やってみましたが、確かに「オフライン作業」にすればできますね。
ただ、小野@どっとねっとふぁん さんの言うように
「オフライン作業」で使ってもらうというのは現実的な選択肢ではないように思います。
1

スキルアップ/キャリアアップ(JOB@IT)