JP6442864B2 - ソフトウェア選択装置、ソフトウェア選択方法、及びソフトウェア選択プログラム - Google Patents

ソフトウェア選択装置、ソフトウェア選択方法、及びソフトウェア選択プログラム Download PDF

Info

Publication number
JP6442864B2
JP6442864B2 JP2014095918A JP2014095918A JP6442864B2 JP 6442864 B2 JP6442864 B2 JP 6442864B2 JP 2014095918 A JP2014095918 A JP 2014095918A JP 2014095918 A JP2014095918 A JP 2014095918A JP 6442864 B2 JP6442864 B2 JP 6442864B2
Authority
JP
Japan
Prior art keywords
software
processing
cost
combination
processing engine
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2014095918A
Other languages
English (en)
Other versions
JP2015212911A (ja
Inventor
功作 木村
功作 木村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2014095918A priority Critical patent/JP6442864B2/ja
Publication of JP2015212911A publication Critical patent/JP2015212911A/ja
Application granted granted Critical
Publication of JP6442864B2 publication Critical patent/JP6442864B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

本発明は、ソフトウェア選択装置、ソフトウェア選択方法、及びソフトウェア選択プログラムに関する。
アプリケーション実行基盤、ソフトウェアプラットフォーム、アプリケーションサーバ、又はミドルウェア等といった、ソフトウェアの基盤となる部分(以下、「処理エンジン」という。)について、様々なものが利用可能となっている。各処理エンジンは、処理内容に関して得手不得手が存在するため、或る処理エンジンの不得手な部分を補うために、複数の処理エンジンが組み合わされて利用されることが考えられる。
特開平8−202541号公報 特開昭62−106542号公報 特開2006−107477号公報 特開2012−247955号公報
例えば、ソフトウェアに関して定義されたDFD(Data Flow Diagram)を構成する処理(プロセス)ごとに、当該処理に利用する処理エンジンを選択することで、当該ソフトウェアが利用する処理エンジンの組み合わせを決定することができる。各処理に対して割り当てる処理エンジンの選択基準として、当該処理に対する処理コストの低さが挙げられる。すなわち、各処理の処理コストを低くすることができれば、当該ソフトウェア全体の処理コストを低くすることができる。
しかしながら、各処理エンジン間においては、データの伝送に関するコストが発生する。また、各処理エンジンが処理可能なデータ構造は異なるため、隣接する処理に対して、相互に異なる処理エンジンが割り当てられた場合、当該処理エンジン間において、データ変換等の処理が必要とされる。したがって、処理毎に最適化が図られたとしても、処理の組み合わせ全体としては最適化が図られているとは限らない。
全ての組み合わせに関して、各処理の処理エンジンの処理コスト及び各処理エンジン間のコストを算出すれば、最もコストが低くなる処理エンジンの組み合わせを選択することができる。しかしながら、この場合、計算量は指数オーダとなり、効率的ではない。例えば、DFDを構成する処理数をN、処理エンジンの種類の数をMとすると、計算量は、O(M)となってしまう。
なお、上記のような課題は、処理エンジン等、特定のソフトウェアに限られたものではなく、相互に前後関係を有する複数の処理のそれぞれについて利用可能なソフトウェアが複数有る場合に、共通に生じうるものであると考えられる。
そこで、一側面では、相互に前後関係を有する複数の処理のそれぞれに利用するソフトウェアの選択を効率化することを目的とする。
一つの案では、相互に前後関係を有する複数の処理のそれぞれについて、複数のソフトウェアの中から当該処理に利用するソフトウェアを選択するソフトウェア選択装置は、前記複数の処理のそれぞれについて、前記ソフトウェアごとに、当該処理より前の各処理に関して選択されたソフトウェアの1以上の組み合わせの中から、当該ソフトウェアが最後段に追加された場合のコストが最小となる組み合わせを選択する選択部を有し、前記コストは、前記組み合わせに属する各ソフトウェアの処理に要される第一のコストと、前記組み合わせに属するソフトウェアのうち前記前後関係において隣接する処理に係るソフトウェアの接続に要される第二のコストとを含む。
一態様によれば、相互に前後関係を有する複数の処理のそれぞれに利用するソフトウェアの選択を効率化することができる。
本発明の実施の形態における処理エンジン選択装置のハードウェア構成例を示す図である。 本発明の実施の形態における処理エンジン選択装置の機能構成例を示す図である。 処理エンジン選択装置が実行する処理手順の一例を説明するためのフローチャートである。 DFDの一例を示す図である。 作業用テーブルの構成例を示す図である。 複数の最後段処理を含むDFDの一例を示す図である。 各処理までの処理エンジン型の組み合わせの選択処理の処理手順の一例を説明するためのフローチャートである。 処理コスト記憶部の構成例を示す図である。 ユーザ要求記憶部の構成例を示す図である。 処理1に関する作業用レコードの第一の例を示す図である。 処理1に関する作業用レコードの第二の例を示す図である。 接続コスト記憶部の構成例を示す図である。 処理2に関する作業用レコードの例を示す図である。 本実施の形態における処理エンジン型の選択結果の例を示す図である。
以下、図面に基づいて本発明の実施の形態を説明する。図1は、本発明の実施の形態における処理エンジン選択装置のハードウェア構成例を示す図である。図1の処理エンジン選択装置10は、それぞれバスBで相互に接続されているドライブ装置100、補助記憶装置102、メモリ装置103、CPU104、及びインタフェース装置105等を有する。
処理エンジン選択装置10での処理を実現するプログラムは、記録媒体101によって提供される。プログラムを記録した記録媒体101がドライブ装置100にセットされると、プログラムが記録媒体101からドライブ装置100を介して補助記憶装置102にインストールされる。但し、プログラムのインストールは必ずしも記録媒体101より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置102は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
メモリ装置103は、プログラムの起動指示があった場合に、補助記憶装置102からプログラムを読み出して格納する。CPU104は、メモリ装置103に格納されたプログラムに従って処理エンジン選択装置10に係る機能を実行する。インタフェース装置105は、ネットワークに接続するためのインタフェースとして用いられる。
なお、記録媒体101の一例としては、CD−ROM、DVDディスク、又はUSBメモリ等の可搬型の記録媒体が挙げられる。また、補助記憶装置102の一例としては、HDD(Hard Disk Drive)又はフラッシュメモリ等が挙げられる。記録媒体101及び補助記憶装置102のいずれについても、コンピュータ読み取り可能な記録媒体に相当する。
本実施の形態において、処理エンジン選択装置10は、例えば、DFD(Data Flow Diagram)を構成する各処理(プロセス)に割り当てる処理エンジン型を選択するために用いられる。処理に割り当てる処理エンジン型とは、当該処理において利用される処理エンジン型をいう。本実施の形態において、処理エンジンとは、アプリケーション実行基盤、ソフトウェアプラットフォーム、アプリケーションサーバ、又はミドルウェア等といった、ソフトウェアの基盤となる部分をいう。例えば、並列分散処理ソフトウェアである、「Interstage Big Data Parallel Processing Server」、基幹オンラインシステム基盤である、「Interstage Business Application Server」、複合イベント処理ソフトウェアである、「Interstage Big Data Complex Event Processing Server」は、処理エンジンの具体的な一例である。また、Hadoop、データマイニング系のRシステム、Esper CEP(Complex Event Processing)等も、処理エンジンの具体的な一例である。具体的な各処理エンジンの製品等、処理エンジンの種類に対する概念を、「処理エンジン型」という。例えば、上記では、6つの処理エンジン型が例示されている。
図2は、本発明の実施の形態における処理エンジン選択装置の機能構成例を示す図である。図2において、処理エンジン選択装置10は、選択部11を有する。選択部11は、DFDを構成する各処理に利用する処理エンジン型を選択する。なお、選択部11は、処理エンジン選択装置10にインストールされたプログラムがCPU104に実行させる処理により実現される。
処理エンジン選択装置10は、また、DFD記憶部111、処理コスト記憶部112、接続コスト記憶部113、ユーザ要求記憶部114、及び作業用テーブル115等を利用する。これら各記憶部は、補助記憶装置102、又は処理エンジン選択装置10にネットワークを介して接続される記憶装置等を用いて実現可能である。作業用テーブル115は、メモリ装置103を用いて実現されてもよい。
DFD記憶部111は、DFDの定義情報を記憶する。処理コスト記憶部112は、DFDを構成する処理ごとに、当該処理に利用可能な各処理エンジン型の処理コストを記憶する。処理コストとは、処理エンジンによる処理自体に要されるコストである。
接続コスト記憶部113は、二つの処理エンジン型の組ごとに、当該処理エンジン型間における接続コストを記憶する。接続コストとは、処理の前後関係において隣接する処理のそれぞれに対する処理エンジン型の接続に要されるコストをいう。例えば、接続コストは、前段の処理に係る処理エンジンから後段の処理に係る処理エンジンへのデータの伝送や、データの変換等に要されるコストである。すなわち、各処理エンジン型において解釈可能なデータ構造は異なる。したがって、処理エンジン型間においてデータ形式の変換が必要とされる。
なお、処理コストや接続コストにおける「コスト」の具体的な内容は、例えば、所要時間であってもよい。又は、コストは、処理エンジンの利用等によって生じる費用(金額)であってもよいし、他の概念によって表現されてもよい。また、コストは、絶対値であってもよいし、相対値であってもよい。更に、処理コスト記憶部112又は接続コスト記憶部113に記憶される処理コスト又は接続コストは、推定値又は予測値でもよい。
ユーザ要求記憶部114は、DFDを構成する各処理に適用される処理型又は処理エンジン型について、ユーザによる要求を記憶する。すなわち、ユーザは、予め、一部又は全部の処理について、処理型又は処理エンジン型を指定することができる。各処理に対する処理エンジン型の選択において、ユーザによる要求は、最優先される。なお、処理型とは、処理エンジンに対するデータの入力後の処理の開始時期(開始タイミング)に関する型(種別)をいう。本実施の形態において、処理型には、バッチ処理及びリアルタイム処理が有る。
作業用テーブル115は、DFDを構成する各処理に理押する処理エンジン型を選択する過程において利用される作業用のテーブルである。
以下、処理エンジン選択装置10が実行する処理手順について説明する。図3は、処理エンジン選択装置が実行する処理手順の一例を説明するためのフローチャートである。
ステップS101において、選択部11は、DFD記憶部111に記憶されているDFDを構成する処理群を、処理の実行順に応じて整列する。例えば、各処理が、当該処理の後段の処理よりも順番が前になるようにソートされる。
図4は、DFDの一例を示す図である。図4において、楕円は、処理を示す。楕円の中の数値は、各処理を識別する識別子(以下、「処理番号」という。)を示す。処理番号がNである処理を、処理Nという。また、楕円の間の円筒形は、データストア(記憶部)を示す。
図4では、処理1〜処理6を含むDFDが示されている。処理1の後は、処理2及び処理3に分岐する。また、処理3及び処理5の後は、処理6に合流する。図4に示されるDFDの場合、ステップS101では、例えば、処理1、処理2、処理3、処理4、処理5、処理6といった順に、各処理が整列される。
続いて、選択部11は、変数iに1を代入する。変数iは、処理対象の処理番号を格納する変数である。続いて、選択部11は、処理iまでの処理エンジン型の組み合わせの選択処理を実行する(S103)。ステップS103では、処理iに対して選択可能な処理エンジン型ごとに、処理iの一つ前の各処理について選択された処理エンジン型の組み合わせの中から、当該処理エンジン型を最後段に追加した場合のコストが最小となる組み合わせが選択される。選択された組み合わせに対して、当該処理エンジン型が追加される。
続いて、選択部11は、変数iの値が、全処理数以上であるか否かを判定する(S104)。すなわち、ステップS103が、DFDを構成する全ての処理に関して実行されたか否かが判定される。なお、本実施の形態では、全処理数は「6」である。
変数iの値が、全処理数未満である場合(S104でNo)、選択部11は、変数iに1を加算して、ステップS103以降を繰り返す。
ステップS103が、全ての処理に関して実行されることにより、作業用テーブル115は、例えば、図5に示されるような状態となる。
図5は、作業用テーブルの構成例を示す図である。図5に示される作業用テーブル115には、行方向に処理が配置され、列方向に、処理エンジン型が配置されている。すなわち、A〜Dは、それぞれ処理エンジン型を示す。
図5に示されるように、作業用テーブル115には、処理1〜処理6のそれぞれについて、当該処理に選択可能な処理エンジン型ごとに、当該処理エンジン型を最後段に含む処理エンジン型の組み合わせの内容及び当該組み合わせのコストが記憶される。すなわち、各処理のレコード(以下、「作業用レコード」という。)において、当該処理に対して選択可能な処理エンジン型の列の下段の行には、当該処理エンジン型を最後段とする処理エンジン型の組み合わせを示す情報(以下、「組み合わせ情報」という。)が記憶される。上段の行には当該組み合わせのコストが記憶される。組み合わせ情報は、当該組み合わせを構成する処理エンジン型ごとに「<処理番号>:<処理エンジン型>」の表記を含む。各表記は、処理順に配列され、「,」によって区切られる。
なお、各処理に関して選択可能な処理型及び処理エンジン型には、後述されるような制限が有る。例えば、処理1については、処理エンジン型Cに関してのみ、コストとして「35」が計算されている。後述されるように、処理1については、処理エンジン型Cを利用することが、ユーザにより指定されているからである。
一方、処理2については、処理エンジン型Cと処理エンジン型Dとが選択可能である。したがって、処理2については、処理エンジン型Cが選択された場合のコスト及び組み合わせ情報と、処理エンジン型Dが選択された場合のコスト及び組み合わせ情報とが記憶される。例えば、処理2に関して、処理エンジン型Cが選択された場の処理エンジンの組み合わせの選択結果は、「1:C,2:C」である。これは、処理1について処理エンジン型Cが選択され、処理2について処理エンジン型Cが選択されたことを示す。
続いて、選択部11は、DFDにおいて最後段処理が、複数有るか否かを判定する(S106)。最後段処理とは、DFDによって定義されるフローにおいて末端となる処理をいう。図4に示されるDFDにおいて、最後段処理は、処理6の一つである。一方、例えば、図6に示されるDFDについては、最後段処理は、複数存在する。
図6は、複数の最後段処理を含むDFDの一例を示す図である。図6に示されるDFDでは、処理5及び処理8の二つの処理が最後段処理である。
最後段処理が一つである場合(S106でNo)、選択部11は、当該最後段処理に関する作業用レコードの内容を出力する(S107)。図5の例では、処理6について、処理エンジン型Cの列に記憶されている内容が出力される。
一方、最後段処理が複数である場合(S106でYes)、選択部11は、各最後段処理までの処理エンジン型の組み合わせのコストをマージする(S108)。この際、各組み合わせにおいて同じ処理に関するコストの重複は排除される。例えば、図6の例では、処理5について、「処理1→処理2→処理3→処理4→処理5」の各処理について選択された処理エンジン型の組み合わせが作業用テーブル115に記憶される。また、処理8について、「処理1→処理2→処理3→処理6→処理7→処理8」の各処理について選択された処理エンジン型の組み合わせが作業用テーブル115に記憶される。二つの組み合わせにおいて、「処理1→処理2→処理3」は、重複している。したがって、当該重複部分についてのコストについては、2重に計算されないように、二つの組み合わせのコストが合算される。具体的には、二つの組み合わせのコストの和から、「処理1→処理2→処理3」に係るコストが減算される。
続いて、選択部11は、マージ結果を出力する(S109)。
続いて、ステップS103の詳細について説明する。図7は、各処理までの処理エンジン型の組み合わせの選択処理の処理手順の一例を説明するためのフローチャートである。
ステップS201において、選択部11は、処理iに対して利用可能な処理エンジン型のうち、未処理の処理エンジン型の一つを代入する。変数jは、処理対象とする処理エンジン型を格納するための変数である。以下、変数jに係る処理エンジン型を、「処理エンジン型j」という。未処理の処理エンジン型とは、ステップS202以降に関して処理対象とされていない処理エンジン型をいう。
処理iに対して利用可能な処理エンジン型は、処理コスト記憶部112を参照して特定可能である。
図8は、処理コスト記憶部の構成例を示す図である。図8において、処理コスト記憶部112には、DFDを構成する処理1〜処理6について、当該処理に利用可能な処理エンジン型ごとに、当該処理エンジン型による当該処理の処理コストが記憶されている。各処理について値が記憶されていない処理エンジン型については、当該処理に対して利用可能でないことを示す。なお、図8において、列方向の「A」〜「D」は、処理エンジン型を示す。
例えば、処理1であれば、処理エンジン型C及びDを利用可能であり、それぞれの処理コストは、「35」、「60」であることが示されている。処理6であれば、処理エンジン型A、C、又はDを利用可能であり、それぞれの処理コストは、「400」、「100」、「105」であることが示されている。
なお、処理コスト記憶部112には、各処理エンジン型の処理型についても記憶されている。図8では、処理エンジン型A及びBの処理型は、バッチ処理であり、処理エンジン型C及びDの処理型は、リアルタイム処理であることが示されている。
続いて、選択部11は、ユーザ要求記憶部114から、処理iに関するレコード(以下、「ユーザ要求レコード」という。)を取得する(S202)。
図9は、ユーザ要求記憶部の構成例を示す図である。図9において、ユーザ要求記憶部114には、処理1〜処理6のうち、処理型又は処理エンジン型について予めユーザによる指定が有る処理について、指定された処理型又は処理エンジン型が記憶されている。図9には、処理1及び処理6の処理エンジン型が「C」であり、処理4の処理型がバッチ処理であることが指定された例が示されている。
取得されたユーザ要求レコードに、処理型又は処理エンジン型が指定されている場合(S203でYes)、選択部11は、処理エンジン型jが、当該ユーザ要求レコードにおける指定に適合するか否かを判定する(S204)。具体的には、処理エンジン型jの処理型が、当該ユーザ要求レコードに指定された処理型であるか、又は処理エンジン型jが、当該ユーザ要求レコードに指定された処理エンジン型であるか否かが判定される。処理エンジン型jが、当該ユーザ要求レコードの指定に適合しない場合(S204でNo)、ステップS201以降が実行される。すなわち、処理iに対して利用可能な処理エンジン型のうち、他の処理エンジン型についてステップS202以降が実行される。処理エンジン型jが、当該ユーザ要求レコードの指定に適合する場合(S204でYes)、ステップS207に進む。
一方、ステップS202において取得されたユーザ要求レコードに、処理型及び処理エンジン型のいずれについても指定が無い場合(S203でNo)、選択部11は、処理iに前段処理が有るか否かをDFDに基づいて判定する(S205)。処理iの前段処理とは、処理iと直列的な関係を有し、処理iの一つ前に実行される処理をいう。
処理iに前段処理が無い場合(S205でNo)、ステップS207に進む。処理iに前段処理が有る場合(S205でYes)、選択部11は、処理エンジン型jの処理型が、いずれかの前段処理に対して選択されている処理型と同じであるか否かを判定する(S206)。処理エンジン型jの処理型が、いずれの前段処理に対して選択されている処理型とも異なる場合(S206でNo)、ステップS201以降が実行される。処理エンジン型jの処理型が、いずれかの前段処理に対して選択されている処理型と同じである場合(S206でYes)、ステップS207に進む。
すなわち、処理iに、処理エンジン型の指定がある場合、処理iについては、当該処理エンジン型のみが選択可能(選択候補)となる。また、処理iに処理型の指定がある場合、処理iについては、当該処理型に対応した処理エンジン型のみが選択可能(選択候補)となる。また、処理iに処理型及び処理エンジン型のいずれの指定も無い場合、処理iについては、いずれかの前段処理の処理型に対応した処理エンジン型が、選択可能(選択候補)となる。ユーザによる指定がない場合に、前段処理における処理型に合わせられるのは、ユーザの意図しないタイミングで、処理型が変更されるのを回避するためのである。すなわち、本実施の形態では、或る処理について処理型が指定された場合、ユーザは、当該処理以降に関して、同じ処理型で処理が実行されることを予測又は期待することができる。
ステップS207において、選択部11は、処理iに前段処理が有るか否かをDFDに基づいて判定する。処理iに前段処理がない場合(S207でYes)、選択部11は、処理iに関する処理エンジン型jの処理コストを、処理コスト記憶部112から取得する(S208)。続いて、選択部11は、処理iに対して処理エンジン型jが選択されたことを示す組み合わせ情報(「i:j」)と、取得された処理コストとを、処理iの作業用レコードの処理エンジン型jの列に記憶する(S212)。
続いて、選択部11は、処理iに利用可能な処理エンジン型のうち、ユーザ要求記憶部114に記憶されている要求を満たす全ての処理エンジン型について、ステップS201以降の処理が実行されたか否かを判定する(S213)。未処理の処理エンジン型が有る場合(S213でNo)、当該処理エンジン型についてステップS201以降が実行される。
未処理の処理エンジン型が無い場合(S213でYes)、ステップS214に進む。例えば、処理iが処理1である場合、この時点において、作業用テーブル115には、図10に示されるような作業用レコードが記憶されている。
図10は、処理1に関する作業用レコードの第一の例を示す図である。図10では、処理エンジン型Cの列に、コストと組み合わせ情報とが記憶されている。図8より、処理1については、処理エンジン型C及び処理エンジン型Dが利用可能であり、それぞれの処理エンジン型による処理コストは「35」、「60」である。但し、図9より、処理1については、処理エンジン型Cを利用することが、ユーザによって指定されている。したがって、処理1については、処理エンジン型Cに関する処理コストと、処理1に対して処理エンジン型Cが選択されたことを示す組み合わせ情報(「1:C」)とが記憶される。仮に、処理1に関する処理型及び処理エンジン型について、ユーザによる指定が無い場合、処理1に関しては、図11に示されるような作業用レコードが、作業用テーブル115に記憶される。
図11は、処理1に関する作業用レコードの第二の例を示す図である。図11では、処理エンジン型Cに対する処理コスト及び組み合わせ情報に加え、処理エンジン型Dに対する処理コスト及び組み合わせ情報が記憶された例が示されている。図11に示されるように、複数の処理エンジン型に関してコスト及び組み合わせ情報が記憶されている状態は、当該処理までの処理エンジン型の組み合わせが一意に確定されていないことを示す。
ステップS214において、選択部11は、処理iには後段処理が複数有るか否かを判定する。処理iの後段処理とは、処理iと直列的な関係を有し、処理iの一つ後に実行される処理をいう。処理iの後段処理が複数有る場合とは、処理iの後で分岐が発生する場合である。図4の例では、処理1には、後段処理として処理2及び処理4が存在する。
処理iに後段処理が複数有る場合(S214でYes)、選択部11は、処理iの作業用レコードのうち、コストが最小でない組み合わせを削除する(S215)。例えば、処理1の作業用レコードが、図11に示されるような場合、コストが「60」である組み合わせに係る列は削除される。その結果、処理1の作業用レコードは、図10に示されるようになる。
すなわち、本実施の形態では、処理iに後段処理が複数ある場合、処理iまでの処理エンジン型の組み合わせのうち、コストが最小である組み合わせによって、処理iまでの処理エンジン型の組み合わせが確定される。そうすることにより、処理iより後の分岐先の各処理に関してコストが最小となる処理エンジン型の組み合わせを探索するための計算量を削減することができる。すなわち、処理iと各後段処理における処理エンジン型との接続コストを考慮すれば、処理iまでの処理エンジン型の組み合わせのうち、コストが最小である組み合わせは、必ずしも全体の組み合わせに対して最適な組み合わせであるとは限らない。しかし、本実施の形態は、このような可能性を無視することで、現実的な計算量の範囲内において、最適な解に近似した解を得ようとする。
一方、ステップS207において、処理iに前段処理が有る場合(S207でYes)、選択部11は、処理iの全ての前段処理の作業用レコードを取得する(S209)。すなわち、処理iが、図4に示される処理2、処理3、処理4、又は処理5のように前段処理を一つだけ有する場合は、当該一つの前段処理の作業用レコードが取得される。一方、処理iが、処理6のように前段処理を複数有する場合は、当該複数の前段処理のそれぞれの作業用レコードが取得される。
続いて、選択部11は、取得された作業用レコードに記憶されている組み合わせごとに、当該組み合わせに対して処理エンジン型jを最後段に追加(又は接続)した場合の、処理コスト及び接続コストの総和を算出する(S210)。
ここでは、処理iは処理2であり、処理エンジン型jは、処理エンジン型Cであるとする。また、便宜上、前段処理である処理1の作業用レコードは、図11に示される通りであるとする。この場合、図11に示される、「1:C」の組み合わせに対して、「2:C」を追加した「1:C,2:C」の組み合わせに対するコスト1と、「1:D」の組み合わせに対して「2:C」を追加した「1:D,2:C」の組み合わせに対するコスト2とが算出される。
コスト1は、「処理エンジン型Cによる処理1の処理コスト+処理エンジン型C同士の接続コスト+処理エンジン型Cによる処理2の処理コスト」によって算出される。コスト2は、「処理エンジン型Dによる処理1の処理コスト+処理エンジン型Dと処理エンジン型Cとの接続コスト+処理エンジン型Cによる処理2の処理コスト」によって算出される。
図8より、処理エンジン型Cによる処理1の処理コストは、「35」である。処理エンジン型Cによる処理2の処理コストは、「40」である。処理エンジン型Dによる処理1の処理コストは、「60」である。
一方、接続コストは、接続コスト記憶部113を参照して特定することができる。図12は、接続コスト記憶部の構成例を示す図である。図12において、接続コスト記憶部113は、行方向の処理エンジン型と、列方向の処理エンジン型との組ごとに、当該組に係る処理エンジン型間の接続コストを記憶する。
図12によれば、処理エンジン型C同士の接続コストは、「5」である。処理エンジン型Dと処理エンジン型Cとの接続コストは、「20」である。
上記より、
コスト1=35+5+40=80
コスト2=60+20+40=120
となる。
続いて、選択部11は、コストが最小である組み合わせを、処理iの処理エンジン型jに対する組み合わせとして選択する(S211)。ここでは、コスト1に係る組み合わせである、「1:C,2:C」が選択される。
このように、本実施の形態では、DFDを構成する処理ごとに、当該処理において選択可能な処理エンジン型について、コストが最小となる組み合わせが選択される。換言すれば、コストが最小でない組み合わせは、以降の処理に関して計算の対象から除外される。したがって、全ての組み合わせについてコストが計算される場合に比べて、計算量を削減することができる。
続いて、ステップS212以降が実行される。ここでは、ステップS212において、処理2の作業用レコードの処理エンジン型Cの列のコストに80が記憶され、組み合わせ情報に「1:C,2:C」が記憶される。
なお、本実施の形態において、処理1に関する本来のレコードは、図10に示される通りである。したがって、処理2の処理エンジン型Cについては、コスト1のみが算出される。また、図8より、処理2には、処理エンジン型A、C、及びDを利用可能であるが、ステップS206の作用により、処理エンジン型Aは、除外される。したがって、処理2については、処理エンジン型Cと処理エンジン型Dとのそれぞれについて、ステップS209以降が実行される。その結果、処理2については、図13に示されるような、作業用レコードが記憶される。
図13は、処理2に関する作業用レコードの例を示す図である。図13に示される処理2の作業用レコードには、処理エンジン型Cに関して「1:C,2:C」の組み合わせ情報が記憶され、処理エンジン型Dに関して「1:C,2:D」が記憶されている。処理iが処理2の時点では、処理2までの処理エンジン型の組み合わせについて、「1:C,2C」と「1:C,2:D」とのいずれが最適であるかは確定されていない。したがって、処理2の作業用レコードには二つの組み合わせ情報が記憶されている。
図4における処理3以降について具体的に説明する。処理3については、図8によれば、処理エンジン型A、C、及びDを利用可能である。但し、処理エンジン型Aについては、処理3の前段処理である処理2における処理エンジン型C及びDのいずれとも処理型が異なる。したがって、処理エンジン型Aは、組み合わせの対象から除外され、処理エンジン型C及びDのそれぞれに関して、処理2における二つの組み合わせに追加された場合のコストが計算される。
処理エンジン型Cが、「1:C,2:C」の組み合わせに追加された場合のコスト3と、「1:C,2:D」の組み合わせに追加された場合のコスト4とのそれぞれは、以下の通りである。
コスト3=80+5+90=175
コスト4=105+20+90=215
コスト3<コスト4であるから、処理3の作業用レコードにおいて、処理エンジン型Cに関するコストには「175」が記憶され、組み合わせ情報には「1:C,2:C,3:C」が記憶される(図5参照)。
一方、処理エンジン型Dが、「1:C,2:C」の組み合わせに追加された場合のコスト5と、「1:C,2:D」の組み合わせに追加された場合のコスト6とのそれぞれは、以下の通りである。
コスト5=80+20+40=140
コスト6=105+10+40=155
コスト5<コスト6であるから、処理3の作業用レコードにおいて、処理エンジン型Dに関するコストには「140」が記憶され、組み合わせ情報には「1:C,2:C,3:D」が記憶される(図5参照)。
処理4については、図8によれば、処理エンジン型A〜Dを利用可能である。但し、処理4のユーザ要求レコード(図9)において、処理4の処理型はバッチ型であることが指定されている。したがて、処理4については、処理エンジン型A及びBのそれぞれに関して、処理3における二つの組み合わせに追加された場合のコストが計算される。
処理エンジン型Aが、処理4の前段処理である処理1における「1:C」の組み合わせに追加された場合のコスト7は、以下の通りである。
コスト7=35+90+200=325
また、処理エンジン型Bが、処処理1における「1:C」の組み合わせに追加された場合のコスト8は、以下の通りである。
コスト8=35+80+300=415
したがって、処理4の作業用レコードには、処理エンジン型Aに対して、コスト「325」が記憶され、組み合わせ情報「1:C,4:A」が記憶される。また、処理エンジン型Bに対して、コスト「415」が記憶され、組み合わせ情報「1:C,4:B」が記憶される。
処理5については、図8によれば、処理エンジン型B及び処理エンジン型Cを利用可能である。但し、処理5の前段処理である処理4における処理エンジン型A及びBの処理型は、いずれもバッチ処理である。したがって、処理エンジン型Bに関して、処理4における二つの組み合わせに追加された場合のコストが計算される。
処理エンジン型Bが、処理4における「1:C,4:A」に追加された場合のコスト9と、処理4における「1:C,4:B」に追加された場合のコスト10とのそれぞれは、以下の通りである。
コスト9=325+55+350=730
コスト10=415+30+350=795
コスト9<コスト10であるから、処理5の作業用レコードには、処理エンジン型Bに対して、コスト「730」が記憶され、組み合わせ情報「1:C,4:A,5:B」が記憶される。
処理6については、図8によれば、処理エンジン型A、C、及びDを利用可能である。但し、処理6のユーザ要求レコード(図9)において、処理6には処理エンジン型Cを利用することが指定されている。したがって、処理6については、処理エンジン型Cに関して、処理6の前段処理である処理3の組み合わせと処理5の組み合わせとの組み合わせに、処理エンジン型Cが追加された場合のコストが計算される。ここで、処理3の組み合わせと処理5の組み合わせとの組み合わせとは、処理3における二つの組み合わせのそれぞれについて、処理5の一つの組み合わせが適用された2通りの組み合わせをいう。仮に、処理5に二つの組み合わせが有った場合、処理3の組み合わせと処理5の組み合わせとの組み合わせは、4通りとなる。
処理3における「1:C,2:C,3:C」の組み合わせと、処理5における「1:C,4:A,5:B」の組み合わせとの組み合わせに対して処理エンジン型Cが追加された場合のコスト11は、以下の通りである。
コスト11=730−35+80+175+5+100=1055
ここで、730は、処理5の組み合わせのコストであり、175は、処理3の組み合わせのコストであり、80は、処理5の処理エンジン型Bと処理6の処理エンジン型Cとの接続コストであり、5は、処理3の処理エンジン型Cと、処理6の処理エンジン型Cとの接続コストである。また、−35は、「1:C,2:C,3:C」と「1:C,4:A,5:B」との重複部分である「1:C」に関する処理コストの2重の加算を回避するための項である。なお、2重の加算の回避は、図3のステップS108においても同様に行われる。
一方、処理3における「1:C,2:C,3:D」の組み合わせと、処理5における「1:C,4:A,5:B」の組み合わせとの組み合わせに対して処理エンジン型Cが追加された場合のコスト12は、以下の通りである。
コスト12=730−35+80+140+20+100=1035
コスト11>コスト12であるから、コスト12に係る組み合わせに対して、処理6の処理エンジン型Cが追加される。その結果、処理6の作業用テーブル115には、処理エンジン型Cに対して、コスト「1035」が記憶され、組み合わせ情報「1:C,2:C,3:D,4A,5B,6:C」が記憶される(図5参照)。
最後段処理に記憶された組み合わせ情報が、各処理に対して選択された処理エンジン型の組み合わせを示す情報である。
図14は、本実施の形態における処理エンジン型の選択結果の例を示す図である。図14に示されるように、本実施の形態では、処理1〜6について、処理エンジン型C、処理エンジン型C、処理エンジン型D、処理エンジン型A、処理エンジン型B、及び処理エンジン型Cの組み合わせが選択された例が示されている。当該組み合わせが、コストにおいて最適な解に近似した解である。
上述したように、本実施の形態によれば、分岐及び合流や複数の入出力を含む任意の大きさのDFD構成する各処理について、複数の処理エンジン型の中から,ユーザの要求を反映しつつ、処理エンジン間のデータ伝送又は変換を含めてコストが最小に近くなるような処理エンジン型を、現実的な時間(O(M×N))で選択することができる。
よって、相互に前後関係を有する複数の処理のそれぞれに利用するソフトウェアの選択を効率化することができる。
なお、本実施の形態では、各処理に対して選択されるソフトウェアが処理エンジンである例について説明したが、他のソフトウェアの選択に関して、本実施の形態が適用されてもよい。例えば、ライブラリ又はコンポーネント等と呼ばれるソフトウェアを組み合わせてアプリケーションを作成する場合に、アプリケーションを構成する各処理について、複数の選択肢の中からいずれかのソフトウェアを選択する必要が有る場合に、本実施の形態が適用されてもよい。
なお、本実施の形態において、処理エンジン選択装置10は、ソフトウェア選択装置の一例である。
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
以上の説明に関し、更に以下の項を開示する。
(付記1)
相互に前後関係を有する複数の処理のそれぞれについて、複数のソフトウェアの中から当該処理に利用するソフトウェアを選択するソフトウェア選択装置であって、
前記複数の処理のそれぞれについて、前記ソフトウェアごとに、当該処理より前の各処理に関して選択されたソフトウェアの1以上の組み合わせの中から、当該ソフトウェアが最後段に追加された場合のコストが最小となる組み合わせを選択する選択部を有し、
前記コストは、前記組み合わせに属する各ソフトウェアの処理に要される第一のコストと、前記組み合わせに属するソフトウェアのうち前記前後関係において隣接する処理に係るソフトウェアの接続に要される第二のコストとを含む、
ことを特徴とするソフトウェア選択装置。
(付記2)
前記選択部は、一つ後に複数の後段処理を有する処理については、前記ソフトウェアごとに選択される組み合わせの中から、コストが最小となる組み合わせを選択する、
ことを特徴とする付記1記載のソフトウェア選択装置。
(付記3)
前記選択部は、前記複数の処理のそれぞれについて、前記複数のソフトウェアのうち、当該処理に関して選択候補であることが記憶部に記憶されているソフトウェアごとに、当該処理より前の各処理に関して選択されたソフトウェアの1以上の組み合わせの中から、当該ソフトウェアが最後段に追加された後のコストが最小となる組み合わせを選択する、
ことを特徴とする付記1又は2記載のソフトウェア選択装置。
(付記4)
前記選択部は、前記複数の処理のそれぞれについて、前記複数のソフトウェアのうち、データの入力後の処理の開始時期が一つ前の処理に関して選択されたソフトウェアと同じ型のソフトウェアごとに、当該処理より前の各処理に関して選択されたソフトウェアの1以上の組み合わせの中から、当該ソフトウェアが最後段に追加された場合のコストが最小となる組み合わせを選択する、
ことを特徴とする付記1乃至3いずれか一項記載のソフトウェア選択装置。
(付記5)
相互に前後関係を有する複数の処理のそれぞれについて、複数のソフトウェアの中から当該処理に利用するソフトウェアを選択するソフトウェア選択装置が、
前記複数の処理のそれぞれについて、前記ソフトウェアごとに、当該処理より前の各処理に関して選択されたソフトウェアの1以上の組み合わせの中から、当該ソフトウェアが最後段に追加された場合のコストが最小となる組み合わせを選択する処理を実行し、
前記コストは、前記組み合わせに属する各ソフトウェアの処理に要される第一のコストと、前記組み合わせに属するソフトウェアのうち前記前後関係において隣接する処理に係るソフトウェアの接続に要される第二のコストとを含む、
ことを特徴とするソフトウェア選択方法。
(付記6)
前記選択する処理は、一つ後に複数の後段処理を有する処理については、前記ソフトウェアごとに選択される組み合わせの中から、コストが最小となる組み合わせを選択する、
ことを特徴とする付記5記載のソフトウェア選択方法。
(付記7)
前記選択する処理は、前記複数の処理のそれぞれについて、前記複数のソフトウェアのうち、当該処理に関して選択候補であることが記憶部に記憶されているソフトウェアごとに、当該処理より前の各処理に関して選択されたソフトウェアの1以上の組み合わせの中から、当該ソフトウェアが最後段に追加された後のコストが最小となる組み合わせを選択する、
ことを特徴とする付記5又は6記載のソフトウェア選択方法。
(付記8)
前記選択する処理は、前記複数の処理のそれぞれについて、前記複数のソフトウェアのうち、データの入力後の処理の開始時期が一つ前の処理に関して選択されたソフトウェアと同じ型のソフトウェアごとに、当該処理より前の各処理に関して選択されたソフトウェアの1以上の組み合わせの中から、当該ソフトウェアが最後段に追加された場合のコストが最小となる組み合わせを選択する、
ことを特徴とする付記5乃至7いずれか一項記載のソフトウェア選択方法。
(付記9)
相互に前後関係を有する複数の処理のそれぞれについて、複数のソフトウェアの中から当該処理に利用するソフトウェアを選択するソフトウェア選択装置に、
前記複数の処理のそれぞれについて、前記ソフトウェアごとに、当該処理より前の各処理に関して選択されたソフトウェアの1以上の組み合わせの中から、当該ソフトウェアが最後段に追加された場合のコストが最小となる組み合わせを選択する処理を実行させ、
前記コストは、前記組み合わせに属する各ソフトウェアの処理に要される第一のコストと、前記組み合わせに属するソフトウェアのうち前記前後関係において隣接する処理に係るソフトウェアの接続に要される第二のコストとを含む、
ことを特徴とするソフトウェア選択プログラム。
(付記10)
前記選択する処理は、一つ後に複数の後段処理を有する処理については、前記ソフトウェアごとに選択される組み合わせの中から、コストが最小となる組み合わせを選択する、
ことを特徴とする付記9記載のソフトウェア選択プログラム。
(付記11)
前記選択する処理は、前記複数の処理のそれぞれについて、前記複数のソフトウェアのうち、当該処理に関して選択候補であることが記憶部に記憶されているソフトウェアごとに、当該処理より前の各処理に関して選択されたソフトウェアの1以上の組み合わせの中から、当該ソフトウェアが最後段に追加された後のコストが最小となる組み合わせを選択する、
ことを特徴とする付記9又は10記載のソフトウェア選択プログラム。
(付記12)
前記選択する処理は、前記複数の処理のそれぞれについて、前記複数のソフトウェアのうち、データの入力後の処理の開始時期が一つ前の処理に関して選択されたソフトウェアと同じ型のソフトウェアごとに、当該処理より前の各処理に関して選択されたソフトウェアの1以上の組み合わせの中から、当該ソフトウェアが最後段に追加された場合のコストが最小となる組み合わせを選択する、
ことを特徴とする付記9乃至11いずれか一項記載のソフトウェア選択プログラム。
10 処理エンジン選択装置
11 選択部
100 ドライブ装置
101 記録媒体
102 補助記憶装置
103 メモリ装置
104 CPU
105 インタフェース装置
111 DFD記憶部
112 処理コスト記憶部
113 接続コスト記憶部
114 ユーザ要求記憶部
115 作業用テーブル
B バス

Claims (4)

  1. 相互に前後関係を有する複数の処理のそれぞれについて、複数のソフトウェアの中から当該処理に利用するソフトウェアを選択するソフトウェア選択装置であって、
    前記複数の処理のそれぞれについて、当該処理に関して選択可能な前記ソフトウェアごとに、当該処理より前の各処理に関して選択されたソフトウェアの1以上の組み合わせの中から、当該ソフトウェアが最後段に追加された場合のコストが最小となる組み合わせを選択し、当該処理の一つ後に複数の後段処理が有る場合には、当該処理について前記ソフトウェアごとに選択された組み合わせの中から、コストが最小となる組み合わせを選択する選択部を有し、
    前記コストは、前記組み合わせに属する各ソフトウェアの処理に要される第一のコストと、前記組み合わせに属するソフトウェアのうち前記前後関係において隣接する処理に係るソフトウェアの接続に要される第二のコストとを含
    前記選択部は、前記複数の処理のそれぞれについて、当該処理に関して選択可能なソフトウェアのうち、データの入力後の処理の種別がバッチ処理かリアルタイム処理かに応じて、一つ前の処理に関して選択されたソフトウェアと同じ種別のソフトウェアごとに、当該処理より前の各処理に関して選択されたソフトウェアの1以上の組み合わせの中から、当該ソフトウェアが最後段に追加された場合のコストが最小となる組み合わせを選択する、
    ことを特徴とするソフトウェア選択装置。
  2. 前記選択部は、前記複数の処理のそれぞれについて、当該処理に関して選択可能なソフトウェアのうち、当該処理に関して選択候補であることが記憶部に記憶されているソフトウェアごとに、当該処理より前の各処理に関して選択されたソフトウェアの1以上の組み合わせの中から、当該ソフトウェアが最後段に追加された後のコストが最小となる組み合わせを選択する、
    ことを特徴とする請求項1記載のソフトウェア選択装置。
  3. 相互に前後関係を有する複数の処理のそれぞれについて、複数のソフトウェアの中から当該処理に利用するソフトウェアを選択するソフトウェア選択装置が、
    前記複数の処理のそれぞれについて、当該処理に関して選択可能な前記ソフトウェアごとに、当該処理より前の各処理に関して選択されたソフトウェアの1以上の組み合わせの中から、当該ソフトウェアが最後段に追加された場合のコストが最小となる組み合わせを選択し、当該処理の一つ後に複数の後段処理が有る場合には、当該処理について前記ソフトウェアごとに選択された組み合わせの中から、コストが最小となる組み合わせを選択する処理を実行し、
    前記コストは、前記組み合わせに属する各ソフトウェアの処理に要される第一のコストと、前記組み合わせに属するソフトウェアのうち前記前後関係において隣接する処理に係るソフトウェアの接続に要される第二のコストとを含
    前記選択する処理は、前記複数の処理のそれぞれについて、当該処理に関して選択可能なソフトウェアのうち、データの入力後の処理の種別がバッチ処理かリアルタイム処理かに応じて、一つ前の処理に関して選択されたソフトウェアと同じ種別のソフトウェアごとに、当該処理より前の各処理に関して選択されたソフトウェアの1以上の組み合わせの中から、当該ソフトウェアが最後段に追加された場合のコストが最小となる組み合わせを選択する、
    ことを特徴とするソフトウェア選択方法。
  4. 相互に前後関係を有する複数の処理のそれぞれについて、複数のソフトウェアの中から当該処理に利用するソフトウェアを選択するソフトウェア選択装置に、
    前記複数の処理のそれぞれについて、当該処理に関して選択可能な前記ソフトウェアごとに、当該処理より前の各処理に関して選択されたソフトウェアの1以上の組み合わせの中から、当該ソフトウェアが最後段に追加された場合のコストが最小となる組み合わせを選択し、当該処理の一つ後に複数の後段処理が有る場合には、当該処理について前記ソフトウェアごとに選択された組み合わせの中から、コストが最小となる組み合わせを選択する処理を実行させ、
    前記コストは、前記組み合わせに属する各ソフトウェアの処理に要される第一のコストと、前記組み合わせに属するソフトウェアのうち前記前後関係において隣接する処理に係るソフトウェアの接続に要される第二のコストとを含
    前記選択する処理は、前記複数の処理のそれぞれについて、当該処理に関して選択可能なソフトウェアのうち、データの入力後の処理の種別がバッチ処理かリアルタイム処理かに応じて、一つ前の処理に関して選択されたソフトウェアと同じ種別のソフトウェアごとに、当該処理より前の各処理に関して選択されたソフトウェアの1以上の組み合わせの中から、当該ソフトウェアが最後段に追加された場合のコストが最小となる組み合わせを選択する、
    ことを特徴とするソフトウェア選択プログラム。
JP2014095918A 2014-05-07 2014-05-07 ソフトウェア選択装置、ソフトウェア選択方法、及びソフトウェア選択プログラム Expired - Fee Related JP6442864B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014095918A JP6442864B2 (ja) 2014-05-07 2014-05-07 ソフトウェア選択装置、ソフトウェア選択方法、及びソフトウェア選択プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014095918A JP6442864B2 (ja) 2014-05-07 2014-05-07 ソフトウェア選択装置、ソフトウェア選択方法、及びソフトウェア選択プログラム

Publications (2)

Publication Number Publication Date
JP2015212911A JP2015212911A (ja) 2015-11-26
JP6442864B2 true JP6442864B2 (ja) 2018-12-26

Family

ID=54697133

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014095918A Expired - Fee Related JP6442864B2 (ja) 2014-05-07 2014-05-07 ソフトウェア選択装置、ソフトウェア選択方法、及びソフトウェア選択プログラム

Country Status (1)

Country Link
JP (1) JP6442864B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7216883B2 (ja) * 2019-02-05 2023-02-02 日本電信電話株式会社 解析装置、解析方法、および解析プログラム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3601949B2 (ja) * 1996-09-17 2004-12-15 株式会社東芝 プログラム合成装置及びプログラム合成方法
JP3713466B2 (ja) * 2002-02-18 2005-11-09 株式会社東芝 プログラム作成支援方法、プログラム作成支援プログラム及びプログラム作成支援装置
JP2003296111A (ja) * 2002-03-29 2003-10-17 Denso Corp プログラム生成装置
JP5167897B2 (ja) * 2007-04-27 2013-03-21 株式会社リコー 電子機器、情報処理方法、及び情報処理プログラム
WO2012114889A1 (ja) * 2011-02-23 2012-08-30 日本電気株式会社 アプリケーション構築配置システム、アプリケーション構築配置方法、およびプログラム

Also Published As

Publication number Publication date
JP2015212911A (ja) 2015-11-26

Similar Documents

Publication Publication Date Title
US10540350B2 (en) Source code search engine
JP5679074B2 (ja) ソフトウェアのインストール順序を決定する方法、プログラム、及び装置
CN107784030B (zh) 一种处理连接查询的方法及装置
CN107908714B (zh) 一种数据归并排序方法及装置
US10931749B2 (en) Efficient configuration combination selection in migration
US20140215003A1 (en) Data processing method, distributed processing system, and program
CN109076021A (zh) 数据处理的方法和装置
WO2019216346A1 (ja) グラフ更新装置、グラフ更新方法、及びプログラム
WO2014181495A1 (ja) 仮想マシン配置決定装置、仮想マシン配置決定方法および仮想マシン配置決定プログラム
CN110019208A (zh) 一种数据迁移方法、装置和介质
JPWO2010058785A1 (ja) 経路計算順決定方法、プログラムおよび計算装置
JP6442864B2 (ja) ソフトウェア選択装置、ソフトウェア選択方法、及びソフトウェア選択プログラム
JP6172145B2 (ja) 並列割当最適化装置、並列割当最適化方法および並列割当最適化プログラム
JP6372350B2 (ja) 定義ファイル生成プログラム、定義ファイル生成方法、および情報処理装置
Vanhove et al. Kameleo: Design of a new platform-as-a-service for flexible data management
JP2018022433A (ja) 制御プログラム、装置、及び方法
US10402230B2 (en) System allocating links for data packets in an electronic system
JP5595304B2 (ja) プログラム試験装置、プログラム試験装置のプログラム試験方法およびプログラム試験プログラム
JP6136685B2 (ja) データ抽出方法及びデータ抽出プログラム
JP2016071725A (ja) ワークフロー制御プログラム、ワークフロー制御方法及び情報処理装置
US20170109133A1 (en) Information conversion method and information processing apparatus
CN113609136B (zh) 业务编号稳定保持方法、装置、计算机设备及存储介质
JP6107488B2 (ja) 有向グラフ生成方法、有向グラフ生成プログラム、及び有向グラフ生成装置
JP2018010450A (ja) データ処理プログラム、データ処理方法、及びデータ処理装置
JP5211546B2 (ja) 番号付与プログラム、番号付与装置および番号付与方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170206

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171221

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180116

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180308

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20180821

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181003

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20181012

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20181030

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181112

R150 Certificate of patent or registration of utility model

Ref document number: 6442864

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees