(57)【特許請求の範囲】
【請求項１】
Ｗｅｂサーバから中継サーバを介してクライアントに提供される第１および第２のＷｅｂアプリケーションを連携させる方法であって、
前記第１のＷｅｂアプリケーションで使用される第１の文字コードおよび前記第２のＷｅｂアプリケーションで使用される第２の文字コードを検出する検出ステップと、
前記第１のＷｅｂアプリケーションにより提供される第１のＷｅｂページから前記第２のＷｅｂアプリケーションにより提供される第２のＷｅｂページへ前記第１のＷｅｂページとして表示されたテキストデータを引継ぐときに、前記第１のＷｅｂページ内の対象テキストデータを前記クライアントから受信する受信ステップと、
前記対象テキストデータに対して前記第１の文字コードから前記第２の文字コードへの文字列変換を行う変換ステップと、
前記第２の文字コードに変換された前記対象テキストデータを、前記クライアントへ送信する送信ステップ、
を有するＷｅｂアプリケーション連携方法。
【請求項２】
請求項１に記載のＷｅｂアプリケーション連携方法であって、
前記検出ステップは、前記クライアントから前記ＷｅｂサーバへＷｅｂアプリケーションを要求するリクエストに対応するレスポンスの内容に基づいて、要求されたＷｅｂアプリケーションで使用される文字コードを検出する
ことを特徴とするＷｅｂアプリケーション連携方法。
【請求項３】
請求項１または２に記載のＷｅｂアプリケーション連携方法であって、
前記Ｗｅｂサーバから前記クライアントへ提供されるＷｅｂアプリケーションのＷｅｂページのＵＲＬと前記クライアントへ提供されるＷｅｂアプリケーションで使用される文字コードとを対応づけて文字コード記録部に記録し、
前記クライアントから、Ｗｅｂアプリケーション間で引き継ぐ対象テキストデータ、引継ぎ元の前記第１のＷｅｂページのＵＲＬ、引継ぎ先の前記第２のＷｅｂページのＵＲＬを含む引継ぎリクエストを受信したときに、前記変換ステップは、前記文字コード記録部から前記第１のＷｅｂページのＵＲＬおよび前記第２のＷｅｂページのＵＲＬに対応する文字コードをそれぞれ抽出し、抽出した文字コードを利用して前記対象テキストデータの文字列変換を行う
ことを特徴とするＷｅｂアプリケーション連携方法。
【請求項４】
請求項３に記載のＷｅｂアプリケーション連携方法であって、
前記引継ぎリクエストを受信したときに、前記第１のＷｅｂページのＵＲＬが前記文字コード記録部に記録されていなければ、前記文字コード記録部において前記第１のＷｅｂページのＵＲＬの一部を含むＵＲＬに対応する文字コードを、前記第１のＷｅｂページで使用される文字コードと推定すると共に、前記第２のＷｅｂページのＵＲＬが前記文字コード記録部に記録されていなければ、前記文字コード記録部において前記第２のＷｅｂページのＵＲＬの一部を含むＵＲＬに対応する文字コードを、前記第２のＷｅｂページで使用される文字コードと推定し、
前記変換ステップは、前記推定された文字コードを利用して前記対象テキストデータの文字列変換を行う
ことを特徴とするＷｅｂアプリケーション連携方法。
【請求項５】
請求項１に記載のＷｅｂアプリケーション連携方法であって、
前記検出ステップは、前記Ｗｅｂサーバから前記クライアントに提供されるＷｅｂアプリケーションのＷｅｂページに、前記クライアントに提供されるＷｅｂアプリケーションのＷｅｂページで使用されている文字コードを前記中継サーバへ通知する手順を記述した文字コード通知スクリプトを埋め込むことにより、前記文字コード通知スクリプトを前記クライアントへ送信し、前記文字コード通知スクリプトによる前記クライアントからの通知に基づいて、前記第１および第２の文字コードを検出する
ことを特徴とするＷｅｂアプリケーション連携方法。
【請求項６】
請求項１〜５のいずれか１つに記載のＷｅｂアプリケーション連携方法であって、
前記送信ステップは、前記クライアントから前記Ｗｅｂサーバへ前記第２のＷｅｂページを要求するリクエストに対応するレスポンスに、前記第２の文字コードに変換された前記対象テキストデータを注入する
ことを特徴とするＷｅｂアプリケーション連携方法。
【請求項７】
Ｗｅｂサーバからクライアントに提供される第１および第２のＷｅｂアプリケーションを連携させるＷｅｂアプリケーション連携装置であって、
前記第１のＷｅｂアプリケーションで使用される第１の文字コードおよび前記第２のＷｅｂアプリケーションで使用される第２の文字コードを検出する検出部と、
前記第１のＷｅｂアプリケーションにより提供される第１のＷｅｂページから前記第２のＷｅｂアプリケーションにより提供される第２のＷｅｂページへ前記第１のＷｅｂページとして表示されたテキストデータを引継ぐときに、前記第１のＷｅｂページ内の対象テキストデータを前記クライアントから受信する受信部と、
前記対象テキストデータに対して前記第１の文字コードから前記第２の文字コードへの文字列変換を行う変換部と、
前記第２の文字コードに変換された前記対象テキストデータを、前記クライアントへ送信する送信部、
を有するＷｅｂアプリケーション連携装置。
【請求項８】
Ｗｅｂサーバから中継サーバを介してクライアントに提供される第１および第２のＷｅｂアプリケーションを連携させるＷｅｂアプリケーション連携プログラムであって、
前記中継サーバに、
前記第１のＷｅｂアプリケーションで使用される第１の文字コードおよび前記第２のＷｅｂアプリケーションで使用される第２の文字コードを検出する検出ステップ、
前記第１のＷｅｂアプリケーションにより提供される第１のＷｅｂページから前記第２のＷｅｂアプリケーションにより提供される第２のＷｅｂページへ前記第１のＷｅｂページとして表示されたテキストデータを引継ぐときに、前記第１のＷｅｂページ内の対象テキストデータを前記クライアントから受信する受信ステップ、
前記対象テキストデータに対して前記第１の文字コードから前記第２の文字コードへの文字列変換を行う変換ステップ、
前記第２の文字コードに変換された前記対象テキストデータを、前記クライアントへ送信する送信ステップ、を実行させる
ことを特徴とするＷｅｂアプリケーション連携プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クライアントに提供される複数のＷｅｂアプリケーションの連携方法に係わる。
【背景技術】
【０００２】
近年、Ｗｅｂ上の複数のアプリケーションを組み合わせるマッシュアップ技術が普及しつつある。この場合、クライアント上に複数のＷｅｂアプリケーションを並べるだけでなく、Ｗｅｂアプリケーション間でデータを受け渡すことにより、利便性が向上する。例えば、クライアント上で動作する複数のＷｅｂアプリケーション間でデータのコピーアンドペーストを実現すれば、ユーザの作業時間が短縮され、入力ミスが削減される。
【０００３】
ところが、従来技術においては、Ｗｅｂアプリケーション間でデータが引き継がれる際に、各Ｗｅｂアプリケーションにおいて使用される文字コードが考慮されていないことがあった。このため、Ｗｅｂアプリケーション間でデータが引き継がれる際に、引き継ぎ先のＷｅｂアプリケーション上でテキストデータが正しく表示されないことがあった。
【０００４】
関連する技術として、下記のデータ中継システムが提案されている。すなわち、提案されているデータ中継システムは、言語に依存する言語依存データを特定する特定情報とこの言語依存データに対応する置換用データとを関連付けて蓄積するデータベース部と、サーバシステムからサーバデータを取得するサーバデータ受信部と、サーバデータに含まれる特定情報に基づいてデータベースから置換用データを検出するデータ処理部と、サーバデータに含まれる言語依存データを置換用データに置換するデータ生成部と、この置換されたサーバデータをクライアントシステムに送信するクライアントデータ送信部とを備える。（例えば、特許文献１）
【０００５】
他の関連技術として、下記の検索方法が提案されている。提案されている検索方法においては、インターネットから収集した各Ｗｅｂページついて、そのＷｅｂページのＨＴＴＰヘッダーにもしくはＨＴＭＬ文書中に記述されている言語特定情報に基づいて当該Ｗｅｂページに対応づける言語ＩＤを決定し、これにより言語ＩＤを決定できなかった場合には、そのＷｅｂページが格納されているＵＲＬのトップレベルドメイン名に基づいて言語ＩＤを決定する。（例えば、特許文献２）
【０００６】
さらに他の関連技術として、下記のＷＷＷ中継サーバが提案されている。提案されているＷＷＷ中継サーバは、ＷＷＷサーバから中継してクライアントに送信するＷｅｂページ内に、クライアントでＷｅｂページを閲覧することにより実行されるスクリプト（閲覧位置情報をＷＷＷ中継サーバへ送信するスクリプト）を埋め込んでクライアントに送信し、クライアントで動作しているスクリプトから送信される情報を取得し、Ｗｅｂページの閲覧時間を計測し、またＷｅｂページのレイアウトを解析して、送信された閲覧位置情報に対応する特定のＨＴＭＬソースを抽出するとともに、ＨＴＭＬソースに対する閲覧時間を計測する。（例えば、特許文献３）
【０００７】
さらに他の関連技術として、ウェブページ中での文字化けの発生を防ぐために、ウェブブラウザの言語情報を取得し、ウェブページにその言語情報に対応する文字コードセットの指定を挿入するとともに、そのウェブページの本文中にコンピュータから取り込んだ文字情報を組み込む画像処理装置が提案されている。（例えば、特許文献４）
【０００８】
さらに他の関連技術として、下記のウェブページ収集方法が提案されている。提案されているウェブページ収集方法においては、起点となるウェブページを制約テスト部に送って携帯電話機で表示可能なページであるか判別させる。表示可能である場合、これをドキュメントデータベース部に保存すると共にアンカ抽出部でリンク情報を取得させ、これを基にインターネット網からネットワーク通信部によって次のウェブページを取得させて制約テスト部で適合性を判別する。（例えば、特許文献５）
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】国際公開ＷＯ２００２／３５３６９
【特許文献２】特開２００１−３０６５９２
【特許文献３】特開２００５−１８２３６４
【特許文献４】特開２００８−２１７６８５
【特許文献５】特開２００３−２１６５２５
【発明の概要】
【発明が解決しようとする課題】
【００１０】
本発明の課題は、Ｗｅｂアプリケーション間でデータを引き継ぐ際に、引継ぎ先のＷｅｂアプリケーション上でテキストデータを正しく表示することである。
【課題を解決するための手段】
【００１１】
本発明の１つの態様のＷｅｂアプリケーション連携方法は、Ｗｅｂサーバから中継サーバを介してクライアントに提供される第１および第２のＷｅｂアプリケーションを連携させる。この方法は、前記第１のＷｅｂアプリケーションで使用される第１の文字コードおよび前記第２のＷｅｂアプリケーションで使用される第２の文字コードを検出する検出ステップと、前記第１のＷｅｂアプリケーションにより提供される第１のＷｅｂページから前記第２のＷｅｂアプリケーションにより提供される第２のＷｅｂページへテキストデータを引継ぐときに、前記第１のＷｅｂページ内の対象テキストデータを前記クライアントから受信する受信ステップと、前記対象テキストデータに対して前記第１の文字コードから前記第２の文字コードへの文字列変換を行う変換ステップと、前記第２の文字コードに変換された前記対象テキストデータを前記クライアントへ送信する送信ステップ、を有する。
【発明の効果】
【００１２】
本発明の１つの態様によれば、Ｗｅｂアプリケーション間でデータを引き継ぐ際に、引継ぎ先のＷｅｂアプリケーション上でテキストデータが正しく表示される。
【図面の簡単な説明】
【００１３】
【図１】Ｗｅｂアプリケーション間のデータ引継ぎについて説明する図である。
【図２】第１の実施形態の中継サーバの構成および動作を説明する図である。
【図３】レスポンスヘッダの一例を示す図である。
【図４】ＭＥＴＡタグの一例を示す図である。
【図５】文字コード判定部の動作を示すフローチャートである。
【図６】文字コード記録ＤＢの一例を示す図である。
【図７】第１の実施形態のＷｅｂアプリケーション連携方法の実施例（その１）である。
【図８】第１の実施形態のＷｅｂアプリケーション連携方法の実施例（その２）である。
【図９】テキストデータ記録ＤＢの一例を示す図である。
【図１０】第１の実施形態のＷｅｂアプリケーション連携方法の実施例（その３）である。
【図１１】第２の実施形態の中継サーバの構成および動作を説明する図である。
【図１２】第３の実施形態の中継サーバの構成および動作を説明する図である。
【図１３】文字コード通知スクリプトの一例を示す図である。
【図１４】ＨＴＭＬドキュメントの一例を示す図である。
【図１５】Ｗｅｂアプリケーション連携方法を示すフローチャートである。
【図１６】中継サーバのハードウェア構成を示す図である。
【発明を実施するための形態】
【００１４】
図１は、Ｗｅｂアプリケーション間のデータ引継ぎについて説明する図である。ここでは、クライアント１がＷｅｂサーバ２（２Ａ、２Ｂ）に対して所望のアプリケーションを要求し、Ｗｅｂサーバ２が要求されたアプリケーションをクライアントに提供するものとする。
【００１５】
クライアント１は、ユーザの指示を受け付けるためのユーザインタフェースを備える。また、クライアント１は、ネットワーク上のＷｅｂページを閲覧するＷｅｂブラウザを備える。Ｗｅｂページは、Ｗｅｂ上にある文書であり、例えば、ＨＴＭＬドキュメント、スタイルシート、画像データ等を含んでいる。そして、クライアント１は、ユーザにより指定されるＷｅｂサーバ２にリクエストを送信することにより、対応するＷｅｂアプリケーションのＷｅｂページを受け取る。すなわち、ユーザは、クライアント１に実装されているＷｅｂブラウザを通して、Ｗｅｂアプリケーションを利用することができる。
【００１６】
クライアント１からＷｅｂサーバ２へ送信されるリクエストは、中継サーバ３によって中継（または、仲介）される。中継サーバ３は、プロキシ部４を備え、クライアント１に代わってＷｅｂサーバ２に対してリクエストを送信する。Ｗｅｂサーバ２は、アプリケーションサーバであり、クライアント１に対してＨＴＭＬドキュメント等を提供するサービスプログラムが動作するサーバコンピュータである。したがって、Ｗｅｂサーバ２は、中継サーバ３から受信するリクエストに対応するレスポンス（すなわち、ＷｅｂページとしてのＨＴＭＬドキュメント等）を中継サーバ３に返送する。そして、中継サーバ３は、Ｗｅｂサーバ２から受け取ったレスポンスをクライアント１に送信する。
【００１７】
上記手順により、クライアント１のＷｅｂブラウザには、Ｗｅｂサーバ２が提供するＷｅｂページが表示（または、実装）される。すなわち、Ｗｅｂサーバ２からクライアント１にＷｅｂアプリケーションが提供される。図１に示す例では、クライアント１には、２つのＷｅｂアプリケーションが提供されている。具体的には、Ｗｅｂサーバ２Ａから提供されるＷｅｂアプリケーションＡのＷｅｂページＡおよびＷｅｂサーバ２Ｂから提供されるＷｅｂアプリケーションＢのＷｅｂページＢが、クライアント１のＷｅｂブラウザに表示されている。なお、ユーザは、Ｗｅｂブラウザを利用して、Ｗｅｂページに対して所望の操作を行うことができるものとする。
【００１８】
上述のようにしてＷｅｂアプリケーションが提供されているときに、ユーザが、Ｗｅｂブラウザを利用して、ＷｅｂページＡからＷｅｂページＢへデータを引き継ぐ操作を行うものとする。図１に示す例では、ＷｅｂページＡ上の文字列ＳをＷｅｂページＢへ引き継ぐ操作が行われている。なお、Ｗｅｂページ間のデータの引継ぎは、例えば「コピーアンドペースト」を含むようにしてもよい。
【００１９】
ユーザにより上述のデータ引継ぎ操作が行われると、クライアント１は、ＷｅｂページＡから文字列Ｓを取り出して中継サーバ３へ送信する。このとき、データの引継ぎ先を識別する情報も中継サーバ３に送信される。データの引継ぎ先は、この例では、ＷｅｂページＢ内の指定された領域である。
【００２０】
データ受信部５は、クライアント１から受信した文字列Ｓをテキストデータ記録ＤＢ６に記録する。そして、中継サーバ３は、テキストデータ記録ＤＢ６に記録されている文字列Ｓを、引継ぎ先情報に従ってクライアント１へ送信する。このとき、文字列Ｓは、例えば、データ注入部７によりＷｅｂサーバ２Ｂからクライアント１へのレスポンスの中に注入されてクライアント１へ送信される。そうすると、ＷｅｂページＡから引き継いだ文字列Ｓが、ＷｅｂページＢ内の引継ぎ先情報で指定された領域に表示される。
【００２１】
ところが、各Ｗｅｂアプリケーションが使用し得る文字コード系（以下、単に「文字コード」と呼ぶ。）は、様々である。例えば、日本国内では、文字コードとして、ＵＴＦ−８、ＥＵＣ―ＪＰ、ＩＳＯ−２０２２−ＪＰ等が普及している。このため、クライアント１に提供される複数のＷｅｂアプリケーションの文字コードが互いに異なっていることがある。
【００２２】
文字コードが異なるＷｅｂアプリケーション間（或いは、文字コードが異なるＷｅｂページ間）でテキストデータの引継ぎを行うと、引継ぎ先のＷｅｂページにおいて、そのテキストデータが正しく表示されないことがある。すなわち、いわゆる「文字化け」が発生することがある。
【００２３】
そこで、実施形態のＷｅｂアプリケーション連携方法においては、Ｗｅｂアプリケーション間でテキストデータを引き継ぐ際に、引継ぎ元および引継ぎ先のＷｅｂページの文字コードが検出される。そして、中継サーバ３は、その検出結果に従って、必要に応じて文字列変換を行った後に、対象テキストデータを引継ぎ先へ送信する。なお、文字コードを検出する処理は、特に検定されるものではないが、例えば、文字コードを判定する処理、推定する処理、取得する処理により実現される。
【００２４】
＜第１の実施形態＞
図２は、第１の実施形態の中継サーバの構成および動作を説明する図である。第１の実施形態の中継サーバ１０は、プロキシ部４、文字コード判定部１１、文字コード記録ＤＢ１２、文字コード変換部１３を備える。なお、図２においては記載していないが、中継サーバ１０は、図１に示すデータ受信部５、テキストデータ記録ＤＢ６、データ注入部７も備えている。
【００２５】
図２において、クライアント１は、Ｗｅｂサーバ２が提供するＷｅｂアプリケーションを利用する際には、Ｗｅｂブラウザを用いてＷｅｂサーバ２に対してリクエストを送信する。このリクエストは、この実施例では、ユーザが要求するＷｅｂアプリケーションのＷｅｂページを特定するＵＲＬを含むものとする。
【００２６】
プロキシ部４は、図１を参照しながら説明したように、クライアント１からＷｅｂサーバ２へ送信されるリクエスト、及びＷｅｂサーバ２からクライアント１へ返送されるレスポンスを中継する。すなわち、プロキシ部４は、クライアント１から送信されるリクエストを受け付け、クライアント１に代わってそのリクエストをＷｅｂサーバ２へ送信する。このとき、プロキシ部４は、そのリクエストに含まれているＵＲＬ（すなわち、クライアント１に提供されるＷｅｂページを特定するＵＲＬ）を抽出して保持してもよい。また、プロキシ部４は、Ｗｅｂサーバ２から返送されるレスポンスを受け付け、そのレスポンスをクライアント１へ送信する。このとき、プロキシ部４は、Ｗｅｂサーバ２から送信されるレスポンスを必要に応じて加工してクライアント１へ送信してもよい。「加工」は、例えば、レスポンスの内容の一部を書き換える処理、或いはレスポンスに情報を付加する処理を含む。また、プロキシ部４は、上記レスポンスから、クライアント１へ提供されるＷｅｂページのＵＲＬを取得するようにしてもよい。
【００２７】
文字コード判定部１１は、Ｗｅｂサーバ２からクライアント１へ送信されるレスポンスの内容に基づいて、クライアント１に提供されるＷｅｂアプリケーションで使用される文字コードを判定する。すなわち、文字コード判定部１１は、プロキシ部４がＷｅｂサーバ２からクライアント１へのレスポンスを受信したときに、クライアント１のＷｅｂブラウザに表示されるＷｅｂページの文字コードを判定する。このとき、文字コードは、たとえば、レスポンスヘッダのContent-Type内のCharsetの値から判定される。或いは、文字コードは、Ｗｅｂページを表すＨＴＭＬドキュメントのＭＥＴＡタグ内のCharsetの値から判定される。なお、文字コード判定部１１は、図２に示す例では、プロキシ部４の中に設けられているが、プロキシ部４の外に設けられてもよい。
【００２８】
図３は、レスポンスヘッダの一例を示す図である。なお、図３に示す例では、Ｗｅｂサーバ２から送信されるレスポンスは、Ｗｅｂページを表すＨＴＭＬドキュメントである。そして、レスポンスヘッダは、レスポンスの先頭に付与されている。
【００２９】
レスポンスヘッダは、この例では、Date、Pragma、Cache-Control、Content-Language、Content-Typeを含んでいる。そして、Content-Typeとしてcharset=euc-jpが記述されている。すなわち、レスポンスヘッダにおいて、このＷｅｂページの文字コードがＥＵＣ―ＪＰであることが宣言されている。
【００３０】
図４は、ＭＥＴＡタグの一例を示す図である。なお、図４に示す例では、Ｗｅｂサーバ２から送信されるレスポンスは、Ｗｅｂページを表すＨＴＭＬドキュメントである。そして、ＭＥＴＡタグは、ＨＴＭＬドキュメントにおいて、HEADタグではサポートされていない付加的な情報を記述するために必要に応じて挿入される。「http-equiv」は、ＭＥＴＡタグのプロパティの１つであり、「Content」は、値を指定するために使用される。
【００３１】
この例では、２つ目のＭＥＴＡタグにおいて、Content-Typeとしてcharset=euc-jpが記述されている。すなわち、ＭＥＴＡタグにおいて、このＷｅｂページの文字コードがＥＵＣ―ＪＰであることが宣言されている。
【００３２】
図５は、文字コード判定部１１の動作を示すフローチャートである。このフローチャートの処理は、プロキシ部４がＷｅｂサーバ２から送信されるレスポンスを受信したときに実行される。なお、プロキシ部４は、クライアント１からＷｅｂサーバ２へ送信されるリクエストが要求するＷｅｂページを特定するＵＲＬを抽出して保持しているものとする。或いは、プロキシ部４は、上記リクエストに応じてＷｅｂサーバ２から送信されるレスポンスから、クライアント１へ提供されるＷｅｂページのＵＲＬを取得するようにしてもよい。
【００３３】
ステップＳ１において、文字コード判定部１１は、プロキシ部４がＷｅｂサーバ２から受信したレスポンスを取得する。このとき、文字コード判定部１１は、Ｗｅｂサーバ２からクライアント１に提供されるＷｅｂページを特定するＵＲＬもあわせて取得する。
【００３４】
ステップＳ２において、文字コード判定部１１は、受信したレスポンスのＭＥＴＡタグ内にcharsetの値が記述されているか否かを判定する。ＭＥＴＡタグ内にcharsetの値が記述されていれば、処理はステップＳ３に進む。そして、文字コード判定部１１は、ステップＳ３において、ＭＥＴＡタグ内のcharsetの値から文字コードを判定する。図４に示す例では、文字コードがＥＵＣ―ＪＰであると判定される。
【００３５】
レスポンスのＭＥＴＡタグ内にcharsetの値が記述されていないとき（あるいは、ＭＥＴＡタグが設けられていないとき）は、文字コード判定部１１は、ステップＳ４において、レスポンスヘッダのContent-Type内にCharsetの値が記述されているか否かを判定する。Content-Type内にCharsetの値が記述されていれば、文字コード判定部１１は、ステップＳ３において、Content-Type内にCharsetの値から文字コードを判定する。図３に示す例では、文字コードがＥＵＣ―ＪＰであると判定される。
【００３６】
さらに、文字コード判定部１１は、ステップＳ５において、Ｗｅｂサーバ２からクライアント１に提供されるＷｅｂページを特定するＵＲＬに対応付けて、ステップＳ３で判定した文字コードを文字コード記録ＤＢ１２に記録する。なお、レスポンスのＭＥＴＡタグ内にcharsetの値が記述されておらず、且つ、レスポンスヘッダのContent-Type内にCharsetの値が記述されていないときは、文字コード判定部１１は、文字コード記録ＤＢ１２を更新することなく処理を終了する。このとき、文字コード判定部１１は、エラーメッセージを出力するようにしてもよい。
【００３７】
また、図５に示す例では、レスポンスヘッダよりもＭＥＴＡタグの情報を優先して文字コードが判定されているが、実施形態のＷｅｂアプリケーション連携方法はこれに限定されるものではない。例えば、レスポンスヘッダの情報に基づいて文字コードを判定し、レスポンスヘッダから文字コードを判定できないときにＭＥＴＡタグを参照するようにしてもよい。
【００３８】
このように、文字コード判定部１１は、Ｗｅｂサーバ２からクライアント１へ送信されるレスポンスの内容に基づいて、文字コードを判定する。そして、判定された文字コードは、Ｗｅｂサーバ２からクライアント１に提供されるＷｅｂページを特定するＵＲＬに対応付けて、文字コード記録ＤＢ１２に記録される。
【００３９】
図６は、文字コード記録ＤＢ１２の一例を示す図である。文字コード記録ＤＢ１２は、上述したように、ＵＲＬに対応づけて文字コードを記録する。
ＵＲＬは、スキーム名、ドメイン名（ホスト名）、パス名などを含む。例えば、図６に示す文字コード記録ＤＢ１２の１番目のエントリには「http://xxxxx/aa1」が記録されている。この場合、httpがスキーム名であり、xxxxxがドメイン名またはホスト名であり、aa1がパス名である。すなわち、このＵＲＬは、xxxxxで識別されるコンピュータに格納されている、aa1で識別されるファイルまたはデータを特定する。
【００４０】
文字コード記録ＤＢ１２の各エントリは、プロキシ部４がクライアント１からＷｅｂサーバ２へのリクエストを中継し、その後、プロキシ部４がそのリクエストに対応するレスポンスをＷｅｂサーバ２から受信したときに作成される。例えば、１番目のエントリは、プロキシ部４が、http://xxxxx/aa1で特定されるＨＴＴＰドキュメントを取得するためのリクエストを中継し、その後、プロキシ部４がそのリクエストに対応するレスポンスをＷｅｂサーバから受信したときに作成される。このとき、文字コード判定部１１は、図５を参照しながら説明したように、受信したレスポンスのＭＥＴＡタグまたはレスポンスヘッダを参照して、上記ＵＲＬに対応する文字コードを検出する。そして、文字コード判定部１１は、上記ＵＲＬおよび対応する文字コードを文字コード記録ＤＢ１２に記録する。
【００４１】
なお、文字コード判定部１１は、この例では、プロキシ部４がＷｅｂサーバ２からクライアント１へのレスポンスを中継する毎に、ＵＲＬおよび文字コードの組を文字コード記録ＤＢ１２に記録する。例えば、図６に示す文字コード記録ＤＢ１２の４番目のエントリには、http://xxxxx/aa8に対応づけてＥＵＣ−ＪＰが記録されている。すなわち、１番目および４番目のエントリは、いずれもxxxxxで識別されるホストからのレスポンスに基づいて生成されている。ただし、１番目のエントリは、aa1で識別されるファイルまたはデータを含むＨＴＴＰドキュメントがクライアント１に提供されるときに生成され、４番目のエントリは、aa8で識別されるファイルまたはデータを含むＨＴＴＰドキュメントがクライアント１に提供されるときに生成される。
【００４２】
図２に戻る。文字コード変換部１３は、クライアント１においてＷｅｂページ間のデータ引継ぎ操作が行われると、必要に応じて、Ｗｅｂページ間で引き継がれるテキストデータ（以下、対象テキストデータ）に対して文字列変換を実行する。なお、データ引継ぎの際には、後で実施例を参照しながら詳しく説明するが、クライアント１から中継サーバ１０へ対象テキストデータ、引継ぎ元ＷｅｂページのＵＲＬ、引継ぎ先ＷｅｂページのＵＲＬ、引継ぎ先を指定するXPath等が送信される。
【００４３】
文字コード変換部１３は、文字コード記録ＤＢ１２を参照し、引継ぎ元Ｗｅｂページおよび引継ぎ先ＷｅｂページのＵＲＬに対応する文字コードをそれぞれ抽出する。そして、引継ぎ元Ｗｅｂページおよび引継ぎ先Ｗｅｂページの文字コードが互いに異なっていたときは、文字コード変換部１３は、対象テキストデータに対して文字列変換を実行する。例えば、クライアント１において、引継ぎ元Ｗｅｂページがhttp://xxxxx/aa1から取得したＨＴＭＬドキュメントであり、引継ぎ先Ｗｅｂページがhttp://yyyyy/bb3から取得したＨＴＭＬドキュメントであるものとする。この場合、図６に示す例においては、引継ぎ元Ｗｅｂページの文字コードはＥＵＣ−ＪＰであり、引継ぎ先Ｗｅｂページの文字コードはＵＴＦ−８である。したがって、文字コード変換部１３は、ＥＵＣ−ＪＰで作成されている対象テキストデータを、ＵＴＦ−８の文字列に変換する。
【００４４】
中継サーバ１０は、上述のようにして文字列変換を行った対象テキストデータをクライアント１へ送信する。そうすると、クライアント１は、受信した対象テキストデータを、引継ぎ先Ｗｅｂページ内の指定された領域に表示する。このとき、上述の例では、引継ぎ先Ｗｅｂページの文字コードはＵＴＦ−８である。また、対象テキストデータは、文字コード変換部１３によりＥＵＣ−ＪＰからＵＴＦ−８に変換されている。したがって、この対象テキストデータは、文字化けすることなく、引継ぎ先Ｗｅｂページに正常に表示される。すなわち、Ｗｅｂアプリケーション間でデータを引き継ぐ際に、引継ぎ先Ｗｅｂページにおいてそのデータが正常に表示される。
【００４５】
なお、引継ぎ元Ｗｅｂページおよび引継ぎ先Ｗｅｂページの文字コードが互いに同じであるときは、文字コード変換部１３は、文字列変換を実行しない。この場合、中継サーバ１０は、クライアント１から受信した対象テキストデータを、文字列変換することなく、クライアント１に送信する。そして、その対象テキストデータは、クライアント１において引継ぎ先Ｗｅｂページに表示される。
【００４６】
次に、図７〜図１０を参照しながら、第１の実施形態のＷｅｂアプリケーション連携方法の実施例を説明する。この実施例では、中継サーバ１０は、プロキシ部４、データ受信部５、テキストデータ記録ＤＢ６、データ注入部７、文字コード判定部１１、文字コード記録ＤＢ１２、文字コード変換部１３、スクリプト注入部１４を備える。ここで、プロキシ部４、データ受信部５、テキストデータ記録ＤＢ６、データ注入部７、文字コード判定部１１、文字コード記録ＤＢ１２、文字コード変換部１３は、基本的に、上述した通りである。
【００４７】
まず、図７を参照しながら、Ｗｅｂページの文字コードを判定する手順について説明する。Ｗｅｂページの文字コードを判定する手順は、クライアント１がＷｅｂサーバ２にリクエストを送信し、Ｗｅｂサーバ２がそのリクエストに対応するレスポンスを返送したときに実行される。すなわち、文字コード判定手順は、以下のように実行される。
【００４８】
（１）クライアント１は、Ｗｅｂブラウザを利用して所望のＵＲＬを指定することにより、Ｗｅｂページを取得するためのリクエストを送信する。このリクエストは、中継サーバ１０により中継され、ＵＲＬが指定するＷｅｂサーバ２に送信される。
【００４９】
（２）Ｗｅｂサーバ２は、中継サーバ１０を介して上述のリクエストを受信すると、対応するレスポンスを返送する。このレスポンスは、Ｗｅｂページを表示するためのＨＴＭＬドキュメント等を含んでいる。また、このレスポンスには、例えば、図３に示すようなレスポンスヘッダが付与されている。或いは、このレスポンスは、例えば、図４に示すようなＭＥＴＡタグを含んでいる。そして、Ｗｅｂサーバ２から送信されるレスポンスは、中継サーバ１０のプロキシ部４により受信される。
【００５０】
（３）文字コード判定部１１は、Ｗｅｂサーバ２から送信されるレスポンスの内容に基づいて、クライアント１に提供されるＷｅｂページの文字コードを判定する。このとき、文字コード判定部１１は、例えば、図３を参照しながら説明したように、レスポンスヘッダ内に記述されているcharsetの値によりＷｅｂページの文字コードを判定する。あるいは、文字コード判定部１１は、図４を参照しながら説明したように、ＭＥＴＡタグとして記述されているcharsetの値によりＷｅｂページの文字コードを判定してもよい。
【００５１】
（４）文字コード判定部１１は、クライアント１に提供されるＷｅｂページのＵＲＬに対応づけて、手順（３）で判定した文字コードを表す文字コード情報を文字コード記録ＤＢ１２に記録する。なお、クライアント１に提供されるＷｅｂページのＵＲＬは、クライアント１からＷｅｂサーバ２へ送信されるリクエストから取得してもよいし、Ｗｅｂサーバ２から返送されるレスポンスから取得してもよい。
【００５２】
（５）スクリプト注入部１４は、Ｗｅｂサーバ２からクライアント１へ送信されるレスポンスに、データ送信スクリプトを注入する。このデータ送信スクリプトは、例えば、レスポンスとしてクライアント１へ送信されるＨＴＭＬドキュメントの中に埋め込まれる。なお、データ送信スクリプトは、クライアント１においてユーザによりデータ引継ぎ操作が行われたときに、対象テキストデータを中継サーバ１０へ送信する手順を記述したプログラムである。
【００５３】
（６）プロキシ部４は、データ送信スクリプトが注入されたレスポンスをクライアント１へ送信する。
（７）クライアント１のＷｅｂブラウザは、受信したレスポンスに含まれているＨＴＭＬドキュメント等に従って、Ｗｅｂページを表示する。すなわち、Ｗｅｂサーバ２からクライアント１へＷｅｂアプリケーションが提供される。なお、受信したレスポンスには、手順（５）によりデータ送信スクリプトが注入されている。そして、このデータ送信スクリプトは、クライアント１において、データ引継ぎ操作の実行を待ち受ける。
【００５４】
このように、クライアント１がＷｅｂサーバ２にリクエストを送信し、Ｗｅｂサーバ２がそのリクエストに対応するレスポンスを返送する毎に、クライアント１へ提供されるＷｅｂページの文字コードが判定される。そして、判定された文字コードは、ＷｅｂページのＵＲＬに対応づけて文字コード記録ＤＢ１２に記録される。
【００５５】
続いて、図８を参照しながら、データの引継ぎを要求する手順について説明する。データの引継ぎを要求する手順は、特に限定されるものではないが、例えば、クライアント１のユーザによりデータ引継ぎ操作が行われたときに実行される。すなわち、データ引継ぎ要求手順は、以下のように実行される。
【００５６】
なお、以下の説明では、クライアント１のＷｅｂブラウザにＷｅｂページＡが表示されているものとする。ＷｅｂページＡは、図７に示す手順により、Ｗｅｂサーバ２から中継サーバ１０を介してクライアント１に提供される。よって、ＷｅｂページＡのＨＴＭＬドキュメントには、中継サーバ１０においてデータ送信スクリプト１５が注入されている。そして、クライアント１においてＷｅｂページＡのＨＴＭＬドキュメントが読み込まれると、データ送信スクリプト１５が実行される。以降、データ送信スクリプト１５は、クライアント１において、データ引継ぎ操作の実行を待ち受ける。
【００５７】
（１１）クライアント１において、ユーザによりデータ引継ぎ操作が行われると、データ送信スクリプト１５は、Ｗｅｂページ間で引き継がれる文字列（対象テキストデータ）を中継サーバ１０へ送信する。なお、ユーザは、データ引継ぎ操作において、対象テキストデータ、引継ぎ元Ｗｅｂページ、引継ぎ先Ｗｅｂページ、引継ぎ先領域を指定するものとする。この例では、対象テキストデータは「６月１２日」である。引継ぎ元ＷｅｂページはＷｅｂページＡである。引継ぎ先Ｗｅｂページは、図１０に示すＷｅｂページＢ（図８では、不図示）である。引継ぎ先領域は、対象テキストデータが入力される引継ぎ先Ｗｅｂページ内の指定された領域である。この場合、データ送信スクリプト１５は、上記データ引継ぎ操作が行われると、対象テキストデータとともに、引継ぎ元ＷｅｂページのＵＲＬ、引継ぎ先ＷｅｂページのＵＲＬ、引継ぎ先領域を指し示すXPathを中継サーバ１０へ送信する。
【００５８】
（１２）中継サーバ１０のデータ受信部５は、クライアント１から送信される対象テキストデータ、引継ぎ元ＷｅｂページのＵＲＬ、引継ぎ先ＷｅｂページのＵＲＬ、引継ぎ先領域を指し示すXPathを受信する。そして、データ受信部５は、クライアント１から受信した対象テキストデータ、引継ぎ元ＷｅｂページのＵＲＬ、引継ぎ先ＷｅｂページのＵＲＬ、引継ぎ先領域を指し示すXPathをテキストデータ記録ＤＢ６に記録する。
【００５９】
図９は、テキストデータ記録ＤＢ６の一例を示す図である。テキストデータ記録ＤＢ６には、この例では、引継ぎ先ＷｅｂページのＵＲＬを検索キーとして、引継ぎ元ＷｅｂページのＵＲＬ、対象テキストデータ、引継ぎ先XPathが記録される。図９に示す実施例では、１番目のエントリに下記の内容が記録されている。
引継ぎ先ＷｅｂページのＵＲＬ：http://yyyyy/bb3（ＷｅｂページＢのＵＲＬ）
引継ぎ元ＷｅｂページのＵＲＬ：http://xxxxx/aa1（ＷｅｂページＡのＵＲＬ）
対象テキストデータ：「６月１２日」
引継ぎ先XPath：html/document/input[1]
【００６０】
このように、データ引継ぎ要求手順においては、クライアント１に実装されているデータ送信スクリプト１５により、対象テキストデータおよび引継ぎ情報が中継サーバ１０に送信される。そして、対象テキストデータおよび引継ぎ情報は、テキストデータ記録ＤＢ６に記録される。なお、上述の例では、クライアント１のユーザがデータ引継ぎ操作を行ったときにデータ引継ぎ要求手順が実行されるが、実施形態のＷｅｂアプリケーション連携方法はこれに限定されるものではない。例えば、クライアント１のＷｅｂブラウザを利用してあるＷｅｂページが表示されたときに、自動的に、そのＷｅｂページ内の所定の領域のテキストデータが引継ぎ先の情報と共に中継サーバ１０へ送信されるようにしてもよい。
【００６１】
次に、図１０を参照しながら、対象テキストデータを引継ぎ先Ｗｅｂページに送信する手順について説明する。対象テキストデータを引継ぎ先Ｗｅｂページに送信する手順は、特に限定されるものではないが、例えば、クライアント１により引継ぎ先Ｗｅｂページを取得するためのリクエストが送信されたときに実行される。この場合、この手順は、以下のように実行される。
【００６２】
（２１）クライアント１は、ＷｅｂページＢを取得するためのリクエストを送信する。このリクエストは、中継サーバ１０によって中継され、Ｗｅｂサーバ２に送信される。なお、ＷｅｂページＢは、図８を示す手順において、図９に示すように、引継ぎ先Ｗｅｂページとしてテキストデータ記録ＤＢ６に記録されているものとする。
【００６３】
（２２）Ｗｅｂサーバ２は、中継サーバ１０を介して上述のリクエストを受信すると、対応するレスポンスを返送する。このレスポンスは、ＷｅｂページＢを表示するためのＨＴＭＬドキュメント等を含んでいる。そして、Ｗｅｂサーバ２から送信されるレスポンスは、中継サーバ１０のプロキシ部４により受信される。
【００６４】
（２３）文字コード変換部１３は、Ｗｅｂサーバ２から受信したレスポンスにより提供されるＷｅｂページのＵＲＬ（以下、レスポンスＵＲＬ）が、テキストデータ記録ＤＢ６に「引継ぎ先ＷｅｂページのＵＲＬ」として記録されているか否かを判定する。そして、レスポンスＵＲＬが「引継ぎ先ＷｅｂページのＵＲＬ」としてテキストデータ記録ＤＢ６に記録されていたときは、文字コード変換部１３は、テキストデータ記録ＤＢ６から対応する「引継ぎ元ＷｅｂページのＵＲＬ」を抽出する。さらに、文字コード変換部１３は、文字コード記録ＤＢ１２を参照し、引継ぎ元Ｗｅｂページおよび引継ぎ先Ｗｅｂページの文字コードをそれぞれ取得する。なお、レスポンスＵＲＬが「引継ぎ先ＷｅｂページのＵＲＬ」としてテキストデータ記録ＤＢ６に記録されていなければ、文字コード変換部１３は、文字列変換を実行することなく処理を終了する。
【００６５】
図８〜図９に示す実施例では、引継ぎ元Ｗｅｂページ（即ち、ＷｅｂページＡ）のＵＲＬはhttp://xxxxx/aa1である。よって、このＵＲＬで図６に示す文字コード記録ＤＢ１２を検索すると、「引継ぎ元Ｗｅｂページの文字コード：ＥＵＣ−ＪＰ」が得られる。また、引継ぎ先Ｗｅｂページ（即ち、ＷｅｂページＢ）のＵＲＬはhttp://yyyyy/bb3である。よって、このＵＲＬで図６に示す文字コード記録ＤＢ１２を検索すると、「引継ぎ先Ｗｅｂページの文字コード：ＵＴＦ−８」が得られる。
【００６６】
（２４）文字コード変換部１３は、引継ぎ元Ｗｅｂページおよび引継ぎ先Ｗｅｂページの文字コードを互いに比較する。そして、これらの文字コードが互いに異なっていれば、文字コード変換部１３は、テキストデータ記録ＤＢ６に記録されている対象テキストデータに対して文字列変換を実行する。この実施例では、「６月１２日」の文字コードがＥＵＣ−ＪＰからＵＴＦ−８に変換される。すなわち、ＵＴＦ−８で表わされた対象テキストデータが生成される。なお、引継ぎ元Ｗｅｂページおよび引継ぎ先Ｗｅｂページの文字コードを互いに同じであれば、文字コード変換部１３は、文字列変換を実行することなく処理を終了する。
【００６７】
（２５）データ注入部７は、Ｗｅｂサーバ２から受信したレスポンスに、文字コード変換部１３により文字コード変換が行われた対象テキストデータを注入する。このとき、対象テキストデータは、テキストデータ記録ＤＢ６に記録されている引継ぎ先XPathに基づいて（または、引継ぎ先XPathと共に）、レスポンスの中のＨＴＭＬドキュメントに埋め込まれる。そして、プロキシ部４は、上述の対象テキストデータが注入されたレスポンスをクライアント１へ送信する。なお、文字コード変換部１３による文字コード変換が実行されなかったときは、データ注入部７は、クライアント１から受信した対象テキストデータを、そのまま、Ｗｅｂサーバ２から受信したレスポンスに埋め込む。
【００６８】
（２６）クライアント１は、Ｗｅｂブラウザを利用して、中継サーバ１０から受信するレスポンスに従ってＷｅｂページＢを表示する。ここで、このレスポンスには、ＷｅｂページＢの文字コードで表わされた対象テキストデータが埋め込まれている。よって、クライアント１にＷｅｂページＢが表示されると、引継ぎ先XPathで指定される領域に、ＷｅｂページＡから抽出された対象テキストデータ「６月１２日」が文字化けすることなく正常に表示される。
【００６９】
このように、第１の実施形態のＷｅｂアプリケーション連携方法によれば、Ｗｅｂアプリケーション間でテキストデータを引き継ぐ際に、必要に応じて文字コードが適切に変換される。このため、Ｗｅｂアプリケーション間で引き継がれるテキストデータは、Ｗｅｂアプリケーション間で文字コードが異なる場合であっても、引継ぎ先のＷｅｂページにおいて文字化けを起こすことなく正常に表示される。
【００７０】
＜第２の実施形態＞
第１の実施形態では、中継サーバ１０のプロキシ部４がＷｅｂサーバ２からレスポンスを受信したときに、文字コード変換部１３が引継ぎ元Ｗｅｂページおよび引継ぎ先Ｗｅｂページの文字コードを認識する。このとき、文字コード変換部１３は、引継ぎ元Ｗｅｂページおよび引継ぎ先ＷｅｂページのＵＲＬで文字コード記録ＤＢ１２を検索し、それぞれ対応する文字コードを認識する。
【００７１】
しかし、図７を参照しながら説明した手順においては、文字コード記録ＤＢ１２には、Ｗｅｂサーバ２からクライアント１へ提供されるＷｅｂページについてのレスポンスに基づいて文字コード情報が記録される。このため、例えば、レスポンス（または、レスポンスヘッダ）に文字コードを表す情報が記述されていないときは、文字コード記録ＤＢ１２に文字コードが記録されていない。また、過去にクライアント１へ提供されたことのないＷｅｂページについては、文字コード記録ＤＢ１２に文字コードが記録されていない。このため、第１の実施形態では、プロキシ部４がＷｅｂサーバ２からレスポンスを受信したときに、文字コード変換部１３が引継ぎ元Ｗｅｂページおよび／または引継ぎ先Ｗｅｂページの文字コードを認識できないことがある。そこで、第２の実施形態のＷｅｂアプリケーション連携方法は、引継ぎ元Ｗｅｂページおよび／または引継ぎ先Ｗｅｂページの文字コードを推定する手順を有する。
【００７２】
図１１は、第２の実施形態の中継サーバの構成および動作を説明する図である。第２の実施形態の中継サーバ２０は、第１の実施形態の中継サーバ１０が備えるプロキシ部４、データ受信部５、テキストデータ記録ＤＢ６、データ注入部７、文字コード判定部１１、文字コード記録ＤＢ１２、文字コード変換部１３、スクリプト注入部１４に加えて、文字コード推定部２１を備える。なお、図１１においては、データ受信部５、テキストデータ記録ＤＢ６、データ注入部７、スクリプト注入部１４は省略されている。
【００７３】
文字コード推定部２１は、文字コード変換部１３が文字コードを認識できなかったときに呼び出される。すなわち、文字コード変換部１３は、プロキシ部４がＷｅｂサーバ２からレスポンスを受信したときに、引継ぎ元Ｗｅｂページおよび引継ぎ先ＷｅｂページのＵＲＬで文字コード記録ＤＢ１２を検索する。そして、引継ぎ元Ｗｅｂページおよび／または引継ぎ先ＷｅｂページのＵＲＬが文字コード記録ＤＢ１２に記録されていなければ、文字コード推定部２１が呼び出される。
【００７４】
文字コード推定部２１は、引継ぎ元Ｗｅｂページおよび／または引継ぎ先Ｗｅｂページのドメイン名（または、ホスト名）で文字コード記録ＤＢ１２を検索する。例えば、引継ぎ元ＷｅｂページのＵＲＬが文字コード記録ＤＢ１２に記録されていなければ、文字コード推定部２１は、引継ぎ元Ｗｅｂページのドメイン名で文字コード記録ＤＢ１２を検索する。また、引継ぎ先ＷｅｂページのＵＲＬが文字コード記録ＤＢ１２に記録されていないときは、文字コード推定部２１は、引継ぎ先Ｗｅｂページのドメイン名で文字コード記録ＤＢ１２を検索する。なお、ドメイン名は、ＵＲＬの一部として記述されている。たとえば、上述の実施例では、ＷｅｂページＡのＵＲＬはhttp://xxxxx/aa1であるが、この場合、xxxxxがＷｅｂページＡのドメイン名を表している。
【００７５】
文字コード推定部２１は、文字コード記録ＤＢ１２において、対象Ｗｅｂページ（すなわち、引継ぎ元Ｗｅｂページ、引継ぎ先Ｗｅｂページ）のドメイン名を含むＵＲＬをサーチする。すなわち、文字コード記録ＤＢ１２において、対象Ｗｅｂページと同じドメイン内の別のＷｅｂページのＵＲＬがサーチされる。そして、対象Ｗｅｂページのドメイン名を含むＵＲＬが検出されたときは、文字コード推定部２１は、そのＵＲＬに対応する文字コードを、対象Ｗｅｂページの文字コードと推定する。
【００７６】
このように、文字コード推定部２１は、文字コード判定部１１により過去に判定された他のＷｅｂページの文字コードに基づいて、対象Ｗｅｂページの文字コードを推定する。このとき、対象Ｗｅｂページの文字コードは、対象Ｗｅｂページと同じドメイン内のＷｅｂページに基づいて推定される。そして、同じドメイン内のＷｅｂページは、同じ文字コードを使用している可能性が高い。したがって、文字コード推定部２１は、引継ぎ元Ｗｅｂページおよび／または引継ぎ先Ｗｅｂページの文字コードを適切に推定することができる。
【００７７】
文字コード変換部１３は、文字コード推定部２１により対象Ｗｅｂページの文字コードが推定されたときは、その推定された文字コードを使用して文字列変換を実行する。たとえば、文字コード変換部１３が、引継ぎ元Ｗｅｂページの文字コードがＥＵＣ−ＪＰであると認識し、文字コード推定部２１が、引継ぎ先Ｗｅｂページの文字コードがＵＴＦ−８であると推定したものとする。この場合、文字コード変換部１３は、対象テキストデータに対してＥＵＣ−ＪＰからＵＴＦ−８への文字列変換を実行する。そして、プロキシ部４は、Ｗｅｂサーバ２からクライアント１へのレスポンスに、上記対象テキストデータを注入する。これにより、クライアント１において、引継ぎ先Ｗｅｂページ上の指定された領域に、文字コードが変換されたテキストデータが表示される。
【００７８】
一例を示す。ここでは、中継サーバ２０は、クライアント１に実装されているデータ送信スクリプト１５により送信される対象テキストデータを受信すると共に、下記の引継ぎ情報を受信するものとする。また、文字コード記録ＤＢ１２には、図６に示す内容が記録されているものとする。
引継ぎ元ＷｅｂページのＵＲＬ：http://xxxxx/aa1
引継ぎ先ＷｅｂページのＵＲＬ：http://yyyyy/bb5
【００７９】
このケースでは、文字コード変換部１３は、http://xxxxx/aa1で文字コード記録ＤＢ１２を検索することで「引継ぎ元Ｗｅｂページの文字コード：ＥＵＣ−ＪＰ」を得る。しかし、文字コード記録ＤＢ１２にhttp://yyyyy/bb5は記録されていない。そうすると、文字コード推定部２１は、文字コード記録ＤＢ１２においてドメイン名yyyyyを含むＵＲＬをサーチする。この場合、２番目のエントリのＵＲＬがyyyyyを含んでいる。したがって、文字コード推定部２１は、２番目のエントリの内容に基づいて「引継ぎ先Ｗｅｂページの文字コード：ＵＴＦ−８」を得る。この後、文字コード変換部１３は、対象テキストデータに対してＥＵＣ−ＪＰからＵＴＦ−８への文字列変換を実行する。
【００８０】
このように、第２の実施形態では、対象Ｗｅｂページ（すなわち、引継ぎ元Ｗｅｂページおよび／または引継ぎ先Ｗｅｂページ）の文字コードが先に判定されていない場合であっても、その対象Ｗｅｂページの文字コードを適切に推定できる。したがって、Ｗｅｂアプリケーション間でデータを引き継ぐ場合において、文字化け等の発生がさらに抑えられる。
【００８１】
なお、対象ＷｅｂページのＵＲＬが文字コード記録ＤＢ１２に記録されておらず、且つ対象Ｗｅｂページのドメイン名を含むＵＲＬも文字コード記録ＤＢ１２に記録されていないときは、対象Ｗｅｂページの文字コードとして予め決められたデフォルト文字コードが使用される。デフォルト文字コードとしては、例えば、最も広く普及している文字コードが選択される。
【００８２】
＜第３の実施形態＞
第１の実施形態では、Ｗｅｂサーバ２から送信されるレスポンスの内容に基づいて各Ｗｅｂページの文字コードが検出される。しかし、この方法では、Ｗｅｂサーバ２から送信されるレスポンスの中にＷｅｂページの文字コードを表す情報が含まれていないときは、中継サーバにおいて適切な文字列変換を実行できない。そこで、第３の実施形態のＷｅｂアプリケーション連携方法は、クライアントから中継サーバへ各Ｗｅｂページの文字コードを通知させる手順を含む。
【００８３】
図１２は、第３の実施形態の中継サーバの構成および動作を説明する図である。第３の実施形態の中継サーバ３０は、第１の実施形態の中継サーバ１０が備えているプロキシ部４、データ受信部５、テキストデータ記録ＤＢ６、データ注入部７、文字コード記録ＤＢ１２、文字コード変換部１３に加えて、スクリプト注入部３１を備える。なお、図１２においては、データ受信部５、テキストデータ記録ＤＢ６、データ注入部７は省略されている。
【００８４】
第３の実施形態の中継サーバ３０の動作は、基本的には、第１の実施形態の中継サーバ１０と同じである。ただし、第３の実施形態は、各Ｗｅｂページの文字コードを取得して文字コード記録ＤＢ１２に記録する方法が第１の実施形態と異なる。
【００８５】
スクリプト注入部３１は、Ｗｅｂサーバ２からクライアント１へ送信されるレスポンスに、文字コード通知スクリプト３２を注入する。なお、スクリプト注入部３１は、文字コード通知スクリプト３２と共に、図７〜図８を参照して説明したデータ送信スクリプト１５も合わせて上記レスポンスに注入することができる。
【００８６】
図１３は、文字コード通知スクリプト３２の一例を示す図である。文字コード通知スクリプト３２は、ＨＴＭＬドキュメント内に埋め込まれる。文字コード通知スクリプト３２は、<BODY>の前に埋め込まれてもよいし、<BODY>の中に埋め込まれてもよいし、他の位置に埋め込まれてもよい。
【００８７】
記述３２ａは、文字コード（変数encoding）を表す情報を取得する。具体的には、記述３２ａは、文字コード通知スクリプト３２が埋め込まれているＨＴＭＬドキュメントにおいて、文字コードを表す情報としてcharsetまたはcharacterSetの値を取得する。また、記述３２ｂは、記述３２ａにより取得した文字コードを表す情報を、指定されたパスに通知する。通知先のパス（http://serverURL/?encode=）は、中継サーバ３０内で予め設定されているものとする。したがって、クライアント１においてＷｅｂページに埋め込まれた文字コード通知スクリプト３２が実行されると、そのＷｅｂページの文字コードが、指定されたパス（すなわち、中継サーバ３０）に通知される。このとき、このＷｅｂページのＵＲＬも合わせて中継サーバ３０に通知される。
【００８８】
中継サーバ３０のプロキシ部４は、スクリプト注入部３１によりデータ送信スクリプト１５および文字コード通知スクリプト３２が注入されたレスポンスをクライアント１へ送信する。クライアント１は、中継サーバ３０から上記レスポンスを受信すると、Ｗｅｂブラウザを利用して、そのレスポンスに含まれているＨＴＭＬドキュメント等に従ってＷｅｂページを表示する。
【００８９】
このとき、ＨＴＭＬドキュメントに埋め込まれている文字コード通知スクリプト３２が実行される。すなわち、文字コード通知スクリプト３２は、図１３を参照しながら説明したように、文字コード通知スクリプト３２が埋め込まれているＨＴＭＬドキュメントから文字コードを表す情報を取得する。例えば、図１４に示すＨＴＭＬドキュメントにおいては、charsetの値（すなわち、「euc-jp」）が抽出される。クライアント１に実装されるＨＴＭＬドキュメントは、例えば、ＤＯＭ（Document Object Model）で解析される。すなわち、図１４に示すＤＯＭツリーがクライアント１のメモリ上に構築され、そのＤＯＭツリーを利用してcharsetの値が抽出される。これにより、クライアント１に表示されているＷｅｂページの文字コードを表す情報が取得される。さらに、文字コード通知スクリプト３２は、このＷｅｂページの文字コードを表す情報を中継サーバ３０に通知する。このとき、このＷｅｂページのＵＲＬも合わせて中継サーバ３０に通知される。そして、中継サーバ３０は、クライアント１からの通知に応じて、文字コード記録ＤＢ１２に文字コードとＵＲＬの組を記録する。
【００９０】
このように、第３の実施形態においては、クライアント１からのリクエストに応じてＷｅｂサーバ２から返送されるレスポンスに文字コード通知スクリプト３２が埋め込まれ、クライアント１においてＷｅｂページが開かれる際に、そのＷｅｂページの文字コードが中継サーバ３０に通知される。そして、中継サーバ３０は、クライアント１から文字コードの通知を受信するごとに、その通知の内容を文字コード記録ＤＢ１２に記録する。これにより、中継サーバ３０において、図６に示すような第１の実施形態と同様の文字コード記録ＤＢ１２が作成される。
【００９１】
第３の実施形態における他の動作は、基本的に、第１の実施形態と同じである。すなわち、クライアント１においてデータ引継ぎ操作が行われると、例えば、図８および図１０に示す手順に従い、中継サーバ３０により必要に応じて文字コード変換が行われた対象テキストデータがクライアント１の引継ぎ先Ｗｅｂページへ与えられる。このとき、中継サーバ３０は、図１１に示すように、文字コード推定部２１を用いて引継ぎ元Ｗｅｂページおよび／または引継ぎ先Ｗｅｂページの文字コードを推定してもよい。
【００９２】
このように、第３の実施形態のＷｅｂアプリケーション連携方法によれば、Ｗｅｂサーバ２からのレスポンスの中に文字コードを表す情報が含まれていない場合であっても、Ｗｅｂブラウザ上でＷｅｂページが正常に表示されている限りは、中継サーバ３０は、そのＷｅｂページの文字コードを確実に認識することができる。したがって、Ｗｅｂアプリケーション間でデータを引き継ぐ際に、文字化け等の発生を回避することができ、正確なデータ引継ぎが実現される。
【００９３】
＜フローチャート＞
図１５は、実施形態のＷｅｂアプリケーション連携方法を示すフローチャートである。このフローチャートの処理は、上述した実施形態では、Ｗｅｂサーバ２から中継サーバ１０、２０、３０を介してクライアント１に提供される第１および第２のＷｅｂアプリケーションを連携させる方法であって、中継サーバ１０、２０、３０によって実行される。
【００９４】
ステップＳ１１において、中継サーバは、第１のＷｅｂアプリケーションで使用される第１の文字コードおよび第２のＷｅｂアプリケーションで使用される第２の文字コードを検出する。ステップＳ１１は、第１〜第２の実施形態に係る例では、図２に示す文字コード判定部１１により実現される。この場合、文字コード判定部１１は、クライアント１からＷｅｂサーバ２へＷｅｂアプリケーションを要求するリクエストに対応するレスポンスの内容に基づいて、要求されたＷｅｂアプリケーションで使用される文字コードを検出する。また、ステップＳ１１は、第３の実施形態に係る例では、図１２に示すスクリプト注入部３１により実現される。この場合、スクリプト注入部３１は、Ｗｅｂサーバ２からクライアント１に提供されるＷｅｂアプリケーションのＷｅｂページに、そのＷｅｂページで使用されている文字コードを中継サーバへ通知する手順を記述した文字コード通知スクリプト３２を埋め込むことにより、文字コード通知スクリプト３２をクライアント１へ送信する。そして、クライアント１において実行される文字コード通知スクリプト３２によるクライアント１からの通知に基づいて、第１および第２の文字コードが検出される。
【００９５】
ステップＳ１２において、中継サーバは、第１のＷｅｂアプリケーションにより提供される第１のＷｅｂページから第２のＷｅｂアプリケーションにより提供される第２のＷｅｂページへのデータ引継ぎにおいて、第１のＷｅｂページ内の対象テキストデータをクライアントから受信する。ステップＳ１２は、第１〜第３の実施形態に係る例では、データ受信部５により実現される。なお、第１のＷｅｂページから第２のＷｅｂページへのデータ引継ぎを指示する操作は、例えば、クライアント１において行われる。
【００９６】
ステップＳ１３において、中継サーバは、対象テキストデータに対して第１の文字コードから第２の文字コードへの文字列変換を行う。ステップＳ１３は、第１〜第３の実施形態に係る例では、文字コード変換部１３により実現される。なお、第１および第２の文字コードが互いに同じであるとき（すなわち、引継ぎ元Ｗｅｂページおよび引継ぎ先Ｗｅｂページの文字コードが互いに同じであるとき）は、文字列変換は実行されない。
【００９７】
ステップＳ１４において、中継サーバは、第２の文字コードに変換された対象テキストデータを、クライアント１へ送信する。ステップＳ１４は、第１〜第３の実施形態に係る例では、データ注入部７により実現される。この場合、データ注入部７は、クライアント１からＷｅｂサーバ２へ第２のＷｅｂページを要求するリクエストに対応するレスポンスに、第２の文字コードに変換された対象テキストデータを埋め込む。
【００９８】
＜中継サーバのハードウェア構成＞
図１６は、中継サーバのハードウェア構成を示す図である。図１６において、ＣＰＵ１０１は、メモリ１０３を利用してＷｅｂアプリケーション連携プログラムを実行することにより中継サーバに各処理手順を実行させる。すなわち、中継サーバは、例えば、図１６に示すコンピュータシステムにより実現される。なお、Ｗｅｂアプリケーション連携プログラムは、例えば、図１５に示すフローチャートの手順を含み、さらに第１〜第３の実施形態の中継サーバの動作手順を含むようにしてもよい。
【００９９】
記憶装置１０２は、例えばハードディスクであり、Ｗｅｂアプリケーション連携プログラムを格納する。なお、記憶装置１０２は、外部記録装置であってもよい。メモリ１０３は、例えば半導体メモリであり、ＲＡＭ領域およびＲＯＭ領域を含んで構成される。テキストデータ記録ＤＢ６および文字コード記録ＤＢ１２は、記憶装置１０２またはメモリ１０３に作成される。
【０１００】
読み取り装置１０４は、ＣＰＵ１０１の指示に従って可搬型記録媒体１０５にアクセスする。可搬型記録媒体１０５は、例えば、半導体デバイス（ＰＣカード等）、磁気的作用により情報が入出力される媒体、光学的作用により情報が入出力される媒体などにより実現される。通信インタフェース１０６は、ＣＰＵ１０１の指示に従ってネットワークを介してデータを送受信する。入出力装置１０７は、例えば、ユーザからの指示を受け付けるデバイス等に相当する。
【０１０１】
実施形態に係わるＷｅｂアプリケーション連携プログラムは、例えば、下記の形態で提供される。
（１）記憶装置１０２に予めインストールされている。
（２）可搬型記録媒体１０５により提供される。
（３）プログラムサーバ１１０からダウンロードする。
【０１０２】
そして、上記構成のコンピュータシステムでＷｅｂアプリケーション連携プログラムを実行することにより、実施形態に係る中継サーバ（例えば、データ受信部５、データ注入部７、文字コード判定部１１、文字コード変換部１３、スクリプト注入部１４、３１、文字コード推定部２１）が実現される。すなわち、Ｗｅｂアプリケーション連携プログラムを実行することにより、Ｗｅｂアプリケーション連携装置として動作する中継サーバが実現される。
【符号の説明】
【０１０３】
１  クライアント（Ｗｅｂブラウザ）
２（２Ａ、２Ｂ）  Ｗｅｂサーバ
３、１０、２０、３０  中継サーバ
４  プロキシ部
５  データ受信部
６  テキストデータ記録ＤＢ
７  データ注入部
１１  文字コード判定部
１２  文字コード記録ＤＢ
１３  文字コード変換部
１４、３１  スクリプト注入部
１５  データ送信スクリプト
２１  文字コード推定部
３２  文字コード通知スクリプト
【図１】
0005565197.tif 000002
【図２】
0005565197.tif 000003
【図３】
0005565197.tif 000004
【図４】
0005565197.tif 000005
【図５】
0005565197.tif 000006
【図６】
0005565197.tif 000007
【図７】
0005565197.tif 000008
【図８】
0005565197.tif 000009
【図９】
0005565197.tif 000010
【図１０】
0005565197.tif 000011
【図１１】
0005565197.tif 000012
【図１２】
0005565197.tif 000013
【図１３】
0005565197.tif 000014
【図１４】
0005565197.tif 000015
【図１５】
0005565197.tif 000016
【図１６】
0005565197.tif 000017