With
the promise of limitless applications, the Internet of Things has
commanded the attention of developers and tech professionals alike. In
fact, Google just announced that its new Brillo operating system is
designed specifically to position Google as a key player in this
burgeoning field. Brillo could help business users harness the Internet
of Things with next-generation devices. But how can developers join the
movement now?
Currently, developing an Internet
of Things app can take years. Developers often have to start from
scratch, slowing down the time to market considerably. And with the
added difficulties of producing hardware, establishing secure and
consistent connectivity, and communicating across multiple devices,
innovating within the Internet of Things might seem out of reach.
Here are four IoT setbacks you can expect to encounter:
Connectivity
IoT
devices connect over a variety of transport layers, use countless
protocols, and support a variety of configuration options. Keep in mind
that many devices will have small processors and low memory—even with
Brillo promising to overcome that hurdle. Because this data travels over
the Internet, getting your first device up and running with your
new Internet of Things application is incredibly challenging.
Concurrency
To
support connectivity, these applications must be highly concurrent.
But concurrent application development is one of the most taxing
disciplines in computer science right now. Most developers do not have
experience writing concurrent code, making even the simplest Internet of
Things application difficult to develop.
Poor Internet Infrastructure
Many
countries have poor Internet and cellular infrastructures. Even in the
U.S., network infrastructure lags behind its European counterparts, and
as more connected devices enter the market and absorb more bandwidth,
the current Internet infrastructure might not be able to keep up.
Privacy Concerns
As
more governments expose their online methods for combatting external
threats, many consumers have become distrustful of connected devices and
the apps we use to run them. That may impact the companies
developing them. While some manufacturers are working to lessen the risk
with embedded hardware security technology, these trepidations will not
go away with hardware solutions alone.
Overcoming Hurdles
Internet
applications are practically limitless. Today, all developers can bring
their innovative ideas to life using modern development tools and
empowering languages. But to prepare your application architecture and
infrastructure to weather the Internet of Things storm, consider these
six steps:
- Fail fast. No
one will get it right the first time. The faster you fail, the more
quickly you can learn from your mistakes. Then, when the time is right,
your app will be ready to shine. Look into languages and technologies
that promote a rapid pace of development, like Google Weave.
Google Weave, announced alongside Brillo at Google's I/O conference in May, is a common language for devices that will streamline the process for development by allowing all devices in the home to connect and understand each other. While it won’t be out until the fourth quarter of this year, it may be beneficial to start researching and comparing it to other languages as more information about the communications standard is revealed. - Think in terms of scale.
You could have 10 devices connecting one day and 100,000 the next, so
you need to be able to handle the load switch. And because the Internet
of Things relies heavily on unbroken connectivity, you also need
software that can accommodate updates without disrupting the user
experience.
Hardware used to be a limiting factor, but with new machines built for horizontal scaling (i.e., they can talk to one another), you can now minimize downtime. If possible, build your app on a NoSQL data store. NoSQL technologies allow you to scale up your application using commodity hardware. - Use binary messages.
If the device you’re planning to integrate supports custom binary
encoding instead of ASCII encoding, use it. Custom binary-encoded
messages significantly reduce your app’s bandwidth requirements, which
lowers costs.
- Host your app in different geographic regions.
If you can route data to a datacenter that agrees with customers’
sensibilities, you can provide faster response times and have some
flexibility when dealing with privacy concerns.
- Choose a language or technology that enables rapid prototyping. Many
apps are still being built in Java and C#, but these languages do not
always provide the flexibility needed in the fast-paced environment of
the Internet of Things. Languages like Scala, Clojure, and Ruby support
rapid development due to their minimal syntax, REPL, and more advanced
language features.
- Outsource what you can. Many new tools on the market can serve as the foundation for building your application. Some tools, for example, can give developers an easy way to make device messages JSON accessible through RESTful APIs, allowing you to focus on your project without diving into networking, parsing, or concurrency.
By locating the right tools, you’ll have much more time to focus on your big idea and deliver a superior user experience.
Unlike
in traditional app development, the Internet of Things is still in its
infancy, so few frameworks and prewritten code exist for you to draw
from. Google, Samsung, and Apple have only just started announcing their
steps toward making the Internet of Things a priority in their software
and hardware development. Needless to say, building connected apps will
take some ingenuity.
But do not let the
challenges surrounding the Internet of Things deter you from
capitalizing on its potential. Computer science has the ability to meet
consumers’ connectivity demands. By diving into the pain points
associated with the Internet of Things and researching solutions to
combat these throughout your development journey, you can help blaze the
trail for this revolution.
(Readwrite)
No comments:
Post a Comment