  Nowadays, we are witnessing the advent of the Internet of Things (EC) with
numerous devices performing interactions between them or with end users. The
huge number of devices leads to huge volumes of collected data that demand the
appropriate processing. The 'legacy' approach is to rely on Cloud where
increased computational resources can be adopted to realize any processing.
However, even if the communication with the Cloud back end lasts for some
seconds there are cases where problems in the network or the need for
supporting real time applications require a reduced latency in the provision of
responses/outcomes. Edge Computing (EC) comes into the scene as the 'solver' of
the latency problem (and not only). Any processing can be performed close to
data sources, i.e., at EC nodes having direct connection with IoT devices.
Hence, an ecosystem of processing nodes can be present at the edge of the
network giving the opportunity to apply novel services upon the collected data.
Various challenges should be met before we talk about a fully automated
ecosystem where EC nodes can cooperate or understand the status of them and the
environment to be capable of efficiently serving end users or applications. In
this paper, we perform a survey of the relevant research activities targeting
to support the vision of Edge Mesh (EM), i.e., a 'cover' of intelligence upon
the EC infrastructure. We present all the parts of the EC/EM framework starting
from the necessary hardware and discussing research outcomes in every aspect of
EC nodes functioning. We present technologies and theories adopted for data,
tasks and resource management while discussing how (deep) machine learning and
optimization techniques are adopted to solve various problems. Our aim is to
provide a starting point for novel research to conclude efficient
services/applications opening up the path to realize the future EC form.
