SQeeL活用事例
株式会社電通国際情報サービス
ビジネスソリューション事業部 産業ソリューション開発部
マネージャー
竹中 篤史 氏
SQeeLとの出会い
竹中氏がSQeeLと初めて出会ったのは、お客様のシステムへ導入したOracle運用管理ツール「Performance Insight for Oracle」(以下PI)でした。このツールはソースコードが公開されており、 カスタマイズができるという特長があることを知った竹中氏は、この特長を利用するためにPIのプログラミング言語であるSQeeLを習得しました。
SQeeLに触れてみて
「SQeeLは、PerlやC言語、Javaなどに非常に似ており、言語経験者であれば数時間でプログラミング可能だということが判りました。また、カスタマイズを通してSQeeLを使い込んでいくうちに、他言語に比べOracleデータベース系の処理コード(SQL文)が簡単に記述できるということ、そしてその処理速度が速いということも驚きでした。」(竹中氏)
SQeeLの活用
竹中氏はお客様のシステム運用において、異なる時期に開発された複数のサブシステムのバッチ処理を統合処理するシステム(バッチ統合制御システム)の開発に迫られており、このシステムの開発にSQeeLを採用しました。 )
SQeeLを採用した理由
「サブシステムのDBがOracleでしたので、開発にあたり、Shell Script、C、PL/SQL、などと比較しましたが、SQeeL以外は全く候補になりませんでした。 なぜならば、SQeeLは、Oracleとの親和性が高く、OracleにOCI接続するインターフェースを実装しており、Oracleデータベースの操作やSQL文が簡単に記述できて実行も高速だからです。」(竹中氏)
竹中氏がSQeeLを採用した5つのポイント
1. 言語の習得が容易、かつ複雑な処理も実装可能
2. Oracleをシームレスに利用できる
−クエリーを直接変数・配列にバインドできる
−DDL文を実行可能
−PL/SQLストアドパッケージの実行も可能
3. マルチプラットフォームで動作する
4. Local資源が利用可能
5. 軽量、高速、かつ非常に安定している
バッチ統合制御システムについて
・システム概要
複数のサーバで稼動する、複雑なフローのバッチプログラムを統合制御するシステム
・システム構成
|
(1)制御DB (バッチ制御サーバに保持) |
バッチ情報を一元管理 |
|
(2)ゲートキーパー* (バッチ制御サーバに常駐するSQeeLアプリケーション) |
ジョブのステータスを元にゲートを開閉 |
|
(3)ジョブコントローラ* (バッチ実行サーバに常駐するSQeeLアプリケーション) |
制御DBのゲート開閉情報を監視し、実行可能なジョブを開始 |
|
(4) ジョブ* (ジョブコントローラから実行されるSQeeLアプリケーション) |
バッチの実体、及び一連で実行しなければならない処理単位でまとめる |
制御DB(1)に登録されたフロー情報をもとに、ゲートキーパー(2)が開始可能なジョブ用ゲートを開閉する。 ゲートを常時監視しているジョブコントローラ(3)は、ゲートキーパー(2)が開いたゲートに対応するジョブ(4)を起動する。
バッチ統合制御システムの特徴
1. マルチプラットフォームで動作する(バッチ統合制御システム動作環境)
OS:Windows NT, Windows 2000, AIX4.3, AIX5l, Solaris8
DB:Oracle7, 8, 8i, 9i, 9iR2
2. 複数サーバ間の複雑なフロー制御(ジョブ連動)を容易に実現する
サブシステム 9システム
サーバ 17台
連携するジョブ 190ジョブ
3. パラレル処理、シーケンシャル処理、及びその混在に自在に対応
4. ジョブの進捗状況を様々な角度から監視可能
監視内容 ステータス、実行時間、開始時間、終了時間など
5. スケジュール登録機能による定期・不定期イベント処理の完全自動化
6. メール、ポケベル、オペレータコール等複数の方法でエラー通知が可能
7. 共通ライブラリの整備、テンプレート化による高い開発効率
8. 既存製品に比べはるかに安価、かつ軽量
9. 安定稼動・メンテナンス性に徹底的にこだわった設計思想
SQeeLとは
SQeeLは、高速、且つ、省メモリで動作するアプリケーションを簡単に構築できるオープンソースのプログラミング言語です。データベースおよびWEBアプリケーション開発に適しています。 SQeeLのダウンロード及びマニュアルにつきましては、http://www.sqeel.org/ をご覧下さい。
