(57)【要約】【課題】仮想マシンにログインしていない状態のクライアント端末において仮想マシン上のアプリケーションが発行した通知を確認できるようにすること。【解決手段】サーバ装置は、クライアント端末の利用に供するアプリケーションが動作する仮想マシンと、アプリケーションが発行した通知を、クライアント端末、または、クライアント端末に当該通知を送信する第２のサーバ装置に転送する転送部と、を備えている。【選択図】図１
2018018344.tif 000002
【特許請求の範囲】
【請求項１】
クライアント端末の利用に供するアプリケーションが動作する仮想マシンと、
前記アプリケーションが発行した通知を、前記クライアント端末、または、前記クライアント端末に前記通知を送信する第２のサーバ装置に転送する転送部と、を備える、
ことを特徴とするサーバ装置。
【請求項２】
前記アプリケーションが所定のＡＰＩ（Application Program Interface）を呼び出した場合、前記仮想マシンのＯＳ（Operating System）は前記クライアント端末または前記第２のサーバに前記通知を転送するように前記転送部に要求する、
請求項１に記載のサーバ装置。
【請求項３】
前記転送部は、前記クライアント端末を識別する端末識別情報を保持し、前記通知および前記端末識別情報を前記第２のサーバ装置に転送する、
請求項１または２に記載のサーバ装置。
【請求項４】
前記第２のサーバ装置は、前記端末識別情報を発行し、前記転送部から転送された前記通知と前記端末識別情報を関連付けて保持し、前記端末識別情報により識別されるクライアント端末に前記通知を送信する、
請求項３に記載のサーバ装置。
【請求項５】
前記仮想マシンは、前記クライアント端末が前記仮想マシンの利用を中断した場合、前記アプリケーションをバックグラウンドに移行する、
請求項１ないし３のいずれか１項に記載のサーバ装置。
【請求項６】
前記仮想マシンは、前記クライアント端末が前記通知を取得した場合、前記アプリケーションをフォアグラウンドに移行する、
請求項１ないし５のいずれか１項に記載のサーバ装置。
【請求項７】
前記仮想マシンは、前記通知を識別する通知識別情報を生成し、
前記転送部は、前記クライアント端末、または、前記クライアント端末に前記通知および前記通知識別情報を送信する前記第２のサーバ装置に対して、前記通知および前記通知識別情報を転送し、
前記仮想マシンは、前記クライアント端末から前記通知識別情報を受信すると、前記通知識別情報により識別される通知を発行したアプリケーションを、フォアグラウンドに移行する、
請求項６に記載のサーバ装置。
【請求項８】
クライアント端末とサーバ装置とを備え、
前記サーバ装置は、クライアント端末の利用に供するアプリケーションが動作する仮想マシンと、
前記アプリケーションが発行した通知を、前記クライアント端末、または、前記クライアント端末に前記通知を送信する第２のサーバ装置に転送する転送部と、を有する、
ことを特徴とするシンクライアントシステム。
【請求項９】
サーバ装置が、クライアント端末の利用に供するアプリケーションが動作する仮想マシンを提供するステップと、
前記アプリケーションが発行した通知を、前記クライアント端末、または、前記クライアント端末に前記通知を送信する第２のサーバ装置に転送するステップと、を含む、
ことを特徴とする通知転送方法。
【請求項１０】
クライアント端末の利用に供するアプリケーションが動作する仮想マシンを提供する処理と、
前記アプリケーションが発行した通知を、前記クライアント端末、または、前記クライアント端末に前記通知を送信する第２のサーバ装置に転送する処理と、をサーバ装置に設けられたコンピュータに実行させる、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバ装置、シンクライアントシステム、通知転送方法、および、プログラムに関し、特に仮想マシンを提供するサーバ装置、サーバ装置とクライアント端末を備えたシンクライアントシステム、シンクライアントシステムに含まれる仮想マシンとクライアント端末の間における通知転送方法、および、プログラムに関する。
【背景技術】
【０００２】
近年のＯＳ（Operating System）には、通知機能が具備されている。ＯＳの通知機能によると、端末がスリープ状態、または、対象のアプリケーションを起動していない状態であっても、メール着信、スケジュールリマインドなどの確認が可能となる。これにより、ユーザの利便性が向上している。
【０００３】
また、近年シンクライアント（Thin client）システムの導入が拡がっている。シンクライアントシステムでは、ユーザが使用するクライアント端末は必要最低限の処理のみを行い、残りの大半の処理をサーバ側が実行する。シンクライアントシステムとして、仮想化技術を利用したシステムが広く採用されている。仮想化技術を用いたシンクライアントシステムでは、サーバ上で仮想マシンを稼動させ、クライアント端末にはサーバ上で稼動する仮想マシンが提供される。
【０００４】
関連技術として、特許文献１には、シンクライアントシステムにおいて第１のクライアント端末に表示されている画面を第２のクライアント端末に転送する技術が記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−１４６０３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記特許文献の全開示内容は、本書に引用をもって繰り込み記載されているものとする。以下の分析は、本発明者によってなされたものである。
【０００７】
仮想化技術を用いたシンクライアントシステムにおいては、サーバ装置上で稼動する仮想マシン上で生じた通知（例えば仮想マシン上で動作するアプリケーションが発行した通知）は仮想マシン上で処理が行われる。したがって、仮想マシンにログインしていない状態のクライアント端末において、仮想マシン上で生じた通知を確認できず、ユーザの利便性が低下するという問題がある。
【０００８】
特許文献１に記載された技術は、シンクライアントシステムにおいてサーバ装置とクライアント端末から成る複数の組の間で画面データを共有するものであり、かかる問題を解消することに寄与しない。
【０００９】
そこで、仮想マシン上のアプリケーションが発行した通知を仮想マシンにログインしていない状態のクライアント端末において確認できるようにすることが課題となる。本発明の目的は、かかる課題解決に寄与するサーバ装置、シンクライアントシステム、通知転送方法、および、プログラムを提供することにある。
【課題を解決するための手段】
【００１０】
本発明の第１の態様に係るサーバ装置は、クライアント端末の利用に供するアプリケーションが動作する仮想マシンと、前記アプリケーションが発行した通知を、前記クライアント端末、または、前記クライアント端末に前記通知を送信する第２のサーバ装置に転送する転送部と、を備えている。
【００１１】
本発明の第２の態様に係るシンクライアントシステムは、クライアント端末とサーバ装置とを備えている。前記サーバ装置は、クライアント端末の利用に供するアプリケーションが動作する仮想マシンと、前記アプリケーションが発行した通知を、前記クライアント端末、または、前記クライアント端末に前記通知を送信する第２のサーバ装置に転送する転送部と、を有する。
【００１２】
本発明の第３の態様に係る通知転送方法は、サーバ装置が、クライアント端末の利用に供するアプリケーションが動作する仮想マシンを提供するステップと、前記アプリケーションが発行した通知を、前記クライアント端末、または、前記クライアント端末に前記通知を送信する第２のサーバ装置に転送するステップと、を含む。
【００１３】
本発明の第４の態様に係るプログラムは、クライアント端末の利用に供するアプリケーションが動作する仮想マシンを提供する処理と、前記アプリケーションが発行した通知を、前記クライアント端末、または、前記クライアント端末に前記通知を送信する第２のサーバ装置に転送する処理と、をサーバ装置に設けられたコンピュータに実行させる。なお、プログラムは、非一時的なコンピュータ可読記録媒体（non-transitory computer-readable storage medium）に記録されたプログラム製品として提供することもできる。
【発明の効果】
【００１４】
本発明に係るサーバ装置、シンクライアントシステム、通知転送方法、および、プログラムによると、仮想マシン上のアプリケーションが発行した通知を仮想マシンにログインしていない状態のクライアント端末において確認することができる。
【図面の簡単な説明】
【００１５】
【図１】一実施形態に係るシンクライアントシステムの構成を例示するブロック図である。
【図２】第１の実施形態に係るシンクライアントシステムの構成を例示するブロック図である。
【図３】第１の実施形態に係るシンクライアントシステムの変形例の構成を例示するブロック図である。
【図４】第１の実施形態に係るシンクライアントシステムの動作を例示するシーケンス図である。
【図５】第２の実施形態に係るシンクライアントシステムの構成を例示するブロック図である。
【図６】第２の実施形態に係るシンクライアントシステムの動作を例示するシーケンス図である。
【図７】第３の実施形態に係るシンクライアントシステムの構成を例示するブロック図である。
【図８】第３の実施形態に係るシンクライアントシステムの動作を例示するシーケンス図である。
【発明を実施するための形態】
【００１６】
はじめに、一実施形態の概要について説明する。なお、この概要に付記する図面参照符号は、専ら理解を助けるための例示であり、本発明を図示の態様に限定することを意図するものではない。
【００１７】
図１は、一実施形態に係るシンクライアントシステムの構成を例示するブロック図である。図１を参照すると、シンクライアントシステムは、クライアント端末１０（例えば図２、図３、図５、図７の端末側物理マシン１００）とサーバ装置２０（例えば図２、図３、図５、図７の仮想化サーバ２００）を備えている。シンクライアントシステムは、さらに第２のサーバ装置（例えば図２、図３の通知発行サーバ３００、図５の通知発行サービス４００）を備えていてもよい。
【００１８】
サーバ装置２０は、クライアント端末１０の利用に供するアプリケーション（例えば図２、図３、図５、図７の仮想マシンアプリケーション２３２）が動作する仮想マシン２１（例えば図２、図３、図５、図７の仮想マシン２３０）と、アプリケーションが発行した通知を、クライアント端末１０、または、当該通知をクライアント端末１０に送信する第２のサーバ装置３０に転送する転送部２２（例えば図２、図３、図５、図７の転送基盤２１０）を有する。
【００１９】
一実施形態のシンクライアントシステムでは、仮想マシン上で発生した通知、すなわち仮想マシン上で動作するアプリケーションが発行した通知を、クライアント端末（端末側物理マシン）に送信する。これにより、仮想マシン上における通知の発生を、仮想マシンにログインしていない状態のクライアント端末を操作するユーザに対しても知らせることができる。
【００２０】
＜実施形態１＞
次に、第１の実施形態に係るシンクライアントシステムについて図面を参照して説明する。ここでは、端末側物理マシン上の仮想マシン接続ソフトウェアから仮想マシンに接続して画面確認および操作を行い、仮想マシン上で発生したイベントに応じて仮想マシン上で通知が発行されるシンクライアントシステムを想定する。
【００２１】
［構成］
図２は、本実施形態に係るシンクライアントシステムの構成を例示するブロック図である。図２を参照すると、シンクライアントシステムは、端末側物理マシン（クライアント端末）１００、仮想化サーバ（サーバ装置）２００、および、通知発行サーバ３００を備えている。
【００２２】
端末側物理マシン１００は、端末側物理マシンＯＳ（Operating System）１１０を有する。端末側物理マシンＯＳ１１０上では、仮想マシン２３０をリモート利用する仮想マシン接続ソフトウェア１１１と、仮想マシン２３０上の通知イベントを受信する通知受信ソフトウェア１１２が動作する。端末側物理マシン１００は、例えばパソコン（ＰＣ：Personal Computer）、スマートデバイスなどである。
【００２３】
仮想化サーバ２００は、転送基盤２１０、仮想化ハイパーバイザ２２０、および、仮想マシン２３０を備えている。仮想化サーバ２００は、仮想マシン２３０が動作するサーバである。仮想化ハイパーバイザ２２０は、仮想マシン２３０をエミュレート実行するプロセスである。転送基盤２１０は、仮想マシン２３０と仮想マシン接続ソフトウェア１１１の間のデータ転送通信を行うプロセスであり、仮想マシン１台ごとに１プロセスが実行される。なお、本実施形態のシンクライアントシステムの変形例として、図３に示すように、転送基盤２１０が仮想マシン２３０上で実行されるようにしてもよい。
【００２４】
通知発行サーバ３００は、端末識別ＩＤ発行部３１０および通知発行部３２０を有する。端末識別ＩＤ発行部３１０は、シンクライアントシステムを利用する端末側物理マシンを一意に識別する端末識別情報（以下「端末識別ＩＤ」という。）を発行する。通知発行部３２０は、仮想マシン２３０上の通知を含む通知情報を端末側物理マシン１００に発行する。
【００２５】
仮想マシン接続ソフトウェア１１１は、仮想マシン２３０にログインする際、通知発行サーバ３００に接続し、端末識別ＩＤ発行部３１０から端末識別ＩＤの払い出しを受ける。払い出された端末識別ＩＤは、通知受信ソフトウェア１１２、転送基盤２１０、および、通知発行サーバ３００の間で共有される。
【００２６】
仮想マシンアプリケーション２３２が通知を発行する場合、仮想マシンＯＳ２３１上の通知発行ＡＰＩ（Application Program Interface）が呼び出される。このとき、仮想マシンＯＳ２３１は転送基盤２１０に対して端末側物理マシン１００への通知要求（すなわち、仮想マシンアプリケーション２３２が発行した通知を含む通知情報を端末側物理マシン１００に送信する要求）を発行する。転送基盤２１０は、当該通知要求に端末識別ＩＤを付加し、通知発行サーバ３００に転送する。通知発行サーバ３００は、この通知要求に応じて、通知発行部３２０に端末識別ＩＤおよび通知情報を関連付けて登録する。
【００２７】
通知受信ソフトウェア１１２は、通知発行サーバ３００に所定のタイミングで（例えば定期的に）問い合わせを行う。通知発行部３２０に当該端末側物理マシン１００の端末識別ＩＤが登録されている場合、通知受信ソフトウェア１１２は端末識別ＩＤに関連付けられた通知情報を受信する。一方、通知発行部３２０はウェブソケット（WebSocket）などの技術により、通知受信ソフトウェア１１２と接続状態を維持し、端末識別ＩＤとセッションを紐付けしてもよい。この場合、通知情報が登録されると、通知発行部３２０は当該端末識別ＩＤを持つ通知受信ソフトウェア１１２に対して通知情報を送信する。
【００２８】
通知受信ソフトウェア１１２は、受信した通知情報をもとに、端末側物理マシンＯＳ１１０の通知発行ＡＰＩ（Application Program Interface）を用いて、端末側物理マシン１００上に通知を表示する。
【００２９】
［動作］
次に、本実施形態のシンクライアントシステムの動作を説明する。図４は、本実施形態のシンクライアントシステムの動作を例示するシーケンス図である。
【００３０】
「ステップＡ１」
仮想マシン接続ソフトウェア１１１は、転送基盤２１０を介して仮想マシン２３０にログインする（ステップＡ１ａ）。すると、仮想マシン接続ソフトウェア１１１の要求に応じて（ステップＡ１ｂ）、通知発行サーバ３００の端末識別ＩＤ発行部３１０は端末識別ＩＤを払い出す（ステップＡ１ｃ）。払い出された端末識別ＩＤは、通知受信ソフトウェア１１２または端末側物理マシンＯＳ１１０、および、転送基盤２１０に送信されて共有され（ステップＡ１ｄ）、仮想マシン２３０と端末識別ＩＤが対応付けて管理される。
【００３１】
仮想マシン２３０、または、仮想マシン２３０を利用するユーザもしくはユーザの所属組織単位で、通知情報の端末側物理マシン１００への発行を制限してもよい。一例として、端末識別ＩＤ発行部３１０は、ログイン時に仮想マシン２３０の情報またはユーザ情報の設定を参照し、制限が有効である場合、端末識別ＩＤとして空値を設定する。これにより、通知情報の端末側物理マシン１００への発行を無効化することができる。
【００３２】
また、本実施形態の方式に対応しないバージョンの仮想マシン接続ソフトウェア１１１については、端末識別ＩＤの払い出し要求が行われない。このとき、端末識別ＩＤとして空値が設定され、本実施形態の方式に基づく機能が無効化される。
【００３３】
「ステップＡ２」
仮想マシン２３０からの明示的なログアウト、仮想マシン接続ソフトウェア１１１のバックグラウンド化、端末側物理マシン１００が圏外に移行した場合などの仮想マシン２３０の利用中断時に（ステップＡ２ａ）、仮想マシン２３０はフォアグラウンドのアプリケーションをバックグラウンドに遷移させる（ステップＡ２ｂ）。
【００３４】
通知を行う仮想マシンアプリケーション２３２（メールアプリなど）の仕様によっては、アプリケーションがフォアグラウンド状態の場合、仮想マシン２３０上においても通知を発行しない場合がある。この場合、本実施形態に基づいて端末側物理マシン１００への通知を行うことができない。そこで、仮想マシン２３０の利用中断時にアプリケーションをバックグラウンド化することにより、通知が発行されないことを防ぐ。
【００３５】
なお、仮想マシン接続ソフトウェア１１１が仮想マシン２３０を利用中の場合、仮想マシン２３０上の通知を直接確認することができる。この場合、端末側物理マシン１００に通知を行う必要はない。したがって、本実施形態による通知情報の転送は行わない。
【００３６】
「ステップＡ３」
仮想マシン２３０上の仮想マシンアプリケーション２３２は、仮想マシンＯＳ２３１上の通知発行ＡＰＩを呼び出して通知を発行する。通知発行ＡＰＩは、仮想マシンＯＳ２３１上での通知の表示を行うとともに、転送基盤２１０に対して通知要求を送信する。
【００３７】
このとき、仮想マシン２３０から通知発行サーバ３００に通知要求を直接送信することもできる。ただし、この場合、仮想マシン２３０の識別情報と端末識別ＩＤの対応付けを通知発行サーバ３００または仮想マシン２３０側で管理する必要がある。
【００３８】
また、転送基盤２１０にインターフェースを設け、ステップＡ３として、外部制御系からの通知要求を転送基盤２１０に送信することもできる。このとき、ステップＡ４以下については同一のシーケンスを用いて、サービスのメンテナンス告知などの任意のメッセージを端末側物理マシン１００に送信することも可能である。
【００３９】
「ステップＡ４」
転送基盤２１０は、受信した通知情報およびプロセス内部に保持している端末識別ＩＤを用いて、通知発行サーバ３００に通知要求を送信する。一方、転送基盤２１０は通知情報を保持し、転送基盤２１０が通知受信ソフトウェア１１２からの問い合わせを待つようにしてもよい。また、転送基盤２１０は通知受信ソフトウェア１１２との常時セッションを用いて、通知情報を通知受信ソフトウェア１１２に送信してもよい。
【００４０】
本実施形態において、仮想マシン２３０、または、仮想マシン２３０を利用するユーザもしくはユーザの所属組織単位で、本実施形態による通知情報の内容を制御することができる。この場合、仮想マシン接続ソフトウェア１１１による仮想マシン２３０へのログイン時に、転送基盤２１０に「全通知内容」、「通知のタイトル情報」、「通知を発行したアプリケーション名」、「通知の有無のみ」などの通知レベルを登録しておく。また、ステップＡ４で転送基盤２１０から通知要求を送信する前に、通知レベルに応じたフィルタリングを行う。
【００４１】
「ステップＡ５」
通知発行サーバ３００は受信した通知情報をもとに、通知発行部３２０に端末識別ＩＤおよび通知情報を登録し、通知受信ソフトウェア１１２からの問い合わせを待つ。一方、通知発行部３２０はウェブソケット（WebSocket）などの技術により、通知受信ソフトウェア１１２と常時接続状態を維持し、端末識別ＩＤとセッションを紐付けしてもよい。この場合、通知情報が登録されると、通知発行部３２０は当該端末識別ＩＤを持つ通知受信ソフトウェア１１２に対して通知情報を送信する。
【００４２】
「ステップＡ６」
通知受信ソフトウェア１１２は、所定のタイミングで（例えば定期的に）通知発行部３２０または転送基盤２１０に通知の問い合わせを行う（ステップＡ６ａ）。該当する端末識別ＩＤの通知が存在する場合、通知受信ソフトウェア１１２は通知情報を受信する（ステップＡ６ｂ）。
【００４３】
ここで、通知発行部３２０または転送基盤２１０は、正当な通知受信ソフトウェア１１２からの問い合わせかどうかを判定してもよい。通知発行部３２０または転送基盤２１０は、仮想マシン接続ソフトウェア１１１が転送基盤２１０と通信する際に用いる秘密情報を用いてかかる判定を行うことができる。
【００４４】
「ステップＡ７」
通知情報を受信した通知受信ソフトウェア１１２は、端末側物理マシンＯＳ１１０の通知発行ＡＰＩを用いて、通知の表示を行う。このとき、ユーザが当該通知を選択することで、仮想マシン接続ソフトウェア１１１が起動されるようにしてもよい。
【００４５】
ステップＡ７で通知が選択された場合、仮想マシン接続ソフトウェア１１１は、仮想マシン２３０、または、仮想マシン２３０を利用するユーザもしくはユーザの所属組織の設定に応じて、以下のステップＡ８−１〜Ａ８−３の動作のうちの１つを選択して実行する。なお、かかる設定は最終ログインのタイミングで読み込まれ、仮想マシン接続ソフトウェア１１１内で保持される。
【００４６】
「ステップＡ８−１」
仮想マシン接続ソフトウェア１１１は、ログイン画面を表示する。
【００４７】
「ステップＡ８−２」
仮想マシン接続ソフトウェア１１１は、予め定められたセッション有効期限内である場合、通知の発行元の仮想マシン２３０に自動ログインする。一方、仮想マシン接続ソフトウェア１１１は、有効期限を過ぎている場合、ログイン画面を表示する。
【００４８】
「ステップＡ８−３」
仮想マシン接続ソフトウェア１１１は、通知の発行元の仮想マシン２３０に自動ログインする。
【００４９】
ステップＡ８−１〜Ａ８−３のいずれかのフローから仮想マシン２３０へのログイン操作が行われた場合、さらに以下のステップＡ９を実施してもよい。
【００５０】
「ステップＡ９」
端末側物理マシン１００上の通知の選択を契機として、仮想マシン接続ソフトウェア１１１が仮想マシン２３０にログインした場合、仮想マシンＯＳ２３１は次のように振る舞う。すなわち、仮想マシンＯＳ２３１は、端末側物理マシン１００で選択された通知に対応する仮想マシンＯＳ２３１上の通知が選択された場合と同様に振る舞う。例えばメール着信通知の場合、端末側物理マシン１００上でメール着信通知を選択し、仮想マシン２３０にログインすると、ログイン後に、仮想マシン２３０上でメールアプリが自動で起動する。
【００５１】
アプリケーションを自動で起動するために、例えば以下の方法を用いることができる。仮想マシン２３０上において本実施形態で対象とされる通知に対して通知を識別する通知識別ＩＤを付与する。また、端末側物理マシン１００へ送信する通知情報に通知識別ＩＤを含める。仮想マシン接続ソフトウェア１１１から仮想マシン２３０にログインするとき、仮想マシン接続ソフトウェア１１１は仮想マシン２３０に通知識別ＩＤを通知する。仮想マシン２３０は、通知識別ＩＤを参照し、仮想マシン２３０上で対応する通知が選択された場合と同様の処理を実行する。
【００５２】
［効果］
本実施形態では、仮想マシン上の仮想マシンアプリケーションが通知を発行すると、仮想マシンＯＳから転送基盤を経由して通知発行サーバに通知要求が送信され、通知発行サーバは端末側物理マシンの通知受信ソフトウェアからの問い合わせに応じて端末物理マシンに通知情報を送信する。これにより、仮想マシンにログインしていない状態の端末側物理マシンにおいて、仮想マシンアプリケーションが発行した通知を確認することができ、ユーザの利便性が向上する。
【００５３】
また、本実施形態のように通知選択時の動作を仮想マシン上で再現することにより、よりシームレスに仮想マシンを利用することが可能となる。さらに、本実施形態によると、特定の仮想マシンのユーザまたはユーザの所属する組織単位を対象とした任意メッセージの送信も可能となる。
【００５４】
＜実施形態２＞
次に、第２実施形態に係るシンクライアントシステムについて図面を参照して説明する。
【００５５】
［構成］
図５は、本実施形態に係るシンクライアントシステムの構成を例示するブロック図である。図５を参照すると、シンクライアントシステムは、端末側物理マシン（クライアント端末）１００、仮想化サーバ（サーバ装置）２００、および、通知発行サービス４００を備えている。本実施形態のシンクライアントシステムは通知発行サービス４００を備えている点で、通知発行サーバ３００を備えた第１の実施形態のシンクライアントシステム（図２、図３）と相違する。
【００５６】
通知発行サービス４００は、端末側物理マシンＯＳ（Operating System）のベンダが提供するサービスである。通知発行サービス４００は、端末識別ＩＤ発行部４１０および通知発行部４２０を備えている。端末識別ＩＤ発行部４１０は、端末側物理マシン１００を一意に識別する端末識別情報（「端末識別ＩＤ」という。）を発行する。通知発行部４２０は、リクエストに応じて端末側物理マシン１００に通知情報を発行する。
【００５７】
通知処理部１１３は、端末側物理マシンＯＳ１１０の標準サービスである。通知処理部１１３は、通知発行サービス４００と連携して通知を受信し、端末側物理マシンＯＳ１１０上で動作するソフトウェアに対して通知を転送する。
【００５８】
仮想マシン接続ソフトウェア１１１は、仮想マシン２３０にログインする際、通知発行サービス４００に接続して端末識別ＩＤ発行部４１０から端末識別ＩＤの払い出しを受ける。払い出された端末識別ＩＤは、端末側物理マシンＯＳ１１０および転送基盤２１０で共有される。
【００５９】
仮想マシンアプリケーション２３２が通知を発行する場合、仮想マシンＯＳ２３１上の通知発行ＡＰＩ（Application Program Interface）が呼び出される。このとき、仮想マシンＯＳ２３１は転送基盤２１０に対して端末側物理マシン１００への通知要求（すなわち、仮想マシンアプリケーション２３２が発行した通知を含む通知情報を端末側物理マシン１００に送信する要求）を発行する。転送基盤２１０は、当該通知要求に端末識別ＩＤを付加して、通知発行サービス４００に転送する。通知発行サービス４００は、この通知要求により、端末識別ＩＤに応じた端末側物理マシン１００に通知情報を送信する。
【００６０】
通知情報を受信した端末側物理マシンＯＳ１１０は、通知処理部１１３を通して仮想マシン接続ソフトウェア１１１に通知を転送する。仮想マシン接続ソフトウェア１１１は受信した通知情報をもとに、端末側物理マシンＯＳ１１０の通知発行ＡＰＩを用いて、端末側物理マシン１００上に通知を表示する。
【００６１】
［動作］
次に、本実施形態のシンクライアントシステムの動作を説明する。図６は、本実施形態のシンクライアントシステムの動作を例示するシーケンス図である。
【００６２】
「ステップＢ１」
仮想マシン接続ソフトウェア１１１が転送基盤２１０を介して仮想マシン２３０にログインすると（ステップＢ１ａ）、仮想マシン接続ソフトウェア１１１の要求に応じて（ステップＢ１ｂ）、通知発行サービス４００の端末識別ＩＤ発行部４１０が端末識別ＩＤを払い出す（ステップＢ１ｃ）。払い出された端末識別ＩＤは、通知受信ソフトウェア１１２または端末側物理マシンＯＳ１１０、および、転送基盤２１０に送信されて共有され（ステップＢ１ｄ）、仮想マシン２３０と端末識別ＩＤが対応付けて管理される。
【００６３】
仮想マシン２３０、または、仮想マシン２３０を利用するユーザもしくはユーザの所属組織単位で、本実施形態に基づく通知情報の端末側物理マシン１００への発行を制限してもよい。この場合、端末識別ＩＤ発行部４１０は、ログイン時に仮想マシン２３０の情報またはユーザ情報の設定を参照する。制限が有効である場合、端末識別ＩＤ発行部４１０は端末識別ＩＤとして空値を設定する。これにより、本実施形態による通知情報の発行を無効化することができる。
【００６４】
また、本実施形態に対応しないバージョンの仮想マシン接続ソフトウェア１１１については、端末識別ＩＤの払い出し要求が行われない。このとき、端末識別ＩＤとして空値が設定され、本実施形態の通知情報の発行機能が無効化される。
【００６５】
「ステップＢ２」
仮想マシン２３０からの明示的なログアウト、仮想マシン接続ソフトウェア１１１のバックグラウンド化、端末側物理マシン１００が圏外に移行した場合などの仮想マシン２３０の利用中断時に（ステップＢ２ａ）、仮想マシン２３０はフォアグラウンドのアプリケーションをバックグラウンドに遷移させる（ステップＢ２ｂ）。
【００６６】
「ステップＢ３」
仮想マシン２３０上の仮想マシンアプリケーション２３２は、仮想マシンＯＳ２３１上の通知発行ＡＰＩを呼び出して通知を発行する。通知発行ＡＰＩは、仮想マシンＯＳ２３１上での通知の表示を行うとともに、転送基盤２１０に対して通知要求を送信する。
【００６７】
このとき、仮想マシン２３０から通知発行サービス４００に通知要求を直接送信することも可能である。ただし、この場合、仮想マシン２３０の識別情報と端末識別ＩＤの対応付けを通知発行サービス４００または仮想マシン２３０側で管理する必要がある。
【００６８】
また、通知発行サービス４００では、ベンダに応じて通知要求時にアプリケーション開発者証明書が必要となる場合がある。この証明書には、有効期限が設けられている。仮想マシン２３０から通知発行サービス４００に通知要求を直接送信する場合、各仮想マシン２３０中に証明書を配置する必要がある。したがって、証明書を更新する場合、各仮想マシン２３０へ配布することになり、運用効率が悪い。一方、転送基盤２１０を経由する本実施形態によると、証明書を仮想化サーバ２００ごとに配置することができる。これにより、証明書更新の手続きを単純化することができる。
【００６９】
さらに、転送基盤２１０にインターフェースを設け、ステップＢ３として、外部制御系からの通知要求を転送基盤２１０に送信することができる。また、ステップＢ４以下について同一のシーケンスを用いて、サービスのメンテナンス告知などの任意のメッセージを端末側物理マシン１００に送信することも可能である。
【００７０】
「ステップＢ４」
転送基盤２１０は、受信した通知情報およびプロセス内部に保持している端末識別ＩＤを用いて、通知発行サービス４００に通知要求を送信する。一方、転送基盤２１０は通知情報を保持し、転送基盤２１０が通知受信ソフトウェア１１２からの問い合わせを待つようにしてもよい。また、転送基盤２１０は通知受信ソフトウェア１１２との常時セッションを用いて、通知情報を通知受信ソフトウェア１１２に送信してもよい。
【００７１】
「ステップＢ５」
通知発行サービス４００は、受信した通知情報をもとに、端末識別ＩＤに応じた端末側物理マシン１００に通知情報を送信する。
【００７２】
「ステップＢ６」
端末側物理マシンＯＳ１１０上の通知処理部１１３は、通知発行サービス４００から通知情報を受信する。この場合、通知先端末の正当性については、通知発行サービス４００が担保する。
【００７３】
「ステップＢ７」
通知情報を受信した通知処理部１１３は、端末側物理マシンＯＳ１１０の通知発行ＡＰＩを用いて、通知の表示を行う。このとき、当該通知を選択することで、仮想マシン接続ソフトウェア１１１を起動するように設定してもよい。
【００７４】
ステップＢ７で通知が選択された場合における動作（ステップＢ８およびＢ９）については、第１の実施形態における動作（ステップＡ８−１〜Ａ８−３、および、ステップＡ９）と同様である。
【００７５】
［効果］
本実施形態では、仮想マシン上の仮想マシンアプリケーションが通知を発行すると、仮想マシンＯＳから転送基盤を経由して通知発行サービスに通知要求が送信され、通知発行サービスは端末物理マシンに通知情報を送信する。これにより、仮想マシンにログインしていない状態の端末側物理マシンにも仮想マシンアプリケーションが発行した通知を確認することができ、ユーザの利便性が向上する。さらに、本実施形態によると、通知発行サービスとして端末側物理マシンＯＳのベンダが提供するサービスを利用することで、第１の実施形態のように独自に通知発行サーバを設けた場合と比較して、より安価にシステムを構築・運用することができる。
【００７６】
＜実施形態３＞
次に、第３の実施形態に係るシンクライアントシステムについて図面を参照して説明する。
【００７７】
［構成］
図７は、本実施形態に係るシンクライアントシステムの構成を例示するブロック図である。図７を参照すると、本実施形態のシンクライアントシステムは、端末側物理マシン１００および仮想化サーバ２００を備えている。本実施形態のシンクライアントシステムは、第１および第２の実施形態のシンクライアントシステム（図２、図３、図５）と比較してさらに単純な構成を有する。
【００７８】
本実施形態では、転送基盤２１０は、仮想マシン２３０上の通知を端末側物理マシン１００に発行する通知発行部２１１を備えている。
【００７９】
仮想マシンアプリケーション２３２が通知を発行する場合、仮想マシンＯＳ２３１上の通知発行ＡＰＩが呼び出される。このとき、仮想マシンＯＳ２３１は転送基盤２１０に対して端末側物理マシン１００への通知要求（すなわち、仮想マシンアプリケーション２３２が発行した通知を含む通知情報を端末側物理マシン１００に送信する要求）を発行する。転送基盤２１０は、当該通知要求を転送基盤２１０内の通知発行部２１１に登録する。
【００８０】
通知受信ソフトウェア１１２は、転送基盤２１０内の通知発行部２１１に所定のタイミングで（例えば定期的に）問い合わせを行う。新規の通知情報が通知発行部２１１に登録されている場合、通知受信ソフトウェア１１２は通知情報を受信する。一方、通知発行部２１１は、ウェブソケット（WebSocket）などの技術により通知受信ソフトウェア１１２と常時接続状態を維持してもよい。この場合、通知発行部２１１は、通知情報が登録されると、通知受信ソフトウェア１１２に対して通知情報を送信する。
【００８１】
通知受信ソフトウェア１１２は、受信した通知情報をもとに、端末側物理マシンＯＳ１１０の通知発行ＡＰＩを用いて、端末側物理マシン１００上に通知を表示する。
【００８２】
［動作］
次に、本実施形態のシンクライアントシステムの動作を説明する。図８は、本実施形態のシンクライアントシステムの動作を例示するシーケンス図である。
【００８３】
本実施形態では、第１および第２の実施形態における「端末識別ＩＤの払い出し」（図４のステップＡ１ａ〜Ａ１ｄ、図６のステップＢ１ａ〜Ｂ１ｄ）を省略することができる。図７に示すように、本実施形態では転送基盤２１０自体が端末側物理マシン１００と１対１で対応付けられている。この場合、端末識別ＩＤを用いることなく、本発明の通知転送機能を実現することができる。ただし、この場合、仮想化サーバ２００上における常時セッション数および制御信号量が増加し得る。そこで、負荷分散の観点から、第１または第２の実施形態のように通知発行サーバ３００または通知発行サービス４００を設けてもよい。
【００８４】
「ステップＣ２」
仮想マシン２３０からの明示的なログアウト、仮想マシン接続ソフトウェア１１１のバックグラウンド化、端末側物理マシン１００が圏外に移行した場合などの仮想マシン２３０の利用中断時に（ステップＣ２ａ）、仮想マシン２３０はフォアグラウンドのアプリケーションをバックグラウンドに遷移させる（ステップＣ２ｂ）。
【００８５】
「ステップＣ３」
仮想マシン２３０上の仮想マシンアプリケーション２３２は、仮想マシンＯＳ２３１上の通知発行ＡＰＩを呼び出して通知を発行する。通知発行ＡＰＩは、仮想マシンＯＳ２３１上で通知の表示を行うとともに、転送基盤２１０に対して通知要求を送信する。
【００８６】
また、転送基盤２１０にインターフェースを設け、ステップＣ３として、外部制御系からの通知要求を転送基盤２１０に送信してもよい。また、ステップＣ５以下は同一のシーケンスを用いて、サービスのメンテナンス告知などの任意のメッセージを端末側物理マシン１００に送信することも可能である。
【００８７】
「ステップＣ５」
転送基盤２１０は受信した通知情報をもとに、通知発行部２１１に端末識別ＩＤおよび通知情報を登録し、通知受信ソフトウェア１１２からの問い合わせを待つ。一方、通知発行部２１１はウェブソケット（WebSocket）などの技術により、通知受信ソフトウェア１１２と常時接続状態を維持し、端末識別ＩＤとセッションを紐付けしてもよい。この場合、通知情報が登録されると、通知発行部２１１は当該端末識別ＩＤを持つ通知受信ソフトウェア１１２に対して通知情報を送信する。
【００８８】
「ステップＣ６」
通知受信ソフトウェア１１２は、所定のタイミングで（例えば定期的に）通知発行部２１１に通知の問い合わせを行う（ステップＣ６ａ）。該当する端末識別ＩＤの通知が存在する場合、通知受信ソフトウェア１１２は通知情報を受信する（ステップＣ６ｂ）。
【００８９】
このとき、通知発行部２１１は正当な通知受信ソフトウェア１１２からの問い合わせかどうかを判定してもよい。通知発行部２１１は、仮想マシン接続ソフトウェア１１１が転送基盤２１０と通信する際に用いる秘密情報を用いてかかる判定を行う。
【００９０】
「ステップＣ７」
通知情報を受信した通知受信ソフトウェア１１２は、端末側物理マシンＯＳ１１０の通知発行ＡＰＩを用いて、通知の表示を行う。このとき、当該通知を選択することで、仮想マシン接続ソフトウェア１１１を起動するように設定してもよい。
【００９１】
ステップＣ７で通知が選択された場合における動作（ステップＣ８およびＣ９）については、第１の実施形態における動作（ステップＡ８−１〜Ａ８−３、および、ステップＡ９）と同様である。
【００９２】
［効果］
本実施形態では、仮想マシン上の仮想マシンアプリケーションが通知を発行すると、仮想マシンＯＳは転送基盤の通知発行部に通知要求を送信し、通知発行部は端末側物理マシンの通知受信ソフトウェアからの問い合わせに応じて端末物理マシンに通知情報を送信する。これにより、仮想マシンにログインしていない状態の端末側物理マシンにおいて、仮想マシンアプリケーションが発行した通知を確認することができ、ユーザの利便性が向上する。さらに、本実施形態によると、通知発行部を仮想サーバの転送基盤に設けたことにより、第１または第２の実施形態のように別個のサーバ装置（通知発行サーバ、通知発行サービス）を用いる必要がなくなり、装置構成を簡略化することができる。
【００９３】
なお、本発明において、下記の形態が可能である。
［形態１］
上記第１の態様に係るサーバ装置のとおりである。
［形態２］
前記アプリケーションが所定のＡＰＩ（Application Program Interface）を呼び出した場合、前記仮想マシンのＯＳ（Operating System）は前記クライアント端末または前記第２のサーバに前記通知を転送するように前記転送部に要求する、
形態１に記載のサーバ装置。
［形態３］
前記転送部は、前記クライアント端末を識別する端末識別情報を保持し、前記通知および前記端末識別情報を前記第２のサーバ装置に転送する、
形態１または２に記載のサーバ装置。
［形態４］
前記第２のサーバ装置は、前記端末識別情報を発行し、前記転送部から転送された前記通知と前記端末識別情報を関連付けて保持し、前記端末識別情報により識別されるクライアント端末に前記通知を送信する、
形態３に記載のサーバ装置。
［形態５］
前記仮想マシンは、前記クライアント端末が前記仮想マシンの利用を中断した場合、前記アプリケーションをバックグラウンドに移行する、
形態１ないし３のいずれか一に記載のサーバ装置。
［形態６］
前記仮想マシンは、前記クライアント端末が前記通知を取得した場合、前記アプリケーションをフォアグラウンドに移行する、
形態１ないし５のいずれか一に記載のサーバ装置。
［形態７］
前記仮想マシンは、前記通知を識別する通知識別情報を生成し、
前記転送部は、前記クライアント端末、または、前記クライアント端末に前記通知および前記通知識別情報を送信する前記第２のサーバ装置に対して、前記通知および前記通知識別情報を転送し、
前記仮想マシンは、前記クライアント端末から前記通知識別情報を受信すると、前記通知識別情報により識別される通知を発行したアプリケーションを、フォアグラウンドに移行する、
形態６に記載のサーバ装置。
［形態８］
上記第２の態様に係るシンクライアントシステムのとおりである。
［形態９］
上記第３の態様に係る通知転送方法のとおりである。
［形態１０］
前記アプリケーションが所定のＡＰＩ（Application Program Interface）を呼び出した場合、前記仮想マシンのＯＳ（Operating System）が前記クライアント端末または前記第２のサーバに前記通知を転送するように要求するステップを含む、
形態９に記載の通知転送方法。
［形態１１］
前記クライアント端末を識別する端末識別情報を保持するステップと、
前記通知および前記端末識別情報を前記第２のサーバ装置に転送するステップと、を含む、
形態９または１０に記載の通知転送方法。
［形態１２］
前記クライアント端末が前記仮想マシンの利用を中断した場合、前記仮想マシンにおいて前記アプリケーションをバックグラウンドに移行するステップを含む、
形態９ないし１１のいずれか一に記載の通知転送方法。
［形態１３］
前記クライアント端末が前記通知を取得した場合、前記仮想マシンにおいて前記アプリケーションをフォアグラウンドに移行するステップを含む、
形態９ないし１２のいずれか一に記載の通知転送方法。
［形態１４］
前記通知を識別する通知識別情報を前記仮想マシンにおいて生成するステップと、
前記クライアント端末、または、前記クライアント端末に前記通知および前記通知識別情報を送信する前記第２のサーバ装置に、前記通知および前記通知識別情報を転送するステップと、
前記クライアント端末から前記通知識別情報を受信すると、前記通知識別情報により識別される通知を発行したアプリケーションを、前記仮想マシンにおいてフォアグラウンドに移行するステップと、を含む、
形態１３に記載の通知転送方法。
［形態１５］
上記第４の態様に係るプログラムのとおりである。
［形態１６］
前記アプリケーションが所定のＡＰＩ（Application Program Interface）を呼び出した場合、前記仮想マシンのＯＳ（Operating System）が前記クライアント端末または前記第２のサーバに前記通知を転送するように要求する処理を、前記コンピュータに実行させる、
形態１５に記載のプログラム。
［形態１７］
前記クライアント端末を識別する端末識別情報を保持する処理と、
前記通知および前記端末識別情報を前記第２のサーバ装置に転送する処理と、を前記コンピュータに実行させる、
形態１５または１６に記載のプログラム。
［形態１８］
前記クライアント端末が前記仮想マシンの利用を中断した場合、前記仮想マシンにおいて前記アプリケーションをバックグラウンドに移行する処理を、前記コンピュータに実行させる、
形態１５ないし１７のいずれか一に記載のプログラム。
［形態１９］
前記クライアント端末が前記通知を取得した場合、前記仮想マシンにおいて前記アプリケーションをフォアグラウンドに移行する処理を、前記コンピュータに実行させる、
形態１５ないし１８のいずれか一に記載のプログラム。
［形態２０］
前記通知を識別する通知識別情報を前記仮想マシンにおいて生成する処理と、
前記クライアント端末、または、前記クライアント端末に前記通知および前記通知識別情報を送信する前記第２のサーバ装置に、前記通知および前記通知識別情報を転送する処理と、
前記クライアント端末から前記通知識別情報を受信すると、前記通知識別情報により識別される通知を発行したアプリケーションを、前記仮想マシンにおいてフォアグラウンドに移行する処理と、を前記コンピュータに実行させる、
形態１９に記載のプログラム。
【００９４】
なお、上記特許文献の全開示内容は、本書に引用をもって繰り込み記載されているものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態の変更・調整が可能である。また、本発明の全開示の枠内において種々の開示要素（各請求項の各要素、各実施形態の各要素、各図面の各要素等を含む）の多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
【符号の説明】
【００９５】
１０    クライアント端末
２０    サーバ装置
２１    仮想マシン
２２    転送部
３０    第２のサーバ装置
１００    端末側物理マシン
１１０    端末側物理マシンＯＳ
１１１    仮想マシン接続ソフトウェア
１１２    通知受信ソフトウェア
１１３    通知処理部
２００    仮想化サーバ
２１０    転送基盤
２１１、３２０、４２０    通知発行部
２２０    仮想化ハイパーバイザ
２３０    仮想マシン
２３１    仮想マシンＯＳ
２３２    仮想マシンアプリケーション
３００    通知発行サーバ
３１０、４１０    端末識別ＩＤ発行部
４００    通知発行サービス
【図１】
2018018344.tif 000003
【図２】
2018018344.tif 000004
【図３】
2018018344.tif 000005
【図４】
2018018344.tif 000006
【図５】
2018018344.tif 000007
【図６】
2018018344.tif 000008
【図７】
2018018344.tif 000009
【図８】
2018018344.tif 000010