SHOEISHA iD

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

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

特集記事(AD)

今どきの大量&超高速プッシュ通知をかなえる! インフラ環境を意識せずに実装可能な「BoltzEngine」の技術とは?

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

 更新情報やセール情報をリアルタイムに知らせることができるプッシュ通知は、スマホアプリに欠かせない機能の1つ。しかし、ユーザーを拡大し配信数が増えるほど、アプリの安定性やコスト面で課題が出てくる。そんなプッシュ通知の開発の課題を解決するソリューションが、フェンリルの開発した「BoltzEngine(ボルツエンジン)」だ。同エンジンは生放送番組の公式アプリ向けに開発されたシステムを汎用化したもの。現在はコンシューマ向けだけでなく、鉄道の乗務員が運行情報を確認するために使われるなど、ビジネスシーンでも活用が進んでいる。配信性能だけでなく、実装面やコスト面からもあらゆるアプリ開発のシーンにフィットするBoltzEngineについて、フェンリル株式会社の事業本部 アプリケーション共同開発部 課長 伊藤伸裕氏、事業本部 営業部 リレーション営業課 課長 玉川貴大氏に話をうかがった。

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

プッシュ通知はビジネスシーンでも活用が始まっている

 ユーザーがアプリやWebブラウザから離れていても、リアルタイムで情報を届けるための仕組み、プッシュ通知。スマホユーザー向けのサービスとして発展し、特にiOS10がリリースされて以降は、GIFアニメーションや動画、音楽などのコンテンツ付きのリッチプッシュが増加。マーケティングに活用される場面も増えている。もはやスマホアプリにおいて、プッシュ通知は欠かせない機能となっている。

 プッシュ通知というと、B2Cのイメージが強いが、「最近はビジネスシーンでの活用が増えてきている」と伊藤氏は語る。その一例として伊藤氏が挙げたのが、鉄道乗務員向けのアプリにおける活用例だ。路線の中にはトンネルなど電波の弱いところもある。プッシュ通知ならいったん電波が途切れても、再度つながった時点ですぐに通知が届き、最新情報を逃すことがないため、利用されているという。

フェンリル株式会社 事業本部 アプリケーション共同開発部 課長 伊藤伸裕氏
フェンリル株式会社 事業本部 アプリケーション共同開発部 課長 伊藤伸裕氏

 またもう1つの動向として、Webでもプッシュ通知が増えてきているという。「ニュースサイトで活用しているところも増えていますが、今後、いろいろなWebサイトはもちろん、Webシステムでの活用も広がると考えられる」と伊藤氏。玉川氏も「IaaSやSaaSなどの利用が増えるのに伴い、承認フローなど業務のお知らせなどに使われるケースが今後、増えていくと思います」と語る。

事業本部 営業部 リレーション営業課 課長 玉川貴大氏
フェンリル株式会社 事業本部 営業部 リレーション営業課 課長 玉川貴大氏

プッシュ通知の開発における課題

 このように活用が広がるプッシュ通知だが、開発するには課題があるという。

 「独自に実装する場合、問題になるのがエラー処理。エラーが発生した場合、成功したものを除いて再送したり、指数バックオフでリトライ間隔を延ばしていったりするのですが、さまざまなケースを考慮して実装するのに手間がかかり、実際には起こりづらいのでテストもしづらいです。たとえ実装ができても、サービス拡張によりプッシュ通知の件数が増えると、性能が足りなくなってしまうこともありますからね」(伊藤氏)

 ASPサービスを使うといった手もあるが、「セキュリティに厳格な企業のアプリに実装する場合、使い勝手が悪い」と伊藤氏。というのも顧客のデータベースと連携してセグメントを切ろうとすると、APSサービスの機能とDBの整合性を合わせるために、余計な通信が必要になることがあるからだ。もちろんそれらを考慮したサービスも登場しているが、「基本的に、詳細なデータをお客さま自身が持っている場合は難しくなる」と伊藤氏は指摘する。

 ASPサービスには、こういった柔軟性の問題だけではなく、コスト面でも課題がある。従量課金制を採用しているものがほとんどなので、ユーザー数が増えていくに従い、課金額が上がってしまうからだ。「スピード面でも費用面でもASPサービスだとお客さまのニーズを満たすのは難しいのでは」と玉川氏も指摘する。

「BoltzEngine」が柔軟な実装を可能にする

 このような、ASPサービスが持つ課題を解消するソリューションが、フェンリルが提供するプッシュ通知エンジン「BoltzEngine」である。同エンジンの元となったのは、生放送連動アプリ向けにつくられたプッシュ通知である。

 「決まった時間に大量のユーザーに通知を送るという厳しい条件がありました。ASPサービスや既成のライブラリではその条件を満たすことができず、新たに開発したのです。BoltzEngineはそのプッシュ通知をより多くのお客さまに使ってもらえるよう、汎用性を高めたものです」(伊藤氏)

 生放送連動アプリ向けのプッシュ通知の開発が始まったのは2013年。当時はまだめずらしいGo言語を採用した。採用理由について、「並列処理に長けている言語だったので」と伊藤氏。製品化したのは2015年。より幅広いエンジニアに使ってもらえるよう、gRPCやREST APIのインターフェイスも用意。さまざまなアプリ、サイトで利用されるなど、十分な実績を持つ。

1秒間に3.5万通、 国内トップクラスの高速配信性能

 BoltzEngineの第一の特長は国内トップクラスの配信性能を有していること。「1秒間に3.5万通、1分間だと250万通送ることができます。また複数台サーバーを用意すると、さらに高速配信が可能になり、これまでに1秒間で9万通を実現した事例もあります。もちろん、BoltzEngineの手前のシステムも含めて全てを最適化するという条件付きではありますが」と伊藤氏は配信性能の高さを強調する。

 第二にオンプレミスにもクラウドにも対応しており、インフラを意識しないこと。また自社のセキュリティポリシーに則した運用が容易にできるといったメリットもある。

 第三は開発を支援するための仕組みが充実していること。BoltzEngineはインストーラが用意されているので、セットアップも簡単。少しの設定を加えるだけで、本格的なプッシュ通知システムが構築できる。またgRPCのAPIを使えば、外部アプリケーションからBoltzEngineにリクエストを送ることもできる。

 BoltzEngineはGo言語で開発されているが、gRPCであれば定義ファイルを変換することでJava、C#、PHPなどのメジャーな言語から呼び出せるほか、CSVファイルを読み込ませて送ることもできる。メール配信をプッシュ通知に変えることも容易に可能だ。

配信対象も多様なので、ニーズに対応できる
配信対象も多様なので、さまざまなニーズに対応できる

「BoltzMessenger」で開発工数を削減

 さらに、開発工数の削減を支援してくれる機能もある。BoltzEngineに同梱された「BoltzMessenger」という標準の管理ツールだ。「アプリ向けのプッシュ通知をつくりたいが、ユーザー管理をどうすればよいかわからない人にとって非常に便利に使えるツールとなっています」と伊藤氏。BoltzMessengerはユーザー管理や配信管理のためのシステムに加え、プッシュ通知の受信機能が実装されたスマホアプリやWebサイトのサンプルをセットで提供しているからだ。

BoltzMessenger
BoltzMessengerが提供する管理サイトとリファレンスアプリ・サイト

 「サンプルアプリ・サイトは自由にカスタマイズできます。また記述されたソースコードを流用すれば、既存のアプリやサイトに通知受信機能をすばやく組み込むこともできます」(伊藤氏)

 CSVに送り込む、REST APIからgRPCに変換するなどの周辺ツールについてもすべてソースコードを公開している。「ソースコードを見ればどういう風に使えばよいのか、調べることができるので、プッシュ通知を開発するエンジニアにとって使いやすいものになっているはず」と伊藤氏。

 さらにレファレンスやドキュメントも充実。サポートサイトを見れば、プッシュ通知システムの作り方など、これまで問い合わせが多かったものについて、丁寧に記載されているのだ。

 このような特長を持つBoltzEngineは、

  • 大量のユーザーに通知を送りたい
  • セキュリティポリシーが厳格なアプリへの実装
  • 今はオンプレミスだが将来的にはクラウドに移行する予定がある

 といったシーンでより便利に活用できるという。

クラウド移行の自由
クラウド移行が簡単かつ自由

富士通の国産クラウド「FUJITSU Cloud Service for OSS」との組み合わせで、コストを最小限に

 BoltzEngineでは主に「Lightningプラン」と「Thunderboltプラン」の2つの価格プランを用意している。Lightningプランは利用アプリ数が1本となっており、税別80万円。「Android版とiOS版といったOSの違いはカウントされず、同じアプリなら1本となります」(玉川氏)

 複数のアプリに利用したい場合は、Thunderboltプランとなり、価格は360万円~だ(2018年11月時点)。いずれのプランにおいても、Webプッシュの利用は無制限となっているのもBoltzEngineの魅力だろう。

 BoltzEngineは10月4日より、富士通のデジタルビジネス向けのマーケットプレイス「FUJITSU MetaArc Marketplace」でも販売を開始している。なぜ、富士通とのコラボレーションに踏み切ったのか。もちろんBoltzEngineの普及促進という側面もあるが、富士通のクラウド「FUJITSU Cloud Service for OSS」が持つ、ネットワークトラフィックのデータ転送量が無償であるという特長が、プッシュ通知のソリューションと親和性が高いと考えたからだという。

 また富士通の開発者コミュニティ「Fujitsu Tech Talk」の存在も大きい。同コミュニティには技術者だけではなく、事業開発の責任者も参加する。「忌憚ない意見を交換できる場です。より良いものを開発していくためのヒントをたくさんもらえるのがうれしいですね」(伊藤氏)

 これからも安定したプッシュ通知を送れるよう、「内部をブラッシュアップしていき、いずれは社会基盤の中に入っていけるようなシステムにしたい」と伊藤氏は意気込みを語る。そのためにも「Webプッシュをもっと使ってほしい」と伊藤氏。業務用のWebアプリにプッシュ通知を組み込むことで、より仕事がしやすくなったり、迅速なコミュニケーションが可能になったりするからだ。

 今なら、FUJITSU MetaArc Marketplaceで無料トライアルが使える。またFUJITSU Cloud Service for OSSのトライアルも一緒に申し込むことができる。

 「この機会にぜひ、BoltzEngineを試してほしいですね」(玉川氏)

お問い合わせ

 フェンリル株式会社

 富士通株式会社

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

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

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

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

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/11204 2019/07/11 19:56

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング