1.14 Case Study—A Big-Data Mobile Application

  • Google’s Waze GPS navigation app, with its 90 million monthly active users, is one of the most successful big-data apps
  • Early GPS navigation devices and apps relied on static maps and GPS coordinates to determine the best route to your destination
  • They could not adjust dynamically to changing traffic situations
  • Waze processes massive amounts of crowdsourced data that’s continuously supplied by their users and their users’ devices worldwide
  • They analyze this data as it arrives to determine the best route to get you to your destination in the least amount of time

1.14 Case Study—A Big-Data Mobile Application (cont.)

  • Waze relies on your smartphone’s Internet connection
  • Automatically sends location updates to their servers (assuming you allow it to)
  • They use that data to dynamically re-route you based on current traffic conditions and to tune their maps
  • Users report other information, such as roadblocks, construction, obstacles, vehicles in breakdown lanes, police locations, gas prices and more
  • Waze then alerts other drivers in those locations

1.14 Case Study—A Big-Data Mobile Application (cont.)

  • Waze uses many technologies to provide its services
  • Below we list technologies Waze probably uses—many of which you'll see in this book
  • Most apps created today use at least some open-source software (used throughout the book)
  • Waze communicates information over the Internet between their servers and their users’ mobile devices
    • Such data often is transmitted in JSON (JavaScript Object Notation) format (Chapter 9 and subsequent chapters)
    • JSON data is typically hidden from you by the libraries you use

1.14 Case Study—A Big-Data Mobile Application (cont.)

  • Waze uses speech synthesis to speak driving directions and alerts to you, and speech recognition to understand your spoken commands (Chapter 14)
  • Once Waze converts a spoken natural-language command to text, it must determine the correct action to perform, which requires natural language processing (NLP) (Chapter 12 and subsequent chapters)
  • Waze displays dynamically updated visualizations such as alerts and maps
    • Waze also enables you to interact with the maps by moving them or zooming in and out (we create dynamic visualizations throughout the book, and display interactive maps in Chapters 13 and 17)

1.14 Case Study—A Big-Data Mobile Application (cont.)

  • Waze uses your phone as a streaming Internet of Things (IoT) device (Chapter 17)
    • Each phone is a GPS sensor that continuously streams data over the Internet to Waze
  • Waze receives IoT streams from millions of phones at once
    • Must process, store and analyze that data immediately to update your device’s maps, to display and speak relevant alerts and possibly to update your driving directions
    • Requires massively parallel processing capabilities implemented with clusters of computers in the cloud (Chapter 17 in introduces various big-data infrastructure technologies)

1.14 Case Study—A Big-Data Mobile Application (cont.)

  • Waze uses artificial-intelligence capabilities to perform the data-analysis tasks that enable it to predict the best routes based on the information it receives (Chapters 15 and 16)
  • Waze probably stores its routing information in a graph database
    • Such databases can efficiently calculate shortest routes (we overview graph databases in Chapter 17)
  • Many cars are now equipped with devices that enable them to “see” cars and obstacles around them
    • Used, for example, to help implement automated braking systems and are a key part of self-driving car technology
    • Rather than relying on users to report obstacles and stopped cars on the side of the road, navigation apps could take advantage of cameras and other sensors by using deep-learning computer-vision techniques to analyze images “on the fly” and automatically report those items (deep learning for computer vision introduced Chapter 16)

©1992–2020 by Pearson Education, Inc. All Rights Reserved. This content is based on Chapter 1 of the book Intro to Python for Computer Science and Data Science: Learning to Program with AI, Big Data and the Cloud.

DISCLAIMER: The authors and publisher of this book have used their best efforts in preparing the book. These efforts include the development, research, and testing of the theories and programs to determine their effectiveness. The authors and publisher make no warranty of any kind, expressed or implied, with regard to these programs or to the documentation contained in these books. The authors and publisher shall not be liable in any event for incidental or consequential damages in connection with, or arising out of, the furnishing, performance, or use of these programs.