(57)【要約】【課題】  Web上で提供される複合文書を編集するシステムにおいて、Web複合文書中に埋め込まれた子文書に対して、ローカルなコンピュータに事前にWebアプリケーションをインストールしておく必要がなく、子文書に対して分散編集を行うことができるようにすることを目的とする【解決手段】  提供されたWeb複合文書に含まれる子文書に対する編集の指示があったとき、当該子文書に含まれている当該子文書を編集するためのプログラムを識別するエディタ名を読み出す。そして、読み出したエディタ名に一致するエディタ名を持つWebサービスをネットワーク上から検索することにより、該Webサービスの位置を取得する。さらに、取得した位置に存在するWebサービスを利用して前記子文書の編集を行う。【選択図】  図１
2005346286.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介してWebサーバコンピュータからクライアントコンピュータ上のWebブラウザに送信され表示されたWeb複合文書を編集するWeb複合文書の編集方法であって、
前記クライアントコンピュータが、
提供されたWeb複合文書に含まれる子文書に対する編集の指示があったとき、当該子文書に含まれている、当該子文書を編集するためのプログラムを識別するエディタ名を、読み出すステップと、
読み出したエディタ名に一致するエディタ名を持つWebサービスをネットワーク上から検索することにより、該Webサービスの位置を取得するステップと、
取得した位置に存在するWebサービスを利用して前記子文書の編集を行うステップと
を実行することを特徴とするコンピュータを用いたWeb複合文書の編集方法。
【請求項２】
ネットワークを介してWebサーバコンピュータからクライアントコンピュータ上のWebブラウザに送信され表示されたWeb複合文書を編集するWeb複合文書の編集方法であって、
あらかじめ、Webサービスのエディタ名及び該Webサービスが提供するサービス内容を記述したサービス記述の位置が、Webサービスを検索するための検索サービスに、登録されており、
前記クライアントコンピュータが、
提供されたWeb複合文書に含まれる子文書に対する編集の指示があったとき、当該子文書に含まれている、当該子文書を編集するためのプログラムを識別するエディタ名を、読み出すステップと、
読み出したエディタ名に一致するエディタ名を前記検索サービスにより検索し、前記エディタ名のWebサービスのサービス記述のネットワーク上の位置を取得し、該サービス記述を取得するステップと、
取得したサービス記述の記述内容に基づいて、前記Webサービスを呼び出すためのスタブプログラムを生成するステップと、
生成したスタブプログラムを用いて前記Webサービスを呼び出すことにより、前記子文書の編集を行うステップと
を実行することを特徴とするコンピュータを用いたWeb複合文書の編集方法。
【請求項３】
Webブラウザが動作するクライアントコンピュータ上で実行され、Web複合文書の編集処理を行うためのミドルウェアである、Web複合文書の編集処理をサポートする、プログラムであって、
前記クライアントコンピュータを、
前記Webブラウザ上に表示されているWeb複合文書に含まれる子文書に対する編集の指示を受けたとき、当該子文書に含まれている、当該子文書を編集するためのプログラムを識別するエディタ名を、読み出す手段、
読み出したエディタ名に一致するエディタ名を、ネットワーク上でWebサービスを検索するための検索サービスにより検索し、前記エディタ名のWebサービスのサービス記述のネットワーク上の位置を取得し、該サービス記述を取得する手段、
取得したサービス記述の記述内容に基づいて、前記Webサービスを呼び出すためのスタブプログラムを生成する手段、および
生成したスタブプログラムを用いて前記Webサービスを呼び出すことにより、前記子文書の編集を行う手段
として機能させることを特徴とするWeb複合文書の編集処理をサポートするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Web複合文書を編集するシステムにおいて、Web複合文書中に埋め込まれた子文書を分散編集する技術に関する。Web複合文書は、親文書中に１つ以上の子文書を包含し、Webのインフラを使って提供する文書である。
【背景技術】
【０００２】
Webインフラの普及により、スタンドアロンアプリケーションやクライアントサーバアプリケーションのWebアプリケーション化が進んでいる。Webアプリケーションは、HTML文書などのコンテンツをWebブラウザで閲覧し、編集する機能を提供する。HTML文書は、文字列を入力するためのテキストボックスや、複数の選択肢から項目を選択するドロップメニューなどのユーザインタフェースを提供する。
【０００３】
しかし、HTML文書が提供するユーザインタフェースは、スタンドアロンアプリケーションやクライアントサーバアプリケーションと同等のユーザビリティを提供するには機能不足である。例えば、Visual Basic（マイクロソフト社の製品名）で開発されたスタンドアロンアプリケーションと同等のユーザビリティをHTML文書で提供することは困難である。Webアプリケーションでスタンドアロンアプリケーションと同等のユーザビリティを提供する方法のひとつとして、HTML文書中に高度なユーザビリティを提供する子文書を埋め込み、複合文書とする方法がある。例えば、HTML文書中に、表計算やスライドなどの子文書を埋め込み、各子文書を編集するための専用のアプリケーションを利用して高度なユーザビリティを提供するものである。
【０００４】
図６は、Web複合文書をローカルコンピュータ上で編集する従来の方法を示す図である。Webサーバ６０５は、Web複合文書６０６をWebブラウザ６００へ配信する。６０２は、配信されWebブラウザ６００により表示されたWeb複合文書を示す。このWeb複合文書６０２（６０６）は、子文書Ａ６０３及び子文書Ｂ６０４を包含するものとする。子文書Ａ６０３及び子文書Ｂ６０４は、Webブラウザ６００が動作しているコンピュータと同一のコンピュータ上にインストールされたアプリケーションＡ６０７及びアプリケーションＢ６０８で編集することができる。下記特許文献１には、図６に示した方法が開示されている。
【０００５】
図７は、Web複合文書をリモートコンピュータ上で編集する従来の方法を示す図である。Webサーバ７０５は、Web複合文書７０６をWebブラウザ７００へ配信する。７０２は、配信されWebブラウザ７００により表示されたWeb複合文書を示す。このWeb複合文書７０２（７０６）は、子文書Ａ７０３及び子文書Ｂ７０４を包含するものとする。子文書Ａ７０３及び子文書Ｂ７０４は、Webサーバ７０５が動作しているコンピュータと同一のコンピュータ上にインストールされたWebアプリケーションＡ７０９及びWebアプリケーションＢ７１０で編集することができる。
【０００６】
図８は、図６や図７のシステムで使用するWeb複合文書のデータ構造を示す。Web複合文書８０１は、子文書８０２を含んでいる。子文書８０２は、子文書としてのデータの本体部分８０３のほか、子文書を編集するためのプログラムの固定的な位置を示すアドレス８０４を含む。このアドレス８０４は、図６のシステムで使用するWeb複合文書であれば当該子文書を編集するためのプログラムのローカルなアドレスであり、図７のシステムで使用するWeb複合文書であれば当該子文書を編集するためのプログラムの位置を示すURLなどである。
【特許文献１】特開平８−１０１８３０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、図６の技術では、Webブラウザ６００上でWeb複合文書６０２を編集することはできるものの、事前にWebブラウザ６００が動作するクライアントコンピュータ６０上に子文書Ａ６０３を編集するためのアプリケーションＡ６０７をインストールしておく必要があり、全ての種類の子文書を編集するためのアプリケーションを、事前にインストールしておくことは困難であるという問題がある。
【０００８】
また、図７の技術では、事前に子文書を編集するアプリケーションをインストールしておく必要はないものの、子文書Ａ７０３はWebアプリケーションＡ７０９の位置を知っている必要があり、その位置情報は固定的なものである。例えば、図８で説明したように、子文書８０２が持つアドレス情報８０４は固定的なURLである。従って、例えばWebアプリケーションＡ７０９の位置を示す固定的なURLが子文書内に設定されているため、同様の機能を持つ他のWebアプリケーションに乗り換えることは容易ではない。言い替えると、Webアプリケーションを分散化させることができないという問題がある。将来的にはWebアプリケーションの形式で各種の機能を外部に提供するビジネスなどが盛んになると考えられ、子文書を処理するためのWebアプリケーションについても柔軟に切り換えができるような環境を整え、子文書に対して分散編集を行うことができるようにすることが重要になってきている。
【０００９】
本発明の目的は、Web上で提供される複合文書を編集するシステムにおいて、Web複合文書中に埋め込まれた子文書に対して、ローカルなコンピュータに事前にWebアプリケーションをインストールしておく必要がなく、子文書に対して分散編集を行うことができるようにすることにある。
【課題を解決するための手段】
【００１０】
上記目的を達成するために、本発明は、複合文書中に埋め込まれた子文書を、編集時にネットワーク経由で動的に連結した編集Webサービスを利用して分散編集することを特徴とする。また、複合文書中に埋め込まれた子文書を、編集時に検索Webサービスを用いて編集Webサービスを発見し、ネットワーク経由で動的に連結した編集Webサービスを利用して分散編集することを特徴とする。
【００１１】
すなわち本発明では、提供されたWeb複合文書に含まれる子文書に対する編集の指示があったとき、当該子文書に含まれている当該子文書を編集するためのプログラムを識別するエディタ名を読み出す。そして、読み出したエディタ名に一致するエディタ名を持つWebサービスをネットワーク上から検索することにより、該Webサービスの位置を取得する。さらに、取得した位置に存在するWebサービスを利用して前記子文書の編集を行う。
【００１２】
検索サービスには、あらかじめ、Webサービスのエディタ名及び該Webサービスが提供するサービス内容を記述したサービス記述の位置を登録しておく。子文書に対する編集の指示があったとき、当該子文書に含まれている当該子文書を編集するためのプログラムを識別するエディタ名を読み出し、読み出したエディタ名に一致するエディタ名を前記検索サービスにより検索し、前記エディタ名のWebサービスのサービス記述のネットワーク上の位置を取得し、該サービス記述を取得する。取得したサービス記述の記述内容に基づいて、前記Webサービスを呼び出すためのスタブプログラムを生成し、生成したスタブプログラムを用いて前記Webサービスを呼び出すことにより前記子文書の編集を行う。
【発明の効果】
【００１３】
本発明によれば、Web上で提供される複合文書を編集するシステムにおいて、Web複合文書中に埋め込まれた子文書を編集する際に、事前にWebブラウザが動作するコンピュータ上に子文書を編集するためのアプリケーションをインストールせずに子文書を編集することができる。
【００１４】
また、子文書を編集するために必要なプログラムをWebサービス化し、そのWebサービスを検索サービスのレジストリなどに登録することにより、動的にWebサービスを検索して発見することが可能になるため、Web複合文書を作成する際に、Webサービスの位置を特定する必要がなくなり、Webサービスを複数のサーバに分散配置させることが可能になる。子文書を編集するプログラムをWebサービス化して分散配置することにより、第三者が公開するWebサービスを、子文書を編集するプログラムとして利用することができ、Web複合文書の生産性が向上する。
【００１５】
また、本発明によれば、Webサービスを利用するためのクライアント側のプログラムを個別に作成する必要がない。従来技術でも、個別にWebサービスを利用するためのクライアント側のプログラムを作成して組み込んでおけば、クライアントからWebサービスを利用することはできた。しかし、そのようなプログラムを作成するのは面倒である。本発明では、後述する実施形態のミドルウェアのようなプログラムをクライアントに組み込んでおけば、Web複合文書中の子文書を編集するためのWebサービスを、そのミドルウェアが探してきてくれるので、上述したような個別にWebサービスを利用するためのクライアント側のプログラムを作成する必要はない。さらに、Web複合文書に子文書を埋め込むときには、その子文書内に、その子文書を編集する機能を持つ一般的なエディタ名（例えば、「表計算ソフト」など）を含めれば良い。子文書を編集するWebサービスを変更したいときには、例えば、別の検索サービスでWebサービスを検索したり、検索サービスのレジストリに登録されている当該エディタ名に対応するサービス記述を書き替えればよい。従って、子文書中のエディタ名を変更することなく、その子文書を編集するWebサービスを切り換えることが容易に行える。
【発明を実施するための最良の形態】
【００１６】
以下、本発明を実施する場合の一形態を、図面を参照して具体的に説明する。
【００１７】
図１は、本発明の実施の一形態の複合Web文書のリモート編集システムの構成を示すブロック図である。本システムは、図１に示すように、Webサーバ１０５、クライアントコンピュータ１０、Webブラウザ１００、ミドルウェア１０７、ブローカ１０８、レジストリ１０９、WebサービスＡ１１０、及びWebサービスＢ１１１を備える。ミドルウェア１０７は、Webブラウザ１００と同様にクライアントコンピュータ１０のメモリ（図示しない）で上で動作する。それ以外の各部は、ネットワーク１０１に接続された異なるコンピュータ上で動作する。Webサーバ１０５、Webブラウザ１００とミドルウェア１０７の組、ブローカ１０８、レジストリ１０９、WebサービスＡ１１０、及びWebサービスＢ１１１は、それぞれ、ネットワーク１００に接続した異なるコンピュータ上で動作する。
【００１８】
Webサーバ１０５は、Web複合文書１０６を、Webブラウザ１００へHTTPプロトコルで提供する。Webブラウザ１００は、Webサーバ１０５から提供されたWeb複合文書１０２を画面へ表示する。Web複合文書１０２には、子文書Ａ１０３と子文書Ｂ１０４が包含されている。ミドルウェア１０７は、Webブラウザ１００のプラグインなどの形態で密に結合し、Webブラウザ１００の一部として動作する。ユーザがWebブラウザ１００の画面上でWeb複合文書１０２の子文書Ａ１０３を編集することを指定すると、ミドルウェア１０７は、SOAPプロトコルでブローカ１０８に対して、子文書Ａ１０３を編集するために必要なWebサービスＡ１１０の検索を依頼する。ブローカ１０８は、レジストリ１０９を検索し、WebサービスＡ１１０の位置を発見して、ミドルウェア１０７へ通知する。ミドルウェア１０７は、WebサービスＡ１１０を利用して子文書Ａ１０３を編集する機能をWebブラウザ１００に提供する。子文書Ｂ１０４の編集が指示された場合も同様である。
【００１９】
図２は、図１のシステムで使用するWeb複合文書のデータ構造を示す。Web複合文書１０２は、子文書１０３を含んでいる。子文書１０３は、子文書としてのデータの本体部分２０１のほか、子文書を編集するためのプログラムを識別する名前であるエディタ名２０２を含む。
【００２０】
図３は、動的に子文書を編集するWebサービスをWebブラウザへ連結する方法を説明するためのブロック図である。図１と同じ部分は同じ番号で示すものとする（以下同様）。Web複合文書１０２は、子文書１０３を包含する、子文書１０３は、当該子文書１０３を編集可能なWebサービス１１０を識別するユニークなエディタ名２０２を保有する。子文書１０３を編集可能なWebサービス１１０は、当該Webサービス１１０が提供するサービス内容をWSDL(Web Service Description Language)などで記述したサービス記述３１１、及び当該Webサービス１１０を識別するユニークなエディタ名３１２を保有する。
【００２１】
図３により、本実施形態のシステムの動作の概要を説明する。まず、Webサービス１１０は、あらかじめ、そのエディタ名３１２及びそれに対応するサービス記述３１１の位置（サービス記述３１１はWebサービス１１０の位置情報を含んでいる）を、UDDI(Universal Description, Discovery and Integration of Web Services)のようなレジストリ１０９へ登録しておく（ステップ３０１）。
【００２２】
ユーザが、Webブラウザ１００の画面上でWeb複合文書１０２の子文書Ａ１０３を編集することを指定すると、ミドルウェア１０７が起動し、子文書Ａ１０３中に含まれるエディタ名２０２を入力する（ステップ３０２）。ミドルウェア１０７は、ブローカ１０８に対してレジストリ１０９を検索し、ステップ３０２で入力したエディタ名２０２と一致するエディタ名３１２と結び付けられたサービス記述３１１の位置を発見する（ステップ３０３）。次に、ミドルウェア１０７は、ステップ３０３で発見したサービス記述３１１の位置から、当該サービス記述３１１をHTTPプロトコルで取得し、そのサービス記述３１１の記述内容を元にしてWebサービス１１０を利用するために必要な準備をする（ステップ３０４）。次に、ミドルウェア１０７は、Webサービス１１０を利用して、子文書１０３を編集する機能をWebブラウザ１００へ提供する。
【００２３】
次に、ミドルウェア１０７の機能について説明する。
【００２４】
図４は、ミドルウェア１０７の構造を説明するためのブロック図である。ミドルウェア１０７は、Webサービス制御機構４０１、Webサービス検索機構４０２、スタブ生成機構４０３、Webサービス呼出機構４０４、及びスタブ４０５とを備える。スタブ４０５は、スタブ生成機構４０３によって、動的に生成されたものである。
【００２５】
図５は、ミドルウェア１０７が、動的に子文書１０３を編集するWebサービス１１０をWebブラウザ１００へ連結する処理をフローチャートで示した図である。
【００２６】
図４と図５を参照してミドルウェア１０７の処理について説明する。ユーザがWebブラウザ１００の画面上でWeb複合文書１０２の子文書１０３を編集することを指定すると、ミドルウェア１０７が起動する。ミドルウェア１０７が起動すると、Webサービス制御機構４０１は、子文書１０３からエディタ名２０２を入力する（ステップ５０１）。次に、Webサービス制御機構４０１は、Webサービス検索機構４０２を呼び出して、ブローカ１０８に対してレジストリ１０９を検索し、エディタ名２０２と一致するエディタ名をもつサービス記述３１１の位置を発見する（ステップ５０２）。次に、エディタ名２０２と一致するエディタ名をもつサービス記述３１１の位置を発見できたかを判定し、発見できなかった場合は、処理を終了する（ステップ５０３）。
【００２７】
発見できた場合、Webサービス制御機構４０１は、スタブ生成機構４０３を呼び出して、サービス記述３１１の位置から、サービス記述３１１をHTTPプロトコルで取得する（ステップ５０４）。次に、スタブ生成機構４０３は、サービス記述３１１の記述内容を元にしてWebサービス１１０を利用するために必要なプログラムであるスタブ４０５を生成する（ステップ５０５）。次に、Webサービス制御機構４０１は、Webサービス呼出機構４０４を呼び出し、スタブ４０５を経由して、SOAPプロトコルでWebサービス１１０を利用して、子文書１０３を編集する機能をWebブラウザ１００へ提供する（ステップ５０６）。
【図面の簡単な説明】
【００２８】
【図１】本発明による複合Web文書のリモート編集システムの実施例を示すブロック図
【図２】本発明によるWeb複合文書のデータ構造を示す図
【図３】動的に子文書を編集するWebサービスを連結する方法を説明するための説明図
【図４】本発明によるミドルウェアの構造を示すブロック図
【図５】本発明によるミドルウェアの処理手順を示すフロ−チャート
【図６】従来の複合Web文書のローカル編集システムを示すブロック図
【図７】従来の複合Web文書のリモート編集システムを示すブロック図
【図８】従来のWeb複合文書のデータ構造を示す図
【符号の説明】
【００２９】
１００…Webブラウザ、１０１…ネットワーク、１０２…Web複合文書、１０３…子文書Ａ、１０４…子文書Ｂ、１０５…Webサーバ、１０６…Web複合文書、１０７…ミドルウェア、１０８…ブローカ、１０９…レジストリ、１１０…WebサービスＡ、１１１…WebサービスＢ、２０２…エディタ名、３１１…サービス記述、４０１…Webサービス制御機構、４０２…Webサービス検索機構、４０３…スタブ生成機構、４０４…Webサービス呼出機構、４０５…スタブ。
【図１】
2005346286.tif 000003
【図２】
2005346286.tif 000004
【図３】
2005346286.tif 000005
【図４】
2005346286.tif 000006
【図５】
2005346286.tif 000007
【図６】
2005346286.tif 000008
【図７】
2005346286.tif 000009
【図８】
2005346286.tif 000010