JP2009157847A - プログラム開発装置、プログラム開発プログラム - Google Patents
プログラム開発装置、プログラム開発プログラム Download PDFInfo
- Publication number
- JP2009157847A JP2009157847A JP2007338371A JP2007338371A JP2009157847A JP 2009157847 A JP2009157847 A JP 2009157847A JP 2007338371 A JP2007338371 A JP 2007338371A JP 2007338371 A JP2007338371 A JP 2007338371A JP 2009157847 A JP2009157847 A JP 2009157847A
- Authority
- JP
- Japan
- Prior art keywords
- attribute
- structured document
- related data
- document
- list
- 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.)
- Withdrawn
Links
Images
Landscapes
- Machine Translation (AREA)
- Document Processing Apparatus (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】構造化文書の属性値を用いて他の要素を参照する作業を容易にする。
【解決手段】プログラム開発装置は、構造化文書に記述された要素を属性や親子関係を含む情報が設定されたクラスオブジェクト21に変換する構造化文書要素変換手段22と、構造化文書要素変換手段22により変換されたオブジェクトが要素別にリスト化された要素オブジェクトリストを生成する要素オブジェクトリスト化手段24と、構造化文書中の要素同士の関連性に基づいて、クラスオブジェクト21または要素オブジェクトリスト23から関連性のある要素を抽出する関連データ抽出手段28とを具備する。
【選択図】 図2
【解決手段】プログラム開発装置は、構造化文書に記述された要素を属性や親子関係を含む情報が設定されたクラスオブジェクト21に変換する構造化文書要素変換手段22と、構造化文書要素変換手段22により変換されたオブジェクトが要素別にリスト化された要素オブジェクトリストを生成する要素オブジェクトリスト化手段24と、構造化文書中の要素同士の関連性に基づいて、クラスオブジェクト21または要素オブジェクトリスト23から関連性のある要素を抽出する関連データ抽出手段28とを具備する。
【選択図】 図2
Description
本発明は、構造化文書ベース記述言語プログラムの開発に好適なプログラム開発装置、同装置において実行されるプログラム開発プログラムに関する。
近年、大規模なシステムを、サービスの集まりとして構築するサービス指向アーキテクチャ(ステップSOA(Service Oriented Architecture)という考え方が普及してきている。サービスの単位として有望視されているものがWebサービスであり、Webサービス記述言語WSDL(Web Services Description Language)によってインタフェースが記述される。
Webサービスを連携するための言語仕様として、ビジネスプロセス実行言語BPEL(Business Process Execution Language)がある。BPELでWebサービスを連携するためには、サービスのインタフェース記述であるWSDLで記述されるパラメータの値と、BPELで記述するパラメータの値を正確に合わせる必要がある。これは人手で実施するには面倒な入力作業であった。
面倒な入力作業を支援するための方法として、特許文献1には、プロセスの粒度に依存することなく、複数のシステム間で再利用可能なプロセスを効率よく抽出することを可能にするプロセスマッピング装置が記載されている。特許文献1に記載されたプロセスマッピング装置では、プロセスを構成するソフトウェアコンポーネントの入力メッセージに基づいて、プロセス間で対応関係にあるソフトウェアことを抽出し、ソフトウェアコンポーネントの出力メッセージに基づいて、プロセス間で対応関係にあるソフトウェアコンポーネントを抽出し、それぞれ抽出されたソフトウェアコンポーネントを起点および終点とするサブプロセスを抽出する。そして、これらのサブプロセスを利用可能としてランキングしてユーザ端末に提示する。
特開2006−172165号公報
構造化文書では、属性値を用いて他の要素を参照することがよくある。構造化文書ベースの記述言語を記述する際には、構造化文書中の要素が記述される定義位置や参照元の位置関係(親子関係等)を意識しながら対象となるデータを決定する必要がある。これらの行為は開発者にとって困難を極める作業となっておりプログラム開発の効率を妨げるものとなっていた。
本発明は上記の事情を考慮したもので、その目的は、構造化文書の属性値を用いて他の要素を参照する作業を容易にすることが可能なプログラム開発装置、プログラム開発プログラムを提供することにある。
本発明に係わるプログラム開発装置は、構造化文書に記述された要素を属性や親子関係を含む情報が設定されたオブジェクトに変換する構造化文書要素変換手段と、構造化文書要素変換手段により変換されたオブジェクトが要素別にリスト化された要素オブジェクトリストを生成する要素オブジェクトリスト化手段と、前記構造化文書中の要素同士の関連性に基づいて、前記オブジェクトまたは前記要素オブジェクトリストから関連性のある要素を抽出する関連データ抽出手段とを具備したことを特徴とする。
本発明によれば、構造化文書における定義位置や参照元の位置関係に従って、属性値を用いて他の要素を容易に参照することができ、プログラム開発の効率化を図ることが可能となる。
以下、図面を参照して本発明の実施の形態について説明する。なお、以下の説明では、構造化文書としてXML(Extensible Markup Language)により記述された文書を例にして説明する。なお、本発明は、XML以外の他の構造化文書を対象としても実現することが可能である。
図1は、本実施形態における構造化文書ベース記述言語プログラム開発装置(以下、プログラム開発装置と略称する)の構成を示すブロック図である。
プログラム開発装置は、図1に示すように、プログラム開発装置を実現するためのプログラム開発プログラムを含む各種プログラムやデータの制御などの処理を行うCPU(中央処理装置)10と、CPU10が処理するためのプログラムやデータを一時的に記憶するRAM(Random Access Memory)11と、処理プログラムなどを記憶するROM(Read Only Memory)12と、構造化文書などを長期的に記憶するためのハードディスク(HD)に対するアクセスを制御するハードディスク駆動制御部13と、プログラムなどを記憶しているCD−ROMを制御するCD−ROM駆動制御部14とを含んでいる。さらに構造化文書やその他の情報を表示する表示器16を制御する表示器制御回路15と、キーボード18やマウス等の入力装置の制御を行う入力制御部17と、ネットワークからデータを入力する通信インタフェース(I/F)19を含んでいる。
プログラム開発装置を実現するプログラム開発プログラムは、HDに格納されている。HDに格納される際は、CD−ROMからインストールされてもよいし、CD−ROM以外のドライブやメディア(例えば、MOドライブとMOディスク、USB端子とUSBメモリなど)からインストールされてもよい。
図2は、プログラム開発プログラムをCPU10によって実行することにより実現されるプログラム開発装置の機能構成を示す図である。
図2に示すように、プログラム開発装置には、構造化文書20に記述された要素を属性や親子関係などを含む情報が設定されたクラスオブジェクト21に変換する構造化文書要素変換手段22と、構造化文書要素変換手段22によりクラスオブジェクト化されたクラスオブジェクト21(要素オブジェクト)が要素別にリスト化された要素オブジェクトリスト23を生成する要素オブジェクトリスト化手段24と、入力・表示ウィンドウ25を通じて要素の属性を設定・表示するための要素属性設定・表示制御手段26と、要素同士の関連性を示す情報が設定された関連テーブル27と、関連テーブル27の情報をもとにクラスオブジェクト21(要素オブジェクト)や要素オブジェクトリスト23から関連性のある要素の属性値の候補を抽出する関連データ抽出手段28とが設けられる。
構造化文書要素変換手段22、要素オブジェクトリスト化手段24、要素属性設定・表示制御手段26、及び関連データ抽出手段28は、CPU10、RAM11、及びROM12の組み合わせにより実現される機能である。CPU10は、RAM11あるいはROM12に記憶された、プログラム開発プログラムに含まれるそれぞれに対応するプログラムを実行することにより各手段を実現する。構造化文書20、クラスオブジェクト21、要素オブジェクトリスト23、及び関連テーブル27は、ハードディスクに記憶され、必要に応じてRAM11に読み出されて処理に供される。入力・表示ウィンドウ25は、RAM11あるいはROM12に記憶されたウィンドウフォーマットのデータに基づいて表示される。
次に、本実施の形態のプログラム開発装置で使用される構造化文書20について説明する。
本実施の形態は、構造化文書20であるBPEL(Business Process Execution Language)文書の参照や編集に適応する場合を用いて説明する。BPELは、XMLベースのワークフロー記述言語であり、データの操作や、Webサービスの呼び出し、例外処理などの処理単位を組み合わせて複雑なフローを記述する言語である。
本実施の形態は、構造化文書20であるBPEL(Business Process Execution Language)文書の参照や編集に適応する場合を用いて説明する。BPELは、XMLベースのワークフロー記述言語であり、データの操作や、Webサービスの呼び出し、例外処理などの処理単位を組み合わせて複雑なフローを記述する言語である。
図3に例示するXML文書はBPEL文書を示している。BPEL文書では、1つの処理要素をXMLのタグの形で記述し、一連の処理を示す場合や、要素の集合を示す場合には開始タグ・終了タグにはさむ形で入れ子にする。例えば、ワークフローの宣言を行う要素processは、1行目の開始タグと19行目の終了タグによりワークフロー全体を入れ子にしている。変数定義の集合を示すvariables要素は変数の定義variableを入れ子としている。また、1つの要素で完結するものに関しては空要素と呼ばれている。例えば、変数の定義を行うvariable(6,7行目)や、メッセージの受信を行うreceive(10行目)などが空要素を指している。また、各要素に必要な情報は属性と呼ばれ、開始タグと空要素タグ内で記述される。例えば、process(1行目)のnameやxmlnsなどの情報が属性に当たる。
また、BPEL文書はXML文書であるため、XMLの論理構造に基づき木構造に示すことができる。図4は、図3に示すBPEL文書の属性部分を除き、要素の関係を構造木の形にしたものである。各要素名の括弧に示された数字は、図3の行番号と対応している(実際の木構造には行番号は含まれない)。XML文書において、それぞれの要素は構造木表現においてノードとも呼ばれる。以下の説明では、XML文書の要素を、構造化文書20では要素やタグ、文書構造木ではノードという表現を用いる。
ノードの相対関係を示すとき「親」「子」「子孫」「先祖」といった表現を利用する。親ノードとは、対象とするノードの1つ上位のノードを指す。例えば、variable(6)の親ノードはvariables(5)となる。子ノードとは対象とする1つ下位のノードを指す。例えば、variables(5)の子ノードはvariable(6)、variable(7)となる。先祖ノードとは、対象となるノードの全上位ノードを指す。子孫ノードは対象となるノードの全下位ノードを指す。またprocess(1)のように頂点のノードのことをルートノードと呼ぶ。構造化文書20を構造木の形で表現することにより、各ノードの関係性が明確になるため、構造化文書20に対する処理が容易に行われると考えられている。
BPEL文書はワークフローの流れのみを示し、Webサービスや自分自身がサービスとして提供された際のインタフェース情報は含まれない。このインタフェース情報を示したものがWSDL(Web Services Description Language)文書である。これには、メッセージのデータ型や、通信プロトコル、サービス名などが含まれる。WSDL文書もBPEL文書同様XMLにて表現される。図3で示したBPEL文書がサービス化された時のインタフェースを示したWSDL文書を図5に示す。
図3に示すBPEL文書内には、図5に示すWSDL文書とマッピングするための情報が含まれる。例えば、variable(6行目)はメッセージのデータの保存に利用されるが、そのデータ型を示すのは、message(7行目)となる。BPEL文書のvariable(6行目)のmessageType属性に参照元の情報が記述されている。tnsは、WSDL文書を指定するものであり、MResuestは、WSDL文書内のmessage(7行目)を示している。参照のルールはBPEL文書の仕様により定められており、開発者はこの仕様に基づきBPEL文書を構築する。
次に、本実施形態におけるプログラム開発装置が、構造化文書20からクラスオブジェクト21ならびに要素オブジェクトリスト23を作成する処理について説明する。ここでは、図3のBPEL文書、図5のWSDL文書を対象とする。説明を簡単にするため、これら文書は簡略化された形で記述されている。
まず、構造化文書要素変換手段22により構造化文書20の各要素に対応したクラスからオブジェクトをインスタンス化する。図6はインスタンス化処理を示すフローチャートである。
まず、構造化文書要素変換手段22は、BPEL文書を要素単位に切り出す(ステップS501)。そして、この切り出した要素を対応するクラスオブジェクトに変換する(ステップS502)。このクラスオブジェクトは、属性値、親要素、子要素リストのデータ群からなる。属性値は文字列で、親要素、子要素のリストは、他のクラスオブジェクトを値として持つ。親要素や子要素リストに設定されるオブジェクトは参照型となる。そのため、オブジェクト内にある親要素や子要素リストに設定されたオブジェクトにアクセスすることで、それぞれのオブジェクトのデータ群にアクセスすることが可能となる。ここで処理中の要素をN、親要素をP(N)、子要素をC1(N),C2(N),…と表す。
まず、構造化文書要素変換手段22は、切り出した要素より属性値を抜き出し、クラスオブジェクトNの属性値として設定する。次に処理要素の親要素にあたるオブジェクトP(N)をRAM11から取得する(ステップS503)。
親要素にあたるオブジェクトP(N)が設定されているか否かを判定する(ステップS504)。親要素にあたるオブジェクトP(N)が設定されていた場合(ステップS504のYes)、構造化文書要素変換手段22は、処理要素Nに対する親要素としてP(N)をRAM11に設定する(ステップS505)。その後、親要素P(N)の子要素リストの末尾に自身のオブジェクトNを追加する(ステップS506)。親要素P(N)の子要素リストには、前述のように子要素オブジェクト自身がセットするため、子要素がない場合は、子要素リストに要素オブジェクトはセットされない。
構造化文書要素変換手段22は、オブジェクトを設定すると、RAM11に保存された親要素P(N)を現在の処理要素Nに変更する(ステップS507)。すなわち、次の処理要素となる子要素に対して親要素となる現在のオブジェクトNをRAM11に設定しておく。
次に、構造化文書要素変換手段22は、処理要素Nの全ての子要素のそれぞれに対して、前述したインスタンス化処理を再帰的に実施する(ステップS508)。全ての子要素に対するインスタンス化処理を終了すると、一連のオブジェクト初期化作業は終了となる。この結果、BPEL文書に含まれる要素の関係を表すオブジェクトツリーが構築される。
なお、処理要素がルートノードであるためRAM11に親要素が設定されていない場合(ステップS504のNo)、構造化文書要素変換手段22は、ステップS505,S506の処理を実行せず、処理要素に対する親要素を設定しない。すなわちステップS507の処理に移る。
図7は、図3に示すBPEL文章を構造化文書要素変換手段22によりオブジェクト化したときのオブジェクトツリーを示す。
図7において、ルートノードの要素Processのオブジェクトの子要素リストには、要素variables、要素partnerLinks、要素sequenceのオブジェクトが設定される(C1,C2,C3)。また例えば、要素Processの子要素である要素sequenceには、親要素として要素Processのオブジェクト(P)が設定され、子要素リストには、要素receive、要素assign、要素replyのオブジェクトが設定される(C1,C2,C3)。さらに、要素assignの子要素である要素copyのオブジェクトには、親要素assignのオブジェクト(P)が設定され、子要素リストには、要素from、要素toのオブジェクトが設定される(C1,C2)。他の子要素のオブジェクトについても、同様にして親子関係に応じて、親要素と子要素リストが設定される。
なお、図7では示していないが、各オブジェクトには属性値を示すデータが含まれている。例えば、要素receiveのオブジェクトには、図3に示すBPEL文書の10行目にあるように、partnerLink、portType、operation、variableの各属性が設定されている。
このようにインスタンス化処理によって生成されたクラスオブジェクト21では、構造化文書20における要素の親子関係が定義される。従って、クラスオブジェクト21を参照とすることで、各オブジェクトの親子関係や属性値、また親子関係にある他のオブジェクトの情報を知ることができるようになる。
なお、前述した説明では、BPEL文書のみを対象にして説明しているが、構造化文書要素変換手段22は、全てのWSDL文書についても同様にしてインスタンス化処理を実行する。
従って、構造化文書要素変換手段22によるインスタンス化処理によって、BPEL文書から変換されたBPEL文書オブジェクトと、WSDL文書から変換されたWSDL文書オブジェクトが生成される。
次に、要素オブジェクトリスト化手段24は、構造化文書要素変換手段22によるインスタンス化処理により生成されたクラスオブジェクト21を要素の種類別にリスト化された要素オブジェクトリストを生成するためのリスト化処理を実行する。図8は、リスト化処理を示すフローチャートである。
まず、要素オブジェクトリスト化手段24は、構造化文書要素変換手段22により生成されたクラスオブジェクト21から親要素を持たないオブジェクトを検索する(ステップS701)。図7のBPEL文書のオブジェクトの構成例からもわかるように、親要素を持たないオブジェクトはただ1つであり、この要素がルートノードとなる。
次に、要素オブジェクトリスト化手段24は、要素の種類ごとに用意されている要素オブジェクトリスト23の末尾にオブジェクトを追加する(ステップS702)。そして、次の要素を処理するため自身が持つ全ての子要素に対し、上記の処理を再帰的に繰り返して実行する(ステップS703)。全ての子要素のオブジェクトを種類毎の要素オブジェクトリスト23の何れかに追加すると、この要素に対するオブジェクトのリスト化作業は終了となる。インスタンス化処理と同様にして、再帰的に子要素に対してリスト化処理を実行することによって全てのオブジェクトをリスト化し、要素の種類別の要素オブジェクトリストを生成することができる。
要素オブジェクトリスト化手段24によるリスト化処理によって、例えばvariable要素リスト、prtnerLinks要素リスト、sequence要素リストなどの要素オブジェクトリスト23に対して、図7(図3)に示すvariable要素のオブジェクト、要素prtnerLinksのオブジェクト、要素sequenceのオブジェクトが、それぞれに対応するリストに追加される。
図7(図3)に示すBPEL文書例のvariable要素のように文書中の他の部分に同じ種類のオブジェクトがあれば同じ要素オブジェクトリスト23にそれぞれ登録される。
こうして生成された要素オブジェクトリスト23は、RAM11に記憶され、後述する処理において参照される。
こうして生成された要素オブジェクトリスト23は、RAM11に記憶され、後述する処理において参照される。
次に、開発者から指示される文書中の要素のある属性値を得ることにより、他の属性値の候補を抽出して出力する要素属性設定・表示処理について、図9に示すフローチャートを参照しながら説明する。ここでは、図3に示すBPEL文書の要素receive(10行目)のoperation属性に対して指定された属性値に関連する、他の属性の属性値候補を抽出する場合を例にして説明する。
まず、要素属性設定・表示制御手段26は、開発者によるキーボード18の操作等により関連データ抽出要求と共に、抽出対象となる文書中の要素(ここではBPEL文書の要素receive)の指定を受ける(ステップS1001)。要素属性設定・表示制御手段26は、関連データ抽出要求に対して、ウィンドウフォーマットのデータに基づいて入力・表示ウィンドウ25を表示器15において表示させる(ステップS1002)。そして、要素属性設定・表示制御手段26は、要素オブジェクトリスト23に登録された要素オブジェクトを参照して、図10に示すように、入力・表示ウィンドウ25中の所定の位置において、要素に含まれる属性名91の一覧と、各属性に対する属性値が表示される表示欄92を表示器15において表示させる(ステップS1003)。
例えば、BPEL文書の要素receiveに対する要素オブジェクトには、属性名91として、partnerLink、portType、operation、variableが設定されているため、この各属性名の一覧が入力・表示ウィンドウ25に設定される。また、BPEL文書において、属性に対して属性値が設定されていれば表示欄92に属性値が表示される。
入力・表示ウィンドウ25においては、例えば開発者がキーボード18の操作によって、表示欄92に対して属性名91が示す属性の属性値を入力をすることができる。要素属性設定・表示制御手段26は、何れかの表示欄92が指定されて属性値が入力されると、この表示欄92において属性値を表示させる。ここで、入力・表示ウィンドウ25に設けられた「OK」ボタンを選択する操作がされることによって、関連データ抽出処理で参照される、構造化文書に記述される要素の属性に対する属性値を設定する(ステップS1004)。要素属性設定・表示制御手段26は、開発者によって指定された要素と、入力・表示ウィンドウ25を通じて設定された属性値を関連データ抽出手段28に渡して関連データ抽出処理を実行させる。
例えば、入力・表示ウィンドウ25に設定された属性名operationに対応する表示欄92に「hello」の文字列が入力されて属性値として設定されると、この文字列が関連データ抽出手段28に渡され、operation属性以外の他の属性以外の属性partnerLink、portType、variableについての属性値の候補を抽出する関連データ抽出処理が実行される。
関連データ抽出手段28は、要素属性設定・表示制御手段26からの指示に応じて、要素オブジェクトリスト23、関連テーブル27をもとにして、開発者により入力されたある要素の属性値(例えば「hello」)をもとにして、関係する他の属性値の候補を抽出する関連データ抽出処理を実行する(ステップS1005)。なお、関連データ抽出処理の詳細については後述する。
要素属性設定・表示制御手段26は、入力・表示ウィンドウ25において、開発者により入力されたある要素の属性値を表示欄92において表示すると共に、関連データ抽出手段28による関連データ抽出処理によって得られた抽出結果を表示する(ステップS1006)。すなわち要素属性設定・表示制御手段26は、開発者により入力された属性値と関係する他の属性の属性値の候補を関連データ抽出手段28から受け取り、それぞれの属性名91に対応する表示欄92に表示させる。なお、表示欄92では、1つの属性に対して複数の属性値の候補が得られた場合には、任意に選択して表示させることができる。
次に、関連データ抽出手段28により実行される関連データ抽出処理について、図11に示すフローチャートを参照しながら説明する。
まず、関連データ抽出手段28は、要素属性設定・表示制御手段26から受け取った要素をもとに、関連テーブル27から関連を示すルール群を取得する(ステップS1101)。例えば、要素receiveが指定されている場合には、関連データ抽出手段28は、関連テーブル27から要素receiveに関するルール群を取得する。
まず、関連データ抽出手段28は、要素属性設定・表示制御手段26から受け取った要素をもとに、関連テーブル27から関連を示すルール群を取得する(ステップS1101)。例えば、要素receiveが指定されている場合には、関連データ抽出手段28は、関連テーブル27から要素receiveに関するルール群を取得する。
図12には、要素receiveについてのルール群の一例を示している。図12に示すように、関連テーブル27には、BPEL文書及びWSDL文書を作成する場合に従う必要のある要素同士の関連性を示すルールが設定されており、要素間の参照関係や要素の親子関係などが定義されている。
図13、図14、及び図15は、図12に示す関連テーブル27に設定されるルール群が示す相関関係を分かりやすく示す図である。図13は、要素receiveのoperation属性とportType属性の関連を示す図、図14は、要素receiveのoperation属性とpartnerLink属性の関連を示す図、図15は、要素receiveのoperation属性とvariable属性の関連を示す図である。
関連テーブル27には、BPEL文書及びWSDL文書において使用される各要素のそれぞれに対応するルール群が存在している。関連データ抽出手段28は、これらのルールをアルゴリズム化した抽出アルゴリズム処理が用意されている。関連データ抽出手段28は、関連データの抽出対象となる属性を選択する(ステップS1102)。そして、ステップS1101において取得したルール群に従い、選択した対象の属性に対して抽出アルゴリズム処理を実施する(ステップS1103)。抽出アルゴリズム処理の具体例については後述する。
関連テーブル27に設定されたルールには、複数の要素が共通する要素を参照するものが含まれる。例えば、図13に示すルール10_1cと10_1eや、図15に示すルール10_5は、矢印の先が一致しており、参照先の要素が一致しなくてはいけないという制約があることを示している。抽出アルゴリズムでは、前述したような参照先の要素が一致する条件を満たすものを候補として抽出する。
関連データ抽出手段28は、対象の属性についての抽出アルゴリズム処理を完了すると、他の全ての属性の値を抽出したかを判定する(ステップS1104)。ここで、全ての属性の値を抽出したと判定した場合(ステップS1104のYes)、関連データ抽出手段28は、一致した全ての属性値を要素属性設定・表示制御手段26に渡す(ステップS1105)。
ステップS1104でNoの場合、関連データ抽出手段28は、ステップS1102に戻り、次に対象とする属性を選択して、同様にして抽出アルゴリズム処理を実行する。
要素属性設定・表示制御手段26は、関連データ抽出手段28から渡された属性値の候補を、前述したように入力・表示ウィンドウ25の表示欄92において表示させる。
次に、ステップS1103における抽出アルゴリズム処理の具体例について説明する。
まず、要素receiveのoperation属性からportType属性の属性値を抽出するための抽出アルゴリズム処理について、図16に示すフローチャートを参照しながら説明する。
まず、要素receiveのoperation属性からportType属性の属性値を抽出するための抽出アルゴリズム処理について、図16に示すフローチャートを参照しながら説明する。
関連データ抽出手段28は、図12及び図13に示すportType属性に関係するルール10−1bを適用するために、WSDL文書の要素portTypeの要素オブジェクトリスト23(portType要素リスト)をRAM11から取得する(ステップS1301)。
次に、関連データ抽出手段28は、portType要素リストから処理対象とするportType要素のオブジェクトを取得する(ステップS1302)。
関連データ抽出手段28は、この取得した要素オブジェクトに設定されている子要素のopearation要素のオブジェクトを取得する(ステップS1303)。そして、このoperation要素のオブジェクトに設定されたname属性の属性値、すなわちopearation要素に設定されている名前を取得する(ステップS1304)。
関連データ抽出手段28は、この処理対象となっているオブジェクトに設定されたopearation要素の名前が、入力・表示ウィンドウ25を通じてBPEL文書のoperation要素に対して開発者が指定した属性値と一致するか、すなわちルール10−1cを満たしているかを判定する(ステップS1305)。この判定の結果、一致していた場合には(ステップS1305のYes)、関連データ抽出手段28は、一致した属性値が設定されている処理対象としているportType要素のオブジェクトをRAM11に設定される候補リストに登録して保持する(ステップS1306)。
例えば、入力・表示ウィンドウ25を通じて属性operationに対して属性値「hello」が指定されていた場合、図5に示すWSDL文書の13行目にあるportType要素の子要素oprationの属性値「hello」(14行目)と一致するか判定される。この結果、一致していると判定されるため、WSDL文書の13行目に相当するportType要素のオブジェクトが候補リストに記録される。この場合、portType要素のオブジェクトに設定されている属性値である「helloPT」(WSDL文書の13行目)が、入力・表示ウィンドウ25の属性名91に設定されたportTypeに対する表示欄92に表示されることになる。
関連データ抽出手段28は、要素オブジェクトリスト23に登録された全てのオブジェクトについての検証が終了したか否かを判定する(S1307)。全てのオブジェクトについての検証が終了していないと判断すると(ステップS1307のNo)、ステップS1302に戻る。以下、同様にして、要素portTypeの要素オブジェクトリスト23に設定されているオブジェクトを順次取得して(ステップS1302)、ルールを満たす候補に該当するかを判定し(S1303〜S1305)、該当するオブジェクトを候補リストに追加登録していく(ステップS1306)。関連データ抽出手段28は、要素オブジェクトリスト23に登録された全てのオブジェクトについての検証が終了すると(ステップS1307のYes)、portType属性の属性値の候補を抽出するための抽出アルゴリズム処理を終了する。また、ステップS1305において一致していない場合には(ステップS1305のNo)、開発者が指定した属性値と関連する属性値の候補としてステップS1307に移る。
次に、要素receiveのoperation属性からpartnerLink属性の属性値を抽出するための抽出アルゴリズム処理について、図17に示すフローチャートを参照しながら説明する。
関連データ抽出手段28は、図12及び図14に示すpartnerLink属性に関係するルール10_1aを適用するために、BPEL文書の要素partnerLinkの要素オブジェクトリスト23(partnerLink要素リスト)をRAM11から取得する(ステップS1401)。
次に、関連データ抽出手段28は、partnerLink要素リストから処理対象とするpartnerLink要素のオブジェクトを取得する(ステップS1402)。
関連データ抽出手段28は、ルール10_1aに従い、partnerLink要素リストから取得した要素オブジェクトにmyRoleの属性値が設定されているか判定する(ステップS1403)。この判定の結果、myRoleの属性値が設定されていた場合(ステップS1403のYes)、関連データ抽出手段28は、partnerLink要素に対する別のルール10_3を確認するため、WSDL文書のpartnerLinkType要素リストをRAM11より取得する(ステップS1404)。
関連データ抽出手段28は、この取得したpartnerLinkType要素リストから処理対象とするpartnerLinkType要素のオブジェクトを取得する(ステップS1405)。そして、ステップS1403において要素オブジェクトに設定されている判定されたmyRoleの属性値と、partnerLinkType要素のオブジェクトに設定された子要素のRole要素のname属性の設定値、すなわちRole要素に設定されている名前とが一致しているかを判定する(ステップS1406)。
ここで、一致すると判定された場合には(ステップS1406のYes)、関連データ抽出手段28は、図12及び図14に示すルール10_4を適用するために、WSDL文書のportType要素の要素オブジェクトリスト23(portType要素リスト)をRAM11から取得する(ステップS1407)。
関連データ抽出手段28は、portType要素リストから処理対象とするportType要素のオブジェクトを取得する(ステップS1408)。
関連データ抽出手段28は、ルール10_4に従い、portType要素リストから取得した要素オブジェクトについて、ステップS1406において一致したと判定されたmyRole要素の子要素portType要素のname属性と、ステップS1408で取得した要素オブジェクトのname属性とが一致しているかを判定する(ステップS1409)。
この比較の結果、一致していると判定された場合(ステップS1409のYes)、ルール10_1bを満たす必要があるため、関連データ抽出手段28は、ステップS1410において取得した処理対象とするportType要素のオブジェクトに設定された、子要素のoperation要素のname属性値と、入力・表示ウィンドウ25を通じてBPEL文書のreceive要素のoperation属性に対して開発者が指定した属性値と一致するかを判定する(ステップS1410)。
ここで、一致していた場合には(ステップS1410のYes)、図12及び図14に示すpartnerLink属性に関するルールを満たすため、関連データ抽出手段28は、一致した属性値が設定されている、ステップS1402で取得した処理対象とするpartnerLink要素のオブジェクトをRAM11中の候補リストに登録して保持する(ステップS1411)。
ここで、portType要素リストの全ての要素オブジェクトについて、前述した検証を完了しているか否かを判断する(ステップS1412)。前述した検証を完了していなければ(ステップS1412のNo)、関連データ抽出手段28は、ステップS1408に戻り、前述と同様の処理を繰り返して実行する(ステップS1408〜S1411)。なお、ステップS1409またはステップS1410において一致していないと判定された場合には(ステップS1409のNo、ステップS1410のNo)、開発者が指定した属性値と関連しないものとして、ステップS1402で取得した処理対象とするpartnerLink要素のオブジェクトをRAM11に保持せず、ステップS1412に移る。
関連データ抽出手段28は、partnerLinkType要素リストの全ての要素オブジェクトについて、前述した検証を完了したか否かを判断する(ステップS1413)。前述した検証を完了していない場合(ステップS1413のNo)、ステップS1405に戻り、partnerLinkType要素リストから次のpartnerLinkTypeオブジェクトを取得して、前述と同様の処理を実行する(ステップS1406〜S1412)。
なお、ステップS1406において一致していないと判定された場合には(ステップS1406のNo)、portType要素リストに対する処理を実行しないでステップS1413の処理に移る。
関連データ抽出手段28は、partnerLinkType要素リストの全ての要素オブジェクトについて、前述した検証を完了した場合(ステップS1413のYes)、partnerLink要素リストの全ての要素オブジェクトについて、前述した検証を完了したかを判定する(ステップS1414)。ここで、partnerLink要素リストの全ての要素オブジェクトについて、前述した検証を完了していない場合(ステップS1414のNo)、関連データ抽出手段28は、ステップS1402に戻り、partnerLink要素リストから次に処理対象とするpartnerLink要素のオブジェクトを取得して前述と同様の処理を実行する(ステップS1402〜S1413)。
こうして関連データ抽出手段28は、前述した一連の処理を全てのリストに設定されたオブジェクトに対して検証が終了するまで実施する。関連データ抽出手段28は、partnerLink要素リストの全ての要素オブジェクトについて前述した検証を完了すると(ステップS1414のYes)、抽出アルゴリズム処理を終了する。
以上の抽出アルゴリズム処理を完了すると、partnerLink属性の属性値の候補が設定された要素オブジェクトがRAM11に記憶された候補リストに登録される。
このようにして、partnerLink属性についての関連ルールは、前述したportType属性の属性値を抽出する場合より複雑なルールであるが、このルールに基づく抽出アルゴリズム処理により、開発者が入力・表示ウィンドウ25から例えば要素receiveのoperation属性の属性値を入力することで、容易にpartnerLink属性の属性値の候補を抽出して開発者に提示することが可能となる。
次に、要素receiveのoperation属性からvariable属性の属性値を抽出するための抽出アルゴリズム処理について、図18に示すフローチャートを参照しながら説明する。
関連データ抽出手段28は、図12及び図15に示すvariable属性に関係するルール10_1bを適用するために、WSDL文書の要素operationの要素オブジェクトリスト23(portType要素リスト)をRAM11から取得する(ステップS1501)。
関連データ抽出手段28は、図12及び図15に示すvariable属性に関係するルール10_1bを適用するために、WSDL文書の要素operationの要素オブジェクトリスト23(portType要素リスト)をRAM11から取得する(ステップS1501)。
次に、関連データ抽出手段28は、portType要素リストから処理対象とするportType要素のオブジェクトを取得する(ステップS1502)。
ここで、関連データ抽出手段28は、子要素のoperation要素のname属性値と、入力・表示ウィンドウ25を通じてBPEL文書のreceive要素のoperation要素に対して開発者が指定した属性値と一致するかを判定する(ステップS1503)。
ここで、一致していると判定された場合(ステップS1503のYes)、関連データ抽出手段28は、ルール10_6を適用するために、ステップS1502で取得したportType要素の孫要素の中からinput要素のmessage属性の属性値を取得する(ステップS1504)。
次に、関連データ抽出手段28は、WSDL文書のmessage要素リストをRAM11から取得する(ステップS1505)。そして、このmessage要素リストから処理対象とするmessage要素のオブジェクトを取得する(ステップS1506)。
そして、関連データ抽出手段28は、message要素のオブジェクトのname属性と、S1504で取得したinput要素のmessage属性の属性値とが一致するかを判定する(ステップS1507)。
この比較の結果、一致していると判定された場合は(ステップS1507のYes)、関連データ抽出手段28は、ルール10_5を適用できるvariable要素を以下のようにして探す。これはルール10_2を満たし、かつルール10_6(前述したステップS1507)を満たしたものとなるので、ルール10_2についての検証を行えばよい。
まず、関連データ抽出手段28は、BPEL文書のvariable要素リストをRAM11から取得する(ステップS1508)。そして、このリストから処理対象とするvariable要素のオブジェクトを取得する(ステップS1509)。
ここで、関連データ抽出手段28は、variable要素のmessageType属性の属性値と、ステップS1507で一致したと判定されたmessage要素のname属性の属性値とが一致するかを判定する(ステップS1510)。
この比較の結果、一致していると判定された場合(ステップS1510のYes)、関連データ抽出手段28は、要素receiveのoperation属性とvariable属性に関する図12及び図15に示すルールを満たすため、一致した属性値が設定されている、ステップS1509で取得した処理対象とするvariable要素のオブジェクトをRAM11中の候補リストに登録して保持する(ステップS1511)。
ここで、variable要素リストの全ての要素オブジェクトについて、前述した検証を完了したか否かを判断する(ステップS1512)。前述した検証を完了していない場合(ステップS1512のNo)、関連データ抽出手段28は、ステップS1509に戻り、前述と同様にして、variable要素リストに設定されている次に処理対象とするオブジェクトを取得して、前述と同様の処理を実行する(ステップS1509〜S1512)。
関連データ抽出手段28は、variable要素リストの全ての要素オブジェクトについて、前述した検証を完了した場合(ステップS1512のYes)、message要素リストの全ての要素オブジェクトについて、前述した検証を完了したかを判定する(ステップS1513)。ここで、message要素リストの全ての要素オブジェクトについて、前述した検証を完了していない場合(ステップS1513のNo)、関連データ抽出手段28は、ステップS1506に戻り、message要素リストから処理対象とするmessage要素のオブジェクトを取得して、前述と同様の処理を実行する(ステップS1506〜S1513)。
一方、ステップS1510において一致していると判定されない場合(ステップS1510のNo)はステップS1513に移る。
一方、ステップS1510において一致していると判定されない場合(ステップS1510のNo)はステップS1513に移る。
message要素リストの全ての要素オブジェクトについて、前述した検証を完了した場合(ステップS1513のYes)、関連データ抽出手段28は、portType要素リストの全ての要素オブジェクトについて、前述した検証を完了したかを判定する(ステップS1514)。
portType要素リストの全てのオブジェクトについて検証が終了していなければ(ステップS1514のNo)、関連データ抽出手段28は、ステップS1502に戻り、portType要素リストから次に処理対象とするportType要素のオブジェクトを取得して、前述と同様の処理を実行する(ステップS1502〜S1513)。
portType要素リストの全てのオブジェクトについて検証が完了すると(ステップS1514のYes)、関連データ抽出手段28は、抽出アルゴリズム処理を終了する。
以上の抽出アルゴリズム処理を完了すると、variable属性の属性値の候補が設定された要素オブジェクトがRAM11に記憶された候補リストに登録される。
このようにして、BPEL文書やWSDL文書で使用される構造化文書ベース記述言語では、要素間に参照関係が存在するだけでなく、ネストの中に情報が収められていたり、参照範囲を構造によって制御することが多い。そのため、BPEL文書やWSDL文書中の要素がオブジェクト化されてリスト化された要素オブジェクトリスト23と、関連テーブル27に定義される親子関係などに対応する抽出アルゴリズム処理を実行することで、柔軟に文書内の適切な位置に記述された内容を参照することが可能となり、効率的に対象となる属性値の候補を参照することができる。
本実施の形態では装置内部に発明を実施する機能が予め記録されている場合で説明をしたが、これに限らず同様の機能をネットワークから装置にダウンロードしても良いし、同様の機能を記録媒体に記憶させたものを装置にインストールしてもよい。記録媒体としては、CD−ROM等プログラムを記憶でき、かつ装置が読み取り可能な記録媒体であれば、その形態は何れの形態であっても良い。またこのように予めインストールやダウンロードにより得る機能は装置内部のOS(オペレーティング・システム)等と協働してその機能を実現させるものであってもよい。
10…CPU、11…RAM、12…ROM、20…構造化文書、21…クラスオブジェクト、22…構造化文書要素変換手段、23…要素オブジェクトリスト、24…要素オブジェクトリスト化手段、28…関連データ抽出手段。
Claims (5)
- 構造化文書に記述された要素を属性や親子関係を含む情報が設定されたオブジェクトに変換する構造化文書要素変換手段と、
構造化文書要素変換手段により変換されたオブジェクトが要素別にリスト化された要素オブジェクトリストを生成する要素オブジェクトリスト化手段と、
前記構造化文書中の要素同士の関連性に基づいて、前記オブジェクトまたは前記要素オブジェクトリストから関連性のある要素を抽出する関連データ抽出手段と
を具備したことを特徴とするプログラム開発装置。 - 前記構造化文書に記述される要素同士の関連性を示すルールを記憶する関連テーブルと、
前記構造化文書に記述される要素の属性に対して属性値を設定する要素属性設定手段とをさらに具備し、
前記関連データ抽出手段は、前記要素属性設定手段により設定された属性値と一致する属性値を含む、前記関連テーブルに設定されたルールを満たす他の要素を前記構造化文書から抽出することを特徴とする請求項1記載のプログラム開発装置。 - 前記要素属性設定手段によって設定された属性値を表示すると共に、前記関連データ抽出手段によって抽出された他の属性の属性値を表示させる表示制御手段をさらに具備したことを特徴とする請求項2記載のプログラム開発装置。
- (請求項1に対応するプログラム)
コンピュータを、
構造化文書に記述された要素を属性や親子関係を含む情報が設定されたオブジェクトに変換する構造化文書要素変換手段と、
構造化文書要素変換手段により変換されたオブジェクトが要素別にリスト化された要素オブジェクトリストを生成する要素オブジェクトリスト化手段と、
前記構造化文書中の要素同士の関連性に基づいて、前記オブジェクトまたは前記要素オブジェクトリストから関連性のある要素を抽出する関連データ抽出手段として機能させるためのプログラム開発プログラム。 - コンピュータを、さらに
前記構造化文書に記述される要素同士の関連性を示すルールを記憶する関連テーブルと、
前記構造化文書に記述される要素の属性に対して属性値を設定する要素属性設定手段とに機能させ、
前記関連データ抽出手段により、前記要素属性設定手段により設定された属性値と一致する属性値を含む、前記関連テーブルに記憶されたルールを満たす他の要素を前記構造化文書から抽出させるための請求項4記載のプログラム開発プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007338371A JP2009157847A (ja) | 2007-12-27 | 2007-12-27 | プログラム開発装置、プログラム開発プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007338371A JP2009157847A (ja) | 2007-12-27 | 2007-12-27 | プログラム開発装置、プログラム開発プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009157847A true JP2009157847A (ja) | 2009-07-16 |
Family
ID=40961753
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007338371A Withdrawn JP2009157847A (ja) | 2007-12-27 | 2007-12-27 | プログラム開発装置、プログラム開発プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009157847A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012064053A (ja) * | 2010-09-16 | 2012-03-29 | Toshiba Tec Corp | ワークフロー管理装置、及びワークフロー管理プログラム |
JP2015176395A (ja) * | 2014-03-17 | 2015-10-05 | カシオ計算機株式会社 | 情報処理装置及びプログラム |
-
2007
- 2007-12-27 JP JP2007338371A patent/JP2009157847A/ja not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012064053A (ja) * | 2010-09-16 | 2012-03-29 | Toshiba Tec Corp | ワークフロー管理装置、及びワークフロー管理プログラム |
JP2015176395A (ja) * | 2014-03-17 | 2015-10-05 | カシオ計算機株式会社 | 情報処理装置及びプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106682219B (zh) | 关联文档获取方法及装置 | |
JP4381012B2 (ja) | 万物識別子を用いたデータ検索システムおよびデータ検索方法 | |
JP5084314B2 (ja) | 情報処理装置、情報処理方法、情報処理プログラム、及び情報処理プログラムを記録する記録媒体 | |
Rodriguez-Echeverria et al. | Towards a language server protocol infrastructure for graphical modeling | |
US20030093769A1 (en) | Apparatus and method for UPnP device code generation using XML | |
US20090293059A1 (en) | Automatically connecting items of workflow in a computer program | |
CN104731589A (zh) | 用户界面的自动生成方法及自动生成装置 | |
JP2010055483A (ja) | 情報再取得手順生成プログラム及び情報再取得手順生成装置 | |
CN101777004A (zh) | 面向服务环境中基于模板实现bpel子流程复用的方法及系统 | |
JP2007047862A (ja) | 情報処理装置及び方法 | |
US8701086B2 (en) | Simplifying analysis of software code used in software systems | |
JP2010016778A (ja) | 画像形成装置、情報処理方法、及び、画像形成システム | |
CN113407284A (zh) | 导航界面的生成方法、装置、存储介质及电子设备 | |
JP5217989B2 (ja) | ビジュアルプログラミング支援装置、ビジュアルプログラミング支援装置のビジュアルプログラミング支援方法、プログラム、および記憶媒体 | |
US20120089959A1 (en) | Method and apparatus for creating service flow based on user's goal-driven semantic service discovery | |
JP2009157847A (ja) | プログラム開発装置、プログラム開発プログラム | |
JP2010211642A (ja) | ワークフロー処理システム、ワークフロー処理装置、及びワークフロー処理方法 | |
JP2006065467A (ja) | データ抽出定義情報生成装置およびデータ抽出定義情報生成方法 | |
JP2018181073A (ja) | 情報処理装置と、その処理方法及びプログラム | |
JP5379526B2 (ja) | Webサービステスト支援装置及びプログラム | |
JP2004362343A (ja) | ソースコード変換装置、ソースコード変換方法、およびプログラム | |
JP2008305205A (ja) | フロー処理構築装置、フロー処理構築方法及びプログラム | |
JP2020181516A (ja) | テンプレート検索システムおよびテンプレート検索方法 | |
JP2007213509A (ja) | 業務フロー管理システム及び業務フロー管理方法及び業務フロー管理プログラム | |
JP2007219579A (ja) | ドキュメント変換装置、およびプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090915 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20111207 |