(57)【要約】  プロセッサとメモリを含む計算機を有する複数の拠点間でデータを処理する計算機システムであって、前記計算機は、データに所定の処理を行うアプリケーションと、前記アプリケーションの実行を管理する実行管理部と、前記アプリケーションの処理結果のデータについて外部への送信の可否を予め設定したデータ受渡しポリシーと、を有し、前記実行管理部は、前記アプリケーションが実行中に使用したデータの情報を送信データ情報として生成し、前記送信データ情報のデータを前記データ受渡しポリシー適用して、前記拠点の外部への送信の可否を判定する。
2021059564.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサとメモリを含む計算機を有する複数の拠点間でデータを処理する計算機システムであって、
前記計算機は、
データに所定の処理を行うアプリケーションと、
前記アプリケーションの実行を管理する実行管理部と、
前記アプリケーションの処理結果のデータについて外部への送信の可否を予め設定したデータ受渡しポリシーと、を有し、
前記実行管理部は、
前記アプリケーションが実行中に使用したデータの情報を送信データ情報として生成し、前記送信データ情報のデータに前記データ受渡しポリシーを適用して、前記拠点の外部への送信の可否を判定することを特徴とする計算機システム。
【請求項２】
請求項１に記載の計算機システムであって、
前記実行管理部は、
前記データが外部への送信が禁止されていると判定した場合、前記アプリケーションの処理結果の前記データに前記データ受渡しポリシーで予め設定された処理を適用することを特徴とする計算機システム。
【請求項３】
請求項２に記載の計算機システムであって、
前記予め設定された処理は、
前記データを予め設定されたダミーデータに置換することを特徴とする計算機システム。
【請求項４】
請求項３に記載の計算機システムであって、
前記予め設定された処理は、
前記外部への送信が禁止されたデータを予め設定されたダミーデータに置換したことを示す通知を出力することを特徴とする計算機システム。
【請求項５】
請求項１に記載の計算機システムであって、
前記データ受渡しポリシーは、前記アプリケーションの処理結果の送信先に応じて予め設定されたことを特徴とする計算機システム。
【請求項６】
請求項１に記載の計算機システムであって、
前記拠点の外部は、
当該拠点が所属する領域とは、データの流通に関する制限が異なる領域であることを特徴とする計算機システム。
【請求項７】
プロセッサとメモリを含む計算機を有する複数の拠点間でデータを処理する際にデータを制御するデータ制御方法であって、
前記計算機が、アプリケーションを実行してデータに所定の処理を行うデータ処理ステップと、
前記計算機が、前記アプリケーションが実行中に使用したデータの情報を送信データ情報として生成する実行管理ステップと、
前記計算機が、アプリケーションの処理結果のデータについて外部への送信の可否を予め設定したデータ受渡しポリシーを参照して、前記送信データ情報のデータについて前記拠点の外部への送信の可否を判定する判定ステップと、
を含むことを特徴とするデータ制御方法。
【請求項８】
請求項７に記載のデータ制御方法であって、
前記データが外部への送信が禁止されていると判定された場合、前記計算機が、前記アプリケーションの処理結果の前記データに前記データ受渡しポリシーで予め設定された処理を適用するフィルタリングステップを、
さらに含むことを特徴とするデータ制御方法。
【請求項９】
請求項８に記載のデータ制御方法であって、
前記予め設定された処理は、
前記データを予め設定されたダミーデータに置換することを特徴とするデータ制御方法。
【請求項１０】
請求項９に記載のデータ制御方法であって、
前記予め設定された処理は、
前記外部への送信が禁止されたデータを予め設定されたダミーデータに置換したことを示す通知を出力することを特徴とするデータ制御方法。
【請求項１１】
請求項７に記載のデータ制御方法であって、
前記データ受渡しポリシーは、前記アプリケーションの処理結果の送信先に応じて予め設定されたことを特徴とするデータ制御方法。
【請求項１２】
請求項７に記載のデータ制御方法であって、
前記拠点の外部は、
当該拠点が所属する領域とは、データの流通に関する制限が異なる領域であることを特徴とするデータ制御方法。
【請求項１３】
プロセッサとメモリを含む計算機を有する複数の拠点間でデータを処理する際にデータを制御させるためのプログラムを格納した記憶媒体であって、
アプリケーションを実行してデータに所定の処理を行うデータ処理ステップと、
前記アプリケーションが実行中に使用したデータの情報を送信データ情報として生成する実行管理ステップと、
アプリケーションの処理結果のデータについて外部への送信の可否を予め設定したデータ受渡しポリシーを参照して、前記送信データ情報のデータについて前記拠点の外部への送信の可否を判定する判定ステップと、
を前記計算機に実行させるためのプログラムを格納した非一時的な計算機読み取り可能な記憶媒体。
【発明の詳細な説明】
【参照による取り込み】
【０００１】
本出願は、令和１年（２０１９年）９月２５日に出願された日本出願である特願２０１９−１７４４７３の優先権を主張し、その内容を参照することにより、本出願に取り込む。
【技術分野】
【０００２】
本発明は、複数の拠点間でデータの授受を行う計算機システムに関する。
【背景技術】
【０００３】
ＩｏＴ（Ｉｎｔｅｒｎｅｔ  ｏｆ  Ｔｈｉｎｇｓ）の普及に伴い、ネットワークに接続されるデバイスが急増している。これらのデバイスからデータを収集、分析、可視化するデータ処理を介して、既存作業の高効率化、高精度化や新規サービスを創出につなげる動きが活発化している。【０００４】
産業分野においてもＩｏＴ技術の応用が加速しており、機器の監視や制御、製品の品質管理や作業員の作業管理、さらにはトレーサビリティや工程の最適化など様々なデータ処理をグローバルに展開する方法が検討又は実装されている。【０００５】
一方、近年では、データの流通に関して地域や国などが法令などにより制限を設ける例が増大しつつあり、例えば、欧州のＧＤＰＲ（Ｇｅｎｅｒａｌ  Ｄａｔａ  Ｐｒｏｔｅｃｔｉｏｎ  Ｒｅｇｕｌａｔｉｏｎ）や中国のサイバーセキュリティ法などが知られている。【０００６】
これらの制限は、個人情報の保護や犯罪行為の抑止などが目的で、データの保護に加えて、データの種類によっては国外などへの送信を禁止する規定が知られている。今後、様々な国や地域で、データの流通に関する制限が設定されることが想定されるが、制限されるデータの種類などについては、地域や国によって一様ではない。【０００７】
ＩｏＴを利用してグローバルに展開される機器のデータを収集し、加工、分析及び可視化の処理を行う場合、上述のような国や地域が定めたデータの流通に関する制限を顧慮する必要がある。【０００８】
データを処理する場所を考慮した例として、特許文献１が知られている。特許文献１は、アプリケーションを構成する処理ノードを複数のロケーションにデプロイする前に、どのようなデータを扱うかを取得して、各ロケーションで扱うことが可能なデータを考慮してデプロイの可否を判定し、デプロイできたロケーションにて処理を行う技術が開示されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】国際公開第２０１７／０８９９４３号
【発明の概要】
【発明が解決しようとする課題】
【００１０】
上記特許文献１では、アプリケーションの処理で利用するデータを扱うことが可能なロケーションにデプロイすることが開示されている。しかしながら、グローバルに展開される機器のデータを処理する場合、全てのロケーションでデータの処理を行う必要があり、特許文献１のようにデプロイを実施しないロケーションを維持することはできない、という問題があった。【００１１】
また、上述のデータの流通に関する制限では、データ処理を行う拠点の場所（国や地域）に応じて、国外（又は地域外）へ送信が禁止されているデータの種類は異なる。例えば、衛星測位システムＧＮＳＳ（Ｇｌｏｂａｌ  Ｎａｖｉｇａｔｉｏｎ  Ｓａｔｅｌｌｉｔｅ  Ｓｙｓｔｅｍ）で測定した位置情報は、日本では衛星の測位情報を国外へ送信することができるが、中国ではサイバーセキュリティ法により、国外へ位置情報を送信することが禁止されている。【００１２】
グローバルに展開される機器のデータを収集し、加工、分析等の処理を行うアプリケーションを開発及び運用する場合、データ処理を行う拠点が所属する国や地域の法令に照らし合わせて、拠点から国外へ送信するデータの種類を検討する必要がある。【００１３】
なお、以降では「拠点」について、各地域の法律や組織内のルールがあるなかで、ある同じルールの中でデータを自由に共有可能なグループや、組織、国、地域等の単位と定義する。【００１４】
しかしながら、アプリケーションの開発担当者等が、アプリケーションを展開する拠点毎に法令等を解釈して、拠点内から拠点外へ送信可能なデータの種類を判定するためには多大な労力が必要となり、アプリケーションの開発コストが増大する、という問題があった。【００１５】
そこで本発明は、上記問題点に鑑みてなされたもので、複数の拠点に展開するアプリケーションが、データを拠点から外部へ送信しようとする場合に、送信可否の容易な判定を可能にすることを目的とする。
【課題を解決するための手段】
【００１６】
本発明の一態様は、プロセッサとメモリを含む計算機を有する複数の拠点間でデータを処理する計算機システムであって、前記計算機は、データに所定の処理を行うアプリケーションと、前記アプリケーションの実行を管理する実行管理部と、前記アプリケーションの処理結果のデータについて外部への送信の可否を予め設定したデータ受渡しポリシーと、を有し、前記実行管理部は、前記アプリケーションが実行中に使用したデータの情報を送信データ情報として生成し、前記送信データ情報のデータを前記データ受渡しポリシー適用して、前記拠点の外部への送信の可否を判定する、ことを特徴とする。【００１７】
上記態様によれば、複数の拠点にまたがってデータを送受信するに展開するアプリケーションについては、アプリケーションの実行を管理する実行管理部によって、データを外部へ送信する際に、データ受渡しポリシーを参照して送信が禁止されているデータを自動的に判定することができる。また、送信が禁止されているデータを自動的にダミーデータに置換することができる。【００１８】
このため、アプリケーションの開発者などは、事前に拠点毎に法令等を解釈する必要がなく、効率良いアプリケーションの開発及び実行が可能になる。
【発明の効果】
【００１９】
開示によれば、拠点外へのデータの送信可否を容易に判定することが可能になる。【００２０】
本明細書において開示される主題の、少なくとも一つの実施の詳細は、添付されている図面と以下の記述の中で述べられる。開示される主題のその他の特徴、態様、効果は、以下の開示、図面、請求項により明らかにされる。
【図面の簡単な説明】
【００２１】
【図１】本発明の実施例を示し、アプリケーションを展開する拠点の一例を示す図である。
【図２】本発明の実施例を示し、アプリケーションを開発及び運用する拠点における計算機システムの構成の一例を示すブロック図である。
【図３】本発明の実施例を示し、開発サーバの構成の一例を示すブロック図である。
【図４】本発明の実施例を示し、アプリケーションサーバの構成の一例を示すブロック図である。
【図５】本発明の実施例を示し、計算機システムの階層構造とデータ受渡しポリシー３２３の関係の一例を示す図である。
【図６】本発明の実施例を示し、通信経路と適用するポリシーの一例を示す図である。
【図７Ａ】本発明の実施例を示し、データ受渡しポリシーの一例を示す図である。
【図７Ｂ】本発明の実施例を示し、データ受渡しポリシーの他の例を示す図である。
【図８】本発明の実施例を示し、計算機システムで行われる処理の一例を示すシーケンス図である。
【図９】本発明の実施例を示し、アプリケーション実行部で行われる処理の一例を示すフローチャートである。
【図１０】本発明の実施例を示し、フィルタリング判定部で行われる処理の一例を示すフローチャートである。
【図１１】本発明の実施例を示し、フィルタリング結果反映部で行われる処理の一例を示すフローチャートである。
【図１２】本発明の実施例を示し、タグ情報の一例を示す図である。
【図１３】本発明の実施例を示し、ポリシー編集画面の一例を示す図である。
【図１４】本発明の実施例を示し、データ送信先の選択画面の一例を示す図である。
【図１５】本発明の実施例を示し、アプリケーション実行部で行われるタグの継承処理の一例を示す図である。
【発明を実施するための形態】
【００２２】
以下、本発明の実施形態を添付図面に基づいて説明する。
【実施例１】
【００２３】
図１は、アプリケーションを展開する拠点の一例を示す図である。地球上の各地域や国には拠点１００−Ａ〜１００−Ｇが設置され、ネットワーク１３０を介して相互に接続されて、各拠点毎に配置されたアプリケーションサーバ１２０が稼働する。なお、以下の説明では、拠点を個々に特定しない場合には、「−」以降を省略した符号「１００」を用いる。他の構成要素の符号についても同様である。【００２４】
各拠点１００では、アプリケーションサーバ１２０が複数のエッジサーバ１１０に接続され、各エッジサーバ１１０が管理する機器のデータをアプリケーションサーバ１２０が取得し、データ処理を実施する。アプリケーションサーバ１２０は、各拠点１００で共通のアプリケーションを実行してデータ処理を実行する。データ処理の内容としては、例えば、エッジサーバ１１０が管理する機器からデータを収集し、収集したデータの分析や可視化を行う。【００２５】
各拠点１００で行われるデータ処理は、各拠点１００間で処理を分担してもよい。例えば、拠点１００−Ａの機器のデータを拠点１００−Ｅで処理し、拠点１００−Ｅの処理結果を拠点１００−Ｆへ送信し、拠点１００−Ｆでさらに可視化などの加工を施して結果を拠点１００−Ａへ送信することができる。なお、各拠点１００で処理した結果を一つの拠点１００−Ａに送信し、拠点１００−Ａのアプリケーションサーバ１２０で各拠点１００から受信したデータを処理するようにしてもよい。【００２６】
なお、拠点１００は、データを出力する機器（デバイス）と、デバイスが出力したデータを中継するエッジサーバ１１０と、エッジサーバ１１０からデータを取得して所定の処理を行うアプリケーションサーバ１２０を含む。なお、拠点１００において必ずしもデータを出力する機器（デバイス）やエッジサーバ１１０を含んでいる必要はなく、たとえばそれらの機器から得られたデータがデータベースサーバ１４０に入った状態からデータ処理するアプリケーションを考えてもよい。また、複数の拠点１００のうち１以上の拠点１００に開発サーバ３０１が設置されればよい。【００２７】
図２は、アプリケーションを開発及び運用する各拠点１００における計算機システムの構成の一例を示すブロック図である。拠点１００−Ａは、アプリケーションサーバ１２０−Ａと、開発サーバ３０１と、データベースサーバ１４０−Ａと、エッジサーバ１１０−Ａを含み、内部ネットワーク１５０−Ａを介して他のアプリケーションサーバ１２０に接続される。【００２８】
拠点１００−Ｎは、開発サーバ３０１を除いて拠点１００−Ａと同様であり、アプリケーションサーバ１２０−Ｎと、データベースサーバ１４０−Ｎと、エッジサーバ１１０−Ｎを含み、内部ネットワーク１５０−Ｎを介して他のアプリケーションサーバ１２０に接続される。【００２９】
開発サーバ３０１では、アプリケーションサーバ１２０で実行されるアプリケーションが開発されて、各拠点１００へデプロイされる。なお、図示の例では、開発サーバ３０１を拠点１００−Ａにのみ配置した例を示すが、複数の拠点１００に開発サーバ３０１が配置されてもよい。【００３０】
アプリケーションサーバ１２０は、開発サーバ３０１からデプロイされたアプリケーションを実行し、エッジサーバ１１０から取得した機器のデータに所定の処理を実行し、実行結果を他のアプリケーションサーバ１２０へ送信する。【００３１】
図３は、開発サーバ３０１の構成の一例を示すブロック図である。開発サーバ３０１は、プロセッサ３１３と、記憶装置３１１と、入出力インタフェース３１２と、入出力装置３１４を含む計算機である。【００３２】
プロセッサ３１３は、記憶装置３１１にロードされたプログラムを実行する。入出力インタフェース３１２は、内部ネットワーク１５０に接続されて他の計算機と通信を行う。入出力装置３１４は、入力装置としてのキーボードやマウスと、出力装置としてのディスプレイを含む。【００３３】
記憶装置３１１は、揮発性の記憶媒体（ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙなど））と不揮発性の記憶媒体（ＨＤＤ、ＳＳＤなど）を含む。記憶装置３１１には、開発対象のアプリケーションプログラム３２１と、アプリケーションプログラム３２１を実行する環境を提供し、アプリケーションプログラム３２１の実行を管理するアプリケーション実行プログラム（実行管理部）３２２と、アプリケーションプログラム３２１を開発するための開発ツール３２７と、開発したアプリケーションプログラム３２１を各拠点１００にデプロイするデプロイツール３２８と、アプリケーションプログラムコンフィグ３２５と、アプリケーション実行プログラムコンフィグ３２６と、データ受渡しポリシー３２３と、置換用ダミーデータ３２４が格納される。【００３４】
アプリケーションプログラムコンフィグ３２５には、アプリケーションプログラム３２１を実行するための情報が格納される。アプリケーション実行プログラムコンフィグ３２６には、アプリケーション実行プログラム３２２を実行するための情報が格納される。【００３５】
データ受渡しポリシー３２３には、アプリケーションプログラム３２１が稼働する拠点１００に応じて、データタグやデータサイズを判定材料として、他の国や地域へのデータ送信についてアラート、禁止、置換などの処理を行うポリシーが格納される。置換用ダミーデータ３２４には、データ受渡しポリシー３２３に記述された置換用のデータが格納される。【００３６】
アプリケーションプログラム３２１は、複数の処理「Ａ」〜「Ｎ」を含み、後述するように、他の拠点１００のアプリケーションサーバ１２０と連携して複数の処理を実現することができる。【００３７】
アプリケーション実行プログラム３２２は、アプリケーション実行部３３１と、フィルタリング判定部３３２と、フィルタリング結果反映部３３３を含んで、アプリケーションプログラム３２１の実行を管理する。【００３８】
アプリケーション実行部３３１は、アプリケーションプログラム３２１の実行を監視して、後述するようにアプリケーションプログラム３２１が利用したデータをトレースして、データ受渡しポリシー３２３に予め設定された外部への送信が禁止されているデータを判定し、送信が禁止されているデータについては置換用ダミーデータ３２４に置換することで、拠点１００の外部のアプリケーションサーバ１２０でデータ処理の連携を続行させる。【００３９】
フィルタリング判定部３３２は、アプリケーションプログラム３２１の実行結果に、他の拠点１００への送信が禁止されているデータが含まれているか否かを判定する。フィルタリング判定部３３２は、データ受渡しポリシー３２３を読み込んで、アプリケーションプログラム３２１を実行する拠点１００に適用される法令等を反映させたポリシーに基づいて、他の拠点１００へ送信するデータが適切か否かを判定する。【００４０】
フィルタリング判定部３３２は、他の拠点１００への送信が禁止されているデータが含まれている場合、フィルタリング結果反映部３３３に対して判定結果と処理要求を送信する。処理要求には、例えば、国外へ送信することが禁止されているデータを所定の置換用ダミーデータ３２４への置き換えを含むことができる。【００４１】
フィルタリング結果反映部３３３は、フィルタリング判定部３３２からの処理要求に応じて、アプリケーションプログラム３２１が他の拠点１００へ送信するデータを置換用ダミーデータ３２４に置換したり、アプリケーションプログラム３２１の開発ツール３２７を介して開発の担当者へ、法令等に抵触するデータの送信がブロックされたことを通知する。【００４２】
アプリケーション実行プログラム３２２のアプリケーション実行部３３１と、フィルタリング判定部３３２と、フィルタリング結果反映部３３３の各機能部はプログラムとして記憶装置３１１にロードされる。【００４３】
プロセッサ３１３は、各機能部のプログラムに従って処理を実行することによって、所定の機能を提供する機能部として稼働する。例えば、プロセッサ３１３は、フィルタリング判定プログラムに従って処理を実行することでフィルタリング判定部３３２として機能する。他のプログラムについても同様である。さらに、プロセッサ３１３は、各プログラムが実行する複数の処理のそれぞれの機能を提供する機能部としても稼働する。計算機及び計算機システムは、これらの機能部を含む装置及びシステムである。【００４４】
図４は、アプリケーションサーバ１２０−Ａの構成の一例を示すブロック図である。他の拠点１００のアプリケーションサーバ１２０についても同様の構成であるので、重複する説明は省略する。【００４５】
アプリケーションサーバ１２０は、プロセッサ４１３と、記憶装置４１１と、入出力インタフェース４１２と、入出力装置４１４を含む計算機である。【００４６】
プロセッサ４１３は、記憶装置４１１にロードされたプログラムを実行する。入出力インタフェース４１２は、内部ネットワーク１５０に接続されて他の計算機と通信を行う。入出力装置４１４は、入力装置としてのキーボードやマウスと、出力装置としてのディスプレイを含む。【００４７】
記憶装置４１１は、例えば、ＤＲＡＭ等で構成される。記憶装置４１１には、分散アプリケーション協調サービスプログラム４２０と、開発サーバ３０１からデプロイされたアプリケーションプログラム３２１と、アプリケーションプログラム３２１を実行する環境を提供するアプリケーション実行プログラム３２２と、アプリケーションプログラムコンフィグ３２５と、アプリケーション実行プログラムコンフィグ３２６と、データ受渡しポリシー３２３と、置換用ダミーデータ３２４と、アプリケーションプログラムコンフィグ３２５と、アプリケーション実行プログラムコンフィグ３２６が格納される。【００４８】
アプリケーションサーバ１２０の記憶装置４１１にロードされるプログラムやデータは、開発サーバ３０１の開発ツール３２７やデプロイツール３２８を除けば同様の構成である。すなわち、アプリケーションプログラム３２１と、アプリケーション実行プログラム３２２と、データ受渡しポリシー３２３と、置換用ダミーデータ３２４等は、開発サーバ３０１からデプロイされたソフトウェアである。【００４９】
なお、アプリケーションサーバ１２０で稼働する分散アプリケーション協調サービスプログラム４２０は、各拠点１００間でアプリケーションプログラム３２１の複数の処理「Ａ」〜「Ｎ」を協調させて稼働させることができる。分散アプリケーション協調サービスプログラム４２０は、共有設定機能や、メンバー取得機能あるいは分散ロック機能などを含むことができる。【００５０】
分散アプリケーション協調サービスプログラム４２０は、アプリケーション実行プログラム３２２を拠点１００間にまたがった一つのクラスタとして動作させるときに、同じ設定情報を共有したり、アクティブなアプリケーションサーバ１２０を特定してアプリケーションプログラム３２１を接続するために用いる。なお、アプリケーションプログラム３２１は拠点１００間でクラスタを構成することができる。【００５１】
例えば、拠点１００−Ａのアプリケーションサーバ１２０がアプリケーションプログラム３２１に含まれる処理「Ａ」を実行して、実行結果を拠点１００−Ｂへ送信する。拠点１００−Ｂでは、受信した処理「Ａ」の実行結果に基づいて、アプリケーションサーバ１２０がアプリケーションプログラム３２１に含まれる処理「Ｆ」を実行して、実行結果を拠点１００−Ｇに送信する。拠点１００−Ｇでは、受信した処理「Ｆ」の実行結果に基づいて、アプリケーションサーバ１２０がアプリケーションプログラム３２１に含まれる処理「Ｂ」を実行して、実行結果を各拠点１００に配信する。【００５２】
以上のように、分散アプリケーション協調サービスプログラム４２０は、拠点１００間でアプリケーションプログラム３２１に含まれる処理「Ａ」〜「Ｎ」を分散させて処理を実行する。分散アプリケーション協調サービスプログラム４２０は、予め設定された拠点１００間でアプリケーションプログラム３２１の連携を実行する。【００５３】
図３、図４に示す、アプリケーションプログラム３２１を開発する際に用いる上述のプログラムやデータなど各々は、外部装置から、非一時的な記憶媒体や通信回線を介して、記憶装置３１１または４１１へ導入されても良い。【００５４】
図５は、計算機システムの階層構造とデータ受渡しポリシー３２３を参照するタイミングの一例を示す図である。図５は、計算機システムが所属する国（又は地域）と、データ受渡しポリシー３２３を参照する契機となる境界（ボーダー）の関係を示す。【００５５】
領域５００−１、５００−２は、データの流通に関する制限（法令）などが異なる複数の拠点（たとえば国や地域）で構成される。計算機システムの階層構造は、図５のように、たとえば図中３段目の階層がエッジサーバ１１０の階層で、図中２段目の階層がアプリケーションサーバ１２０の階層で、図中１段目の階層が国や地域などのデータの流通に関する制限などが異なる階層である。このように、データをやり取りする国や地域の関係性を階層で表現する。【００５６】
領域５００−１では、アプリケーションサーバ１２０を含むｊｐ．ｃｌｏｕｄ４内に、エッジサーバ１１０のｊｐ．ｃｌｏｕｄ４．ｅｄｇｅ１が接続される。領域５００−１では、アプリケーションサーバ１２０を含むｕｓ．ｃｌｏｕｄ１とｕｓ．ｃｌｏｕｄ２が稼働する。そして、領域５００−１と領域５００−２を跨ぐ［ｕｓ，ｊｐ］．ｃｌｏｕｄ３が稼働する。このように、ここでは「．」の表記で計算機システムが属する階層のボーダーを表現し、「［Ａ，Ｂ］」の表記にてＡ、Ｂの複数領域に属する計算機システムであることを表現している。【００５７】
アプリケーションサーバ１２０がデータ受渡しポリシー３２３を参照するタイミングは、階層を超えてデータを送信するタイミングである。データ受渡しポリシー３２３には、階層を超えてデータを送信する際には、データの内容をチェックするポリシーが予め設定される。【００５８】
例えば、ｕｓ．ｃｌｏｕｄ１から［ｕｓ，ｊｐ］．ｃｌｏｕｄ３へデータを送信する場合には、図中Ｓ１とＳ２でデータ受渡しポリシー３２３に基づいてデータをチェックする。図中Ｓ１では、まず２階層目のｕｓ．ｃｌｏｕｄ１から１階層目のｕｓにデータが出ていく（ｏｕｔ）。このとき、ｕｓ．ｃｌｏｕｄ１は、データ受渡しポリシー３２３に「ｕｓ．ｃｌｏｕｄ１  ｏｕｔ」のポリシーが記載されているかをチェックする。なお、ここでは（ｎ＋１）階層からｎ階層への移動を、ｏｕｔと定義している。【００５９】
データ受渡しポリシー３２３に「ｕｓ．ｃｌｏｕｄ１  ｏｕｔ」のポリシーが記載されており、かつポリシーに基づく処理（送信禁止、ダミー置換、アラートなど）の対象に該当するデータの場合、後述するように、記載されたポリシーの処理要求をフィルタリング結果反映部３３３へ送信される。【００６０】
「ｕｓ．ｃｌｏｕｄ１  ｏｕｔ」のポリシーで制限されていないデータであれば、次に、図中Ｓ２で１階層目のｕｓから２階層目の［ｕｓ，ｊｐ］．ｃｌｏｕｄ３にデータが入っていく（ｉｎ）。なお、ここではｎ階層から（ｎ＋１）階層への移動を、ｉｎと定義している。このとき、ｕｓ．ｃｌｏｕｄ１が、データ受渡しポリシー３２３に「［ｕｓ，ｊｐ］．ｃｌｏｕｄ３  ｉｎ」のポリシーが記載されているか、ポリシーに基づく処理対象データであるかをチェックする。【００６１】
データ受渡しポリシー３２３を参照してデータをチェックする主体は、拠点間でデータを受け渡す前にチェックする必要があるため、データを出力する側の計算機システム（アプリケーションサーバ１２０）である。【００６２】
同様に、図中「ｕｓ．ｃｌｏｕｄ２」から「ｊｐ．ｃｌｏｕｄ４．ｅｄｇｅ１」へデータを送信する場合には、図中「ｕｓ．ｃｌｏｕｄ２」、「ｕｓ」、［ｒｏｏｔ］、「ｊｐ」、「ｊｐ．ｃｌｏｕｄ４」、「ｊｐ．ｃｌｏｕｄ４．ｅｄｇｅ１」という順序で、複数の領域間の階層を通過する。この際、図中Ｓ１１〜Ｓ１５で、データ受渡しポリシー３２３を参照してデータのチェックが行われる。【００６３】
Ｓ１１では、「ｕｓ．ｃｌｏｕｄ２」がデータ受渡しポリシー３２３の「ｕｓ．ｃｌｏｕｄ２  ｏｕｔ」でデータをチェックする。【００６４】
Ｓ１２では、「ｕｓ．ｃｌｏｕｄ２」がデータ受渡しポリシー３２３の「ｕｓ  ｏｕｔ」でデータをチェックする。【００６５】
Ｓ１３では、「ｕｓ．ｃｌｏｕｄ２」がデータ受渡しポリシー３２３の「ｊｐ  ｉｎ」でデータをチェックする。【００６６】
Ｓ１４では、「ｕｓ．ｃｌｏｕｄ２」がデータ受渡しポリシー３２３の「ｊｐ．ｃｌｏｕｄ４  ｉｎ」でデータをチェックする。【００６７】
Ｓ１５では、「ｊｐ．ｃｌｏｕｄ４」がデータ受渡しポリシー３２３の「ｊｐ．ｃｌｏｕｄ４．ｅｄｇｅ１  ｉｎ」でデータをチェックする。【００６８】
以上のように、領域間の階層をｉｎ、ｏｕｔで通過するタイミングで、データを送信する計算機システム（アプリケーションサーバ１２０）がデータ受渡しポリシー３２３を参照して当該データの置換の必要性を判定する。【００６９】
なお、上記の例では、計算機システム（ｕｓ．ｃｌｏｕｄ１〜ｊｐ．ｃｌｏｕｄ４）から階層を通過してデータが送信されるタイミングを、Ｓ１２〜Ｓ１４ではｕｓ．ｃｌｏｕｄ２、Ｓ１５ではｊｐ．ｃｌｏｕｄ４としたが、データが送信先に渡る前にデータ受渡しポリシー３２３をチェックするという原則さえ守られていれば、これに限定されるものではない。たとえば、Ｓ１５におけるデータ受渡しポリシー３２３のチェックを、ｕｓ．ｃｌｏｕｄ２で実施する、といった構成でもよい。【００７０】
また、上記の領域５００は、国や地域だけではなく、データの流通に関する制限が異なる領域としてもよい。例えば、社内での通信と社外との通信など、データの流通に関する制限（ルール）が変化する境界を通過するタイミングで、データ受渡しポリシー３２３を参照すればよい。また、拠点１００の外部とは、当該拠点が所属する領域５００とは、データの流通に関する制限が異なる領域とすることができる。【００７１】
また、上記の領域５００は、地域として国の集合や、県や州など、それぞれの法令や条例又は州法などでデータの流通に関する制限を行うことが可能な領域としてもよい。【００７２】
図６は、通信経路と適用するポリシーの一例を示す図である。図６は、図５に示したｊｐ．ｃｌｏｕｄ４．ｅｄｇｅ１からｕｓ．ｃｌｏｕｄ１へデータを処理しながら送信する場合に選択可能な経路と、データ受渡しポリシー３２３の関係を示す。【００７３】
まず、ｊｐ．ｃｌｏｕｄ４．ｅｄｇｅ１の計算機システムは、図５の４階層目のｊｐ．ｃｌｏｕｄ４．ｅｄｇｅ１から３階層目のｊｐ．ｃｌｏｕｄ４へデータを送信する際に、図６のｐ１で、データ受渡しポリシー３２３の「ｊｐ．ｃｌｏｕｄ４．ｅｄｇｅ１  ｏｕｔ」を参照してデータをチェックする。【００７４】
次に、ｊｐ．ｃｌｏｕｄ４の計算機システムは、図５の２階層目、１階層目を経由してｕｓ．ｃｌｏｕｄ２へデータを送信する際に、図６のｐ２で、データ受渡しポリシー３２３の「ｊｐ．ｃｌｏｕｄ４  ｏｕｔ」、「ｊｐ  ｏｕｔ」、「ｕｓ  ｉｎ」、「ｕｓ．ｃｌｏｕｄ２  ｉｎ」を参照してデータをチェックする。【００７５】
また、ｊｐ．ｃｌｏｕｄ４からｕｓ．ｃｌｏｕｄ２へのデータの転送経路としては、「ｊｐ」、「［ｕｓ．ｊｐ］ｃｌｏｕｄ３」、「ｕｓ」、「ｕｓ．ｃｌｏｕｄ２」という、１階層目ｒｏｏｔを経由しない経路も利用可能である。【００７６】
この場合、ｊｐ．ｃｌｏｕｄ４の計算機システムは、ｕｓ．ｃｌｏｕｄ２へデータを送信する際に、図６のｐ２で、データ受渡しポリシー３２３の「ｊｐ．ｃｌｏｕｄ４  ｏｕｔ」、「ｊｐ  ｏｕｔ」、「［ｕｓ．ｊｐ］ｃｌｏｕｄ３  ｉｎ」を参照してデータをチェックする。そして、［ｕｓ．ｊｐ］ｃｌｏｕｄ３の計算機システムは、データ受渡しポリシー３２３の「［ｕｓ．ｊｐ］ｃｌｏｕｄ３  ｏｕｔ」「ｕｓ．ｃｌｏｕｄ２  ｉｎ」を参照してデータをチェックする。【００７７】
次に、ｊｐ．ｃｌｏｕｄ４の計算機システムは、図５の２階層目ｊｐを経由して［ｕｓ．ｊｐ］ｃｌｏｕｄ３へデータを送信する際に、図６のｐ３で、データ受渡しポリシー３２３の「ｊｐ．ｃｌｏｕｄ４  ｏｕｔ」、「［ｕｓ．ｊｐ］ｃｌｏｕｄ３  ｉｎ」を参照してデータをチェックする。【００７８】
また、ｕｓ．ｃｌｏｕｄ２の計算機システムは、図５の２階層目ｕｓを経由してｕｓ．ｃｌｏｕｄ１へデータを送信する際に、図６のｐ４で、データ受渡しポリシー３２３の「ｕｓ．ｃｌｏｕｄ２  ｏｕｔ」、「ｕｓ．ｃｌｏｕｄ１  ｉｎ」を参照してデータをチェックする。【００７９】
また、［ｕｓ．ｊｐ］ｃｌｏｕｄ３の計算機システムは、図５の２階層目ｕｓを通過してｕｓ．ｃｌｏｕｄ１へデータを送信する際に図６のｐ５で、データ受渡しポリシー３２３の「［ｕｓ．ｊｐ］ｃｌｏｕｄ３  ｏｕｔ」、「ｕｓ．ｃｌｏｕｄ１  ｉｎ」を参照してデータをチェックする。【００８０】
図７Ａは、データ受渡しポリシー３２３−Ａの一例を示す図である。図７Ｂは、データ受渡しポリシー３２３−Ａに組み込まれる基本のデータ受渡しポリシー３２３−Ｂの例を示す図である。【００８１】
データ受渡しポリシー３２３−Ａは、行７０２で図７Ｂのデータ受渡しポリシー３２３−Ｂを読み込む命令が記載される。【００８２】
データ受渡しポリシー３２３−Ａは、行７０３で拠点１００から外部へ送信するデータのタグが「ｇｐｓ」（測位情報）の場合、所定のダミーデータ（３９°５４，１１６°２３）に置換するよう記述される。【００８３】
データ受渡しポリシー３２３−Ａは、行７０４で拠点１００から外部へ送信するデータのタグが「ｄａｔａ」の場合、置換用ダミーデータ３２４として設定された「ｄｕｍｍｙ．ｔｘｔ」に置換するよう記述される。【００８４】
また、データ受渡しポリシー３２３−Ａは、行７０５で、「ｌｏｇ１」のサイズが１０ＭＢ以上の場合には、警告を発生するよう記述される。【００８５】
このほか、行７０６に示すように、ユーザ固有の関数（たとえば、データの中身を見てデータの性質を判定するアルゴリズムなど）を登録してもよい。【００８６】
図７Ｂにおいて、データ受渡しポリシー３２３−Ｂは、行７１１でタグが「ｎａｍｅ」のデータの送信を禁止するよう記載される。データ受渡しポリシー３２３−Ｂは、行７１２でタグが「ｇｐｓ」のデータの送信を禁止するよう記載される。【００８７】
以上のように、拠点１００の外部へ送信を禁止するデータや、ダミーデータに置換して送信するデータをデータ受渡しポリシー３２３−Ａ、３２３−Ｂで設定することができる。なお、上記の例では、データ受渡しポリシー３２３−Ａでデータ受渡しポリシー３２３−Ｂを読み込んで援用する例を示したが、データ受渡しポリシー３２３−Ｂを読み込まずにデータ受渡しポリシー３２３−Ａ単独のポリシーを設定してもよい。【００８８】
なお、データ受渡しポリシー３２３−Ｂを開発サーバ３０１の拠点１００で作成したデフォルトのデータ受渡しポリシー３２３とし、データ受渡しポリシー３２３−Ａを各拠点１００のユーザが設定するポリシーとすることができる。【００８９】
また、上記図７Ａ、図７Ｂの例では、アプリケーションサーバ１２０から外部へ送信されるときに、予め設定されたタグのデータを置換用ダミーデータ３２４に置換する例を示したが、これに限定されるものではない。例えば、宛先のアドレスが予め設定されたアドレス（例えば、図５の領域５００内）であれば、予め設定されたタグのデータの送信を許可し、予め設定されたアドレス以外では、置換用ダミーデータ３２４への置換を実行するようにしてもよい。【００９０】
なお、本実施例では、アプリケーションプログラム３２１の処理結果の送信先の経路情報（送信経路情報）に応じて、データ受渡しポリシー３２３が設定され、アプリケーション実行プログラム３２２のフィルタリング判定部３３２は、処理結果の送信先に対応するデータ受渡しポリシー３２３を読み込んで、データのタグ（ラベル）から送信の可否を判定することができる。【００９１】
送信先のドメイン名やアドレスに対応するデータ受渡しポリシー３２３をそれぞれ設定しておくことで、アプリケーションプログラム３２１のデプロイ先にかかわらず、アプリケーション実行プログラム３２２のフィルタリング判定部３３２は、送信先に応じてデータの送信の可否を判定することができる。【００９２】
また、データ受渡しポリシー３２３は、アプリケーション実行プログラム３２２のデプロイ先毎に、送信先毎のデータ受渡しポリシー３２３を設定するようにしてもよい。【００９３】
拠点１００には、送信先の国や地域毎にデータ受渡しポリシー３２３が設定され、アプリケーションプログラム３２１にデータの処理を実施する際にデータの送信先を指定しておくことで、フィルタリング判定部３３２は、処理結果の送信先に応じたデータ受渡しポリシー３２３を読み込んで、データの送信の可否を判定することができる。【００９４】
また、データの送信先が、拠点１００内や、同一の国内あるいは同一の地域内の場合には、送信するデータを制限しないデータ受渡しポリシー３２３を設定しておくことで、アプリケーションプログラム３２１の処理結果を全て送信することができる。【００９５】
また、送信先は、他の拠点１００と連携を行う分散アプリケーション協調サービスプログラム４２０に設定することができ、連携を実施する拠点１００のドメイン名やアドレスなどで送信先を設定することができる。【００９６】
また、タグに応じたデータの制御は、送信の禁止や、ダミーデータへの置換や、開発担当者への通知に限定されるものではなく、予め設定された処理を記述することができる。【００９７】
図８は、計算機システムで行われる処理の一例を示すシーケンス図である。図８の例は、拠点１００−Ａのアプリケーションサーバ１２０で処理したデータを、領域５００の外部となる拠点１００−Ｂで処理する例を示す。【００９８】
クライアント８００は、図１、図２では図示を省略したが、拠点１００−Ａのアプリケーションサーバ１２０を利用する計算機で、拠点１００−Ａの内部であってもよいし、拠点１００−Ａの外部であってもよい。【００９９】
クライアント８００が拠点１００−Ａのアプリケーションサーバ１２０に処理の開始と処理対象のデータを指示する（ステップ８１１）。なお、処理対象のデータは、拠点１００−Ａではエッジサーバ１１０から取得したデータとし、拠点１００−Ｂでは、拠点１００−Ａから受信したデータとする。また、処理の開始指令には、処理の連携先の宛先及び送信経路が含まれる。【０１００】
アプリケーション実行プログラム３２２のアプリケーション実行部３３１は、アプリケーションプログラム３２１に処理対象のデータを指定して処理を実行させる（ステップ８１２）。【０１０１】
アプリケーション実行部３３１は、処理結果をアプリケーションプログラム３２１から受け付けると、処理結果の情報（送信するデータの情報）と、処理結果の送信経路（送信するデータの経路情報）をフィルタリング判定部３３２へ送信する（ステップ８１３）。なお、送信するデータの情報は、後述するように、タグ情報としてアプリケーション実行部３３１が生成する。【０１０２】
フィルタリング判定部３３２は、データ受渡しポリシー３２３を参照して、処理結果に含まれるデータのタグに、送信が禁止（又はダミーデータへの置換の指定）されているか否かを判定する（ステップ８１４）。【０１０３】
フィルタリング判定部３３２は、判定結果と判定結果に基づく要求処理をフィルタリング結果反映部３３３へ送信する（ステップ８１５）。要求処理は、判定結果に応じてデータ送信の許可、ダミーデータへの置換、データ送信の禁止など、データ受渡しポリシー３２３で設定された処理を含む。【０１０４】
フィルタリング結果反映部３３３は、フィルタリング判定部３３２から受け付けた判定結果と処理要求を実施する（ステップ８１６）。フィルタリング結果反映部３３３は、処理要求の実行結果と、フィルタリング判定部３３２からの判定結果と処理要求を、アプリケーション実行部３３１へ送信する（ステップ８１７）。【０１０５】
アプリケーション実行部３３１は、データ受渡しポリシー３２３に応じた判定結果に応じて、実行する処理を切り替える（ステップ８１８）。拠点１００−Ｂへのデータの送信が許可された場合には、ステップ８１９へ進み、禁止された場合にはステップ８２３へ進む。【０１０６】
ステップ８１９では、アプリケーション実行部３３１は、アプリケーションプログラム３２１からの処理結果を拠点１００−Ｂへ送信し、処理を依頼する。次に、アプリケーション実行部３３１は、拠点１００−Ａでの処理が完了したことをクライアント８００に通知する（ステップ８２０）。【０１０７】
アプリケーション実行部３３１は、拠点１００−Ｂから処理の完了通知を受信する（ステップ８２１）と、クライアント８００へ、全ての処理が完了したことを通知する（ステップ８２２）。【０１０８】
なお、データ受渡しポリシー３２３で外部への送信が禁止されたデータを置換した場合も、ステップ８１９と同様に処理し、ステップ８２０では、外部への送信が禁止されたデータを置換した旨をクライアント８００へ通知する。クライアント８００を利用するアプリケーションプログラム３２１の開発担当者へ、拠点１００が所属する領域５００の制限によって、アプリケーションプログラム３２１の処理結果が置換用ダミーデータ３２４へ自動的に置換されたことを報知できる。【０１０９】
一方、ステップ８１８の判定で、拠点１００−Ｂへのデータの送信が禁止された場合には、アプリケーション実行部３３１は、データ受渡しポリシー３２３で外部への送信が禁止されたデータの場合、クライアント８００に対して処理を途中で中止したことを通知し、処理を終了する（ステップ８２３）。【０１１０】
上記処理によって、拠点１００−Ａのアプリケーションサーバ１２０では、アプリケーション実行部３３１がアプリケーションプログラム３２１の処理結果についてデータの送信可否を判定することで、外部の拠点１００−Ｂへの送信が許可されていないデータを置換することで、他の拠点１００と連携して処理を続行させることができる。【０１１１】
図９は、アプリケーション実行部３３１で行われる処理の一例を示すフローチャートである。この処理は、図８に示したクライアント８００からの処理要求を受け付けた場合、あるいは、他の拠点１００から処理要求を受け付けた場合に実行される。【０１１２】
アプリケーション実行部３３１は、処理要求を受け付けると、処理要求に含まれる対象アプリケーション（図３の処理「Ａ」〜「Ｎ」）を参照する（ステップ９０１）。アプリケーション実行部３３１は、当該アプリケーションプログラム３２１に対象アプリケーションが存在するか否かを判定する（ステップ９０２）。存在する場合にはステップ９０５へ進み、存在しない場合にはステップ９０３へ進む。【０１１３】
ステップ９０５では、アプリケーション実行部３３１が、処理要求に含まれる対象アプリケーション（「Ａ」〜「Ｎ」）の実行範囲を参照し（ステップ９０５）、アプリケーションプログラム３２１から実行範囲の対象アプリケーションを呼び出して実行させる（ステップ９０６）。なお、図８で説明したように、処理するデータは処理要求で指定されている。【０１１４】
次に、アプリケーション実行部３３１は、アプリケーションプログラム３２１から処理の完了を受け付けると（ステップ９０７）、次に実行すべき対象アプリケーションの有無を判定する（ステップ９０８）。アプリケーション実行部３３１は、実行すべき対象アプリケーションが存在する場合にはステップ９０６へ戻って上記処理をくり消し、そうでない場合には、ステップ９０９へ進む。【０１１５】
ステップ９０９では、アプリケーション実行部３３１がデータ受渡しポリシー３２３を参照してフィルタリング判定部３３２が有効であるか否かを判定する。アプリケーション実行部３３１は、データ受渡しポリシー３２３に当該アプリケーションプログラム３２１の処理結果に対するポリシーが設定されていればステップ９１０へ進み、そうでない場合にはステップ９１２へ進む。【０１１６】
ステップ９１０では、フィルタリング判定部３３２は、アプリケーション実行部３３１からアプリケーションプログラム３２１からの処理結果と送信経路を受け付け、データ受渡しポリシー３２３を参照して、処理結果に含まれるデータのタグに、送信の禁止（ダミーデータへの置換）が指定されているか否かを判定する。フィルタリング判定部３３２は、判定結果と判定結果に基づく要求処理をフィルタリング結果反映部３３３へ送信する。【０１１７】
フィルタリング結果反映部３３３は、フィルタリング判定部３３２から受け付けた判定結果と処理要求を実施する（ステップ９１１）。フィルタリング結果反映部３３３は、処理要求の実行結果と、フィルタリング判定部３３２からの判定結果と処理要求を、アプリケーション実行部３３１へ送信する。【０１１８】
ステップ９１２では、アプリケーション実行部３３１が、他の拠点１００で連携して実行する処理が残っているか否かを判定する（ステップ９１２）。アプリケーション実行部３３１は、処理が残っている場合には他の拠点１００に処理要求とデータを送信して処理を終了する（ステップ９１３）。【０１１９】
アプリケーション実行部３３１は、処理が残っていない場合には、ステップ９１３へ進んで、今回の処理要求がクライアント８００から直接受け付けたものであるか否かを判定する。【０１２０】
クライアント８００から直接受け付けた場合には、ステップ９１６に進んで、クライアント８００へ処理が完了した通知を送信して処理を終了する。一方、他の拠点１００から処理要求を受け付けた場合には、ステップ９１５へ進んで他の拠点１００へ処理が完了した通知を送信して処理を終了する。【０１２１】
上記ステップ９０２で、対象アプリケーションが存在しない場合には、ステップ９０３でアプリケーション実行部３３１は他の拠点１００からの要求であるか否かを判定する。他の拠点１００からの要求であれば、ステップ９０４に進んで、アプリケーション実行部３３１は、対象アプリケーションが存在しない応答を他の拠点１００へ送信して、処理を終了する。【０１２２】
一方、他の拠点１００からの要求でなければ、ステップ９１６に進んで、クライアント８００へ対象アプリケーションが存在しない応答を送信して処理を終了する。【０１２３】
図１０は、フィルタリング判定部３３２で行われる処理の一例を示すフローチャートである。この処理は、図８に示したステップ８１４で実行される。【０１２４】
フィルタリング判定部３３２は、アプリケーション実行部３３１から送信するデータの情報と、データを送信する経路情報を取得する（ステップ１００１）。フィルタリング判定部３３２は、経路情報から参照するデータ受渡しポリシー３２３を選択する（ステップ１００２）。【０１２５】
次に、フィルタリング判定部３３２は、経路情報（送信先）に対応する参照先のデータ受渡しポリシー３２３の有無を判定する（ステップ１００３）。参照先のデータ受渡しポリシー３２３が存在する場合にはステップ１００５へ進み、参照先のデータ受渡しポリシー３２３が存在しない場合にはステップ１００４へ進む。【０１２６】
ステップ１００４では、フィルタリング判定部３３２が、データを送信する際のデータ受渡しポリシー３２３が不明なため、データを送信禁止としてからステップ１０１０に進む。【０１２７】
ステップ１００５では、フィルタリング判定部３３２が上記ステップ１００２で選択したデータ受渡しポリシー３２３を参照する。そして、フィルタリング判定部３３２は、データ受渡しポリシー３２３と送信するデータの情報を付き合わせて（ステップ１００６）、フィルタリング結果反映部３３３で処理要求を実行させる必要があるか否かを判定する（ステップ１００７）。【０１２８】
フィルタリング判定部３３２は、処理要求を実行させる必要がある場合にはステップ１００８へ進み、処理要求を実行する必要がない場合にはステップ１０１０へ進む。【０１２９】
ステップ１００８では、フィルタリング判定部３３２が、データ受渡しポリシー３２３によって送信するデータの情報を判定した結果と、この判定結果に対応する処理要求を生成し、判定結果と処理要求の組として選択する。【０１３０】
フィルタリング判定部３３２は、処理要求と判定結果のログを生成して出力する（ステップ１００９）。次に、フィルタリング判定部３３２は、さらに参照すべきデータ受渡しポリシー３２３の有無を判定する（ステップ１０１０）。【０１３１】
フィルタリング判定部３３２は、他のデータ受渡しポリシー３２３を参照する必要がある場合にはステップ１００２へ戻って上記処理を繰り返す。一方、参照すべきデータ受渡しポリシー３２３がない場合にはステップ１０１１に進んで、ステップ１００８で選択した判定結果と処理要求の組をフィルタリング結果反映部３３３へ出力し、処理要求を実行させる。【０１３２】
上記処理によって、フィルタリング判定部３３２は、送信するデータの情報に、送信先に応じた、データ受渡しポリシー３２３を適用して、予め設定されたタグのデータをダミーデータに置換する処理要求をフィルタリング結果反映部３３３へ出力することができる。【０１３３】
図１１は、フィルタリング結果反映部３３３で行われる処理の一例を示すフローチャートである。この処理は、図８に示したステップ８１６で実行される。【０１３４】
フィルタリング結果反映部３３３は、フィルタリング判定部３３２から判定結果と処理要求を受け付ける（ステップ１１０１）。フィルタリング結果反映部３３３は、フィルタリング判定部３３２から受け付けた判定結果と処理要求から一つの組を選択する（ステップ１１０２）。【０１３５】
フィルタリング結果反映部３３３は、選択した判定結果と処理要求の組を参照して、処理要求に処理内容が含まれているか否かを判定する（ステップ１１０３）。フィルタリング結果反映部３３３は、処理要求に処理内容が含まれていない場合（判定結果のみの場合）はステップ１１０７へ進み、処理要求に処理内容が含まれている場合はステップ１１０４に進む。【０１３６】
ステップ１００４では、フィルタリング結果反映部３３３が処理要求を実行し、ステップ１００５で処理結果を記憶装置３１１の所定の領域に登録する。処理要求は、例えば、ダミーデータへの置換であれば、データ受渡しポリシー３２３に記載された置換用ダミーデータ３２４のパスを取得して、指定されたパスからダミーデータを取得し、アプリケーションプログラム３２１の処理結果のデータをダミーデータで置換する。そして、フィルタリング結果反映部３３３は処理要求の実行のログを生成して出力する（ステップ１１０６）。【０１３７】
次にステップ１１０７では、フィルタリング結果反映部３３３が、未処理の判定結果と処理要求の組があるか否かを判定し、判定結果と処理要求の組が存在する場合にはステップ１１０２へ戻って上記処理を繰り返す。一方、フィルタリング結果反映部３３３は、未処理の判定結果と処理要求の組がない場合には、ステップ１００８へ進み、アプリケーション実行部３３１へ上記登録された処理結果と、アプリケーション実行部３３１からの判定結果と処理要求を出力する。【０１３８】
上記処理によって、処理要求が、例えば、ダミーデータへの置換であれば、アプリケーションプログラム３２１の処理結果のデータを所定のダミーデータに置換することができる。【０１３９】
図１２は、タグ情報１２００の一例を示す図である。本実施例のタグ情報１２００は、アプリケーションプログラム３２１の処理結果を受け付けたアプリケーション実行部３３１が生成する。なお、タグ情報１２００は、アプリケーションプログラム３２１で生成するようにしてもよい。【０１４０】
タグ情報１２００は、ＪＳＯＮ（ＪａｖａＳｃｒｉｐｔ  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ）データ１２０１と、タグ一覧１２０２と、キー対応情報１２０３を含む。なお、本実施例では、処理結果をＪＳＯＮデータで扱う例を示すが、これに限定されるものではない。【０１４１】
ＪＳＯＮデータ１２０１は、例えば、デバイスＩＤと、位置情報（経度、緯度）と、温度を含む。タグ一覧１２０２には、ＪＳＯＮデータ１２０１に含まれるタグの一覧が格納される。キー対応情報１２０３には、ＪＳＯＮデータ１２０１のキーと対応するタグ情報が格納される。【０１４２】
図１３は、データ受渡しポリシー３２３の編集画面１３０１の一例を示す図である。データ受渡しポリシー３２３の編集画面１３０１は、開発サーバ３０１の入出力装置３１４へ開発ツール３２７によって出力される。【０１４３】
編集画面１３０１は、図５で示したように、計算機システムの階層構造とデータ受渡しポリシー３２３を参照するタイミングを示すボーダーを表示し、利用者にボーダー又は計算機システムを選択させる領域１３０２と、データ受渡しポリシー３２３を選択して、ポリシーを編集可能な領域１３０３を含む。【０１４４】
なお、本実施例では、開発サーバ３０１が編集画面１３０１を出力する例を示すが、これに限定されるものではなく、アプリケーションサーバ１２０のアプリケーション実行プログラム３２２が出力するようにしてもよい。【０１４５】
図１４は、データの送信先の選択画面１４０１の一例を示す図である。データの送信先の選択画面１４０１は、開発サーバ３０１の入出力装置３１４へ開発ツール３２７によって出力される。【０１４６】
選択画面１４０１は、拠点１００間でアプリケーションサーバ１２０の処理「Ａ」〜「Ｎ」を連携の様子を示す領域１４０２と、拠点１００間でアプリケーションサーバ１２０が処理結果のデータを送信する経路情報を可視化して表示する領域１４０３を含む。【０１４７】
クライアント８００等の利用者は、選択画面１４０１を操作して、拠点１００間のデータ送信経路のうち最適な経路を選択して経路情報として登録する。開発ツール３２７は、登録された経路情報をアプリケーションサーバ１２０の分散アプリケーション協調サービスプログラム４２０等へ配信することで、指定された処理「Ａ」〜「Ｎ」を拠点１００間で連携する際には最適な経路でデータの送信を行うことができる。【０１４８】
なお、本実施例では、開発サーバ３０１が選択画面１４０１を出力する例を示すが、これに限定されるものではなく、アプリケーションサーバ１２０のアプリケーション実行プログラム３２２が出力するようにしてもよい。【０１４９】
図１５は、アプリケーション実行部３３１で行われるタグの継承処理１５００の一例を示す図である。アプリケーション実行部３３１は、図８に示したステップ８１２のアプリケーションプログラム３２１の実行処理の際にデータの種類を示すタグの継承処理を実施する。アプリケーション実行部３３１は、タグの継承処理を行うことによって、アプリケーションプログラム３２１を構成するメソッド（処理「Ａ」〜「Ｎ」）群でデータがどのように入力又は出力されたかをトレースすることができる。【０１５０】
アプリケーションプログラム３２１Ｓは、サンプルコードを示し、アプリケーションプログラムの開発者によって生成される。【０１５１】
アプリケーションプログラム３２１Ｓは、タグ情報をトレースするための処理をアプリケーション実行部３３１側で実行するため、予め用意されたライブラリをインポートした上で、アプリケーションプログラム３２１Ｓに示したようなデコレータ（アノテーション）を記述する。なお、図示の例ではｐｙｔｈｏｎを用いる例を示すが、プログラムの言語はこれに限定されるものではない。【０１５２】
アプリケーション実行部３３１で、アプリケーションプログラム３２１Ｓの処理を進めていくと同時に、アプリケーション実行部３３１にて関数出力データに関数入力データのタグ情報を継承させていく処理が並行して実行されていく。【０１５３】
アプリケーション実行部３３１で継承されたタグ情報が、フィルタリング判定部３３２におけるタグに対応するデータのフィルタリングの対象として利用される。【０１５４】
アプリケーションプログラム３２１Ｓの行１５０１では、データの送信の際に除外するタグをキーにて指定する。図示の例では、データキーに“ｋｅｌｖｉｎ”のタグが含まれていても、“ｋｅｌｖｉｎ”に紐づくタグ“ｔ＿ｋｅｌｖｉｎ”は付与されない。【０１５５】
アプリケーションプログラム３２１Ｓの行１５０２では、データの送信の際に除外するタグを直接指定する、図示の例では、タグに“ｔ＿ｔｅｍｐｅｒａｔｕｒｅ”が含まれていても、タグ“ｔ＿ｔｅｍｐｅｒａｔｕｒｅ”は付与されない。【０１５６】
アプリケーションプログラム３２１Ｓの行１５０３では、追加するタグを直接指定する。図示の例では、タグに“ｔ＿ｅｎｖｉｒｏｎｍｅｎｔ”を付与する。【０１５７】
行１５０１〜行１５０３の情報を前提に、アプリケーション実行部３３１は、関数（ｆｕｎｃ）の引数として入力された辞書型データのタグを全て取得し、出力データにタグとして付与する。関数“ｆｕｎｃ”は辞書型データｄａｔａを入力とする。この関数の出力データキー“ｅｄｉｔ＿ｔｅｍｐ”は、基本的に入力データのキー群“ｔｅｍｐ”が持つタグと“ｋｅｌｖｉｎ”が持つタグを継承する。【０１５８】
ただし、行１５０１によるキー”ｋｅｌｖｉｎ”のタグの除外と、行１５０２によるタグ“ｔ＿ｔｅｍｐｅｒａｔｕｒｅ”の除外と、行１５０１によるタグ“ｔ＿ｅｎｖｉｒｏｎｍｅｎｔ”の追加が行われる。【０１５９】
なお、タグ情報の継承処理１５００は、図示の例に限定されるものではない。本実施例では、データタグを用いる例について説明したが、その他のメタ情報（例：データ書込時のタイムスタンプ情報など）の継承に応用してもよい。【０１６０】
以上のように、アプリケーション実行部３３１は、図８に示したステップ８１２のアプリケーションプログラム３２１の実行処理の際に、アプリケーションプログラム３２１で使用されたデータのタグの継承処理を行うことで、アプリケーションプログラム３２１でどのようなデータを入出力したか（アプリケーションの実行状態）をトレースしてタグ情報（送信データ情報）１５１１として生成することができる。【０１６１】
そして、アプリケーション実行部３３１は、タグ情報１５１１のタグ（ラベル）を送信データ情報として、フィルタリング判定部３３２に出力し、拠点１００の外部へ送信するデータの可否の判定を依頼する。【０１６２】
以上説明したように、本実施例の計算機システムでは、拠点１００間でデータの送信又は転送を行う際に、拠点１００が所属する領域５００のデータの流通に関する制限に応じてデータ受渡しポリシー３２３を設定しておくことで、領域５００の外部への送信が禁止されているデータを置換用ダミーデータ３２４へ自動的に置き換えることが可能となる。【０１６３】
これにより、拠点１００のアプリケーションサーバ１２０は、領域５００におけるデータの流通に関する制限を遵守しながら、拠点１００間でのデータの転送を確実に行うことが可能となり、データの流通に関する制限が厳しい領域５００に所属する拠点１００が存在しても、複数の拠点１００間で連携して処理を行うことが可能となる。【０１６４】
また、アプリケーション実行部３３１は、拠点１００毎のデータ受渡しポリシー３２３に則って受渡し不可のデータが拠点１００から送信されるのを防ぎ、当該データを扱うアプリケーションの開発を容易にするため、タグ（ラベル）が付与されたデータと、データのタグで受渡し不可のデータを指定するデータ受渡しポリシー３２３と、デプロイされたアプリケーションプログラム３２１を構成するメソッド（処理）群で前記データがどのように入力又は出力されたかをトレースしてタグ情報１５１１を生成する。【０１６５】
さらに、アプリケーション実行部３３１は、トレースの結果（タグ情報１５１１）と、送信経路情報に応じたデータ受渡しポリシー３２３を参照して拠点１００の外部へ送信不可のデータを含むか否かを判定するフィルタリング判定部３３２と、フィルタリング判定部３３２の判定結果に基づいて、受渡しできないデータをダミーデータに置換するフィルタリング結果反映部３３３とを有し、フィルタリング判定部３３２で受渡し不可と判定されたデータがある場合には、当該データをダミーデータに置換して送信し、アプリケーションプログラム３２１の開発者向けに受渡し不可データの情報とダミーデータへ置換した旨を通知する。【０１６６】
これにより、開発サーバ３０１を利用するアプリケーションプログラム３２１の開発担当者等が、アプリケーションプログラム３２１を展開する拠点１００毎に法令等を解釈して、拠点１００から外部へ送信可能なデータの種類を判定する必要がなくなって、前記従来例のような法令等を解釈する労力は不要となって、アプリケーションプログラム３２１の開発コストを低減することができる。【０１６７】
また、本実施例では、領域５００や拠点１００などのボーダーを通過してデータが送信されるタイミングを、データ受渡しポリシー３２３を参照するタイミングとすることで、データが拠点１００や領域５００から外部へ送信され、他の拠点１００へ到着するまでデータの流通に関する制限を検証することができる。これにより、送信側の拠点１００は、異なる領域へデータが出入りする前に置換用ダミーデータ３２４への置換の要否を判定することが可能となる。【０１６８】
また、上記実施例では、開発サーバ３０１、アプリケーションサーバ１２０を物理計算機の例を示したが、仮想計算機やコンテナで実現してもよい。
＜結び＞【０１６９】
以上のように、上記実施例の計算機システムは、以下のような構成とすることができる。【０１７０】
（１）プロセッサ（４１３）とメモリ（４１１）を含む計算機（アプリケーションサーバ１２０）を有する複数の拠点（１００）間でデータを処理する計算機システムであって、前記計算機（１２０）は、データに所定の処理を行うアプリケーション（アプリケーションプログラム３２１）と、前記アプリケーション（３２１）の実行を管理する実行管理部（アプリケーション実行プログラム３２２）と、前記アプリケーション（３２１）の処理結果のデータについて外部への送信の可否を予め設定したデータ受渡しポリシー（３２３）と、を有し、前記実行管理部（３２２）は、前記アプリケーション（３２１）が実行中に使用したデータの情報を送信データ情報（タグ情報１５１１）として生成し、前記送信データ情報（１５１１）のデータに前記データ受渡しポリシー（３２３）を適用して、前記拠点（１００）の外部への送信の可否を判定する。【０１７１】
上記構成により、拠点１００間でデータの送信又は転送を行う際に、拠点１００が所属する領域５００のデータの流通に関する制限に応じてデータ受渡しポリシー３２３を設定しておくことで、領域５００の外部への送信が禁止されているデータを容易に判定することができる。【０１７２】
（２）上記（１）に記載の計算機（１２０）システムであって、前記実行管理部（３２２）は、前記データが外部への送信が禁止されていると判定した場合、前記アプリケーション（３２１）の処理結果の前記データに前記データ受渡しポリシー（３２３）で予め設定された処理を適用する。【０１７３】
上記構成により、拠点１００間でデータの送信又は転送を行う際に、拠点１００が所属する領域５００のデータの流通に関する制限に応じてデータ受渡しポリシー３２３を設定しておくことで、領域５００の外部への送信が禁止されているデータに予め設定された処理を自動的に適用することができる。【０１７４】
（３）上記（２）に記載の計算機（１２０）システムであって、前記予め設定された処理は、前記データを予め設定されたダミーデータ（置換用ダミーデータ３２４）に置換する。【０１７５】
上記構成により、拠点１００間でデータの送信又は転送を行う際に、拠点１００が所属する領域５００のデータの流通に関する制限に応じてデータ受渡しポリシー３２３を設定しておくことで、領域５００の外部への送信が禁止されているデータを予め設定された置換用ダミーデータ３２４に置換することができる。【０１７６】
（４）上記（３）に記載の計算機（１２０）システムであって、前記予め設定された処理は、前記外部への送信が禁止されたデータを予め設定されたダミーデータに置換したことを示す通知（８２０）を出力する。【０１７７】
上記構成により、データ受渡しポリシー３２３で外部への送信が禁止されたデータを置換した場合も、ステップ８１９と同様に処理し、ステップ８２０では、外部への送信が禁止されたデータを置換した旨をクライアント８００へ通知することができる。クライアント８００を利用するアプリケーションプログラム３２１の開発担当者へ、拠点１００が所属する領域５００の制限によって、アプリケーションプログラム３２１の処理結果が置換用ダミーデータ３２４に置換されたことを報知できる。【０１７８】
（５）上記（１）に記載の計算機（１２０）システムであって、前記データ受渡しポリシー（３２３）は、前記アプリケーション（３２１）の処理結果の送信先に応じて予め設定される。【０１７９】
上記構成により、アプリケーションプログラム３２１の処理結果の送信先に応じたデータの制限を設定することができる。【０１８０】
（６）上記（１）に記載の計算機（１２０）システムであって、前記拠点（１００）の外部は、当該拠点（１００）が所属する領域（５００）とは、データの流通に関する制限が異なる領域である。【０１８１】
上記構成により、データの流通に関する制限（法令）などが異なる国や地域で構成された領域間で、送受信が禁止されているデータの流通を自動的に制御することが可能となる。【０１８２】
上記開示は、代表的実施形態に関して記述されているが、当業者は、開示される主題の趣旨や範囲を逸脱することなく、形式及び細部において、様々な変更や修正が可能であることを理解するであろう。【０１８３】
例えば、上記した実施例は本発明を分かりやすく説明するために詳細に記載したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加、削除、又は置換のいずれもが、単独で、又は組み合わせても適用可能である。【０１８４】
また、上記の各構成、機能、処理部、及び処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、及び機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記録装置、又は、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に置くことができる。【０１８５】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【図１】
2021059564.tif 000003
【図２】
2021059564.tif 000004
【図３】
2021059564.tif 000005
【図４】
2021059564.tif 000006
【図５】
2021059564.tif 000007
【図６】
2021059564.tif 000008
【図７Ａ】
2021059564.tif 000009
【図７Ｂ】
2021059564.tif 000010
【図８】
2021059564.tif 000011
【図９】
2021059564.tif 000012
【図１０】
2021059564.tif 000013
【図１１】
2021059564.tif 000014
【図１２】
2021059564.tif 000015
【図１３】
2021059564.tif 000016
【図１４】
2021059564.tif 000017
【図１５】
2021059564.tif 000018
【国際調査報告】
2021059564.tif 000019
2021059564.tif 000020
2021059564.tif 000021
2021059564.tif 000022