Que doivent savoir les développeurs Web sur l'Internet des objets ?

Publié: 2017-10-30

Le développement Web est apparu au début de l'ère Internet, lorsque nous avons commencé à faire communiquer des ordinateurs plus rapides et plus puissants entre eux via des lignes téléphoniques.

Au fur et à mesure qu'Internet devenait plus sophistiqué; le développement web est devenu plus technique et plus professionnel. Maintenant, nous laissons derrière nous l'ère d'Internet et entrons dans l'ère de l'Internet des objets (IoT), où les appareils qui n'ont jamais été considérés comme des ordinateurs sont capables de communiquer entre eux, avec les utilisateurs et avec les serveurs d'une manière que nous pouvons tout juste imaginer.

Aujourd'hui, nous ne nous dirigeons pas nécessairement vers des sites Web sur des écrans d'ordinateur pour acheter des choses. Au lieu de cela, nous demandons à Alexa d'acheter quelque chose via notre Amazon Echo à commande vocale. Nous n'attendons pas simplement d'être à la maison pour changer le thermostat. Nous connectons notre Nest à notre smartphone et lui disons d'allumer le chauffage lorsque notre téléphone détecte que nous sommes à environ 30 minutes de la maison.

À l'heure actuelle, nous trouvons ce niveau de connectivité assez confortable, mais à mesure que l'ère de l'Internet des objets progresse, nous constaterons que nos appareils se synchronisent au travail, dans les loisirs et à la maison de manière sans précédent. L'IoT va tellement perturber nos vies telles que nous les connaissons qu'il est difficile d'imaginer avec précision à quoi ressemblera l'avenir, mais il y a une chose dont nous sommes sûrs. L'IoT a déjà eu un impact massif sur le développement Web, et son impact ne fera que croître.

Cela signifie que tous les développeurs Web devront envisager l'IoT à un moment donné. Afin de prendre une longueur d'avance, nous avons défini tout ce que les développeurs Web doivent savoir sur l'Internet des objets.

Développement Web et Internet des objets maintenant

Ce sont les jours du Far West du développement de l'IoT. Il y a beaucoup de spéculations et d'expérimentations, avec peu de normalisation pour le moment (au moins cinq grandes organisations travaillent simultanément sur les normes IoT). Nous ne savons donc pas exactement comment les choses vont se dérouler. Mais nous pouvons voir que certains domaines reviennent encore et encore lorsque les experts discutent de l'impact de l'IoT sur le développement Web aujourd'hui.

L'impact de l'IoT sur le développement Web maintenant
  • Le back-end est partout : à l' heure actuelle, chaque appareil est construit dans son propre petit monde. Chaque entreprise a sa propre façon pour que les appareils se connectent et se parlent. Chaque appareil rassemble son propre type de données et chaque appareil utilise ses propres types de commandes pour fonctionner. Cela signifie que de nombreux centres de développement d'applications consistent simplement à faire en sorte que votre application s'intègre bien avec d'autres applications déjà établies. Node.js y contribue, car il est devenu un cadre de premier plan pour établir des communications entre les appareils IoT. Pourtant, le problème n'est guère résolu.
  • Les interfaces ont besoin de simplicité : personne n'a le temps de comprendre les commandes complexes lorsqu'il s'agit d'appareils, il n'y a donc pas de place pour un manque de clarté dans le panneau de commande d'une cafetière. En d'autres termes, les interfaces utilisateur doivent être faciles à prendre en main et réactives. Tous les outils de votre ceinture d'utilisabilité seront utilisés lors de la conception des interfaces utilisateur pour les appareils IoT, d'autant plus que la plupart des entreprises voudront que leurs produits soient contrôlés à partir de téléphones intelligents ainsi que des écrans des appareils. Les commandes doivent être aussi évidentes sur le téléphone que sur la machine. La complexité ne devrait venir qu'en coulisses. Ce que l'utilisateur a besoin de voir, c'est une conception propre et logique.
  • Atténuer la latence du réseau : lorsque vous appuyez sur un bouton de votre imprimante, vous vous attendez à ce qu'elle commence à imprimer immédiatement. Mais avec les appareils IoT, la commande va de l'écran au serveur vers l'appareil, plutôt que de l'écran directement à l'appareil. Cette étape supplémentaire peut créer un tampon entre la commande et l'action, en particulier avec des connexions réseau lentes. Les utilisateurs verront un produit lent ou inefficace, dont ils ne veulent ni l'un ni l'autre dans leur vie. Les développeurs IoT doivent donc concevoir des applications qui peuvent et vont gérer des connexions lentes et même interrompues, afin que les utilisateurs obtiennent ce qu'ils veulent de leurs appareils.
  • Pensez au pouvoir : nous aimons tous penser au pouvoir, n'est-ce pas ? Espérons que la réponse soit "oui", car les développeurs IoT devront réfléchir à la puissance de calcul que leurs applications consomment à chaque instant. Pourquoi? Parce que la plupart des appareils IoT sont alimentés par batterie, sans fil et n'ont pas beaucoup d'espace pour des puces de mémoire étendues. Plus l'application est complexe, plus la puce devra consommer d'énergie plus longtemps, ce qui sapera la batterie et conduira à des clients déçus qui demandent leur argent. En bref, chaque partie de la conception d'une application doit utiliser la quantité d'énergie minimale absolue.
  • Confidentialité et sécurité : Ce domaine est un peu difficile car la confidentialité et la sécurité sont tellement subjectives. Les idées sur ce qui est sûr et ce qui devrait rester privé changent constamment, surtout lorsque nous les échangeons pour plus de commodité. Par exemple, la plupart d'entre nous se sentent mal à l'aise avec les capteurs implantables qui permettent à nos employeurs de suivre nos mouvements, mais les employés de la startup suédoise Epic entre reçoivent volontiers les injections - et organisent même des fêtes pour d'autres qui se portent volontaires pour avoir la technologie implantable. Ils citent la commodité des dispositifs d'identification implantables comme leur principale motivation. Pensez aussi à toutes les craintes entourant les achats en ligne au début des années 2000. Bon nombre de ces craintes se sont réalisées, y compris le vol d'identité et la fraude généralisée, mais la plupart d'entre nous échangeons volontiers notre sécurité contre la commodité de faire des achats depuis chez nous. Pourtant, les criminels savent que le fait d'avoir plus d'appareils connectés à des réseaux pénétrables signifie plus d'opportunités d'escroquerie et de vol. C'est pourquoi la protection contre le vol d'identité ainsi que la sécurité et la confidentialité globales doivent être intégrées à la fois aux réseaux eux-mêmes et aux applications utilisées par les appareils. Plus il y a de murs à briser, moins les criminels ont d'incitations et d'opportunités.
  • S'en tenir à ce que vous savez ne vous sauvera pas : même si vous décidez de ne pas travailler sur le développement de l'IoT, vous devrez toujours tenir compte de l'IoT lorsque vous développerez quoi que ce soit. Pensez-y de cette façon : on estime que 35,6 millions de personnes ont des haut-parleurs à commande vocale chez eux. À l'heure actuelle, ils ont tendance à les utiliser pour accéder aux sites Web de l'entreprise (comme les utilisateurs d'Amazon Echo qui commandent des articles sur Amazon). Mais cette capacité va s'étendre et les utilisateurs s'attendront à pouvoir accéder à n'importe quel site Web à partir de presque n'importe quel appareil IoT. Ce n'est donc qu'une question de temps avant, comme la conception réactive avant elle, vous devez supposer qu'une grande partie des utilisateurs d'un site Web proviendra d'un appareil IoT et construire en conséquence.
Les langues que vous devez connaître maintenant

Ainsi, la marche du développement de l'IoT est fondamentalement inévitable, et vous devrez commencer à utiliser certains langages lorsque vous commencerez à développer pour l'IoT. De nombreux langages de programmation sont utilisés aujourd'hui, mais ce sont ceux qui sont le plus fréquemment utilisés par les développeurs IoT.

  • C : C'est un choix courant pour l'instant, simplement parce que c'est un langage simplifié qui fonctionne bien avec les appareils qui ont une mémoire limitée. Cependant, une fois que les appareils seront plus avancés, les capacités de C seront dépassées.
  • C++ : C'est le plus complexe des langages couramment utilisés actuellement, car il est puissant mais toujours assez agile. Malheureusement, sa complexité signifie qu'il n'est pas adopté trop largement, car la plupart des appareils IoT ne peuvent pas le gérer pour le moment. Cela peut donc signifier qu'il ne sera pas adopté à l'avenir non plus, car les développeurs trouveront des moyens de gérer les problèmes de développement avec des langages de niveau supérieur et plus couramment utilisés.
  • Java : Java est l'un des langages de développement les plus couramment enseignés, donc à peu près tout le monde sait comment l'utiliser. De plus, bien qu'il ne soit pas aussi puissant que C++, il est néanmoins plus facile à gérer pour les mémoires limitées des appareils IoT d'aujourd'hui. Combinez ces deux choses - sa large utilisation et sa pertinence pour la plupart des besoins de développement actuels - et vous avez l'un des langages de développement les plus populaires.
  • Python : C'est l'autre grand langage de développement IoT en ce moment, pour plusieurs des mêmes raisons que Java. Il est bien établi, largement enseigné et flexible. Une grande chose à faire est le Raspberry Pi. En tant que principal langage de programmation du Pi, Python est au cœur du développement de l'IoT. La puissance, la petite taille et le prix bas du Pi signifient qu'il est idéal pour les apprenants et les expérimentateurs, et il est maintenant utilisé dans tout, de la recherche en robotique à la construction de caméras activées par le mouvement assez simples.
L'avenir de l'IoT et du développement Web

Cela pourrait être une période d'expérimentation et de spéculation sauvage, mais il y a encore des changements clairs à l'horizon. Les sites Web ne seront pas les seuls endroits où les consommateurs recherchent et achètent des produits. Les applications de contrôle des stocks et les capteurs qui suivent l'efficacité des employés de bureau deviendront aussi courants dans les activités quotidiennes des gens que les radiateurs intelligents et les moniteurs pour bébés accessibles par Internet. Dans le domaine de l'IoT, Google et Apple devront soit apprendre à jouer ensemble, soit l'un mangera l'autre, car finalement tout cela devra fonctionner de manière transparente.

Les experts sont à peu près sûrs, cependant, que le plus grand défi pour les développeurs Web en particulier sera le changement d'état d'esprit. Au lieu de penser à des appareils individuels et à la manière dont ils pourraient utiliser Internet, les développeurs devront utiliser de nombreuses données utilisateur pour façonner les services, presque quel que soit le produit.

Où l'IoT est susceptible d'avoir un impact sur le développement Web à l'avenir
  • Des applications pour les réseaux, pas seulement pour les appareils : à l'heure actuelle, les applications pour les appareils IoT agissent comme des solutions sur mesure pour ces produits spécifiques. Les développeurs pensent à une chose intéressante qu'ils aimeraient qu'un appareil fasse, et ils se sont mis à créer les instructions pour cela. À l'avenir, cependant, les développeurs IoT devront commencer à penser plus largement. Au lieu de proposer des applications pour des appareils uniques, vous devrez être en mesure de créer des applications qui fonctionnent sur un réseau. Pensez-y de cette façon : pour le moment, des réseaux comme Wink connectent tous les appareils IoT d'une maison sous une seule télécommande principale, mais la plupart des applications qui collectent des données, partagent des informations ou exécutent des instructions se trouvent toujours dans les appareils individuels. À l'avenir, la connectivité IoT verra les applications les plus puissantes hébergées sur le réseau, et non sur les appareils. Dans un sens, le réseau deviendra plus intelligent, fournissant toutes les analyses de données, la coordination et les instructions, et les appareils et appareils deviendront plus stupides, réduits à de simples collecteurs de données et suiveurs d'instructions.
  • Des sites Web de plus en plus personnalisés : à mesure que les appareils sont capables de collecter et de partager davantage de données entre eux, vous constaterez que les expériences de navigation sur Internet vont changer. Les sites Web seront automatiquement en mesure de fournir aux clients un service sur mesure, basé sur les données générées par leurs appareils et produits IoT. Cela pourrait voir leur réfrigérateur, machine à laver et autres appareils connectés envoyer des données à leur épicerie en ligne préférée, de sorte que lorsque vous ouvrez le site Web, il leur montre automatiquement les produits de base dont ils ont besoin. Cela nécessiterait bien sûr un développement back-end sophistiqué, car le site Web de l'épicerie devrait pouvoir communiquer avec toutes les marques et tous les types d'appareils électroménagers sur le marché. Et jusqu'à ce que les normes de l'industrie soient établies, ce sera en effet une tâche très difficile.
  • Intégration à tous les niveaux : À l'avenir, les entreprises voudront pouvoir répondre instantanément aux demandes des clients. Par exemple, les chaînes de production répondront de manière dynamique à une augmentation des achats sur le site Web. Cela signifie que toutes les applications que vous développez devront s'intégrer dans des chaînes de production et des chaînes d'approvisionnement entières. En fait, cette intégration poussée est la raison pour laquelle la normalisation est un défi majeur à l'heure actuelle.
  • Les écrans ne sont pas le seul moyen : à l'avenir, de nombreux appareils pourraient bien se parler sans trop d'interaction avec l'utilisateur. Comme avec Nest, les utilisateurs ne peuvent interagir qu'avec un simple panneau de commande, et le reste des données sera collecté par des capteurs et des applications avec lesquels les utilisateurs n'interagiront pas directement. Cela signifie que la conception frontale sera plus simple et que tout le reste sera beaucoup plus compliqué.
  • Nouvelles considérations de test : lorsque vous testez une application IoT, vous devez réfléchir à des concepts entièrement nouveaux. Les utilisateurs pourront-ils contrôler leur appareil IoT si le réseau est en retard ? Que se passe-t-il si les connexions réseau, à la fois entre l'utilisateur et l'appareil et entre l'appareil et le serveur, ralentissent ou sont interrompues ? Existe-t-il un moyen de conserver les fonctionnalités de l'application tout en réduisant la consommation d'énergie ? Ce ne sont là que quelques-unes des questions que les développeurs devront constamment se poser lors de la phase de test.
Les langages, systèmes d'exploitation et protocoles que vous pourriez avoir besoin de connaître

C'est là que les prédictions peuvent devenir vraiment floues. Si le développement des langages de programmation dans le passé nous a appris quelque chose, c'est que nous ne pouvons pas supposer que la technologie de demain aura beaucoup en commun avec celle d'aujourd'hui. Pourtant, nous avons quelques raisons de penser que ces outils seront utiles.

  • JavaScript : Il est déjà populaire et déjà utilisé, donc beaucoup pensent que JavaScript, et en particulier l'environnement Node.js, continuera de gagner en popularité. À tout le moins, ce sera l'une des flèches les plus utiles de votre carquois de développement IoT.
  • Weave : Moins un langage qu'un protocole de communication de machine à machine, Weave fonctionne avec le système d'exploitation Brillo de Google pour permettre aux appareils de se parler rapidement et à moindre coût. Brillo est essentiellement une version simplifiée d'Android, ce qui le rend plus utile pour les appareils aux capacités limitées. Il nécessite également moins d'énergie qu'Android, ce qui en fait une option moins chère et plus attrayante pour le développement de l'IoT.
  • Swift : C'est le langage open source d'Apple. Il fonctionne avec iOS, MacOS et HomeKit (le système d'exploitation qu'Apple utilise pour connecter tous ses appareils IoT). Si vous voulez entrer au rez-de-chaussée avec l'univers IoT d'Apple, vous devez connaître celui-ci.
  • Les langages qui n'ont pas encore été inventés : nous ne pouvons que spéculer sur ce qu'ils seront, et si l'on se fie à l'histoire, nous nous tromperons dans toutes nos prédictions.
Conclusion

Entrer dans l'ère de l'Internet des objets est à la fois passionnant et stimulant. Il y a des choses que nous pouvons apprendre et faire maintenant, mais vraiment, il y a beaucoup plus à apprendre et à comprendre à l'avenir. Nous savons que nous nous dirigeons vers un monde connecté de manière plus transparente, où des masses de données et de connexions réseau façonnent chaque partie de notre vie, mais à quoi cela ressemble-t-il réellement ? Nous savons que JavaScript est utile maintenant et pourrait devenir l'épine dorsale du développement de l'IoT, mais cela ne signifie pas nécessairement qu'il le sera. Nous savons que chaque nouvelle opportunité lance de nouveaux défis, et chaque nouvelle solution crée ses propres opportunités et défis, ceux que nous ne pouvons même pas commencer à anticiper.

Bien sûr, le défi d'apprendre et d'inventer de nouvelles solutions est ce qui attire la plupart des développeurs sur le terrain, il y aura donc de quoi vous garder intéressé - et employé - pour les décennies à venir. Et c'est probablement la chose la plus importante que les développeurs Web doivent savoir sur l'Internet des objets.