Japan
サイト内の現在位置を表示しています。
新たなサービスのスピーディな提供を可能にするモバイルアプリ高速開発
API、モバイルファースト時代に対応したNECのモバイルアプリの高速開発基盤・サービス提供の取り組みについて紹介します。モバイルアプリの高速開発基盤として、サーバサイドで培った知見をモバイル向けに最適化した「APIドリブン」開発環境を提供します。また、モバイルアプリ提供時に必要となるAPIとサービスの充実を行います。従来SoRで構築したビジネスのAPI化や、NECが培ってきたモバイル向けサービスのAPI化、そしてOpen Innovationの実現のため公開されている各種APIを連携させたアプリ開発を可能とすることで、時間とコストを節約しながら高度な金融サービスを生み出す、SoE時代の新開発プラットフォームを提供します。
1. はじめに
昨今、金融系のシステムでは最先端のテクノロジーを駆使したビジネスの創出や、同領域で開発を自動化・効率化する取り組みが行われています。
特にデジタル・テクノロジーの急速な進展に伴い、技術革新を金融業務に適用した新たな金融サービスがFinTech企業などからも生み出されており、金融機関とFinTech企業などのサービスを、API(Application Program Interface)で公開し、連携させた金融サービスの高度化が加速しています。今後は金融以外の他業種でもAPI連携でのサービス高度化や、金融と他業種とのAPI連携も進んでいくものと思われます。
このような状況のなか、アプリケーション開発は従来のスクラッチ開発からAPIを活用した開発へ、サービスを提供する端末はPCから個人が持ち歩いているモバイル端末へ、それぞれシフトが起こっています。
図1はガートナー社の発行したリサーチ「モバイル・アプリ開発のITマーケット・クロック:2015年」からの引用です。この図表(2015年9月)にもあるように、今後2年のうちに次期フェーズに移行となる技術として、
- (1)mBaaS(mobile Backend as a Service:モバイルアプリ開発のためのクラウドサービス)は標準的技術へと移行
- (2)MAM(Mobile Application Management:モバイルアプリの管理)、モバイルWeb適用プラットフォーム、HTML5は最盛期へと移行
同フェーズ2~5年以内ですと
- (3)RMAD(Rapid Mobile Application Development:モバイルアプリ高速開発)も最盛期へと移行
するとみられています。
2. モバイルアプリの高速開発基盤・サービス提供の概要
このようにAPI、モバイルファースト時代の開発においてNECでは主に
- (1)従来サーバサイドで培った高速開発技術のモバイル領域への展開
- (2)モバイルアプリ提供時に必要となるAPIとサービスの拡充
に取り組んでいます。(1)については第3章の開発プロセスと開発基盤(アーキテクチャ・ツール)で紹介します。(2)については第4章でAPIに関する機能及び提供サービスで紹介します。
3. 開発基盤
3.1 開発プロセス
NECでは、ユーザー要件が揺れやすい上流工程(要件定義・基本設計)にアジャイル開発を取り入れたハイブリッド開発プロセスにより、システムの早期立ち上げに貢献してきました1)。
このハイブリッド開発プロセスを発展させ、APIをベースにAPI Consumer側とAPI Provider側がそれぞれ独立して開発が可能な、「APIドリブン開発プロセス」を整備しています(図2)。
「APIドリブン開発プロセス」では、API Consumer側とAPI Provider側の開発を疎結合にすることで、進化の速いUI側と進化が緩やかなビジネスロジックを分離して開発することができ、ライフサイクルを意識した長期安定稼働が可能なシステム開発を実現します(図3)。
また、Consumer-Driven Contract*やmicro serviceなどの要素技術のエンタープライズシステムへの適用を見極め、強化を進めています。
3.2 モバイルアプリケーションアーキテクチャ
アプリケーションアーキテクチャに関しては、ウェブアプリの持つ開発生産性及び移植性と、ネイティブアプリの持つデバイス特有機能の、両方の活用が可能なハイブリッドアーキテクチャを採用しています(図4)。ハイブリッドアーキテクチャにより、変化による影響を局所化でき、Time To Marketの短縮や開発・保守コストの削減が可能となります。
ハイブリッドアーキテクチャ実現のためには、ウェブアプリとネイティブアプリのブリッジ機能などを提供する仕組みが必要となります。
これをNECでは、WebViewコンポーネントを拡張し、多数のモバイル案件で培った知見を凝集したセキュアブラウザで実現しています(図5)。セキュアブラウザにより、ウェブアプリからAPIを通じてデバイス独自機能(生体認証や内蔵デバイス連携)を活用できます。
大量生産が必要なウェブアプリについては、堅牢で高品質なアプリを短納期・高生産性で実現するために、フルスタックのフレームワークであるAngular2と、セキュアコーディングが可能な型付き言語TypeScriptを採用しています。また、Bootstrap(CSSフレームワーク)の活用により、マルチブラウザ・マルチデバイスにシングルソースで対応できるレスポンシブなアプリを容易に実現可能です。
従来はサーバサイドで実行されていたビジネスロジックが、モバイル上で実行される割合が高まってくることが想定されますが、金融分野でのモバイルアプリの安全・安心な活用拡大に向け、マルウェアや改ざんなどに対するコード難読化などの機能を強化しています。
3.3 RMAD(高速モバイルアプリ開発)ツール
モバイルアプリの領域は技術革新が早いため、従来のネイティブ開発ツールを使ったコーディングアプローチから、RMADツールを活用した開発が必要となります。NECでは、「リアルタイム開発デザイナー(WebアプリケーションをWYSIWIGベースのGUIでデザインすることで設計書とアプリケーションを自動生成)」により、いち早くRMADの概念を導入しました(図6)。豊富な実績と最新テクノロジーを活用した「リアルタイム開発デザイナー」を活用することで、業務アセットの塊であるAPIを活用し、顧客との接点となるUIを、実際に動くアプリケーションを通じて確認しながら、変化の激しいビジネス環境に素早く対応し、付加価値の高いモバイルアプリの早期実現が可能となります。
「リアルタイム開発デザイナー」の特徴を以下に示します。
- (1)OpenAPI Specificationを活用したAPIドリブンの開発を支援
RESTful APIについて、Linux Foundationが発表したOAI(Open API Initiative)がSwagger Specificationをベースに、OpenAPI Specification として標準化を進めています。
「リアルタイム開発デザイナー」では、OpenAPI 2.0 Specificationに従い定義されたAPIを取り込み、事前定義された画面レイアウトを元にUIを自動生成(スキャフォールディング)する機能や、既存のUIとAPIパラメータ、イベントをグラフィカルに関連づける機能を提供します。 - (2)モックデータを活用した実際に動くアプリで仕様の早期確認が可能
「リアルタイム開発デザイナー」では、画面遷移エディタと画面エディタを利用してHTML5をグラフィカルに活用したSPA(Single Page Application)の設計が可能です。SPAのUIを効率的に設計するために、Bootstrapによるレスポンシブウェブデザインや、Angular2のWebコンポーネント機能にも対応しています。また、画面の入出力データをExcel形式のモックデータとして用意することで、動かしながらアプリの仕様確認が可能となります。 - (3)ジェネレータによる工程移行時のコミュニケーションロスの排除、設計書とコードの乖離防止、属人性の排除
「リアルタイム開発デザイナー」で仕様確認後は、図7に示すようにロールアウト機能(パターンジェネレータ)によりSPAの自動生成が可能です。自動生成コードは、MVVM(Model、View、ViewModel)アーキテクチャ及びFluxアーキテクチャ(一方向のデータフローを採用したPublish/Subscribe型のアプリケーションアーキテクチャ)と、NECの豊富なSI実績をベースに、関心ごとを分離した保守性の高いアーキテクチャを実現しています。これにより、複雑になりがちなSPAの属人性を排除し、均一化された品質のアプリケーション開発を実現することができます。また、納品や保守ドキュメント用に、Excel形式での機能設計書の生成も可能です。
4. MADP(モバイルアプリ開発プラットフォーム)
モバイルアプリケーションの開発では、開発プロセス・開発ツール以外に、開発で必要となる基本的な共通部品やサービスをAPIで提供しスピーディな提供が求められます。
4.1 モバイルアプリ共通API
モバイルアプリ開発時に必要となる共通の基本機能をAPIで提供し、開発を効率化します。
- (1)SDEスマートデバイスAPI
スマートデバイスに特有の機能を最大限に利用するために必要な機能を提供します。主な4つの機能を以下に説明します。
- 1)セキュリティを強化する機能
DBの暗号化、ファイル暗号化/復号化、アプリ間連携、アプリ間認証連携、オフライン認証、FIDO生体認証との連携 - 2)OS・デバイスと連携する機能
端末状況取得、電波状況取得、位置情報取得、カメラ操作、プリンタ操作、バーコードリーダーやQRコードリーダ操作、RFIDリーダ操作、ビーコン検知、NFC検知、センサー連携、ロボット連携、画像認証など - 3)クラウドと連携する機能
ログ出力、ファイルアップロード、データ同期、Push通知、サーバ認証連携、端末状況の連携(端末状況取得、電波状況取得、位置情報取得、端末設定)、端末のリモートコントロール、ファイルアップロードなど - 4)ユーザーインタフェースの強化
電子サイン、スマートUI(カードデック、スライドカード、メータ数値入力支援、バルーンヘルプ、ファイル一覧/選択)など
- 1)
- (2)mBaaS(モバイルBaaS)
モバイル活用に向けた各種サーバサイドサービスを提供します。
- 1)FIDO生体認証
OAuth2.0やOpenID Connectなどといった従来認証に加え、FIDO生体認証サービスを提供します。 - 2)APIゲートウェイ
上記FIDO生体認証と連携したAPIゲートウェイサービスを提供します。 - 3)各種バックサービス
Push通知サービスやテキスト/ビデオチャット、音声やOCRによるキーボードレスの入力サービスなどのAPI提供を予定しています。
- 1)
NECは、これらの開発プロセス・開発基盤、各種API・サービスを集約し、SoE領域でのデジタルビジネスサービスの開発をサポートするプラットフォーム「WebOrchestra(仮称)」を提供予定です(図8)。
5. むすび
本稿では、モバイルアプリの開発基盤について紹介しました。
モバイルアプリ開発基盤の提供により、デジタルビジネスが加速していくなかでお客様のビジネスの新たな展開に、スピーディな対応を可能とするとともに、オープンなAPI活用による企業を超えたエコシステムの構築をサポートしていきます。
今後も最新テクノロジーを取り入れ、モバイルアプリケーション開発を継続的に強化していきます。
- *Androidは、Google Inc.の商標または登録商標です。
- *Windows及びExcelは、米国Microsoft Corporationの米国及びその他の国における登録商標です。
- *Linuxは、Linus Torvaldsの米国及びその他の国における登録商標です。
- *OpenIDは、米OpenID Foundationの登録商標です。
- *FIDOは、FIDO Allianceの商標です。
- *その他、記載されている製品名などの固有名詞は、各社の商標または登録商標です。
参考文献
執筆者プロフィール
金融システム開発本部
システム主幹
ソフトウェアエンジニアリング本部
シニアエキスパート
ソフトウェアエンジニアリング本部
エキスパート