THE CLOUD AND THE INTERNET OF THINGS
The Cloud
More and more computing today is done “in the cloud”—that is, distributed across the Internet worldwide. Many apps you use daily are dependent on cloudbased services that use massive clusters of computing resources (computers, processors, memory, disk drives, etc.) and databases that communicate over the Internet with each other and the apps you use. A service that provides access to itself over the Internet is known as a web service. As you’ll see, using cloudbased services in Python often is as simple as creating a software object and interacting with it. That object then uses web services that connect to the cloud on your behalf.
Throughout the Chapters 11–16 examples, you’ll work with many cloudbased services:
- In Chapters 12 and 16, you’ll use Twitter’s web services (via the Python library Tweepy) to get information about specific Twitter users, search for tweets from the last seven days and receive streams of tweets as they occur—that is, in real time.
- In Chapters 11 and 12, you’ll use the Python library TextBlob to translate text between languages. Behind the scenes, TextBlob uses the Google Translate web service to perform those translations.
- In Chapter 13, you’ll use the IBM Watson’s Text to Speech, Speech to Text and Translate services. You’ll implement a traveler’s assistant translation app that enables you to speak a question in English, transcribes the speech to text, translates the text to Spanish and speaks the Spanish text. The app then allows you to speak a Spanish response (in case you don’t speak Spanish, we provide an audio file you can use), transcribes the speech to text, translates the text to English and speaks the English response. Via IBM Watson demos, you’ll also experiment with many other Watson cloudbased services in Chapter 13.
- In Chapter 16, you’ll work with Microsoft Azure’s HDInsight service and other Azure web services as you implement bigdata applications using Apache Hadoop and Spark. Azure is Microsoft’s set of cloudbased services.
- In Chapter 16, you’ll use the Dweet.io web service to simulate an Internetconnected thermostat that publishes temperature readings online. You’ll also use a webbased service to create a “dashboard” that visualizes the temperature readings over time and warns you if the temperature gets too low or too high.
- In Chapter 16, you’ll use a webbased dashboard to visualize a simulated stream of live sensor data from the PubNub web service. You’ll also create a Python app that visualizes a PubNub simulated stream of live stockprice changes.
Mashups
The applications development methodology of mashups enables you to rapidly develop powerful software applications by combining (often free) complementary web services and other forms of information feeds—as you’ll do in our IBM Watson traveler’s assistant translation app. One of the first mashups combined the realestate listings provided by http://www.craigslist.org with the mapping capabilities of Google Maps to offer maps that showed the locations of homes for sale or rent in a given area.
ProgrammableWeb ( http://www.programmableweb.com/ ) provides a directory of over 20,750 web services and almost 8,000 mashups. They also provide howto guides and sample code for working with web services and creating your own mashups. According to their website, some of the most widely used web services are Facebook, Google Maps, Twitter and YouTube.
Internet of Things
The Internet is no longer just a network of computers—it’s an Internet of Things (IoT). A thing is any object with an IP address and the ability to send, and in some cases receive, data automatically over the Internet. Such things include:
- a car with a transponder for paying tolls,
- monitors for parkingspace availability in a garage,
- a heart monitor implanted in a human,
- water quality monitors,
- a smart meter that reports energy usage,
- radiation detectors,
- item trackers in a warehouse,
- mobile apps that can track your movement and location,
- smart thermostats that adjust room temperatures based on weather forecasts and activity in the home, and
- intelligent home appliances.
According to statista.com, there are already over 23 billion IoT devices in use today, and there could be over 75 billion IoT devices in 2025.