Interoperability is functionality that facilitates integration amongst disparate devices and systems used by applications. As such, interoperability facilitates timely, efficient, and effective completion of applications in addition to finding new smarter, and more adaptive services. Smart cities, like many other environments and applications, suffer from a lack of interoperability, which makes their processing very challenging. Lack of interoperability also leads to ineffectiveness, which is highly desirable for applications dealing with emergencies or having exceptional requirements. In particular, interoperability is highly desirable in heterogeneous systems. This research presents a comprehensive review of the available methods and ways to deal with the issues related to interoperability. We shall also provide a classification of the available solutions sorted out according to the domains, identifying their advantages and limitations. Finally, we shall propose a hybrid approach for dealing with the interoperability that can be regarded as a comprehensive and reliable solution within smart cities.