SHOEISHA iD

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

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

IoTをかじってみよう

IoTをかじってみよう(6)
~Node-RED for Bluemixによる開発とIoTアプリケーション開発の留意点

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

第2部 IoTアプリケーション開発の留意点

 これまでの連載でIoTアプリケーションの開発をかじってきましたが、ここではプログラミングによる機能の実装以外の注意点を見ておきます。パフォーマンスやキャパシティ、セキュリティです。

 機能は正しく動くけれど待ち時間が長すぎたり、少し動かすとデータがいっぱいになってしまったりしたらがっかりですね。また、自分の情報を知らない人に知られてしまうことは危険なので避けたいと思うでしょう。

 つまり、あなたは自分のIoTアプリケーションに対して、速く動いてほしい、データも必要な分はためてほしい、不必要な情報公開をしてほしくないという要件を持っていることになります。これらのIoTアプリが満たすべき要件で機能以外のものを、難しい言葉で非機能要件といいます。

 非機能要件の種類についてはさまざまな団体がそれぞれ定義をしており、パフォーマンスやキャパシティ、セキュリティ以外にもあるのですが、今回はIoTアプリで特に注意したい非機能要件であるこの3点について見ていきます。

パフォーマンス

 1台のmbedでIoTアプリケーションを開発していろいろな機能を試してみる場合は、パフォーマンスの問題はめったに発生しないでしょう。しかし、台数を増やして長い期間で動かそうとすると、データが増えてくるにつれて動きが遅くなってくることがあります。そういった場合、プログラム以外の部分に手を入れる必要が出てくることがあります。

 よくあるのは、データベースの対応です。お使いのデータベースのマニュアルで、テーブルのインデックスを作成する方法はぜひ確認してください。

キャパシティ

 同じように台数を増やして長い期間で動かそうとすると、キャパシティの問題も出てきます。センサーから受信したデータをため続けているとストレージの容量が足りなくなる可能性があります。クラウドで必要に応じて増やせるから大丈夫という場合でも、その分課金が増えてしまいます。

 第3回、第4回のサンプルプログラムのように、ある一定期間は時系列にデータをためる想定のIoTアプリケーションであれば、必要なデータをためられるだけのストレージが必要になります。一方で今回(第6回)のサンプルプログラムのようにリアルタイムに入ってくるデータを閾値監視するIoTアプリケーションであれば、古いデータはどんどん捨てても構わないでしょう。

 クラウドでもローカルでもデータをためるためにお金をかけてストレージの容量を増やすか、それともある一定期間で古いデータを削除するか、もしくはデータはためずにリアルタイムに届いた最新のデータだけを使うかといった検討をしてみてください。

セキュリティ

 IoTアプリケーションを載せたサーバーは、その性質上インターネットに接続します。サーバーをインターネット上で公開すると誰でもアクセスできるようになるので、自分専用のマイサーバーと思っていてもファイアウォールの設定などのセキュリティ設定をする必要があります。

 サーバーには、センサーで集めた情報をためることになるのですが、IoTアプリケーションで集めるセンサーのデータは、少量では意味が分からなくても、大量に集めると個人の情報を推測できる場合があるのです。

 分かりやすい例としては、GPSモジュールです。GPSモジュールは、現在位置をデータとして活用できるため地図情報と組み合わせるなどしてうまく使うと便利です。しかし、持ち歩くものにGPSモジュールをつけてその位置情報をサーバーに集めていると、持ち主の居場所が分かってしまったり、日中動いているならば自宅が留守であることが分かってしまう可能性もあります。

 このように趣味で自分のmbedのデータを集めている場合でもうっかり人に知られてしまうと困ることがありえるのです。

第2部のまとめ

 IoTアプリケーション開発の留意点として、プログラミングによる機能の実装以外に、非機能要件であるパフォーマンス、キャパシティ、セキュリティの観点に注意する必要があることを確認しました。

 この連載を読んでさらに自分のIoTアプリケーションを発展させていく際には、ぜひ非機能要件の観点を取り入れて見直してみてください。

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

  • X ポスト
  • このエントリーをはてなブックマークに追加
IoTをかじってみよう連載記事一覧

もっと読む

この記事の著者

谷口 督(日本アイ・ビー・エム株式会社)(タニグチ ススム)

2000年問題対応の時期にIT業界に入り、それ以来UNIX系のインフラ構築を担当。最近の関心事は、そろそろ出てきそうな画期的なテクノロジー探しや世の中が良くなるためのもの作りです。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

山崎 まゆみ(日本アイ・ビー・エム株式会社)(ヤマザキ マユミ)

人・技術・本が好きなITエンジニア。公共・金融機関のアプリケーション開発/インフラ構築経験を持つ。プロジェクト現場で日々奮闘中。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

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

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/9396 2016/05/12 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング