(57)【要約】【課題】  デスクトップ・アプリケーションをウェブ・アプリケーションに変換するための方法とシステムを提供する。【解決手段】  この方法は、クライアントで、希望するデスクトップ・アプリケーションのＵＲＬを入力し、それをサーバに対して送信し、サーバで、クライアントにコード変換ツールを提供し、デスクトップ・アプリケーションをロードし、サーバで、ロードしたデスクトップ・アプリケーションのインタフェース情報を抽出し、当該インタフェース情報をインタフェース記述型言語フォーマット（例えば、ＸＭＬデータ）でデータにラッピングし、ラッピングしたデータをクライアントへ送信し、クライアントで、デスクトップ・アプリケーションを表示するために、コード変換ツールを用いて受信したＸＭＬデータを解析し、関連するウェブページ要素（例えば、ＨＴＭＬデータ）を生成する。他の例では、サーバが、ＸＭＬデータからＨＴＭＬウェブページ要素へのコード変換を実施するコード変換ツールを直接実行する。【選択図】  図１
2011070640.tif 000002
【特許請求の範囲】
【請求項１】
デスクトップ・アプリケーションをウェブ・アプリケーションに変換する方法であって、
クライアントで、希望するデスクトップ・アプリケーションのＵＲＬを入力し、それをサーバに対して送信し、
サーバで、クライアントにコード変換ツールを提供し、デスクトップ・アプリケーションをロードし、
サーバで、ロードしたデスクトップ・アプリケーションのインタフェース情報を抽出し、当該インタフェース情報をインタフェース記述型言語フォーマットでデータにラッピングし、ラッピングしたデータを前記クライアントへ送信し、
前記クライアントで、デスクトップ・アプリケーションを表示するために、コード変換ツールを用いて受信したインタフェース記述型言語データを解析し、関連するウェブページ要素を生成すること
を特徴とするデスクトップ・アプリケーションをウェブ・アプリケーションに変換する方法。
【請求項２】
前記クライアントで、
表示されたデスクトップ・アプリケーション上で動作を実行し、
動作に対応するリクエストを前記サーバへ送信し、
前記サーバで、
ロードしたデスクトップ・アプリケーション上で動作を実行し、動作によって引き起こされたインタフェース上の変化を検出し、インタフェース変化に対応するインタフェース変換情報を抽出し、インタフェース記述型言語フォーマットでインタフェース変換情報をデータにラッピングし、ラッピングしたデータを前記クライアントへ送信し、
前記クライアントで、
コード変換ツールを用いて受信したインタフェース記述型言語データを解析して関連するウェブページ要素を生成し、
ウェブページ要素に従って表示されたデスクトップ・アプリケーションの対応する部分を更新することを特徴とする請求項１に記載の方法。
【請求項３】
前記デスクトップ・アプリケーションのＵＲＬが、デスクトップ・アプリケーションを識別するためのアプリケーションＩＤを含み、前記サーバがアプリケーション対応テーブルを含み、
前記クライアントからデスクトップ・アプリケーションのＵＲＬを受信すると、前記サーバが、前記ＵＲＬにおいて含まれるアプリケーションＩＤを抽出し、サーバとクライアント間のセッションを識別するためのセッションＩＤをクライアントに割り当て、
前記サーバが、割り当てたセッションＩＤを前記クライアントへ送信し、
前記サーバが、アプリケーションＩＤとセッションＩＤの対応を記録するエントリを追加することにより前記アプリケーション対応テーブルを更新し、
前記クライアントが、動作に対応するリクエストを送信する前に、リクエストに前記セッションＩＤを挿入し、
前記サーバが、前記リクエストを受信すると、前記リクエストから前記セッションＩＤを抽出し、
前記アプリケーション対応テーブルを検索することにより前記セッションＩＤに対応するアプリケーションＩＤを決定し、
取得したアプリケーションＩＤを有するデスクトップ・アプリケーションのインタフェース上で前記動作を実行することを特徴とする請求項２に記載の方法。
【請求項４】
デスクトップ・アプリケーションをウェブ・アプリケーションに変換する方法であって、
クライアント側で、所望のデスクトップ・アプリケーションのＵＲＬを入力し、それをサーバに対して送信し、
サーバで、前記デスクトップ・アプリケーションをロードし、
前記サーバで、
ロードしたデスクトップ・アプリケーションのインタフェース情報を抽出し、
前記インタフェース情報をインタフェース記述型言語フォーマットでデータにラッピングし、
前記コード変換ツールを用いてラッピングした前記インタフェース記述型言語データを解析して関連するウェブページ要素を生成し、当該ウェブページ要素を前記クライアントへ送信し、
前記クライアントで、
受信した前記ウェブページ要素に基づいてデスクトップ・アプリケーションを表示することを特徴とするデスクトップ・アプリケーションをウェブ・アプリケーションに変換する方法。
【請求項５】
前記クライアントで、
表示されたデスクトップ・アプリケーション上で動作を実行し、
動作に対応するリクエストを前記サーバへ送信し、
前記サーバで、
ロードしたデスクトップ・アプリケーション上で動作を実行し、動作によって引き起こされたインタフェース上の変化を検出し、インタフェース変化に対応するインタフェース変換情報を抽出し、インタフェース記述型言語フォーマットでインタフェース変換情報をデータにラッピングし、
コード変換ツールを用いてインタフェース記述型言語データを解析して関連するウェブページ要素を生成し、当該ウェブページ要素をクライアントへ送信し、
前記クライアントで、受信したウェブページ要素に従ってデスクトップ・アプリケーションの変化したインタフェースを表示することを特徴とする請求項４に記載の方法。
【請求項６】
前記デスクトップ・アプリケーションのＵＲＬが、デスクトップ・アプリケーションを識別するためのアプリケーションＩＤを含み、前記サーバがアプリケーション対応テーブルを含み、
前記クライアントからデスクトップ・アプリケーションのＵＲＬを受信すると、前記サーバが、前記ＵＲＬにおいて含まれるアプリケーションＩＤを抽出し、サーバとクライアント間のセッションを識別するためのセッションＩＤをクライアントに割り当て、
前記サーバが、割り当てたセッションＩＤを前記クライアントへ送信し、
前記サーバが、アプリケーションＩＤとセッションＩＤの対応を記録するエントリを追加することにより前記アプリケーション対応テーブルを更新し、
前記クライアントが、動作に対応するリクエストを送信する前に、リクエストに前記セッションＩＤを挿入し、
前記サーバが、前記リクエストを受信すると、前記リクエストから前記セッションＩＤを抽出し、
アプリケーション対応テーブルを検索することにより前記セッションＩＤに対応するアプリケーションＩＤを決定し、
取得したアプリケーションＩＤを有するデスクトップ・アプリケーションのインタフェース上で前記動作を実行することを特徴とする請求項５に記載の方法。
【請求項７】
クライアントと、サーバを含み、
前記クライアントが、
所望のデスクトップ・アプリケーションのＵＲＬを送信するリクエスト送信ユニットと、
前記サーバからデータを受信するデータ受信ユニットとを備え、
前記サーバが、
前記ＵＲＬを受信するリクエスト受信ユニットと、
前記クライアントにコード変換ツールを提供するツール提供ユニットと、
前記デスクトップ・アプリケーションをロードするためのアプリケーション作動ユニットと、
ロードした前記デスクトップ・アプリケーションのインタフェース情報を抽出し、インタフェース情報をインタフェース記述型言語フォーマットでデータにラッピングするインタフェース抽出ユニットと、
前記インタフェース抽出ユニットによってラッピングされたインタフェース記述型言語データを前記クライアントへ送信するデータ送信ユニットとを備え、
前記クライアントが、前記データ受信ユニットによって受信した前記インタフェース記述型言語データを、前記コード変換ツールを用いて解析し、関連するウェブページ要素を生成し、前記クライアントのブラウザが生成したウェブページ要素に基づいて前記デスクトップ・アプリケーションを表示することを特徴とするデスクトップ・アプリケーションをウェブ・アプリケーションに変換するシステム。
【請求項８】
ユーザが前記クライアントに表示されたデスクトップ・アプリケーション上で動作を実行すると、前記リクエスト送信ユニットが、動作に対応するリクエストをサーバに送信し、
前記サーバにおいて、前記リクエスト受信ユニットが前記リクエストを受信し、
前記アプリケーション作動ユニットが、デスクトップ・アプリケーションのインタフェース上でリクエストに対応する動作を実行し、
前記インタフェース抽出ユニットが、動作によって引き起こされたインタフェース上の変化を検出し、インタフェース変化に対応するインタフェース変換情報を抽出し、インタフェース記述型言語フォーマットでインタフェース変換情報をデータにラッピングし、
前記データ送信ユニットが、ラッピングしたデータを前記クライアントへ送信し、
前記クライアントにおいて、コード変換ツールを用いて受信したインタフェース記述型言語データを解析して関連するウェブページ要素を生成し、前記クライアントのブラウザが、ウェブページ要素に従って表示されたデスクトップ・アプリケーションの対応する部分を更新することを特徴とする請求項７に記載のシステム。
【請求項９】
クライアントと、サーバを含み、
前記クライアントが、
所望のデスクトップ・アプリケーションのＵＲＬを送信するリクエスト送信ユニットと、
前記サーバからデータを受信するデータ受信ユニットとを備え、
前記サーバが、
前記ＵＲＬを受信するリクエスト受信ユニットと、
前記デスクトップ・アプリケーションをロードするためのアプリケーション作動ユニットと、
ロードした前記デスクトップ・アプリケーションのインタフェース情報を抽出し、インタフェース情報をインタフェース記述型言語フォーマットでデータにラッピングするインタフェース抽出ユニットと、
前記インタフェース抽出ユニットによってラッピングしたインタフェース記述型言語データを解析し、関連するウェブページ要素を生成するコード変換ユニットと、
前記ウェブページ要素を前記クライアントへ送信するデータ送信ユニットとを備え、
前記クライアントのブラウザが受信したウェブページ要素に基づいてデスクトップ・アプリケーションを表示することを特徴とするデスクトップ・アプリケーションをウェブ・アプリケーションに変換するシステム。
【請求項１０】
ユーザがクライアント上で表示されたデスクトップ・アプリケーション上で動作を行うと、前記リクエスト送信ユニットが、動作に対応するリクエストを前記サーバへ送信し、
前記サーバにおいて、前記リクエスト受信ユニットが前記リクエストを受信し、前記アプリケーション作動ユニットが、前記デスクトップ・アプリケーションのインタフェース上でリクエストに対応する動作を実行し、
前記インタフェース抽出ユニットが、動作によって引き起こされたインタフェース上の変化を検出し、インタフェース変化に対応するインタフェース変換情報を抽出し、インタフェース記述型言語フォーマットでインタフェース変換情報をデータにラッピングし、
コード変換ユニットが、前記インタフェース抽出ユニットによってラッピングされたインタフェース記述型言語データを解析して関連するウェブページ要素を生成し、前記データ送信ユニットが、当該ウェブページ要素をクライアントへ送信し、
前記クライアントにおいて、前記クライアントのブラウザが、受信したウェブページ要素に従ってデスクトップ・アプリケーションの変化したインタフェースを表示することを特徴とする請求項９に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に計算機ネットワーク技術に関し、特に、デスクトップ・アプリケーションをウェブ・アプリケーションに変換する方法とシステムに関する。
【背景技術】
【０００２】
クラウドコンピューティングとインターネットの発達に伴い、様々なサービスをいつでもどんな場所でも享受することへの人々の要求が高まっている。しかしながら、既存のデスクトップ・アプリケーション（スタンドアロン版或いはクライアントサーバ版）の多くは、対応する操作を実行する前にクライアントを設置することをユーザに要求する。したがって、いつでもどんな場所でもサービスを提供することができない。既存のシステムが全く同じ機能を有するシステムの新たなブラウザ・サーバ・バージョンを最初から最後まで開発するために廃棄されれば、開発費が非常に高くなり、また、それは元のシステムの消耗である。従って、効率的なシステム移行方法を提供することが強い望まれている。
【０００３】
より重要なことは、マッシュアップ（ｍａｓｈｕｐ）は、クラウドコンピューティングにおいて重要な一部分であり、これが、人々がより簡単な方法で統合した複数のサービスを使用することを可能にする。従って、移行によって生成されたウェブ・アプリケーションは、元のシステムの全ての機能を実現するだけでなく、二次利用（例えば、配置スタイルを変更すること、他のネットワーク資源を集めること）を可能としなければならない。これにより、元のアプリケーションの非常に効率的な使用法を実現することが可能となる。
【０００４】
既存のアプリケーション移行システムは主に２つの状況を含んでいる。
１つは、デスクトップ・アプリケーションのソース・コードが利用可能な状況である。
この場合、ソース・コードが簡単なプログラミング言語（例えば、ＰｏｗｅｒＢｕｉｌｄｅｒ）を使用して記述されていれば、開発者にとって新たなウェブ・アプリケーションを半自動的に作成することが可能である。
そうでなければ、それらは、ソース・コードを読み取り、コード論理をすべて分析した後に手作業で開発しなければならない。すなわち、開発者は、元のアプリケーションの機能をすべて理解し、ネットワーク・プログラミングに十分に精通していなければならない。しかしながら、それでも、開発者が全ての機能の変換を実施することは、多大な時間を消費し、多くのコストがかかる。
他の状況は、ソース・コードが利用不可能である場合である。システム開発者にとって、大多数の既存のアプリケーションのソース・コードは利用不可能である。
従って、ただ１つの方法でのみ自動変換を実現するができる。それは、ウェブページ上のデスクトップ・アプリケーションのグラフィックユーザインタフェース（ＧＵＩ）を再描画し、元のシステムにユーザがウェブページ上で行う操作へ応答させることである。これはリモートデスクトップ技術にやや類似している。本発明によって提供する技術は、主に後者のケースに関連している。
【０００５】
利用可能なソース・コードが存在しない場合における関連技術が、２００２年２月６日出願の米国特許出願US6950991B2,「Interacting with
Software Applications Displayed in a Web Page」（特許文献１）に記載されている。この特許文献１は、利用可能なソース・コードが存在しない場合におけるアプリケーション変換方法を提案している。
この方法は、既存のデスクトップ・アプリケーションのＧＵＩの画像をリモートデスクトップ方式でクライアント・ウェブページのある位置に表示する。図８と図９は、それぞれ、上記関連技術によるシステムの構造上のブロック図および動作フローチャートを示している。
【０００６】
図８に示すように、このシステムにおいて、クライアント８０は、ブラウザに加えて、クライアントエージェント８１０を備えている。このクライアントエージェント８１０は、プラグインの形式でクライアント８０にインストールされる。
クライアントエージェント８１０は、監視ユニット８０１と、命令ユニット８０２と、メッセージ送信ユニット８０３およびメッセージ受信ユニット８０４を備えている。
クライアントエージェント８１０は、ウェブ・ブラウザ・ウィンドウ内の１つ以上のアプリケーション出力ウィンドウに関連するイベントを監視して応答する。例えば、クライアントエージェント８１０は、ウィンドウのサイズを調整するためにブラウザへのユーザ入力のイベントを検出し、これに応答して、関連するアプリケーション出力ウィンドウのサイズを調整する。
例えば、クライアントエージェント８１０は、実行された／実例化されたアプリケーション・オブジェクト８２０に応答し、単独で様々な機能をブラウザに対して実行する。
アプリケーション・オブジェクト８２０は、例えば、ウェブ・ブラウザ・ウィンドウに表示されたウェブページに埋め込まれたＡｃｔｉｖｅＸコントロールであり、アプリケーション出力ウィンドウの属性（例えば、位置、高さ、幅、境界スタイルなど）、アプリケーションプログラムの名前およびアプリケーション実行サーバのアドレスを含んでいる。
監視ユニット８０１は、クライアント・デスクトップを監視し（１）、アプリケーション出力ウィンドウに影響を与える変化（イベント：例えば、画面上あるいは画面外における、キーストローク、マウスクリック、サイズ変更イベント等）を検出する（２）。
命令ユニット８０２は、命令によって監視ユニット８０１、メッセージ送信ユニット８０３およびメッセージ受信ユニット８０４を制御し、メッセージ送信ユニット８０３を介して、監視ユニット８０１によって検出したイベントをサーバ９０に対して送信する（３、４）。
例えば、監視ユニット８０１は、デスクトップ上の座標（354, 560）の位置で発生したクリック・オン動作を命令ユニット８０２に通知する。
命令ユニット８０２は、メッセージ送信ユニット８０３によってその動作（イベント）をメッセージ形式でサーバ側に送信する（５）。
さらに、命令ユニット８０２は、サーバからの受信したウィンドウ属性情報、グラフィックのデータおよびコマンド（１０、１１）に基づいてアプリケーションオブジェクト８２０の属性を修正することを担当する（１２）。
例えば、命令ユニット８０２は、アプリケーションオブジェクトの属性に基づいてウェブページ上の特定の位置にアプリケーション出力ウィンドウを表示することをブラウザに指示する。
【０００７】
サーバ側において、サーバ９０はリクエスト受信ユニット９０１、アプリケーション実行ユニット９０２、ＧＵＩスクリーン表示ユニット９０４、応答送信ユニット９０５および１以上の既存のデスクトップ・アプリケーション９０３を有している。
リクエスト受信ユニット９０１は、クライアントエージェント８１０のメッセージ送信ユニット８０３から送信されたイベントを受信し（５）、アプリケーション実行ユニット９０２に解析したリクエストを送信する（６）。
アプリケーション実行ユニット９０２は、受信したイベントに従って対応するアプリケーションを開始しあるいは操作する（７）。
ＧＵＩスクリーン表示ユニット９０４は、サーバからアプリケーション・ウィンドウのグラフィックのデータ（すなわち、ＧＵＩ）を取得し（８）、そのデータを応答送信ユニット９０５に送信する（９）。
応答送信ユニット９０５は、クライアントエージェント８１０に応答を送信する（１０）。
この応答は、アプリケーション・ウィンドウのグラフィックのデータおよびウィンドウ特性情報およびコマンドを含んでいる。
【０００８】
図９は、図８において示す既存のシステムの動作フローを示している。ステップＳ１およびＳ２は前処理ステップであり、上述した図８の構成ブロック図において説明した通りであるので、ここでは説明を省略する。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】米国特許第6950991号明細書
【発明の概要】
【発明が解決しようとする課題】
【００１０】
上述した関連技術による解決方法は、スクリーンコピー／スナップショット（ｓｃｒｅｅｎ  ｃｏｐｙ／ｓｎａｐｓｈｏｔ）の方式で、サーバ側デスクトップシステムのＧＵＩをブラウザ側に送信し、ブラウザウェブページ上のユーザの操作情報（動作／イベント）を相対的な座標情報としてサーバへ返信する。
このようにして、元のシステムの対話型インタフェースを完全に再現することができるけれども、画像からそこに含まれている内容情報を取得することは困難であるので、ユーザがそのようなウェブ・アプリケーションを統合することは困難である。さらに、既存のシステムでは、生成したウェブ・アプリケーションのインタフェースを最適化しあるいは更新することができない。
【００１１】
本発明は、デスクトップ・アプリケーションの内容情報を効率よく取得し、生成したウェブ・アプリケーションのインタフェース（ＧＵＩ）を最適化し或いは変更することができる、デスクトップ・アプリケーションをウェブ・アプリケーションに変換する方法およびシステムを提供することを目的とする。
【００１２】
本発明による変換方法は、既存のデスクトップ・アプリケーションのグラフィックインターフェース情報を、ＧＵＩ上のすべての要素の情報（要素の識別子、構造、内容、レイアウト情報を含む）を記述するために、インタフェース記述型言語フォーマットのデータ（例えば、エクステンシブル・マークアップ・ランゲージ（ＸＭＬ）ＧＵＩのデータ）に自動的に変換する。その後、ブラウザ上で、受信したＸＭＬ  ＧＵＩデータを解析し、ウェブページに変換する。
【００１３】
ユーザがウェブページ上である制御を操作すると、対応する応答関数がトリガされる。応答関数は、リクエスト内の動作情報（どの制御がトリガされたか、どのような動作か、対応するパラメータ情報等）をサーバ側のデスクトップ・アプリケーションへ返信し、デスクトップ・アプリケーション上で、この動作が再現される。デスクトップ・アプリケーションのＧＵＩが更新された後、同様に、その変更は、ＧＵＩを更新するためにＸＭＬ  ＧＵＩフォーマットデータでブラウザに報告される。
【００１４】
本発明の第１の態様によれば、デスクトップ・アプリケーションをウェブ・アプリケーションに変換する方法は、クライアントで、希望するデスクトップ・アプリケーションのＵＲＬを入力し、それをサーバに対して送信し、サーバで、クライアントにコード変換ツールを提供し、デスクトップ・アプリケーションをロードし、サーバで、ロードしたデスクトップ・アプリケーションのインタフェース情報を抽出し、当該インタフェース情報をインタフェース記述型言語フォーマット（例えば、ＸＭＬ  ＧＵＩデータ）でデータにラッピングし、ラッピングしたデータをクライアントへ送信し、クライアントで、デスクトップ・アプリケーションを表示するために、コード変換ツールを用いて受信したインタフェース記述型言語データを解析し、関連するウェブページ要素を生成する。
さらに、クライアントで、表示されたデスクトップ・アプリケーション上で動作を実行すると、動作に対応するリクエストをサーバへ送信し、サーバで、ロードしたデスクトップ・アプリケーション上で動作を実行し、動作によって引き起こされたインタフェース上の変化を検出し、インタフェース変化に対応するインタフェース変換情報を抽出し、インタフェース記述型言語フォーマットでインタフェース変換情報をデータにラッピングし、ラッピングしたデータをクライアントへ送信し、クライアントで、コード変換ツールを用いて受信したインタフェース記述型言語データを解析して関連するウェブページ要素（例えば、ＨＴＭＬコード）を生成し、ウェブページ要素に従って表示されたデスクトップ・アプリケーションの対応する部分を更新する。
【００１５】
本発明の第２の態様によれば、デスクトップ・アプリケーションをウェブ・アプリケーションに変換する方法は、クライアント側で、所望のデスクトップ・アプリケーションのＵＲＬを入力し、それをサーバに対して送信し、サーバで、デスクトップ・アプリケーションをロードし、サーバで、ロードしたデスクトップ・アプリケーションのインタフェース情報を抽出し、インタフェース情報をインタフェース記述型言語フォーマット（例えば、ＸＭＬ  ＧＵＩデータ）でデータにラッピングし、コード変換ツールを用いてラッピングしたインタフェース記述型言語データを解析して関連するウェブページ要素（例えば、ＨＴＭＬコード）を生成し、当該ウェブページ要素をクライアントへ送信し、クライアントで、受信したウェブページ要素に基づいてデスクトップ・アプリケーションを表示する。
さらに、クライアントで、表示されたデスクトップ・アプリケーション上で動作を実行すると、動作に対応するリクエストをサーバへ送信し、サーバで、ロードしたデスクトップ・アプリケーション上で動作を実行し、動作によって引き起こされたインタフェース上の変化を検出し、インタフェース変化に対応するインタフェース変換情報を抽出し、インタフェース記述型言語フォーマットでインタフェース変換情報をデータにラッピングし、コード変換ツールを用いてインタフェース記述型言語データを解析して関連するウェブページ要素を生成し、当該ウェブページ要素をクライアントへ送信し、クライアントで、受信したウェブページ要素に従ってデスクトップ・アプリケーションの変化したインタフェースを表示する。
【００１６】
本発明の第３の態様によれば、デスクトップ・アプリケーションをウェブ・アプリケーションに変換するシステムは、クライアントと、サーバを含み、クライアントが、所望のデスクトップ・アプリケーションのＵＲＬを送信するリクエスト送信ユニットと、サーバからデータを受信するデータ受信ユニットとを備え、サーバが、ＵＲＬを受信するリクエスト受信ユニットと、クライアントにコード変換ツールを提供するツール提供ユニットと、デスクトップ・アプリケーションをロードするためのアプリケーション作動ユニットと、ロードしたデスクトップ・アプリケーションのインタフェース情報を抽出し、インタフェース情報をインタフェース記述型言語フォーマット（例えば、ＸＭＬ  ＧＵＩデータ）でデータにラッピングするインタフェース抽出ユニットと、インタフェース抽出ユニットによってラッピングされたインタフェース記述型言語データをクライアントへ送信するデータ送信ユニットとを備え、クライアントが、データ受信ユニットによって受信したインタフェース記述型言語データを、コード変換ツールを用いて解析し、関連するウェブページ要素（例えば、ＨＴＭＬコード）を生成し、クライアントのブラウザが生成したウェブページ要素に基づいてデスクトップ・アプリケーションを表示する。
さらに、ユーザがクライアントに表示されたデスクトップ・アプリケーション上で動作を実行すると、リクエスト送信ユニットが、動作に対応するリクエストをサーバに送信し、サーバにおいて、リクエスト受信ユニットがリクエストを受信し、アプリケーション作動ユニットが、デスクトップ・アプリケーションのインタフェース上でリクエストに対応する動作を実行し、インタフェース抽出ユニットが、動作によって引き起こされたインタフェース上の変化を検出し、インタフェース変化に対応するインタフェース変換情報を抽出し、インタフェース記述型言語フォーマットでインタフェース変換情報をデータにラッピングし、データ送信ユニットが、ラッピングしたデータをクライアントへ送信し、クライアントにおいて、コード変換ツールを用いて受信したインタフェース記述型言語データを解析して関連するウェブページ要素を生成し、クライアントのブラウザが、ウェブページ要素に従って表示されたデスクトップ・アプリケーションの対応する部分を更新する。
【００１７】
本発明の第４の態様によれば、デスクトップ・アプリケーションをウェブ・アプリケーションに変換するシステムは、クライアントと、サーバを含み、クライアントが、所望のデスクトップ・アプリケーションのＵＲＬを送信するリクエスト送信ユニットと、サーバからデータを受信するデータ受信ユニットとを備え、サーバが、ＵＲＬを受信するリクエスト受信ユニットと、デスクトップ・アプリケーションをロードするためのアプリケーション作動ユニットと、ロードしたデスクトップ・アプリケーションのインタフェース情報を抽出し、インタフェース情報をインタフェース記述型言語フォーマット（例えば、ＸＭＬ  ＧＵＩデータ）でデータにラッピングするインタフェース抽出ユニットと、インタフェース抽出ユニットによってラッピングしたインタフェース記述型言語データを解析し、関連するウェブページ要素（例えば、ＨＴＭＬコード）を生成するコード変換ユニットと、ウェブページ要素をクライアントへ送信するデータ送信ユニットとを備え、クライアントのブラウザが受信したウェブページ要素に基づいてデスクトップ・アプリケーションを表示する。
さらに、ユーザがクライアント上で表示されたデスクトップ・アプリケーション上で動作を行うと、リクエスト送信ユニットが、動作に対応するリクエストをサーバへ送信し、サーバにおいて、リクエスト受信ユニットがリクエストを受信し、アプリケーション作動ユニットが、デスクトップ・アプリケーションのインタフェース上でリクエストに対応する動作を実行し、インタフェース抽出ユニットが、動作によって引き起こされたインタフェース上の変化を検出し、インタフェース変化に対応するインタフェース変換情報を抽出し、インタフェース記述型言語フォーマットでインタフェース変換情報をデータにラッピングし、コード変換ユニットが、インタフェース抽出ユニットによってラッピングされたインタフェース記述型言語データを解析して関連するウェブページ要素を生成し、データ送信ユニットが、当該ウェブページ要素をクライアントへ送信し、クライアントにおいて、クライアントのブラウザが、受信したウェブページ要素に従ってデスクトップ・アプリケーションの変化したインタフェースを表示する。
【００１８】
本発明によれば、ＸＭＬデータからＧＵＩに含まれるデータ情報を簡単に取得することができ、これにより、ウェブ・アプリケーションを統合することができる。例えば、ウェブページ上の一連の操作を処理し、他のネットワークサービスに対して結果として得られた情報を出力することができる。さらに、対話型のインタフェースを最適化するか変更するＧＵＩを処理することは可能である。
【課題を解決するための手段】
【００１９】
本発明の第１のデスクトップ・アプリケーションをウェブ・アプリケーションに変換する方法は、クライアントで、希望するデスクトップ・アプリケーションのＵＲＬを入力し、それをサーバに対して送信し、サーバで、クライアントにコード変換ツールを提供し、デスクトップ・アプリケーションをロードし、サーバで、ロードしたデスクトップ・アプリケーションのインタフェース情報を抽出し、当該インタフェース情報をインタフェース記述型言語フォーマットでデータにラッピングし、ラッピングしたデータをクライアントへ送信し、クライアントで、デスクトップ・アプリケーションを表示するために、コード変換ツールを用いて受信したインタフェース記述型言語データを解析し、関連するウェブページ要素を生成する。
【００２０】
本発明の第２のデスクトップ・アプリケーションをウェブ・アプリケーションに変換する方法は、クライアント側で、所望のデスクトップ・アプリケーションのＵＲＬを入力し、それをサーバに対して送信し、サーバで、デスクトップ・アプリケーションをロードし、サーバで、ロードしたデスクトップ・アプリケーションのインタフェース情報を抽出し、インタフェース情報をインタフェース記述型言語フォーマットでデータにラッピングし、コード変換ツールを用いてラッピングしたインタフェース記述型言語データを解析して関連するウェブページ要素を生成し、当該ウェブページ要素をクライアントへ送信し、クライアントで、受信したウェブページ要素に基づいてデスクトップ・アプリケーションを表示する。
【００２１】
本発明の第１のデスクトップ・アプリケーションをウェブ・アプリケーションに変換するシステムは、クライアントと、サーバを含み、クライアントが、所望のデスクトップ・アプリケーションのＵＲＬを送信するリクエスト送信ユニットと、サーバからデータを受信するデータ受信ユニットとを備え、サーバが、ＵＲＬを受信するリクエスト受信ユニットと、クライアントにコード変換ツールを提供するツール提供ユニットと、デスクトップ・アプリケーションをロードするためのアプリケーション作動ユニットと、ロードしたデスクトップ・アプリケーションのインタフェース情報を抽出し、インタフェース情報をインタフェース記述型言語フォーマットでデータにラッピングするインタフェース抽出ユニットと、インタフェース抽出ユニットによってラッピングされたインタフェース記述型言語データをクライアントへ送信するデータ送信ユニットとを備え、クライアントが、データ受信ユニットによって受信したインタフェース記述型言語データを、コード変換ツールを用いて解析し、関連するウェブページ要素を生成し、クライアントのブラウザが生成したウェブページ要素に基づいてデスクトップ・アプリケーションを表示する。
【００２２】
本発明の第２のデスクトップ・アプリケーションをウェブ・アプリケーションに変換するシステムは、クライアントと、サーバを含み、クライアントが、所望のデスクトップ・アプリケーションのＵＲＬを送信するリクエスト送信ユニットと、サーバからデータを受信するデータ受信ユニットとを備え、サーバが、ＵＲＬを受信するリクエスト受信ユニットと、デスクトップ・アプリケーションをロードするためのアプリケーション作動ユニットと、ロードしたデスクトップ・アプリケーションのインタフェース情報を抽出し、インタフェース情報をインタフェース記述型言語フォーマットでデータにラッピングするインタフェース抽出ユニットと、インタフェース抽出ユニットによってラッピングしたインタフェース記述型言語データを解析し、関連するウェブページ要素を生成するコード変換ユニットと、ウェブページ要素をクライアントへ送信するデータ送信ユニットとを備え、クライアントのブラウザが受信したウェブページ要素に基づいてデスクトップ・アプリケーションを表示する。
【発明の効果】
【００２３】
本発明によれば、デスクトップ・アプリケーションの内容情報を効率よく取得し、生成したウェブ・アプリケーションのインタフェース（ＧＵＩ）を最適化し或いは変更することができる。
【図面の簡単な説明】
【００２４】
本発明の上記および他の特徴は、以下の図面を参照して下記の詳細な説明を読むことにより、より明確に理解されるであろう。
【図１】本発明の第１の実施の形態によるデスクトップ・アプリケーション変換システム１００の内部構造を示すブロック図である。
【図１Ａ】図１Ａは、図１に示すシステム１００の他の変形例１００Ａの内部構造を示すブロック図であり、サーバ２０が複数のクライアント１０と相互に通信する場合を考慮している。
【図２】図１に示すシステム１００のデスクトップ・アプリケーション表示処理を説明するフローチャートである。
【図３】図１に示すシステム１００のデスクトップ・アプリケーション更新処理を説明するフローチャートである。
【図４】本発明の第２の実施の形態によるデスクトップ・アプリケーション変換システム４００の内部構造を示すブロック図である。
【図５】図４に示すシステム４００のデスクトップ・アプリケーション表示処理を説明するフローチャートである。
【図６】図４に示すシステム４００のデスクトップ・アプリケーション更新処理を説明するフローチャートである。
【図７】本発明の第１と第２の実施の形態によるデスクトップ・アプリケーション変換システムの動作処理を説明するための概略図である。
【図８】関連技術によるシステムの内部構造を示すのためのブロック図である。
【図９】図９は、図８に示す関連技術のシステムの動作処理を示すのためのフローチャートである。
【発明を実施するための形態】
【００２５】
以下、本発明によるデスクトップ・アプリケーションをウェブ・アプリケーションに変換する方法およびシステムについて、添付図面を参照して詳細に説明する。本発明の原理を説明するため、例としてエクステンシブル・マークアップ・ランゲージ（ＸＭＬ）を示しているが、本発明に対して他の周知の記述型言語を適用することができることは当業者によって容易に理解できるであろう。
【００２６】
（第１の実施の形態）
図１は、本発明の第１の実施の形態によるデスクトップ・アプリケーション変換システム１００の内部構造を示すブロック図である。
図８に示す関連技術のシステムと比較して、本発明によるデスクトップ・アプリケーション変換システム１００においては、クライアントの構造が非常に簡素化していることが分かるであろう。
クライアントはいかなる形式においてもクライアントエージェントを含む必要がない。図１に示すように、クライアント１０は、リクエスト送信ユニット１０１およびデータ受信ユニット１０２を備えている。リクエスト送信ユニット１０１は、例えば、ユーザが呼び出しを希望するアプリケーションのＵＲＬを送信し、あるいは、ＧＵＩ更新処理中に、ユーザがＧＵＩ上で行うイベント（例えば、動作）に対応するリクエスト（例えば、ｈｔｔｐリクエスト）を送信する。データ受信ユニット１０２は、サーバからのデータを受信するために用いられる。
【００２７】
図１において、サーバ２０は、アプリケーション作動ユニット２０１と、リクエスト受信ユニット２０２と、ツール提供ユニット２０３と、データ送信ユニット２０４と、インタフェース（ＧＵＩ）抽出装置２０５およびインタフェース修正ユニット２０６（任意）を備えている。また、サーバ２０は、既存のデスクトップ・アプリケーションの集合を含んでもよい。
【００２８】
図１Ａは、図１のシステム１００の別の変形例１００Ａを示している。ここでは、サーバ２０が、複数のクライアント１０と相互に通信する形態を考慮している。種々のクライアントによって呼び出されたアプリケーションを区別するため、図１に示すシステム１００の構成要素に加えて、サーバ２０は、さらに、アプリケーション対応テーブル２０８を格納するメモリ、テーブル操作ユニット２０７およびセッションＩＤ（識別子）割り当てユニット２０９を備えている。これに対応して、クライアント１０は、さらに、セッションＩＤ受信ユニット１０３およびセッションＩＤ挿入ユニット１０４を備えている。
説明を分かり易くするために、新しく追加した構成要素と相互に情報通信を行う構成要素あるいは部分だけを図１Ａに示し、図１と同じ他の構成要素については省略している。
【００２９】
以下に本発明の第１の実施の形態によるデスクトップ・アプリケーション変換システム１００（１００Ａ）の具体的な動作処理について、図２および図３を参照して説明する。さらに本発明の動作処理の具体例を図７に示している。
【００３０】
まず、ユーザは、ブラウザのアドレス欄に呼び出しを希望するデスクトップ・アプリケーションのＵＲＬを、例えば、ＵＲＬ：ｈｔｔｐ：／／ｗｗｗ．ｎｅｃ．ｃｏｍ／Ａｐｐ５のように入力する。
図２を参照すると、その後、ステップ２０１において、クライアント１０が、ユーザが入力したデスクトップ・アプリケーションのＵＲＬをリクエスト送信ユニット１０１を介してサーバ２０に送信する。
サーバ２０において、そのＵＲＬはリクエスト受信ユニット２０２によって受信される。そのＵＲＬは、希望するデスクトップ・アプリケーションを識別するためのアプリケーションＩＤを含んでいる。例えば、図７に示す例において、ユーザがＵＲＬ：ｈｔｔｐ：／／ｗｗｗ．ｎｅｃ．ｃｏｍ／Ａｐｐ５を入力した場合、対応するアプリケーションＩＤは「５」である。
次に、図１Ａの場合、異なるクライアントによって呼び出されたアプリケーションを区別するために、サーバ２０はアプリケーション対応テーブル２０８を保持する。
このため、ステップ２０２において、サーバ２０のセッションＩＤ割り当てユニット２０９は、上記クライアント１０に対して、当該サーバ２０とこのクライアント間に確立されたセッションを識別するためのセッションＩＤを割り当てる。
次に、テーブル操作ユニット２０７は、アプリケーション対応テーブル２０８に、アプリケーションＩＤとセッションＩＤ間の対応関係を記録する新たなエントリを追加することにより、アプリケーション対応テーブル２０８を更新する。
ステップ２０３において、クライアント１０に対して割り当てられたセッションＩＤは対応するクライアントへ送信される。
クライアントからアプリケーションＵＲＬを受信すると、サーバは以下の２つの処理を実行する。
（１）ステップ２０４において、ツール提供ユニット２０３がクライアント１０に対してコード変換ツールを提供する。
このコード変換ツールは、ブランクのウェブページ内に含まれるJavaScriptコード或いは対応するプラグイン（例えば、ActiveX、Flash、Sliverlight、Applet等）を含む。コード変換ツールの機能および作用については後述する。
（２）ステップ２０５において、アプリケーション作動ユニット２０１が、受信したＵＲＬから解析されたアプリケーションＩＤに従って、デスクトップ・アプリケーション集合から対応デスクトップ・アプリケーションを選択してロードする。
【００３１】
対応デスクトップ・アプリケーション（例えば、アプリケーションＩＤ＝５）をロードした後、ステップ２０６において、インタフェース抽出ユニット２０５が、デスクトップ・アプリケーションのＧＵＩ情報を抽出し、例えばＸＭＬ（エクステンシブル・マークアップ・ランゲージ）フォーマット・データにそれをラッピングする。
ＸＭＬデータは、ＧＵＩにおける全ての要素の情報（ユニークな標識、属性（例えば、種類、サイズ、位置、内容等）、操作タイプ（例えば、追加、削除、更新等）を含む）を記述することができる。
オプション機能として、ステップ２０７において、インタフェース修正ユニット２０６が、デスクトップ・アプリケーションのＧＵＩを再カスタマイズするためにラッピングされたＸＭＬデータを修正することが可能である。
例えば、ＧＵＩのレイアウトを変更したり、或いは、ＸＭＬデータの修正により機能を追加する／削除することが可能である。
次に、ステップ２０８において、ラッピングされた（あるいは、修正された）ＸＭＬデータが、データ送信ユニット２０４を通してクライアントへ送信される。
クライアントにおいて、ＸＭＬデータはデータ受信ユニット１０２によって受信され、コード変換を行うため先に受信したコード変換ツールに提供される（ステップ２０９）。
コード変換ツールは、受信したＸＭＬデータを解析し、対応するＧＵＩ要素情報を生成する。これにより、対応するウェブページ（例えば、ＨＴＭＬデータ）を自動的に生成し、ウェブページの制御タイプに基づいてそれらの応答関数としてＪａｖａＳｃｒｉｐｔコードを追加する。
上述したように、コード変換ツールは、ウェブページを含まれるＪａｖａＳｃｒｉｐｔコード、或いはプラグイン（例えば、ActiveX、Flash、Sliverlight、Applet等）を含む。
プラグインを使用する場合、サーバは、このプラグインを含むブランクのウェブページをクライアントに対して返却する。
クライアントがブランクのウェブページを受信すると、このプラグインが以前すでにインストールされているかどうかをまず判定する。
プラグインが既にインストールされているとクライアントが判定すれば、それを直接呼び出すことが可能である。
クライアントがプラグインをまだインストールしていなければ、ユーザに対して、ダイアログ・ボックス等を用いてプラグインをインストールするかどうかを問い合わせる。ユーザが許可すれば、プラグインがブラウザにインストールされる。
本実施の形態において、ＸＭＬデータの解析は、ＪａｖａＳｃｒｉｐｔのＤＯＭ技術によって実現することが可能である。
例えば、ＪａｖａＳｃｒｉｐｔは、ＸＭＬ  ＧＵＩデータの各ＧＵＩ要素の情報（ユニークな標識、属性、操作タイプ等を含む）を１つ１つ順番に処理する。
操作タイプが「追加」であれば、インタフェース要素タイプ（例えば、Button/TextBox/List…等）を通して、対応するウェブページ要素（例えば、必要な属性含むボタンを記述するＨＴＭＬコード）が構築される。
次に、インタフェース要素（ＧＵＩ要素）と生成されたウェブページ要素間のマッピング関係が記録される。
操作タイプが「削除」ならば、ＧＵＩ要素に対応するウェブページ要素が見つけ出され、ウェブページから削除される。また、対応するマッピング関係が削除される。
操作タイプが「更新」ならば、ＧＵＩ要素に対応するウェブページ要素が見つけ出され、そのウェブページ要素が受信した新たな要素属性を用いて更新される。
さらに、ＧＵＩ要素はそれぞれ応答イベントにバインドされる（結び付けられる）。
異なるＧＵＩ要素のタイプに基づいて、異なるイベントがＧＵＩ要素にバインドされる。
例えば、Buttonは、OnClickイベントにバインドされる。
応答イベントがトリガされると、動作記述リクエストがサーバへ送信される。
このリクエストは、操作されているＧＵＩ要素のユニークな識別子、動作タイプおよび関連するパラメータを含む。
図２に戻り、ステップ２１０において、ブラウザは、自身に含まれるモジュール（例えば、レンダリングモジュール）を使用し、コード変換ツールによって生成されたウェブページ要素に基づいて使用したいデスクトップ・アプリケーションをレンダリングして表示する。
【００３２】
図３は、デスクトップ・アプリケーション更新処理を説明するフローチャートである。
ステップ３０１において、クライアントのユーザは、アプリケーションＧＵＩ上である動作を実行する。
例えば、図７に示すように、ユーザが、ウェブページ上で左のツリーリスト中のファイルフォルダのアイコンをクリックする。
このＨＴＭＬ要素に対応するＪａｖａＳｃｒｉｐｔコードのセクションがトリガーされ、特定のｈｔｔｐリクエストを生成する。
例えば、ウェブページ上のボタンがクリックされると、以下のようなｈｔｔｐリクエストが生成される。
ｈｔｔｐ：／／ｗｗｗ．ｎｅｃ．ｃｏｍ／Ａｐｐ５／Ｃｏｎｔｒｏｌ＝ｂｕｔｔｏｎ＆ＩＤ＝１
図１Ａの具体例においては、サーバに対して同一性を示すために、ステップ３０２で、クライアント１０のセッションＩＤ挿入ユニット１０４が、以前の通信でサーバが提供したセッションＩＤをそのｈｔｔｐリクエストに挿入する。
次に、ステップ３０３において、セッションＩＤを含むｈｔｔｐリクエストが、サーバに送信され、サーバのリクエスト受信ユニット２０２によって受信される。
ｈｔｔｐリクエストを受信すると、テーブル操作ユニット２０７は、当該リクエストからセッションＩＤを抽出し、アプリケーション対応テーブル２０８を検索することにより対応するアプリケーションＩＤを判定する（ステップ３０４）。
ステップ３０５において、アプリケーション作動ユニット２０１は、テーブル操作ユニット２０７によって判定されたアプリケーションＩＤに従って対応するアプリケーションを操作し、アプリケーションのＧＵＩ上でのユーザの動作（例えば、ウェブページ上の左のツリーリスト中のファイルフォルダのアイコンをクリックする動作）を再現する。
これにより、図７を参照すると、サーバ側において、ファイルフォルダに含まれるファイルのリストが現われる。
次に、ステップ３０６において、インタフェース抽出ユニット２０５は、アプリケーションのＧＵＩの変化を検出し、ＧＵＩ変化情報を抽出し、そのＧＵＩ変化情報をＸＭＬフォーマットデータにラッピングする。
ステップ３０７において、ラッピングされたＸＭＬデータ（それらはアプリケーションのＧＵＩの変化を反映している）は、データ送信ユニット２０４を通してクライアントへ送信される。
ステップ３０８において、コード変換ツールは、受信したＸＭＬデータを解析しそれをウェブページ要素（例えば、ＨＴＭＬ）に翻訳する。また、ブラウザは、デスクトップ・アプリケーションＧＵＩ上の対応する部分の表示を動的に更新する（ステップ３０９）。
【００３３】
（第２の実施の形態）
本発明の第２の実施の形態について、図４〜図７を参照して説明する。
図４は、本発明の第２の実施の形態によるデスクトップ・アプリケーション変換システム４００の内部構造を示すブロック図である。図５は、図４に示すシステム４００のデスクトップ・アプリケーション表示処理を説明するフローチャートである。図６は、図４に示すシステム４００のデスクトップ・アプリケーション更新処理を説明するフローチャートである。
【００３４】
第１と第２実施の形態の間の相違は、アプリケーションＧＵＩについてのコード変換機能（ＸＭＬデータからＨＴＭＬ要素への）が、クライアントによって実行されず、サーバによって実行される点である。
従って、図１に示すシステム１００と比較すると、システム４００においては、サーバ２０がコード変換ツールを提供するためのツール提供ユニット２０３を備えていない。その代わりに、サーバ２０はそれ自体にコード変換ユニット４０１を備えている。
コード変換ユニット４０１が任意のウェブページに含まれるＪａｖａＳｃｒｉｐｔコードである点は、第１の実施の形態と同様である。
図４において、第１の実施の形態と類似の構成要素については同じ参照番号で示し、それらの詳細な説明はここでは省略する。
【００３５】
サーバが複数のクライアントと相互に通信する形態に第２の実施の形態が適用されることに留意するべきである。従って、図１Ａの変形例は、同様に第２の実施の形態によるシステム４００に適用することができる。
【００３６】
図５および図６のフローチャートを参照すると、第１の実施の形態と同様、ステップ５０１において、クライアントが、ブラウザを通して希望するデスクトップ・アプリケーションのＵＲＬを入力する。
そのＵＲＬはデスクトップ・アプリケーションを識別するためのアプリケーションＩＤを含んでいる。
ステップ５０２において、サーバはクライアントにセッションＩＤを割り当て、新たなエントリの追加することによりアプリケーション対応テーブル２０８を更新する。
次に、ステップ５０３において、割り当てられたセッションＩＤが、クライアントへ送信される。
ステップ５０４において、サーバのアプリケーション作動ユニット２０１がデスクトップ・アプリケーションをロードする。
ステップ５０５において、インタフェース抽出ユニット２０５は、デスクトップ・アプリケーションのＧＵＩ情報を抽出し、ＸＭＬデータ中にＧＵＩ情報をラッピングする。
第１の実施の形態と同様に、オプションのステップ５０６が実行され、インタフェース修正ユニット２０６が、アプリケーションＧＵＩを再カスタマイズするためにラッピングされたＸＭＬデータを修正することが可能である。
ここで、第１の実施の形態と異なり、ラッピングされた（あるいは修正された）ＸＭＬデータは、クライアントへ送信されず、サーバ側上で直接処理される。
ステップ５０７において、コード変換ユニット４０１は、ＸＭＬデータを解析するコード変換ツール（例えば、ＪａｖａＳｃｒｉｐｔコード）を使用し、それを対応するウェブページ要素（例えば、ＨＴＭＬデータ）に翻訳する。
ステップ５０８において、データ送信ユニット２０４が、クライアントへ生成したウェブページ要素（ＨＴＭＬデータ）を送信する。
次に、クライアントにおいて、ブラウザが、受信したウェブページ要素からデスクトップ・アプリケーションを直接表示する（ステップ５０９）。
【００３７】
図６を参照すると、ユーザがデスクトップ・アプリケーションＧＵＩ上で動作を実行すると、第１の実施の形態と同様、クライアントが対応するｈｔｔｐリクエスト（ステップ６０１）を生成する。
ステップ６０２において、異なるクライアントを区別するために、サーバによって以前に割り当てられたセッションＩＤをｈｔｔｐリクエストに挿入する。
次に、ステップ６０３において、ｈｔｔｐリクエストをサーバへ送信する。
ステップ６０４において、テーブル操作ユニット２０７が上記リクエストからセッションＩＤを抽出し、セッションＩＤに対応するアプリケーションＩＤを判定するためにアプリケーション対応テーブル２０８を検索する。
ステップ６０５において、ユーザの動作が、アプリケーションＩＤに対応するアプリケーションＧＵＩ上で再現される。
ステップ６０６において、インタフェース抽出ユニット２０５は、ＧＵＩ変化を検出し、変化したＧＵＩの全ＧＵＩ情報を抽出し、ＸＭＬデータ中にそれをラッピングする。
次に、ステップ６０７において、コード変換ユニット４０１は、変化したＧＵＩのＸＭＬデータをウェブページ要素ＨＴＭＬに翻訳する。
ステップ６０８において、生成したウェブページ要素を、クライアントへ送信する。
次に、ステップ６０９において、ブラウザは、受信したウェブページ要素に基づいてデスクトップ・アプリケーションの変化したＧＵＩを表示する。
【００３８】
以上、本発明の第１と第２実施の形態について、添付図面を参照して説明した。
上述したように、本発明によれば、ＸＭＬデータからＧＵＩに含まれるデータ情報を簡単に取得することができ、これにより、ウェブ・アプリケーションを統合することができる。例えば、ウェブページ上の一連の操作を処理し、他のネットワークサービスに対して結果として得られた情報を出力することができる。さらに、対話型のインタフェースを最適化するか変更するＧＵＩを処理することは可能である。
【００３９】
しかしながら、本発明は、添付図面において示される特定の構成および処理に限定されない。上記の実施の形態において、いくつかの具体的なステップが例として示され説明されている。しかしながら、本発明の方法はこれらの特定のステップに限定されない。当業者であれば、本発明の精神および本質的な機能から外れずることなく、これらのステップに変更、修正、補足を加えることができ、あるいはステップ間の順番を変更できることを容易に理解するであろう。
【００４０】
本発明に要素は、ハードウェア、ソフトウェア、ファームウェアあるいはそれの組み合わせにおいて実現され、それのシステム、サブシステム、構成部品あるいはサブコンポーネントにおいて利用することができる。ソフトウェア中で実現された時、本発明に要素は、必要なタスクを実行するためのプログラム、あるいはコードセグメントである。プログラムまたはコードセグメントは、コンピュータ読み取り可能な媒体に格納するか、あるいは伝送ケーブルか通信リンク上の搬送波に包含されたデータ信号によって送信することが可能である。コンピュータ読み取り可能な媒体には、情報を格納するか転送することが可能であるすべての媒体を含む。コンピュータ読み取り可能な媒の具体例は、電子回路、半導体記憶装置、ＲＯＭ、フラッシュ・メモリー、消去可能ＲＯＭ（ＥＲＯＭ）、フロッピー・ディスク、ＣＤ−ＲＯＭ光ディスク、ハードディスク、光ファイバー媒体、無線周波数（ＲＦ）リンクなどを含む。コードセグメントは、インターネット、イントラネットなどのようなコンピュータネットワークを経由してダウンロードすることも可能である。
【００４１】
以上、特定の実施の形態を参照して本発明を説明したが、本発明は、図面中で示される上記の特定の実施の形態および特定の構成に限定されない。例えば、示されたいくつかの構成要素は、１つの構成要素として互いに組み合わせることも可能である。あるいは、１つの構成要素をいくつかのサブコンポーネントに分割することも可能であるし、他の既知の構成要素を加えることも可能である。動作処理も実施例において示されるものに限定されない。当業者は、本発明が、本発明の精神および本質的な機能から外れずに、他の特定の形態に実装可能であることを理解するだろう。従って、上記の実施の形態は、全ての点において例示でありかつ限定的でないと考慮すべきである。本発明の範囲は、前述の説明によってではなく添付された請求項によって示される。したがって、請求項と同等の意味と範囲の内で生ずる変更は全て本発明の範囲に包含される。
【００４２】
さらに、上記実施形態の一部又は全部は、以下の付記のようにも記載されうるが、これに限定されない。
【００４３】
（付記１）
デスクトップ・アプリケーションをウェブ・アプリケーションに変換する方法であって、
クライアントで、希望するデスクトップ・アプリケーションのＵＲＬを入力し、それをサーバに対して送信し、
サーバで、クライアントにコード変換ツールを提供し、デスクトップ・アプリケーションをロードし、
サーバで、ロードしたデスクトップ・アプリケーションのインタフェース情報を抽出し、当該インタフェース情報をインタフェース記述型言語フォーマットでデータにラッピングし、ラッピングしたデータを前記クライアントへ送信し、
前記クライアントで、デスクトップ・アプリケーションを表示するために、コード変換ツールを用いて受信したインタフェース記述型言語データを解析し、関連するウェブページ要素を生成すること
を特徴とするデスクトップ・アプリケーションをウェブ・アプリケーションに変換する方法。
【００４４】
（付記２）
前記クライアントで、
表示されたデスクトップ・アプリケーション上で動作を実行し、
動作に対応するリクエストを前記サーバへ送信し、
前記サーバで、
ロードしたデスクトップ・アプリケーション上で動作を実行し、動作によって引き起こされたインタフェース上の変化を検出し、インタフェース変化に対応するインタフェース変換情報を抽出し、インタフェース記述型言語フォーマットでインタフェース変換情報をデータにラッピングし、ラッピングしたデータを前記クライアントへ送信し、
前記クライアントで、
コード変換ツールを用いて受信したインタフェース記述型言語データを解析して関連するウェブページ要素を生成し、
ウェブページ要素に従って表示されたデスクトップ・アプリケーションの対応する部分を更新することを特徴とする付記１に記載の方法。
【００４５】
（付記３）
前記サーバで、
ラッピングしたインタフェース記述型言語データを修正し、修正済のインタフェース記述型言語データを前記クライアントへ送信することを特徴とする付記１に記載の方法。
【００４６】
（付記４）
前記コード変換ツールが、ウェブページに含まれるＪａｖａＳｃｒｉｐｔコードであり、
前記コード変換ツールを提供するステップが、
前記サーバから前記クライアントへＪａｖａＳｃｒｉｐｔコードを含むブランクのウェブページを返却することを特徴とする付記１に記載の方法。
【００４７】
（付記５）
前記コード変換ツールが、前記ウェブページに含まれるプラグであり、
前記コード変換ツールを提供するステップが、
前記サーバから前記クライアントへ前記プラグを含むブランクのウェブページを返却し、
前記クライアントが、前記プラグが既にインストールされているかどうかを判定し、
前記クライアントが、前記プラグが既にインストールされていると判定すると、プラグを直接呼び出し、
前記クライアントが、前記プラグがインストールされていないと判定すると、前記プラグをインストールするかどうかをユーザに問い合せし、
ユーザが前記プラグのインストールを許可すると、クライアントのブラウザに前記プラグをインストールすることを特徴とする付記１に記載の方法。
【００４８】
（付記６）
前記デスクトップ・アプリケーションのＵＲＬが、デスクトップ・アプリケーションを識別するためのアプリケーションＩＤを含み、前記サーバがアプリケーション対応テーブルを含み、
前記クライアントからデスクトップ・アプリケーションのＵＲＬを受信すると、前記サーバが、前記ＵＲＬにおいて含まれるアプリケーションＩＤを抽出し、サーバとクライアント間のセッションを識別するためのセッションＩＤをクライアントに割り当て、
前記サーバが、割り当てたセッションＩＤを前記クライアントへ送信し、
前記サーバが、アプリケーションＩＤとセッションＩＤの対応を記録するエントリを追加することにより前記アプリケーション対応テーブルを更新し、
前記クライアントが、動作に対応するリクエストを送信する前に、リクエストに前記セッションＩＤを挿入し、
前記サーバが、前記リクエストを受信すると、前記リクエストから前記セッションＩＤを抽出し、
前記アプリケーション対応テーブルを検索することにより前記セッションＩＤに対応するアプリケーションＩＤを決定し、
取得したアプリケーションＩＤを有するデスクトップ・アプリケーションのインタフェース上で前記動作を実行することを特徴とする付記２に記載の方法。
【００４９】
（付記７）
前記インタフェース記述型言語が、エクステンシブル・マークアップ・ランゲージ（ＸＭＬ）であることを特徴とする付記１又は付記２に記載の方法。
【００５０】
（付記８）
前記ウェブページ要素が、ハイパーテキスト・マークアップ・ランゲージ（ＨＴＭＬ）コードであることを特徴とする付記１又は付記２に記載の方法。
【００５１】
（付記９）
前記リクエストが、ハイパーテキスト転送プロトコル（ＨＴＴＰ）リクエストであることを特徴とする付記２に記載の方法。
【００５２】
（付記１０）
デスクトップ・アプリケーションをウェブ・アプリケーションに変換する方法であって、
クライアント側で、所望のデスクトップ・アプリケーションのＵＲＬを入力し、それをサーバに対して送信し、
サーバで、前記デスクトップ・アプリケーションをロードし、
前記サーバで、
ロードしたデスクトップ・アプリケーションのインタフェース情報を抽出し、
前記インタフェース情報をインタフェース記述型言語フォーマットでデータにラッピングし、
前記コード変換ツールを用いてラッピングした前記インタフェース記述型言語データを解析して関連するウェブページ要素を生成し、当該ウェブページ要素を前記クライアントへ送信し、
前記クライアントで、
受信した前記ウェブページ要素に基づいてデスクトップ・アプリケーションを表示することを特徴とするデスクトップ・アプリケーションをウェブ・アプリケーションに変換する方法。
【００５３】
（付記１１）
前記クライアントで、
表示されたデスクトップ・アプリケーション上で動作を実行し、
動作に対応するリクエストを前記サーバへ送信し、
前記サーバで、
ロードしたデスクトップ・アプリケーション上で動作を実行し、動作によって引き起こされたインタフェース上の変化を検出し、インタフェース変化に対応するインタフェース変換情報を抽出し、インタフェース記述型言語フォーマットでインタフェース変換情報をデータにラッピングし、
コード変換ツールを用いてインタフェース記述型言語データを解析して関連するウェブページ要素を生成し、当該ウェブページ要素をクライアントへ送信し、
前記クライアントで、受信したウェブページ要素に従ってデスクトップ・アプリケーションの変化したインタフェースを表示することを特徴とする付記１０に記載の方法。
【００５４】
（付記１２）
前記サーバで、
ラッピングしたインタフェース記述型言語データを修正し、修正済のインタフェース記述型言語データを解析のために前記コード変換ツールに提供することを特徴とする付記１０に記載の方法。
【００５５】
（付記１３）
前記コード変換ツールが、ウェブページに含まれるＪａｖａＳｃｒｉｐｔコードであることを特徴とする付記１０に記載の方法。
【００５６】
（付記１４）
前記インタフェース記述型言語が、エクステンシブル・マークアップ・ランゲージ（ＸＭＬ）であることを特徴とする付記１０又は付記１１に記載の方法。
【００５７】
（付記１５）
前記ウェブページ要素が、ハイパーテキスト・マークアップ・ランゲージ（ＨＴＭＬ）コードであることを特徴とする付記１０又は付記１１に記載の方法。
【００５８】
（付記１６）
前記リクエストが、ハイパーテキスト転送プロトコル（ＨＴＴＰ）リクエストであることを特徴とする付記１１２に記載の方法。
【００５９】
（付記１７）
前記デスクトップ・アプリケーションのＵＲＬが、デスクトップ・アプリケーションを識別するためのアプリケーションＩＤを含み、前記サーバがアプリケーション対応テーブルを含み、
前記クライアントからデスクトップ・アプリケーションのＵＲＬを受信すると、前記サーバが、前記ＵＲＬにおいて含まれるアプリケーションＩＤを抽出し、サーバとクライアント間のセッションを識別するためのセッションＩＤをクライアントに割り当て、
前記サーバが、割り当てたセッションＩＤを前記クライアントへ送信し、
前記サーバが、アプリケーションＩＤとセッションＩＤの対応を記録するエントリを追加することにより前記アプリケーション対応テーブルを更新し、
前記クライアントが、動作に対応するリクエストを送信する前に、リクエストに前記セッションＩＤを挿入し、
前記サーバが、前記リクエストを受信すると、前記リクエストから前記セッションＩＤを抽出し、
アプリケーション対応テーブルを検索することにより前記セッションＩＤに対応するアプリケーションＩＤを決定し、
取得したアプリケーションＩＤを有するデスクトップ・アプリケーションのインタフェース上で前記動作を実行することを特徴とする付記１１に記載の方法。
【００６０】
（付記１８）
クライアントと、サーバを含み、
前記クライアントが、
所望のデスクトップ・アプリケーションのＵＲＬを送信するリクエスト送信ユニットと、
前記サーバからデータを受信するデータ受信ユニットとを備え、
前記サーバが、
前記ＵＲＬを受信するリクエスト受信ユニットと、
前記クライアントにコード変換ツールを提供するツール提供ユニットと、
前記デスクトップ・アプリケーションをロードするためのアプリケーション作動ユニットと、
ロードした前記デスクトップ・アプリケーションのインタフェース情報を抽出し、インタフェース情報をインタフェース記述型言語フォーマットでデータにラッピングするインタフェース抽出ユニットと、
前記インタフェース抽出ユニットによってラッピングされたインタフェース記述型言語データを前記クライアントへ送信するデータ送信ユニットとを備え、
前記クライアントが、前記データ受信ユニットによって受信した前記インタフェース記述型言語データを、前記コード変換ツールを用いて解析し、関連するウェブページ要素を生成し、前記クライアントのブラウザが生成したウェブページ要素に基づいて前記デスクトップ・アプリケーションを表示することを特徴とするデスクトップ・アプリケーションをウェブ・アプリケーションに変換するシステム。
【００６１】
（付記１９）
ユーザが前記クライアントに表示されたデスクトップ・アプリケーション上で動作を実行すると、前記リクエスト送信ユニットが、動作に対応するリクエストをサーバに送信し、
前記サーバにおいて、前記リクエスト受信ユニットが前記リクエストを受信し、
前記アプリケーション作動ユニットが、デスクトップ・アプリケーションのインタフェース上でリクエストに対応する動作を実行し、
前記インタフェース抽出ユニットが、動作によって引き起こされたインタフェース上の変化を検出し、インタフェース変化に対応するインタフェース変換情報を抽出し、インタフェース記述型言語フォーマットでインタフェース変換情報をデータにラッピングし、
前記データ送信ユニットが、ラッピングしたデータを前記クライアントへ送信し、
前記クライアントにおいて、コード変換ツールを用いて受信したインタフェース記述型言語データを解析して関連するウェブページ要素を生成し、前記クライアントのブラウザが、ウェブページ要素に従って表示されたデスクトップ・アプリケーションの対応する部分を更新することを特徴とする付記１８に記載のシステム。
【００６２】
（付記２０）
前記サーバが、前記インタフェース抽出ユニットによってラッピングされたインタフェース記述型言語データを修正するためのインタフェース修正ユニットを備えることを特徴とする付記１８に記載のシステム。
【００６３】
（付記２１）
前記デスクトップ・アプリケーションのＵＲＬが、デスクトップ・アプリケーションを識別するためのアプリケーションＩＤを含み、
前記サーバが、
アプリケーション対応テーブルを格納するメモリと、
サーバとクライアント間のセッションを識別するためのセッションＩＤをクライアントに割り当てるセッションＩＤ割り当てユニットと、
テーブル操作ユニットとを備え、
前記クライアントが、
前記セッションＩＤを受信するセッションＩＤ受信ユニットと、
後続するリクエストに前記セッションＩＤを挿入するセッションＩＤ挿入ユニットとを備え、
前記サーバが前記クライアントからデスクトップ・アプリケーションのＵＲＬを受信すると、前記セッションＩＤ割り当てユニットが、前記クライアントに対してセッションＩＤを割り当てて提供し、前記テーブル操作ユニットが、アプリケーションＩＤとセッションＩＤの対応を記録するエントリを追加することにより前記アプリケーション対応テーブルを更新し、
前記クライアントが動作に対応するリクエストを送信する前に、前記セッションＩＤ挿入ユニットが、前記リクエストに前記セッションＩＤを挿入し、
前記サーバがリクエストを受信すると、前記テーブル操作ユニットが、前記リクエストから前記セッションＩＤを抽出し、前記アプリケーション対応テーブルを検索することにより前記セッションＩＤに対応するアプリケーションＩＤを決定し、前記アプリケーション作動ユニットが、取得したアプリケーションＩＤを有するデスクトップ・アプリケーションのインタフェース上で前記動作を実行することを特徴とする付記１９に記載のシステム。
【００６４】
（付記２２）
クライアントと、サーバを含み、
前記クライアントが、
所望のデスクトップ・アプリケーションのＵＲＬを送信するリクエスト送信ユニットと、
前記サーバからデータを受信するデータ受信ユニットとを備え、
前記サーバが、
前記ＵＲＬを受信するリクエスト受信ユニットと、
前記デスクトップ・アプリケーションをロードするためのアプリケーション作動ユニットと、
ロードした前記デスクトップ・アプリケーションのインタフェース情報を抽出し、インタフェース情報をインタフェース記述型言語フォーマットでデータにラッピングするインタフェース抽出ユニットと、
前記インタフェース抽出ユニットによってラッピングしたインタフェース記述型言語データを解析し、関連するウェブページ要素を生成するコード変換ユニットと、
前記ウェブページ要素を前記クライアントへ送信するデータ送信ユニットとを備え、
前記クライアントのブラウザが受信したウェブページ要素に基づいてデスクトップ・アプリケーションを表示することを特徴とするデスクトップ・アプリケーションをウェブ・アプリケーションに変換するシステム。
【００６５】
（付記２３）
ユーザがクライアント上で表示されたデスクトップ・アプリケーション上で動作を行うと、前記リクエスト送信ユニットが、動作に対応するリクエストを前記サーバへ送信し、
前記サーバにおいて、前記リクエスト受信ユニットが前記リクエストを受信し、前記アプリケーション作動ユニットが、前記デスクトップ・アプリケーションのインタフェース上でリクエストに対応する動作を実行し、
前記インタフェース抽出ユニットが、動作によって引き起こされたインタフェース上の変化を検出し、インタフェース変化に対応するインタフェース変換情報を抽出し、インタフェース記述型言語フォーマットでインタフェース変換情報をデータにラッピングし、
コード変換ユニットが、前記インタフェース抽出ユニットによってラッピングされたインタフェース記述型言語データを解析して関連するウェブページ要素を生成し、前記データ送信ユニットが、当該ウェブページ要素をクライアントへ送信し、
前記クライアントにおいて、前記クライアントのブラウザが、受信したウェブページ要素に従ってデスクトップ・アプリケーションの変化したインタフェースを表示することを特徴とする付記２２に記載のシステム。
【００６６】
（付記２４）
前記サーバが、前記インタフェース抽出ユニットによってラッピングされたインタフェース記述型言語データを修正のためのインタフェース修正ユニットを備えることを特徴とする付記２２に記載のシステム。
【００６７】
（付記２５）
前記デスクトップ・アプリケーションのＵＲＬが、デスクトップ・アプリケーションを識別するためのアプリケーションＩＤを含み、
前記サーバが、
アプリケーション対応テーブルを格納するメモリと、
サーバとクライアント間のセッションを識別するためのセッションＩＤをクライアントに割り当てるセッションＩＤ割り当てユニットと、
テーブル操作ユニットとを備え、
前記クライアントが、
前記セッションＩＤを受信するセッションＩＤ受信ユニットと、
後続するリクエストに前記セッションＩＤを挿入するセッションＩＤ挿入ユニットとを備え、
前記サーバが前記クライアントからデスクトップ・アプリケーションのＵＲＬを受信すると、前記セッションＩＤ割り当てユニットが、前記クライアントに対してセッションＩＤを割り当てて提供し、前記テーブル操作ユニットが、アプリケーションＩＤとセッションＩＤの対応を記録するエントリを追加することにより前記アプリケーション対応テーブルを更新し、
前記クライアントが動作に対応するリクエストを送信する前に、前記セッションＩＤ挿入ユニットが、前記リクエストに前記セッションＩＤを挿入し、
前記サーバがリクエストを受信すると、前記テーブル操作ユニットが、前記リクエストから前記セッションＩＤを抽出し、前記アプリケーション対応テーブルを検索することにより前記セッションＩＤに対応するアプリケーションＩＤを決定し、前記アプリケーション作動ユニットが、取得したアプリケーションＩＤを有するデスクトップ・アプリケーションのインタフェース上で前記動作を実行することを特徴とする付記２３に記載のシステム。
【符号の説明】
【００６８】
１００：デスクトップ・アプリケーション変換システム
１０：クライアント
１０１：リクエスト送信ユニット
１０２：データ受信ユニット
１０３：セッションＩＤ受信ユニット
１０４：セッションＩＤ挿入ユニット
２０：サーバ
２０１：アプリケーション作動ユニット
２０２：リクエスト受信ユニット
２０３：ツール提供ユニット
２０４：データ送信ユニット
２０５：インタフェース抽出ユニット
２０６：インタフェース修正ユニット
２０７：テーブル操作ユニット
２０８：アプリケーション対応テーブル
２０９：セッションＩＤ割り当てユニット
４００：デスクトップ・アプリケーション変換システム
４０１：コード変換ユニット
８０：クライアント
８０１：監視ユニット
８０２：命令ユニット
８０３：メッセージ送信ユニット
８０４：メッセージ受信ユニット
８１０：クライアントエージェント
８２０：アプリケーション・オブジェクト
９０：サーバ
９０１：リクエスト受信ユニット
９０２：アプリケーション実行ユニット
９０３：デスクトップ・アプリケーション
９０４：ＧＵＩスクリーン表示ユニット
９０５：応答送信ユニット
【図１】
2011070640.tif 000003
【図１Ａ】
2011070640.tif 000004
【図２】
2011070640.tif 000005
【図３】
2011070640.tif 000006
【図４】
2011070640.tif 000007
【図５】
2011070640.tif 000008
【図６】
2011070640.tif 000009
【図７】
2011070640.tif 000010
【図８】
2011070640.tif 000011
【図９】
2011070640.tif 000012
【外国語明細書】
2011070640000001.pdf