(57)【要約】      （修正有）【課題】ネットワーク環境を設定する負荷を低減する。【解決手段】サービスを実行するフローを記述した第１の文書から、第２の文書と第３の文書を生成し、第１の装置に第２の文書を登録する。サービスが存在するネットワーク上の第２の装置に第３の文書を登録し、第１の装置が第２の文書を解釈して、第２の装置を呼び出す。そして、第１の装置から呼び出された第２の装置が第３の文書を解釈し呼び出したサービスの実行結果を第１の装置が受信する。【選択図】図６
2008234631.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク上にあるサービスを実行する方法であって、
サービスを実行するフローを記述した第１の文書から、第２の文書と第３の文書を生成する工程と、
第１の装置に前記第２の文書を登録する工程と、
前記サービスが存在するネットワーク上の第２の装置に前記第３の文書を登録する工程と、
前記第１の装置が前記第２の文書を解釈して、前記第２の装置を呼び出す工程と、
前記第１の装置から呼び出された前記第２の装置が前記第３の文書を解釈し呼び出したサービスの実行結果を前記第１の装置が受信する工程とを有することを特徴とするネットワーク上にあるサービスを実行する方法。
【請求項２】
前記生成する工程では、前記第１の文書に記述されているサービスを実行する装置のネットワークアドレスに基づいて前記第２の文書と第３の文書を生成することを特徴とする請求項１に記載のネットワーク上にあるサービスを実行する方法。
【請求項３】
前記第３の文書には前記サービスが記述され、前記第２の文書には前記サービスを呼び出す手順が記述されることを特徴とする請求項１に記載のネットワーク上にあるサービスを実行する方法。
【請求項４】
前記生成する工程は、前記第１の装置によって実行されることを特徴とする請求項１に記載のネットワーク上にあるサービスを実行する方法。
【請求項５】
フロー処理装置であって、
サービスを実行するフローを記述した第１の文書から、第２の文書と第３の文書を生成する生成手段と、
第１の装置に前記第２の文書を登録する手段と、
前記サービスが存在するネットワーク上の第２の装置に前記第３の文書を登録する手段と、
前記第１の装置が前記第２の文書を解釈して、前記第２の装置を呼び出す手段と、
前記第１の装置から呼び出された前記第２の装置が前記第３の文書を解釈し呼び出したサービスの実行結果を前記第１の装置が受信する手段とを有することを特徴とするフロー処理装置。
【請求項６】
前記生成手段は、前記第１の文書に記述されているサービスを実行する装置のネットワークアドレスに基づいて前記第２の文書と第３の文書を生成することを特徴とする請求項５に記載のフロー処理装置。
【請求項７】
前記第３の文書には前記サービスが記述され、前記第２の文書には前記サービスを呼び出す手順が記述されることを特徴とする請求項５に記載のフロー処理装置。
【請求項８】
請求項１乃至４の何れか１項に記載のネットワーク上にあるサービスを実行する方法をコンピュータに実行させるためのプログラム。
【請求項９】
請求項８に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク上にあるサービスを実行する方法及びフロー処理装置に関する。
【背景技術】
【０００２】
従来、フロー処理装置がフロー記述文書を用いて複数のサービスをサービス実行装置に実行させる場合、フロー処理装置と同一ネットワークに接続されているサービス実行装置のサービスを記述するのが一般的である。
【０００３】
例えば、特許文献１には、サービス連携処理をいくつかに分割し、それぞれ分割した単位の処理をサブルーチン指示書と、各サブルーチン指示書の実行を制御する内容が記述されたメインルーチン指示書を作成するサービス連携処理システムが開示されている。
【特許文献１】特開２００５−１７３８９２
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、例えばファイアウォールで遮断された２つのネットワークに配置された別々のサービスを利用したフロー処理をフロー記述文書に記述した場合、以下のような問題がある。
【０００５】
例えば、特定のアドレスから特定のアドレスへの通信を許可するようにファイアウォールに設定し、セキュリティレベルを下げれば、フロー処理装置から直接サービス実行装置に指示を送ることができる。しかしながら、セキュリティレベルを下げる設定をファイアウォールの内側に配置された全てのサービスに向けて設定しなくてはいけないので、フロー記述文書を定義する毎にファイアウォールの設定を変更する必要がある。
【０００６】
これでは運用時、特に新規のフロー記述文書を実行する際には、ファイアウォール等のネットワーク環境の再設定が必要になってしまう。
【０００７】
また、ファイアウォールを通過可能なプロトコル（例えばSMTP）をフロー処理装置からサービス実行装置への通信に利用することも可能であるが、サービスで利用されているプロトコルは一般的にHTTPが使われているので、次のような問題があった。
【０００８】
フロー処理装置から利用されるサービス実行装置では、SMTPでも処理可能なように設定変更を行う必要があり、新規にフロー記述文書を実行する際には、運用時のネットワーク環境の設定が必要になる。
【０００９】
本発明は、ネットワーク環境を設定する負荷を低減することを目的とする。
【課題を解決するための手段】
【００１０】
本発明は、ネットワーク上にあるサービスを実行する方法であって、サービスを実行するフローを記述した第１の文書から、第２の文書と第３の文書を生成する工程と、第１の装置に前記第２の文書を登録する工程と、前記サービスが存在するネットワーク上の第２の装置に前記第３の文書を登録する工程と、前記第１の装置が前記第２の文書を解釈して、前記第２の装置を呼び出す工程と、前記第１の装置から呼び出された前記第２の装置が前記第３の文書を解釈し呼び出したサービスの実行結果を前記第１の装置が受信する工程とを有することを特徴とする。
【００１１】
また、本発明は、フロー処理装置であって、サービスを実行するフローを記述した第１の文書から、第２の文書と第３の文書を生成する生成手段と、第１の装置に前記第２の文書を登録する手段と、前記サービスが存在するネットワーク上の第２の装置に前記第３の文書を登録する手段と、前記第１の装置が前記第２の文書を解釈して、前記第２の装置を呼び出す手段と、前記第１の装置から呼び出された前記第２の装置が前記第３の文書を解釈し呼び出したサービスの実行結果を前記第１の装置が受信する手段とを有することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、ネットワーク環境を設定する負荷を低減することができる。
【発明を実施するための最良の形態】
【００１３】
以下、図面を参照しながら発明を実施するための形態について詳細に説明する。
【００１４】
まず、複数のフロー処理装置と複数のサービス実行装置とを含むフロー処理システムの構成を、図１を参照して説明する。
【００１５】
図１は、本実施形態におけるフロー処理システムの構成の一例を示すブロック図である。図１に示す各ブロックに相当する装置は単一のコンピュータで実現しても良いし、必要に応じて複数のコンピュータに各機能を分散して実現するようにしても良い。
【００１６】
図１において、１０１ａ、ｂはネットワークであり、後述するファイアウォール１０２により２つに分けられている。この例では、１０１ａをファイアウォール１０２の外部ネットワークとし、１０１ｂをファイアウォール１０２の内部ネットワークとする。１０２はファイアウォールであり、内部ネットワーク１０１ｂと外部ネットワーク１０１ａとの間の通信を制御し、内部ネットワーク１０１ｂの安全を維持するものである。尚、ファイアウォール１０２の詳細な説明は省略する。
【００１７】
１０３ａ、ｂはフロー処理装置であり、フロー記述文書を解釈して実行する。ここで、フロー記述文書とは、WS-BPELのようなサービス連携を実行可能な形式で記述した文書である。また、WS-BPELはWeb Services Business Process Execution Languageの略である。
【００１８】
１０４ａ、ｂ、ｃはサービス実行装置であり、例えばプリント、ストレージ、撮影、画像変換などの各種サービスをネットワーク上のＷｅｂサービスとして実行し、実行結果をフロー処理装置１０３ａ、ｂに提供する。
【００１９】
尚、内部ネットワーク１０１ｂに接続する装置には添え字「ｂ」、「ｃ」を付し、外部ネットワーク１０１ａに接続する装置には添え字「ａ」を付してフロー処理装置１０３やサービス実行装置１０４を個々に区別する。
【００２０】
また、この例では、サービス実行装置１０４ａはサービスＳ１を実行し、サービス実行装置１０４ｂはサービスＳ２を実行し、サービス実行装置１０４ｃはサービスＳ３を実行するものとする。
【００２１】
図２は、図１に示すフロー処理装置１０３ａ、ｂの構成の一例を示すブロック図である。以降、フロー処理装置１０３ａ、ｂをフロー処理装置１０３と総称する。図２において、２０１は制御部であり、ＣＰＵ、ＲＯＭ、ＲＡＭ、及び周辺機器で構成され、フロー処理装置１０３全体を制御する。２０２は入力部であり、キーボードやマウスなどを接続するためのインターフェースを含み、フロー処理装置１０３への指示や各種入力を制御する。２０３は出力部であり、ディスプレイなどを接続するためのインターフェースを含み、フロー処理装置１０３の状態や処理結果などの出力を制御する。
【００２２】
２０４は通信制御部であり、ネットワークとの間で通信するためのインターフェースを含み、サービス実行装置１０４ａ、ｂ、ｃとの通信を制御する。２０５は大容量記憶装置（ＨＤ）へのアクセスを制御するインターフェースを含む記憶部である。そして、２１０はシステムバスであり、上述の各部を接続する。
【００２３】
次に、フロー処理装置１０３ａで解釈され、実行されるフロー記述文書を、図３を用いて説明する。尚、フロー記述文書は予めフロー処理装置１０３ａのハードディスクなどの記憶部２０５に記憶されていても良く、或いはネットワーク１０１ａ、ｂ上に接続された他の機器により配置されたものでも良い。
【００２４】
図３は、本実施形態におけるフロー記述文書の一例を模式的に表した図である。図３に示す例では、フロー記述文書３０１には、サービスＳ１を実行した後に、サービスＳ２を実行し、更にサービスＳ３を実行するフローが記述されている。ここで、サービスＳ１〜Ｓ３は、それぞれ図１に示すサービス実行装置１０４ａ〜１０４ｃで実行されるサービスに対応する。また、サービスＳ１〜Ｓ３には各サービスの呼び出し先アドレスが書かれている。
【００２５】
一般的に、この種のファイアウォール１０２では、外部ネットワーク１０１ａから内部ネットワーク１０１ｂへの通信は特定のプロトコル、特定のアドレスの特定のポートへの通信、その両方の組み合わせ以外は禁止していることが多い。これは、通常の設定では、外部ネットワーク１０１ａに接続するフロー処理装置１０３ａが内部ネットワーク１０１ｂ内のサービスを利用することができないということを意味する。
【００２６】
そこで、フロー処理装置１０３ａが内部ネットワーク１０１ｂ内のサービスを利用するには、まずファイアウォール１０２に独自の設定を行う。すなわち、外部ネットワーク１０１ａから内部ネットワーク１０１ｂ内のサービス実行装置１０４ｂ、１０４ｃが利用可能になるように、個別にファイアウォール１０２を設定する必要がある。
【００２７】
これは、内部ネットワーク１０１ｂ内のサービス実行装置１０４ｂ、ｃの数だけ、ファイアウォール１０２を通過させる口を開けることを意味し、内部ネットワーク１０１ｂのセキュリティを著しく低下させる。また、予め利用するサービスが全て決定されていれば問題ないが、通常はフロー記述文書に記述するサービスを予め全て決定しておくことは困難である。
【００２８】
そのため、新しくフロー記述文書を記述する毎に、内部ネットワーク１０１ｂに属する新しいサービス実行装置１０４ｂ、１０４ｃの利用があれば、ファイアウォール１０２の設定を追加する必要があり、運用時の負荷が発生する。
【００２９】
図４は、図３に示すフロー記述文書３０１を分割した場合の一例を示す模式図である。図４に示すように、まず部分フロー記述文書４０２として内部ネットワーク１０１ｂ側で実行されるサービスＳ２とサービスＳ３とを記述しておく。そして、その部分フロー記述文書４０２で提供されるサービスの呼び出し手順を、分割後の全体フロー記述文書４０１に追加する。
【００３０】
このように、本実施形態では、フロー記述文書３０１を全体フロー記述文書４０１と部分フロー記述文書４０２に分割する。また、分割後の全体フロー記述文書４０１には、部分フロー記述文書４０２に従って提供されるサービスの呼び出し手順だけを記述しておく。そして、実際のサービスの実行は、別のフロー処理装置に指示するようにする。
【００３１】
図８、図９、図１０に、フロー記述文書（第１の文書）３０１、全体フロー記述文書（第２の文書）４０１、部分フロー記述文書（第３の文書）４０２のそれぞれの例を示す。
【００３２】
図８に示すフロー記述文書３０１中でinvoke要素のInvoke-2とInvoke-3が図１０に示す部分フロー文書に委譲する。そのため、図９に示す全体フロー記述文書からはInvoke-2とInvoke-3が消え、新しいinvokeSubProcessというinvoke要素が部分文書呼び出し用に挿入される。また、部分フロー記述文書にはフロー記述文書３０１にあったInvoke-2とInvoke-3が記述される。
【００３３】
次に、フロー処理システムにおいて、フロー記述文書によりサービスの実行を指示する実行指示方法を、図５及び図６を用いて説明する。
【００３４】
図５は、第１のフロー処理の実行手順を示す模式図である。まず、ステップ５０１で予めフロー記述文書３０１をフロー処理装置１０３ａに配置しておく。次に、ステップ５０２でフロー記述文書３０１に記述されたフロー処理の実行を要求するリクエストを受信すると、フロー処理装置１０３ａは、ステップ５０３でネットワーク１０１ａ上のサービスＳ１を実行する。次に、ステップ５０４でファイアウォール１０２の内部にあるサービスＳ２を実行し、ステップ５０５で同様に、ファイアウォール１０２の内部にあるサービスＳ３を実行する。そして、ステップ５０６で実行結果を送信し、このフロー処理の実行を終了する。
【００３５】
ここで、ステップ５０４及び５０５でフロー処理装置１０３ａがファイアウォール１０２の内部と通信を行うため、予めファイアウォール１０２の設定としてステップ５０４及び５０５で通信が行える環境を設定しておかなくてはならない。
【００３６】
また、この例では、２つのサービス（Ｓ２及びＳ３）に対する設定をファイアウォール１０２に行っているが、内部ネットワークに属するサービスが、Ｓ４、Ｓ５、Ｓ６、…と増えていく毎にファイアウォール１０２を通過可能な設定を増やしていく必要がある。
【００３７】
図６は、第２のフロー処理の実行手順を示す模式図である。まず、ステップ６０１で、フロー記述文書３０１が、ファイアウォール１０２の外部ネットワーク１０１ａに接続されるフロー処理装置１０３ａに配置されると、ステップ６０２で登録情報との比較を行う。具体的には、図７に示す委譲先フロー処理装置情報７００に登録されている情報と、フロー記述文書３０１に記述されているサービスの呼び出し先アドレス情報とを比較する。委譲先フロー処理装置情報７００は、記憶部２０５に記憶されている。ネットワーク１０１ａ、ｂ上に接続された他の機器に記憶された委譲先フロー処理装置情報７００を、フロー処理装置１０３ａが参照するようにしてもよい。この委譲先フロー処理装置情報７００には、ネットワークアドレス情報７０１、サブネットマスク７０２、フロー処理装置アドレス情報７０３が含まれる。
【００３８】
そして、フロー記述文書３０１に記述されているサービスの呼び出し先アドレスが委譲先フロー処理装置情報７００に登録されているネットワークに含まれているか否かを判定する。判定した結果、呼び出し先アドレスが委譲先フロー処理装置情報７００のネットワークアドレス情報７０１、サブネットマスク７０２より決定されるネットワーク（例えば、ネットワーク１０１ｂ）に含まれていれば、ステップ６０３へ進む。ステップ６０３では、フロー記述文書３０１に記述されているサービスを抽出し、部分フロー記述文書４０２を作成する。
【００３９】
また、フロー記述文書３０１から抽出されたサービスを削除し、部分フロー記述文書４０２を呼び出すための呼び出し先アドレスを含む呼び出し記述を追加した、全体フロー記述文書４０１を作成する。この呼び出し先アドレスは、フロー処理装置１０３ａが移譲先フロー処理装置を呼び出すために用いられる。この呼び出し先アドレスで呼び出された移譲先フロー処理装置は、部分フロー記述文書４０２を実行する。その後、ステップ６０４で、分割後の全体フロー記述文書４０１をフロー処理装置１０３ａの記憶部２０５上に再配置する。
【００４０】
次に、ステップ６０５で、予め確保されたネットワーク経由で、ネットワークアドレス情報７０１とサブネットマスク７０２から決定されたフロー処理装置（移譲先フロー処理装置）１０３ｂに対して、部分フロー記述文書４０２を送信する。部分フロー記述文書４０２を送信するためのプロトコルは、ＳＭＴＰである。また、ＨＴＴＰで特定のアドレスの特定のポートに送信してもよい。このフロー処理装置１０３ｂのアドレス情報７０３は、ネットワークアドレス情報７０１とサブネットマスク７０２に対応して記憶されている。一方、フロー処理装置１０３ｂが部分フロー記述文書４０２をフロー処理装置１０３ａから受信すると、ステップ６０６でその部分フロー記述文書４０２を記憶部２０５上に配置する。なお、全体フロー記述文書４０１、部分フロー記述文書４０２は、フロー処理装置１０３ａ以外の装置で生成して、フロー処理装置１０３ａ、１０３ｂに配置するようにしてもよい。
【００４１】
次に、ステップ６０７で実際にフローを呼び出すためのリクエストを受信すると、フロー処理装置１０３ａは、ステップ６０８で全体フロー記述文書４０１に記述されているサービスＳ１を実行する。このリクエストは、ネットワーク１０１ａ内から受信する。また、このリクエストは、フロー処理装置１０３ａの入力部２０２から受信してもよい。サービスＳ１を実行するために、フロー処理装置１０３ａは、サービス実行装置１０４ａを呼び出す。サービス実行装置１０４ａを呼び出すためのプロトコルは、ＨＴＴＰである。
【００４２】
次に、予めファイアウォール１０２の設定で確保されているポートとアドレスとを利用して、ステップ６０９でファイアウォール１０２の内部ネットワーク１０１ｂに接続されているフロー処理装置１０３ｂを呼び出すリクエストを送信する。このリクエストの送信先は、全体フロー記述文書４０１に記述された、部分フロー記述文書４０２を呼び出すための呼び出し先アドレスである。このリクエストを送信するためのプロトコルは、ＳＭＴＰである。また、ＨＴＴＰで特定のアドレスの特定のポートに送信してもよい。
【００４３】
一方、ステップ６１０で、フロー処理装置１０３ｂがリクエストを受信すると、上述のステップ６０６で配置された部分フロー記述文書４０２に記述されているフロー処理に従い、サービスの実行を行う。まず、ステップ６１１でサービス実行装置１０４ｂを呼び出してサービスＳ２を実行させ、次のステップ６１２でサービス実行装置１０４ｃを呼び出してサービスＳ３を実行させる。サービス実行装置１０４ｂ、ｃを呼び出すためのプロトコルは、ＨＴＴＰである。そしてステップ６１３で、サービスＳ２、Ｓ３の実行が終了すると、それぞれの実行結果をフロー処理装置１０３ａに送信する。この実行結果を送信するためのプロトコルは、ＨＴＴＰである。
【００４４】
これにより、ステップ６１４で、フロー処理装置１０３ａがサービスＳ２、Ｓ３の結果を受信すると、ステップ６１５で、サービスＳ２、Ｓ３の結果をサービスＳ１の結果と合わせて、全体の結果としてリクエスト先に送信する。リクエスト先は、ネットワーク１０１ａ内に存在する。フロー処理装置１０３ａ自身がリクエスト先の場合、サービスの結果を出力部２０３に出力する。
【００４５】
本実施形態によれば、通信はフロー処理装置同士に抑えられ、呼び出しサービスの増加やサービスの呼び出しポイントが変わった場合にも、システムを配置した時点での設定をそのまま利用でき、運用時に負荷も発生することがない。また、セキュリティといった点でも決まったノード間の通信だけになるので、サービスの追加の度にファイアウォールに通過可能なポイントを作る必要がなくなり、セキュリティの低下も回避できる。
【００４６】
本実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（ＣＰＵ若しくはＭＰＵ）が記録媒体に格納されたプログラムコードを読出し実行する。これによっても、本発明の目的が達成される。
【００４７】
この場合、コンピュータ読み取り可能な記録媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成する。
【００４８】
このプログラムコードを供給するための記録媒体として、例えばフレキシブルディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。
【００４９】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、次の場合も含まれる。即ち、プログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理により前述した実施形態の機能が実現される場合である。
【００５０】
更に、記録媒体から読出されたプログラムコードがコンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込む。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理により前述した実施形態の機能が実現される場合も含まれる。
【図面の簡単な説明】
【００５１】
【図１】本実施形態におけるフロー処理システムの構成の一例を示すブロック図である。
【図２】図１に示すフロー処理装置１０３の構成の一例を示すブロック図である。
【図３】本実施形態におけるフロー記述文書の一例を模式的に表した図である。
【図４】図３に示すフロー記述文書３０１を分割した場合の一例を示す模式図である。
【図５】第１のフロー処理の実行手順を示す模式図である。
【図６】第２のフロー処理の実行手順を示す模式図である。
【図７】本実施形態における委譲先フロー処理装置情報７００の構成の一例を示す図である。
【図８】フロー記述文書３０１の例を示す図である。
【図９】親文書４０１の例を示す図である。
【図１０】部分文書４０２の例を示す図である。
【符号の説明】
【００５２】
１０１  ネットワーク
１０２  ファイアウォール
１０３  フロー処理装置
１０４  サービス実行装置
２０１  制御部
２０２  入力部
２０３  出力部
２０４  通信制御部
２０５  記憶部
【図１】
2008234631.tif 000003
【図２】
2008234631.tif 000004
【図３】
2008234631.tif 000005
【図４】
2008234631.tif 000006
【図５】
2008234631.tif 000007
【図６】
2008234631.tif 000008
【図７】
2008234631.tif 000009
【図８】
2008234631.tif 000010
【図９】
2008234631.tif 000011
【図１０】
2008234631.tif 000012