(57)【要約】【課題】  デスクトップ・アプリケーションをウェブ・アプリケーションに移行するカスタマイズシステムとカスタマイズ方法を提供する。【解決手段】  必要な処理ロジックは、ユーザのウェブ・アプリケーションによるローカルデータに対する操作を実行するため、修正する必要のあるインタフェース要素を特定し、インタフェース要素のコールバック機能（インタフェース記述データ）を修正することにより、追加される。ユーザがブラウザ側での修正済のインタフェース要素上で操作すると、追加された処理ロジックは、自動的にユーザの操作を複数の操作に変換する。その結果、ユーザは、サーバ側のリモート・ファイルではなく、ブラウザ側のローカル・ファイルに対して操作していると感じる。本発明は、複雑なウェブページ機能カスタマイズを実現し、それによりローカルデータに対するリモート・オペレーションを実行する。【選択図】  図２
2011198355.tif 000002
【特許請求の範囲】
【請求項１】
カスタマイズすべき機能に基づいて対応的に操作され、対応する出力を返すデスクトップ・アプリケーションと、
前記デスクトップ・アプリケーションから返された各ウィンドウについてインタフェース情報をダンプし、インタフェース記述データにインタフェース情報を組み込むインタフェース情報ダンプユニットと、
インタフェース記述データにおいて修正すべきインタフェース要素を特定し、かつ機能カスタマイズを実現するために、必要な機能に基づいて処理ロジックを修正し、及び／又は追加する機能カスタマイズユニットと
を備えることを特徴とするサーバ。
【請求項２】
前記処理ロジックは、ブラウザ側でのユーザによる操作をローカル操作及び／又はリモート操作からなる一連の操作に自動的に変換し、ユーザがウェブ・アプリケーションによってブラウザ側でローカル・ファイルをアクセスし及び／又は操作できるようにすることを特徴とする請求項１に記載のサーバ。
【請求項３】
前記処理ロジックが、実行可能なスクリプトであることを特徴とする請求項１又は請求項２に記載のサーバ。
【請求項４】
デスクトップ・アプリケーションをウェブ・アプリケーションに移行する機能カスタマイズ方法であって、
カスタマイズすべき機能に基づいて、デスクトップ・アプリケーションを対応的に操作し、対応する出力を返すステップと、
前記デスクトップ・アプリケーションから返された各ウィンドウについてインタフェース情報をダンプし、インタフェース情報をインタフェース記述データに組み込むステップと、
インタフェース記述データにおいて修正すべきインタフェース要素を特定し、かつ機能カスタマイズを実現するために、必要な機能に基づいて処理ロジックを修正し、及び／又は追加するステップと
を有することを特徴とする機能カスタマイズ方法。
【請求項５】
前記処理ロジックは、ブラウザ側でのユーザによる操作をローカル操作及び／又はリモート操作からなる一連の操作に自動的に変換し、ユーザがウェブ・アプリケーションによってブラウザ側でローカル・ファイルをアクセスし及び／又は操作できるようにすることを特徴とする請求項４に記載の機能カスタマイズ方法。
【請求項６】
前記処理ロジックが、実行可能なスクリプトであることを特徴とする請求項４又は請求項５に記載のカスタマイズ方法。
【請求項７】
ユーザによって操作可能な少なくとも１つのインタフェース要素を含む操作ページを提供するウェブ・アプリケーションと、
前記ウェブ・アプリケーションのインタフェース要素が操作された場合、ブラウザ側でのユーザによる操作をローカル操作及び／又はリモート操作からなる一連の操作に自動的に変換し、ユーザがウェブ・アプリケーションによってブラウザ側でローカル・ファイルをアクセスし及び／又は操作できるようにする操作変換ユニットと
を備えることを特徴とするブラウザ。
【請求項８】
ブラウザからのデスクトップ・アプリケーションに対する操作要求を解析し、動作記述データを取得する要求解析ユニットと、
デスクトップ・アプリケーションに対する操作を再現するために動作記述データに基づいてデスクトップ・アプリケーションを動作させ、デスクトップ・アプリケーションによって返された出力を、操作要求に対する応答として前記ブラウザに送信する動作再現ユニットと
を備えることを特徴とするサーバ。
【請求項９】
前記ウェブ・アプリケーションのインタフェース要素が操作された場合、ブラウザ側でのユーザによる操作をローカル操作及び／又はリモート操作からなる一連の操作に自動的に変換し、ユーザがウェブ・アプリケーションによってブラウザ側でローカル・ファイルをアクセスし及び／又は操作できるようにする
ことを特徴とするデスクトップ・アプリケーションから移行されたウェブ・アプリケーションのカスタマイズ方法。
【請求項１０】
好ましくは、デスクトップ・アプリケーションから移行されたウェブ・アプリケーションのカスタマイズ方法は、リモート操作に基づいて操作要求を生成する前に、前記ローカル操作に基づいて、次の操作のために必要な情報及び／又はパラメータを取得する。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ・アプリケーション・ミティゲーション（computer application
mitigation）の分野に関し、特に、デスクトップ・アプリケーションをウェブ・アプリケーションに移行するためのカスタマイズシステムと方法に関する。
【背景技術】
【０００２】
クラウドコンピューティングとインターネットの発展に伴い、人々は、何時でも何処でもサービスにアクセスすることを望むようになっている。しかしながら、既存の多くのデスクトップ・アプリケーション（スタンド・アロンのアプリケーション或いはクライアント・サーバ版アプリケーション）は、サービスを何時でも何処でも提供するというよりむしろ、対応する操作を実行する前にユーザがまずクライアントをインストールすべきことを要求する。
既存のシステムを廃棄し、同じ一連の機能を有するシステムのブラウザ−サーバ版（browser-server
version）を改めて開発するとすると、開発コストが余りに高くなり、もとのシステムの浪費を引き起こす。従って、高性能なデスクトップ・アプリケーション移行方法が望まれている。
【０００３】
ここで、「デスクトップ・アプリケーション移行」の意味は、移行手段によって、少ない開発量でウェブ・アプリケーションを完成させるために、既存のデスクトップ・アプリケーションとそのリソースを用いることである。ウェブ・アプリケーションのインタフェースと機能は基本的には既存のデスクトップ・アプリケーションのそれらと同じである。
【０００４】
「移行」の意味は、既存のデスクトップ・アプリケーションが実行されており、かつ、それらのインタフェースが、ウェブページ形式（あるいは、他のネットワーク・クライアントが表示できる他の形式）でユーザに提供するために再描画されることである。ユーザがウェブページ上で操作を実行した後、その操作は対応する機能を達成するためにデスクトップ・アプリケーション上で再現される。その後、更新後のインタフェースが再描画され、ユーザに提示される。
これにより、開発者は、デスクトップ・アプリケーションのデータアクセス、論理フロー、アルゴリズム実装等の機能実現の詳細を考慮することなく、短期間でウェブ・アプリケーションを開発することが可能になる。
【０００５】
移行後、どのような種類の移行方法を使用したかに関係なく、デスクトップ・アプリケーションは、今までどおりサーバ側で動作し、ウェブ機能をサポートしないデスクトップ・アプリケーションに対応するウェブ・アプリケーションは、ただサーバ側のデータを操作することができるだけである。
しかしながら、ユーザは、通常、サーバ側のデータではなくブラウザ側のローカルデータを操作することを強く希望する。
例えば、
・「印刷（ＰＲＩＮＴ）」機能：
本来の機能：サーバ側のファイルを印刷する（サーバ側のデスクトップ・アプリケーションに接続されたプリンターによって）
期待する機能：ユーザ側の計算装置内のファイルを印刷する。
・「オープン（ＯＰＥＮ）」機能：
本来の機能：サーバ側のファイルを開く（サーバのデスクトップ・アプリケーションによって）
期待する機能：ユーザ側の計算装置内のファイルを開く（サーバ側にファイルをアップロードし、デスクトップ・アプリケーションによってそれを開く）
・「保存（ＳＡＶＥ）」機能：
本来の機能：サーバ側で保存
期待する機能：ユーザ側の計算装置中に保存
【０００６】
特許文献１(中国特許出願ＣＮ  １２８９０９３Ａ)は、ワールド ワイド ウェブのウェブのウェブページに対して新たな機能をダイナミックに追加する方法とシステムを開示する。
この方法は、主に、ウェブ・サーバからウェブページを受信するステップ、ウェブページ内に新たなＵＲＬを追加するステップ、ウェブ・ブラウザに新たなウェブページを送信するステップ、ウェブ・ブラウザから送信されたＵＲＬに基づいてサーバを処理し、対応する新たな機能を達成するステップを含む。この特許出願は、ウェブページに翻訳機能を追加するための具体的な実例を開示する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】中国特許出願ＣＮ  １２８９０９３Ａ
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、ＵＲＬのパラメータ記述は複雑な情報（例えば、ファイルの流れ等）を含むことができないので、この特許出願はウェブページに幾つかの簡単な機能を追加することができるだけである。
さらに、上記出願は、ブラウザ側の機能（例えば、ファイル選択ボックスを作成する、ファイルをアップロードする等）を実現することができない。
このため、上記方法では、移行後にウェブ・アプリケーションによってリモートデータを操作するという問題を解決することができない。
【０００９】
上記の問題を解決するためには、ウェブ・アプリケーションの機能をカスタマイズし、ウェブ・アプリケーションに機能を追加することを可能にする、ウェブ・アプリケーションをカスタマイズするシステムと方法を見出すことが必要である。
【課題を解決するための手段】
【００１０】
関連技術における上記の課題を解決するため、本発明は、デスクトップ・アプリケーションをウェブ・アプリケーションに移行する、カスタマイズシステムとカスタマイズする方法を提供する。
修正する必要のあるインタフェース要素を特定し、ウェブ・アプリケーションによるローカル・データに対するユーザの操作を実現するためにインタフェース要素（インタフェース記述データ）のコールバック関数を修正することにより、必要な処理ロジックが追加される。
ユーザがブラウザ側で修正後のインタフェース要素を操作すると、追加した処理ロジックが、自動的に使用者の操作を複数の操作に変換する。これにより、ユーザは、サーバ側のリモート・ファイルではなく、ブラウザ側のローカル・ファイルについて操作していると感じる。
本発明は、複雑なウェブページ機能カスタマイズを実現し、それによりローカル・データについてのリモート操作を実現する。
例えば、ユーザが「オープン（ＯＰＥＮ）」ボタン／メニュー項目をクリックすると、この操作は、ユーザがブラウザ側でローカル・ファイルを選択することを可能にするためにブラウザ側でウィンドウをポップする操作、ユーザによって選択されたファイルをサーバにアップロードする操作、同時に、アップロードされたファイルをサーバ側で開くことをサーバ側のデスクトップ・アプリケーションに指示する動作記述データをサーバに送信する操作に変換される。
これにより、ユーザは、サーバ側のリモート・ファイルではなく、ブラウザ側のローカル・ファイルを開いていると感じる。
【００１１】
本発明の第１の態様によれば、サーバは、カスタマイズすべき機能に基づいて対応的に操作され、対応する出力を返すデスクトップ・アプリケーションと、前記デスクトップ・アプリケーションから返された各ウィンドウについてインタフェース情報をダンプし、インタフェース記述データにインタフェース情報を組み込むインタフェース情報ダンプユニットと、インタフェース記述データにおいて修正すべきインタフェース要素を特定し、かつ機能カスタマイズを実現するために、必要な機能に基づいて処理ロジックを修正し、及び／又は追加する機能カスタマイズユニットとを含む。
【００１２】
好ましくは、前記処理ロジックは、ブラウザ側でのユーザによる操作をローカル操作及び／又はリモート操作からなる一連の操作に自動的に変換し、ユーザがウェブ・アプリケーションによってブラウザ側でローカル・ファイルをアクセスし及び／又は操作できるようにする。
【００１３】
好ましくは、前記処理ロジックが、実行可能なスクリプトである。
【００１４】
本発明の第２の態様によれば、機能カスタマイズ方法は、デスクトップ・アプリケーションをウェブ・アプリケーションに移行する機能カスタマイズ方法であって、カスタマイズすべき機能に基づいて、デスクトップ・アプリケーションを対応的に操作し、対応する出力を返すステップと、前記デスクトップ・アプリケーションから返された各ウィンドウについてインタフェース情報をダンプし、インタフェース情報をインタフェース記述データに組み込むステップと、インタフェース記述データにおいて修正すべきインタフェース要素を特定し、かつ機能カスタマイズを実現するために、必要な機能に基づいて処理ロジックを修正し、及び／又は追加するステップとを有する。
【００１５】
好ましくは、前記処理ロジックは、ブラウザ側でのユーザによる操作をローカル操作及び／又はリモート操作からなる一連の操作に自動的に変換し、ユーザがウェブ・アプリケーションによってブラウザ側でローカル・ファイルをアクセスし及び／又は操作できるようにする。
【００１６】
好ましくは、前記処理ロジックが、実行可能なスクリプトである。
【００１７】
本発明の第３の態様によれば、ブラウザは、ユーザによって操作可能な少なくとも１つのインタフェース要素を含む操作ページを提供するウェブ・アプリケーションと、前記ウェブ・アプリケーションのインタフェース要素が操作された場合、ブラウザ側でのユーザによる操作をローカル操作及び／又はリモート操作からなる一連の操作に自動的に変換し、ユーザがウェブ・アプリケーションによってブラウザ側でローカル・ファイルをアクセスし及び／又は操作できるようにする操作変換ユニットとを備える。
【００１８】
好ましくは、前記操作変換ユニットは、リモート操作に基づいて、動作記述データを含む操作要求を生成する。前記ブラウザが、さらに、サーバに対して前記操作要求を送信する送信ユニットを備え、前記サーバによって返された応答を受信すると、前記操作変換ユニットは、ローカル操作に基づいて前記サーバによって返された応答を処理する。
【００１９】
好ましくは、リモート操作に基づいて操作要求を生成する前に、前記操作変換ユニットは、まず、前記ローカル操作に基づいて、次の操作のために必要な情報及び／又はパラメータを取得する。
【００２０】
本発明の第４の態様によれば、サーバは、ブラウザからのデスクトップ・アプリケーションに対する操作要求を解析し、動作記述データを取得する要求解析ユニットと、デスクトップ・アプリケーションに対する操作を再現するために動作記述データに基づいてデスクトップ・アプリケーションを動作させ、デスクトップ・アプリケーションによって返された出力を、操作要求に対する応答として前記ブラウザに送信する動作再現ユニットとを備える。
【００２１】
本発明の第５の態様によれば、デスクトップ・アプリケーションから移行されたウェブ・アプリケーションのカスタマイズ方法は、前記ウェブ・アプリケーションのインタフェース要素が操作された場合、ブラウザ側でのユーザによる操作をローカル操作及び／又はリモート操作からなる一連の操作に自動的に変換し、ユーザがウェブ・アプリケーションによってブラウザ側でローカル・ファイルをアクセスし及び／又は操作できるようにする。
【００２２】
好ましくは、デスクトップ・アプリケーションから移行されたウェブ・アプリケーションのカスタマイズ方法は、リモート操作に基づいて、動作記述データを含む操作要求を生成し、サーバに対して前記操作要求を送信し、前記サーバによって返された応答を受信すると、ローカル操作に基づいて前記サーバによって返された応答を処理する。
【００２３】
好ましくは、デスクトップ・アプリケーションから移行されたウェブ・アプリケーションのカスタマイズ方法は、リモート操作に基づいて操作要求を生成する前に、前記ローカル操作に基づいて、次の操作のために必要な情報及び／又はパラメータを取得する。
【００２４】
好ましくは、ブラウザからの操作要求を受信した場合、サーバが、前記操作要求を解析し、動作記述データを取得し、デスクトップ・アプリケーションに対する操作を再現するために動作記述データに基づいてデスクトップ・アプリケーションを動作させ、デスクトップ・アプリケーションによって返された出力を、操作要求に対する応答として前記ブラウザに送信する。
【発明の効果】
【００２５】
最も近い関連技術と比較し、本発明は少なくとも以下の効果を有する。
複雑なウェブページ機能カスタマイズを実現し、それによりローカル・データについてのリモート・オペレーションを実現する。
【図面の簡単な説明】
【００２６】
本発明の上記及び他の目的、特徴及び効果は、図面を参照した本発明による実施の形態の説明によってさらに明らかになるであろう。
【図１】機能カスタマイズを実現するサーバ２００の構成例を示すブロック図である。
【図２】カスタマイズされた機能を実行するサーバ２００とブラウザ１００の構成例を示すブロック図である。
【図３】機能カスタマイズ処理の例を説明するための図である。
【図４】カスタマイズされた「オープン（ＯＰＥＮ）」機能を実現する、ブラウザ１００とサーバ２００の間の動作フローを示す図である。
【図５】カスタマイズされた「印刷（ＰＲＩＮＴ）」機能を実現する、ブラウザ１００とサーバ２００の間の動作フローを示す図である。
【図６】カスタマイズされた「保存（ＳＡＶＥ）」機能を実現するブラウザ１００とサーバ２００の間の動作フローを示す図である。
【図７】カスタマイズされた「名前を付けて保存（ＳＡＶＥ  ＡＳ）」機能を実現するブラウザ１００とサーバ２００の間の動作フローを示す図である。  図中の同じ参照番号は、ユニット間の関連性を示すために、関連するユニットを示している。
【発明を実施するための形態】
【００２７】
以下、本発明について、図面に示す実施の形態を参照して詳細に説明する。しかし、この説明は、例示的な説明のみを目的とし、本発明の範囲を限定するものではないことを理解されたい。さらに、以下の説明では、本発明の概念を必要以上に不明瞭にしないよう、周知の構造及び技術の説明を省略する。
【００２８】
図１は、機能カスタマイズを実行するサーバ２００の構成例を示すブロック図である。本発明によれば、機能カスタマイズを実施するために、修正に必要なインタフェース要素を特定し、かつインタフェース要素（インタフェース記述データ）のコールバック関数を修正することにより、必要な処理ロジックが追加される。
【００２９】
図１に示すように、サーバ２００は、サーバ２００側にインストールされる、デスクトップ・アプリケーション２３０、インタフェース情報ダンプユニット２４０および機能カスタマイズユニット２５０を含む。
【００３０】
デスクトップ・アプリケーション２３０は、デスクトップ・アプリケーション２３０が対応する出力（ウィンドウ、応答情報など）を返すように、カスタマイズすべき機能に基づいて対応的に操作される。
【００３１】
インタフェース情報ダンプユニット２４０は、デスクトップ・アプリケーション２３０から返された各ウィンドウについてインタフェース情報をダンプし、そのインタフェース情報をインタフェース記述データに組み込む。
インタフェース記述データとしては、ＸＭＬ、ＨＴＭＬ、ＷＭＬなどの記述的言語フォーマットを用いることができる。本発明は、上記の記述言語フォーマットに限定されない。
【００３２】
機能カスタマイズユニット２５０は、インタフェース記述データにおいて修正すべきインタフェース要素を特定し、かつ機能カスタマイズを実現するために、必要な機能に基づいて処理ロジックを修正し、及び／又は追加する。ここで、処理ロジックは実行可能なスクリプトであってもよい。
【００３３】
図２は、カスタマイズされた機能を実行するサーバ２００とブラウザ１００の構成例を示すブロック図である。
ユーザがブラウザ１００側で修正後のインタフェース要素を操作すると、操作変換ユニット１２０が自動的に使用者の操作を複数の操作に変換する。これにより、ユーザは、サーバ２００側のリモート・ファイルではなく、ブラウザ１００側のローカル・ファイルについて操作していると感じる。実際上、多くの情況において、ユーザは、依然としてサーバ２００側のリモート・ファイルを操作している。
【００３４】
図２に示すように、ブラウザ１００は、ウェブ・アプリケーション１１０と、操作変換ユニット１２０および送信ユニット１３０を含む。
【００３５】
ウェブ・アプリケーション１１０は、ユーザに対して操作ページを提供する。ユーザは、ブラウザ１００上に提示されたウェブ・アプリケーション１１０のインタフェース要素について操作を行う。
【００３６】
操作変換ユニット１２０は、機能カスタマイズユニット２５０によって追加された処理ロジックによって実現される。ユーザが修正後のインタフェース要素について操作すると、操作変換ユニット１２０は、ユーザの操作を自動的に複数の操作に変換し、操作要求を形成する。この操作要求は、動作に関する情報を含む動作記述データを含んでいる。この動作に関する情報は、例えば、どのような動作がどのインタフェース要素上で実行されたかについての情報、動作を実行するために必要なパラメータの情報等である。
【００３７】
操作変換ユニット１２０は、さらに、サーバ２００から操作要求に対する応答を受信し、ブラウザ１００側でローカル操作を作動させる。これにより、ユーザに、サーバ２００側のリモート・ファイルではなく、ブラウザ１００側のローカル・ファイルについて操作していると感じさせる。実際上、多くの情況において、ユーザは、依然としてサーバ２００側のリモート・ファイルを操作している。
【００３８】
送信ユニット１３０は、操作変換ユニット１２０からの操作要求をサーバ２００（すなわち、要求解析ユニット２１０）に対して送るために用いられる。
【００３９】
サーバ２００は、要求解析ユニット２１０と、動作再現ユニット２２０およびデスクトップ・アプリケーション２３０とを含む。
【００４０】
要求解析ユニット２１０は、ブラウザ１００からの操作要求を解析し、操作要求に含まれる動作記述データを取得する。
【００４１】
動作再現ユニット２２０は、要求解析ユニット２１０によって解析された動作記述データをデスクトップ・アプリケーション２３０に対するコマンドに変換し、ブラウザ１００（リモート）上のユーザの操作を反映することができる同じか或いは類似する操作を実行するためにデスクトップ・アプリケーション２３０を作動する。
【００４２】
更に、動作再現ユニット２２０は、ブラウザ１００からの操作要求に対する応答としてデスクトップ・アプリケーション２３０から返されたデータを全て受信し、ブラウザ１００（すなわち、操作変換ユニット１２０）に対してその応答を送信する。
【００４３】
以下、デスクトップ・アプリケーションをウェブ・アプリケーションに移行するカスタマイズシステムと方法について、具体的な機能カスタマイズ例と関連させて詳細に説明する。
【００４４】
図３は、機能カスタマイズ処理の例を説明するための図である。
【００４５】
図３に示すように、サーバ２００上のデスクトップ・アプリケーション２３０のインタフェースは、図３の右側に示されており、現在、メイン・ウインドウ（Ｍａｉｎ  Ｗｉｎｄｏｗ）内に置かれている。
図３の左側のウィンドウは、ブラウザ１００上に表示される対応ページを示している。
デスクトップ・アプリケーションからウェブ・アプリケーションへの移行方法は、既知のどのような方法を参考にしても実現可能である。
【００４６】
説明のため、メニュー項目「オープン（ＯＰＥＮ）」を例として用いる。
まず、ステップＳ３０１において、機能カスタマイズユニット２５０は、インタフェース情報ダンプユニット２４０から取得されるインタフェース記述データにおいて、修正すべきインタフェース要素、すなわち、メニュー項目「オープン（ＯＰＥＮ）」を位置決め（特定）する。
例えば、その位置は、Ｘｐａｔｈ要素によって以下のように位置決めが行われる。
Form[@title=“DesktopAP”]/menuitem[@text=“File”]/menuitem[@text=“Open”]
【００４７】
その後、ステップＳ３０２において、機能カスタマイズユニット２５０は、メニュー項目「オープン（ＯＰＥＮ）」のコールバック関数（インタフェース記述データ）を、以下のようにプロセスを実現する処理ロジックに修正する。
ユーザがブラウザ１００でローカル・ファイルを選択することを可能にするために、ユーザがウェブ・アプリケーション１１０上のメニュー項目「オープン（ＯＰＥＮ）」をクリックすると、ブラウザ側１００でオープンウィンドウをポップアップする。
ユーザの選択したファイルをサーバ２００にアップロードし、同時に、サーバ２００側でアップロードされたファイルを開くために、サーバ２００側のデスクトップ・アプリケーションを示す動作記述データをサーバ２００に送る。
また、ユーザにウェブ・アプリケーション１１０のフォームでファイルを提示するために、サーバ２００がオープン・インタフェースにファイルを返す時、ウェブ・アプリケーション１１０にオープン・インタフェースを返す。
【００４８】
同様に、機能カスタマイズユニット２５０は、要求されたカスタマイズ機能を実現するために、その他のカスタマイズすべき機能（例えば、図３で図示される、メニュー項目「印刷（ＰＲＩＮＴ）」、「保存（ＳＡＶＥ）」などについてインタフェース記述データ修正動作を実行する。
【００４９】
一方、ユーザがウェブ・アプリケーション１１０に新たな機能を追加したい場合、機能カスタマイズユニット２５０は、要求されるカスタマイズ機能を実現するために、対応するインタフェース要素とインタフェース記述データを追加する。例えば、メニュー項目「名前を付けて保存（ＳＡＶＥ  ＡＳ）」などである。
【００５０】
図４は、カスタマイズされた「オープン（ＯＰＥＮ）」機能を実現する、ブラウザ１００とサーバ２００の間の動作フローを示す。
【００５１】
ユーザがウェブ・アプリケーション１１０のページ上のメニュー項目「オープン（ＯＰＥＮ）」機能をクリックすると、ウェブ・アプリケーション１１０は操作変換ユニット１２０に対して「オープン（ＯＰＥＮ）」指示を送る。
関連技術と異なり、操作変換ユニット１２０は、「オープン」動作記述データを含む動作要求をすぐには生成しない。
代わりに、操作変換ユニット１２０は、ウェブ・アプリケーション１１０のページ上のファイル選択ウィンドウをポップアップし、開くべきファイルを選択することをユーザに促す。
ユーザはファイル選択ウィンドウ上で操作し、開くべきファイルを選択し、ウェブ・アプリケーション１１０のページを通して操作変換ユニット１２０に返す。
ここで、操作変換ユニット１２０は、以下のような動作記述データを含む動作要求を生成する。
１）選択されたファイルをアップロードする。２）アップロード後に、ファイルのオープンを完了する。
上記の動作記述データは、送信ユニット１３０と要求解析ユニット２１０を通して動作再現ユニット２２０に送信される。
【００５２】
関連技術と異なり、動作再現ユニット２２０が上記動作記述データを受信した後、動作再現ユニット２２０は、まず、ブラウザ１００側でアップロードされたファイルを受信し、サーバ２００側の特定のフォルダ（例えば、ｔｅｍｐフォルダ）に、受信したファイルを保存する。これにより、上記の動作記述データ１）が完了する。
その後、動作再現ユニット２２０は、オープン動作を完了することを、サーバ２００側にインストールされたデスクトップ・アプリケーション２３０に指示する。
この時、サーバ２００側の特定のフォルダに保存されたアップロード済みファイルを開くことを、デスクトップ・アプリケーション２３０に指示することに留意すべきである。すなわち、上記の動作記述データ２）が完了する。
デスクトップ・アプリケーション２３０は、サーバ２００側の特定のフォルダに保存されたアップロード済みファイルを開き、動作再現ユニット２２０にオープン・インタフェースを返す。
これで、動作再現ユニット２２０は、ユーザのブラウザ１００側での動作と類似する動作を既に再現したことになる。
動作再現ユニット２２０は、ブラウザ１００（すなわち、操作変換ユニット１２０）にオープン・インタフェースを返す。
【００５３】
操作変換ユニット１２０がサーバ２００（すなわち、動作再現ユニット２２０）から返されたオープン・インタフェースを受信した後、操作変換ユニット１２０はウェブ・アプリケーション１１０にオープン・インタフェースを返す。
オープン・インタフェースはウェブ・アプリケーション１１０によってユーザに提示される。
これにより、ユーザは、ウェブ・アプリケーション１１０によってブラウザ１００側のローカル・ファイルを開いたと感じる。
【００５４】
図５は、カスタマイズされた「印刷（ＰＲＩＮＴ）」機能を実現する、ブラウザ１００とサーバ２００の間の動作フローを示す。
【００５５】
ユーザがウェブ・アプリケーション１１０のページ上のメニュー項目「印刷（ＰＲＩＮＴ）」機能をクリックすると、ウェブ・アプリケーション１１０は操作変換ユニット１２０に対して「印刷」指示を送る。
関連技術と異なり、操作変換ユニット１２０は、「印刷」動作記述データを含む動作要求をすぐには生成しない。
代わりに、操作変換ユニット１２０は、ウェブ・アプリケーション１１０のページ上のプリンタ選択ウィンドウをポップアップし、使用するプリンタを選択することをユーザに催促する。
ユーザはプリンタ選択ウィンドウ上で操作し、使用するプリンタを選択し、ウェブ・アプリケーション１１０のページを通して操作変換ユニット１２０に返す。
操作変換ユニット１２０は、ユーザの選択に基づいてローカル・プリンタのパラメータを取得する。
ここで、操作変換ユニット１２０は、以下のような動作記述データを含む動作要求を生成する。
そのプリンタ・パラメータを有する印刷要求。
上記の動作記述データは、送信ユニット１３０と要求解析ユニット２１０を通して動作再現ユニット２２０に送信される。
【００５６】
動作再現ユニット２２０が上記動作記述データを受信した後、動作再現ユニット２２０は、サーバ２００側にインストールされたデスクトップ・アプリケーション２３０に、ブラウザ１００側のリモート・プリンタのプリンタ・パラメータを有する印刷コマンドを送信する。
デスクトップ・アプリケーション２３０は、ブラウザ１００側の、リモート・プリンタのプリンタ・パラメータに基づいて印刷データを生成し、動作再現ユニット２２０に返却する。
これで、動作再現ユニット２２０は、ブラウザ１００側でのユーザの動作と類似する動作を既に再現したことになる。
動作再現ユニット２２０は、ブラウザ１００（すなわち、操作変換ユニット１２０）に印刷データを返す。
【００５７】
操作変換ユニット１２０は、サーバ２００（すなわち動作再現ユニット２２０）から返却された印刷のデータを受信した後、操作変換ユニット１２０は、ローカルのプリンタを作動させ、印刷を行う。
それにより、ユーザは、ウェブ・アプリケーション１１０によって、ブラウザ１００側のローカル・ファイルをローカルのプリンタ上で印刷したと感じる。
【００５８】
上記は、ファイルが開かれている場合における印刷工程に関する。ファイルがまだ開かれていない場合は、「オープン」操作、「印刷」操作、「クローズ」操作の統合操作と見なされる。
「オープン」操作と「印刷」操作は、図４と図５において示すような順番で実行される。「クローズ」操作はカスタマイズする必要がなく、それまで通りに操作される。
あるいは、図４と図５に示す記述に従って、「オープン」操作と「印刷」操作も入り混じって実行される場合がある。
例えば、ファイルを選択するようにユーザに促すために、まずファイル選択ウィンドウがポップアップされる。その後、プリンタを選択するようにユーザに促すために、プリンタ選択ウィンドウがポップアップされる。
プリンタ・パラメータが取得された後、操作要求が送信される。その操作要求は、以下のような動作記述データを含む。
１）選択されたファイルをアップロードすること、２）アップロードが完了した後にファイルを開くこと、３）プリンタ・パラメータを有する印刷要求
サーバが上記の動作１）〜３）３を完了した後、印刷データが返却される。
印刷がブラウザのローカルのプリンタ上で実行される。
最後に、「クローズ」操作がこれまで通りに実行される。
あるいは、「オープン」操作、「印刷」操作および「クローズ」操作が、様々に組み合わせて実行される場合がある。
例えば、まず、ファイル選択ウィンドウが、ユーザにファイルの選択を促すためにポップされる。その後、プリンタ選択ウィンドウがユーザにプリンタの選択を促すためにポップされる。
プリンタ・パラメータが取得された後、以下のような動作記述データを含む操作要求が送信される。
１）選択されたファイルをアップロードする、２）アップロードが完了後、ファイルを開く、３）プリンタ・パラメータを持つ印刷要求、４）ファイルを閉じる。
サーバが上記の動作１）〜４）を完了した後、印刷のデータが返却される。
印刷はブラウザのローカルのプリンタ上で実行される。
【００５９】
同様に、本明細書で説明する様々なカスタマイズ機能は、互いに連続的にあるいは様々に組み合わせて実行され、また、関連技術において実現された様々な機能と共に連続的にあるいは様々に組み合わせて実行される。
当業者であれば、要求に応じてこれらの機能を実現することが可能であろう。
これらの連続的にあるいは様々に組み合わせて実行される様々な操作は、本発明の精神と範囲から外れない。
【００６０】
図６は、カスタマイズされた「保存（ＳＡＶＥ）」機能を実現するブラウザ１００とサーバ２００の間の動作フローを示す。
【００６１】
ユーザがウェブ・アプリケーション１１０のページ上のメニュー項目「保存（ＳＡＶＥ）」機能をクリックすると、ウェブ・アプリケーション１１０は操作変換ユニット１２０に「保存」指示を送る。
関連技術と異なり、操作変換ユニット１２０は、以下のような動作記述データを含む操作要求を生成する。
１）現在のファイルを保存すること、２）保存完了後に、ファイルをダウンロードすること。
上記の動作記述データは、送信ユニット１３０と要求解析ユニット２１０を通して動作再現ユニット２２０に送信される。
【００６２】
関連技術と異なり、動作再現ユニット２２０が上記の動作記述データを受信した後、動作再現ユニット２２０は、まず、保存操作を完了するようサーバ２００側のインストールされたデスクトップ・アプリケーション２３０に指示する。
この時、デスクトップ・アプリケーション２３０は、サーバ２００側の特定のフォルダに現在のファイルを保存するよう実際に指示されることに留意すべきである。すなわち、上記動作記述データ１）が完了する。
デスクトップ・アプリケーション２３０が保存完了の応答を返した後、保存したファイルがサーバ２００側の特定のフォルダから取得される。すなわち、上記動作記述データ２）が完了する。
この時、動作再現ユニット２２０は、ブラウザ１００側でのユーザの動作と類似する動作を既に再現したことになる。
動作再現ユニット２２０は、ブラウザ１００（すなわち、操作変換ユニット１２０）に保存したファイルを返す。
【００６３】
操作変換ユニット１２０が、サーバ２００（すなわち、動作再現ユニット２２０）から返された格納したファイルを受信した後、操作変換ユニット１２０は、もとのアップロード・フォルダ（「オープン」操作が実行された場合に、ユーザによって指定されたフォルダ）にサーバ２００からのファイルを保存し、もとのファイルを上書きする。
これにより、ユーザは、ウェブ・アプリケーション１１０によってブラウザ１００側のローカル・ファイルを保存したと感じる。
【００６４】
図７は、カスタマイズされた「名前を付けて保存（ＳＡＶＥ  ＡＳ）」機能を実現するブラウザ１００とサーバ２００の間の動作フローを示している。
【００６５】
ユーザがウェブ・アプリケーション１１０のページ上のメニュー項目「名前を付けて保存（ＳＡＶＥ  ＡＳ）」機能をクリックすると、ウェブ・アプリケーション１１０が、「名前を付けて保存（ＳＡＶＥ  ＡＳ）」の指示を操作変換ユニット１２０に送る。
図３に示すように、デスクトップ・アプリケーション２３０はメニュー項目「名前を付けて保存（ＳＡＶＥ  ＡＳ）」を有していない。実際、このカスタマイズ機能は新たに追加される機能である。
操作変換ユニット１２０は、「名前を付けて保存（ＳＡＶＥ  ＡＳ）」の動作記述データを含む操作要求を直ぐに生成しない（実際上生成することができない）。
その代わりに、操作変換ユニット１２０は、ウェブ・アプリケーション１１０のページ上のフォルダ選択ウィンドウをポップアップし、ファイルを保存するフォルダを選択するようユーザに催促する。
ユーザはフォルダ選択ウィンドウ上で操作し、ファイルを保存するフォルダを選択し、ウェブ・アプリケーション１１０のページを通して操作変換ユニット１２０に選択されたフォルダを返す。
この時、操作変換ユニット１２０は、以下のような動作記述データを含む操作要求を生成する。
１）現在のファイルを保存すること、２）保存完了後にファイルをダウンロードすること。これは、メニュー項目「保存（ＳＡＶＥ）」の操作要求の場合と同じである。
上記動作記述データは、送信ユニット１３０と要求解析ユニット２１０を通して動作再現ユニット２２０に送信される
【００６６】
上記動作記述データを受信した後、動作再現ユニット２２０は、まず、保存操作を完了するようにサーバ２００側にインストールされたデスクトップ・アプリケーション２３０に指示する。
この時、デスクトップ・アプリケーション２３０は、サーバ２００側の特定のフォルダに現在のファイルを保存するよう実際に指示されることに留意すべきである。すなわち、上記動作記述データ１）が完了する。
デスクトップ・アプリケーション２３０が保存完了の応答を返した後、保存したファイルがサーバ２００側の特定のフォルダから取得される。すなわち、上記動作記述データ２）が完了する。
この時、動作再現ユニット２２０は、ブラウザ１００側でのユーザの動作と類似する動作を既に再現したことになる。
動作再現ユニット２２０は、ブラウザ１００（すなわち、操作変換ユニット１２０）に保存したファイルを返す。
実際上、動作再現ユニット２２０の上記操作は、メニュー項目「保存（ＳＡＶＥ）」の操作要求についての操作と同じである。
【００６７】
操作変換ユニット１２０が、受信機２００（すなわち、動作再現ユニット２２０）から返された保存ファイルを受信した後、操作変換ユニット１２０は、サーバ２００からのファイルをユーザが選択したフォルダに保存する。
これにより、ユーザは、ウェブ・アプリケーション１１０によってブラウザ１００側のローカル・ファイルとして保存したと感じる。
【００６８】
なお、開示した本発明の実施の形態の構成は、初めに簡単に説明し、その後に方法の実施の形態で詳しく説明したステップと操作のためのソフトウェア・プログラムを含む。
特に、コンピュータ・プログラム製品は、コンピュータ読み取り可能な記録媒体及び計算装置上で動作することで関連する操作を提供するエンコードされたコンピュータプログラムロジックを有する実施例である。
コンピューティング・システムの少なくとも１のプロセッサ上で実行されると、そのコンピュータプログラムロジックは、そのプロセッサに実施の形態の動作（ステップ）を実行させる。
本発明のそのような構成は、光記憶媒体（例えば、ＣＤ−ＲＯＭ）、フレキシブルディスク或いはハードディスク等のコンピュータ読み取り可能な媒体上にセットアップされ或いはコード化されたソフトウェア、コードおよび／またはその他のデータ構造として、或いは、１つ以上のＲＯＭ、ＲＡＭやＰＲＯＭチップ或いはASIC（Application Specific Integrated Circuit）、ダウンロード可能なソフトウェアイメージ（software
images）、１以上のモジュールにおける共有データベース上のファームウェア或いはマイクロコードとして提供される。
ソフトウェアまたはファームウェアは、計算装置にインストールされ、計算装置の１以上のプロセッサに本発明の実施の形態を実行させる。
例えば、データ通信装置或いはその他の存在する計算装置と共に操作を実行するソフトウェア処理が、本発明によるシステムを提供する。
本発明のシステムは、また、複数のデータ通信装置上に分布された複数のソフトウェア処理、或いは一群の小型専用計算機上で動作するあらゆるソフトウェア処理、或いはシングルのコンピュータ上で動作するあらゆるソフトウェア処理によって実現可能である。
【００６９】
厳密に言えば、本発明の実施の形態は、データ通信装置上のソフトウェア・プログラム、ソフトウェアとハードウェア、単独のソフトウェアおよび／または単独の回路によって実現できる。
【００７０】
以上、好ましい実施の形態を参照して本発明を説明した。本発明には様々な修正、組み合わせ、改変をなすことが可能であり、これらの修正、組み合わせ、改変は付記された請求項の範囲内にある限りにおいて本発明に含まれることは、当業者に理解されるであろう。
【００７１】
さらに、上記実施形態の一部又は全部は、以下の付記のようにも記載されうるが、これに限定されない。
【００７２】
（付記１）
カスタマイズすべき機能に基づいて対応的に操作され、対応する出力を返すデスクトップ・アプリケーションと、
前記デスクトップ・アプリケーションから返された各ウィンドウについてインタフェース情報をダンプし、インタフェース記述データにインタフェース情報を組み込むインタフェース情報ダンプユニットと、
インタフェース記述データにおいて修正すべきインタフェース要素を特定し、かつ機能カスタマイズを実現するために、必要な機能に基づいて処理ロジックを修正し、及び／又は追加する機能カスタマイズユニットと
を備えることを特徴とするサーバ。
【００７３】
（付記２）
前記処理ロジックは、ブラウザ側でのユーザによる操作をローカル操作及び／又はリモート操作からなる一連の操作に自動的に変換し、ユーザがウェブ・アプリケーションによってブラウザ側でローカル・ファイルをアクセスし及び／又は操作できるようにすることを特徴とする付記１に記載のサーバ。
【００７４】
（付記３）
前記処理ロジックが、実行可能なスクリプトであることを特徴とする付記１又は付記２に記載のサーバ。
【００７５】
（付記４）
デスクトップ・アプリケーションをウェブ・アプリケーションに移行する機能カスタマイズ方法であって、
カスタマイズすべき機能に基づいて、デスクトップ・アプリケーションを対応的に操作し、対応する出力を返すステップと、
前記デスクトップ・アプリケーションから返された各ウィンドウについてインタフェース情報をダンプし、インタフェース情報をインタフェース記述データに組み込むステップと、
インタフェース記述データにおいて修正すべきインタフェース要素を特定し、かつ機能カスタマイズを実現するために、必要な機能に基づいて処理ロジックを修正し、及び／又は追加するステップと
を有することを特徴とする機能カスタマイズ方法。
【００７６】
（付記５）
前記処理ロジックは、ブラウザ側でのユーザによる操作をローカル操作及び／又はリモート操作からなる一連の操作に自動的に変換し、ユーザがウェブ・アプリケーションによってブラウザ側でローカル・ファイルをアクセスし及び／又は操作できるようにすることを特徴とする付記４に記載の機能カスタマイズ方法。
【００７７】
（付記６）
前記処理ロジックが、実行可能なスクリプトであることを特徴とする付記４又は付記５に記載のカスタマイズ方法。
【００７８】
（付記７）
ユーザによって操作可能な少なくとも１つのインタフェース要素を含む操作ページを提供するウェブ・アプリケーションと、
前記ウェブ・アプリケーションのインタフェース要素が操作された場合、ブラウザ側でのユーザによる操作をローカル操作及び／又はリモート操作からなる一連の操作に自動的に変換し、ユーザがウェブ・アプリケーションによってブラウザ側でローカル・ファイルをアクセスし及び／又は操作できるようにする操作変換ユニットと
を備えることを特徴とするブラウザ。
【００７９】
（付記８）
前記操作変換ユニットは、リモート操作に基づいて、動作記述データを含む操作要求を生成し、
前記ブラウザが、さらに、サーバに対して前記操作要求を送信する送信ユニットを備え、
前記サーバによって返された応答を受信すると、前記操作変換ユニットは、ローカル操作に基づいて前記サーバによって返された応答を処理することを特徴とする付記７に記載のブラウザ。
【００８０】
（付記９）
リモート操作に基づいて操作要求を生成する前に、前記操作変換ユニットは、まず、前記ローカル操作に基づいて、次の操作のために必要な情報及び／又はパラメータを取得することを特徴とする付記８に記載のブラウザ。
【００８１】
（付記１０）
ブラウザからのデスクトップ・アプリケーションに対する操作要求を解析し、動作記述データを取得する要求解析ユニットと、
デスクトップ・アプリケーションに対する操作を再現するために動作記述データに基づいてデスクトップ・アプリケーションを動作させ、デスクトップ・アプリケーションによって返された出力を、操作要求に対する応答として前記ブラウザに送信する動作再現ユニットと
を備えることを特徴とするサーバ。
【００８２】
（付記１１）
前記ウェブ・アプリケーションのインタフェース要素が操作された場合、ブラウザ側でのユーザによる操作をローカル操作及び／又はリモート操作からなる一連の操作に自動的に変換し、ユーザがウェブ・アプリケーションによってブラウザ側でローカル・ファイルをアクセスし及び／又は操作できるようにする
ことを特徴とするデスクトップ・アプリケーションから移行されたウェブ・アプリケーションのカスタマイズ方法。
【００８３】
（付記１２）
リモート操作に基づいて、動作記述データを含む操作要求を生成し、
サーバに対して前記操作要求を送信し、
前記サーバによって返された応答を受信すると、ローカル操作に基づいて前記サーバによって返された応答を処理する
ことを特徴とする付記１１に記載のデスクトップ・アプリケーションから移行されたウェブ・アプリケーションのカスタマイズ方法。
【００８４】
（付記１３）
好ましくは、デスクトップ・アプリケーションから移行されたウェブ・アプリケーションのカスタマイズ方法は、リモート操作に基づいて操作要求を生成する前に、前記ローカル操作に基づいて、次の操作のために必要な情報及び／又はパラメータを取得する。
【００８５】
（付記１４）
ブラウザからの操作要求を受信した場合、サーバが、前記操作要求を解析し、動作記述データを取得し、
デスクトップ・アプリケーションに対する操作を再現するために動作記述データに基づいてデスクトップ・アプリケーションを動作させ、
デスクトップ・アプリケーションによって返された出力を、操作要求に対する応答として前記ブラウザに送信する
することを特徴とする付記１２又は付記１３に記載のデスクトップ・アプリケーションから移行されたウェブ・アプリケーションのカスタマイズ方法。
【符号の説明】
【００８６】
２００：サーバ
２３０：デスクトップ・アプリケーション
２４０：インタフェース情報ダンプユニット
２５０：機能カスタマイズユニット
１００：ブラウザ
１１０：ウェブ・アプリケーション
１２０：操作変換ユニット
１３０：送信ユニット
２１０：要求解析ユニット
２２０：動作再現ユニット
【図１】
2011198355.tif 000003
【図２】
2011198355.tif 000004
【図３】
2011198355.tif 000005
【図４】
2011198355.tif 000006
【図５】
2011198355.tif 000007
【図６】
2011198355.tif 000008
【図７】
2011198355.tif 000009
【外国語明細書】
2011198355000001.pdf