スマートフォン/タブレット端末の普及により利用が増加しているエンタープライズ向けのモバイルアプリケーション。身近で使用頻度が高いが故に要件の変更や品質改善などの需要が増え、よりアジャイルな開発環境が望まれる。これに対するIBMからの回答、「IBM Worklight」を中心とした「モバイルDevOps」な開発とはどんなものなのだろうか。
ここ数年で、スマートフォンやタブレットなどのモバイル端末が普及し、ビジネスシーンにおいてもモバイルの活用が急速に進みつつある。その中で、今、多くの企業が課題として抱えているのが、多種多様なモバイル端末に適したアプリケーションをいかに効率的に開発し管理していくかである。
「モバイルアプリケーションの開発には、従来のPC用アプリケーションとは全く異なる開発プラットフォームが求められている」というのは、日本アイ・ビー・エム(以下、日本IBM)ソフトウエア事業 SW テクニカルセールス&ソリューションズ モバイル・ソリューション・アーキテクトの横山和秀氏。
「最も大きな違いは、モバイル端末はOSの種類、バージョンやデバイスの種類が多岐にわたるため、それぞれの環境に合わせた開発を行い、そのアプリケーションを配信する必要があることだ」
また、ユーザーは配信されたアプリケーションをモバイル端末にダウンロードして利用するが、使い勝手や欲しい機能など、ユーザーエクスペリエンスからのフィードバックを次のリリースに生かす必要がある。横山氏は、「こうしたライフサイクルを継続して回していかなければ、企業はモバイル活用によるビジネス価値を生み出せない」と指摘する。
日本IBMでは、こうしたニーズに対応し、企業におけるモバイルアプリケーション開発・実行・管理の効率化を実現するプラットフォームとして「MobileFirst Platform」を提供している。
一般的に、ユーザーの目を引くモバイルアプリケーションのユーザーインターフェイス部分の開発工数は「全体の30%」といわれている。残りの70%は企業がモバイルを採用するために必須なセキュリティ機能、アプリケーションの配布やバージョン管理、障害解析などの運用機能、基幹システムとの連携機能、プッシュ通知やオフライン利用など、ユーザーの利便性向上のための機能などの実装に費やされる。
「MobileFirst Platform」は、これらを網羅し、モバイルアプリケーション開発・実行・管理に必要な機能を包括的にカバーしており、デザインと開発、実装、統合、テスト、スキャンと保証、デプロイ、管理、洞察まで、モバイルアプリケーションのライフサイクルを網羅しているのが大きな特徴だ。これにより、途切れることのない継続的なモバイルアプリケーションのビジネス活用を可能にしているのである。
「MobileFirst Platform」にはさまざまな開発ツールやミドルウエアが含まれ、それらが連携してライフサイクル全体をサポートしているが、この中核を担うのが統合プラットフォーム製品「IBM Worklight」である。
「IBM Worklight」は、Eclipseベースの統合開発環境(IDE)である「IBM Worklight Studio」、アプリケーションや外部サービス、企業のバックエンドインフラの間でゲートウェイとして機能する「IBM Worklight Server」、クライアントアプリーションのモジュールとして同梱される実行環境「IBM Worklight Device Runtime」、エンタープライズ向けのアプリケーション配布ストア「IBM Worklight Application Center」、監視・管理用のWebベースGUIツール「IBM Worklight Console」の5つの主要コンポーネントで構成されている。
ここからは、具体的なモバイルアプリケーション開発のライフサイクルの中で、「IBM Worklight」が実現する「モバイルDevOps」な機能と主要コンポーネントの役割を見ていこう。
まず、「IBM Worklight Studio」は、アプリケーションの「開発」フェーズにおいて、ハイブリッドアプリケーションの開発、実行環境を提供する。
モバイルアプリケーション開発の課題として、モバイルOSそれぞれに対応した言語でアプリケーションを開発し保守するために大きな負荷が掛かることが挙げられる。これに対して、IBM Worklightでは、JavaScript/CSS/HTML5ベースのWeb技術のソースコードを共通な土台にしてモバイルOSやデバイスに依存する機能のみを、“ネイティブ”モジュールで拡張するハイブリッドアプリケーション開発に対応している。
例えば、カメラをバーコードリーダーとして利用するiOSとAndroidのモバイルアプリケーションを作成するとしよう。これは電波の届かない室内で入力でき、通信が可能になったらデータを送信が必要な要件とする。
「IBM Worklight」では、画面は広く利用されているHTML5と「jQuery Mobile」を使い、主な業務ロジックは両OSで共通に利用できるJavaScriptで記述できる。バーコード利用には、「IBM Worklight Studio」を使いiOSとAndroidのネイティブコード記述用フォルダーで「Apache Cordova」プラグインを拡張する。オンライン状態になったことの検出や、デバイスのローカルストレージの利用・暗号化には「IBM Worklight」提供のAPIが利用できる。
iOSとAndroid用パッケージングは、XcodeやAndroid SDKを「IBM Worklight Studio」から呼び出してビルドする。この時、「IBM Worklight Studio」プロジェクト内で追加したネイティブコードや「IBM Worklight Device Runtime」もリンクしてビルドされる。
「IBM Worklight」では、「Apache Cordova」以外にも、位置情報サービス、JSONストアや認証・改ざん防止などビジネスモバイルで必要となる機能を追加しているため開発効率は、一層向上する。
「IBM Worklight Device Runtime」は、「IBM Worklight Server」と連携することで、モバイルアプリケーション内のWebリソース(HTML、JavaScript、CSS)の差分を直接更新したり、アプリケーションのバージョンを環境ごとに管理し、「IBM Worklight Server」へのアクセスを制御したりすることが可能だ。
また、デバイスの状態も管理できるので、紛失や盗難とされたデバイスからのアクセスを拒否できる。ベンダーにより異なるプッシュ通知の統合や、HTTPサーバー/データベースサーバーへのアクセスAPIを共通化することで、開発生産性を向上できる。さらに、「IBM Tealeaf Customer Experience」の一部モジュールを組み込んでおり、デバイス側でのアプリケーションのクラッシュ情報をサーバーへ送信できる。
「基本となるソースコードの大部分を再利用可能なWeb技術を使って開発し、デバイス依存の機能はネイティブなソースコードで補完することで、アプリケーション開発および保守の生産性を大幅に向上できる」(横山氏)
また、モバイルアプリケーション開発では、「テスト」フェーズにおいてもOSの種類、バージョン、デバイスごとにテスト作業を行う必要があり、開発者にとって大きな負担となっていた。これに対して「IBM Worklight」では、機能テスト自動化ツールを提供しており、テストに掛かる工数を大幅に削減できることも大きな特徴だ。
機能テスト自動化ツールは、1つのモバイル端末上での打鍵テストを記録し、それを他の異なる機種の端末で自動再生できるツール。この自動再生機能はiOSとAndroidに対応し、「IBM Worklight Studio」ではハイブリッドアプリケーション(HTML、jQuery、Dojo)とモバイルWebアプリケーションを対象としている。さらに「Rational Test Workbench」では、ネイティブアプリも対象とすることができる。
さらに「Rational Test Workbench」では、ネイティブアプリも対象とすることができる。記録したテストの手順や入力データは、GUIからでも編集できるという。さらに、テスト終了後には、画面のスクリーンショット付きのテスト結果を自動出力する機能も備えている。
「例えば、最初に1台のモバイル端末で一通りのテストを実施し、その操作を記録しておく。次に、記録したテスト操作をGUIから必要に応じて編集し、別のモバイル端末で自動テストを実行する。これだけのステップで、従来のように何度も同じテスト操作を繰り返す必要がなくなり、簡単にテストの自動化を実現できる。これによって、複数のモバイル端末や頻繁なOSアップデートに伴うテスト作業を軽減するとともに、モバイルアプリケーションの品質向上にもつなげることができる」と、横山氏は、テスト自動化がもたらすメリットを強調した。
さらに、「IBM Worklight」の特徴として見逃せないのが、モバイルアプリケーションに必要なセキュリティ機能を網羅している点。全てのコンポーネントにおいてセキュリティが考慮されており、デバイス、アプリケーション、ネットワークそれぞれでモバイルセキュリティを保護している。
オフラインアクセスのセキュリティ制御、デバイス上のデータの暗号化、SSLによる暗号化、コード難読化によるリバースエンジニアリングからの保護、シングルサインオン機能、複数の要素による認証などのセキュリティ機能によって、モバイルアプリケーションにおける、さまざまなセキュリティリスクに一貫して対応する。
また、デプロイ済みのアプリケーションをダイナミックに制御する機能を搭載。インストール済みのアプリケーションとアダプターを集中制御できる他、前述したようにデバイスとバージョンを指定してリモートから「IBM Worklight Server」へのアクセスを制御したり、ユーザーへのメッセージをカスタマイズできる。アプリケーションを更新した際には、「IBM Worklight Server」から直接アップデートすることもできるという。
そして、アプリケーション開発ライフサイクルの「洞察」フェーズにおいては、充実した「分析」機能を用意している。モバイルアプリケーションの利用状況、レスポンス、操作手順を分析し、その結果を「IBM Worklight Console」のダッシュボードなどからGUIで確認できる。
また、モバイルアプリケーションと接続するサーバーに関する、さまざまなログデータを収集し、分析する機能も搭載。利用者数やその利用環境(端末の機種やOSの種類)の内訳などの接続情報の統計をはじめ、各端末での障害やセキュリティ問題のアラートと位置情報の収集や分析を行える。障害が起こった際はアプリケーション側が原因かネットワーク側が原因かなどの判断の手助けにもなる。
この他、ユーザーから見た問題点を可視化するカスタマーエクスペリエンス管理ソリューション「IBM Tealeaf Customer Experience」と連携することで、モバイル端末でのユーザー操作の履歴を取得し、蓄積した膨大な情報を分析することも可能だ。「これにより、ユーザーがモバイルアプリケーションをどう操作し、どこで困っているのか、どんな不具合が発生しているのかを自動的に検知できる。これは、前述の「テスト」フェーズや、マーケティング、UX(ユーザーエクスペリエンス)の継続的なデザイン改修でも生かされている。
例えば、ECサイトでは、商品をカートに入れた後、操作につまずくと、その購買まで進んでくれないケースがほとんど。こうした問題をいち早く察知し、対策を打つことで、コンバージョンレートと売上の増加につなげることができる。「モバイルアプリケーションを開発、実行するだけではなく、その後にユーザーにどう使われているのかまで追跡、分析することも重要である」と横山氏は訴えた。
DevOpsというと、デプロイメントの自動化や構成管理が欠かせない。これらは、「IBM UrbanCode Deploy」によって実現されている。Worklightサーバー/クラウド環境への自動デプロイメントはもちろん、オーケストレーション、ミドルウエアやデータベースの構成管理も行う。これにより、デプロイメントのリスクを最大90%削減できるという。
なお、「管理」フェーズについては、オンプレミスのモバイルデバイス管理ソリューション「IBM Endpoint Manager for Mobile Devices」とSaaSによるモバイルデバイス管理サービス「Fiberlink」を提供している。両者はいわゆるMDMツールであるが、前述の「IBM Worklight Application Center」と組み合わせて、アプリケーションの配布やバージョン管理、アクセスリスト、アプリケーションのレビューや管理、導入などのユーザーおよびグループ制御におけるLDAP連携などを実現する。
いずれも、モバイル端末やモバイルアプリケーションの管理機能を一元的に備えており、ユーザーのニーズに応じて、オンプレミス製品もしくはSaaSサービスを選択できるようラインアップをそろえている。
このように、「IBM Worklight」を中心にモバイルアプリケーションの開発ライフサイクル全体をカバーしている「IBM MobileFirst Platform」。これからモバイルアプリケーションの開発に取り組もうとしている企業は、そのプラットフォームの有効な手段として、まず「IBM MobileFirst Platform」を検討してみてはいかがだろうか。
モバイルデバイスが普及し、ユーザーがアプリケーションを通じてさまざまな機能を利用している現在、企業にとってモバイルアプリの取り組みは欠かせない。その際最も大きな課題となるのがセキュリティだ。
※ダウンロードにはTechTargetジャパンへの会員登録が必要です
Copyright © ITmedia, Inc. All Rights Reserved.
提供:日本アイ・ビー・エム株式会社
アイティメディア営業企画/制作:@IT 編集部/掲載内容有効期限:2014年6月30日
企業のモバイル・デバイス活用が進み、モバイル・アプリケーション戦略を検討する中、直面する問題がセキュリティだ。モバイル・アプリ固有のリスクと対策とはどのようなものか。