Maintenance Scheduling using Big Data, IoT and Agent Based Simulation