マイクロテクノロジーでは、組み込み開発の技術力を生かしてIoT分野の開発にも力を入れています。CUMoNoSUはその1つで、IoTを実現するためのプラットフォームサービスです。もう少し噛み砕くと、デバイスからデータを集めて、特定の処理を行い、ユーザーが欲しい情報を画面上で見えるようにするための一連のシステムを指します。
例えば、CUMoNoSUを機械の稼働状況を把握するための監視システムとして活用いただいています。複数の機械の稼働データをCUMoNoSUのクラウド上にアップすることで、現場から離れた場所でも稼働状況をリアルタイムに確認できます。
今回紹介するプロジェクトは、暑さ指数をクラウド上で確認できるようにすることでした。顧客の希望を実現するために、CUMoNoSU上で動作する本格的なカスタムWebアプリを開発する案件で、会社としても初の試みでした。
今回は、「暑さ指数のクラウドによる可視化プロジェクト」に携わった、M.Y.さんとM.K.さんに開発プロジェクトの話を聞きました。
M.K.
工学科情報工学部卒業
2007年入社
M.Y.
商学部会計学科卒業
2005年入社
EPISODE 01
―「暑さ指数を確認できるアプリケーション」は、もともと顧客が開発した製品とのことですが、どんなきっかけでマイクロテクノロジーが開発に参加することになったのかを教えてください。
M.Y.
マイクロテクノロジーにお声がけいただいたのは、ハードの開発実績が豊富で、IoTにおけるハード(デバイス)の接続についてもノウハウを持っていることに信頼いただけたからだと思います。
今回のプロジェクトは、顧客がサービスとして提供している「暑さ指数を確認できるアプリケーション」のIoT化がオーダーでした。従来製品は、暑さ指数を検知するデバイスをネットワークに接続する仕組みがなく、現地に行かないと状況を確認できないという課題がありました。
M.K.
暑さ指数とは、検知した温度や湿度などの情報を特定の処理方法を用いて算出したものです。顧客のほうでは、環境情報を検知するデバイスを開発していました。サービスの利便性を高めるため、どこにいても現地の暑さ指数を確認できるよう、マイクロテクノロジーが主導してデバイスのIoT化に取り組むこととなりました。
EPISODE 02
―プロジェクトはどのように進行していきましたか?
M.Y.
プロジェクトの進行は、デバイス側とクラウド側の大きく2つの軸に分かれます。もう少し詳しく言うと、デバイス側はデバイスで検知した温度や湿度の情報をプラットフォームにあげる役割、クラウド側はプラットフォームにあがったデータを画面PCやスマホ上で見える化する役割です。デバイス側はM.K.さん、クラウド側は私が開発を担当しました。
M.K.
デバイス側は、ハード(デバイス)とクラウドをつなぐためのプログラムの構築を担当します。デバイスで検知したデータから「暑さ指数」を導くための特定の処理を担うエッジ・サーバー、ゲートウェイの構築も対応しました。
今回のプロジェクトでは、CUMoNoSUをカスタマイズし、顧客の要望をできる限り実現することが求められたので、顧客との対話を重視して開発に臨みました。エッジ側のサーバーに接続するためのインターフェースの選定や調整、温度や湿度などの検知データの処理方法などについて、品質とコストのバランスを鑑みつつ、ヒアリングと提案を繰り返しながら進めていきました。
M.Y.
クラウド側の主な開発領域は、エッジ・サーバー、ゲートウェイを経由してあげられたデータを画面上で可視化するためのプログラムの構築です。基本設計のフェーズで画面とデータ構造を設計し、その設計をベースに開発を進めていきます。
M.K.
開発領域としては、デバイス側とクラウド側で分かれていますが、最終的には1つのシステムとして機能させるため、接続する部分についてはクラウド側のM.Yさんと密に連携を取りました。ゲートウェイからクラウドへの接続部分で問題が発生したとき、私だけでは対処できないこともあり、知見のあるM.YTさんに相談して問題を解決していきました
EPISODE 03
―プロジェクトを進める上でどんなことに苦労しましたか?
M.Y.
CUMoNoSUの初の本格的なカスタムWebアプリが必要な案件ということで、顧客の要望をどこまで実現できるのか不安がありました。要望の例を挙げるなら、デバイスで取得したデータを1分以内に画面に表示させたい、といったものです。デバイスはもともと顧客が開発したものであり、かつCUMoNoSUに接続した場合の反応が開発前では把握が難しく、実現性についてその場で即答できないケースが多かったです。
M.K.
1分以内の画面表示については、デバイス側のプログラムも調整が必要となるため、M.Yさんとどうすれば実現できるのか悩んだ記憶があります。そして、デバイス側も同じく、要望の実現性について不安があり、苦労もしました。実現性の判断を誤ったまま開発してしまうと、各所で手戻りが発生するため、プレッシャーが大きかったです。
M.Y.
ユーザーの使いやすさを重視した開発スキルが必要だった点も、苦労したポイントでした。私がこれまで携わっていた生産管理システムのような業務系のシステム開発よりも、もっと高いレベルでの使いやすさが求められました。先方から要望としてもらうときは、「かっこいい画面にしたい」など抽象度が高いケースも多く、アウトプットについて顧客との認識のすり合わせにも時間を多く使いました。
M.K.
実現が大変だった作業は、デバイスとエッジ・サーバー、ゲートウェイとクラウドを全てつなげて異常なく機能することを確認するテストの工程です。顧客の要望により、1分間あたりに1万台近くのデバイスと接続するテストが必要となりました。1万台近い数のデバイスと接続してテストを実施すること自体、システム的に難しさがあり、さらにこのテストで起こった不具合について、デバイスからクラウドまでのどこに原因があるのかを特定することも困難でした。
EPISODE 04
―先程挙がった苦労はどのように解決しましたか?
M.Y.
実現性の担保が難しい要望への対応については、基本設計の時点で、ノウハウのある社員に相談して一つひとつ対処していきました。曖昧な状態で開発に進んでしまわぬよう、本当に実現できるのか、実現できるとしたどうアプローチするのか、を明確にすることを大事にしました。プロジェクトメンバーだけでは、知識や経験、スキルが不足していたため、プロジェクトを進める上で、社内のノウハウが不可欠だったと思います。
M.K.
私もプロジェクト開始当初はスキル面での不安があり、ノウハウのあるチームメンバーや先輩にアドバイスをもらいつつ、自分でも情報収集とインプットすることで自信がついてきました。プロジェクトを通して、具体的な知識が身に付いたことに加え、分からないことに対しての乗り越え方も学べたと思います。
1万台の同時テストの問題も、アプリケーション製造・生産管理システムの開発・AWSを利用したサーバーの構築などを担うプラットフォーム開発部の有識者に異常発生時の考え方や対処などを教えてもらい、無事に解決できました
M.Y.
ユーザーにとって使いやすい画面の開発については、社内のノウハウ収集に加えて、プロトタイプを作り、こまめに顧客に確認いただきながら進めていきました。要望に合わせて作った試作を一緒に確認していくことで、顧客のほうでも曖昧だったイメージの解像度が高まり、齟齬が出にくくなりました。さらに、要望についての優先度を適切に設定できるようになりました。
M.K.
プロジェクト全体で見ると、デバイス側とクラウド側で別々に開発を進めてはいましたが、テスト工程で不具合が出たときには、お互い得意領域の経験・知識を基に検証することで、原因箇所が発見できました。問題発生時以外でも、デバイス側とクラウド側の双方の観点でより良い仕組みを意見し、それぞれの開発に生かせたので、今回のプロジェクトを無事に成功できたのだと思います。
MESSAGE
―マイクロテクノロジーに興味を持った方に向けてメッセージをお願いします。
M.Y.
私のように文系出身で開発経験がない人も入社していますし、一から学べる環境もあるので、興味があればぜひ飛び込んできてほしいです。もちろん開発経験がある方も歓迎です。特にWebアプリ開発のスキルがあると、即戦力としてご活躍いただけると思います。今回のプロジェクトで言えば、コーディング工程以降の開発業務は、Webアプリ開発スキルがあれば対応できます。
M.K.
新卒で入社いただく場合は、新入社員研修で基本的な開発について学ぶこととなるので、その中で自分が携わりたい業務を見つけられます。マイクロテクノロジーでは、組み込み開発のほかにも、Webアプリケーションやサーバーサイド、製品開発、など、多岐にわたる開発を担っており、興味のある分野で技術を磨いていって欲しいです。
開発経験がある方の場合は、LinuxOS上での開発経験をお持ちだと即戦力で活躍いただけます。使用する言語は、C++、シェルスクリプトがメインとなっており、案件によりJava、Pythonを使用します。今回のプロジェクトでは、LinuxOS上でJava言語でプログラム開発し動作させました。