デスクトップメニューのネットワーク機能を理解する
概要
この記事では、デスクトップメニューの前景と背景の更新について説明します。自動更新、コンテンツ公開、更新検出、ウェブアプリの更新などについて説明します。
ネットワーキングを含むタスクは、デスクトップメニューの中心的な機能です。 デスクトップメニューは、ネットワークを配慮して使用し、ユーザーエクスペリエンスよりも安定性を優先して、プロキシサーバーなどの重要箇所に過負荷がかかるのを回避します。
WalkMeコンテンツ
デスクトップメニューは、組織のコンテンツビルダーによってWalkMeのCMSで作成されたコンテンツを表示します。
このコンテンツは、WalkMeのCDN(cdn.walkme.com)にデプロイされた静的JSONファイルを使用してリリースされ、配布されます。 デスクトップメニューの配信方法は、WalkMeウェブ製品と同様です。
ただし、デスクトップアプリケーションとして、「load」ウェブイベントなど、読み込みに関連する観察は行われません。
そのため、コンテンツの公開チェックはユーザーの使用状況に結びついています。デスクトップメニューは、ユーザーが実行した以下の3つのアクションの結果、コンテンツの更新を確認します:
- デスクトップメニューの開始/更新 - プロセスが開始されると、デスクトップメニューエンジンがコンテンツファイル(JSONファイル)を再ダウンロードし、ユーザーに表示します。
- フォアグラウンド状態が変更(「フォーカス」状態の変更)された場合、エンドユーザーが最後に訪問してから30秒の時間枠以外に別のアプリケーションに「退出」するたびに、エンジンは更新の有無を確認します(「更新の有無を確認」は、必ずしもダウンロードに進むわけではありません)。
コンテンツ更新の読み込みフロー
すべての「更新の確認」が実際の更新に結びつくわけではありません。 コンテンツファイルの再ダウンロードは、新しいコンテンツまたは設定がコンテンツビルダーによって公開された場合にのみ発生します。
以下の図は、デスクトップメニューが更新を取得し、コンテンツファイルを再ダウンロードする必要があるかどうかを判断する過程を示しています。
- デスクトップメニューは、上記のイベントに続いてsettings.txtファイル(1.3 KB)をダウンロードします。
- デスクトップメニューはファイルを解析し、「公開日」を現在のローカルコピー・ファイルと比較します。
- 現在のコピーより新しい更新がある場合、デスクトップメニューは次のステップに進むことになります。
- フォアグラウンド状態に基づいて、デスクトップメニューがダウンロード戦略を選択します。
- ユーザーに「コンテンツの更新」ボタンを促す
- バックグラウンドにコンテンツファイルを自動的にダウンロード
- デスクトップメニューは、コンテンツファイルをダウンロードします(サイズは通常数百キロバイトですが、管理されていないファイルの場合は数メガバイトになる場合があります)。
- コンテンツファイルがダウンロードされると、デスクトップメニューがローカルデータ保存領域を再構築し、コンテンツがユーザーで利用可能になります。
コンテンツセグメンテーション
WalkMeコンテンツは、部門、属性、ユーザーアクションごとにセグメント化できます。 各条件はハッシュ化された文字列であり、ユーザー関連情報の場合にはリモートサーバーで評価されます。
評価は可能な限り統合され、https://papi.walkme.com/conditions/evaluatedConditions にバッチリクエストで送信されます。
デスクトップメニューのウェブアプリ
デスクトップメニューインターフェースは、Reactフレームワークを基にしたウェブベースのソリューションです。 アプリケーションは、デスクトップメニューCDN(workstation.walkme.com)から提供される静的ファイル(HTML、CSS、JS)で構成されています。
アプリケーションのサイズは1.3MBであり、すべてgzipとして圧縮されたものです。
デスクトップメニューは、エンドユーザーの起動時や手動更新のたびに自動的にウェブアプリケーションを読み込みます。
ウェブアプリケーションの位置は、ブートストラッププロセスで前もってダウンロードされたsettings.txtファイルによって決定されます。
WalkMe Analytics
デスクトップメニューは、インサイトやメニューダッシボードの使用報告を提供するために、さまざまなイベントを収集します。
各イベントは数キロバイトのサイズのHTTPSリクエストであり、ec.walkme.comに送信されます。
デスクトップメニューバイナリアプリの自動更新
Electronベースのデスクトップメニュのバージョン>1.00から、自動更新エンジンがバイナリを更新します(デスクトップメニューコンテナとも呼ばれます)。
デスクトップメニューコンテナは、プロキシやネットワーク認証の互換性、プッシュ通知登録、ウィンドウ管理といった低レベルのタスクを実行するElectronベースのラッパーです。
コンテナは、ウェブアプリケーションのライフサイクルを維持し、WalkMeコンテンツの更新メカニズムを管理します。
デスクトップメニューは、Electronの業界標準として推奨されている自動更新ファシリテーターとしてSquirrelを使用しています。
- デスクトップメニューは、常に利用可能な最新のバイナリバージョンで開始します(以下のバージョン管理およびダウンロード失敗の対策セクションを参照してください)。
- 起動するたびに、デスクトップメニューはHTTPSリクエストを送信して、現在のバージョンよりも最新バージョンがあるかどうかを確認します。
- デスクトップメニューが起動または更新されると、新しいバージョンがあるかどうかが即座に確認されます。 開始時に新しいバージョンがない場合、ユーザーがデスクトップメニューを今後12時間以内に操作する際に、もう一度確認します。 つまり、ユーザーがアプリウィンドウを開くと、12時間ごとに確認が行われます。ウインドウが開かれない場合は、アプリが再起動または更新されたときにのみ更新されます。
- デスクトップメニューは、バイナリのダウンロードを始め、デスクトップメニューのインストールフォルダに保存します。
- ダウンロードが正常に完了すると、デスクトップメニューは以下の戦略のいずれかを実行します。
- デスクトップメニューは前景/背景であり、ユーザーは更新について通知され、デスクトップメニューを再起動するよう求められます。「クリックして更新してください」
- デスクトップメニューがオフになっています。次回の起動時に、新しいバイナリが使用されます。
バージョンのメンテナンスとダウンロード失敗の解決
自動更新メカニズムは、ダウンロード失敗を解決するために、2つのバイナリバージョンを一度に保持します。
新しいバージョンに切り替える前に、自動更新エンジンは、現在と以前のバージョンおよび新しい未完了のバージョンの2つの完了バージョンを保持します。
完了したダウンロードに続いて、自動更新バージョンは以前のバージョンを消去し、現在と新規の2つのバージョンを保持します。
v2.1.2は、v.2.3.0が有効になった時にファイルシステムから削除されたことにご注意ください。
ソフトウェアの自動アップデートとmacOSの管理者権限
新しいアップデートが利用可能になると、それが自動的に展開され、ソフトウェアを更新する準備が整います。
管理者権限のないMacユーザーには、通知が表示される場合があります この通知はオペレーティングシステムによって生成されるため、当社では制御できません。 ただし、ほとんどの場合、ユーザーには管理者権限が与えられます。
ユーザー関連のアクション
デスクトップメニューは、Sharepoint、Confluence、Jiraなどの外部アプリケーションを接続して、ユーザーのエンゲージメントを促します。
アプリケーションがセルフホストであるかSaaSであるかに関わらず、すべての接続がネットワークを使用しています。
サードパーティによるアプリケーションを接続すると、ネットワークを使用しているOAuth2.0、SMAL、またはOAuth1.1認証フローが開始されます。
接続が確立されると、デスクトップメニューはサーバーに問い合わせを行い、サードパーティアプリケーションから取得されたコンテンツをインターフェースに提供します。 各サードパーティアプリケーションは、ユーザーがデスクトップメニューを前面に表示するたびに、少なくとも1つのHTTPSリクエストを生成します。
エンタープライズ検索アクティビティ
上記の自動更新に加えて、ユーザーはサードパーティアプリケーションで検索を開始できます。 各検索は、リモートサーバーから結果を収集するHTTPSリクエストをトリガーします。