What are the Key Components of an IoT System?