【文献】
金山健一,飯田正樹,「Cloud Foundry」を活用したPaaS基盤開発への取り組み,INTEC TECHNICAL JOURNAL,株式会社インテック,2015年 1月20日,第15号,pp.58〜65
(58)【調査した分野】(Int.Cl.,DB名)
前記サーバ装置は、前記アプリケーションに基づいて所定のAPI(Application Program Interface)を呼び出した場合、前記仮想マシンのOS(Operating System)に基づいて前記クライアント端末または前記第2のサーバ装置に前記通知を転送するように前記転送部に要求する、
請求項1に記載のシンクライアントシステム。
【発明を実施するための形態】
【0016】
はじめに、一実施形態の概要について説明する。なお、この概要に付記する図面参照符号は、専ら理解を助けるための例示であり、本発明を図示の態様に限定することを意図するものではない。
【0017】
図1は、一実施形態に係るシンクライアントシステムの構成を例示するブロック図である。
図1を参照すると、シンクライアントシステムは、クライアント端末10(例えば
図2、
図3、
図5、
図7の端末側物理マシン100)とサーバ装置20(例えば
図2、
図3、
図5、
図7の仮想化サーバ200)を備えている。シンクライアントシステムは、さらに第2のサーバ装置(例えば
図2、
図3の通知発行サーバ300、
図5の通知発行サービス400)を備えていてもよい。
【0018】
サーバ装置20は、クライアント端末10の利用に供するアプリケーション(例えば
図2、
図3、
図5、
図7の仮想マシンアプリケーション232)が動作する仮想マシン21(例えば
図2、
図3、
図5、
図7の仮想マシン230)と、アプリケーションが発行した通知を、クライアント端末10、または、当該通知をクライアント端末10に送信する第2のサーバ装置30に転送する転送部22(例えば
図2、
図3、
図5、
図7の転送基盤210)を有する。
【0019】
一実施形態のシンクライアントシステムでは、仮想マシン上で発生した通知、すなわち仮想マシン上で動作するアプリケーションが発行した通知を、クライアント端末(端末側物理マシン)に送信する。これにより、仮想マシン上における通知の発生を、仮想マシンにログインしていない状態のクライアント端末を操作するユーザに対しても知らせることができる。
【0020】
<実施形態1>
次に、第1の実施形態に係るシンクライアントシステムについて図面を参照して説明する。ここでは、端末側物理マシン上の仮想マシン接続ソフトウェアから仮想マシンに接続して画面確認および操作を行い、仮想マシン上で発生したイベントに応じて仮想マシン上で通知が発行されるシンクライアントシステムを想定する。
【0021】
[構成]
図2は、本実施形態に係るシンクライアントシステムの構成を例示するブロック図である。
図2を参照すると、シンクライアントシステムは、端末側物理マシン(クライアント端末)100、仮想化サーバ(サーバ装置)200、および、通知発行サーバ300を備えている。
【0022】
端末側物理マシン100は、端末側物理マシンOS(Operating System)110を有する。端末側物理マシンOS110上では、仮想マシン230をリモート利用する仮想マシン接続ソフトウェア111と、仮想マシン230上の通知イベントを受信する通知受信ソフトウェア112が動作する。端末側物理マシン100は、例えばパソコン(PC:Personal Computer)、スマートデバイスなどである。
【0023】
仮想化サーバ200は、転送基盤210、仮想化ハイパーバイザ220、および、仮想マシン230を備えている。仮想化サーバ200は、仮想マシン230が動作するサーバである。仮想化ハイパーバイザ220は、仮想マシン230をエミュレート実行するプロセスである。転送基盤210は、仮想マシン230と仮想マシン接続ソフトウェア111の間のデータ転送通信を行うプロセスであり、仮想マシン1台ごとに1プロセスが実行される。なお、本実施形態のシンクライアントシステムの変形例として、
図3に示すように、転送基盤210が仮想マシン230上で実行されるようにしてもよい。
【0024】
通知発行サーバ300は、端末識別ID発行部310および通知発行部320を有する。端末識別ID発行部310は、シンクライアントシステムを利用する端末側物理マシンを一意に識別する端末識別情報(以下「端末識別ID」という。)を発行する。通知発行部320は、仮想マシン230上の通知を含む通知情報を端末側物理マシン100に発行する。
【0025】
仮想マシン接続ソフトウェア111は、仮想マシン230にログインする際、通知発行サーバ300に接続し、端末識別ID発行部310から端末識別IDの払い出しを受ける。払い出された端末識別IDは、通知受信ソフトウェア112、転送基盤210、および、通知発行サーバ300の間で共有される。
【0026】
仮想マシンアプリケーション232が通知を発行する場合、仮想マシンOS231上の通知発行API(Application Program Interface)が呼び出される。このとき、仮想マシンOS231は転送基盤210に対して端末側物理マシン100への通知要求(すなわち、仮想マシンアプリケーション232が発行した通知を含む通知情報を端末側物理マシン100に送信する要求)を発行する。転送基盤210は、当該通知要求に端末識別IDを付加し、通知発行サーバ300に転送する。通知発行サーバ300は、この通知要求に応じて、通知発行部320に端末識別IDおよび通知情報を関連付けて登録する。
【0027】
通知受信ソフトウェア112は、通知発行サーバ300に所定のタイミングで(例えば定期的に)問い合わせを行う。通知発行部320に当該端末側物理マシン100の端末識別IDが登録されている場合、通知受信ソフトウェア112は端末識別IDに関連付けられた通知情報を受信する。一方、通知発行部320はウェブソケット(WebSocket)などの技術により、通知受信ソフトウェア112と接続状態を維持し、端末識別IDとセッションを紐付けしてもよい。この場合、通知情報が登録されると、通知発行部320は当該端末識別IDを持つ通知受信ソフトウェア112に対して通知情報を送信する。
【0028】
通知受信ソフトウェア112は、受信した通知情報をもとに、端末側物理マシンOS110の通知発行API(Application Program Interface)を用いて、端末側物理マシン100上に通知を表示する。
【0029】
[動作]
次に、本実施形態のシンクライアントシステムの動作を説明する。
図4は、本実施形態のシンクライアントシステムの動作を例示するシーケンス図である。
【0030】
「ステップA1」
仮想マシン接続ソフトウェア111は、転送基盤210を介して仮想マシン230にログインする(ステップA1a)。すると、仮想マシン接続ソフトウェア111の要求に応じて(ステップA1b)、通知発行サーバ300の端末識別ID発行部310は端末識別IDを払い出す(ステップA1c)。払い出された端末識別IDは、通知受信ソフトウェア112または端末側物理マシンOS110、および、転送基盤210に送信されて共有され(ステップA1d)、仮想マシン230と端末識別IDが対応付けて管理される。
【0031】
仮想マシン230、または、仮想マシン230を利用するユーザもしくはユーザの所属組織単位で、通知情報の端末側物理マシン100への発行を制限してもよい。一例として、端末識別ID発行部310は、ログイン時に仮想マシン230の情報またはユーザ情報の設定を参照し、制限が有効である場合、端末識別IDとして空値を設定する。これにより、通知情報の端末側物理マシン100への発行を無効化することができる。
【0032】
また、本実施形態の方式に対応しないバージョンの仮想マシン接続ソフトウェア111については、端末識別IDの払い出し要求が行われない。このとき、端末識別IDとして空値が設定され、本実施形態の方式に基づく機能が無効化される。
【0033】
「ステップA2」
仮想マシン230からの明示的なログアウト、仮想マシン接続ソフトウェア111のバックグラウンド化、端末側物理マシン100が圏外に移行した場合などの仮想マシン230の利用中断時に(ステップA2a)、仮想マシン230はフォアグラウンドのアプリケーションをバックグラウンドに遷移させる(ステップA2b)。
【0034】
通知を行う仮想マシンアプリケーション232(メールアプリなど)の仕様によっては、アプリケーションがフォアグラウンド状態の場合、仮想マシン230上においても通知を発行しない場合がある。この場合、本実施形態に基づいて端末側物理マシン100への通知を行うことができない。そこで、仮想マシン230の利用中断時にアプリケーションをバックグラウンド化することにより、通知が発行されないことを防ぐ。
【0035】
なお、仮想マシン接続ソフトウェア111が仮想マシン230を利用中の場合、仮想マシン230上の通知を直接確認することができる。この場合、端末側物理マシン100に通知を行う必要はない。したがって、本実施形態による通知情報の転送は行わない。
【0036】
「ステップA3」
仮想マシン230上の仮想マシンアプリケーション232は、仮想マシンOS231上の通知発行APIを呼び出して通知を発行する。通知発行APIは、仮想マシンOS231上での通知の表示を行うとともに、転送基盤210に対して通知要求を送信する。
【0037】
このとき、仮想マシン230から通知発行サーバ300に通知要求を直接送信することもできる。ただし、この場合、仮想マシン230の識別情報と端末識別IDの対応付けを通知発行サーバ300または仮想マシン230側で管理する必要がある。
【0038】
また、転送基盤210にインターフェースを設け、ステップA3として、外部制御系からの通知要求を転送基盤210に送信することもできる。このとき、ステップA4以下については同一のシーケンスを用いて、サービスのメンテナンス告知などの任意のメッセージを端末側物理マシン100に送信することも可能である。
【0039】
「ステップA4」
転送基盤210は、受信した通知情報およびプロセス内部に保持している端末識別IDを用いて、通知発行サーバ300に通知要求を送信する。一方、転送基盤210は通知情報を保持し、転送基盤210が通知受信ソフトウェア112からの問い合わせを待つようにしてもよい。また、転送基盤210は通知受信ソフトウェア112との常時セッションを用いて、通知情報を通知受信ソフトウェア112に送信してもよい。
【0040】
本実施形態において、仮想マシン230、または、仮想マシン230を利用するユーザもしくはユーザの所属組織単位で、本実施形態による通知情報の内容を制御することができる。この場合、仮想マシン接続ソフトウェア111による仮想マシン230へのログイン時に、転送基盤210に「全通知内容」、「通知のタイトル情報」、「通知を発行したアプリケーション名」、「通知の有無のみ」などの通知レベルを登録しておく。また、ステップA4で転送基盤210から通知要求を送信する前に、通知レベルに応じたフィルタリングを行う。
【0041】
「ステップA5」
通知発行サーバ300は受信した通知情報をもとに、通知発行部320に端末識別IDおよび通知情報を登録し、通知受信ソフトウェア112からの問い合わせを待つ。一方、通知発行部320はウェブソケット(WebSocket)などの技術により、通知受信ソフトウェア112と常時接続状態を維持し、端末識別IDとセッションを紐付けしてもよい。この場合、通知情報が登録されると、通知発行部320は当該端末識別IDを持つ通知受信ソフトウェア112に対して通知情報を送信する。
【0042】
「ステップA6」
通知受信ソフトウェア112は、所定のタイミングで(例えば定期的に)通知発行部320または転送基盤210に通知の問い合わせを行う(ステップA6a)。該当する端末識別IDの通知が存在する場合、通知受信ソフトウェア112は通知情報を受信する(ステップA6b)。
【0043】
ここで、通知発行部320または転送基盤210は、正当な通知受信ソフトウェア112からの問い合わせかどうかを判定してもよい。通知発行部320または転送基盤210は、仮想マシン接続ソフトウェア111が転送基盤210と通信する際に用いる秘密情報を用いてかかる判定を行うことができる。
【0044】
「ステップA7」
通知情報を受信した通知受信ソフトウェア112は、端末側物理マシンOS110の通知発行APIを用いて、通知の表示を行う。このとき、ユーザが当該通知を選択することで、仮想マシン接続ソフトウェア111が起動されるようにしてもよい。
【0045】
ステップA7で通知が選択された場合、仮想マシン接続ソフトウェア111は、仮想マシン230、または、仮想マシン230を利用するユーザもしくはユーザの所属組織の設定に応じて、以下のステップA8−1〜A8−3の動作のうちの1つを選択して実行する。なお、かかる設定は最終ログインのタイミングで読み込まれ、仮想マシン接続ソフトウェア111内で保持される。
【0046】
「ステップA8−1」
仮想マシン接続ソフトウェア111は、ログイン画面を表示する。
【0047】
「ステップA8−2」
仮想マシン接続ソフトウェア111は、予め定められたセッション有効期限内である場合、通知の発行元の仮想マシン230に自動ログインする。一方、仮想マシン接続ソフトウェア111は、有効期限を過ぎている場合、ログイン画面を表示する。
【0048】
「ステップA8−3」
仮想マシン接続ソフトウェア111は、通知の発行元の仮想マシン230に自動ログインする。
【0049】
ステップA8−1〜A8−3のいずれかのフローから仮想マシン230へのログイン操作が行われた場合、さらに以下のステップA9を実施してもよい。
【0050】
「ステップA9」
端末側物理マシン100上の通知の選択を契機として、仮想マシン接続ソフトウェア111が仮想マシン230にログインした場合、仮想マシンOS231は次のように振る舞う。すなわち、仮想マシンOS231は、端末側物理マシン100で選択された通知に対応する仮想マシンOS231上の通知が選択された場合と同様に振る舞う。例えばメール着信通知の場合、端末側物理マシン100上でメール着信通知を選択し、仮想マシン230にログインすると、ログイン後に、仮想マシン230上でメールアプリが自動で起動する。
【0051】
アプリケーションを自動で起動するために、例えば以下の方法を用いることができる。仮想マシン230上において本実施形態で対象とされる通知に対して通知を識別する通知識別IDを付与する。また、端末側物理マシン100へ送信する通知情報に通知識別IDを含める。仮想マシン接続ソフトウェア111から仮想マシン230にログインするとき、仮想マシン接続ソフトウェア111は仮想マシン230に通知識別IDを通知する。仮想マシン230は、通知識別IDを参照し、仮想マシン230上で対応する通知が選択された場合と同様の処理を実行する。
【0052】
[効果]
本実施形態では、仮想マシン上の仮想マシンアプリケーションが通知を発行すると、仮想マシンOSから転送基盤を経由して通知発行サーバに通知要求が送信され、通知発行サーバは端末側物理マシンの通知受信ソフトウェアからの問い合わせに応じて端末物理マシンに通知情報を送信する。これにより、仮想マシンにログインしていない状態の端末側物理マシンにおいて、仮想マシンアプリケーションが発行した通知を確認することができ、ユーザの利便性が向上する。
【0053】
また、本実施形態のように通知選択時の動作を仮想マシン上で再現することにより、よりシームレスに仮想マシンを利用することが可能となる。さらに、本実施形態によると、特定の仮想マシンのユーザまたはユーザの所属する組織単位を対象とした任意メッセージの送信も可能となる。
【0054】
<実施形態2>
次に、第2実施形態に係るシンクライアントシステムについて図面を参照して説明する。
【0055】
[構成]
図5は、本実施形態に係るシンクライアントシステムの構成を例示するブロック図である。
図5を参照すると、シンクライアントシステムは、端末側物理マシン(クライアント端末)100、仮想化サーバ(サーバ装置)200、および、通知発行サービス400を備えている。本実施形態のシンクライアントシステムは通知発行サービス400を備えている点で、通知発行サーバ300を備えた第1の実施形態のシンクライアントシステム(
図2、
図3)と相違する。
【0056】
通知発行サービス400は、端末側物理マシンOS(Operating System)のベンダが提供するサービスである。通知発行サービス400は、端末識別ID発行部410および通知発行部420を備えている。端末識別ID発行部410は、端末側物理マシン100を一意に識別する端末識別情報(「端末識別ID」という。)を発行する。通知発行部420は、リクエストに応じて端末側物理マシン100に通知情報を発行する。
【0057】
通知処理部113は、端末側物理マシンOS110の標準サービスである。通知処理部113は、通知発行サービス400と連携して通知を受信し、端末側物理マシンOS110上で動作するソフトウェアに対して通知を転送する。
【0058】
仮想マシン接続ソフトウェア111は、仮想マシン230にログインする際、通知発行サービス400に接続して端末識別ID発行部410から端末識別IDの払い出しを受ける。払い出された端末識別IDは、端末側物理マシンOS110および転送基盤210で共有される。
【0059】
仮想マシンアプリケーション232が通知を発行する場合、仮想マシンOS231上の通知発行API(Application Program Interface)が呼び出される。このとき、仮想マシンOS231は転送基盤210に対して端末側物理マシン100への通知要求(すなわち、仮想マシンアプリケーション232が発行した通知を含む通知情報を端末側物理マシン100に送信する要求)を発行する。転送基盤210は、当該通知要求に端末識別IDを付加して、通知発行サービス400に転送する。通知発行サービス400は、この通知要求により、端末識別IDに応じた端末側物理マシン100に通知情報を送信する。
【0060】
通知情報を受信した端末側物理マシンOS110は、通知処理部113を通して仮想マシン接続ソフトウェア111に通知を転送する。仮想マシン接続ソフトウェア111は受信した通知情報をもとに、端末側物理マシンOS110の通知発行APIを用いて、端末側物理マシン100上に通知を表示する。
【0061】
[動作]
次に、本実施形態のシンクライアントシステムの動作を説明する。
図6は、本実施形態のシンクライアントシステムの動作を例示するシーケンス図である。
【0062】
「ステップB1」
仮想マシン接続ソフトウェア111が転送基盤210を介して仮想マシン230にログインすると(ステップB1a)、仮想マシン接続ソフトウェア111の要求に応じて(ステップB1b)、通知発行サービス400の端末識別ID発行部410が端末識別IDを払い出す(ステップB1c)。払い出された端末識別IDは、通知受信ソフトウェア112または端末側物理マシンOS110、および、転送基盤210に送信されて共有され(ステップB1d)、仮想マシン230と端末識別IDが対応付けて管理される。
【0063】
仮想マシン230、または、仮想マシン230を利用するユーザもしくはユーザの所属組織単位で、本実施形態に基づく通知情報の端末側物理マシン100への発行を制限してもよい。この場合、端末識別ID発行部410は、ログイン時に仮想マシン230の情報またはユーザ情報の設定を参照する。制限が有効である場合、端末識別ID発行部410は端末識別IDとして空値を設定する。これにより、本実施形態による通知情報の発行を無効化することができる。
【0064】
また、本実施形態に対応しないバージョンの仮想マシン接続ソフトウェア111については、端末識別IDの払い出し要求が行われない。このとき、端末識別IDとして空値が設定され、本実施形態の通知情報の発行機能が無効化される。
【0065】
「ステップB2」
仮想マシン230からの明示的なログアウト、仮想マシン接続ソフトウェア111のバックグラウンド化、端末側物理マシン100が圏外に移行した場合などの仮想マシン230の利用中断時に(ステップB2a)、仮想マシン230はフォアグラウンドのアプリケーションをバックグラウンドに遷移させる(ステップB2b)。
【0066】
「ステップB3」
仮想マシン230上の仮想マシンアプリケーション232は、仮想マシンOS231上の通知発行APIを呼び出して通知を発行する。通知発行APIは、仮想マシンOS231上での通知の表示を行うとともに、転送基盤210に対して通知要求を送信する。
【0067】
このとき、仮想マシン230から通知発行サービス400に通知要求を直接送信することも可能である。ただし、この場合、仮想マシン230の識別情報と端末識別IDの対応付けを通知発行サービス400または仮想マシン230側で管理する必要がある。
【0068】
また、通知発行サービス400では、ベンダに応じて通知要求時にアプリケーション開発者証明書が必要となる場合がある。この証明書には、有効期限が設けられている。仮想マシン230から通知発行サービス400に通知要求を直接送信する場合、各仮想マシン230中に証明書を配置する必要がある。したがって、証明書を更新する場合、各仮想マシン230へ配布することになり、運用効率が悪い。一方、転送基盤210を経由する本実施形態によると、証明書を仮想化サーバ200ごとに配置することができる。これにより、証明書更新の手続きを単純化することができる。
【0069】
さらに、転送基盤210にインターフェースを設け、ステップB3として、外部制御系からの通知要求を転送基盤210に送信することができる。また、ステップB4以下について同一のシーケンスを用いて、サービスのメンテナンス告知などの任意のメッセージを端末側物理マシン100に送信することも可能である。
【0070】
「ステップB4」
転送基盤210は、受信した通知情報およびプロセス内部に保持している端末識別IDを用いて、通知発行サービス400に通知要求を送信する。一方、転送基盤210は通知情報を保持し、転送基盤210が通知受信ソフトウェア112からの問い合わせを待つようにしてもよい。また、転送基盤210は通知受信ソフトウェア112との常時セッションを用いて、通知情報を通知受信ソフトウェア112に送信してもよい。
【0071】
「ステップB5」
通知発行サービス400は、受信した通知情報をもとに、端末識別IDに応じた端末側物理マシン100に通知情報を送信する。
【0072】
「ステップB6」
端末側物理マシンOS110上の通知処理部113は、通知発行サービス400から通知情報を受信する。この場合、通知先端末の正当性については、通知発行サービス400が担保する。
【0073】
「ステップB7」
通知情報を受信した通知処理部113は、端末側物理マシンOS110の通知発行APIを用いて、通知の表示を行う。このとき、当該通知を選択することで、仮想マシン接続ソフトウェア111を起動するように設定してもよい。
【0074】
ステップB7で通知が選択された場合における動作(ステップB8およびB9)については、第1の実施形態における動作(ステップA8−1〜A8−3、および、ステップA9)と同様である。
【0075】
[効果]
本実施形態では、仮想マシン上の仮想マシンアプリケーションが通知を発行すると、仮想マシンOSから転送基盤を経由して通知発行サービスに通知要求が送信され、通知発行サービスは端末物理マシンに通知情報を送信する。これにより、仮想マシンにログインしていない状態の端末側物理マシンにも仮想マシンアプリケーションが発行した通知を確認することができ、ユーザの利便性が向上する。さらに、本実施形態によると、通知発行サービスとして端末側物理マシンOSのベンダが提供するサービスを利用することで、第1の実施形態のように独自に通知発行サーバを設けた場合と比較して、より安価にシステムを構築・運用することができる。
【0076】
<実施形態3>
次に、第3の実施形態に係るシンクライアントシステムについて図面を参照して説明する。
【0077】
[構成]
図7は、本実施形態に係るシンクライアントシステムの構成を例示するブロック図である。
図7を参照すると、本実施形態のシンクライアントシステムは、端末側物理マシン100および仮想化サーバ200を備えている。本実施形態のシンクライアントシステムは、第1および第2の実施形態のシンクライアントシステム(
図2、
図3、
図5)と比較してさらに単純な構成を有する。
【0078】
本実施形態では、転送基盤210は、仮想マシン230上の通知を端末側物理マシン100に発行する通知発行部211を備えている。
【0079】
仮想マシンアプリケーション232が通知を発行する場合、仮想マシンOS231上の通知発行APIが呼び出される。このとき、仮想マシンOS231は転送基盤210に対して端末側物理マシン100への通知要求(すなわち、仮想マシンアプリケーション232が発行した通知を含む通知情報を端末側物理マシン100に送信する要求)を発行する。転送基盤210は、当該通知要求を転送基盤210内の通知発行部211に登録する。
【0080】
通知受信ソフトウェア112は、転送基盤210内の通知発行部211に所定のタイミングで(例えば定期的に)問い合わせを行う。新規の通知情報が通知発行部211に登録されている場合、通知受信ソフトウェア112は通知情報を受信する。一方、通知発行部211は、ウェブソケット(WebSocket)などの技術により通知受信ソフトウェア112と常時接続状態を維持してもよい。この場合、通知発行部211は、通知情報が登録されると、通知受信ソフトウェア112に対して通知情報を送信する。
【0081】
通知受信ソフトウェア112は、受信した通知情報をもとに、端末側物理マシンOS110の通知発行APIを用いて、端末側物理マシン100上に通知を表示する。
【0082】
[動作]
次に、本実施形態のシンクライアントシステムの動作を説明する。
図8は、本実施形態のシンクライアントシステムの動作を例示するシーケンス図である。
【0083】
本実施形態では、第1および第2の実施形態における「端末識別IDの払い出し」(
図4のステップA1a〜A1d、
図6のステップB1a〜B1d)を省略することができる。
図7に示すように、本実施形態では転送基盤210自体が端末側物理マシン100と1対1で対応付けられている。この場合、端末識別IDを用いることなく、本発明の通知転送機能を実現することができる。ただし、この場合、仮想化サーバ200上における常時セッション数および制御信号量が増加し得る。そこで、負荷分散の観点から、第1または第2の実施形態のように通知発行サーバ300または通知発行サービス400を設けてもよい。
【0084】
「ステップC2」
仮想マシン230からの明示的なログアウト、仮想マシン接続ソフトウェア111のバックグラウンド化、端末側物理マシン100が圏外に移行した場合などの仮想マシン230の利用中断時に(ステップC2a)、仮想マシン230はフォアグラウンドのアプリケーションをバックグラウンドに遷移させる(ステップC2b)。
【0085】
「ステップC3」
仮想マシン230上の仮想マシンアプリケーション232は、仮想マシンOS231上の通知発行APIを呼び出して通知を発行する。通知発行APIは、仮想マシンOS231上で通知の表示を行うとともに、転送基盤210に対して通知要求を送信する。
【0086】
また、転送基盤210にインターフェースを設け、ステップC3として、外部制御系からの通知要求を転送基盤210に送信してもよい。また、ステップC5以下は同一のシーケンスを用いて、サービスのメンテナンス告知などの任意のメッセージを端末側物理マシン100に送信することも可能である。
【0087】
「ステップC5」
転送基盤210は受信した通知情報をもとに、通知発行部211に端末識別IDおよび通知情報を登録し、通知受信ソフトウェア112からの問い合わせを待つ。一方、通知発行部211はウェブソケット(WebSocket)などの技術により、通知受信ソフトウェア112と常時接続状態を維持し、端末識別IDとセッションを紐付けしてもよい。この場合、通知情報が登録されると、通知発行部211は当該端末識別IDを持つ通知受信ソフトウェア112に対して通知情報を送信する。
【0088】
「ステップC6」
通知受信ソフトウェア112は、所定のタイミングで(例えば定期的に)通知発行部211に通知の問い合わせを行う(ステップC6a)。該当する端末識別IDの通知が存在する場合、通知受信ソフトウェア112は通知情報を受信する(ステップC6b)。
【0089】
このとき、通知発行部211は正当な通知受信ソフトウェア112からの問い合わせかどうかを判定してもよい。通知発行部211は、仮想マシン接続ソフトウェア111が転送基盤210と通信する際に用いる秘密情報を用いてかかる判定を行う。
【0090】
「ステップC7」
通知情報を受信した通知受信ソフトウェア112は、端末側物理マシンOS110の通知発行APIを用いて、通知の表示を行う。このとき、当該通知を選択することで、仮想マシン接続ソフトウェア111を起動するように設定してもよい。
【0091】
ステップC7で通知が選択された場合における動作(ステップC8およびC9)については、第1の実施形態における動作(ステップA8−1〜A8−3、および、ステップA9)と同様である。
【0092】
[効果]
本実施形態では、仮想マシン上の仮想マシンアプリケーションが通知を発行すると、仮想マシンOSは転送基盤の通知発行部に通知要求を送信し、通知発行部は端末側物理マシンの通知受信ソフトウェアからの問い合わせに応じて端末物理マシンに通知情報を送信する。これにより、仮想マシンにログインしていない状態の端末側物理マシンにおいて、仮想マシンアプリケーションが発行した通知を確認することができ、ユーザの利便性が向上する。さらに、本実施形態によると、通知発行部を仮想サーバの転送基盤に設けたことにより、第1または第2の実施形態のように別個のサーバ装置(通知発行サーバ、通知発行サービス)を用いる必要がなくなり、装置構成を簡略化することができる。
【0093】
なお、本発明において、下記の形態が可能である。
[形態1]
上記第1の態様に係るサーバ装置のとおりである。
[形態2]
前記アプリケーションが所定のAPI(Application Program Interface)を呼び出した場合、前記仮想マシンのOS(Operating System)は前記クライアント端末または前記第2のサーバに前記通知を転送するように前記転送部に要求する、
形態1に記載のサーバ装置。
[形態3]
前記転送部は、前記クライアント端末を識別する端末識別情報を保持し、前記通知および前記端末識別情報を前記第2のサーバ装置に転送する、
形態1または2に記載のサーバ装置。
[形態4]
前記第2のサーバ装置は、前記端末識別情報を発行し、前記転送部から転送された前記通知と前記端末識別情報を関連付けて保持し、前記端末識別情報により識別されるクライアント端末に前記通知を送信する、
形態3に記載のサーバ装置。
[形態5]
前記仮想マシンは、前記クライアント端末が前記仮想マシンの利用を中断した場合、前記アプリケーションをバックグラウンドに移行する、
形態1ないし3のいずれか一に記載のサーバ装置。
[形態6]
前記仮想マシンは、前記クライアント端末が前記通知を取得した場合、前記アプリケーションをフォアグラウンドに移行する、
形態1ないし5のいずれか一に記載のサーバ装置。
[形態7]
前記仮想マシンは、前記通知を識別する通知識別情報を生成し、
前記転送部は、前記クライアント端末、または、前記クライアント端末に前記通知および前記通知識別情報を送信する前記第2のサーバ装置に対して、前記通知および前記通知識別情報を転送し、
前記仮想マシンは、前記クライアント端末から前記通知識別情報を受信すると、前記通知識別情報により識別される通知を発行したアプリケーションを、フォアグラウンドに移行する、
形態6に記載のサーバ装置。
[形態8]
上記第2の態様に係るシンクライアントシステムのとおりである。
[形態9]
上記第3の態様に係る通知転送方法のとおりである。
[形態10]
前記アプリケーションが所定のAPI(Application Program Interface)を呼び出した場合、前記仮想マシンのOS(Operating System)が前記クライアント端末または前記第2のサーバに前記通知を転送するように要求するステップを含む、
形態9に記載の通知転送方法。
[形態11]
前記クライアント端末を識別する端末識別情報を保持するステップと、
前記通知および前記端末識別情報を前記第2のサーバ装置に転送するステップと、を含む、
形態9または10に記載の通知転送方法。
[形態12]
前記クライアント端末が前記仮想マシンの利用を中断した場合、前記仮想マシンにおいて前記アプリケーションをバックグラウンドに移行するステップを含む、
形態9ないし11のいずれか一に記載の通知転送方法。
[形態13]
前記クライアント端末が前記通知を取得した場合、前記仮想マシンにおいて前記アプリケーションをフォアグラウンドに移行するステップを含む、
形態9ないし12のいずれか一に記載の通知転送方法。
[形態14]
前記通知を識別する通知識別情報を前記仮想マシンにおいて生成するステップと、
前記クライアント端末、または、前記クライアント端末に前記通知および前記通知識別情報を送信する前記第2のサーバ装置に、前記通知および前記通知識別情報を転送するステップと、
前記クライアント端末から前記通知識別情報を受信すると、前記通知識別情報により識別される通知を発行したアプリケーションを、前記仮想マシンにおいてフォアグラウンドに移行するステップと、を含む、
形態13に記載の通知転送方法。
[形態15]
上記第4の態様に係るプログラムのとおりである。
[形態16]
前記アプリケーションが所定のAPI(Application Program Interface)を呼び出した場合、前記仮想マシンのOS(Operating System)が前記クライアント端末または前記第2のサーバに前記通知を転送するように要求する処理を、前記コンピュータに実行させる、
形態15に記載のプログラム。
[形態17]
前記クライアント端末を識別する端末識別情報を保持する処理と、
前記通知および前記端末識別情報を前記第2のサーバ装置に転送する処理と、を前記コンピュータに実行させる、
形態15または16に記載のプログラム。
[形態18]
前記クライアント端末が前記仮想マシンの利用を中断した場合、前記仮想マシンにおいて前記アプリケーションをバックグラウンドに移行する処理を、前記コンピュータに実行させる、
形態15ないし17のいずれか一に記載のプログラム。
[形態19]
前記クライアント端末が前記通知を取得した場合、前記仮想マシンにおいて前記アプリケーションをフォアグラウンドに移行する処理を、前記コンピュータに実行させる、
形態15ないし18のいずれか一に記載のプログラム。
[形態20]
前記通知を識別する通知識別情報を前記仮想マシンにおいて生成する処理と、
前記クライアント端末、または、前記クライアント端末に前記通知および前記通知識別情報を送信する前記第2のサーバ装置に、前記通知および前記通知識別情報を転送する処理と、
前記クライアント端末から前記通知識別情報を受信すると、前記通知識別情報により識別される通知を発行したアプリケーションを、前記仮想マシンにおいてフォアグラウンドに移行する処理と、を前記コンピュータに実行させる、
形態19に記載のプログラム。
【0094】
なお、上記特許文献の全開示内容は、本書に引用をもって繰り込み記載されているものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態の変更・調整が可能である。また、本発明の全開示の枠内において種々の開示要素(各請求項の各要素、各実施形態の各要素、各図面の各要素等を含む)の多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。