  Distributed systems are notoriously difficult to understand and analyze in
order to assert their correction w.r.t. given properties. They often exhibit a
huge number of different behaviors, as soon as the active entities (peers,
agents, processes, etc) behave in an asynchronous manner. Already the
modelization of such systems is a non-trivial task, let alone their formal
verification.
  The purpose of this paper is to discuss the problem of distributed monitoring
on a simple model of finite-state distributed automata based on shared actions,
called asynchronous automata. Monitoring is a question related to runtime
verification: assume that we have to check a property $L$ against an unknown or
very complex system $A$, so that classical static analysis is not possible.
Therefore instead of model-checking a monitor is used, that checks the property
on the underlying system at runtime.
  We are interested here in monitoring distributed systems modeled as
asynchronous automata. It is natural to require that monitors should be of the
same kind as the underlying system, so we consider here distributed monitoring.
A distributed monitor does not have a global view of the system, therefore we
propose the notion of locally monitorable trace language. Our main result shows
that if the distributed alphabet of actions is connected and if $L$ is a set of
infinite traces such that both $L$ and its complement $L^c$ are countable
unions of locally safety languages, then $L$ is locally monitorable. We also
show that over infinite traces, recognizable countable unions of locally safety
languages are precisely the complements of deterministic languages.
