Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
OSS協議会 IBM i 勉強会第1回
【PHP 入門& IBM i 連携】
コネクト株式会社 佐藤栄一
アジェンダ
• PHP入門– PHPによって何ができるのか
–豊富なプログラミングスタイル• 補助教材によるPHPコード入門
– フレームワークの活用
– OSSの活用
• IBM I連携– PHPからDB/400に接続する
– ZendDBi(MySQL)とDB/400の連携
– PHPからRPG/CLに接続する
Apache 、Apache Tomcat、Apache Cassandra は、Apache Software Foundationの登録商標です。その他の商標は、各社の登録商標です。
| Page 2
Konektoとは
SI会社様向けにWebシステムソリューションをご提供
• Webシステム PHP
– 世界で最も使用されてい
るWeb用スクリプト言語
• データベースMySQL
– 世界で最も使用されているOSSデータベース
�OSSサポートサービス
コンサルティング
konekto
| Page 4Apache 、Apache Tomcat、Apache Cassandra は、Apache Software Foundationの登録商標です。その他の商標は、各社の登録商標です。
コネクトのあゆみ
– 2001年9月 Zendプロダクト日本語化とサポート開始
• 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門
– 2002年12月ゼンドオープンソースシステムズ株式会社と
して独立
– 2003年9月MySQLプロダクトの取扱い開始
– 2004年9月ゼンド・ジャパン株式会社に社名変更
– 2006年9月 IBM i(当時System i)対応プロダクトをリリース
– 2012年7月コネクト株式会社に社名変更
– 2012年11月 Cassandraサポートサービス提供開始
| Page 5
Cloud時代のOSSサポート
スクリプト言語
PHP
Webサーバ
Apache
Web
システム
データベース
MySQL
パフォーマンスと可用性の要となるDBのライセンス販売とサポート開発/運用に特化した
プロフェッショナルユースプロダクト
基盤となる3つの要素を長年にわたりサポート
ビックデータ
コネクトは、Webシステム構築の中心的な役割を担っているApache/MySQL/PHPのサポートサービスを創立当初から提供しています。ビックデータを牽引するCassandraのサポートも行っています。
パフォーマンスコンサルティング
| Page 6
PHP入門
Webシステムで最も使用されている
スクリプト言語
スクリプト言語シェア
PHP
78.9%
ASP.NET
16.6%
Java
2.6%
ColfFusion
0.8%
Perl
0.5%Ruby
0.5%
Python
0.1% Java Script
0.1%
server-side programming languages for websites
出展:W3Techs http://w3techs.com/
| Page 8
スクリプト言語シェア
JavaScript
86.7%
Flash
13.0%
Silverlight
0.2%
Java
0.1%
Client-side Programming Languages
出展:W3Techs http://w3techs.com/
| Page 9
情報量
English
German
Russian
Japanese
Spanish, Castilian
French
Chinese
Portuguese
Italian
0 10 20 30 40 50 60
Content Languages
出展:W3Techs http://w3techs.com/
| Page 10
PHPの歴史と Zend
• 1995年 Rasmus LerdorfがPHP/FIを発表• 1997年にPHP/FI 2.0がリリース• 1998年にPHP 3がリリース
– PHP 3は、イスラエル工科大学のプロジェクトとしてスタート。Zendの創業者Zeev SuraskiとAndi Gutmansも参加。
– 名称が、PHP(PHP: Hypertext Preprocessor)となる
• 1999年にZend Technologies Ltd を設立– PHP4向けにZend Engine 1.0を開発。PHPコミュニティに無償で提供。日本語に対応する。
• 2001年にkonekto設立(当時Zend OpenSource Systems)• 2010年にインターネット貢献者10名に選出される
– The 10 Founding Fathers of the Web:Webの10人の創始者http://mashable.com/2010/07/04/web-founding-fathers/
• 現在もPHPコミュニティの中心メンバーとしてPHPの機能アップに貢献している。
| Page 11
PHPの進化バージョン最終バージョン
リリース時期最終リリース
主な変更点
4.4
4.4.9
2005年7月
2008年8月バグ修正
5.0
5.0.5
2004年7月
2005年9月OOP機能強化/Webサービス
5.1
5.1.6
2005年11月
2006年8月高速化/PDO追加
5.2
5.2.17
2006年11月
2011年1月filter,json追加/メモリ管理改良
5.3
5.3.29
2009年7月
2014年8月Namespace(名前空間)の実装ガーベーコレクション改良(サイクルコレクタ)MySQL NDを追加、レガシーコード廃止(ZE1)
5.4
5.4.31
2011年6月 パフォーマンス改善、セッションIDセキュア化
5.5
5.5.15
2013年6月 言語仕様追加、Zned OPcode搭載
5.6
5.4.0 RC4
2014年8月 言語仕様追加
| Page 12
スピード比較
0
10
20
30
40
PHP4.4 PHP5.2 PHP5.3
総合処理時間の比較
処理時間
bench.php
PHP5.2/5.3
メモリ使用の効率化
PHP5.1/5.2
Zend Engineの改良による高速化
PHP4.0
Zend Engineにより50倍の高速化を実現
| Page 13
Webシステムの利点
WebサーバとWebブラウザが連携して処理を行う形式
です。情報提供だけでなくEコマースや金融取引など、
高い信頼性を求められる業務でも使用されています。
– クライアントはインストール不要• Webブラウザは、ほとんど全てのPCの備わっています。
• 携帯電話、タブレットにも備わっています。
– 通信経路は構築不要• 通信経路にインターネットを活用できます。
– セキュリティ• Webサーバを経由するため、システム資源に直接アクセスできません。
• 直接接続していないので、クライアント側の処理スピードに影響されません。
| Page 14
PHPの実行
ファイル
システム
スクリプト取り出し
中間言語に翻訳
Webページ
リクエスト
実行
Webサーバー
Webブラウザ
インターネット
WebブラウザにHTMLファイルの内容を送信
リクエスト毎に翻訳を実施
実行後に破棄されます
| Page 15
静的コンテンツと動的コンテンツ
<HTML>
<BODY>
<?php
for ($i = 1; $i <= 10; $i++)
{
print "Hello PHP <BR>";
}
?>
</BODY>
</HTML>
<HTML>
<BODY>
Hello PHP <BR>
Hello PHP <BR>
Hello PHP <BR>
Hello PHP <BR>
Hello PHP <BR>
Hello PHP <BR>
Hello PHP <BR>
Hello PHP <BR>
Hello PHP <BR>
Hello PHP <BR>
</BODY>
</HTML>
| Page 16
PHPの利用ポイント
フレームワーク活用 OSS
活用スクラッチ開発
| Page 17
豊富なコーディングスタイル
ビギナーからエキスパートまで
PHPによるプログラムHTMLとの混在
1. <HTML>
2. <BODY>
3. <?php
4. for ($i = 1; $i <= 10; $i++)
5. {
6. print "Hello PHP <BR>";
7. }
8. ?>
9. </BODY>
10. </HTML>
Page19
| Page 19
PHPによるプログラム関数の作成
1. <?php
2. function foo($arg_1, $arg_2, /* ..., */ $arg_n)
3. {
4. echo "関数の例¥n";
5. return $retval;
6. }
7. ?>
Page20
| Page 20
PHPによるプログラムオブジェクト指向プログラム
1. class Cart
2. {
3. var $todays_date;
4. var $name;
5. var $owner;
6. var $items = array("VCR", "TV");
7. function Cart()
8. {
9. $this->todays_date = date("Y-m-d");
10. $this->name = $GLOBALS['firstname'];
11. /* 等など. . . */
12. }
13. }
14. ?>
1. <?php
2. $cart = new Cart;
3. $cart->add_item("10", 1);
4. $another_cart = new Cart;
5. $another_cart->add_item("0815", 3);
6. ?>
Page21
| Page 21
フレームワークの活用
Webアプリ開発の近道
開発効率の追求
フレームワーク
ライブラリ
サブルーチン/関数
独自開発
| Page 23
アプリケーションの共通機能
• 汎用的な処理の共通化
–ページ遷移とロジック
• MVCによる役割の明確化
• デザインとロジックの分離
–入力処理(サニタイズ)
–データベース処理
• 隠蔽化
–認証処理/アクセス制御
| Page 24
| Page 25
話題性:Google トレンド
| Page 26
PHPフレームについて詳しくは
• 10月17日 (金)
• 第2回:「ZendFramework入門(ZF2)」
| Page 27
OSSの活用
完成済アプリを活用する
CMSの活用
• WordPress
• http://ja.wordpress.org/
| Page 29
CMSの活用
• Drupal
• http://drupal.jp/
| Page 30
ECの活用
• EC-Cube
• http://www.ec-cube.net/
| Page 31
ECの活用
• Magento
• http://www.magento-jp.com/
| Page 32
CMSの活用
• SugarCRM
• http://www.sugaruser.jp/
| Page 33
PHP実行環境とZend Server
エンタープライズ環境に対応
高速性の重視高機能/実績
PC
PHP 5.5 ~ 5.4IHS
IBM HTTP Server
| Page 35
PHPコミュニティサイト
IBM i にPHP を
実装する唯一の方法
• Zendと提供企業が提供する企業向けの新たなWebシステム環境
• 企業ユーザが望むプロ仕様のPHP環境を提供– 高信頼性と高速性を両立したPHP環境の提供
– Webアプリ単位の監視機能を提供
– 稼動後の運用管理の容易さ
– 開発効率の向上
– モバイル環境への対応
Zend Server システム構成
サーバ管理GUI
Zend Framework 1 & 2
データベースドライバ
拡張モジュール
PHP実行環境
Apache(IHS)
MySQL
DB2
XML Tool Kit
デプロイ機能高速化デバッグJVMとの連携モニタリングジョブキューコードトレーシングXML Tool Kit
IBMi
| Page 36
機能一覧
機能カテゴリ 機能名 機能概要
高速化/
効率化
スクリプトキャッシュ PHPコードのパース処理を省略
データキャッシュ Webページの一部をメモリにキャッシュ
ページキャッシュ Webページ全体をキャッシュPHPコードの実行を省略
APM モニタリング PHP実行状況を監視
設定値を超えた処理をレポート
デプロイ アプリ別管理機能を提供
コードトレーシング PHP実行状況を自動的に記録Webアプリケーションのフライトレコーダー
機能拡張 ジョブキュー PHPコードを非同期/スケジュール実行
Javaプリッジ 単一のJava VMでJavaプログラムを実行
セッションクラスタリング(PC版のみ)
セッション情報を自動的にWebサーバで共有
| Page 37
• PHPプログラムの実行状況を監視し、問題が
発生した場合には、その状況を記録します。
– PHP スクリプト実行状況
– PHP実行エラー
–関数呼出時のパラメータ
– メモリの使用状況
– Java呼出時のエラー内容
Zend Server機能説明モニタリング
| Page 38
モニタ機能の概要
モニタ
コードトレース
メール
イベント
即時通報
情報記録
トレース情報PHPコード
実行
自動消去
ルール
連携
実行状況監視
モニタの結果①イベント記録②イベント記録+メール通報イベント記録+トレース記録③イベント記録+メール通報+トレース記録
| Page 39
ルールの一覧
ルール名 概要Custom Event 管理者独自のイベントDatabase Error データベース関数の処理結果Failed Writing Code Tracing Data コードトレース処理中エラーFunction Error 関数の処理結果High Memory Usage メモリ使用量Inconsistent Output Size Webページ出力量Job Execution Delay ジョブ実行遅延Job Execution Error ジョブ実行エラーJob Logical Failure ジョブ論理エラーPHP Error PHPエラーなどSlow Function Execution 関数実行遅延Slow Query Execution データベース処理実行遅延Slow Request Execution PHPコード実行遅延Uncaught Java Exception Java例外発生Zend Framework Exception Zend Framework例外発生
| Page 40
ルールの管理画面
| Page 41
ルールの設定と動作
コードトレーシング有無
設定値
メール送信
| Page 42
イベント一覧
概要表示
イベント一覧
詳細表示リンク
| Page 43
イベントの詳細
イベント概要
発生箇所
連携ボタン
発生状況
| Page 44
• 1つのサーバで、1つのサービスを提供するのは稀です。複数のWebアプリが稼働する場合、個々のWebアプリの状況を把握するのは困難です。
• デプロイ機能により、稼働統計や実行監視が可能になりました。
稼働統計
Zend Server機能説明
デプロイ機能
モニタ
ルー
ル
アプリB
アプリA
アプリD
アプリC
| Page 45
Zend Server機能説明
アプリ単位で稼働統計や実行監視←Global
↑アプリA
稼働統計
稼働統計
←アプリB
| Page 46
Zend Server機能説明コードトレーシング
• Zend Serverは、PHPプログラムが実行された状況を時系列に詳細な情報として提供します。この様な詳細な実行情報は、標準のPHP実行環境では入手できないZend Serverだけのオリジナル機能です。– 呼出しツリー (履歴)
– パラメータ
– 戻り値
– 使用メモリ
– コード内容
– ファイル名
コードトレーシング画面(抜粋)
| Page 47
トレース結果①
トレース位置 メモリ情報 実行時間情報実行タイミング
高メモリ使用率
| Page 48
トレース結果② ユーザ関数別集計
関数名
実行回数
使用メモリ
実行時間
詳細情報
| Page 49
Zend Studioとの連携• Zend Serverは、PHP統合開発環境Zend Studioとシームレ
スに連携することが可能です。 Zend ServerとZend Studio
との組み合わせにより、ハイレベルで効率的な開発プロジェクトを実現します。
• パフォーマンスチューニング
• デバッグ
• テスト
• コーディング
• マイグレーション
Zend Studioとの連携(プロファイル)
| Page 50
Zend Server 6対応システム• サポートするOS
– Linux x86 and x86-64: • RHEL, CentOS and OEL - versions 6.x and 5.x through RPM packages
• SLES 11.x and openSUSE 11.x and 12.x through RPM packages
– Windows x86 and x86-64: • Windows 7
• Windows 8
• Windows Server 2008 R2
• Windows XP SP3
– IBM i• V6R1, V7R1
– Webサーバ• Apache 2.2 / Nginx web server / Microsoft IIS / IHS
• PHPバージョン– PHP5.5またはPHP5.4
– 詳しくは、インストールマニュアルをご確認ください。
| Page 51
Zend Server 7英語版デモ
Z-Rayの実力
Z-Rayとは
• PHP実行状況を手軽に解析するためのZend
Server 7新機能
–旧来のコードトレースをWebブラウザに実装しました
• ブラウザに新たなプラグインを必要とせずにPHPアプリケーションの実行状況を詳細に解
析できます
• シンプルで手軽に解析を始められます
| Page 53
Z-Rayツールバー
| Page 54
Z-Rayツールバーの機能
データベース処理
エラー
モニター(アラート)
ステータス
レスポンスタイム/容量
Z Ray ツールバー Off
Zend Server 設定変更
Zend Studio 連携
呼び出し関数
環境変数
| Page 55
ステータス
| Page 56
レスポンスタイム/容量
| Page 57
モニター(アラート)
| Page 58
エラー
| Page 59
データベース処理
| Page 60
呼び出し関数
| Page 61
環境変数
| Page 62
Zend Server 7対応システム
• サポートOS– Linux x86 and x86-64
• RHEL, CentOS and OEL - versions 6.x and 5.x through RPM packages
• SLES 11 and OpenSUSE 12.x through RPM package
• Debian GNU/Linux 6.0 and 7.x
• Ubuntu Linux 12.04/14.04 (LTS) and latest via DEB packages.
– Windows x86 and x86-64 • Windows 7
• Windows 8
• Windows Server 2008 R2
• Windows Server 2012
– IBM i• V6R1 V7R1 V7R2 with latest PTFs
• サポートPHP– 5.5~5.4
| Page 63
IBMiとPHPの連携
閉鎖的な業務システムからオープンな業務システムへ
IBMiは、業務システムを担うコンピュータとして中心的
な役割を果たしてきました。これまで蓄積した膨大な
データと業務ロジックは、新たな可能性を秘めています。Webシステムの導入によって、オープンなシステム
環境が実現します。IBMiにWebシステムを構築するこ
とにより、業務システムとのシームレスな連携が可能となります。
• 対象ユーザの拡大1. 社内 社員/関連会社
2. 社外 他システムとの連携
3. 社外 E/U、コンシューマ| Page 65
これからのIBMi
Webシステムの導入基幹系と情報系の共存/共栄
| Page 66
IBMi専用Webシステム環境
IBMとZendは、IBMi向けのWebシステム構築プロダクトとしてZend Server for IBMiを提供しています。このプロダクトは、i5/OS v5R4から実績があります。
• Webシステム言語/実行環境– 最も使用されているWebシステム言語
– IBMi向けに拡張• RPGとの連携
• DB/400との連携
• IBMi システム資源との連携
• リレーショナルデータベース(Zend DBi)– 最も使用されているOSSデータベースシステム:MySQLがベース
– IBMi向けに拡張• DB/400との連携が可能
| Page 67
JavaとPHPの比較• プログラミングスタイル
– Javaは、オブジェクト指向プログラミングが必須です。– PHPは、HTMLとの混在、手続きスタイル、オブジェクト指向の3種類が可能です。スキルに合わせ選択可能です。RPGは、手続きスタイルですので、容易に習得が可能です。
• インターネットでの実績– Javaは、開発にスキルと時間を要するため、限られた用途で使用されています。
– PHPは、プログラミングの容易さと軽快さから、インターネット上で幅広く利用されています。
• 実行環境の違い– Javaは、JavaVM上で動作します。JavaVMは、ハードウエアやOSの違いを吸収する役割を担っており、独立したコンピュータ環境ほどの資源を必要とします。
– PHPは、Webサーバ内のモジュールとして動作するため、Webアプリ以外の用途はありません。用途が限られているため、コンパクトで軽快な動作となります。
• これらの点から、Webシステムでは、Javaと比較してPHPが選択されます。過去にIBMは、AS400でJavaを普及させようとしました。しかし、主に1番目の理由から普及に至りませんでした。その時の反省とオープンソースの柔軟性から、PHPを推奨しています。
| Page 68
IBMiでPHPを使用するメリットPHP vs Java
PHP Java
実行スピード ◎ランタイムコンパイル機能搭載 ○フットプリントが大きい
システムへの負担 ◎メモリおよびCPU負荷が非常に少ない
△JavaVMの負担が大きい
セキュリティ ◎セキュリティ面で劣ることはない ◎サンドボックスにより分離可能
数値計算の精度 ○ライブラリにより対応可能 ◎言語使用に組み込まれている
IBMiとの親和性 ◎専用APIにより、システム資源/
ファイルシステム/プログラム/DB2-
400にアクセス可能
◎同様
大量アクセスへの対応
◎ECサイトとしての使用例もあり △システムへの負担が大きい
習得の手軽さ ◎専門教育を受けなくても可能 △専門教育が必要
プログラムスタイル
◎HTML混在、手続き型、関数型、オブジェクト指向で記述可能
△オブジェクト指向のみ
開発コスト ◎少ないコストで開発可能 △開発スタイルが古く高コストに
| Page 69
IBMiとPHPの連携:3つの方法
• DB/400の活用
• Zend DBi(MySQL)の活用
• RBG/CLの活用(IBM i資源へのアクセス)
| Page 70
DB2/400への接続:概要
• PHPからDB2/400を操作可能
db2関数
| Page 71
DB2/400への接続:命令(関数)
• 接続と切断
– db2_connect
– db2_close
– db2_pconnect
– db2_pclose
• SQL実行
– db2_exec
• db2_fetch_array
• db2_fetch_assoc
• db2_fetch_both
• プリペア
– db2_prepare
– db2_bind_param
– db2_execute
• トランザクション
– db2_commit
– db2_rollback
| Page 72
DB2/400への接続:コードサンプル<?php
$db_con = db2_connect('', '', '');
if(!$db_con){
echo 'DB2に接続できません:', db2_conn_errormsg();
exit;
}
$query = ' SELECT * FROM ZPHPTEST.ZLOGF ORDER BY CTIME ';
$result = db2_exec($db_con, $query);
if(!$result){
echo 'SQLが実行できませんでした:', db2_stmt_errormsg();
db2_close($db_con);
exit;
}
echo '<table border=1>',
'<tr><th>CTIME</th></tr>';
while($row = db2_fetch_array($result)) {
echo '<tr>',
'<td>', $row[0], '</td>',
'</tr>';
}
echo '</table>';
db2_close($db_con);
?>| Page 73
DB2/400への接続:参考情報
• Konekto技術情報ページ
– http://www.konekto.jp/tech/index.php?Old%2FZe
nd%20Server%2FIBMi%2Fdb2func
• Ustream(PHP勉強会2011年度)
– :TEAM-HALh
| Page 74
Zend DBi(MySQL)の活用
• PHPからDB2/400を操作可能
| Page 75
IBMDB2i
QSQSRVR
Zend DBi(MySQL)の活用
• Zend DBiからテーブルを作成する。engine=ibmdb2iを忘れずに。
• IBMDB2iストレージエンジンが、 QSQSRVRを通じてDB2/400に接続して処理を行う。
| Page 76
Zend DBi(MySQL)の活用:参考情報
• OpenSource協議会 - IBM I技術情報MySQLストレージエンジンの評価(2013年10月22日)
– http://i5php.jp/mysql%e3%82%b9%e3%83%88%e3%83%ac%e3%83%bc%e3%82%b8%e3%82%a8%e3%83%b3%e3%82%b8%e3%83%b3%e3%81%ae%e8%a9%95%e4%be%a1
• Using IBM DB2 for I as a Storage Engine of MySQL
– http://www.redbooks.ibm.com/redbooks/pdfs/sg247705.pdf
• Zend Serverオンラインリファレンス– http://files.zend.com/help/Zend-Server-6-IBMi/zend-server.htm#i5_zenddbi_installation.htm
| Page 77
IBM iとの連携:概要
• PHPからIBM iに接続
–プログラムの実行
–システム資源の参照
CL RPG
スプールジョブログシステム値
オブジェクト一覧
db2関数XML Toolkit RPG
| Page 78
IBM iとの連携:命令(メソッド)
• Toolkitオブジェクト– getInstanceメソッド 接続とオブジェクトの作成
– Disconnectメソッド 切断とオブジェクトの削除
• メソッドの種類– CLCommand メソッド
– PGMCallメソッド
– パラメーター設定メソッド• AddParameterChar
• AddParameterPackDec, AddParameterZoned
• AddParameterFloat
• AddParameterReal
• AddParameterBin
• AddParameterInt32, AddParameterUInt32
• AddParameterInt64, AddParameterUint64
• AddDataStruct
• UpdateParameterValue
• iToolkit サービス・クラス– スプール・ファイル
• GetSPLList
• GetSPLF
– ジョブログ• JobList
• createJobListArray
• JobLog
– システム値• SystemValuesList
• GetSystemValue
– オブジェクト一覧• getObjectList
| Page 79
IBM iとの連携:コードサンプル</pre>
<?php
include_once 'authorization.php';
include_once '../API/ToolkitService.php';
try {
$obj = ToolkitService::getInstance($db, $user, $pass);
}
catch (Exception $e) {
echo $e->getMessage(), "¥n";
exit();
}
$obj->setToolkitServiceParams(array('InternalKey'=>"/tmp/$user",
'debug'=>false,
'plug' => "iPLUG32K"));
$cmd = "addlible ZENDSVR";
$obj->CLCommand($cmd);
echo "<pre>";
$Rows = $obj->CLInteractiveCommand("DSPLIBL");
/*$Rows = $obj->CLInteractiveCommand("WRKSYSVAL
OUTPUT(*PRINT)");*/
if(!$Rows )
echo $obj->getLastError();
else
var_dump($Rows);
echo "</pre>";
?> | Page 80
IBM iとの連携:参考情報
• Zend Serverオンラインリファレンス– http://files.zend.com/help/Zend-Server-6-IBMi/zend-
server.htm#php_toolkit_xml_service_functions.htm
| Page 81
まとめ
• PHP入門
– PHPは、シェアが高いスクリプト言語です。
–プログラミングスタイルを選択できます。
–豊富なフレームワークにを利用できます。
– OSSを活用できます。
• IBM i連携
– PHPとIBM Iは、3つの方法で連携できます。
| Page 82
企業スペックのパワフルPHP環境を実現
コネクト株式会社konekto, Inc.
佐藤栄一 [email protected]
111-0051
東京都台東区蔵前3-6-7
蔵前イセキビル4F
TEL:03-5809-1853
FAX:03-3865-8220
Webサイトhttp://www.konekto.jp/
Apache 、Apache Tomcat、Apache Cassandra は、Apache Software Foundationの登録商標です。その他の商標は、各社の登録商標です。
掲載した各社のサイトは、各社が提供するコンテンツです。内容については、2014年8月25日現在のものです。掲載内容を保証するものではありません。
今後の予定
• 第1回(08/29 金):「PHP入門 & IBM i 連携」
• 第2回(10/17 金):「ZendFramework入門(ZF2)」
• 第3回(12/19 金):「Ruby入門」
• 第4回(02/20 金):「Bootstrapで見栄えのいい業務システムを作る」(仮)
• 第5回(04/17 金):「jqueryでリッチなUIの業務システムを作る」 (仮)