The last years have been characterized by the arising of highly distributed computing\ud
\ud
platforms composed of a heterogeneity of computing and communication resources including\ud
\ud
centralized high-performance computing architectures (e.g. clusters or large shared-memory\ud
\ud
machines), as well as multi-/many-core components also integrated into mobile nodes\ud
\ud
and network facilities. The emerging of computational paradigms such as Grid and Cloud\ud
\ud
Computing, provides potential solutions to integrate such platforms with data systems, natural\ud
\ud
phenomena simulations, knowledge discovery and decision support systems responding to a\ud
\ud
dynamic demand of remote computing and communication resources and services.\ud
\ud
In this context time-critical applications, notably emergency management systems, are\ud
\ud
composed of complex sets of application components specialized for executing specific\ud
\ud
computations, which are able to cooperate in such a way as to perform a global goal in a\ud
\ud
distributed manner. Since the last years the scientific community has been involved in facing\ud
\ud
with the programming issues of distributed systems, aimed at the definition of applications\ud
\ud
featuring an increasing complexity in the number of distributed components, in the spatial\ud
\ud
distribution and cooperation between interested parties and in their degree of heterogeneity.\ud
\ud
Over the last decade the research trend in distributed computing has been focused on\ud
\ud
a crucial objective. The wide-ranging composition of distributed platforms in terms of\ud
\ud
different classes of computing nodes and network technologies, the strong diffusion of\ud
\ud
applications that require real-time elaborations and online compute-intensive processing as\ud
\ud
in the case of emergency management systems, lead to a pronounced tendency of systems\ud
\ud
towards properties like self-managing, self-organization, self-controlling and strictly speaking\ud
\ud
adaptivity.\ud
\ud
Adaptivity implies the development, deployment, execution and management of applications\ud
\ud
that, in general, are dynamic in nature. Dynamicity concerns the number and the specific\ud
\ud
identification of cooperating components, the deployment and composition of the most\ud
\ud
suitable versions of software components on processing and networking resources and\ud
\ud
services, i.e., both the quantity and the quality of the application components to achieve\ud
\ud
the needed Quality of Service (QoS). In time-critical applications the QoS specification\ud
\ud
can dynamically vary during the execution, according to the user intentions and the\ud
\ud
Developing Real-Time Emergency\ud
\ud
Management Applications: Methodology for\ud
\ud
a Novel Programming Model Approach\ud
\ud
Gabriele Mencagli and Marco Vanneschi\ud
\ud
Department of Computer Science, University of Pisa, L. Bruno Pontecorvo, Pisa\ud
\ud
Italy\ud
\ud
2\ud
\ud
2 Will-be-set-by-IN-TECH\ud
\ud
information produced by sensors and services, as well as according ...