モバイルの業務アプリに求められる機能とは?
各社が共通して備える機能
――この後、座談会は業務アプリ開発ツールとしてユーザーに求められる機能がどのようなものかといった議論に入る。
各社のツールがそれぞれのアーキテクチャと特色を持っているため、並列的に比較することはできないが、業務でアプリ開発を行うにあたっては「必要な機能を網羅した、整備されたクラスシステム、言語体系を持っていること」「開発生産性を高めるコンポーネントが整備されていること」、HTML5をベースとしたWebアプリやハイブリッドアプリでは「個別のプラットフォームやデバイスに応じたチューニングやテストの容易性」「一般的なモバイルアプリと同等以上のユーザーエクスペリエンス(UX)を提供できる」といった点がポイントになってくるのではないかという議論が聞かれた。
次の節では、これらに加え、特に各社が強くアピールしたいと考えているポイントについて抜粋で掲載する。
各社ごとの特色
CodeZine:今回、主に「モバイルに対応した業務アプリ開発」という観点で、特に各フレームワークで強調しておきたい部分などがあれば聞かせてください。
SCSK:業務アプリの世界では、モバイルデバイスでデータの「入力」をどう効率化するかというのが課題です。Caedeでは、手書き対応やバーコードリーダなどへの対応といった形で、入力系の補助機能を強化しています。例えば、MetaMoJiの手書き入力アプリケーション「7notes」を、Caedeの入力インターフェースとして利用できるライブラリなども提供しています。今後、音声認識、モーションキャプチャ、画像認識にも対応し、ウェアラブルデバイスなど新しいデバイスも対応していくことで、真のクロスプラットフォームを引き継ぎ追及していきます。
エンバカデロ:業務システムのアーキテクチャとして、バックエンドシステムに接続するフロントエンドのアプリから、直接データベースを叩いて結果を表示するような、2層の作りを行っているケースもあると思います。エンバカデロのツールでは、こういうアプリケーションをモバイルに展開するにあたって、従来と同じコンポーネントベースで開発が行えるような仕組みを工夫しています。
例えば、データベースにアクセスする機能もコンポーネントとして用意されており、これをモバイルやPCのフロントエンドのアプリに配置したり、サーバー側のサービスアプリケーションに配置するなどして、どちらでも簡単にデータベースを利用できるようにしています。しかも、これらの通信には、RESTやJSONといった業界標準のプロトコルを使っているため、他のシステムとの連携も容易です。既存のシステムを段階的に、新しいアーキテクチャへ移行していくにあたって、こうした仕組みは利用価値があると思います。
キヤノンITS:業務システムの場合、モバイルデバイスだけをターゲットにして開発することは、あまり多くないと思います。社内システムのフロントエンドを、従来のWebクライアントだけでなく、モバイル向けにも対応させていくという形が一般的かと思いますが、開発にあたっては「View」に当たる部分を、それぞれのターゲットに向けて作り分けることになります。「Sencha Touch」では、プラットフォームや端末ごとに適切な画面を出し分けるプロファイル機能を提供しています。また、業務アプリでよく使われるリスト画面、フォーム画面などが挙げられますが、そのような画面パターンをアプリケーションテンプレートとして持っていますので、テンプレートをカスタマイズして開発することができます。
そのほか、バックエンドとの連携では、サーバサイドのコンポーネントをクライアントから直接呼び出すRPC機能が利用できます。Senchaが提供するRPC機能はExt.Directと呼ばれ、Ext.Directを利用することで、サーバサイドで実行される業務ロジックなどの既存資産を生かすことができます。例えば、バックエンドがEJBで作られているような場合には、それを直接呼び出すような仕組みもSenchaで構成できます。既存のシステムとのインテグレーションもスムーズに行えます。
あと、特にユーザーエクスペリエンス(UX)を考慮したものとしては、インタラクティブなグラフを提供する機能でしょうか。Sencha Touchでは、モバイルデバイスのタッチ機能を使って、グラフ表示をスムーズに変化させられるようなコンポーネントを標準で用意しています。
マジック:業務アプリをモバイルデバイスから使うようになったのはここ数年のことです。そのため、ユーザー側からどんなアプリケーションを作ってほしいという明確な要求仕様が出てきにくいという状況があります。そこで開発側に求められるのは、とりあえず動くものを作って見てもらい、そのフィードバックを即座に反映しながら、希望に合うものを作っていくというサイクルを迅速に回すことになってきます。
Magicは、先ほどもお話ししたように「リポジトリの設定」が開発作業のメインになるので、そうした修正が非常に簡単にできる点が強みになります。例えば「商品コードを一桁増やす」ような修正を、瞬時にサーバ側とクライアント側に反映させて、実際に動かせます。
さらに、データベース開発ツールとして発展してきた経緯から、トランザクション処理やロールバック処理、加えて負荷分散処理といった機能もMagicの仕組みの中に組み込まれています。「小さく作って、大きく育てていく」という環境への適用も問題ありません。
既存の基幹システムとの連携については、データ連携ツールの「Magic xpi」という製品を別途用意しています。これとMagicとの組み合わせで、基幹システムや、クラウドサービスのフロントエンドをモバイルに展開することも容易に行えるようになっています。
SCSK:Curlのお客様の中にも、まず「既存のシステム」ありきで、モバイル環境をそれに組み入れていきたいというケースは多いですね。SAPは、その中でも名前が挙がることが多いです。今後は、モバイルとEAIやESBのようなシステム連携が重要になってくるだろうと感じています。
キヤノンITS:基幹システム連携については、SenchaでもSAPと提携を進めています。業務システムへのモバイルの適用という観点では、こういう取り組みが、今後さらに重要になってくるでしょうね。