(57)【要約】【課題】本発明は、データ処理の実行時間を短縮するとともに、記憶領域の容量を低減することが可能なデータ処理装置およびデータ処理方法を提供することを目的とする。【解決手段】本発明によるデータ処理装置１は、プロセスを構成するサービスと、プロセスがデータ処理を行う際にサービスを呼び出す順序とを定義するプロセス定義２を解析し、同一のデータ処理結果が得られるサービス呼出があるか否かを検出するプロセス解析部１１と、プロセス解析部１１にて検出されたサービス呼出と、当該サービス呼出を有するプロセスとを対応付けて記憶するサービス呼出関係記憶部１２と、サービス呼出関係記憶部１２に記憶されたサービス呼出によるデータ処理結果を記憶する結果情報記憶部１４と、プロセス定義２と、結果情報記憶部１４に記憶されたデータ処理結果とに基づいて、データ処理を実行するプロセス実行部１３とを備える。【選択図】図１
2014235675.tif 000002
【特許請求の範囲】
【請求項１】
複数のサービスを組み合わせて構成され一連のデータ処理を行うプロセスについて、前記プロセスを構成する前記サービスと、前記プロセスが前記データ処理を行う際に前記サービスを呼び出す順序とを定義するプロセス定義を解析し、同一のデータ処理結果が得られるサービス呼出があるか否かを検出するプロセス解析部と、
前記プロセス解析部にて検出された前記サービス呼出と、当該サービス呼出を有する前記プロセスとを対応付けて記憶するサービス呼出関係記憶部と、
前記サービス呼出関係記憶部に記憶された前記サービス呼出による前記データ処理結果を記憶する結果情報記憶部と、
前記プロセス定義と、前記結果情報記憶部に記憶された前記データ処理結果とに基づいて、前記データ処理を実行するプロセス実行部と、
を備える、データ処理装置。
【請求項２】
前記プロセス実行部は、前記サービス呼出関係記憶部に記憶された前記サービス呼出を行う全ての前記プロセスの実行が完了すると、当該実行が完了した前記プロセスが呼び出していた前記サービス呼出の前記データ処理結果を前記結果情報記憶部から消去することを特徴とする、請求項１に記載のデータ処理装置。
【請求項３】
前記プロセス実行部は、前記サービス呼出関係記憶部に記憶された前記プロセスの実行を完了すると当該完了した旨の情報を前記サービス呼出関係記憶部に記憶させ、前記サービス呼出関係記憶部に記憶された前記完了した旨の情報に基づいて、前記サービス呼出関係記憶部に記憶された前記サービス呼出を行う全ての前記プロセスの実行が完了したか否かを判断することを特徴とする、請求項２に記載のデータ処理装置。
【請求項４】
前記プロセスの実行順序を定義したプロセス実行順序定義を作成するプロセス実行順序定義作成部をさらに備え、
前記プロセス実行順序定義作成部は、前記サービス呼出関係記憶部に記憶された前記サービス呼出および前記プロセスに基づいて前記プロセス実行順序定義を作成し、
前記プロセス実行部は、前記プロセス実行順序定義に基づいて前記データ処理を実行することを特徴とする、請求項１ないし３のいずれかに記載のデータ処理装置。
【請求項５】
前記プロセス実行順序定義作成部は、前記プロセスの前記実行順序の優先度を定義したプロセス実行順序優先度定義に基づいて前記プロセス実行順序定義を作成することを特徴とする、請求項４に記載のデータ処理装置。
【請求項６】
（ａ）複数のサービスを組み合わせて構成され一連のデータ処理を行うプロセスについて、前記プロセスを構成する前記サービスと、前記プロセスが前記データ処理を行う際に前記サービスを呼び出す順序とを定義するプロセス定義を解析し、同一のデータ処理結果が得られるサービス呼出があるか否かを検出する工程と、
（ｂ）前記プロセス解析部にて検出された前記サービス呼出と、当該サービス呼出を有する前記プロセスとを対応付けてサービス呼出関係記憶部に記憶する工程と、
（ｃ）前記サービス呼出関係記憶部に記憶された前記サービス呼出による前記データ処理結果を記憶する工程と、
（ｄ）前記プロセス定義と、前記結果情報記憶部に記憶された前記データ処理結果とに基づいて、前記データ処理を実行する工程と、
を備える、データ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置に関し、特に、ＳＯＡ（Service Oriented Architecture）のようなメッセージバスを通じたサービス連係技術を用いたデータ処理装置およびデータ処理方法に関する。
【背景技術】
【０００２】
ＳＯＡとは、複数のサービスを組み合わせてシステムを構築する設計手法のことである。また、サービスとは、意味のある単位の機能を持つ一まとまりソフトウェアの集合であって、標準化された手順に従って外部から呼び出されるものである。ここで、意味のあるとは、業務上、あるいは人間にとって何らかの意味があることをいう。
【０００３】
外部から呼び出されたサービスは、呼び出される際に外部から与えられたデータ、あるいは呼び出されるサービス側で保存しているデータを用いて、データの演算や値の変換などのデータ処理を行い、当該データ処理の結果を要求元である外部に返却する。なお、複数のサービスを組み合わせて構成された一連のデータ処理のことをプロセスという。
【０００４】
ＳＯＡに基づいたシステムを構築する上で、ＥＳＢ（Enterprise Service Bus）と呼ばれるミドルウェアを用いることが多い。ＥＳＢとは、複数のサービス間の連係や、外部システムとサービスとの間の連係を行うミドルウェアである。ＥＳＢでは、メッセージバスを提供しており、当該メッセージバスを介して、複数のサービス間や、外部システムとサービスとの間でメッセージの交換を行うことによって複数のサービス、あるいは外部システムとサービスとを連係させてプロセスとして実行している。
【０００５】
従来、ＥＳＢを用いたシステムとしては、プロセスの実行時間を短縮するために、各サービスのデータ処理の結果を保存し、当該保存したデータ処理の結果を他のサービスが再利用することによって同一の処理を何度も行わないようにする技術が開示されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００１−３４３９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
各地の降水量や気温などを一定時間ごとに計測して一元管理する気象観測データ管理システムや、電力量メータの検針値を中央サーバで管理するメータデータ管理システムなど、計測データが所定の周期で更新され、当該更新に合わせてプロセスが実行されるシステムがある。このようなシステムでは、将来予測や地域別の分析など、計測データが多岐に渡って利用されるため、複数のプロセスによってデータ処理が行われる。
【０００８】
近年では、計測対象が増えて計測データが大量になってきているため、データ処理に要する時間が増加する傾向にある。一方、更新された最新の計測データが再び更新される前に、実行すべき一連のプロセスを完了させる必要があるため、プロセスの実行時間の短縮が図られる。
【０００９】
例えば、上記の気象観測データ管理システムにおいて、当日と前年同日との気温差を算出するプロセス（以下、前年比較プロセスという）と、当日と前日との気温差を算出するプロセス（以下、前日比較プロセスという）とがあると仮定する。このような気象観測データ管理システムでは、過去の計測データ（ここでは、過去の気温データ）が膨大になるため、過去の計測データを格納する装置は、最新の計測データ（ここでは、最新の気温データ）を格納する装置と別個に設けられる場合がある。
【００１０】
このとき、前年比較プロセスおよび前日比較プロセスは、過去の計測データを取得するサービスを利用して前年同日の気温情報あるいは前日の気温情報を取得し、過去の計測データを取得するサービスとは異なる別の最新の計測データを取得するサービスを利用して当日の気温情報を取得する。その後、各プロセスにおいて、過去の計測データと最新の計測データとが比較された結果が出力される。
【００１１】
上記の気象観測データ管理システムでは、サービスの呼び出しに要する時間を短縮させ、プロセスの実行時間の短縮を図っている。例えば、観測地点が膨大になると、取得する気温情報（計測データ）のデータサイズも膨大になるため、気温情報の取得に多くの時間を要する。そこで、各プロセスにおいて呼び出したサービスの結果（処理結果）である気温情報を一時保存し、保存した気温情報をプロセス間で再利用することによってサービスの呼び出し回数を減らし、データ処理に要する時間を短縮している。
【００１２】
特許文献１では、各プロセスにおいて呼び出したサービスの結果を全て一時保存することによってサービスの呼び出し回数を低減しているが、サービスの結果を一時保存するための記憶領域の容量を逼迫させてしまうという問題があった。すなわち、上記の例に照らせば、複数のプロセス（前年比較プロセス、前日比較プロセス）間で再利用される「当日の気温情報」だけでなく、再利用しない「前年同日の気温情報」や「前日の気温情報」までも保存するため、当該保存に要する記憶領域の容量が逼迫されてしまうという問題がある。
【００１３】
本発明は、これらの問題を解決するためになされたものであり、データ処理の実行時間を短縮するとともに、記憶領域の容量を低減することが可能なデータ処理装置およびデータ処理方法を提供することを目的とする。
【課題を解決するための手段】
【００１４】
上記の課題を解決するために、本発明によるデータ処理装置は、複数のサービスを組み合わせて構成され一連のデータ処理を行うプロセスについて、プロセスを構成するサービスと、プロセスがデータ処理を行う際にサービスを呼び出す順序とを定義するプロセス定義を解析し、同一のデータ処理結果が得られるサービス呼出があるか否かを検出するプロセス解析部と、プロセス解析部にて検出されたサービス呼出と、当該サービス呼出を有するプロセスとを対応付けて記憶するサービス呼出関係記憶部と、サービス呼出関係記憶部に記憶されたサービス呼出によるデータ処理結果を記憶する結果情報記憶部と、プロセス定義と、結果情報記憶部に記憶されたデータ処理結果とに基づいて、データ処理を実行するプロセス実行部とを備える。
【００１５】
また、本発明によるデータ処理方法は、（ａ）複数のサービスを組み合わせて構成され一連のデータ処理を行うプロセスについて、プロセスを構成するサービスと、プロセスがデータ処理を行う際にサービスを呼び出す順序とを定義するプロセス定義を解析し、同一のデータ処理結果が得られるサービス呼出があるか否かを検出する工程と、（ｂ）プロセス解析部にて検出されたサービス呼出と、当該サービス呼出を有するプロセスとを対応付けてサービス呼出関係記憶部に記憶する工程と、（ｃ）サービス呼出関係記憶部に記憶されたサービス呼出によるデータ処理結果を記憶する工程と、（ｄ）プロセス定義と、結果情報記憶部に記憶されたデータ処理結果とに基づいて、データ処理を実行する工程とを備える。
【発明の効果】
【００１６】
本発明によると、データ処理装置は、複数のサービスを組み合わせて構成され一連のデータ処理を行うプロセスについて、プロセスを構成するサービスと、プロセスがデータ処理を行う際にサービスを呼び出す順序とを定義するプロセス定義を解析し、同一のデータ処理結果が得られるサービス呼出があるか否かを検出するプロセス解析部と、プロセス解析部にて検出されたサービス呼出と、当該サービス呼出を有するプロセスとを対応付けて記憶するサービス呼出関係記憶部と、サービス呼出関係記憶部に記憶されたサービス呼出によるデータ処理結果を記憶する結果情報記憶部と、プロセス定義と、結果情報記憶部に記憶されたデータ処理結果とに基づいて、データ処理を実行するプロセス実行部とを備えるため、データ処理の実行時間を短縮するとともに、記憶領域の容量を低減することが可能となる。
【００１７】
また、データ処理方法は、（ａ）複数のサービスを組み合わせて構成され一連のデータ処理を行うプロセスについて、プロセスを構成するサービスと、プロセスがデータ処理を行う際にサービスを呼び出す順序とを定義するプロセス定義を解析し、同一のデータ処理結果が得られるサービス呼出があるか否かを検出する工程と、（ｂ）プロセス解析部にて検出されたサービス呼出と、当該サービス呼出を有するプロセスとを対応付けてサービス呼出関係記憶部に記憶する工程と、（ｃ）サービス呼出関係記憶部に記憶されたサービス呼出によるデータ処理結果を記憶する工程と、（ｄ）プロセス定義と、結果情報記憶部に記憶されたデータ処理結果とに基づいて、データ処理を実行する工程とを備えるため、データ処理の実行時間を短縮するとともに、記憶領域の容量を低減することが可能となる。
【図面の簡単な説明】
【００１８】
【図１】本発明の実施の形態１によるデータ処理装置の構成の一例を示すブロック図である。
【図２】本発明の実施の形態１によるプロセス定義の概念の一例を示す図である。
【図３】本発明の実施の形態１によるプロセス定義の設定の一例を示す図である。
【図４】本発明の実施の形態１によるデータ処理装置の動作の一例を示すフローチャートである。
【図５】本発明の実施の形態１によるプロセス定義の概念の一例を示す図である。
【図６】本発明の実施の形態１によるプロセス定義の木構造の一例を示す図である。
【図７】本発明の実施の形態１によるサービス呼出関係記憶部の構成の一例を示す図である。
【図８】本発明の実施の形態１によるプロセス定義の木構造の一例を示す図である。
【図９】本発明の実施の形態１によるサービス呼出関係記憶部の構成の一例を示す図である。
【図１０】本発明の実施の形態１によるプロセス定義の木構造の一例を示す図である。
【図１１】本発明の実施の形態１によるサービス呼出関係記憶部の構成の一例を示す図である。
【図１２】本発明の実施の形態１によるプロセス定義の木構造の一例を示す図である。
【図１３】本発明の実施の形態１によるプロセス実行部の動作の一例を示すフローチャートである。
【図１４】本発明の実施の形態２によるサービス呼出関係記憶部の構成の一例を示す図である。
【図１５】本発明の実施の形態２によるプロセス実行部の動作の一例を示すフローチャートである。
【図１６】本発明の実施の形態３によるデータ処理装置の構成の一例を示すブロック図である。
【図１７】本発明の実施の形態３によるサービス呼出関係記憶部の構成の一例を示す図である。
【図１８】本発明の実施の形態３によるプロセス実行順序定義の一例を示す図である。
【図１９】本発明の実施の形態３によるデータ処理装置の動作の一例を示すフローチャートである。
【図２０】本発明の実施の形態３によるプロセス実行部の動作の一例を示すフローチャートである。
【図２１】本発明の実施の形態４によるデータ処理装置の構成の一例を示すブロック図である。
【図２２】本発明の実施の形態４によるプロセス実行順序優先度定義の一例を示す図である。
【図２３】本発明の実施の形態４によるデータ処理装置の動作の一例を示すフローチャートである。
【発明を実施するための形態】
【００１９】
本発明の実施の形態について、図面に基づいて以下に説明する。
【００２０】
＜実施の形態１＞
図１は、本発明の実施の形態１によるデータ処理装置１の構成の一例を示すブロック図である。
【００２１】
図１に示すように、本実施の形態１によるデータ処理装置１は、プロセス解析部１１と、サービス呼出関係記憶部１２と、プロセス実行部１３と、結果情報記憶部１４とを備えている。また、データ処理装置１は、サービスを提供する外部のサービス提供装置１０１〜１０３に対して、当該サービスを呼び出し、それらのサービスを連係させ、１つのプロセスで最終的なデータ処理結果であるプロセス結果を、プロセス結果格納装置２０１や、当該プロセス結果を要求する外部装置２０２に送信する。
【００２２】
プロセス解析部１１は、プロセス定義２（後述する）を解析し、同一のデータ処理結果が得られるサービス呼出があるか否かを検出する。ここで、サービス呼出とは、複数のサービスを組み合わせて構成され一連のデータ処理を行うプロセスにおいて、当該プロセスがデータ処理を行うときに呼び出される順序を考慮したサービスのことをいう。
【００２３】
サービス呼出関係記憶部１２は、プロセス解析部１１にて検出されたサービス呼出と、当該サービス呼出を有するプロセスとを対応付けて記憶する。
【００２４】
結果情報記憶部１４は、サービス呼出関係記憶部に記憶されたサービス呼出によるデータ処理結果を記憶する。
【００２５】
プロセス実行部１３は、プロセス定義２と、結果情報記憶部１４に記憶されたデータ処理結果とに基づいて、データ処理を実行する。
【００２６】
図２は、プロセス定義２の概念の一例を示す図である。また、図３は、プロセス定義の設定の一例を示す図である。
【００２７】
プロセス定義２は、システム（ここでは、データ処理装置１）の振る舞いを決定するものであり、多くの場合は、人が設定してシステム内に格納するが、システムの外部から所定の入力を受け、当該入力に基づいてシステム自身が自動的に生成する場合もある。
【００２８】
図２において、四角形はサービスの呼び出しを行うことを示しており、楕円形はデータを示している。以下、プロセスＡにおけるサービスの呼び出し順序について説明する。
【００２９】
図２に示すように、まず、入力なしでサービス１−ｃを呼び出し、サービス１−ｃによるデータ処理の結果としてデータＸが得られる。その後、データＸを入力としてサービス２−ｂを呼び出し、サービス２−ｂによるデータ処理の結果としてデータＹが得られる。
【００３０】
一方、固有の入力値であるデータＶを入力としてサービス２−ｃを呼び出し、サービス２−ｃによるデータ処理の結果としてデータＷが得られる。
【００３１】
次いで、データＹおよびデータＷを併せて１つの入力としてサービス３−ａを呼び出し、サービス３−ａによるデータ処理の結果としてデータＺが得られる。すなわち、プロセスＡは、全体のデータ処理の結果としてデータＺを得る。
【００３２】
このように、サービスには、入力となるデータを不要とするサービス（例えば、サービス１−ｃ）と、入力となる１つ以上のデータ、あるいはプロセスごとに固有の入力値を必要とするサービス（例えば、サービス２−ｂ、サービス２−ｃ、サービス３−ａ）とがある。呼び出したサービスの出力（データ処理の結果）を次に呼び出すサービスの入力とし、一連のサービスを順に呼び出すことによって、各サービスを連係させている。
【００３３】
上述の気象観測データ管理システムやメータデータ管理システムでは、一定時間（所定の周期）ごとに、１つあるいは複数のプロセスを実行する。このようなシステムに本実施の形態１によるデータ処理装置１を適用した場合おいて、プロセス解析部１１は、プロセスの実行の開始前にプロセス定義２の全てを読み込み、読み込んだ全てのプロセスにおいて同一のデータ処理の結果が得られるようなサービスの呼び出しがあるか否か、すなわち、呼び出すサービス名と入力データが同じであるようなサービスの呼び出しがあるか否かを検索（解析）する。その後、プロセス実行部１３は、検出されたサービスについて呼び出しを行わず、当該検出されたサービスのデータ処理の結果を再利用する。なお、プロセス解析部１１がプロセス定義２を読み込むタイミングは、一定時間（所定の周期）ごとであってもよく、上述の各システムの稼動前あるいは拡張時に一度読み込むのみとしてもよい。
【００３４】
次に、データ処理装置１の動作（プロセス解析部１１およびプロセス実行部１３の処理）について、図４〜１３を用いて詳細に説明する。
【００３５】
図４は、データ処理装置１の動作の一例を示すフローチャートである。図４では、プロセス解析部１１が一定時間ごとにプロセス定義２を読み込む場合を示している。
【００３６】
図５は、プロセス定義２の概念の一例を示す図であり、プロセスＡ、プロセスＢ、およびプロセスＣの各プロセス定義２を概念化したものである。図５では、図３とは異なり、各サービス間のデータの図示を省略している。以下、プロセス定義２では、図５に示す各プロセスおよび各サービスが定義されているものとして説明する。
【００３７】
ステップＳ１０１において、プロセス解析部１１は、プロセス定義２を木構造で読み込む。具体的に、プロセス解析部１１は、プロセス定義２で定義される各プロセスについて、各プロセスを構成する一連のサービスのうち、最後に呼び出されるサービスを根とする木構造で読み込む。図６は、プロセス解析部１１が読み込んだ各プロセスの木構造を示している。
【００３８】
ステップＳ１０２において、プロセス解析部１１は、各プロセスの木構造の葉の部分から深さ１の部分を対象とし、同一の部分木構造が含まれているか否かを検索する。すなわち、図６に示す各プロセスあるいは同一のプロセスにおいて、最下段（木構造の葉の部分から深さ１の部分）に位置するサービスあるいは固有の入力値（以下、サービスあるいは固有の入力値を部分木構造ともいう）を対象とし、部分的に同一の木構造となっている箇所（以下、同一部分木構造箇所）を検索する。
【００３９】
ステップＳ１０３において、プロセス解析部１１は、各プロセスあるいは同一プロセスにおいて、同一部分木構造箇所があるか否かを判断する。同一部分木構造箇所がある場合は、ステップＳ１０４に移行する。一方、同一部分木構造箇所がない場合は、ステップＳ１０６に移行する。図６では、プロセスＢおよびプロセスＣにおいてサービス１−ａが呼び出されており、プロセスＣ内でもサービス１−ａが複数回呼び出されている。従って、ステップＳ１０４に移行する。
【００４０】
ステップＳ１０４において、プロセス解析部１１は、サービス呼出関係記憶部１２に検出結果である部分木構造（１−ａ）を追記する。
【００４１】
図７は、サービス呼出関係記憶部１２の構成の一例を示しており、深さ１での検索結果を示している。図７に示すように、サービス呼出関係記憶部１２において、部分木構造の欄には、プロセス解析部１１にて検出された部分木構造（１−ａ）が記憶される（図７のＮｏ．１を参照）。このとき、部分木構造（１−ａ）は、便宜上、キーαに置き換えられる（置換後のキーの欄にはαが記憶される）。図８は、キーαに置き換えられた後の各プロセスの木構造を示している。
【００４２】
また、サービス呼出関係記憶部１２では、キャッシュ処理の有無の欄、および該当プロセスの欄が編集される。部分木構造（１−ａ）によるデータ処理の結果は結果情報記憶部１４に記憶される対象となるため、キャッシュ処理の有無の欄は「有」とする。該当プロセスの欄には、部分木構造（１−ａ）を有するプロセスの名称（プロセスＢ、プロセスＣ）が記憶される。
【００４３】
図４に戻り、ステップＳ１０５において、プロセス解析部１１は、深さを１つ下げ（深さ２に下げ）、深さ２における同一部分木構造箇所を検索する。具体的に、図８において、αから始まる深さ２における同一部分木構造箇所を検索する。
【００４４】
図８に示すように、αの呼び出しに続いてサービス２−ｂを呼び出している箇所が複数あり、当該サービス２−ｂが同一部分木構造箇所となる。従って、プロセス解析部１１は、ステップＳ１０３において同一部分木構造箇所があると判断し、ステップＳ１０４においてサービス呼出関係記憶部１２に検出結果である部分木構造α（２−ｂ）を追記する。ここで、α（２−ｂ）とは、αに続いてサービス２−ｂが呼び出されていることを示している。
【００４５】
図９は、サービス呼出関係記憶部１２の構成の一例を示しており、深さ２での検索結果を示している。図９に示すように、サービス呼出関係記憶部１２において、部分木構造の欄には、プロセス解析部１１にて検出された部分木構造α（２−ｂ）が記憶される（図９のＮｏ．２を参照）。このとき、部分木構造α（２−ｂ）は、便宜上、キーβに置き換えられる（置換後のキーの欄にはβが記憶される）。図１０は、キーβに置き換えられた後の各プロセスの木構造を示している。
【００４６】
また、サービス呼出関係記憶部１２では、キャッシュ処理の有無の欄、および該当プロセスの欄が編集される。部分木構造α（２−ｂ）によるデータ処理の結果は結果情報記憶部１４に記憶される対象となるため、キャッシュ処理の有無の欄は「有」とする。該当プロセスの欄には、部分木構造α（２−ｂ）を有するプロセスの名称（プロセスＢ、プロセスＣ）が記憶される。
【００４７】
このとき、プロセス解析部１１は、図１０に示す各プロセスの木構造において、αが存在するか否かについても検索する。図１０では、全てのαはβに置換されているため、αのデータ処理の結果を結果情報記憶部１４に記憶する必要がない。従って、サービス呼出関係記憶部１２の部分木構造（１−ａ）におけるキャッシュ処理の有無の欄は「無」に書き換える（図９のＮｏ．１を参照）。
【００４８】
図４に戻り、ステップＳ１０５において、プロセス解析部１１は、深さを１つ下げ（深さ３に下げ）、深さ３における同一部分木構造箇所を検索する。具体的に、図１０において、βから始まる深さ３における同一部分木構造箇所を検索する。
【００４９】
図１０に示すように、βの呼び出しに続いてサービス１−ｂを呼び出している箇所が複数あり、当該サービス１−ｂが同一部分木構造箇所となる。従って、プロセス解析部１１は、ステップＳ１０３において同一部分木構造箇所があると判断し、ステップＳ１０４においてサービス呼出関係記憶部１２に検出結果である部分木構造β（１−ｂ）を追記する。ここで、β（１−ｂ）とは、βに続いてサービス１−ｂが呼び出されていることを示している。
【００５０】
図１１は、サービス呼出関係記憶部１２の構成の一例を示しており、深さ３での検索結果を示している。図１１に示すように、サービス呼出関係記憶部１２において、部分木構造の欄には、プロセス解析部１１にて検出された部分木構造β（１−ｂ）が記憶される（図１１のＮｏ．３を参照）。このとき、部分木構造β（１−ｂ）は、便宜上、キーγに置き換えられる（置換後のキーの欄にはγが記憶される）。図１２は、キーγに置き換えられた後の各プロセスの木構造を示している。
【００５１】
また、サービス呼出関係記憶部１２では、キャッシュ処理の有無の欄、および該当プロセスの欄が編集される。部分木構造β（１−ｂ）によるデータ処理の結果は結果情報記憶部１４に記憶される対象となるため、キャッシュ処理の有無の欄は「有」とする。該当プロセスの欄には、部分木構造β（１−ｂ）を有するプロセスの名称（プロセスＢ、プロセスＣ）が記憶される。
【００５２】
このとき、プロセス解析部１１は、図１２に示す各プロセスの木構造において、βが存在するか否かについても検索する。図１２では、プロセスＣにβが存在しているため、βのデータ処理の結果を結果情報記憶部１４に記憶する必要がある。従って、サービス呼出関係記憶部１２の部分木構造α（２−ｂ）におけるキャッシュ処理の有無の欄は「有」のままにしておく（図１１のＮｏ．２を参照）。
【００５３】
図４に戻り、ステップＳ１０５において、プロセス解析部１１は、深さを１つ下げ（深さ４に下げ）、深さ４における同一部分木構造箇所を検索する。具体的に、図１２において、γから始まる深さ４における同一部分木構造箇所を検索する。図１２では、同一部分木構造箇所が検索されないため、ステップＳ１０６に移行する。
【００５４】
ステップＳ１０６において、プロセス実行部１３は、サービス呼出関係記憶部１２を参照し、全てのプロセス（プロセスＡ、プロセスＢ、プロセスＣ）を順に実行する。
【００５５】
上記より、データ処理装置１の動作（データ処理方法）は、（ａ）複数のサービスを組み合わせて構成され一連のデータ処理を行うプロセスについて、プロセスを構成するサービスと、プロセスがデータ処理を行う際にサービスを呼び出す順序とを定義するプロセス定義を解析し、同一のデータ処理結果が得られるサービス呼出があるか否かを検出する工程と、（ｂ）プロセス解析部にて検出されたサービス呼出と、当該サービス呼出を有するプロセスとを対応付けてサービス呼出関係記憶部に記憶する工程と、（ｃ）サービス呼出関係記憶部に記憶されたサービス呼出によるデータ処理結果を記憶する工程と、（ｄ）プロセス定義と、結果情報記憶部に記憶されたデータ処理結果とに基づいて、データ処理を実行する工程とを備える。
【００５６】
次に、プロセス実行部１３の動作の詳細について説明する。
【００５７】
図１３は、プロセス実行部１３の動作の一例を示すフローチャートであり、図４のステップＳ１０６の処理の詳細を示している。
【００５８】
ステップＳ２０１において、これから実行するプロセスを定め、定めたプロセスの実行を開始する。なお、本実施の形態１において、実行するプロセスはランダムに選択してもよく、プロセス名の昇順あるいは降順などでもよい。
【００５９】
ステップＳ２０２において、次に呼び出すサービスをプロセス定義２から取得する。
【００６０】
ステップＳ２０３において、ステップＳ２０２にて呼び出そうとしているサービスは、サービス呼出関係記憶部１２に記憶されているものか否かを判断する。すなわち、呼び出そうとしているサービスが、図１２に示すキーβあるいはキーγのようなキーに置換されたものであるか否かを判断する。呼び出そうとしているサービスがサービス呼出関係記憶部１２に記憶されていない場合は、ステップＳ２０４に移行する。一方、呼び出そうとしているサービスがサービス呼出関係記憶部１２に記憶されている場合はステップＳ２０５に移行する。
【００６１】
ステップＳ２０４において、サービスの呼び出しを行う。
【００６２】
ステップＳ２０５において、サービス呼出関係記憶部１２にて部分木構造として記憶されている一連のサービスのデータ処理の結果が、結果情報記憶部１４に記憶されているか否かを判断する。すなわち、図１１に示すキャッシュ処理の有無が「有」であるキー（キーβ、キーγ）に対応するサービスのデータ処理の結果が結果情報記憶部１４に記憶されているか否かを判断する。データ処理の結果が結果情報記憶部１４に記憶されていない場合は、ステップＳ２０６に移行する。一方、データ処理の結果が結果情報記憶部１４に記憶されている場合は、ステップＳ２０７に移行する。
【００６３】
ステップＳ２０６において、サービス呼出関係記憶部１２にて部分木構造として記憶されている一連のサービスの呼び出しを行い、当該一連のサービスのデータ処理の結果を結果情報記憶部１４に記憶する。
【００６４】
ステップＳ２０７において、サービス呼出関係記憶部１２にて部分木構造として記憶されている一連のサービスのデータ処理の結果を結果情報記憶部１４から取得する。
【００６５】
ステップＳ２０８において、現在実行しているプロセスにおける全てのサービスの呼び出しが終了したか否かを判断する。全てのサービスの呼び出しが終了した場合は、ステップＳ２０９に移行する。一方、全てのサービスの呼び出しが終了していない場合は、ステップＳ２０２に移行する。
【００６６】
ステップＳ２０９において、全てのプロセスの実行が終了したか否かを判断する。全てのプロセスの実行が終了した場合は、プロセス実行部１３の処理を終了する。一方、全てのプロセスの実行が終了していない場合は、ステップＳ２０１に移行する。
【００６７】
以上のことから、本実施の形態１によれば、全てのプロセス定義２をプロセスの実行前に読み込み、全てのサービスのデータ処理の結果を記憶するのではなく、再利用されるサービスのデータ処理の結果のみを結果情報記憶部１４に記憶している。従って、データ処理の実行時間を短縮するとともに、データ処理装置１における全体的な記憶領域の容量を低減することが可能となる。
【００６８】
＜実施の形態２＞
本発明の実施の形態２によるデータ処理装置１は、プロセス実行部１３が、サービス呼出関係記憶部１２に記憶されたサービス呼出を行う全てのプロセスの実行が完了すると、当該実行が完了したプロセスが呼び出していたサービス呼出のデータ処理結果を結果情報記憶部１４から消去することを特徴としている。なお、その他の構成および動作は、実施の形態１と同様であるため、ここでは説明を省略する。
【００６９】
図１４は、サービス呼出関係記憶部１２の構成の一例を示す図である。図１４に示すサービス呼出関係記憶部１２は、図１１に示すサービス呼出関係記憶部１２（実施の形態１）と比較して、実行完了プロセスの欄が新たに設けられている。その他は図１１に示すービス呼出関係記憶部１２と同様である。
【００７０】
図１５は、プロセス実行部１３の動作の一例を示すフローチャートである。なお、図１５のステップＳ３０１〜ステップＳ３０８の処理は、図１３のステップＳ２０１〜ステップＳ２０８の処理と同様であるため、説明を省略する。以下では、ステップＳ３０９以降について説明する。
【００７１】
ステップＳ３０９において、サービス呼出関係記憶部１２に、実行が完了したプロセスの名称を記憶させる。具体的に、プロセスの実行が完了するごとに、図１４に示すサービス呼出関係記憶部１２の実行完了プロセスの欄に、実行が完了したプロセスの名称を加える。すなわち、プロセス実行部１３は、サービス呼出関係記憶部１２に記憶されたプロセスの実行が完了すると当該完了した旨の情報をサービス呼出関係記憶部に記憶させる。
【００７２】
例えば、図１４では、キーαに対応する一連のサービスのデータ処理の結果はキャッシュ処理されないため（キャッシュ処理の有無が「無」であるため）、実行完了プロセスの欄は「−」となっている。また、キーβおよびキーγについて、プロセスＢでは実行が完了した状態であることを示している。
【００７３】
なお、図１４では、実行が完了したプロセスを実行完了プロセスの欄に示しているが、どのプロセスが実行を完了したのか、あるいはどのプロセスが未だ実行を完了していないのかが判断できればどのような方法であってもよい。
【００７４】
図１５に戻り、ステップＳ３１０において、サービス呼出記憶部の該当プロセスの欄に記載のプロセスが、全て実行されたか否かを判断する。具体的に、サービス呼出関係記憶部１２の該当プロセスの欄に記憶されたプロセスの名称を順に確認し、所定のキーについてそれに対応する一連のサービスを呼び出すプロセスが全て実行されたか否かを判断する。全て実行された場合は、ステップＳ３１１に移行する。一方、全て実行されていない場合は、ステップＳ３０１に移行する。すなわち、プロセス実行部１３は、サービス呼出関係記憶部１２に記憶されたプロセスの実行が完了した旨の情報に基づいて、サービス呼出関係記憶部１２に記憶されたサービス呼出を行う全てのプロセスの実行が完了したか否かを判断する。
【００７５】
ステップＳ３１１において、結果情報記憶部１４から、所定のキーについてそれに対応する一連のサービスのデータ処理の結果を消去する。
【００７６】
ステップＳ３１２において、全てのプロセスの実行が終了したか否かを判断する。全てのプロセスの実行が終了した場合は、プロセス実行部１３の処理を終了する。一方、全てのプロセスの実行が終了していない場合は、ステップＳ３０１に移行する。
【００７７】
以上のことから、本実施の形態２によれば、実施の形態１による効果に加えて、再利用されなくなったサービスのデータ処理の結果を結果情報記憶部１４から消去することによって、より少ない記憶容量で一連のプロセスを実行することが可能となる。
【００７８】
＜実施の形態３＞
図１６は、本発明の実施の形態３によるデータ処理装置１の構成の一例を示すブロック図である。
【００７９】
図１６に示すように、本実施の形態３によるデータ処理装置１は、プロセス実行順序定義作成部１５を備え、プロセス実行順序定義作成部１５がプロセス実行順序定義３を作成することを特徴としている。プロセス実行順序定義３は、プロセスの実行順序を定義したものである。なお、その他の構成および動作は、実施の形態１または２と同様であるため、ここでは説明を省略する。
【００８０】
プロセス解析部１１は、プロセス定義２の解析結果に基づいてサービス呼出関係記憶部１２を作成する。また、プロセス実行部１３は、プロセス実行順序定義３に従ってプロセス（データ処理）を実行する。
【００８１】
プロセス実行順序定義作成部１５は、プロセス解析部１１が検出した同一部分木構造箇所に対応する一連のサービスの呼び出しについて、当該一連のサービスを呼び出すプロセスをまとめて実行するようにプロセス実行順序定義３を書き換える。すなわち、プロセス実行順序定義作成部１５は、サービス呼出関係記憶部１２に記憶されたサービス呼出およびプロセスに基づいてプロセス実行順序定義３を作成している。
【００８２】
本実施の形態３では、所定の一連のサービスを呼び出すプロセスの数が少ないほど、当該一連のサービスが先に呼び出されるようなプロセスの実行順序を作成する。なお、プロセス実行順序定義作成部１５は、多くのプロセスから呼び出されるサービスが複数ある場合や、所定のサービスのデータ処理の結果のデータサイズが非常に大きい場合など、システムの性質やサービスの特徴などを踏まえたプロセスの実行順序を作成するようにしてもよい。
【００８３】
図１７は、サービス呼出関係記憶部１２の構成の一例を示す図である。また、図１８は、図１７に示すサービス呼出関係記憶部１２に基づいて作成したプロセス実行順序定義３の一例を示す図である。図１８に示すように、プロセス実行順序定義３では、重複することなく一行に一つのプロセス名を記述し、上段に記述されているプロセスほど先に実行する。例えば、図１８では、プロセスＢが最初に実行され、プロセスＤが最後に実行されることを示している。
【００８４】
図１９は、データ処理装置１の動作の一例を示すフローチャートである。なお、図１９のステップＳ４０１〜ステップＳ４０５の処理は、図４のステップＳ１０１〜ステップＳ１０５の処理と同様であるため、説明を省略する。以下では、ステップＳ４０６以降について説明する。
【００８５】
ステップＳ４０６において、プロセス実行順序定義作成部１５は、サービス呼出関係記憶部１２をもとにプロセス実行順序定義３を作成する。具体的に、プロセス実行順序定義作成部１５は、サービス呼出関係記憶部１２から各部分木構造の情報を取得し、各部分木構造のうち呼び出し元のプロセスの数が少ないものほど先に実行されるようにプロセス実行順序定義３を作成する。例えば、サービス呼出関係記憶部１２が図１７に示す状態の場合において、プロセス実行順序定義作成部１５は図１８に示すようなプロセス実行順序定義３を作成する。
【００８６】
ステップＳ４０７において、プロセス実行部１３は、プロセス実行順序定義３に従って、全てのプロセスを順に実行する。例えば、プロセス実行順序定義３が図１８に示すような場合において、プロセス実行部１３は、プロセスＢ、プロセスＣ、プロセスＡ、およびプロセスＤの順に実行する。
【００８７】
図２０は、プロセス実行部１３の動作の一例を示すフローチャートであり、図１９のステップＳ４０７の処理の詳細を示している。なお、図２０のステップＳ５０２〜ステップＳ５１２の処理は、図１５のステップＳ３０２〜ステップＳ３１２の処理と同様であるため、説明を省略する。以下では、ステップＳ５０１について説明する。
【００８８】
ステップＳ５０１において、次に実行するプロセスをプロセス実行順序定義３から取得する。
【００８９】
以上のことから、本実施の形態３によれば、実施の形態１または２による効果に加えて、プロセスの実行順序を定義し、同一のサービスを呼び出すプロセスをまとめて実行させることによって、サービスのデータ処理の結果を結果情報記憶部１４に記憶してから、当該結果を消去するまでの時間を短縮することができる。例えば、本実施の形態３では、再利用の頻度が低いサービスを先に処理するようにプロセス実行順序定義３を作成している。一連のプロセスを実行する中で、再利用の頻度が低いサービスのデータ処理の結果は早い段階で再利用されてから消去され、一連のプロセスの後半では、再利用の頻度が高いサービスのデータ処理の結果だけが結果情報記憶部１４に記憶される。従って、より少ない記憶容量で一連のプロセスを実行することが可能となる。
【００９０】
＜実施の形態４＞
図２１は、本発明の実施の形態４によるデータ処理装置１の構成の一例を示すブロック図である。
【００９１】
図２１に示すように、本実施の形態４によるプロセス実行順序定義作成部１５は、サービス呼出関係記憶部１２と、プロセス実行順序優先度定義４とを参照してプロセス実行順序定義３を作成することを特徴としている。プロセス実行順序優先度定義４は、プロセスの実行順序の優先度を定義したものである。なお、その他の構成および動作は、実施の形態３と同様であるため、ここでは説明を省略する。
【００９２】
プロセス解析部１１は、プロセス定義２の解析結果に基づいてサービス呼出関係記憶部１２を作成する。プロセス実行順序定義作成部１５は、サービス呼出関係記憶部１２およびプロセス実行順序優先度定義４に基づいてプロセス実行順序定義３を作成する。プロセス実行部１３は、プロセス実行順序定義３に従ってプロセスを実行する。
【００９３】
図２２は、プロセス実行順序優先度定義４の一例を示す図である。
【００９４】
図２２に示すように、重複することなく一行に一つのプロセス名および優先度の値が記述されている。
【００９５】
なお、図２２では、優先度の値が大きいほど先に実行するように設定している。従って、プロセス実行順序定義作成部１５は、プロセスＥが先に実行されるようにプロセス実行順序定義３を作成する。
【００９６】
図２３は、データ処理装置１の動作の一例を示すフローチャートである。なお、図２３のステップＳ６０１〜ステップＳ６０６の処理は、図１９のステップＳ４０１〜ステップＳ４０６の処理と同様であるため、説明を省略する。以下では、ステップＳ６０７以降について説明する。
【００９７】
ステップＳ６０７において、プロセス実行順序定義作成部１５は、プロセス実行順序優先度定義４を参照し、プロセス実行順序定義３を修正する。例えば、図２２では、プロセスＢ、プロセスＣ、プロセスＤの各々に同じ優先度の値が設定されているため、プロセスＢ、プロセスＣ、プロセスＤの実行順序は、ステップＳ６０６にてプロセス実行順序定義３が作成された時点での順序となる。
【００９８】
ステップＳ６０８において、プロセス実行部１３は、プロセス実行順序定義３に従って、全てのプロセスを順に実行する。
【００９９】
以上のことから、本実施の形態４によれば、実施の形態３による効果に加えて、プロセス実行順序定義作成部１５によって効率的なプロセスの実行順を定義した上で、予め定められたプロセスの実行順序を考慮することが可能となる。従って、業務上の制約などによるプロセスの実行順序を反映させることができる。
【０１００】
なお、図１，１６，２１において、プロセス解析部１１、プロセス実行部１３、プロセス実行順序定義作成部１５の各々は、ソフトウェアに基づくＣＰＵを用いたプログラム処理を実行することによって実現されるようにしてもよい。また、可能であれば、プロセス解析部１１、プロセス実行部１３、プロセス実行順序定義作成部１５の各々を、ハードウェア（例えば、電気信号に対して特定の演算あるいは処理を行うように構成された演算／処理回路等）として構成するようにしてもよい。また、上記の両者を混在させてもよい。
【０１０１】
図１，１６，２１において、サービス呼出関係記憶部１２および結果情報記憶部１４は、データを記憶しておく機能を、例えばＨＤＤ（Hard Disk Drive）、ＤＶＤ（Digital Versatile Disk）、半導体メモリなどによって構成してもよい。
【０１０２】
なお、本発明は、その発明の範囲内において、各実施の形態を自由に組み合わせたり、各実施の形態を適宜、変形、省略することが可能である。
【符号の説明】
【０１０３】
１  データ処理装置、２  プロセス定義、３  プロセス実行順序定義、４  プロセス実行順序優先度定義、１１  プロセス解析部、１２  サービス呼出関係記憶部、１３  プロセス実行部、１４  結果情報記憶部、１５  プロセス実行順序定義作成部、１０１〜１０３  サービス提供装置、２０１  プロセス結果格納装置、２０２  外部装置。
【図１】
2014235675.tif 000003
【図２】
2014235675.tif 000004
【図３】
2014235675.tif 000005
【図４】
2014235675.tif 000006
【図５】
2014235675.tif 000007
【図６】
2014235675.tif 000008
【図７】
2014235675.tif 000009
【図８】
2014235675.tif 000010
【図９】
2014235675.tif 000011
【図１０】
2014235675.tif 000012
【図１１】
2014235675.tif 000013
【図１２】
2014235675.tif 000014
【図１３】
2014235675.tif 000015
【図１４】
2014235675.tif 000016
【図１５】
2014235675.tif 000017
【図１６】
2014235675.tif 000018
【図１７】
2014235675.tif 000019
【図１８】
2014235675.tif 000020
【図１９】
2014235675.tif 000021
【図２０】
2014235675.tif 000022
【図２１】
2014235675.tif 000023
【図２２】
2014235675.tif 000024
【図２３】
2014235675.tif 000025