サービス開発の概念

DataSpider Servistaでサービスを開発するにあたって、必要となる概念や機能、用語について記述します。

DataSpider Studioの構成要素

スクリプト

スクリプトとは、DataSpiderServer上で公開/実行される「サービス」を構成する一連の処理の流れを記述したものです。プログラミング言語で言い換えると、ソースコードに当たります。
スクリプトは「デザイナ」で設計/開発します。また、スクリプトからスクリプトを呼び出すこともできます。この際に呼び出されたスクリプトのことを「子スクリプト」、呼び出したスクリプトを「親スクリプト」と呼びます。

プロジェクト

プロジェクトとは、関連するスクリプトをまとめたものです。DataSpider Servistaでは、プロジェクト単位で読み込み/保存を行います。
サーバに保存したプロジェクトは「マイプロジェクト」から参照することができます。また、「プロジェクトをサービスとして登録」を行う際もプロジェクト単位で登録を行います。

サービス

サービスとは、スクリプトがサーバに登録され、他のプロジェクトのスクリプトや「トリガー」、「ScriptRunner」「ScriptRunnerProxy」などから呼び出せる状態になったものを表します。「マイサービス」で管理します。

スクリプトの構成要素

コンポーネント

コンポーネントは、データの読み取りや変換、書き込みなどの処理を行います。コンポーネントはデザイナ上では1つのアイコン(「コンポーネントアイコン」)として表示されます。

コンポーネント間で処理の流れやデータの流れ(「フロー」)を作成する場合には、流れを作りたい方向にコンポーネントアイコンをドラッグ&ドロップすることで関連付けられます。DataSpider Servistaでは、処理の流れとデータ流れを別々に定義することが可能です。つまり、複数のコンポーネントで同一の読み取りコンポーネントの「結果データ」を再使用することができ、何度も読み取り処理を行う必要はありません。

コンポーネントは、以下の要素で構成されています。

アダプタ

アダプタは、主にデータベースなどの外部のシステムからデータの読み取り、書き込みを行うコンポーネントです。
DataSpider Servistaのアダプタは、デザイナのツールパレット上では以下のようなカテゴリに分類されます。

カテゴリ 説明
基本 妥当性検証やアサーションなどのアダプタが属するカテゴリです。
データベース RDBやXMLDBなどの各種データベースに接続するアダプタが属するカテゴリです。
ファイル CSVやXMLなどの各種ファイルフォーマットに対応したアダプタが属するカテゴリです。
ネットワーク ネットワーク系のサービスに接続するアダプタが属するカテゴリです。
アプリケーション 各種アプリケーションに接続するアダプタが属するカテゴリです。
ディレクトリサービス ディレクトリサービスを使用するアダプタが属するカテゴリです。

コンバータ

コンバータは、アダプタで読み取った「結果データ」や「変数」を変換するためのコンポーネントです。
デザイナのツールパレット上では、主に「変換」カテゴリに属します。
DataSpider Servistaでは、以下の種類のコンバータが用意されています。また、Mapperでは変換処理をGUIで設定できる専用のエディタ(Mapperエディタ)を使用することができます。

コンバータ名 名前 処理名 カテゴリ
Mapper 変数Mapper 変数代入 基本/処理
ドキュメントMapper マッピング 変換/基本
マージMapper マージ 変換/基本
文字 Character Converter CP932からSJISに変換 変換/文字
SJISからCP932に変換 変換/文字
Ignore Invalid Char Filter 不正なXML文字削除 変換/文字
Oralce Node Text Converter ONTConverter 変換/ONTConverter
XSLT XSLT構造変換 変換/XSLT

スクリプトコンポーネント

スクリプトコンポーネントとは、フロー制御やメモなど、スクリプト作成に必要な機能をまとめたコンポーネントです。
デザイナのツールパレット上では「基本」カテゴリに属します。
DataSpider Servistaでは、主に以下のようなスクリプトコンポーネントがあります。

サブカテゴリ 説明
処理 外部アプリケーション起動処理や待機処理など
フロー 繰り返し処理や例外監視処理など
その他 グループ処理やメモなど

フロー

スクリプトには、処理の流れを表す「プロセスフロー」と、データの流れを表す「データフロー」があります。プロセスフローとデータフローを総称して「フロー」と呼びます。
DataSpider Servistaでは、フローをプロセスフローとデータフローを分離することにより、一度処理した処理結果を後続のコンポーネントで何度も使用することができます。

プロセスフロー

プロセスフローとは、処理の流れを表します。スクリプトはプロセスフローで結ばれた順番に処理されます。
プロセスフローは、startコンポーネントから開始され、「end」コンポーネントおよび「break」コンポーネントで終了します。

データフロー

データフローとは、データの流れを表します。
読み取り系アダプタやコンバータから書き込み系アダプタやコンバータにデータフローを引くことができます。

結果データ

コンポーネントの処理結果を「結果データ」と呼びます。
主に読み込み系アダプタとコンバータは結果データを生成します。また、書き込み系アダプタとコンバータは結果データを「入力データ」として扱います。

変数

DataSpider Servistaでは、「スクリプト変数」、「コンポーネント変数」、「環境変数」、「トリガー変数」の4種類の変数が用意されています。

名前 使用できるスコープ 説明 スクリプト内での値の変更 使用方法 使用例 補足
スクリプト変数 スクリプト スクリプト内で使用できる変数です。ユーザが自由に作成および追加を行うことができます。
(変数Mapperを使用します。)
${スクリプト変数名} ${var}
  • データ型については、こちらを参照してください。
コンポーネント変数 スクリプト コンポーネント用としてあらかじめ用意されている変数です。ファイル系アダプタやデータベース系アダプタでは、処理した行数をコンポーネント変数として取得することができます。 不可
(処理の実行時に自動的に設定されます。)
${コンポーネント名.コンポーネント変数名} ${csv_read.count}
  • 詳細については、各アダプタのヘルプを参照してください。
環境変数 システム全体 システム全体で使用できる変数です。 不可 %{環境変数名} %{TEST_DB_HOST}
トリガー変数 トリガー 各トリガー用にあらかじめ用意されている変数です。 不可 ${trigger.トリガー変数名} ${trigger.projectName}

スクリプト変数

DataSpider Servistaでは、スクリプト変数に以下の「データ型」を用意しています。

データ型 内部データ型 説明 補足
文字列型 String 0〜2147483647文字の文字列
  • [初期値]または[テスト実行時の値]未設定時のデフォルト値は空文字になります。
整数型 int -2147483648〜2147483647の整数
  • [初期値]または[テスト実行時の値]未設定時のデフォルト値は「0」になります。
  • [初期値][テスト実行時の値]に整数以外の値を設定した場合、スクリプト実行時に「0」になります。
    Mapperにおける変数代入処理と動作が異なるので注意してください。
10進数型 BigDecimal 任意精度の符号付き小数
  • [初期値]または[テスト実行時の値]未設定時のデフォルト値は「0」になります。
日付/時間型 Date 日付、時間
  • [初期値]または[テスト実行時の値]未設定時のデフォルト値は「1970-01-01T09:00:00.000+0900」になります。
真偽値型 boolean 「true」または「false」の真偽値
  • [初期値]または[テスト実行時の値]未設定時のデフォルト値は「false」になります。
バイナリ型 byte[] バイナリデータ
  • [初期値]または[テスト実行時の値]未設定時のデフォルト値はnullになります。
XML型   XML型のデータを格納します。
テーブルモデル型のデータも格納できます。
  • [初期値]または[テスト実行時の値]未設定時のデフォルト値はnullになります。

入出力

入出力とは、スクリプトの引数(スクリプト入力変数)と戻り値(スクリプト出力変数)のことです。入出力は、スクリプトで定義されたスクリプト変数に、入出力用の属性を付加することで実現されています。
DataSpider Servistaのスクリプトは複数の引数を取ることができ、複数の戻り値を返すことができます。入出力であるスクリプト入力変数、スクリプト出力変数を総称して「入出力インタフェース」と呼びます。

入出力の設定は、スクリプト変数の作成/編集画面およびスクリプトのプロパティの[入出力]タブで行います。

終了ステータス

終了ステータスは、スクリプトが終了した際にスクリプトを実行したツールに返される値です。
詳細については、「終了ステータス」を参照してください。

実行ID

スクリプトは、1スクリプトにつき1つの、DataSpiderServer上で一意なIDを割り振られます。これを「実行ID」と呼びます。
実行IDは、ログタスクマネージャでスクリプトを識別する際に必要となります。

プロジェクトをサービスとして登録

DataSpider Servistaでは、開発中のスクリプトと開発が完了したスクリプトとを区別しています。
サービスとして登録されていないスクリプトは、開発中のスクリプトと見なされます。デザイナからのみ実行が可能です。サービスとして登録されているスクリプトはサービスと呼ばれ、トリガーやScriptRunner、外部システムからも実行が可能となります。サービスとして登録を行ったスクリプトは、登録を解除することもできます。

サービスとして登録する単位

サービスとして登録する単位は、プロジェクト単位となります。

公開名

プロジェクトをサービスとして登録すると、DataSpiderServerで外部から呼び出すための一意な公開名をプロジェクトに割り振ります。

デプロイ

プロジェクトをサービスとして登録する際には、プロジェクトに含まれるスクリプトをJavaのクラスとしてコンパイルし、JARファイルとしてモジュール化します。
モジュール化されたJARファイルは、トリガーやScriptRunner、外部システムから呼び出せる領域(/etc/runtime/<公開名ディレクトリ>)にデプロイされます。

サーバ移行

サーバ移行は、DataSpiderServerの設定を別のDataSpiderServerに移行するための機能です。開発・テスト環境から本番環境へ環境を移行する際に使用します。

サーバ移行の流れ

サーバ移行の流れは以下の通りです。
  1. 移行元のDataSpiderServerから設定をエクスポートする
  2. 移行先のDataSpiderServerでエクスポートしたZIPファイルをインポートする

移行される設定

サーバ移行機能で移行できる設定は以下の通りです。それぞれ個別に選択し、移行することが可能です。 サーバ移行機能で設定を移行する際、権限の移行が必要なものについては権限も移行されます。移行先のDataSpiderServerに該当のユーザが存在しない場合には、移行を行ったユーザが所有者として移行されます。

注意事項