(57)【要約】  電文を処理するアプリケーションプログラムの処理内容に応じて、電文または電文に含まれる情報の一部を事前にフィルタリングする電文処理装置の設計を支援すること。電文を選択する選択回路と、選択された電文を処理するアプリケーションプログラムを実行する計算処理部とを備えた電文処理装置を設計する設計支援装置は、アプリケーションプログラムから前記処理の結果が出力される条件を、アプリケーションプログラムから第１のフィルタ条件として抽出する第１のフィルタ条件抽出部と、選択回路が第１のフィルタ条件に基づいて前記選択を行うように、選択回路の構成情報を生成する選択部生成部と、を備える。
2013157582.tif 000002
【特許請求の範囲】
【請求項１】
電文を選択する選択回路と、選択された電文を処理するアプリケーションプログラムを実行する計算処理部とを備えた電文処理装置を設計する設計支援装置であって、
前記アプリケーションプログラムから前記処理の結果が出力される条件を、前記アプリケーションプログラムから第１のフィルタ条件として抽出する第１のフィルタ条件抽出部と、
前記選択回路が前記第１のフィルタ条件に基づいて前記選択を行うように、前記選択回路の構成情報を生成する選択部生成部と、を備える設計支援装置。
【請求項２】
前記第１のフィルタ条件抽出部は、前記電文に含まれるフィールドを含む論理式として、前記第１のフィルタ条件を表現する、請求項１に記載の設計支援装置。
【請求項３】
前記電文処理装置は、前記選択された電文を変換する変換回路を備え、
前記計算処理部は、前記アプリケーションプログラムを実行して、前記変換回路により変換された電文を処理し、
前記設計支援装置は、前記計算処理部による前記処理の結果に影響を及ぼす前記アプリケーションプログラムの入力を、前記アプリケーションから第２のフィルタ条件として抽出する第２のフィルタ条件抽出部と、
前記変換回路が前記第２のフィルタ条件に基づいて前記変換を行うように、前記変換回路の構成情報を生成する変換部生成部と、を備える、請求項１または２に記載の設計支援装置。
【請求項４】
前記第２のフィルタ条件抽出部は、前記電文を分解して得られたフィールドを要素とする集合を用いて、前記２のフィルタ条件を表現する、請求項３に記載の設計支援装置。
【請求項５】
前記選択部生成部は、前記選択回路が前記第１のフィルタ条件を満たさない電文を破棄するように、前記選択回路の構成情報を生成する、請求項１ないし４のいずれか１項に記載の設計支援装置。
【請求項６】
前記変換部生成部は、前記変換回路が前記電文のフィールドのうちの、前記集合に含まれないフィールドを削除するように、前記変換回路の構成情報を生成する、請求項４または５に記載の設計支援装置。
【請求項７】
前記電文は、属性と値の組から成る少なくとも１つのフィールドを有する、請求項１ないし６のいずれか１項に記載の設計支援装置。
【請求項８】
電文を選択する選択回路と、選択された電文を処理するアプリケーションプログラムを実行する計算処理部とを備えた電文処理装置を設計する設計支援方法であって、
コンピュータが、前記アプリケーションプログラムから前記処理の結果が出力される条件を、前記アプリケーションプログラムから第１のフィルタ条件として抽出する工程と、
前記選択回路が前記第１のフィルタ条件に基づいて前記選択を行うように、前記選択回路の構成情報を生成する工程と、を含む設計支援方法。
【請求項９】
前記コンピュータが、前記電文に含まれるフィールドを含む論理式として、前記第１のフィルタ条件を表現する、請求項８に記載の設計支援方法。
【請求項１０】
前記電文処理装置は、前記選択された電文を変換する変換回路を備え、
前記計算処理部は、前記アプリケーションプログラムを実行して、前記変換回路により変換された電文を処理し、
前記コンピュータが、前記計算処理部による前記処理の結果に影響を及ぼす前記アプリケーションプログラムの入力を、前記アプリケーションから第２のフィルタ条件として抽出する工程と、
前記変換回路が前記第２のフィルタ条件に基づいて前記変換を行うように、前記変換回路の構成情報を生成する工程と、を含む、請求項８または９に記載の設計支援方法。
【請求項１１】
前記コンピュータが、前記電文を分解して得られたフィールドを要素とする集合を用いて、前記２のフィルタ条件を表現する、請求項１０に記載の設計支援方法。
【請求項１２】
前記コンピュータが、前記選択回路が前記第１のフィルタ条件を満たさない電文を破棄するように、前記選択回路の構成情報を生成する、請求項８ないし１１のいずれか１項に記載の設計支援方法。
【請求項１３】
前記コンピュータが、前記変換回路が前記電文のフィールドのうちの、前記集合に含まれないフィールドを削除するように、前記変換回路の構成情報を生成する、請求項１１または１２に記載の設計支援方法。
【請求項１４】
電文を選択する選択回路と、選択された電文を処理するアプリケーションプログラムを実行する計算処理部とを備えた電文処理装置を設計する処理を、コンピュータに実行させるプログラムであって、
前記アプリケーションプログラムから前記処理の結果が出力される条件を、前記アプリケーションプログラムから第１のフィルタ条件として抽出する処理と、
前記選択回路が前記第１のフィルタ条件に基づいて前記選択を行うように、前記選択回路の構成情報を生成する処理と、を前記コンピュータに実行させる、プログラム。
【請求項１５】
前記電文に含まれるフィールドを含む論理式として、前記第１のフィルタ条件を表現する処理を、前記コンピュータに実行させる、請求項１４に記載のプログラム。
【請求項１６】
前記電文処理装置は、前記選択された電文を変換する変換回路を備え、
前記計算処理部は、前記アプリケーションプログラムを実行して、前記変換回路により変換された電文を処理し、
前記計算処理部による前記処理の結果に影響を及ぼす前記アプリケーションプログラムの入力を、前記アプリケーションから第２のフィルタ条件として抽出する処理と、
前記変換回路が前記第２のフィルタ条件に基づいて前記変換を行うように、前記変換回路の構成情報を生成する処理と、を前記コンピュータに実行させる、請求項１４または１５に記載のプログラム。
【請求項１７】
前記電文を分解して得られたフィールドを要素とする集合を用いて、前記２のフィルタ条件を表現する処理を、前記コンピュータに実行させる、請求項１６に記載のプログラム。
【請求項１８】
前記選択回路が前記第１のフィルタ条件を満たさない電文を破棄するように、前記選択回路の構成情報を生成する処理を、前記コンピュータに実行させる、請求項１４ないし１７のいずれか１項に記載のプログラム。
【請求項１９】
前記変換回路が前記電文のフィールドのうちの、前記集合に含まれないフィールドを削除するように、前記変換回路の構成情報を生成する処理を、前記コンピュータに実行させる、請求項１７または１８に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願についての記載］
本発明は、日本国特許出願：特願２０１２−０９５０６４号（２０１２年  ４月１８日出願）に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、電文処理装置の設計支援装置、設計支援方法およびプログラムに関し、特に、受信した大量の電文を効率良く処理する電文処理装置の設計支援装置、設計支援方法およびプログラムに関する。
【背景技術】
【０００２】
近年、センサや端末から得られる情報を実時間で処理することで、新たな付加価値を創造することが求められている。一般に、このような情報は、電文としてサーバに到着する。【０００３】
図１１は、電文を処理する電文処理装置の構成を例示するブロック図である。図１１を参照すると、電文処理装置１０５は、受信部１１１および計算処理部１１２を備えている。【０００４】
図１１の電文処理装置１０５には、ネットワークを介して電文が到着する。ここで、ネットワークとは、例えば、Ethernet（登録商標）などの有線ネットワーク、または、Zigbee（登録商標）、Bluetooth（登録商標）などの無線ネットワークである。受信部１１１は、例えば、Network Interface Controller（ＮＩＣ）などの形態を有する。受信部１１１は、ネットワークから電文を受け取ると、計算処理部１１２に送出する。計算処理部１１２は、例えば、プロセッサで実現される。受信部１１１と計算処理部１１２との通信には、例えば、PCI Expressなどのサーバ内の通信路が使用される。計算処理部１１２は、受信部１１１から電文を受け取ると、予め定められたアプリケーションプログラムに従って計算処理を実行する。【０００５】
なお、サーバが受信した大量の電文を処理する技術が、例えば、特許文献１および特許文献２に記載されている。また、ハードウェア環境でＸＭＬ（Extensible Markup Language）文書をパーシング（parsing、分解）するＸＭＬパーシング技術が、一例として、非特許文献１に記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−３１０６６２号公報
【特許文献２】特表２００４−５３１９４１号公報
【非特許文献】
【０００７】
【非特許文献１】F. El-Hassan et al., “SCBXP: An Efficient CAM-Based XML Parsing Technique in Hardware Environments,” IEEE transaction on Parallel and Distributed Systems, Volume 22, Issue 111, pp. 1879-1887, 2011.
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上記の特許文献および非特許文献の各開示を、本書に引用をもって繰り込むものとする。以下の分析は、本発明者によってなされたものである。【０００９】
図１２は、図１１に示した電文処理装置１０５の設計手順を模式的に示すブロック図である。電文処理装置１０５の処理内容を規定するアプリケーションプログラムは、通常、プログラム言語で記述されたソースコードとして与えられる。アプリケーションプログラムのソースコードは、コンパイラ１１３を用いて、プロセッサなどの計算処理部１１２で実行可能なオブジェクトコードに変換される。オブジェクトコードが計算処理部１１２に設けられたプロセッサに配置されて実行されることによって、所望の電文処理が実現される。【００１０】
しかしながら、通常のサーバは、大量の電文を受信した場合には、実時間での処理を実現することが困難となる。例えば、計算処理部１１２の処理速度が、大量に到着する電文に対応できない場合がある。また、受信部１１１と計算処理部１１２とを接続する通信路が、大量に到着する電文に対応できない場合もある。【００１１】
上記の問題を解消するための技術が、特許文献１および特許文献２に記載されている。図１３は、特許文献１および特許文献２に記載された技術を概略的に示すブロック図である。図１３を参照すると、電文処理装置１０６は、受信部１１１および計算処理部１１２以外に、さらに選択部１１４を有する。【００１２】
受信部１１１で電文を受信した後、選択部１１４は、予め与えられた仕様に従って電文を検査し、予め決められた条件に合致する電文を発見した場合、電文を破棄する。これにより、仮に大量の電文が送信されたとしても、重要な情報を含まない電文を計算処理部１１２が処理することを防ぐことができる。【００１３】
一方、図１４は、上記の問題を解決するための技術として、発明者らが検討した電文処理装置１０７の構成を示すブロック図である。図１４を参照すると、電文処理装置１０７は、受信部１１１、選択部１１４および計算処理部１１２以外に、さらに変換部１１５を有する。【００１４】
変換部１１５は、選択部１１４から出力された電文のうち、予め決められた条件に合致する電文を発見した場合、予め決められた規則に従って電文を変換する。これにより、仮に大量の電文が送信されたとしても、電文内の不必要なデータを削除した電文を、計算処理部１１２に処理させることができる。図１４に示した電文処理装置１０７によると、図１３に示した電文処理装置１０６とは異なり、電文に含まる情報のうちの必要な情報のみを計算処理部１１２に処理させることができる。【００１５】
しかし、図１３に示した電文処理装置１０６、または、図１４に示した電文処理装置１０７によると、以下の問題が生じ得る。【００１６】
計算処理部１１２で実行されるアプリケーションプログラムには、電文を破棄する条件や電文を変換する規則が明示されていない。したがって、電文処理装置１０６、１０７を実現するためには、図１３および図１４における選択部１１４や、図１４における変換部１１５を、別途、設計しなければならない。しかも、電文を破棄する条件や電文を変換する規則は、アプリケーションプログラムごとに異なるため、アプリケーションプログラムを変更するたびに、設計変更の必要が生じる。しかしながら、選択部１１４や変換部１１５の設計を自動化する技術は知られていない。【００１７】
したがって、上述の関連技術によると、受信電文に関して必要とされる重要情報のみを柔軟に抽出する装置を自動的に設計することは困難である。このことは、図１３または図１４に例示した、柔軟かつ高速に電文を処理する電文処理装置を実現する上での障害となる。【００１８】
そこで、電文を処理するアプリケーションプログラムの処理内容に応じて、電文または電文に含まれる情報の一部を事前にフィルタリングする電文処理装置の設計を支援することが要望される。本発明の目的は、かかる要望に寄与する設計支援装置、設計支援方法およびプログラムを提供することにある。
【課題を解決するための手段】
【００１９】
本発明の第１の視点に係る設計支援装置は、
電文を選択する選択回路と、選択された電文を処理するアプリケーションプログラムを実行する計算処理部とを備えた電文処理装置を設計する設計支援装置であって、
前記アプリケーションプログラムから前記処理の結果が出力される条件を、前記アプリケーションプログラムから第１のフィルタ条件として抽出する第１のフィルタ条件抽出部と、
前記選択回路が前記第１のフィルタ条件に基づいて前記選択を行うように、前記選択回路の構成情報を生成する選択部生成部と、を備える。【００２０】
本発明の第２の視点に係る設計支援方法は、
電文を選択する選択回路と、選択された電文を処理するアプリケーションプログラムを実行する計算処理部とを備えた電文処理装置を設計する設計支援方法であって、
コンピュータが、前記アプリケーションプログラムから前記処理の結果が出力される条件を、前記アプリケーションプログラムから第１のフィルタ条件として抽出する工程と、
前記選択回路が前記第１のフィルタ条件に基づいて前記選択を行うように、前記選択回路の構成情報を生成する工程と、を含む。【００２１】
本発明の第３の視点に係るプログラムは、
電文を選択する選択回路と、選択された電文を処理するアプリケーションプログラムを実行する計算処理部とを備えた電文処理装置を設計する処理を、コンピュータに実行させるプログラムであって、
前記アプリケーションプログラムから前記処理の結果が出力される条件を、前記アプリケーションプログラムから第１のフィルタ条件として抽出する処理と、
前記選択回路が前記第１のフィルタ条件に基づいて前記選択を行うように、前記選択回路の構成情報を生成する処理と、を前記コンピュータに実行させる。【００２２】
なお、プログラムは、非トランジエントなコンピュータ読み取り可能な記録媒体（non-transient computer-readable storage medium）に記録されたプログラム製品として提供することができる。
【発明の効果】
【００２３】
本発明に係る設計支援装置、設計支援方法およびプログラムによると、電文を処理するアプリケーションプログラムの処理内容に応じて、電文または電文に含まれる情報の一部を事前にフィルタリングする電文処理装置の設計を支援することが可能となる。
【図面の簡単な説明】
【００２４】
【図１】第１の実施形態に係る設計支援装置の概略構成を一例として示すブロック図である。
【図２】第１の実施形態に係る設計支援装置の構成を一例として示すブロック図である。
【図３】第１の実施形態に係る設計支援装置の動作を一例として示すフロー図である。
【図４】実施例におけるアプリケーションプログラムの例を示す図である。
【図５】実施例における電文の例を示す図である。
【図６】実施例における受信部の構成を一例として示す図である。
【図７】実施例における選択部の構成を一例として示すブロック図である。
【図８】実施例における電文の例を示す図である。
【図９】実施例における変換部の構成を一例として示すブロック図である。
【図１０】実施例における電文の例を示す図である。
【図１１】関連技術の電文処理装置の具体例を示す図である。
【図１２】関連技術の電文処理装置の設計方法の具体例を示す図である。
【図１３】関連技術の電文処理装置の具体例を示す図である。
【図１４】実施例において設計対象とする電文処理装置の構成を示すブロック図である。
【発明を実施するための形態】
【００２５】
はじめに、一実施形態の概要について説明する。なお、この概要に付記する図面参照符号は、専ら理解を助けるための例示であり、本発明を図示の態様に限定することを意図するものではない。
【００２６】
図１は、一実施形態に係る設計支援装置の構成を一例として示すブロック図である。図１を参照すると、設計支援装置は、第１のフィルタ条件抽出部（６２）および選択部生成部（６３）を備える。
【００２７】
設計支援装置は、電文を選択する選択回路（例えば、図１３、図１４の選択部１１４）と、選択された電文を処理するアプリケーションプログラムを実行する計算処理部（図１３、図１４の１１２）とを備えた電文処理装置（図１３の１０６、図１４の１０７）を設計する設計支援装置である。フィルタ条件抽出部（６２）は、アプリケーションプログラムから、電文の処理の結果が出力される条件を、アプリケーションプログラムから第１のフィルタ条件として抽出する。また、選択部生成部（６３）は、選択回路（図１３、図１４の１１４）が第１のフィルタ条件に基づいて、電文の選択を行うように、選択回路（１１４）の構成情報を生成する。
【００２８】
かかる設計支援装置によると、電文を処理するアプリケーションプログラムの処理内容に応じて、電文を事前にフィルタリングする電文処理装置（１０６、１０７）の設計を自動化することが可能となる。なぜなら、選択部生成部（６３）は、アプリケーションプログラムから電文の処理の結果が出力されるかどうかに応じて電文をフィルタリングする選択回路（図１３、図１４の選択部１１４）の構成情報を自動で生成するからである。
【００２９】
図２は、前記一実施形態に係る設計支援装置の他の構成を一例として示すブロック図である。図２を参照すると、設計支援装置は、第２のフィルタ条件抽出部（６４）および変換部生成部（６５）を備える。
【００３０】
図２に示した設計支援装置は、選択回路（例えば、図１４の選択部１１４）によって選択された電文を変換する変換回路（例えば、図１４の変換部１１５）と、アプリケーションプログラムを実行して、変換回路（１１５）により変換された電文を処理する計算処理部（例えば、図１４の１１２）とを備えた電文処理装置（例えば、図１４の１０７）を設計する設計支援装置である。第２のフィルタ条件抽出部（６４）は、計算処理部（１１２）による電文の処理結果に影響を及ぼす、アプリケーションプログラムの入力を、アプリケーションから第２のフィルタ条件として抽出する。また、変換部生成部（６５）は、変換部（１１５）が第２のフィルタ条件に基づいて電文の変換を行うように、変換部（１１５）の構成情報を生成する。
【００３１】
かかる設計支援装置によると、電文を処理するアプリケーションプログラムの処理内容に応じて、電文に含まれる情報の一部を事前にフィルタリングする電文処理装置の設計を支援することが可能となる。なぜなら、変換部生成部（６５）は、電文の処理結果に影響を及ぼすかどうかに応じて、アプリケーションプログラムから抽出した第２のフィルタ条件に基づいて電文の変換を行う変換部（１１５）の構成を自動で生成するからである。
【００３２】
上記一実施形態に係る設計支援装置によると、大量の電文情報を受信しても、重要な情報だけを計算処理部に渡すことで高速な電文処理を実現する電文処理装置を、自動的に設計することが可能となる。また、上記一実施形態に係る設計支援装置によると、計算処理部で実行するアプリケーションプログラム毎に重要な情報が異なる場合にも、対応することができる。
【００３３】
なお、本発明において、下記の形態が可能である。
［形態１］
上記第１の視点に係る設計支援装置のとおりである。
［形態２］
前記第１のフィルタ条件抽出部は、前記電文に含まれるフィールドを含む論理式として、前記第１のフィルタ条件を表現してもよい。
［形態３］
前記電文処理装置は、前記選択された電文を変換する変換回路を備え、
前記計算処理部は、前記アプリケーションプログラムを実行して、前記変換回路により変換された電文を処理し、
前記設計支援装置は、前記計算処理部による前記処理の結果に影響を及ぼす前記アプリケーションプログラムの入力を、前記アプリケーションから第２のフィルタ条件として抽出する第２のフィルタ条件抽出部と、
前記変換回路が前記第２のフィルタ条件に基づいて前記変換を行うように、前記変換回路の構成情報を生成する変換部生成部と、を備えてもよい。
［形態４］
前記第２のフィルタ条件抽出部は、前記電文を分解して得られたフィールドを要素とする集合を用いて、前記２のフィルタ条件を表現してもよい。
［形態５］
前記選択部生成部は、前記選択回路が前記第１のフィルタ条件を満たさない電文を破棄するように、前記選択回路の構成情報を生成してもよい。
［形態６］
前記変換部生成部は、前記変換回路が前記電文のフィールドのうちの、前記集合に含まれないフィールドを削除するように、前記変換回路の構成情報を生成してもよい。
［形態７］
前記電文は、属性と値の組から成る少なくとも１つのフィールドを有してもよい。
［形態８］
上記第２の視点に係る設計支援方法のとおりである。
［形態９］
前記設計支援方法において、前記コンピュータが、前記電文に含まれるフィールドを含む論理式として、前記第１のフィルタ条件を表現してもよい。
［形態１０］
前記設計支援方法において、前記電文処理装置は、前記選択された電文を変換する変換回路を備え、
前記計算処理部は、前記アプリケーションプログラムを実行して、前記変換回路により変換された電文を処理し、
前記コンピュータが、前記計算処理部による前記処理の結果に影響を及ぼす前記アプリケーションプログラムの入力を、前記アプリケーションから第２のフィルタ条件として抽出する工程と、
前記変換回路が前記第２のフィルタ条件に基づいて前記変換を行うように、前記変換回路の構成情報を生成する工程と、を含んでもよい。
［形態１１］
前記設計支援方法において、前記コンピュータが、前記電文を分解して得られたフィールドを要素とする集合を用いて、前記２のフィルタ条件を表現してもよい。
［形態１２］
前記設計支援方法において、前記コンピュータが、前記選択回路が前記第１のフィルタ条件を満たさない電文を破棄するように、前記選択回路の構成情報を生成してもよい。
［形態１３］
前記設計支援方法において、前記コンピュータが、前記変換回路が前記電文のフィールドのうちの、前記集合に含まれないフィールドを削除するように、前記変換回路の構成情報を生成してもよい。
［形態１４］
上記第３の視点に係るプログラムのとおりである。
［形態１５］
前記プログラムは、前記電文に含まれるフィールドを含む論理式として、前記第１のフィルタ条件を表現する処理を、前記コンピュータに実行させてもよい。
［形態１６］
前記電文処理装置は、前記選択された電文を変換する変換回路を備え、
前記計算処理部は、前記アプリケーションプログラムを実行して、前記変換回路により変換された電文を処理し、
前記プログラムは、前記計算処理部による前記処理の結果に影響を及ぼす前記アプリケーションプログラムの入力を、前記アプリケーションから第２のフィルタ条件として抽出する処理と、
前記変換回路が前記第２のフィルタ条件に基づいて前記変換を行うように、前記変換回路の構成情報を生成する処理と、を前記コンピュータに実行させてもよい。
［形態１７］
前記プログラムは、前記電文を分解して得られたフィールドを要素とする集合を用いて、前記２のフィルタ条件を表現する処理を、前記コンピュータに実行させてもよい。
［形態１８］
前記プログラムは、前記選択回路が前記第１のフィルタ条件を満たさない電文を破棄するように、前記選択回路の構成情報を生成する処理を、前記コンピュータに実行させてもよい。
［形態１９］
前記プログラムは、前記変換回路が前記電文のフィールドのうちの、前記集合に含まれないフィールドを削除するように、前記変換回路の構成情報を生成する処理を、前記コンピュータに実行させてもよい。
【００３４】
（実施形態１）
第１の実施形態に係る設計支援装置について、図面を参照して詳細に説明する。図２は、本実施形態の設計支援装置の構成を一例として示すブロック図である。図２を参照すると、設計支援装置は、記憶装置（例えば、主記憶装置、補助記憶装置）５０と、プログラム制御により動作する処理装置（例えば、コンピュータ；中央処理装置；プロセッサ；データ処理装置）６０とを備えている。
【００３５】
記憶装置５０は、プログラム記憶部５１、選択部記憶部５２、および、変換部記憶部５３を備えている。
【００３６】
プログラム記憶部５１は、電文処理装置の計算処理部で実行されるアプリケーションプログラムを予め記憶している。選択部記憶部５２は、処理装置６０の選択部生成部６３が生成する選択部の回路情報を記憶する。変換部記憶部５３は、変換部生成部６５が生成する変換部の回路情報を記憶する。
【００３７】
処理装置６０は、プログラム入力部６１、第１のフィルタ条件抽出部６２、選択部生成部６３、第２のフィルタ条件抽出部６４、および、変換部生成部６５を備える。
【００３８】
プログラム入力部６１は、記憶装置５０のプログラム記憶部５１に予め記憶されているアプリケーションプログラムを読み出す。
【００３９】
第１のフィルタ条件抽出部６２は、記憶装置５０から読み出されたアプリケーションプログラムから第１のフィルタ条件を抽出する。第１のフィルタ条件の詳細については、後述する。
【００４０】
選択部生成部６３は、第１のフィルタ条件をもとに選択部の回路情報を生成する。選択部生成部６３は、生成した回路情報を記憶装置５０の選択部記憶部５２に記録する。
【００４１】
第２のフィルタ条件抽出部６４は、記憶装置５０から読み出されたアプリケーションプログラムから第２のフィルタ条件を抽出する。第２のフィルタ条件の詳細については、後述する。
【００４２】
変換部生成部６５は、第２のフィルタ条件をもとに変換部の回路情報を生成する。変換部生成部６５は、生成した回路情報を記憶装置５０の変換部記憶部５３に記憶する。
【００４３】
図３は、本実施形態の設計支援装置の動作を一例として示すフロー図である。図２のブロック図および図３のフロー図を参照して、本実施形態の設計支援装置の動作について詳細に説明する。
【００４４】
記憶装置５０のプログラム記憶部５１には、設計対象の、電文処理装置の計算処理部で実行されるアプリケーションプログラムが、予め記憶されている。アプリケーションプログラムは、ソースコードとして記憶されていても、プロセッサなどで実行可能な形式に変換されて記憶されていてもよい。本実施形態では、一例として、ソースコードの形で記憶されているものとする。
【００４５】
まず、プログラム入力部６１は、記憶装置５０のプログラム記憶部５１から、アプリケーションプログラムを読み出す（ステップＡ１）。
【００４６】
次に、第１のフィルタ条件抽出部６２は、アプリケーションプログラム中の、各出力に対して出力が生成される条件を抽出し、これを「第１のフィルタ条件」とする（ステップＡ２）。
【００４７】
次に、選択部生成部６３は、第１のフィルタ条件をもとに選択部の回路情報を生成する。選択部とは、一例として、受信した電文が第１のフィルタ条件を満たさないときに、電文を破棄する回路である。選択部生成部６３は、前記選択部の回路情報を記憶装置５０の選択部記憶部５２に書き出す（ステップＡ３）。
【００４８】
次に、第２のフィルタ条件抽出部６４は、アプリケーションプログラム中の、出力に対して影響を与える入力を抽出し、これを「第２のフィルタ条件」とする（ステップＡ４）。
【００４９】
次に、変換部生成部６５は、第２のフィルタ条件をもとに変換部の回路情報を生成する。変換部とは、一例として、受信した電文のうちの、第２のフィルタ条件を満たさないデータを破棄する回路である。変換部生成部６５は、前記変換部の回路情報を記憶装置５０の変換部記憶部５３に書き出す（ステップＡ５）。
【実施例】
【００５０】
次に、具体的な実施例に基づいて、本実施形態に係る設計支援装置（図２）の動作を説明する。【００５１】
本実施例では、図１４に示した電文処理装置１０７を設計の対象とする。図１４を参照すると、電文処理装置１０７は、受信部１１１、選択部１１４、変換部１１５、および、計算処理部１１２を備えている。【００５２】
受信部１１１は、ネットワークからの電文を受信する。受信部１１１は、予め与えられた電文仕様に従って、電文のヘッダ部の各フィールド、および、電文のデータ（ペイロード）部の各フィールドに電文を分解し、分解後の電文を選択部１１４に渡す。【００５３】
一般の電文では、データ部の仕様が不確定のため、データ部のフィールドへの分解は困難である。本実施例では、予め定められた仕様に従って構成された電文を対象としているため、データ部に関してもフィールド単位で分解することができる。【００５４】
選択部１１４は、受信部１１１から受け取った電文に対して、予め与えられた仕様に従って電文を検査し、予め決められた条件に合致する電文を発見した場合、電文を破棄する。また、選択部１１４は、それ以外の電文を変換部１１５に送信する。【００５５】
変換部１１５は、選択部１１４から受け取った電文に対して、予め与えられた仕様に従って電文のフィールドを検査し、予め決められた条件に合致する電文のフィールドを破棄するなどして電文を変換する。さらに、変換部１１５は、変換後の電文を、PCI Expressなどのサーバ内の通信路を介して、サーバ内のＣＰＵまたはメモリへと送信する。【００５６】
計算処理部１１２は、変換部１１５から受け取った電文を、予め指定されたアプリケーションプログラムによって処理する。【００５７】
なお、計算処理部１１２で実行するアプリケーションプログラムによる処理は、図１１の電文処理装置１０５の計算処理部１１２で実行されるアプリケーションプログラムによる処理と同様である。【００５８】
図１４に示した電文処理装置１０７によると、選択部１１４および変換部１１５で処理に不必要な電文や処理に不必要なデータが破棄され、処理に必要なデータのみが計算処理部１１２に到着する。したがって、電文処理装置１０７によると、計算処理部１１２における処理内容を変更しなくても、電文処理装置１０５と比較して、より多くの電文を処理することが可能となる。【００５９】
本実施例では、電文処理装置１０７に含まれる選択部１１４および変換部１１５を電子回路で実現する場合の設計支援を、設計支援装置（図２）によって行う方法について説明する。【００６０】
記憶装置５０のプログラム記憶部５１には、設計対象の電文処理装置１０７の計算処理部１１２で実行されるアプリケーションプログラムが予め記憶されている。アプリケーションプログラムは、ソースコードとして記憶されていても、プロセッサなどで実行可能な形式に変換されて記憶されていてもよい。本実施例では、アプリケーションプログラムは、ソースコードとしてプログラム記憶部５１に記憶されているものとする。【００６１】
図４は、本実施例におけるアプリケーションプログラムを例示する。図４を参照すると、アプリケーションプログラムのソースコードは、ANSI-C言語で記述されている。なお、図４において、ソースコードのうちの説明上不要な箇所は省略されている。また、ソースコードは、ANSI-C以外のプログラミング言語で記述されていてもよい。【００６２】
図４に示したアプリケーションプログラムが処理する電文は、図４のソースコードの１行目に示されるように、 city, temp, rain の３つのフィールドを持つ構造体で表現される。【００６３】
本実施例のアプリケーションプログラムが処理する電文は、属性と値の組が複数存在するという、予め定められた仕様に従って構成されている。本実施例では、このような電文を「構造化された電文」という。構造化された電文として、ＨＴＭＬ（Hypertext Markup Language）、ＸＭＬ（Extensible Markup Language）などの言語仕様に基づいた電文、構造体、クラスなどのデータ構造に基づいた本実施例のような電文、キーとバリューで表現される電文、その他の様々な電文が対象となる。このように、構造化された電文のみに着目することで、電文の中から重要な情報（例えば、アプリケーションプログラムの処理に関係する情報）を抽出することが可能となる。【００６４】
構造体に含まれるフィールドcity, temp, rain は、それぞれ、都市、温度、降水量を表す。図４のアプリケーションプログラムは、都市cityがTokyoである電文に記載された降水量rainを積算して出力する。【００６５】
図４のソースコードの５行目では、電文を受信し、構造体変数evに格納する。ここで、関数get_event()は、受信装置から１つの電文を受け取る関数である。６行目では、電文中のフィールドcityの値がTokyoであるかどうかを検査する。cityの値がTokyoでなければ、該電文に対して何も行わない。７行目では、積算降水量totalに対して、電文中のフィールドrainの値を加算する。８行目では、計算後の積算降水量totalを出力する。関数send_result()は、データの出力を行う関数である。なお、ソースコードの各行において、ダブルスラッシュ“//”以下はコメント文である。【００６６】
図５は、図４に示したアプリケーションプログラムの処理対象となる電文を例示する。図５を参照すると、１行目の電文および３行目の電文のフィールドcityの値はTokyoである。したがって、１行目の電文および３行目の電文は、図４のアプリケーションプログラムで処理される。一方、２行目の電文のフィールドcityの値はOsakaであるため、図４のアプリケーションプログラムでは処理されない。したがって、２行目の電文は、図４のアプリケーションプログラムにとって不要な電文である。【００６７】
また、図５に示した各電文のフィールドtempの値は、図４のアプリケーションプログラムでは処理されない。したがって、フィールドtempに含まれるデータは、図４のアプリケーションプログラムにとって不要なデータである。【００６８】
図６は、図４に示したアプリケーションプログラムに対応する受信部１１１の入出力を例示する。図６を参照すると、受信部１１１は電文を受け取り、各フィールドに分解して選択部１１４に渡す。図４に示したアプリケーションプログラムが対象とする電文は、３つのフィールドcity, temp, rainを有する。これらのフィールドに対応して、図６の受信部１１１は、city, temp, rainの３つの出力を有する。【００６９】
本実施例では、図６の受信部１１１が予め与えられているものとする。受信部１１１の設計方法として、一例として、非特許文献１に記載された方法を用いることができる。ただし、受信部１１１の設計方法は、これに限定されない。【００７０】
次に、本実施形態に係る設計支援装置による、選択部１１４および変換部１１５の自動設計の手順について説明する。【００７１】
まず、プログラム入力部６１は、記憶装置５０のプログラム記憶部５１から、アプリケーションプログラムを読み出す（図３のステップＡ１）。【００７２】
次に、第１のフィルタ条件抽出部６２は、アプリケーションプログラム中の、各出力に対して出力が生成される条件を抽出し、これを「第１のフィルタ条件」とする（図３のステップＡ２）。【００７３】
フィルタ条件抽出部６２は、条件を抽出するために、一例として、制御データフローグラフ（Control Data Flow Graph:ＣＤＦＧ）解析などの技術を用いることができる。ただし、フィルタ条件抽出部６２による条件抽出の方法は、これに限定されない。【００７４】
図４に示したアプリケーションプログラムでは、出力動作send_result()を実行する条件は、６行目のif文の条件「ev.city == “Tokyo”」である。したがって、フィルタ条件抽出部６２は、条件「ev.city == “Tokyo”」を第１のフィルタ条件として抽出する。【００７５】
このように、第１のフィルタ条件は、電文を構成する各フィールドの論理式で表現される。【００７６】
次に、選択部生成部６３は、第１のフィルタ条件をもとに選択部１１４の回路情報を生成する（図３のステップＡ３）。選択部１１４は、受信した電文が第１のフィルタ条件を満たさないとき、電文を破棄する回路である。選択部生成部６３は、選択部１１４の回路情報を記憶装置５０の選択部記憶部５２に書き出す。【００７７】
第１のフィルタ条件は、電文を構成する各フィールドの論理式で表現されている。したがって、選択部生成部６３は、この論理式を実現する論理回路の回路情報を、選択部１１４の回路情報として生成する。【００７８】
図７は、生成された選択部１１４の構成を一例として示すブロック図である。図７を参照すると、選択部１１４は、外部入力端子city, temp, rainと、外部出力端子city, temp, rainと、条件判定回路１１６と、ゲート１１７を備える。【００７９】
条件判定回路１１６は、外部入力端子cityから値を読み込み、その値がTokyoであるかどうかを検査する。条件判定回路１１６は、検査の結果、cityの値がTokyoである場合には真（True）を、それ以外の場合には偽（False）をゲート１１７に送る。【００８０】
ゲート１１７は、条件判定回路１１６の値が真である場合、外部入力端子city, temp, rainの値を外部出力端子に送り、条件判定回路１１６の値が偽である場合、外部出力端子に対して何も出力しない。【００８１】
図７に示した選択部１１４によると、cityの値がTokyoである電文のみが変換部１１５に送られ、それ以外の電文は破棄される。すなわち、選択部１１４によると、計算処理に不要な電文は破棄され、必要な電文のみが計算処理部１１２に送られる。【００８２】
図８は、選択部１１４から送信される電文を例示する。図８の電文と図５の電文とを比較すると、図８の電文においては、図５の電文のうちのフィールドcityの値がOsakaである２行目の電文は、図７に示した選択部１１４によって破棄されている。【００８３】
選択部生成部６３は、図７に示した選択部１１４の回路構成情報を、記憶装置５０の選択部記憶部５２に記録する。【００８４】
次に、第２のフィルタ条件抽出部６４は、アプリケーションプログラム中の、出力に対して影響を与える入力を抽出し、これを「第２のフィルタ条件」とする（図３のステップＡ４）。【００８５】
フィルタ条件抽出部６４は、入力を抽出するために、例えば、影響円錐抽出法（Cone of Influence Reduction）などの技術を用いることができる。ただし、フィルタ条件抽出部６４が入力を抽出する方法は、これに限定されない。【００８６】
図４に示したアプリケーションプログラムでは、電文に含まれるフィールドcity, temp, rainのうち、cityおよびrainのみが出力に影響を与え、tempは出力に影響を与えない。したがって、フィルタ条件抽出部６４は、cityおよびrainを第２のフィルタ条件として抽出する。【００８７】
第２のフィルタ条件は、電文を構成する各フィールドの部分集合を指定することで表現される。【００８８】
次に、変換部生成部６５は、第２のフィルタ条件をもとに、変換部１１５の回路情報を生成する（図３のステップＡ５）。変換部１１５は、受信した電文のうちの第２のフィルタ条件を満たさないデータを破棄する回路である。変換部生成部６５は、変換部１１５の回路情報を記憶装置５０の変換部記憶部５３に書き出す。【００８９】
第２のフィルタ条件は、電文を構成する各フィールドの部分集合を指定することで表現されている。したがって、変換部生成部６５は、電文中のフィールドから指定されたフィールドを選択する論理回路の回路情報を、変換部１１５の回路情報として生成する。【００９０】
図９は、生成された変換部１１５の構成を一例として示すブロック図である。図９を参照すると、変換部１１５は、外部入力端子city, temp, rainと、外部出力端子city, rainと、フィールド選択回路１１８を備える。【００９１】
フィールド選択回路１１８は、外部入力端子city, temp, rainからそれぞれ値を読み出し、cityおよびrainの値のみを、それぞれ外部出力端子city, rainに送出する。一方、フィールド選択回路１１８は、外部入力端子tempから読み出した値を外部出力端子に送出することなく破棄する。【００９２】
図９に示した変換部１１５によると、電文中のフィールドcityおよびrainの値のみが計算処理部１１２に送られ、それ以外のフィールドの値は破棄される。すなわち、計算処理に不必要なフィールドのデータが破棄され、電文に含まれるデータのうちの必要なデータのみが計算処理部１１２に送られる。【００９３】
図１０は、変換部１１５から計算処理部１１２へ送信される電文を例示する。図１０の電文と図８の電文とを比較すると、図１０の電文においては、図８の電文におけるフィールドtempが破棄されている。【００９４】
変換部生成部６５は、図９の変換部１１５の回路情報を、記憶装置５０の変換部記憶部５３に記録する。【００９５】
記憶装置５０の選択部記憶部５２に記憶された選択部１１４の回路情報、および、変換部記憶部５３に記憶された選択部１１５の回路情報は、既存の回路設計技術を用いて、受信部１１１および計算処理部１１２とともに電文処理装置１０７に配置される。【００９６】
本実施形態に係る設計支援装置は、例えば、センサや端末からのリアルタイム情報（イベント列）の処理を行う電文処理装置を設計するために適用することができる。【００９７】
なお、上記の特許文献および非特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態および実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素（各請求項の各要素、各実施形態の各要素、各実施例の各要素、各図面の各要素等を含む）の多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
【符号の説明】
【００９８】
５０    記憶装置
５１    プログラム記憶部
５２    選択部記憶部
５３    変換部記憶部
６０    処理装置
６１    プログラム入力部
６２、６４    フィルタ条件抽出部
６３    選択部生成部
６５    変換部生成部
１０５、１０６、１０７    電文処理装置
１１１    受信部
１１２    計算処理部
１１３    コンパイラ
１１４    選択部
１１５    変換部
１１６    条件判定回路
１１７    ゲート
１１８    フィールド選択回路
【図１】
2013157582.tif 000003
【図２】
2013157582.tif 000004
【図３】
2013157582.tif 000005
【図４】
2013157582.tif 000006
【図５】
2013157582.tif 000007
【図６】
2013157582.tif 000008
【図７】
2013157582.tif 000009
【図８】
2013157582.tif 000010
【図９】
2013157582.tif 000011
【図１０】
2013157582.tif 000012
【図１１】
2013157582.tif 000013
【図１２】
2013157582.tif 000014
【図１３】
2013157582.tif 000015
【図１４】
2013157582.tif 000016
【手続補正書】
【提出日】平成26年10月17日(2014.10.17)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
電文を選択する選択回路と、選択された電文を処理するアプリケーションプログラムを実行する計算処理部とを備えた電文処理装置を設計する設計支援装置であって、
前記アプリケーションプログラムから前記処理の結果が出力される条件を、前記アプリケーションプログラムから第１のフィルタ条件として抽出する第１のフィルタ条件抽出部と、
前記選択回路が前記第１のフィルタ条件に基づいて前記選択を行うように、前記選択回路の構成情報を生成する選択部生成部と、を備える設計支援装置。
【請求項２】
前記第１のフィルタ条件抽出部は、前記電文に含まれるフィールドを含む論理式として、前記第１のフィルタ条件を表現する、請求項１に記載の設計支援装置。
【請求項３】
前記電文処理装置は、前記選択された電文を変換する変換回路を備え、
前記計算処理部は、前記アプリケーションプログラムを実行して、前記変換回路により変換された電文を処理し、
前記設計支援装置は、前記計算処理部による前記処理の結果に影響を及ぼす前記アプリケーションプログラムの入力を、前記アプリケーションから第２のフィルタ条件として抽出する第２のフィルタ条件抽出部と、
前記変換回路が前記第２のフィルタ条件に基づいて前記変換を行うように、前記変換回路の構成情報を生成する変換部生成部と、を備える、請求項１または２に記載の設計支援装置。
【請求項４】
前記第２のフィルタ条件抽出部は、前記電文を分解して得られたフィールドを要素とする集合を用いて、前記２のフィルタ条件を表現する、請求項３に記載の設計支援装置。
【請求項５】
前記選択部生成部は、前記選択回路が前記第１のフィルタ条件を満たさない電文を破棄するように、前記選択回路の構成情報を生成する、請求項１ないし４のいずれか１項に記載の設計支援装置。
【請求項６】
前記変換部生成部は、前記変換回路が前記電文のフィールドのうちの、前記集合に含まれないフィールドを削除するように、前記変換回路の構成情報を生成する、請求項４または５に記載の設計支援装置。
【請求項７】
前記電文は、属性と値の組から成る少なくとも１つのフィールドを有する、請求項１ないし６のいずれか１項に記載の設計支援装置。
【請求項８】
電文を選択する選択回路と、選択された電文を処理するアプリケーションプログラムを実行する計算処理部とを備えた電文処理装置を設計する設計支援方法であって、
コンピュータが、前記アプリケーションプログラムから前記処理の結果が出力される条件を、前記アプリケーションプログラムから第１のフィルタ条件として抽出する工程と、
前記選択回路が前記第１のフィルタ条件に基づいて前記選択を行うように、前記選択回路の構成情報を生成する工程と、を含む設計支援方法。
【請求項９】
前記電文処理装置は、前記選択された電文を変換する変換回路を備え、
前記計算処理部は、前記アプリケーションプログラムを実行して、前記変換回路により変換された電文を処理し、
前記コンピュータが、前記計算処理部による前記処理の結果に影響を及ぼす前記アプリケーションプログラムの入力を、前記アプリケーションから第２のフィルタ条件として抽出する工程と、
前記変換回路が前記第２のフィルタ条件に基づいて前記変換を行うように、前記変換回路の構成情報を生成する工程と、を含む、請求項８に記載の設計支援方法。
【請求項１０】
電文を選択する選択回路と、選択された電文を処理するアプリケーションプログラムを実行する計算処理部とを備えた電文処理装置を設計する処理を、コンピュータに実行させるプログラムであって、
前記アプリケーションプログラムから前記処理の結果が出力される条件を、前記アプリケーションプログラムから第１のフィルタ条件として抽出する処理と、
前記選択回路が前記第１のフィルタ条件に基づいて前記選択を行うように、前記選択回路の構成情報を生成する処理と、を前記コンピュータに実行させる、プログラム。
【国際調査報告】
2013157582.tif 000017
2013157582.tif 000018
2013157582.tif 000019
2013157582.tif 000020