はじめに
ここでは、フローサービス全体の概要について説明します。
フローサービスとは
フローサービスとは、情報システムの中である処理の単位を1つのグラフィカルなもので表し、行いたい処理手順に沿って、そのグラフィカルに表したものを線でつないでいくことによって全体の処理を記述したフローを実行、管理するプラットフォームです。ある処理の単位をコンポーネントといい、行いたい処理を記述していくスペースをフローといいます。フローを設計・開発するフローデザイナーから、フローを実行するプラットフォームであるフローサービスに接続し、フローを作成してサーバー上に保存して、トリガーにより起動します。たとえば、HTMLフォームでデータを入力して送信すると、HTTPリクエストをフローサービス内蔵のHTTPサーバーが受信し、フローサービスがURLに関連付けられたフローを起動して、入力データを各種コンポーネントでフォーマット変換してデータベースに取込むなどの処理をすることができます。
フローサービスでは、情報システムでよく使われる処理をコンポーネントとしてあらかじめ多数用意しています。企業内外のシステム連携に必要なさまざまなインターネットプロトコルやアプリケーションに対応したインターフェースを備えたコンポーネントや、CSV、XML、Excelなどの多種多様なデータ形式を入出力するコンポーネントもあります。処理や手順をグラフィカルに表すことでシステム全体が可視化され、システムを構築するチームの担当者同士のコミュニケーションギャップを埋め、システムの変更や追加時にも柔軟に対応することができます。また、処理や手順をある単位でまとめておくと、それを繰り返し使うことでコーディングが必要ないため開発期間やコストの削減につながります。
フローを起動するトリガーは、以下の6種類があります。また、フローを起動するためのコマンドも用意されています。
起動方法 | フローサービス | トリガー |
---|---|---|
HTTP起動 | フローとURLを関連付け | 任意のクライアントからHTTPリクエストを送信してフローを起動 |
SOAP起動 | フローとメソッド名を関連付け | 任意のSOAPクライアントからリクエストを送信してフローを起動 |
FTP起動 | フローサービス内蔵のFTPサービスでフォルダを監視 | 外部システムからFTPでファイルを転送してフローを起動 |
メール起動 | メールサーバーを定期的に監視 | 任意のメールクライアントからメールを送信してフローを起動 |
メッセージキュー起動 | メッセージキューを定期的に監視 | 任意のクライアントからメッセージを送信してフローを起動 |
スケジュール起動 | フローサービス内蔵のスケジューラーで管理 | 任意の日時や時間間隔でフローを起動 |
フローを起動するトリガー

フロー機能の製品構成
フロー機能は、GUIベースの統合設計環境である「フローデザイナー」とその実行環境である「フローサービス」の2つの環境で構成されます。また、フローサービスには設定や保守運用を支援するWebベースの管理ツールである「フローサービス管理コンソール」(以降、管理コンソールと記述)の機能が内蔵されています。
フローデザイナー | GUIベースで処理を記述する統合開発環境 |
フローサービス | フロー関連のサービスを実行するサーバー環境 |
フローサービス管理コンソール | フローサービスの設定管理ツール |
フローデザイナー
フローデザイナーは、データの抽出・変換・配信などの一連の処理手順をグラフィカルにあらわすフローを作成・保存・実行するGUIベースの統合設計環境ツールです。フローデザイナーでフローを作成し、フローサービスに登録して、実行するというのが基本的な設計手順になります。フローデザイナーでは、例えばHTTPサーバーに対するリクエストの送信、RDBからのデータの取得やデータの変換、などといった汎用的な機能単位をアイコンとして表現し、それぞれのアイコンをキャンバス内にドラッグ&ドロップの簡単な操作で配置し、それらアイコンを接続線でつないでいくだけのシンプルな操作で、様々な処理手続きを記述することができます。
フローデザイナーには、以下のツールが同梱されています。
トリガー管理 | 運用時にサーバーに接続して、フローと起動方法を定義する「実行設定」とフローの実行状況をみる「モニター」の機能をもつツール |
---|---|
ログビューアー | 運用時にサーバーに接続して、フローサービスで出力されるログを表示する機能をもつツール |
比較ツール | 2つのプロジェクトまたは関数コレクションを比較して、変更点をグラフィカルに確認する機能をもつツール |
テーブル定義書作成 | データベースに接続して、テーブルの定義情報を仕様書出力するツール |
WebMacroレコーダー | ユーザーによるWebブラウザでのURLの入力やFORMへの入力を記録するツール |
フローサービス
フローサービスは、フローデザイナーで作成したフローを実行するプラットフォームです。フローデザイナーで作成したフローはフローサービスに保存・登録され、外部からのトリガーまたは設定したスケジュールによって起動・実行されます。フローサービスでは、フローの処理をマルチスレッドにより最適な効率で作動します。
フローサービス管理コンソール
フローサービス管理コンソールは、運用やメンテナンスに関わる作業をWebブラウザから行うためのツールです。フローサービス独自のアカウントの作成、ログの確認、各プロセスの起動・停止などを行うことができます。
機能一覧
フローサービス管理コンソールの機能は以下のとおりです。
機能 | 説明 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
「状態」タブ |
フローサービスやフロー実行の状態を参照、管理するための画面タブで構成されています。
|
||||||||||||||||
「設定」タブ |
フローサービスの通信関連の設定を行います。
|
||||||||||||||||
「ツール」タブ |
フローサービスで使用するツールの設定を行います。
|
||||||||||||||||
「ヘルプ」タブ | ヘルプを表示します。 |
フローサービスの仕様
対応フォーマット
XML / HTML / CSV / 固定長 / テキスト / バイナリ / ZIP / GZIP / Tar / PDF / Excel(※1)/ XBRL(※1) ※1:オプション製品 |
対応データベース
Oracle IBM DB2 IBM AS/400 iSeries DB2 Microsoft SQL Server/SQL Azure Microsoft Access PostgreSQL MySQL MariaDB Netezza Dr.Sum EA FileMaker Amazon Aurora ※サポートされるバージョンにつきましては製品ホームページをご覧ください。 |
対応通信プロトコル
HTTP / HTTPS SMTP / SMTPS POP3 / POP3S IMAP / IMAPS FTP / SFTP LDAP SOAP 1.1 / 1.2 |
対応アプリケーション
IBM Lotus Notes/Domino NeoCoreXMS Microsoft Excel Microsoft Active Directory ※サポートされるバージョンにつきましては製品ホームページをご覧ください。 |
フローサービスのプロセス構成
フローの実行環境であるフローサービスの内部は、複数のサービスによって構成されています。内部のサービスのうち、実際にフロー実行エンジンをもち、実行管理を行うサービスをFlowServiceといいます。本項では説明上区別するため、実行環境全体のフローサービスを「サーバー」として説明します。
内部のそれぞれのサービスは物理的に独立したJavaVM(Java仮想マシン)のインスタンスを持つプロセスとしてメモリ上に常駐します。さらに、それぞれのサービスごとにマルチスレッドで複数のサービス要求を同時に処理することができる枠組みを持っています。
「サーバー」を構成するサービスのうち、ASTERIA Monitorはその他の一連のサービスを子プロセスとして起動および停止、稼動監視を行うスーパープロセスです。
サーバー(フローサービス全体)の構成図

サービス名の一覧
標準構成では、以下のサービスが登録されています。
サービス名 | 説明 |
---|---|
FlowService | フローを実行するためのエンジンやHTTPリスナーなどが内蔵されているサービスです。 |
AccessControl | フローサービス独自のアカウントの管理および認証を行うサービスです。 |
Scheduler | 特定の日時、または開始日時と繰り返し間隔を登録しておくことで、指定日時がきたら特定のフローを起動するサービスです。 |
ManagementConsole | 「サーバー」の運用に必要となる各種設定やメンテナンスを、Webブラウザから行うための管理用サービスです。 |
FtpService | 「サーバー」標準搭載のFTPサーバーです。ファイル受信の完了をトリガーとしてフローを起動することができます(初期設定では起動しないように設定されています)。 |
InternalDataStorage | 「サーバー」が内部データの格納用に使用するデータベースです。通常の使用形態の範囲ではデータが増えていくことはありません。なお、このサービスは内部的には「HSQL (http://hsqldb.sourceforge.net/)」を利用しています。 接続確認やサンプルフローの動作確認を行う用途以外には使用することは出来ません。 |
FlowServiceの構成
「サーバー」の中核をなすFlowServiceは、外部からのイベントを受信するための各種リスナーとフローを実行するランタイム環境であるFlow Engineで構成されています。
Flow Engineは、フローの処理手順を記述した実体としてのXMLファイルであるプロジェクトファイル(拡張子「.xfp」)を動的に読み込んでコンパイルして保持し、リスナーからのトリガーに基づいて指定されたフローをマルチスレッドに起動し、実行していきます。
フローの内部では、さまざまなコンポーネントが連携して動作します。また、「サーバー」の外部にあるFTPサーバーやデータベースサーバーなどとの通信においてはコネクションを利用するものがあります。また、コネクションはプールすることも可能となっており、初期化時のコストを抑制することができます。
概念図を以下に示します。各概念の詳細な解説は、左メニューの[詳細なトピック]の「フローサービスのアーキテクチャ」-「フローサービスの実行モデル」を参照してください。
FlowSeriveの概念図

FlowServiceとその他のサービスの連携
FlowServiceは、SchedulerやAccessControlといった他のサービスと連携して動作します。その際の動作モデルは下図のようになります。
動作モデルの図

フローサービスのファイル構成
フローサービスが使用するファイルの置き場所は以下の2つがあります。以降、それぞれのフォルダの解説は「フォルダ表記」を使って説明します。
対象 | フォルダ表記 | デフォルトインストール時のパス | |
---|---|---|---|
フローサービス インストールフォルダ | [INSTALL_DIR] | Windows | C:\Program Files\asteriawarp |
UNIX | /[インストールユーザーのホームフォルダー]/asteriawarp | ||
データフォルダ | [DATA_DIR] | Windows | C:\asteriahome |
UNIX | /[インストールユーザーのホームフォルダー]/asteriahome |
インストールフォルダの構成
(※)のついたフォルダは、開発・運用でユーザーがファイルを配置、参照するなど使用する場合があります。メンテナンスや移行を行うときに必要なファイルについては、「運用ガイド」-「メンテナンス」、「バックアップ」を参照してください。
フォルダ | 説明 |
---|---|
[INSTALL_DIR]/common | 他サービスと共通で使用するライブラリ |
[INSTALL_DIR]/license (※) | ライセンスファイル |
[INSTALL_DIR]/jre/lib/ext (※) | JDBCなど各種ドライバー |
[INSTALL_DIR]/flow/bin (※) | 実行ファイル |
[INSTALL_DIR]/flow/conf | 各種設定ファイル |
[INSTALL_DIR]/flow/data | InternalDataStorageのデータ、SSLのKeyStoreなど |
[INSTALL_DIR]/flow/lib | 各種ライブラリ |
[INSTALL_DIR]/flow/lib/flowlib | コンポーネント、マッパー関数のライブラリ |
[INSTALL_DIR]/flow/log (※) | 管理コンソールやログビューアで参照するログの実体ファイル 注:管理コンソールから出力先を変更することができます。 |
[INSTALL_DIR]/flow/services | サービス固有の定義ファイル |
[INSTALL_DIR]/flow/services/flowservice/conf | フローサービス設定ファイル |
[INSTALL_DIR]/flow/webapps | フローサービス管理コンソール関連ファイル |