SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

特集記事

Watsonで荒木飛呂彦先生の実年齢を推測!? ユニークなアイデアで「IBM Bluemix Challenge 2015」に挑戦!

  • このエントリーをはてなブックマークに追加

選ぶだけで即座にアプリケーションサーバーが起動、すぐに開発スタート

 Bluemixの「ランタイム」とは、アプリケーションの実行環境(アプリケーションサーバー)のことです。例えば、Liberty for Javaを選択すると、Javaアプリケーションサーバーのインスタンスが30秒~1分で起動します。

アプリケーションサーバーを起動するランタイム
アプリケーションサーバーを起動するランタイム

 同じクラウドサービスでも、IaaS(Infrastructure as a Service)では、サーバーの起動自体には1分もかかりませんが、開発が始められるまでには手間と時間がかかります。例えばJavaのアプリケーションサーバーを作りたい場合は、起動したインスタンスにJavaの実行環境、アプリケーションサーバー、HTTPサーバーなどをインストールして設定する必要があります。

 PaaSであるBluemixでは、ランタイムを使うことでアプリケーションサーバーのインスタンスを起動し、すぐに利用できます。

ビルドパックで標準以外のランタイムを利用する

 デフォルトではLiberty for Java、SDK for Node.js、Go、PHP、Python、Rubyが用意されています。それ以外のランタイムを利用するためのしくみがビルドパックです。

 ビルドパックはCloud Foundryのコミュニティにより開発され、GitHubに公開されています。例えば、Liberty for JavaはJava 7に対応していますが、Java 8対応のアプリケーションサーバーが必要な場合には、GitHubからJava 8対応のビルドパックをダウンロードして利用します。

Java 8対応のビルドパック
Java 8対応のビルドパック

ランタイムにアプリケーションをデプロイする

 開発したアプリケーションを実行するには、ランタイム上にデプロイする必要があります。通常はコマンドラインからデプロイ用コマンドを使いますが、より簡単にデプロイを実行する方法があります。

 一つは、IBM Eclipse Tools for BluemixというEclipseプラグインを使う方法です。Eclipseにインストールすれば、EclipseからBluemixにデプロイできるようになります。

 もう一つは、IBM Bluemix DevOps Servicesを使う方法です。IBM Bluemix DevOps ServicesはSaaSとして提供されている開発環境で、開発したアプリを直接Bluemixにデプロイできます。

IBM Bluemix DevOps ServicesからBluemixにデプロイ
IBM Bluemix DevOps ServicesからBluemixにデプロイ

Watson、IoT、DB……豊富なサービスもBluemixの魅力

 Bluemixの「サービス」とは、アプリケーションの機能を拡張するコンポーネントです。

 サービスは必要に応じて連携(バインド)して利用します。例えば、データベースと監視機能を利用するJavaアプリケーションを開発する場合、ランタイムでLiberty for Javaを選択し、サービスでSQL DatabaseとMonitoring and Analyticsを選択します。サービスを選択すると、30秒ほどでバインドが完了します。

BluemixではWatson、モバイル、DevOpsなどさまざまな種類のサービスを利用できる
BluemixではWatson、モバイル、DevOpsなどさまざまな種類のサービスを利用できる

 Bluemixは、アプリ開発に必要な機能を提供するサービスを数多く提供しています。IBM製だけでなく、IBMのビジネスパートナーやCloud Foundryコミュニティが開発したサービスの利用が可能です。IBMのビジネスパートナーが自分のサービスをBluemixに登録し、ユーザーに公開するマーケットプレイスのようなしくみもあります。

荒木飛呂彦先生の実年齢を推測!? Bluemix注目のサービス

 サービスは日々更新されており、コグニティブ(認知)・コンピューティング・システムであるWatsonや、ビッグデータ、IoTなど最先端技術のサービスがあります。

Bluemixの注目のサービス
種類 名称 提供元 説明
Watson Personality Insights IBM 人と人とのエンゲージメントをサポートするために、ソーシャルメディアなどの分析による、個々人のプロファイリングを行う
AlchemyAPI IBM 自然言語処理とコンピュータによる画像認識機能を活用し、スマートなアプリケーションを構築する
データ管理 Cloudant NoSQL DB IBM NoSQLデータベース。分散DBaaS(Database as a Service)を提供する
SQL Database IBM オンデマンドのリレーショナルデータベースをアプリケーションに追加する
IoT Internet of Things(ベータ版) IBM デバイスデータにアクセスするためのAPIを提供する
モバイル Mobile Application Security IBM 基本的なアプリケーションセキュリティフレームワークを提供する
Mobile Data IBM オブジェクト指向のAPIを経由し、スケーラブルで完全に管理されたデータベースへのアクセスを可能にする
Mobile Quality Assurance IBM 異常終了ログ、バグレポート、ユーザーフィードバック、品質メトリックなどを収集し、アプリの品質を計測する
Push IBM iOS/Android デバイスへのプッシュ通知を作成およびスケジュールする
ビッグデータ Analytics Warehouse IBM データウェアハウジングおよび分析用のアジャイルプラットフォームを提供する
Geospatial Analytics(ベータ版) IBM アプリケーションの境界を拡張し、リアルタイムの地理空間分析により、定義された地域でのデバイスの利用情報を取得する
Insights for Twitter IBM Twitter Decahose(Twitterの公開ツイート全体からランダムに10%分ピックアップしたデータ)を検索し、リアルタイム分析を行う
Webとアプリケーション Data Cache IBM メモリキャッシュ機能を提供する
Geocoding サードパーティ 住所から位置情報を取得して地理的位置を特定する機能を提供する

顔認識アプリを開発できる「AlchemyAPI」

 AlchemyAPIは、Watsonサービスの一つで、自然言語処理機能や画像認識機能のAPIを提供します。AlchemyAPIの画像認識機能を使えば、画像から人間の顔の位置、人数、性別、年齢などを識別する、非常に高度な顔認識アプリを開発できます。

AlchemyAPIを使った顔認識アプリの例。性別、年齢を推測する
AlchemyAPIを使った顔認識アプリの例。性別、年齢を推測する
AlchemyAPIを使った顔認識アプリの例。有名人を識別する
AlchemyAPIを使った顔認識アプリの例。有名人を識別する

 年齢判定サイトで「27歳」と判定されたのも記憶に新しい、「ジョジョの奇妙な冒険」の作者 荒木飛呂彦先生の年齢も、AlchemyAPIなら高い精度で推測できます。荒木先生の写真で年齢を推測したところ、「Age 45-54」と、実際の年齢(55歳)に近い結果となりました。ぜひ試してみてください。

ツイートをリアルタイムに分析できる「Insights for Twitter」

 Twitterの公開ツイート全体からランダムに10%分ピックアップしたデータを検索します。その際、ツイートした人の性別や居住地、感情(ポジティブ、ネガティブなど)でリアルタイムに分析するAPIを提供します。Twitterをもとにマーケティングや調査を行う際に便利です。

Insights for Twitterを使ったアプリの例。
(左)IBMに肯定的な内容のツイートを検索する (右)IBMに否定的な内容のツイートを検索する
Insights for Twitterを使ったアプリの例。(左)IBMに肯定的な内容のツイートを検索する (右)IBMに否定的な内容のツイートを検索する

よく使う組み合わせはボイラープレートとして提供

 Bluemixでは、ランタイムとサービスは自由に組み合わせることができますが、典型的な組み合わせは、ボイラープレートと呼ばれるテンプレートとして提供されています。例えば、データベースを扱うWebアプリを作りたい場合、Java DB Web Starterを起動すると、Liberty for Javaのランタイムに、データベースと監視のサービスがバインドされた環境が用意されます。

ランタイムとサービスの典型的な組み合わせはボイラープレートとして提供
ランタイムとサービスの典型的な組み合わせはボイラープレートとして提供

次のページ
今までにはないアイデアでコンテストにチャレンジしよう!

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
特集記事連載記事一覧

もっと読む

この記事の著者

坂井 直美(サカイ ナオミ)

SE、通信教育講座の編集、IT系出版社の書籍編集を経てフリーランスへ。IT分野で原稿を書いたり編集したり翻訳したり。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/8819 2015/07/08 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング