【DO!BOOK・ページリンク】
2009_migaro_techreport_001   38 / 80

BOOKをみる

10秒後にBOOKのページに移動します


36 う仕組みも可能となる。 PHPプログラムとの連携      (ファイルアップロード機能の付加)  画像ファイルをJACi400 上で扱う場 合、ポイントが2 つある。まずは、画像 ファイルをWeb サーバーに置く。それ から、IBM i 側でその表示したい画像 のパスを指定する。このような連携を用 いて、JACi400 は画像を表示している。  照会のみであれば、上記で問題はない。 だが、ユーザーサイドから画像を送りた い場合は、別の手段を用いて、画像ファ イルをWeb サーバーにアップロードす る必要がある。このような仕組みは、サー バーサイドで動作するプログラムによっ て実現できる。  いろいろな手段があるが、今回は一般 的なWeb において一番敷居が低いと思 われる、オープンソースのPHP を使用 した実現方法を解説する。  ここでは、PHP Labo が提供するファ イルのアップロード機能を参考に、画像 ファイルをWeb サーバーに転送する。 JACi400 上で使用する際のコツは、こ の画面をインラインフレームに置くとい う点である。そうすれば、制御がIBM i 側に戻らずにファイルをアップロードで きる。【図4】【ソース6】  なお、PHP やPHP Labo に関しては、 以下のURL を参照のこと。(※) 【ソース解説】  まず、Web サーバー上にPHP をイン ストールし、使用できる環境を用意する。  ここでは、JACi400との連携に向けて、 アップロードしたファイル名を取得する ためにJavaScript を組み込み、親フレー ムに配置してあるJACi400 のフィール ドへ値を渡している。 ※ PHP Labo http://www.php-labo.net/tutorial/ php/upload.html    以上、JACi400 環境において、Web アプリケーション作成時に使えそうな JavaScript の活用例を4 点挙げた。  ここでご紹介した内容は応用的ではあ るが、特別複雑なことを行っているわけ ではなく、一般的なWeb サイトでは多 く導入されている技術である。しかし、 このようなことでも使用感が全く違って くる。JACi400 アプリケーションを作 成する際にぜひ参考にしてほしい。 Web APIの活用 Web APIとは  次に取り上げたいのは「Web API」 である。  「API」とは、Application programming interface の略であり、特定の機能を持っ たプログラムの部品と解説される場合が 多い。利用者はその都度プログラミング することなく、その機能を利用できる。 API というとOS の機能をプログラムか ら利用するための窓口というイメージが あると思うが、Web API はOS 上では なくWeb 上に散在しているAPI であ る。一般的に「Web サービス」とも呼 ばれる。  OS やフレームワークが提供するサー ビスではなく、Web 上のサービスとし て提供されており、その機能を取り込め る。つまり、今までローカルのパソコン ではできなかったさまざまな機能を簡単 に利用できるようになる。  Web API の代表例としてよく出され る「Google Maps API」を題材に、簡 単な活用例を説明する。  Google Maps は、言わずと知れた Google の地図検索サービスであり、衛 星写真やストリートビューといったサー ビスで話題になっている。しかし最近は、 他のWeb サイト上でもGoogle Maps を見かける機会がないだろうか?  具体的には例えば、グルメサイトから、 出張先でランチに食べるラーメン屋を探 すとする。そこで表示された地図を見て、 縮尺などを操作して印刷する。いつもの 使用感と変わらないなと思っていたら、 地図の左下に「POWERED BY Google」 のロゴが入っていたことに気づく―― 実はこれが、Google Maps API を使用 したサイトの例だ。Google 以外のサイ ト上でも、多くのユーザーが使い慣れて いるGoogle Maps を利用できるのであ る。  このようにWeb API を利用すること で、いままで地図データを自社で用意し なければいけなかったものが不要になる だけでなく、その構築工数を省くことが 可能になる。しかも地図の更新等は、 Web サービスの提供元により自動的に 行われる。  このグルメサイトの地図サービスの例 は、既存の「飲食店検索システム」との マッシュアップ例とも言える。“マッシュ アップ(Mashup)”とはマッシュポテ トをイメージしていただければわかりや すい。Web API などを掛け合わせて新 しい価値を生み出す、というWeb2.0 の 用語である。  なお、マッシュアップ、JACi400 で のマッシュアップの実践については、後 半にくわしく説明する。 Web APIが提供する機能と必要な知識  JACi400 との関係や連携方法を解説 する前に、Web API について、どのよ うな機能が提供されているのかを確認し ておこう。また、それを使用する際に必 要な知識を解説する。  Web API の実例の中で、有名でわか りやすい例として挙げたいのが「Google AJAX API」である。前述した「Google Maps API」もこの一部である。また Google AJAX API は、簡単にグラフ化 を行う「Google Chart API」や任意の サーバーからRSS フィードを取得する 「Google AJAX Feed API」など、多く のAPI を提供している。  Google 以外にもニュースや天気予報 など、切りがないほどのWeb API が公 開されている。しかも、一部有償のもの もあるが、ほとんどは無償で提供されて いる。【表1】  1 つ1 つの情報は、ネット検索でその 都度調べれば不便ではない情報ばかりだ が、これらWeb API を組み合わせる (マッシュアップ)ことにより、新しい 価値を生み出すことができる。つまり、 JACi400 を使用してマッシュアップす れば、IBM i の資産とつながることが 可能になる。  これらを実装する際には多くの知識は 必要なく、ハードルはそれほど高くない。 前述したようなJavaScript の基礎を理 解していれば、ある程度は扱えるように なる。もちろん、使用方法は各デベロッ パーサイトにも載っている。なにより、 これらWeb の世界は技術情報が多く Web 上に存在しているため、信用でき るサンプルソースが入手できれば、それ