In the previous chapter, you saw how to specify an IOT service. Now we will look at the technology options available to create IOT services. The most commonly deployed IOT architectures (the IOT stack) contain the elements in the reference architecture shown in Figure 3-1. The functionality is normally organized in a layered architecture with modules providing the specific capabilities of each layer. There has been an attempt to standardize IOT reference architectures by bodies such as ISO/IEC and ITU-T, but there is no clear winner yet. The options available can be divided into proprietary and open source platform providers. Examples of proprietary providers are AWS and Azure (focused on the full IOT stack) and others like ThingWorx (with more focus on application enablement). Examples of open source reference architectures are FI-Ware, OpenMTC, and so on. Complexities arise because each of the architectural options define their components (even devices, actuators, and sensors) in a slightly different manner. This creates challenges for IOT service owners to assess the best technology options for their services. The best advice is to keep it simple when deciding what is correct for your service. Define the high-level requirements, specify clearly what functionality is required by each component in the architecture, check for compliance, and ensure it fits in with the business growth plan.