CodeIQ MAGAZINECodeIQ MAGAZINE

IoTをリードするオージス総研「MessagePub+」開発者が求めるのは、思考停止しないエンジニア

2017.12.22 Category:インタビュー Tag: , , , ,

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

IoTソリューションで強みを発揮するオージス総研。そのIoTプラットフォームのメッセージング機能で重要な役割を果たすのが「MessagePub+」というプログラムだ。その開発者、近藤貴俊氏に、オージス総研のIoTソリューションの強み、今後求められる人材像などについて聞いた。 by 馬場美由紀 (CodeIQ中の人)

バーチャルパワープラント実証事業で重要な機能を担う

オージス総研は、大阪ガスが販売する「エネファーム」のIoT化や、工場でのIoT実証実験などを支援した数多くの実績を持つ企業。必要なツールやソフトウェア・ハードウェア、およびそれらの利用ノウハウをまとめ、IoTプラットフォームとして提供している。

そのユーザー事例の一つに、NTTスマイルエナジーが電力会社と共に進めるバーチャルパワープラント(VPP)の実証事業がある。VPPとは、家庭の蓄電池を含む多数の小規模な発電設備や、電力の需要抑制システムを一つの発電所(仮想発電所)のようにまとめて制御を行うこと。

従来、電力の需給調整は発電所の稼動・停止など供給側で行うものだったが、VPPでは電力供給が不足ぎみのときは、蓄電池から放電を行うなど需要側をコントロールすることで需給の調整を行うことができる。

そのためには、まず省電力ピークシフトに対応してくれるかどうかを、センター側から一斉同報で蓄電池側にリクエストする必要がある。

蓄電池の上にはソフトウェアが搭載されており、蓄電状態に応じて、そのリクエストを受け入れるかどうかを、これまた一斉同報でレスポンスする。どのぐらいの装置が対応できるかがわかることで、センター側は電力供給量を最適化することができる。

こうしたメッセージのやりとりを遅延なく安全に行うにあたって重要な役割を果たしているのが、オージス総研が独自に開発したIoTメッセージングプラットフォーム「MessagePub+」だ。

◆IoTメッセージングプラットフォーム「MessagePub+」

MessagePub+はメッセージの配信を司るbrokerと、brokerにつながるクライアントから構成されており、データの収集や、収集したデータに基づく制御を行うシステムを簡単に構築することができる。

IoTやWebで標準的なプロトコル、MQTT、HTTP(REST)、WebSocketに対応。TLSによる暗号化通信をサポートするなどしてセキュリティを担保する一方、ラベル機能により複雑なデータの集配信を簡便化でき、さらにクラウド環境へもオンプレミス環境への導入が可能というメリットもある。

中でも高いレスポンス性とスケーラビリティは大きな特徴だ。

「1台のbrokerインスタンスで、数万~数十万のセッションを処理することができます。さらに複数台のbrokerインスタンスでクラスタを構成し、スケールアウトさせることも可能です。1秒に1回、1Kbytesのデータをやりとりするという負荷をかけた状況での応答時間はわずか数ミリ秒(※AWSの同一VPC内で計測)。今回の実証事業でもこのスピードが評価されて採用されたという経緯があります」

と言うのは、MessagePub+を開発したオージス総研IoTセンターの近藤貴俊氏だ。

株式会社オージス総研 技術部 IoTセンター 近藤貴俊氏

「IoTソリューションは各社が提供するようになりましたが、当社のソリューションは、メッセージ通信をend to endでの到達保証と、高い応答性能を両立しているところが、他にはない訴求ポイントになっています」

C++のゼロオーバーヘッド原則が、レスポンス性能を高める

MessagePub+のレスポンス性能が高いのは、そもそもこれがC++によって書かれたプログラムであることも理由の一つだ。近藤氏は、2007年からISO C++標準化委員会にエキスパートとして参画するなど、C++について言語仕様レベルから実装に至るまで幅広く精通したエンジニアだ。

「C++は昔からハードウェアの性能を引き出すには良い言語とされています。しかも絶えず進化し続けている言語です。昔のC++しか知らない人が、今のC++のコードを見たら、今っぽい言語だなと驚くと思います。

特に私たちは2014年にリリースされたC++14をメインに使っています。国内では、残念ながらまだ使用例がそれほど多くないのですが、汎用的・抽象的にコードを記述しながらも、あたかも専用に書いたごとくスピードが出る、という特徴を持っています」

C++の言語開発にあたっての哲学の一つに、「利用しない機能についてはオーバーヘッドが生じないようにする」という「ゼロオーバーヘッドの原則」があるが、C++14はその忠実な継承バージョンだ。

「クライアントの数が多くなるとサーバのレスポンス性能が急激に劣化する”C10K問題(クライアント1万台問題)”についても、非同期通信モデルに基づくBoost.Asioというライブラリを使うことで解決しています。さらに、マルチコアCPUの性能を有効に引き出す工夫も行っています」

上記工夫を行っても、1台のbrokerには性能の限界がある。そこで、brokerの台数を増やすことで応答スピードを維持できるようにスケールアウトする仕組みも搭載している。

OSSへのコミット、要素技術・モデリング手法のノウハウ蓄積に強み

先に述べたように、近藤氏はC++ライブラリのコミッタとして活動するなど、OSSへの関わりが深い。

2014年からはオープンソースソフトウェア「msgpack-c」のコミッタとしても活躍している。msgpack-cは、複雑な構造の情報を効率的かつコンパクトに表現できるデータフォーマット「MessagePack」を扱うライブラリのC/C++版のこと。

コンパクトに表現できるということは、情報をより多く、よりきめ細かく送れることにつながるため、同社のIoTソリューション開発にも役立っている。

「OSSへの貢献は私自身の趣味の一つですが、同時に業務として関わることも会社に認められています。OSSとの関わりを通して私自身がエンジニアとして大きく成長できたし、結果として仕事にもプラスになっています」

MessagePub+自体はOSSではないが、契約企業にはソースコードを全部公開しており、改変も自由だ。オージス総研自体がオープン・イノベーションの風土をもつ企業なのだ。

「社内にはメッセージング技術などの要素技術はもとより、データ分析、機械学習・深層学習、セキュリティのプロがいますし、さらに開発手法のモデリング技術についても分厚い蓄積があります。

組織としても、R&D開発を担うIoTセンターのほか、顧客のビジネスに直結したIoT推進プロジェクト部があり、両者が連携して力を発揮できるところが当社の強みだと思います」

思考を止めず、どこまでもバグを追究するエンジニア

IoTソリューションをさらに強化するために、オージス総研では現在エンジニアの採用を拡大している。

採用面接にも同席することが多い近藤氏に、IoTセンターが求める人材像を語ってもらった。前職での経験や年数以上に、近藤氏が重視するのはエンジニアの基本的な姿勢だ。

「従来は、オブジェクト指向開発を前面に押し出してきましたが、現在それは当たり前の技術となっています。現在ではこれに加え、ジェネリック・プログラミング、関数型プログラミングなど、問題に応じて適切な選択、組み合わせが重要になってきています。

プログラミング言語をとっても、本来、プログラミング言語は寿命が長いにも関わらず、SwiftやGoなど新しい言語も次々に生まれている。それはなぜかをぜひ考えてほしい。いまの普通がこれから先も普通であり続けることはない。現在の技術に留まって思考停止してしまうことは、エンジニアが最も避けなければならないことです」

システムが動かなくなったとき、どこまでもその原因を突き詰める“しつこさ”も不可欠だ。

「昨日までは動いていた、何も変えていないのに、今日は動かない。エンジニアであるなら、なぜだかわからないと思考停止するのではなく、今まで動いていたのはたまたまであって、今日のエラーは根本的な問題が現れた状態だと考えるべきなのです。そう考えて原因をどこまでも追いかける姿勢が欠かせません」

近藤氏なら、そんなときは呼び出されているライブラリのソースコードを追いかけ、場合によってはライブラリの作者に問い合わせみる。それでも解決しない場合は、TCP/IPのパケットを分析することもある。自分でもデバッグ大好きというだけあって、デバッグは執拗なまでに徹底的に解析する。

「その結果、実は原因はコンパイラのバグだったなんてこともありました。いかに天才のようなプログラマが書いたコンパイラだって、バグはありますからね」

2009年に自腹を切って米国で開かれていたISO標準化委員会に出席したとき、C++の開発者ビャーネ・ストラウストラップ博士と会ったときのエピソードを、近藤氏はこう語る。

「当時私は、彼の『ストラウストラップのプログラミング入門』という書籍の日本語訳の査読を努めていたんですが、そのことを話したらすごく喜んでくれました。世界のトップクラスのプログラマも、けっして雲の上の存在ではなく、そんなに遠いところにいるわけではない。自分たちも同じプログラマ。英語ができなくてもコードで会話できる存在だと、そのとき思いました」

同じ技術を愛する仲間、コミュニティの一員として迎えられたことは、その後の近藤氏のエンジニアとしての成長の大きな原動力になった。

そんな体験を若いエンジニアに伝え、そのモチベーションを引き上げる役割を、今、近藤氏はオージス総研で果たしている。

(執筆:広重隆樹 撮影:刑部友康)

【PR】オージス総研 エンジニア求人情報

オージス総研が現在募集中のエンジニア求人情報はこちらからご覧ください。

技術部

ソリューション開発本部

プラットフォームサービス本部

サービス事業本部

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

■関連記事

1000万円超の高年収も!ソフトウェアエンジニアを正当評価するエクスモーションが採用強化_... 顧客の開発現場に入り込み、顧客と共にソフトウェア品質を改善する ハイブリッドやEV、さらにはADAS(高度運転支援)や自動運転などを実現するためには、車載システムのさらなる高度化は必須だ。 エクスモーションは自動車・ロボットやIoTなどにおけるソフトウェア・システムの専門集団として、開発現場の課...
Udemy人気講師、吉﨑亮介氏・堅田洋資氏が語る機械学習とデータサイエンスの最適な学習法_... AI・データサイエンスへのニーズを終わらせないためには人材育成が必須 ――お二人は機械学習やデータサイエンスという“最先端”の技術をUdemyで教えています。そもそも今これらの技術を、一般のエンジニアやビジネスパーソンが学ぶことの意義はなんだと思いますか。 堅田:ビッグデータ解析や人工知能がビジ...
「Sansan」と「Eight」、事業の拡大スピードを加速させる開発技術と体制を聞いてきた!_... SansanとEight。事業の拡大スピードに対応するためScrum導入 成長を続けるクラウド名刺管理サービスのSansan。そのサービスを支えるエンジニアの一人、本山祐希氏は法人向けの名刺管理サービスを提供するSansan事業部でプロダクトマネジャーを務める。 6年前にSIerから転職して来て...
授業中にLINEチャットで教え合う自由教室「Mitchy」に男泣き!_... 「LINE BOT AWARDS」学生部門グランプリ「Mitcthy」チームに突撃! ※本企画はLINE株式会社の提供でお送りします。 「Mitcthy」チームと語り足りない2時間談義 CodeIQ馬場です(略してババQとか、BBQ)。 今回、若狭氏と男泣き紹介するのは、「LIN...
ハンディキャップを持つ人をLINE Beaconとchatbotでサポートする“アンドハンド”に男泣... 「LINE BOT AWARDS」グランプリのアンドハンドチームに突撃取材! ※本企画はLINE株式会社の提供でお送りします。 「大日本印刷」「東京メトロ」「LINE」と連携して事業化へ CodeIQ馬場です(略してババQとか、BBQ)。 前回の「LINE BOT AWARDSの...
VRエキスパートたちが語った、非ゲーム業界のVRテクノロジーとビジネスの可能性は?_... VRエキスパートたちが語る、ビジネスの現状と未来 ※本企画は株式会社Psychic VR Labの提供でお送りします。 都内では常設や期間限定でのVR体験施設が昨年から、続々オープンしています。 そのせいもあり「VR=ゲーム」のイメージが強いですが、VRは非ゲーム分野でも広がっています。ゲーム...

今週のPickUPレポート

新着記事

週間ランキング

CodeIQとは

CodeIQ(コードアイキュー)とは、自分の実力を知りたいITエンジニア向けの、実務スキル評価サービスです。

CodeIQご利用にあたって
関連サイト
codeiq

リクルートグループサイトへ