  This paper presents a fog-resident controller architecture for synchronizing
the operations of large collections of Internet of Things (IoT) such as drones,
Internet of Vehicles, etc. Synchronization in IoT is grouped into different
classes, use cases identified and multi-point synchronous scheduling algorithms
are developed to schedule tasks with varying timing requirements; strict
(synchronous) and relaxed (asynchronous and local) onto a bunch of worker nodes
that are coordinated by a fog resident controller in the presence of
disconnections and worker failures. The algorithms use time-based or
component-based redundancy to cope with failures and embed a publish-subscribe
message update scheme to reduce the message overhead at the controller as the
number of workers increase. The performance of the algorithms are evaluated
using trace-driven experiments and practicability is shown by implementing the
time-based redundancy synchronous scheduling algorithm in JAMScript -- a
polyglot programming platform for Cloud of Things and report initial findings.
