84
OSS 協議会 IBM i 勉強会 第 1 PHP 入門 & IBM i 連携コネクト株式会社 佐藤栄一

OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

OSS協議会 IBM i 勉強会第1回

【PHP 入門& IBM i 連携】

コネクト株式会社 佐藤栄一

Page 2: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

アジェンダ

• 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

Page 3: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

Konektoとは

Page 4: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

SI会社様向けにWebシステムソリューションをご提供

• Webシステム PHP

– 世界で最も使用されてい

るWeb用スクリプト言語

• データベースMySQL

– 世界で最も使用されているOSSデータベース

�OSSサポートサービス

コンサルティング

konekto

| Page 4Apache 、Apache Tomcat、Apache Cassandra は、Apache Software Foundationの登録商標です。その他の商標は、各社の登録商標です。

Page 5: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

コネクトのあゆみ

– 2001年9月 Zendプロダクト日本語化とサポート開始

• 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

– 2002年12月ゼンドオープンソースシステムズ株式会社と

して独立

– 2003年9月MySQLプロダクトの取扱い開始

– 2004年9月ゼンド・ジャパン株式会社に社名変更

– 2006年9月 IBM i(当時System i)対応プロダクトをリリース

– 2012年7月コネクト株式会社に社名変更

– 2012年11月 Cassandraサポートサービス提供開始

| Page 5

Page 6: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

Cloud時代のOSSサポート

スクリプト言語

PHP

Webサーバ

Apache

Web

システム

データベース

MySQL

パフォーマンスと可用性の要となるDBのライセンス販売とサポート開発/運用に特化した

プロフェッショナルユースプロダクト

基盤となる3つの要素を長年にわたりサポート

ビックデータ

コネクトは、Webシステム構築の中心的な役割を担っているApache/MySQL/PHPのサポートサービスを創立当初から提供しています。ビックデータを牽引するCassandraのサポートも行っています。

パフォーマンスコンサルティング

| Page 6

Page 7: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

PHP入門

Webシステムで最も使用されている

スクリプト言語

Page 8: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

スクリプト言語シェア

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

Page 9: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

スクリプト言語シェア

JavaScript

86.7%

Flash

13.0%

Silverlight

0.2%

Java

0.1%

Client-side Programming Languages

出展:W3Techs http://w3techs.com/

| Page 9

Page 10: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

情報量

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

Page 11: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

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

Page 12: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

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

Page 13: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

スピード比較

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

Page 14: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

Webシステムの利点

WebサーバとWebブラウザが連携して処理を行う形式

です。情報提供だけでなくEコマースや金融取引など、

高い信頼性を求められる業務でも使用されています。

– クライアントはインストール不要• Webブラウザは、ほとんど全てのPCの備わっています。

• 携帯電話、タブレットにも備わっています。

– 通信経路は構築不要• 通信経路にインターネットを活用できます。

– セキュリティ• Webサーバを経由するため、システム資源に直接アクセスできません。

• 直接接続していないので、クライアント側の処理スピードに影響されません。

| Page 14

Page 15: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

PHPの実行

ファイル

システム

スクリプト取り出し

中間言語に翻訳

Webページ

リクエスト

実行

Webサーバー

Webブラウザ

インターネット

WebブラウザにHTMLファイルの内容を送信

リクエスト毎に翻訳を実施

実行後に破棄されます

| Page 15

Page 16: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

静的コンテンツと動的コンテンツ

<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

Page 17: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

PHPの利用ポイント

フレームワーク活用 OSS

活用スクラッチ開発

| Page 17

Page 18: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

豊富なコーディングスタイル

ビギナーからエキスパートまで

Page 19: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

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

Page 20: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

PHPによるプログラム関数の作成

1. <?php

2. function foo($arg_1, $arg_2, /* ..., */ $arg_n)

3. {

4. echo "関数の例¥n";

5. return $retval;

6. }

7. ?>

Page20

| Page 20

Page 21: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

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

Page 22: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

フレームワークの活用

Webアプリ開発の近道

Page 23: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

開発効率の追求

フレームワーク

ライブラリ

サブルーチン/関数

独自開発

| Page 23

Page 24: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

アプリケーションの共通機能

• 汎用的な処理の共通化

–ページ遷移とロジック

• MVCによる役割の明確化

• デザインとロジックの分離

–入力処理(サニタイズ)

–データベース処理

• 隠蔽化

–認証処理/アクセス制御

| Page 24

Page 25: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

| Page 25

Page 26: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

話題性:Google トレンド

| Page 26

Page 27: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

PHPフレームについて詳しくは

• 10月17日 (金)

• 第2回:「ZendFramework入門(ZF2)」

| Page 27

Page 28: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

OSSの活用

完成済アプリを活用する

Page 29: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

CMSの活用

• WordPress

• http://ja.wordpress.org/

| Page 29

Page 30: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

CMSの活用

• Drupal

• http://drupal.jp/

| Page 30

Page 31: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

ECの活用

• EC-Cube

• http://www.ec-cube.net/

| Page 31

Page 32: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

ECの活用

• Magento

• http://www.magento-jp.com/

| Page 32

Page 33: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

CMSの活用

• SugarCRM

• http://www.sugaruser.jp/

| Page 33

Page 34: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

PHP実行環境とZend Server

Page 35: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

エンタープライズ環境に対応

高速性の重視高機能/実績

PC

PHP 5.5 ~ 5.4IHS

IBM HTTP Server

| Page 35

PHPコミュニティサイト

IBM i にPHP を

実装する唯一の方法

Page 36: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

• 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

Page 37: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

機能一覧

機能カテゴリ 機能名 機能概要

高速化/

効率化

スクリプトキャッシュ PHPコードのパース処理を省略

データキャッシュ Webページの一部をメモリにキャッシュ

ページキャッシュ Webページ全体をキャッシュPHPコードの実行を省略

APM モニタリング PHP実行状況を監視

設定値を超えた処理をレポート

デプロイ アプリ別管理機能を提供

コードトレーシング PHP実行状況を自動的に記録Webアプリケーションのフライトレコーダー

機能拡張 ジョブキュー PHPコードを非同期/スケジュール実行

Javaプリッジ 単一のJava VMでJavaプログラムを実行

セッションクラスタリング(PC版のみ)

セッション情報を自動的にWebサーバで共有

| Page 37

Page 38: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

• PHPプログラムの実行状況を監視し、問題が

発生した場合には、その状況を記録します。

– PHP スクリプト実行状況

– PHP実行エラー

–関数呼出時のパラメータ

– メモリの使用状況

– Java呼出時のエラー内容

Zend Server機能説明モニタリング

| Page 38

Page 39: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

モニタ機能の概要

モニタ

コードトレース

メール

イベント

即時通報

情報記録

トレース情報PHPコード

実行

自動消去

ルール

連携

実行状況監視

モニタの結果①イベント記録②イベント記録+メール通報イベント記録+トレース記録③イベント記録+メール通報+トレース記録

| Page 39

Page 40: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

ルールの一覧

ルール名 概要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: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

ルールの管理画面

| Page 41

Page 42: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

ルールの設定と動作

コードトレーシング有無

設定値

メール送信

| Page 42

Page 43: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

イベント一覧

概要表示

イベント一覧

詳細表示リンク

| Page 43

Page 44: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

イベントの詳細

イベント概要

発生箇所

連携ボタン

発生状況

| Page 44

Page 45: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

• 1つのサーバで、1つのサービスを提供するのは稀です。複数のWebアプリが稼働する場合、個々のWebアプリの状況を把握するのは困難です。

• デプロイ機能により、稼働統計や実行監視が可能になりました。

稼働統計

Zend Server機能説明

デプロイ機能

モニタ

ルー

アプリB

アプリA

アプリD

アプリC

| Page 45

Page 46: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

Zend Server機能説明

アプリ単位で稼働統計や実行監視←Global

↑アプリA

稼働統計

稼働統計

←アプリB

| Page 46

Page 47: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

Zend Server機能説明コードトレーシング

• Zend Serverは、PHPプログラムが実行された状況を時系列に詳細な情報として提供します。この様な詳細な実行情報は、標準のPHP実行環境では入手できないZend Serverだけのオリジナル機能です。– 呼出しツリー (履歴)

– パラメータ

– 戻り値

– 使用メモリ

– コード内容

– ファイル名

コードトレーシング画面(抜粋)

| Page 47

Page 48: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

トレース結果①

トレース位置 メモリ情報 実行時間情報実行タイミング

高メモリ使用率

| Page 48

Page 49: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

トレース結果② ユーザ関数別集計

関数名

実行回数

使用メモリ

実行時間

詳細情報

| Page 49

Page 50: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

Zend Studioとの連携• Zend Serverは、PHP統合開発環境Zend Studioとシームレ

スに連携することが可能です。 Zend ServerとZend Studio

との組み合わせにより、ハイレベルで効率的な開発プロジェクトを実現します。

• パフォーマンスチューニング

• デバッグ

• テスト

• コーディング

• マイグレーション

Zend Studioとの連携(プロファイル)

| Page 50

Page 51: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

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

Page 52: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

Zend Server 7英語版デモ

Z-Rayの実力

Page 53: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

Z-Rayとは

• PHP実行状況を手軽に解析するためのZend

Server 7新機能

–旧来のコードトレースをWebブラウザに実装しました

• ブラウザに新たなプラグインを必要とせずにPHPアプリケーションの実行状況を詳細に解

析できます

• シンプルで手軽に解析を始められます

| Page 53

Page 54: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

Z-Rayツールバー

| Page 54

Page 55: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

Z-Rayツールバーの機能

データベース処理

エラー

モニター(アラート)

ステータス

レスポンスタイム/容量

Z Ray ツールバー Off

Zend Server 設定変更

Zend Studio 連携

呼び出し関数

環境変数

| Page 55

Page 56: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

ステータス

| Page 56

Page 57: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

レスポンスタイム/容量

| Page 57

Page 58: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

モニター(アラート)

| Page 58

Page 59: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

エラー

| Page 59

Page 60: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

データベース処理

| Page 60

Page 61: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

呼び出し関数

| Page 61

Page 62: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

環境変数

| Page 62

Page 63: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

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

Page 64: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

IBMiとPHPの連携

Page 65: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

閉鎖的な業務システムからオープンな業務システムへ

IBMiは、業務システムを担うコンピュータとして中心的

な役割を果たしてきました。これまで蓄積した膨大な

データと業務ロジックは、新たな可能性を秘めています。Webシステムの導入によって、オープンなシステム

環境が実現します。IBMiにWebシステムを構築するこ

とにより、業務システムとのシームレスな連携が可能となります。

• 対象ユーザの拡大1. 社内 社員/関連会社

2. 社外 他システムとの連携

3. 社外 E/U、コンシューマ| Page 65

Page 66: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

これからのIBMi

Webシステムの導入基幹系と情報系の共存/共栄

| Page 66

Page 67: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

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

Page 68: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

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

Page 69: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

IBMiでPHPを使用するメリットPHP vs Java

PHP Java

実行スピード ◎ランタイムコンパイル機能搭載 ○フットプリントが大きい

システムへの負担 ◎メモリおよびCPU負荷が非常に少ない

△JavaVMの負担が大きい

セキュリティ ◎セキュリティ面で劣ることはない ◎サンドボックスにより分離可能

数値計算の精度 ○ライブラリにより対応可能 ◎言語使用に組み込まれている

IBMiとの親和性 ◎専用APIにより、システム資源/

ファイルシステム/プログラム/DB2-

400にアクセス可能

◎同様

大量アクセスへの対応

◎ECサイトとしての使用例もあり △システムへの負担が大きい

習得の手軽さ ◎専門教育を受けなくても可能 △専門教育が必要

プログラムスタイル

◎HTML混在、手続き型、関数型、オブジェクト指向で記述可能

△オブジェクト指向のみ

開発コスト ◎少ないコストで開発可能 △開発スタイルが古く高コストに

| Page 69

Page 70: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

IBMiとPHPの連携:3つの方法

• DB/400の活用

• Zend DBi(MySQL)の活用

• RBG/CLの活用(IBM i資源へのアクセス)

| Page 70

Page 71: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

DB2/400への接続:概要

• PHPからDB2/400を操作可能

db2関数

| Page 71

Page 72: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

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

Page 73: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

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

Page 74: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

DB2/400への接続:参考情報

• Konekto技術情報ページ

– http://www.konekto.jp/tech/index.php?Old%2FZe

nd%20Server%2FIBMi%2Fdb2func

• Ustream(PHP勉強会2011年度)

– :TEAM-HALh

| Page 74

Page 75: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

Zend DBi(MySQL)の活用

• PHPからDB2/400を操作可能

| Page 75

IBMDB2i

QSQSRVR

Page 76: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

Zend DBi(MySQL)の活用

• Zend DBiからテーブルを作成する。engine=ibmdb2iを忘れずに。

• IBMDB2iストレージエンジンが、 QSQSRVRを通じてDB2/400に接続して処理を行う。

| Page 76

Page 77: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

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

Page 78: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

IBM iとの連携:概要

• PHPからIBM iに接続

–プログラムの実行

–システム資源の参照

CL RPG

スプールジョブログシステム値

オブジェクト一覧

db2関数XML Toolkit RPG

| Page 78

Page 79: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

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

Page 80: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

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

Page 81: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

IBM iとの連携:参考情報

• Zend Serverオンラインリファレンス– http://files.zend.com/help/Zend-Server-6-IBMi/zend-

server.htm#php_toolkit_xml_service_functions.htm

| Page 81

Page 82: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

まとめ

• PHP入門

– PHPは、シェアが高いスクリプト言語です。

–プログラミングスタイルを選択できます。

–豊富なフレームワークにを利用できます。

– OSSを活用できます。

• IBM i連携

– PHPとIBM Iは、3つの方法で連携できます。

| Page 82

Page 83: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

企業スペックのパワフル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日現在のものです。掲載内容を保証するものではありません。

Page 84: OSS協議会 IBM i 勉強会第1回 PHP 入門& IBMi 連携...コネクトのあゆみ – 2001 年9月Zend プロダクト日本語化とサポート開始 • 株式会社テンアートニ(現:サイオステクノロジー株式会社)1部門

今後の予定

• 第1回(08/29 金):「PHP入門 & IBM i 連携」

• 第2回(10/17 金):「ZendFramework入門(ZF2)」

• 第3回(12/19 金):「Ruby入門」

• 第4回(02/20 金):「Bootstrapで見栄えのいい業務システムを作る」(仮)

• 第5回(04/17 金):「jqueryでリッチなUIの業務システムを作る」 (仮)