汎用スキーマ基盤技術 社外打ち合わせ議事録 ■日時 2005年03月02日(水) 15:00〜20:00 ■場所 独立行政法人宇宙航空研究開発機構 宇宙科学研究本部 新A棟2F ■出席者(順不同) 宇宙研) 松崎様、周東様 セック) 小林、豊田(記) ■配布資料 セック) 1) tableTools開発スケジュール 2) UMS 0.4版(案) 3) UMSのスキーマ 4) C/Text(out)・Java/Text(out)のソースコード 5) XML版の入力データサンプル 6) XML版のUMS ■議題 1.UMS 0.4版(案) 2.UMSのスキーマ 3.C/Text(out)・Java/Text(out)のソースコード 4.XML版の入力データサンプルとXML版のUMS 5.tableTools開発スケジュール -------------------------------------------------------------------------- ■A/I一覧 【セック】 [S-0223-01] UMS 0.4版(案2)、マッピング部に、どこからどこまでが、どの関数 の処理範囲であるかを示す情報を追加する。 -> 配布資料2)にまとめた。クローズとする。 [S-0223-02] UMS 0.4版(案2)、変数定義部とデータ定義部の冗長な情報をなくす よう検討する(データ型が2箇所で定義されている)。 -> 配布資料2)にまとめた。クローズとする。 [S-0223-03] UMS 0.4版(案2)、function要素中で関数の用途を表すuseという 属性名について、より一般的な属性名を検討する。 -> 配布資料2)にまとめた。クローズとする。 [S-0223-04] UMS 0.4版(案2)、arg要素中で引数の入出力表すuseという属性名 について、より一般的な属性名を検討する。 -> 配布資料2)にまとめた。クローズとする。 [S-0223-05] C/Text(out)・Java/Text(out)のソースコードについて、binary データに対応できるよう、ソースコードを修正する。 -> 配布資料4)にまとめた。まだ修正が必要である。 [S-0223-06] C/Text(out)・Java/Text(out)のソースコードについて、 マッピングファイルとの対応関係がわかるように、コード中にコメ ントを追加する。 -> 配布資料4)にまとめた。まだ修正が必要である。 [S-0302-01] UMSデータに配列型がないため、追加する。 [S-0302-02] Java版のUMSの場合、データ定義されているクラスを外部クラスと して記述する。 [S-0302-03] バイナリデータを入力とする場合のUMSのサンプルを作成する。 [S-0302-04] UMSのスキーマについて、で のfunction要素の記述を分ける。 [S-0302-05] UMSのスキーマについて、direction属性の内容がinputまたは outputのみを指定できるように修正する。 [S-0302-06] C・Java/Text(out)のソースコードについて、バイナリ書き込み処 理関数のロジックを簡略化する。また、ビット単位で処理できる ように修正する。 【宇宙研様】 [I-0302-01] UMS ver0.4について、一通り確認した上、後日コメントを頂く。 [I-0302-02] run time エラーをどのように扱うかをご検討頂く。 -------------------------------------------------------------------------- ■議事内容 1.UMS 0.4版(案) 配布資料2)をもとに、UMS 0.4版(案)について確認を行った。 - function要素のdirection属性は、マッピングに対して入力を行う関数を "input"、出力とするものを"output"とする。 - function要素のpipe属性について、今回は処理の道筋(データをプログラム変 数に格納する・プログラム変数をデータとして出力するの2本)を固定とするた め、削除する。 -> XSLでソースを生成する際は、以下のようにfunction要素のdirection属性 とarg要素のdirection属性で処理内容を判断する。 の場合は読み込み処理とする。 の場合は書き込み処理とする。 - return要素は現時点では考慮しないため削除してもよいが、今後拡張するこ とも考えコメントして残しておく。 - 言語に依存しない汎用的な名称にするため、とする。 - 内では、変数名とその変数に対するマッピングの情報しか記 述されていない。そのため、変数の型情報を内から得る必 要がある。 -> 6.その他)参照 - 現在作成中のUMSデータに、サンプルとして配列型が含まれていないため、追 加する必要がある。 -> UMSでは以下のように記述し、追加する。【A/I セック】 - 現在サポートしているdatatypeLibraryのデータタイプは、W3Cのdatatypeを 参考にしているが、今回開発ではどこまでをサポート範囲とするか、決定す る必要がある。 -> 作業のボリュームを考慮し、今回サポートするデータタイプは、string、 int、doubleのみとする。 - Java版のソースコードでは、変数が定義されたRecordクラスは、独立したク ラスである。しかし、現在Java版のumsでは、RecordクラスはtextSampleクラ ス中に書かれている。 -> 一般ユーザから見た場合、インナークラスとしてではなく、個別のクラ スとして出力された方が有用性は高いと思われる。そのため、Recordク ラスを外部クラスとして記述する。【A/I セック】 (現在のUMSの記述方法) ... ... ... ... (変数が定義されたクラスを外部クラスに記述する方法) ... ... ... ... この場合、textSampleクラスの内で記述された変数の 型情報を得ることが困難である。 -> 6.その他)参照 -> なお、textSampleの中で型定義された場合は、インナークラスとしてソ ースを生成する - バイナリデータを入力とする場合のUMSのサンプルを作成する。【A/I セック】 2.UMSのスキーマ 配布資料3)をもとに、UMSのスキーマについて確認を行った。 - function要素のdirection属性とpipe属性は内では必須で あるが、内ではその属性が必要ないため、で指定 している。 -> でのfunction要素の記述を分ける。 【A/I セック】 - function要素のdirection属性に書かれる内容は、"input"または"output"し かないが、その制限がない。 -> direction属性の内容が、inputまたはoutputのみを指定できるように修 正する。【A/I セック】 - その他、一通り確認した上、後日コメントを頂く。【A/I 宇宙研様】 3.C/Text(out)・Java/Text(out)のソースコード 配布資料4)をもとに、C/Text(out)・Java/Text(out)のソースコードについて確 認を行った。 - run time エラーの場合、標準出力に日本語メッセージが出力するのみとなっ ている。 -> run time エラーをどのように扱うかをご検討頂く。【A/I 宇宙研様】 - データをバイナリ形式で書き込むums_singnedWrite()とums_unsignedWrite() のロジックが複雑で分かりにくい。 また、ms_singnedWriteとums_unsignedWrite(バイナリ書き込み処理関数)の書 き込みの最小単位がバイト単位になっている。 -> 簡略化できるロジックは簡略化する。ビット単位で処理できるよう修正 する。【A/I セック】 - ソースコードの入力データにchar* を加えた方がよいと考えられる。 -> char* で文字列を扱う場合、mallocでのメモリの確保し、free()で開放 するタイミングを決定することが困難である。そのため、今回は考慮し ない。 4.XML版の入力データサンプルとXML版のUMS 配布資料5)、6)をもとに、XML版の入力データサンプルとXML版のUMSについて確 認を行った。 - attributes属性に記述されているデータを、プログラム変数に格納するという 処理は、処理の複雑さを考慮し、今回はサポートしない。 5.今後の作業方針 - XML版については、JavaではSAXを利用し、Java/XML(in,out)のソースコード を先に作成する。その後Cに展開していくこととする。 - XML版のCについては、Expatを用いてSAXに似た処理を実現できると考えられ るが、調査が必要である。 6.その他 - 変数定義とマッピングを分けてUMSを記述した場合、また、Javaの場合は、デ ータ定義のクラスを外部に記述した場合、内で使用されてい る変数の型情報を知るのが困難である。そのため、UMSからソースコードに生 成する際に利用する、ルックアップテーブルを中間ファイルとして作成する必 要がある。 -> 以下に、中間ファイルを作成し、XSLを用いてUMSからソースコードを生成 する手順を示す。 1.変数名と変数の型情報を記述している部分を、XSLを用いてUMSから取り 出す。 2.Javaを用いて、取り出した変数と型情報を結びつけるテーブル(XML形式) を作成する。 3.作成したテーブルを利用し、ソースコードを生成できるXSLを作成する。 4.XSLを用い、UMSからソースコードを生成する。 -------------------------------------------------------------------------- ■次回予定 03/09(水) 10:00〜 -> 打ち合わせ終了後、現地にて作業させて頂く。 -------------------------------------------------------------------------- 以 上