【 IBM i におけるオープンソース活用 】 OpenSource協議会 - System i 2011/11 0 2006年 最初はOSSパッケージから始まった オープンソースを利用した工事進捗! OSSのXOOPS(PHP)利用 1 2007年 グリーン画面をブラウザに! System i の既存システムを活かす ・5250画面をブラウザに集約 ・IBM i とExcelを連携 ポイント ・既存システムを活かしてPHPで構築 ・部内3名(RPGプログラマ、1名がWebを学習) ・PHPの習得は容易、しかし以外の学習が多い(Apache/SQL/HTML・・・) 2 2008年 5250画面からの脱却! BIで活用 ・データの集計/分析に活用 ・グラフの活用 ポイント ・ドリルダウンが可能になった ・グラフ表現でわかりやすくなった 3 2007年 購買システムをOSSで実現! ・ファイル転送をリアルタイムに改善 ・PCクライアントへのソフト導入が不要 ポイント ・1画面に納まる情報量が格段に増えた。 ・バッチの取り込みからリアルタイムの取り込みになった (CSVファイル出力、取り込みが不要になった) ・操作性が向上した (現品票、納品リストにQRコード印刷/部品の図面PDF表示/SSL) 4 2009年 受注システムをWebで実現! ・既存システム(RPG)を継承 ・得意先システムをWebで実現 【検索/照会】 PHP DB2/400 PHPとリンク 動画スト リーミング パス イメージ ファイル 【帳票】 【在庫引当/注文】 WRK RPG PHP ・受注入力のロジックを利用 ・受注ファイル出力 ・在庫引き当 ・与信チェック 5 2010年 受注から生産までWeb化! 注文から製造指示まで一連の流れをWeb化! システム構築前 営業 システム構築後 製造 営業 製造 指図仕様書を ブラウザへ入力 指図仕様書をExcelへ入 力後、FAX又は郵便 紙は 製造へ 担当者のポータ ルに一覧される Accessで 入力 PHP 事務 IBM i PDF が製造へ 事務 IBM i 5250で発注 入力 原価計算 課題: ・業務拡大においてExcelでの対応が困難になった。 ・営業と製造のシームレス化が行われていない ・特注品の増大で設計図を扱いたい ブラウザで発注 入力 原価計算 ポイント ・ブラウザで一元管理 ・PDF作成のOSSを活用 ・パフォーマンス向上で Ajax の活用(DBアクセスの分散) 6 ここまでのまとめ 事例を見てみると ① 基幹業務を継承しつつ、5250のWeb化が多い。 ② 業務システムの一部をWeb化して生産性を上げる事例が続いて多い。 ③ オープンソースはコスト的なメリットはあるが、協力者との関係は重要 構築技術を見てみると ① IBM i 技術者とPHP技術者の連携が必要 ② 生産性向上のためEXCEL/PDF/グラフ等のOSS部品を活用する ③ Webの技術進化は早く、Ajax等の技術を取り入れて操作性の向上や パーフォーマンスの向上をはかる。 7 パフォーマンスアップを考慮された活用事例 在庫の一元管理 マルチ言語対応 中国 本社:東京 在庫情報 入出庫管理 在庫情報 入出庫管理 PASE環境 VPN DB2 PHP フィリピン 在庫情報 入出庫管理 既存RPGプログラム System i 520 リモートアクセス による開発 8 SQLパフォーマンスの考慮点 1:SQLはPreparedStatementを利用 2:テーブルオープン回数は最小限に 3:インデックスを作成して利用する 4:SELECT *の使用は避ける 5:相対レコード番号の利用は避ける 6:数値データタイプの変換は避ける 7:算術演算式使用を避ける 8:LIKE句使用の際の注意点 9:WHERE節内でのスカラー関数の利用は避ける SQLパフォーマンスモニターで確認しよう! 9 パフォーマンスのまとめ ① RPGのDBアクセスがPHP DBアクセスより早い。これをうまく活用する ② 極力単純なSQLにする。 ③ インデックスを作成する。 ④ 表示行が多い場合、PAGER等のオープンソースを活用する ⑤ 更新処理はRPGを利用するとよい ⑥ 今回出てこなかったがAjax等の非同期アクセスも有効 10 10 操作性や見栄えの良い活用事例 VB(Visual Basic)アプリケーションをPHPで再構築 ・受注システム ・RIA(Rich Internet Applications)の実現(VBと同様のイメージおよび操作性) オープンソースの【Ext JS】(JavaScriptライブラリー)を活用 ・5250 との連携 5250のメニューよりブラウザ画面を表示(サインオンユーザーやジョブ属性を引き継ぐ) ・既存のRPGを少量の変更でストアドプロシージャとして活用 データの登録、更新 (コミットメント制御あり) 11 Ext JS の RIA 部品(代表的なもの) Tabs TreePanels MessageBox Complex Forms Layout CheckBox Drag and Drop Grid DataView Graph 12 RIAのまとめ ① javascript製の部品活用で見栄えや開発生産性が上がる ② PHP + JavaScriptでスキルの取得が必要 ③ Ajaxの非同期アクセスはパフォーマンスにも有効 ・通信の状況を見るモニターがあると便利(ex. Fiddler) ・サーバ側(IBM i)やネットワークの負担の低減になる ④ 既存のVB資産の操作性を損なうことなくブラウザアプリを構築できる ・操作性が変らないためお客様の教育コストも軽減できる 13 ご清聴ありがとうございました。 OpenSource協議会 - System i 14
© Copyright 2024 ExpyDoc