企業のモバイル・アプリもJavaで作る! Oracle Mobile Application Framework--【前編】既存のスキル/資産を生かし、効率的にモバイル化を推進できる理由

Oracle Java & Developers編集部
2015-06-18 15:40:00
  • このエントリーをはてなブックマークに追加

Javaの最大の利点である「Write Once, Run Anywhere」をモバイル・アプリケーションで実現する仕組みとして、オラクルは「Oracle Mobile Application Framework」を提供している。同フレームワークによるモバイル・アプリ開発の概要を2回にわたって紹介する。

モバイル・アプリ開発の効率性を大きく高めるOracle MAF。オラクルも社内開発で全面採用

 今日のビジネスマンや消費者にとって、スマートフォンやタブレットなどのモバイル・デバイスは最も身近で頻繁に利用する情報ツールとなった。そのため現在、多くの企業/組織が「モバイル・デバイスの有効活用」をビジネス戦略上、あるいはIT施策上の重要テーマとして掲げている。また、企業ITを担う組織/開発者には、それらのデバイス上で動作する&エンタープライズ・モバイル・アプリケーション&を効率良く開発することが強く求められている。

 オラクルが提供するモバイル・アプリケーション開発フレームワーク「Oracle Mobile Application Framework(MAF)」は、そうしたIT組織の課題解決を支援すべく誕生したフレームワークだ。Oracle MAFを使うことにより、企業はiOSやAndroidなど複数のプラットフォームに対応したモバイル・アプリケーションを効率的に開発することが可能になる。その効果は高く、オラクル自身も約3年前からOracle MAFの社内利用を進め、同社アプリケーション製品群のモバイル版の開発に広く採用している。

日本オラクルFusion Middleware事業統括本部ソリューション本部 シニアセールスコンサルタントの智野潤子氏
日本オラクルFusion Middleware事業統括本部ソリューション本部 シニアセールスコンサルタントの智野潤子氏

 それでは、Oracle MAFはどのような特徴によって企業のモバイル・アプリケーション開発の効率性を高めているのか。また、Oracle MAFによるモバイル・アプリケーション開発は、具体的にどのようなものになるのか。本企画では、日本オラクルでOracle MAFを担当する智野潤子氏(Fusion Middleware事業統括本部ソリューション本部 シニアセールスコンサルタント)の解説により、前後編の2回にわたってその秘密を紹介していく。前編となる今回は、まずOracle MAFの全体像を紹介したうえで、開発者にとっての同フレームワークのメリットを明らかにする。また後編では、Oracle MAFを用いたアプリケーション開発の手法について、具体例を交えて紹介する。

マルチプラットフォーム/デバイス対応の課題を解決し、企業の既存資産を迅速にモバイル化するフレームワーク

 今日のモバイル・アプリケーションは、大きく「ネーティブ・アプリケーション」、「Webアプリケーション」、「ハイブリッド・アプリケーション」の3つに分類することができる。智野氏によれば、これらの長所/短所は、それぞれ下表のようになる。

エンタープライズ・モバイル・アプリケーション開発方式の比較(1)

  ネーティブ Web ハイブリッド
ユーザー体験 表現力
デバイス機能連携
レスポンス ×
オフラインでのアプリケーション実行 ×
開発コスト マルチプラットフォーム対応 ×
生産性 既存スキルの活用 ×
業務処理の実装しやすさ
バックエンド・サービスへのアクセスの容易さ
セキュリティ アプリケーション・ソースの保護 ×
ローカル・ストレージ内のデータの保護 ×

記号の意味 ◎:非常に良い ○:良い △:やや悪い ×:不可/悪い

 この表からもわかるように、モバイル・アプリケーションで「表現力」や「レスポンス性能」、ローカル・ストレージやGPS、カメラといった「デバイスのネーティブ機能」を最優先で考えるのなら、ネーティブ開発のアプローチを取るのが得策だと言える。

 ただし、このアプローチを採用した場合には、モバイル・デバイスのプラットフォーム(OS)ごとに異なる言語/開発ツールを使わなければならない。つまり、アプリケーションの開発ターゲットがiOSならばObjective-CとXcodeを使い、AndroidならばAndroid JavaとEclipseを使って開発を行うわけだ。

 「したがって、iOSとAndroidの両プラットフォームに対応したネーティブ・アプリケーションを開発するには、少なくともObjective-CとJavaという2つの開発技術を駆使しなければならず、それによって開発サイドの手間とコストは膨らみます。

 加えて、iOSにせよAndroidにせよ、一般にモバイル・アプリケーションでは短いサイクルでバージョンアップが繰り返されるうえ、OSやデバイスは速いスピードで変化/進化していきます。その中で、両プラットフォーム向けにネーティブ・アプリケーションを提供していくことは、IT部門にとって大きな負担を伴う取り組みだと言えるでしょう」(智野氏)

 一方、Webアプリケーションの場合、基本的にWebブラウザさえあれば、どのプラットフォーム上でも動作する。そのため、マルチプラットフォーム性は高いと言えるが、アプリケーションからデバイス機能にアクセスできるかどうかは、そのデバイスに搭載されたWebブラウザの機能に左右される。その意味で、Webアプリケーションのマルチプラットフォーム性は&制限付き&だと言える。また当然ながら、モバイル・デバイス上での表現力や性能についても、Webアプリケーションはネーティブ・アプリケーションに遠く及ばない。

 このように、それぞれ長短がある中で、両者を折衷したアプローチによってそれぞれの欠点を補おうとするアプローチが、いわゆるハイブリッドである。

 ハイブリッド・アプリケーションでは通常、HTML5やCSS、JavaScriptなどの標準技術を使ってユーザー・インタフェース(UI)と業務処理ロジックを実装し、オープンソース・フレームワークの「Apache Cordova(PhoneGap)」を介してデバイス機能との連携を図るケースが多い。こうしたアーキテクチャにより、ソースコードのマルチプラットフォーム性が一定のレベルで保たれ、アプリケーションとデバイス機能の連携も確保される。とは言え、従来型のハイブリッド・アプリケーションには、レスポンス性能や表現力、セキュリティ、生産性の面でいくつかの課題があった。

 そうしたハイブリッド・アプリケーション開発の課題を包括的に解決し、エンタープライズ・モバイル・アプリケーションの生産性を高めるためのフレームワークがOracle MAFである。下表は、上記3タイプのアプリケーションとともに同フレームワークの特徴をまとめたものだ。

エンタープライズ・モバイル・アプリケーション開発方式の比較(2)

  ネーティブ Web ハイブリッド Oracle MAF
ユーザー体験 表現力
デバイス機能連携
レスポンス ×
オフラインでのアプリケーション実行 ×
開発コスト マルチプラットフォーム対応 ×
生産性 既存スキルの活用 ×
業務処理の実装しやすさ
バックエンド・サービスへのアクセスの容易さ
セキュリティ アプリケーション・ソースの保護
ローカル・ストレージ内のデータの保護 ×

記号の意味 ◎:非常に良い ○:良い △:やや悪い ×:不可/悪い

 Oracle MAFの特徴を、智野氏は次のように説明する。

 「Oracle MAFは、エンタープライズ・モバイル・アプリケーションを低コストで、なおかつ効率的に開発するために必要な要素がすべて用意されたフレームワークです。モバイル・ゲームなど特殊なアプリケーションの開発にはネーティブ開発のアプローチが適しているかもしれません。しかし、企業で利用する一般的な業務アプリケーションであれば、Oracle MAFによって十分な機能を備えたものを手軽に作ることができます。企業が既存のIT資産を最大限に生かしながら、業務システムを迅速にモバイル対応させるという課題に取り組むうえでは、Oracle MAFが最適なソリューションだと言えるでしょう」

Java開発のスキル・セットを、そのままモバイル開発に生かせる

 Oracle MAFによるモバイル・アプリケーションのアーキテクチャは、下図のようになる。

 このアーキテクチャが、先の表に示した"Oracle MAFの強み"につながっているわけである。特に他の開発アプローチと比較した場合にOracle MAFの絶対的なアドバンテージとなるのは、やはりJavaが中心にあることだ。

 「Oracle MAFの最新版には、Java 8 Compact Profile 2をベースにしたJVMが組み込まれており、Javaで書かれた単一のソースにより、iOSや Androidなど複数のモバイル・プラットフォームに対応することが可能となっています」(智野氏)

 ご承知のとおり、Javaは企業アプリケーション開発の世界で広く、長く利用されてきた開発技術である。JavaScriptなどと比べて開発生産性やソースコードの可読性は格段に高く、高機能であり、アプリケーションのパフォーマンスも優れる。また、何よりも重要なことは、すでに多くの開発者が企業アプリケーションに関するJava開発のスキル・セットを有していることだ。Oracle MAFを使えば、そうした既存のスキル・セットをモバイル・アプリケーション開発でも生かせるのである。

 「国内企業のIT部門にOracle MAFをご紹介すると、皆さん『Javaでモバイル・アプリケーションを作れる』という点に強く関心を持たれます。現状、モバイル・アプリケーションへの取り組みを進めている企業は開発を社外に委託しているケースが多く、またコストや頻繁なリリースの負担を懸念してモバイル・アプリケーション対応は様子見というケースも少なくありません。Oracle MAFを使えば、そうした企業が既存のスキル・セットを生かして低コストで開発を行うことが可能となり、IT部門がモバイル・アプリケーション開発を自らリードしていけるようになるのです」(智野氏)

 例えば、Oracle MAFではMVCベースのアーキテクチャが採用されており、業務処理ロジックやUIの実装では、Java開発者が使い慣れたJDeveloperやEclipseなどの統合開発環境(IDE)を使うことができる。つまり、IDEに備わるJava開発支援機能のサポートを受けながら、ビジュアルなエディタによってプロパティ設定を中心にした開発スタイルでモバイル・アプリケーションを作れるのである。

IDE(JDeveloper)によるOracle MAFアプリケーション開発
IDE(JDeveloper)によるOracle MAFアプリケーション開発

 また、Oracle MAFはJSF(JavaServer Faces)ライクなコンポーネント・ベースのUI開発にも対応しており、80種類以上のUI部品が標準UIコンポーネント群「Application Mobile XML Components(AMX)」として用意されている。

 これらのコンポーネントを使ってUIを設計/開発することで、プラットフォームに応じて適切なUIを生成することが可能となるのだ。

 このほか、Oracle MAFではアプリケーションのオフライン利用を想定し、デバイス・ローカルで動くデータ・ストレージとして「SQLite」を提供している。モバイル・デバイスに業務データを格納する場合、そのセキュリティをどう担保するかが大きな課題となるが、SQLiteに格納されるデータはすべて自動的に暗号化される。そのため、アプリケーション開発者がローカル・データのセキュリティ確保の仕組みを実装する必要はないのである。

 さらに、Oracle MAFはアプリケーションへの「Apache Cordova Plugin」の組み込みもサポートしている。これを使うことで、「電子メールやSMSの送信」、「ローカル・ファイルの表示」、「連絡先の作成/検索/更新/削除」、「位置情報の取得」、「カメラによる写真撮影」など、デバイス機能を活用したアプリケーション機能の開発も、Java IDE上におけるドラッグ&ドロップ操作で行えるようになる。