(58)【調査した分野】(Int.Cl.,DB名)
前記実行手段が複数の前記第1アプリケーションを実行することにより表示するように要求される前記各画像に対して、視認者に視認される順序をそれぞれ決定する決定手段を有し、
前記生成手段は、前記決定手段により決定された順序に応じて前記各画像から第1画面を生成することを特徴とする請求項1に記載の情報処理システム。
前記生成手段は、前記決定手段により決定された順序に応じて、前記視認者の視認方向の奥側から手前側に向かって前記各画像を重ねて表示した画面を前記第1画面として生成し、
前記通知手段は、前記第1画面において前記視認方向の最も手前側に表示される画像の表示を要求した第1アプリケーションの識別情報を前記クライアント装置に通知する
ことを特徴とする請求項3に記載の情報処理システム。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明は、サーバ装置が第1アプリケーションを実行することにより生成される第1画面、およびいずれかの実行装置が第2アプリケーションを実行することにより生成される第2画面を、それぞれサーバ装置が決定する順序に従って表示させることを目的とする。
【課題を解決するための手段】
【0005】
本発明の請求項1に係る情報処理システムは、サーバ装置とクライアント装置とを有する情報処理システムであって、前記サーバ装置は、各々が画像を表示するように要求する複数の第1アプリケーションを実行する実行手段と、前記第1アプリケーションと種別の異なるアプリケーションであって前記クライアント装置により要求された第2アプリケーションが前記サーバ装置によって実行される場合に、当該第2アプリケーションに対応する第1アプリケーションを前記実行手段に実行させる実行制御手段と、前記実行手段が前記第1アプリケーションを実行することにより表示するように要求される画像から第1画面を生成する生成手段と、前記生成手段が生成した前記第1画面を示す情報を前記クライアント装置に送信する送信手段と
、を有し、前記クライアント装置は、第1アプリケーション、および第2アプリケーションの実行を要求する要求手段と、前記サーバ装置から前記第1画面を示す情報を取得する第1取得手段と、前記サーバ装置が前記第2アプリケーションを実行することにより生成される第2画面を示す情報を取得する第2取得手段と、前記第1画面を表示する表示手段と、前記第1画面において前記第2アプリケーションに対応する前記第1アプリケーションの画像が表示される場合に、当該第2アプリケーションを実行することにより生成される前記第2画面を前記表示手段に表示させる表示制御手段と
、を有することを特徴とする。
【0006】
本発明の請求項2に係る情報処理システムは、請求項1に記載の態様において、前記実行手段が複数の前記第1アプリケーションを実行することにより表示するように要求される前記各画像に対して、視認者に視認される順序をそれぞれ決定する決定手段を有し、前記生成手段は、前
記決定手段により決定された順序に応じて前記各画像から第1画面を生成することを特徴とする。
【0007】
本発明の請求項3に係る情報処理システムは、請求
項2に記載の態様において、前記サーバ装置は、前記第1画面において表示される画像の表示を要求した第1アプリケーションの識別情報を前記クライアント装置に通知する通知手段を有し、前記クライアント装置の前記表示制御手段は、前記通知手段により通知された前記識別情報が、前記第2アプリケーションに対応する前記第1アプリケーションの識別情報である場合に、当該第2アプリケーションを実行することにより生成される前記第2画面を前記表示手段に表示させることを特徴とする。
【0008】
本発明の請求項4に係る情報処理システムは、請求項3に記載の態様において、前記生成手段は、前記決定手段により決定された順序に応じて、前記視認者の視認方向の奥側から手前側に向かって前記各画像を重ねて表示した画面を前記第1画面として生成し、前記通知手段は、前記第1画面において前記視認方向の最も手前側に表示される画像の表示を要求した第1アプリケーションの識別情報を前記クライアント装置に通知することを特徴とする。
【0009】
本発明の請求項5に係る情報処理システムは、請求項
2から4のいずれか1項に記載の態様において、前記第2アプリケーションに対応する前記第1アプリケーションの画像は、前記第2画面が表示されることを前記視認者に報知するための画像であることを特徴とする。
本発明の請求項6に係る情報処理システムは、サーバ装置とクライアント装置と実行装置とを有する情報処理システムであって、前記サーバ装置は、各々が画像を表示するように要求する複数の第1アプリケーションを実行する実行手段と、前記第1アプリケーションと種別の異なるアプリケーションであって前記クライアント装置により要求された第2アプリケーションが前記実行装置によって実行される場合に、当該第2アプリケーションに対応する第1アプリケーションを前記実行手段に実行させる実行制御手段と、前記実行手段が前記第1アプリケーションを実行することにより表示するように要求される画像から第1画面を生成する生成手段と、前記生成手段が生成した前記第1画面を示す情報を前記クライアント装置に送信する送信手段と、を有し、前記クライアント装置は、第1アプリケーション、および第2アプリケーションの実行を要求する要求手段と、前記サーバ装置から前記第1画面を示す情報を取得する第1取得手段と、前記実行装置が前記第2アプリケーションを実行することにより生成される第2画面を示す情報を取得する第2取得手段と、前記第1画面を表示する表示手段と、前記第1画面において前記第2アプリケーションに対応する前記第1アプリケーションの画像が表示される場合に、当該第2アプリケーションを実行することにより生成される前記第2画面を前記表示手段に表示させる表示制御手段と、を有することを特徴とする。
【0010】
本発明の請求項
7に係るクライアント装置は、各々が画像を表示するように要求する複数の第1アプリケーションを実行する実行手段と、第2アプリケーションがサーバ装置によって実行される場合に、当該第2アプリケーションに対応する第1アプリケーションを前記実行手段に実行させる実行制御手段と、前記実行手段が前記第1アプリケーションを実行することにより表示するように要求される画像から第1画面を生成する生成手段と、前記生成手段が生成した前記第1画面を示す情報を送信する送信手段と
、を有するサーバ装置と通信するクライアント装置であって、第1アプリケーション、および第2アプリケーションの実行を要求する要求手段と、前記サーバ装置から前記第1画面を示す情報を取得する第1取得手段と、前記サーバ装置が前記第2アプリケーションを実行することにより生成される第2画面を示す情報を取得する第2取得手段と、前記第1画面を表示する表示手段と、前記第1画面において前記第2アプリケーションに対応する前記第1アプリケーションの画像が表示される場合に、当該第2アプリケーションを実行することにより生成される前記第2画面を前記表示手段に表示させる表示制御手段と
、を有することを特徴とする。
【0011】
本発明の請求項
8に係るサーバ装置は、第1アプリケーション、および第2アプリケーションの実行を要求する要求手段と、前記第1アプリケーションを実行することにより生成される第1画面を示す情報を取得する第1取得手段と、サーバ装置が前記第2アプリケーションを実行することにより生成される第2画面を示す情報を取得する第2取得手段と、前記第1画面を表示する表示手段と、前記第1画面において前記第2アプリケーションに対応する前記第1アプリケーションの画像が表示される場合に、当該第2アプリケーションを実行することにより生成される前記第2画面を前記表示手段に表示させる表示制御手段と
、を有するクライアント装置と通信するサーバ装置であって、各々が画像を表示するように要求する複数の第1アプリケーションを実行する実行手段と、前記クライアント装置に要求された前記第2アプリケーションが前記サーバ装置によって実行される場合に、当該第2アプリケーションに対応する第1アプリケーションを前記実行手段に実行させる実行制御手段と、前記実行手段が前記第1アプリケーションを実行することにより表示するように要求される画像から前記第1画面を生成する生成手段と、前記生成手段が生成した前記第1画面を示す情報を前記クライアント装置に送信する送信手段と
、を有することを特徴とする。
【0012】
本発明の請求項
9に係るプログラムは、各々が画像を表示するように要求する複数の第1アプリケーションを実行する実行手段と、第2アプリケーションがサーバ装置によって実行される場合に、当該第2アプリケーションに対応する第1アプリケーションを前記実行手段に実行させる実行制御手段と、前記実行手段が前記第1アプリケーションを実行することにより表示するように要求される画像から第1画面を生成する生成手段と、前記生成手段が生成した前記第1画面を示す情報を送信する送信手段と
、を有するサーバ装置と通信するコンピュータを、第1アプリケーション、および第2アプリケーションの実行を要求する要求手段と、前記サーバ装置から前記第1画面を示す情報を取得する第1取得手段と、前記サーバ装置が前記第2アプリケーションを実行することにより生成される第2画面を示す情報を取得する第2取得手段と、前記第1画面を表示する表示手段と、前記第1画面において前記第2アプリケーションに対応する前記第1アプリケーションの画像が表示される場合に、当該第2アプリケーションを実行することにより生成される前記第2画面を前記表示手段に表示させる表示制御手段として機能させるためのプログラムである。
【発明の効果】
【0013】
請求項1、6、7、8に係る発明によれば、第1画面において第2アプリケーションに対応する第1アプリケーションの画像が表示される場合に、いずれかの実行装置がその第2アプリケーションを実行することにより生成される第2画面を表示させることができる。
請求項2に係る発明によれば、サーバ装置が第1アプリケーションを実行することにより生成される第1画面、およびいずれかの実行装置が第2アプリケーションを実行することにより生成される第2画面を、それぞれサーバ装置が決定する順序に従って表示させることができる。
請求項3に係る発明によれば、第1画面において第2アプリケーションに対応する第1アプリケーションの画像が表示されるか否かを、クライアント装置が判断しなくてもよい。
請求項4に係る発明によれば、第1画面において視認方向の最も手前側に表示される画像が、第2アプリケーションに対応する第1アプリケーションの画像である場合に、視認者は、その第2アプリを実行することにより生成される画面を視認する。
請求項5に係る発明によれば、クライアント装置が第1画面を取得してから第2画面を取得するまでに待ち時間が発生する場合であっても、第2画面が表示されることが前記視認者に報知される。
【発明を実施するための形態】
【0015】
1.実施形態
1−1.全体構成
図1は、本発明の実施形態に係る情報処理システム9の全体構成を示す図である。情報処理システム9は、サーバ装置1と、クライアント装置2と、通信回線3と、実行装置4とを備える。
【0016】
通信回線3は、サーバ装置1およびクライアント装置2を接続し、これらが相互に遣り取りする情報を仲介する通信回線であり、例えば、インターネットである。
【0017】
サーバ装置1は、クライアント装置2からの要求に応じてデスクトップ・アプリケーション・プログラム(以下、「デスクトップアプリ」という)を実行する。デスクトップアプリとは、サーバ装置1で実行可能なアプリケーション・プログラムであり、実行されることでその処理の内容に応じた画像を表示するように要求する。
【0018】
また、サーバ装置1は、バーチャル・ネットワーク・コンピューティング(以下、「VNC(Virtual Network Computing)」という)を実現するためのサーバ・アプリケーション・プログラム(以下、「VNCサーバアプリ」という)を実行する。VNCとは、ネットワークを介して接続された2台のコンピュータによって実現される仕組みであり、一方のコンピュータを他方のコンピュータから操作するものである。具体的に、VNCは、一方のコンピュータによって表示される画面を示す情報を他方のコンピュータに送信させ、送信された側のコンピュータにおいてその画面に対して行われた操作を、送信した側のコンピュータへ伝達させる。ここでサーバ装置1において実行されるVNCサーバアプリは、サーバ装置1において表示される画面を示す情報をクライアント装置2へ送信する。
【0019】
クライアント装置2は、ユーザの操作に応じてサーバ装置1に対してデスクトップアプリの実行を要求する。また、クライアント装置2は、VNCを実現するためのクライアント・アプリケーション・プログラム(以下、「VNCクライアントアプリ」という)を実行する。クライアント装置2は、VNCクライアントアプリを実行することで、VNCサーバアプリの送信する情報を取得し、この情報に基づいてサーバ装置1において表示される画面を生成する。すなわち、クライアント装置2は、デスクトップアプリの実行により生成される画面(以下、「第1画面」という)を示す情報をサーバ装置1から取得する。
【0020】
また、クライアント装置2は、ユーザの操作に応じて実行装置4に対してウェブ・アプリケーション・プログラム(以下、「ウェブアプリ」という)の実行を要求する。ウェブアプリとは、http(Hypertext Transfer Protocol)などウェブ上のコンテンツを送受信するための通信プロトコルをサーバ・クライアント間の通信に用いたアプリケーション・プログラムである。ウェブアプリは、上記通信プロトコルで扱われるデータによってコンテンツを送受信するため、クライアント側で実現するユーザ・インターフェイスは、単なるウェブブラウザで足りる。実行装置4は、クライアント装置2から上述したウェブアプリの実行の要求を受け、その要求に応じてそのウェブアプリを実行する。そして、実行装置4は、ウェブアプリの実行結果をクライアント装置2へ送信する。
【0021】
ウェブアプリは、サーバとクライアントとの通信によって実行されるものであるが、サーバおよびクライアントを実行する装置が同じ装置であってもよい。したがって、上述した実行装置4は、サーバ装置1であってもよいし、通信回線3を介してクライアント装置2と接続されたいずれかの装置であってもよいが、クライアント装置2であってもよい。クライアント装置2が実行装置4を兼ねる場合、ウェブアプリの実行の要求は、通信回線3を介する必要はない。
図1に示す例において実行装置4は、サーバ装置1およびクライアント装置2のいずれとも異なる装置である。クライアント装置2は、ウェブアプリの実行により生成される画面(以下、「第2画面」という)を上述した実行装置4から取得する。この第2画面は、実行装置4によるウェブアプリの実行結果に含まれる。
【0022】
なお、情報処理システム9は、サーバ装置1とクライアント装置2とをそれぞれ複数、有していてもよい。この場合、1つのサーバ装置1は、複数のクライアント装置2に対して第1画面を示す情報を送信してもよいが、各クライアント装置2は、複数のサーバ装置1のうちいずれか1つのサーバ装置1から第1画面を示す情報を取得する。
【0023】
また、ウェブアプリを実行する実行装置4は、ウェブアプリを実行した結果としてHTMLやXMLなどのマークアップ言語によって表されるコンテンツをクライアント装置2に送信してもよいが、スクリプト・プログラムなど、クライアント装置2によって実行され得るコンテンツを送信してもよい。この場合、第2画面は、送信されたスクリプト・プログラムなどをクライアント装置2が実行した結果、生成される画面である。
【0024】
1−2.サーバ装置の構成
図2は、サーバ装置1の構成を示す図である。制御部11は、サーバ装置1の各部の動作を制御する手段である。制御部11は、CPU(Central Processing Unit)などの演算処理装置や、ROM(Read Only Memory)、RAM(Random Access Memory)などの記憶装置を備え、これら記憶装置に記憶されたプログラムを実行する。
【0025】
通信部13は、通信回線3を介してクライアント装置2と通信をするためのインターフェースである。
記憶部12はハードディスク、フラッシュメモリなどの大容量の記憶手段であり、制御部11に読み込まれるプログラムを記憶する。このプログラムには、デスクトップアプリが含まれる。なお、記憶部12は、いわゆるリムーバブルディスク、すなわち着脱可能な記録媒体を含んでもよい。
表示部14は、液晶などを使用したディスプレイ装置であり、制御部11からの指示に応じて画像を表示する。
なお、サーバ装置1は、他にユーザの操作を受付ける操作部を有していてもよい。
【0026】
1−3.クライアント装置の構成
図3は、クライアント装置2の構成を示す図である。制御部21は、クライアント装置2の各部の動作を制御する手段である。制御部21は、CPUなどの演算処理装置や、ROM、RAMなどの記憶装置を備え、これら記憶装置に記憶されたプログラムを実行する。
【0027】
通信部23は、通信回線3を介してサーバ装置1と通信をするためのインターフェースである。
記憶部22はハードディスク、フラッシュメモリなどの大容量の記憶手段であり、制御部21に読み込まれるプログラムを記憶する。なお、記憶部22は、いわゆるリムーバブルディスク、すなわち着脱可能な記録媒体を含んでもよい。
表示部24は、液晶などを使用したディスプレイ装置であり、制御部21からの指示に応じて画像を表示する。
操作部25は各種の指示を入力するための座標取得部251や操作ボタン252を備えており、ユーザによる操作を受付けてその操作内容に応じた信号を制御部21に供給する。
【0028】
1−4.情報処理システムの機能的構成
図4は、情報処理システム9の機能的構成を示す図である。
図4において、サーバ装置1の通信部13、クライアント装置2の通信部23、および通信回線3を省略する。
【0029】
サーバ装置1の制御部11は、実行部111、実行制御部112、決定部113、生成部114、送信部115、通知部116、および検知部117として機能する。
【0030】
検知部117は、クライアント装置2におけるユーザの操作により実行が要求されたデスクトップアプリ(第1アプリケーション)またはウェブアプリ(第2アプリケーション)の識別情報を検知する。この識別情報は、URI(Uniform Resource Identifier)によって表されている。以下、デスクトップアプリおよびウェブアプリのURIを「アプリURI」という。クライアント装置2の制御部21は、後述する要求部214として機能し、この要求部214は、操作部25が受付けたユーザの操作から実行を要求するアプリのアプリURIを特定すると、これをサーバ装置1へ送信する。すなわち、検知部117は、クライアント装置2の要求部214から送信されたアプリURIを検知する。実行部111は、デスクトップアプリを実行する。
【0031】
実行制御部112は、検知部117が検知したアプリURIに基づいて、クライアント装置2においてデスクトップアプリの実行が要求されたか、ウェブアプリの実行が要求されたかを判断する。例えば、ウェブアプリを示すアプリURIにはパス名に「webapp」という文字列が含まれているので、実行制御部112は、アプリURIがこの文字列を含むか否かを調べることで、実行が要求されたアプリの種別を判断する。なお、実行制御部112は、アプリURIに含まれるホスト名やスキーム名を調べることで上記種別を判断してもよい。
【0032】
デスクトップアプリが要求された場合、実行制御部112は、そのデスクトップアプリを実行部111に実行させる。
一方、ウェブアプリが要求された場合、すなわち、クライアント装置2に要求されたウェブアプリを実行装置4が実行する場合、実行制御部112は、そのウェブアプリに対応するデスクトップアプリを実行部111に実行させる。このデスクトップアプリは、対応するウェブアプリそのものの機能を有している必要はなく、実行部111によって実行されることにより1つのウィンドウの表示が要求されるように構成されていればよい。以下、ウェブアプリに対応付けられたデスクトップアプリを「擬似アプリ」という。また、擬似アプリを実行することにより表示が要求されるウィンドウを「擬似ウィンドウ」という。
【0033】
例えば、サーバ装置1は、URIを指定するとそのURIに1対1で対応付けられる擬似アプリを生成するプログラムを実行している。クライアント装置2においてウェブアプリが要求された場合、サーバ装置1の制御部11は、このウェブアプリのアプリURIをパラメータとして、上述したプログラムに引渡し、擬似アプリを生成させる。生成された擬似アプリは実行部111によって実行されて擬似ウィンドウを生成し、その表示を要求する。
【0034】
決定部113は、実行部111がデスクトップアプリ(擬似アプリを含む)を実行することにより表示するように要求されるウィンドウ(擬似ウィンドウを含む)に対して、それぞれ視認者に視認される順序をそれぞれ決定し、その順序が記述された順序表Tを生成部114に供給する。ここで、視認者に視認される順序とは、例えば画面上の重なり順序である。例えば、この順序に沿って複数のウィンドウが重ねて表示されていると、順序の最も高いウィンドウが視認者に視認される。この最高順序のウィンドウが閉じられると、最高順序のウィンドウに重なって隠れていたウィンドウのうち、次に順序の高いウィンドウが視認者に視認される。
決定部113は、例えば、表示が要求されたタイミングや、その要求に伴って通知された緊急性を示す情報などに基づいて、各ウィンドウに表示の順序を割り当てる。順序表Tは、決定部113に相当するプロセスが制御部11のCPUで実行されることにより、例えば制御部11のRAM上に記憶される。
【0035】
生成部114は、順序表Tに応じて、各ウィンドウから第1画面を生成する。順序表Tは、生成部114に相当するプロセスを制御部11のCPUが実行することにより、例えば上記RAMから読み出される。
【0036】
図5は、順序表Tの一例を示す図である。順序表Tは、クライアント装置2で要求されたアプリを示すアプリURIと、このアプリURIで示されるアプリをサーバ装置1が実行することにより表示するように要求されるウィンドウの識別情報(以下、「ウィンドウID」という)と、決定部113によってそのウィンドウに割り当てられた表示の順序とを対応付ける。
【0037】
図6は、
図5に示した順序表Tにより決定される各ウィンドウの順序を示す概念図である。順序の番号が若いウィンドウほど、ユーザ(視認者)の視認方向の手前側に表示される。最も手前側に表示されるウィンドウは、順序「1」が割り当てられたウィンドウである。
【0038】
上述したとおり、クライアント装置2においてウェブアプリの実行が要求された場合、サーバ装置1でウェブアプリは実行されず、ウェブアプリに対応するデスクトップアプリである擬似アプリが実行される。そして、擬似アプリの実行によって、ウェブアプリに対応する擬似ウィンドウが生成される。擬似ウィンドウは、例えば単なる白い矩形画像を表したウィンドウであり、サーバ装置1において、順序表Tに示した順序に沿って表示される。
【0039】
図5に示す順序表Tが供給された場合、生成部114は、ユーザの視認方向の奥側から手前側に向かって、それぞれのウィンドウIDが「W4→W3→W2→W1」の順序で並ぶように、各ウィンドウを重ねて表示して第1画面を生成する。サーバ装置1において、ウィンドウIDが「W1」および「W4」の各ウィンドウは、擬似ウィンドウであるので、サーバ装置1の制御部11が、順序表Tに応じて各ウィンドウから第1画面を生成すると、
図6(a)に示すように、「W1」および「W4」のウィンドウは白い矩形画像を表したものとなる。
【0040】
なお、生成部114は、重ねた各ウィンドウの位置を互いにずらして第1画面を生成してもよいが、視認方向の手前側のウィンドウが、そのウィンドウよりも視認方向の奥側のウィンドウを全て隠すように、各ウィンドウを重ねて第1画面を生成してもよい。この場合、実際に表示されるのは、視認方向の最も手前側のウィンドウだけであるため、生成部114は、順序表Tにおいて順序「1」が割り当てられたウィンドウを表示した第1画面を生成すればよい。以下、生成部114が、視認方向の最も手前側のウィンドウを表示した画面を第1画面として生成する場合について説明する。生成部114が生成した第1画面は、サーバ装置1の表示部14に表示される。
【0041】
送信部115は、生成部114が生成した第1画面を示す情報をクライアント装置2に送信する。
通知部116は、第1画面において表示されるウィンドウの表示を要求したデスクトップアプリの識別情報をクライアント装置2に通知する。第1画面には、視認方向の最も手前側のウィンドウが表示されるので、このウィンドウが擬似ウィンドウでない場合には、クライアント装置2によって実行を要求され、このウィンドウを表示するように要求したデスクトップアプリのアプリURIが、識別情報としてクライアント装置2に通知される。
【0042】
一方、第1画面において表示されるウィンドウが擬似ウィンドウである場合、この擬似ウィンドウを表示するように要求したデスクトップアプリは擬似アプリである。したがって、この場合、通知部116は、擬似アプリに対応するウェブアプリのアプリURIを識別情報としてクライアント装置2に通知する。
【0043】
クライアント装置2の制御部21は、第1取得部211、第2取得部212、表示制御部213、および要求部214として機能する。
【0044】
要求部214は、操作部25が受付けたユーザの操作に応じてアプリの実行をサーバ装置1へ要求する。要求部214は、ユーザの操作により示されるアプリがデスクトップアプリであるかウェブアプリであるかに関わらず、実行を要求されたアプリを識別するアプリURIを、上述したとおり全てサーバ装置1へ送信する。
【0045】
第1取得部211は、サーバ装置1から第1画面を示す情報を取得する。
表示制御部213は、ウェブアプリに対応づけられていないデスクトップアプリのウィンドウが第1画面において表示される場合に、その第1画面を表示部24に表示させる。
一方、表示制御部213は、ウェブアプリに対応するデスクトップアプリのウィンドウ(擬似ウィンドウ)が第1画面において表示される場合に、第2取得部212に、そのウェブアプリを示すアプリURIを伝える。第2取得部212は、表示制御部213から上述したウェブアプリのアプリURIを受け取ると、例えばそのアプリURIに含まれた記述から実行装置4を特定し、特定した実行装置4に向けて、そのアプリURIで示されるウェブアプリの実行を要求する。そして、表示制御部213は、実行装置4がウェブアプリを実行することにより生成される第2画面を示す情報を取得し、上述した第1画面に代えて、取得した第2画面を表示部24に表示させる。
【0046】
ウェブアプリに対応づけられていないデスクトップアプリとは、クライアント装置2において実行が要求されたデスクトップアプリである。一方、ウェブアプリに対応するデスクトップアプリとは、サーバ装置1の実行制御部112が実行部111に実行させた擬似アプリであり、擬似アプリのウィンドウとは、擬似ウィンドウである。したがって、第1画面において擬似ウィンドウが表示される場合に、表示制御部213は、第2画面を表示部24に表示させる。つまり、擬似ウィンドウが第2画面に差し替えられるため、その結果、ユーザは、
図6(b)に示すように、「W1」および「W4」のウィンドウが、それぞれのウェブアプリの実行結果を示す画像を表したウィンドウに置き換えられて重ねられた画面を認識する。
【0047】
1−5.サーバ装置の動作
図7は、サーバ装置1が各ウィンドウの順序を決定する動作を示すフロー図である。サーバ装置1の制御部11は、クライアント装置2において実行が要求されたアプリのアプリURIを検知すると、そのアプリURIに基づいて、実行が要求されたアプリがデスクトップアプリか否かを判断する(ステップS101)。この判断は、上述したとおり、例えばアプリURIが「webapp」など特定の文字列を含むか否かによって行われる。
【0048】
要求されたアプリがデスクトップアプリであると判断する場合(ステップS101;YES)、制御部11は、RAMの内容などを参照してそのデスクトップアプリのウィンドウが存在しているか否かを判断し(ステップS102)、このウィンドウが存在しないと判断する場合(ステップS102;NO)、このウィンドウを新たに生成する(ステップS103)。
【0049】
そして、制御部11は、生成したウィンドウに割り当てられたウィンドウIDと、アプリURIとを順序表Tに登録し(ステップS104)、登録したウィンドウIDの順序をユーザの視認方向における最も手前側(すなわち、「1」)に決定する(ステップS105)。一方、要求されたデスクトップアプリのウィンドウが存在していると判断する場合(ステップS102;YES)、制御部11は、ステップS103およびステップS104を実行せず、ステップS105に処理を進める。
【0050】
また、要求されたアプリがデスクトップアプリでないと判断する場合(ステップS101;NO)、制御部11は、要求されたウェブアプリに対応する擬似ウィンドウが存在しているか否かを判断する(ステップS106)。要求されたウェブアプリに対応する擬似ウィンドウが存在しないと判断する場合(ステップS106;NO)、制御部11は、このウェブアプリのアプリURIをパラメータとして用いて対応する擬似アプリを生成し、擬似アプリを実行することにより擬似ウィンドウを生成する(ステップS107)。
【0051】
そして、制御部11は、生成した擬似ウィンドウに割り当てられたウィンドウIDと、アプリURIとを順序表Tに登録し(ステップS108)、登録したウィンドウIDの順序をユーザの視認方向における最も手前側(すなわち、「1」)に決定する(ステップS109)。一方、要求されたウェブアプリに対応する擬似ウィンドウが存在していると判断する場合(ステップS106;YES)、制御部11は、ステップS107およびステップS108を実行せず、ステップS109に処理を進める。
【0052】
図8は、サーバ装置1が、自装置において視認方向の最も手前側に表示されるウィンドウの識別情報をクライアント装置2へ通知する動作を示すフロー図である。サーバ装置1の制御部11は、順序表Tへのアクセスを監視し、順序表Tにおいて最も手前側の順序が割り当てられたウィンドウIDが変わったか否かを判断する(ステップS201)。順序表Tにおいて最も手前側の順序が割り当てられたウィンドウIDが変わっていないと判断する場合(ステップS201;NO)、制御部11は処理を終了する。一方、順序表Tにおいて最も手前側の順序が割り当てられたウィンドウIDが変わったと判断する場合(ステップS201;YES)、制御部11は、変更後のウィンドウIDにより示されるウィンドウに対応するアプリURI、すなわち、最も手前側の順序が新たに割り当てられたウィンドウを生成させたアプリのアプリURIをクライアント装置2へ通知する(ステップS202)。
【0053】
1−6.クライアント装置の動作
図9は、クライアント装置2がサーバ装置1からの通知に応じて表示を切替える動作を示すフロー図である。クライアント装置2の制御部21は、サーバ装置1から通知されたアプリURIが示すアプリにより生成される画面があるか否かを判断し(ステップS301)、この画面がないと判断する場合に(ステップS301;NO)、通知されたアプリURIが示すアプリがサーバ装置1において実行されるデスクトップアプリであるか否かを判断する(ステップS302)。通知されたアプリURIが示すアプリがデスクトップアプリであると判断する場合に(ステップS302;YES)、制御部21は、サーバ装置1から送信された第1画面を取得する(ステップS303)。
【0054】
一方、通知されたアプリURIが示すアプリがデスクトップアプリでないと判断する場合に(ステップS302;NO)、制御部21は、通知されたアプリURIが示すウェブアプリによる第2画面を取得する(ステップS304)。
そして、制御部21は、ステップS303またはステップS304で取得した画面を最も手前に表示する(ステップS305)。
【0055】
ステップS301において、サーバ装置1から通知されたアプリURIが示すアプリにより生成される画面が有ると判断する場合に(ステップS301;YES)、制御部21は、この画面を最も手前に表示する(ステップS306)。
【0056】
図10は、
図5に示した順序表Tに応じてクライアント装置2において表示される画面の一例を示す図である。この順序表Tは、アプリURIが「http://a**.org/webapp/1」のアプリにより要求されるウィンドウの順序が「1」であることを記述している。このアプリURIは「webapp」という文言を含むので、ウェブアプリを示すものである。
【0057】
したがって、サーバ装置1の制御部11はこのウェブアプリを実行せず、このウェブアプリに対応する擬似ウィンドウを擬似アプリによって生成する。そして、この擬似ウィンドウの順序がユーザの視認方向における最も手前側を表すものであるため、サーバ装置1は、擬似ウィンドウが表示された第1画面を送信する。
【0058】
一方、上記のウェブアプリは、実行装置4によって実行される。このウェブアプリは、例えば短針と長針とを有する時計を表示してユーザに現在時刻を伝える機能を有する。上述した実行装置4は、このウェブアプリを実行して時計が表示された第2画面を生成し、クライアント装置2はこの第2画面を示す情報を取得する。
【0059】
サーバ装置1は、第1画面において擬似ウィンドウの表示を要求した擬似アプリに対応するウェブアプリのアプリURIを識別情報としてクライアント装置2に通知する。クライアント装置2は、通知された識別情報が、ウェブアプリの識別情報であるので、このウェブアプリを実行することにより生成される第2画面を表示手段に表示させる。その結果、
図10に示したように、上記のウェブアプリによる時計が描かれたウィンドウがクライアント装置2において表示される。
【0060】
以上、説明した動作により、情報処理システム9は、サーバ装置1で実行されるデスクトップアプリと、実行装置4で実行されるウェブアプリとを統合するので、既存のサーバ装置1によるウィンドウの表示順序の管理が、サーバ装置1で実行されるデスクトップアプリのウィンドウに適用されるだけでなく、サーバ装置1では実行していないウェブアプリのウィンドウにも適用される。すなわち、サーバ装置1がデスクトップアプリ(第1アプリケーション)を実行することにより生成される第1画面、およびサーバ装置1以外の装置がウェブアプリ(第2アプリケーション)を実行することにより生成される第2画面は、それぞれサーバ装置1が決定する表示の順序に従って表示される。これにより、デスクトップアプリとウェブアプリとは、ユーザによってシームレスに扱われる。つまり、ユーザに、既存のデスクトップアプリと、ウェブアプリとを共通の操作感で操作させるために、既存のデスクトップアプリを新たなウェブアプリとして開発し直す必要はない。
【0061】
2.変形例
以上が実施形態の説明であるが、この実施形態の内容は以下のように変形し得る。また、以下の変形例を組み合わせてもよい。
2−1.変形例1
上述した実施形態において、擬似ウィンドウは、白い矩形画像を表したウィンドウであったが、擬似アプリに対応するウェブアプリのウィンドウが表示されることをユーザに報知するためのものであってもよい。
【0062】
図11は、ウェブアプリのウィンドウが表示されることを報知する擬似ウィンドウの一例を示す図である。
図11に示すように、クライアント装置2においてウェブアプリが要求された場合に、サーバ装置1において生成される擬似ウィンドウには、それぞれ対応するウェブアプリのウィンドウが表示される旨のメッセージが表示されている。
【0063】
この構成により、例えば、上述した実行装置4による第2画面の生成速度が、サーバ装置1による第1画面の生成速度に比べて遅いなどの理由により、クライアント装置2が第1画面を取得してから第2画面を取得するまでに待ち時間が発生する場合であっても、第1画面において表示される擬似ウィンドウには上述したメッセージが表示されるので、クライアント装置2の表示の状態はユーザに把握される。
【0064】
2−2.変形例2
上述した実施形態において、クライアント装置2におけるユーザの操作により実行が要求されたデスクトップアプリまたはウェブアプリの識別情報は、URIであるアプリURIであったが、他の情報であってもよい。例えば、デスクトップアプリまたはウェブアプリの識別情報は、ドメインネームシステム(DNS:Domain Name System)サーバから通知されるIPアドレスを含む情報であってもよい。
【0065】
2−3.変形例3
上述した実施形態において、生成部114が生成した第1画面は、サーバ装置1の表示部14に表示されていたが、この第1画面は、サーバ装置1において表示されなくてもよい。この場合、第1画面を示す情報を例えば制御部11のRAMなどに記憶して、クライアント装置2に送信する構成を有していれば、サーバ装置1は、表示部14を有していなくてもよい。
【0066】
2−4.変形例4
上述した実施形態において、順序表Tにおいて最も手前側の順序が割り当てられたウィンドウIDが変わったと判断する場合、制御部11は、最も手前側の順序が新たに割り当てられたウィンドウに対応するアプリURIをクライアント装置2へ通知していたが、ウィンドウIDが変わっても通知しない場合があってもよい。例えば、制御部11は、変更前後のウィンドウIDによって示される各ウィンドウをそれぞれ表示させたアプリが、いずれもデスクトップアプリである場合には、上記の通知をしなくてもよい。この場合、クライアント装置2において表示は変更されず、第1画面が表示され続けるからである。
【0067】
2−5.変形例5
上述した実施形態において、クライアント装置2の制御部21は、サーバ装置1から通知されたアプリURIが示すアプリがデスクトップアプリであると判断する場合に、サーバ装置1から送信された第1画面を取得していたが、これ以外の場合にも第1画面を取得してもよい。また、クライアント装置2の制御部21は、通知されたアプリURIが示すアプリがデスクトップアプリでないと判断する場合に、通知されたアプリURIが示すウェブアプリによる第2画面を取得していたが、これ以外の場合にも第2画面を取得してもよい。この場合、第1画面と第2画面の両方を取得し、サーバ装置1からの通知内容に応じてこれらの画面のうち視認方向における手前側に表示させるものを決定すればよい。
【0068】
なお、上述した実施形態のとおり、サーバ装置1から通知されたアプリURIに応じて、第1画面または第2画面のいずれかを取得するようにクライアント装置2を構成することにより、クライアント装置2は、表示されない画面を取得する必要がなくなる。
【0069】
2−6.変形例6
上述した実施形態において、クライアント装置2が実行装置4に向けて、ウェブアプリの実行を要求していたが、実行装置4にウェブアプリの実行を要求するのは、サーバ装置1であってもよい。この場合、サーバ装置1は、クライアント装置2においてウェブアプリの実行が要求されたときに、そのウェブアプリに対応するデスクトップアプリである擬似アプリを実行するとともに、そのウェブアプリのアプリURIが示す実行装置4に対して、ウェブアプリの実行を要求してもよい。
【0070】
また、この場合サーバ装置1は、例えばデスクトップアプリの実行を要求しているクライアント装置2に対して、ウェブアプリの実行を要求しているか否かを周期的に問い合わせてもよい。クライアント装置2の制御部21は、実行を要求するウェブアプリおよびデスクトップアプリの各アプリURIをRAM上に記憶し、サーバ装置1から上記の問い合わせがあった場合に、これに応じてウェブアプリのアプリURIを送信すればよい。
【0071】
2−7.変形例7
上述した実施形態において、表示部24は、第1画面または第2画面を表示していたが、例えば、これらの画面を表示することに加えて、これらの画面において最も手前に表示されるウィンドウを表示させたデスクトップアプリまたはウェブアプリのアプリURIを表示してもよい。
【0072】
また、表示部24がアプリURIを表示する表示領域は、テキストボックスなど、ユーザによって入力可能な要素であってもよい。この場合、この表示領域に対してユーザによってアプリURIが入力されると、クライアント装置2は、このアプリURIをサーバ装置1へ送信して、このアプリURIによって識別されるデスクトップアプリまたはウェブアプリの実行を、サーバ装置1または上述した実行装置4に要求すればよい。この構成によれば、ユーザによって入力されたアプリURIによって、そのアプリURIが示すデスクトップアプリまたはウェブアプリの実行が要求される。
【0073】
2−8.変形例8
サーバ装置1の制御部11やクライアント装置2の制御部21によって実行される各プログラムは、磁気テープや磁気ディスクなどの磁気記録媒体、光ディスクなどの光記録媒体、光磁気記録媒体、半導体メモリなどの、コンピュータ装置が読み取り可能な記録媒体に記憶された状態で提供し得る。また、これらのプログラムを、インターネットなどを経由してダウンロードさせることも可能である。なお、上記の制御部11および制御部21によって例示した制御手段としてはCPU以外にも種々の装置が適用される場合があり、例えば、専用のプロセッサなどが用いられる。