Web開発者はモノのインターネットについて何を知る必要がありますか?

公開: 2017-10-30

Web開発は、インターネット時代の初めに登場しました。インターネット時代の初めに、より高速で強力なコンピューターが電話回線を介して相互に通信できるようになりました。

インターネットがより洗練されるにつれて、 Web開発は、より技術的かつ専門的になりました。 今、私たちはインターネット時代を後にし、モノのインターネット(IoT)時代に移行しています。この時代では、コンピューターとは見なされなかったデバイスが、私たちだけができる方法で、ユーザーやサーバーと相互に通信できます。想像。

今日、私たちは物を買うために必ずしもコンピューター画面上のウェブサイトに向かうわけではありません。 代わりに、音声起動のAmazonEchoから何かを購入するようにAlexaに依頼します。 家に帰ってサーモスタットを交換するのを待つだけではありません。 Nestをスマートフォンにリンクし、家から約30分離れていることをスマートフォンが感知したら、暖房をオンにするように指示します。

現在、このレベルの接続は非常に快適ですが、モノのインターネット時代が進むにつれて、デバイスが仕事、遊び、家庭で前例のない方法で同期するようになります。 IoTは私たちの生活に大きな打撃を与えるため、将来がどうなるかを正確に想像することは困難ですが、確かにわかっていることが1つあります。 IoTはすでにWeb開発に大きな影響を与えており、その影響は今後ますます大きくなるでしょう。

つまり、すべてのWeb開発者は、ある時点でIoTを検討する必要があります。 時代を先取りするために、私たちはWeb開発者がモノのインターネットについて知る必要があるすべてを設定しました。

Web開発とモノのインターネットの今

これらは、IoT開発の西部開拓時代です。 多くの憶測と実験があり、現時点では標準化はほとんど行われていません(少なくとも5つの主要な組織が同時にIoT標準に取り組んでいます)。 ですから、物事がどのように展開するのか正確にはわかりません。 しかし、専門家が今日のWeb開発に対するIoTの影響について話し合うと、特定の領域が何度も出現することがわかります。

今のWeb開発に対するIoTの影響
  • バックエンドはいたるところにあります:現在、各デバイスは独自の小さな世界で構築されています。 各企業には、デバイスが相互に接続して通信するための独自の方法があります。 各デバイスは独自の種類のデータを収集し、各デバイスは独自の種類のコマンドを使用して機能します。 つまり、多くのアプリ開発は、アプリを他のすでに確立されているアプリとうまく組み合わせることに重点を置いています。 Node.jsは、IoTデバイス間の通信を確立するための主要なフレームワークとして登場したため、これを支援します。 それでも、問題はほとんど解決されていません。
  • インターフェースにはシンプルさが必要:アプライアンスに関しては、複雑なコマンドを理解する時間がないため、コーヒーメーカーのコントロールパネルに明確さが欠けている余地はありません。 言い換えれば、ユーザーインターフェイスは、簡単に取得でき、応答性が高い必要があります。 ユーザビリティベルトのすべてのツールは、IoTデバイスのユーザーインターフェイスを設計するときに使用されます。特に、ほとんどの企業は、デバイス自体の画面だけでなくスマートフォンからも製品を制御することを望んでいます。 コントロールは、マシン上と同じように電話上でも明白である必要があります。 複雑さは舞台裏でのみ発生するはずです。 ユーザーが見る必要があるのは、すっきりとした論理的なデザインです。
  • ネットワーク遅延の軽減:プリンターのボタンを押すと、すぐに印刷が開始されることが期待されます。 ただし、IoTデバイスでは、コマンドは画面からデバイスに直接送信されるのではなく、画面からサーバー、デバイスに送信されます。 この余分な手順により、特にネットワーク接続が遅い場合に、コマンドとアクションの間にバッファが作成される可能性があります。 ユーザーには、速度が遅いか効果がない製品が表示されますが、どちらも自分の生活には望んでいません。 そのため、IoT開発者は、低速の接続や中断された接続を処理できるアプリを設計する必要があります。これにより、ユーザーはデバイスから必要なものを入手できます。
  • 力について考える:私たちは皆、力について考えるのが大好きですよね? うまくいけば、答えは「はい」です。IoT開発者は、アプリがすべてのポイントでどれだけのコンピューティングパワーを消費するかを考える必要があるからです。 なんで? ほとんどのIoTデバイスはバッテリー駆動でワイヤレスであり、大規模なメモリチップ用のスペースがあまりありません。 アプリが複雑になるほど、チップがより長く消費する必要のある電力が増え、バッテリーが消耗し、お金を取り戻すことを求める失望した顧客につながります。 つまり、アプリのデザインのすべての部分で、最小限の電力を使用する必要があります。
  • プライバシーとセキュリティ:プライバシーとセキュリティは非常に主観的であるため、この領域は少し難しいです。 何が安全で何が秘密にされるべきかについての考えは、特に私たちがそれらを便宜のために交換するとき、絶えず変化しています。 たとえば、私たちのほとんどは、雇用主が私たちの動きを追跡できるようにする埋め込み型センサーに不安を感じていますが、スウェーデンのスタートアップEpicの従業員は、積極的に注射を受けています。 彼らは、埋め込み型IDデバイスの利便性を主な動機として挙げています。 2000年代初頭のオンラインショッピングに関するすべての恐れについても考えてみてください。 個人情報の盗難や広範囲にわたる詐欺など、これらの恐れの多くは実現しましたが、私たちのほとんどは、自宅からの買い物の利便性とセキュリティを喜んで交換しています。 それでも、犯罪者は、侵入可能なネットワークに接続されているデバイスが増えると、詐欺や盗みの機会が増えることを知っています。 そのため、個人情報の盗難防止と全体的なセキュリティとプライバシーを、ネットワーク自体とデバイスが使用するアプリの両方に組み込む必要があります。 侵入する必要のある壁が多ければ多いほど、犯罪者のインセンティブと機会は少なくなります。
  • あなたが知っていることに固執してもあなたは救われません:IoT開発に取り組みたくないと決めたとしても、何かを開発するときはIoTを考慮する必要があります。 このように考えてみてください。推定3,560万人が自宅に音声対応スピーカーを持っています。 現在、彼らはそれらを使用して会社自身のWebサイトにアクセスする傾向があります(Amazon EchoユーザーがAmazonに注文するなど)。 しかし、この機能は拡張され、ユーザーはほぼすべてのIoTデバイスから任意のWebサイトにアクセスできることを期待します。 したがって、それ以前のレスポンシブデザインのように、Webサイトのユーザーの大部分がIoTデバイスから来て、それに応じて構築されると想定する必要があるのは時間の問題です。
あなたが今知る必要のある言語

したがって、IoT開発の行進は基本的に避けられず、IoTの開発を開始するときに、特定の言語の使用を開始する必要があります。 今日使用されているプログラミング言語はたくさんありますが、これらはIoT開発者によって最も頻繁に使用されている言語です。

  • C :これは、メモリが限られているデバイスでうまく機能する合理化された言語であるという理由だけで、今のところ一般的な選択です。 ただし、デバイスがさらに高度になると、Cの機能は凌駕されます。
  • C ++ :これは、強力でありながら非常に機敏であるため、現在一般的に使用されている言語の中で最も複雑です。 残念ながら、その複雑さは、ほとんどのIoTデバイスが現時点でそれを処理できないため、あまり広く採用されていないことを意味します。 つまり、開発者がより高いレベルでより一般的に使用される言語で開発の問題を処理する方法を考え出すため、将来的にも採用されないことを意味するかもしれません。
  • Java :Javaは、最も一般的に教えられている開発言語の1つであるため、ほぼすべての人がJavaの使用方法を知っています。 さらに、C ++ほど強力ではありませんが、それでも、今日のIoTデバイスの限られたメモリを処理する方が簡単です。 これら2つのこと、つまりその幅広い使用と現在の開発ニーズへの適切性を組み合わせると、最も人気のある開発言語の1つになります。
  • Python :これは、Javaと同じ理由の多くで、現在IoT開発におけるもう1つの大きな言語です。 それは十分に確立されており、広く教えられており、柔軟性があります。 そのための大きなことの1つは、RaspberryPiです。 Piの主要なプログラミング言語であるPythonは、IoT開発の中心です。 Piのパワー、小型、低価格は、学習者や実験者にとって理想的であり、ロボット工学の研究から非常にシンプルなモーション起動カメラの構築まで、あらゆる分野で使用されています。
IoTとWeb開発の未来

これは実験と野蛮な憶測の時期かもしれませんが、まだ地平線上にいくつかの明確な変化があります。 消費者が商品を調べて購入する場所はウェブサイトだけではありません。 オフィスワーカーの効率を追跡する在庫管理アプリとセンサーは、スマートヒーターやインターネットにアクセス可能なベビーモニターと同じように、人々の日常の活動で一般的になります。 IoTの分野では、GoogleとAppleは一緒に遊ぶことを学ぶか、どちらか一方がもう一方を食べる必要があります。これは、最終的にはすべてがシームレスに機能する必要があるためです。

ただし、専門家は、特にWeb開発者にとって最大の課題は考え方の転換であることを確信しています。 開発者は、個々のデバイスやインターネットの使用方法について考える代わりに、製品にほとんど関係なく、広範なユーザーデータを使用してサービスを形成する必要があります。

IoTが将来的にWeb開発に影響を与える可能性が高い場所
  • デバイスだけでなくネットワーク向けのアプリ:現在、IoTデバイス向けのアプリは、これらの特定の製品向けの特注ソリューションのように機能します。 開発者は、デバイスに実行してもらいたいクールなことを考え、そのための手順の作成に着手しました。 ただし、将来的には、IoT開発者はより広く考え始める必要があります。 単一のデバイス用のアプリを考え出す代わりに、ネットワーク全体で機能するアプリを作成できる必要があります。 このように考えてみてください。現時点では、ウィンクのようなネットワークは1つのマスターリモコンで家のすべてのIoTデバイスを接続していますが、データの収集、情報の共有、指示の実行を行うアプリのほとんどは、依然として個々のデバイス内にあります。 将来的には、IoT接続では、最も強力なアプリがデバイス内ではなくネットワーク内に配置されるようになります。 ある意味で、ネットワークはよりインテリジェントになり、すべてのデータ分析、調整、および指示を提供し、デバイスとアプライアンスは単純なデータ収集者と指示フォロワーになり、煩雑になります。
  • ますますパーソナライズされたWebサイト:デバイスが相互に多くのデータを収集および共有できるようになると、インターネットブラウジングエクスペリエンスが変化することがわかります。 Webサイトは、IoTデバイスおよび製品によって生成されたデータに基づいて、カスタマイズされたサービスを顧客に自動的に提供できるようになります。 これにより、接続された冷蔵庫、洗濯機、その他の電化製品がお気に入りのオンライン食料品店にデータを送信していることがわかります。そのため、ウェブサイトを開くと、不足しているステープルが自動的に表示されます。 もちろん、食料品店のWebサイトは、市場に出回っているすべてのブランドや種類の電化製品と通信できる必要があるため、これには高度なバックエンド開発が必要になります。 そして、業界標準が設定されるまで、それは確かに非常に難しい注文になります。
  • すべてのレベルでの統合:将来的には、企業は顧客の要求に即座に対応できるようになりたいと考えています。 たとえば、生産ラインはWebサイトの購入の増加に動的に対応します。 つまり、開発するアプリはすべて、生産ラインとサプライチェーン全体に統合する必要があります。 実際、この大規模な統合が、標準化が現在非常に大きな課題となっている理由です。
  • 画面だけが方法ではありません。将来的には、多くのデバイスが、ユーザーの操作をあまり邪魔することなく、相互に通信できるようになる可能性があります。 Nestと同様に、ユーザーは単純なコントロールパネルのみを操作でき、残りのデータは、ユーザーが直接操作しないセンサーとアプリによって収集されます。 つまり、フロントエンドの設計はより単純になり、他のすべてははるかに複雑になります。
  • 新しいテストの考慮事項:IoTアプリケーションをテストするときは、まったく新しい概念について考える必要があります。 ネットワークが遅れた場合、ユーザーはIoTデバイスを制御できますか? ユーザーとデバイス間、およびデバイスとサーバー間のネットワーク接続が遅くなったり、中断されたりした場合はどうなりますか? アプリの機能を維持しながら電力使用量を削減する方法はありますか? これらは、開発者がテスト段階で絶えず自問しなければならないことのほんの一部です。
知っておく必要のある言語、OS、プロトコル

これは、予測が本当に曖昧になる可能性がある場所です。 過去のプログラミング言語の開発が私たちに何かを教えてくれたとしたら、明日のテクノロジーが今日のテクノロジーと多くの共通点を持っているとは思えないということです。 それでも、これらのツールが役立つと考える理由はいくつかあります。

  • JavaScript :すでに人気があり、すでに使用されているため、JavaScript、特にNode.js環境の人気は今後も高まると多くの人が考えています。 少なくとも、これはIoT開発の矢筒で最も役立つ矢印の1つになります。
  • Weave :言語が少なく、マシン間通信プロトコルであるWeaveは、GoogleのBrillo OSと連携して、デバイスが安価かつ迅速に相互に通信できるようにします。 Brilloは基本的にAndroidの機能を取り除いたバージョンであり、機能が制限されているデバイスでより便利になります。 また、Androidよりも必要な電力が少ないため、IoT開発にとってより安価で魅力的なオプションになります。
  • Swift :これはAppleのオープンソース言語です。 iOS、MacOS、HomeKit(AppleがすべてのIoTデバイスを接続するために使用しているオペレーティングシステム)で動作します。 AppleのIoTユニバースを利用して、1階に入るには、これを知っておく必要があります。
  • まだ発明されていない言語:私たちはこれらが何であるかを推測することしかできず、歴史が通り過ぎるものであるならば、私たちはすべての予測でかなり間違っているでしょう。
結論

モノのインターネット時代への参入は、同じように刺激的で挑戦的です。 私たちが今学んでできることはたくさんありますが、実際には、将来学んで理解することがもっとたくさんあります。 大量のデータとネットワーク接続が私たちの生活のあらゆる部分を形作る、よりシームレスに接続された世界に移行していることを私たちは知っていますが、実際にどのように見えるかは誰の推測でもあります。 JavaScriptは現在有用であり、成長してIoT開発のバックボーンを形成する可能性があることはわかっていますが、必ずしもそうなるとは限りません。 私たちは、すべての新しい機会が新しい課題を投げかけ、すべての新しいソリューションが独自の機会と課題を生み出していることを知っています。

もちろん、新しいソリューションを学び、発明するという課題は、ほとんどの開発者をこの分野に引き付けるものです。そのため、今後数十年にわたって、興味を持ち、雇用され続けるための多くのことがあります。 そして、それはおそらくWeb開発者がモノのインターネットについて知るための最も重要なことです。