  The growth in the deployment of Internet of Things (IoT) devices in various
industries required the use of IoT platforms to manage, automate and control
devices. This introduced different commercial and open source IoT platforms for
developers and researchers to deploy. As a result, selecting one of these
platforms for a specific application and use case became a challenge. In this
study, a guideline for selecting an open source platform is presented. The
process starts by identifying a list of functional requirements that would
reflect the requirements of an IoT system in general. This list of requirements
is used to compare between four major open source platforms: 1) OM2M (OneM2M
standard), 2) IoTivity (OCF standard), LwM2M (OMA SpecWorks LwM2M standard),
and 4) FIWARE (FIWARE standard). The purpose of this comparison is to indicate
the capability and limitations of the different platforms and how they satisfy
each requirement. Afterwards, two examples are presented to demonstrate how
this guideline is used to select the most suitable platform for an e-health and
a smart city use case. This includes how to define each use case and all the
required information that could affect the process of selecting the most
suitable platform for the development of the IoT platform.
