While invisible in many cases, the presence of embedded systems is being spreading with a staggering pace during the last years, consuming the largest part of the world-wide production of microprocessors / microcontrollers. Coupled with the constantly evolving and improving performance trade-offs among cost, size, energy consumption, storage, processing and communication capabilities – wired or wireless – as well as the parallel evolvement of sensor and actuator technologies, their exploitation spans horizontally multiple and heterogeneous ICT application domains and sectors, such as industrial automation/control and maintenance systems, energy distribution, transportation and telecommunication networks, critical infrastructure and environmental monitoring systems, home and building management systems, entertainment, safety and comfort systems, medical systems etc., rendering embedded systems an extremely open field with high potential in today’s and future markets, crucial for the competitiveness of multiple and important industry sectors. This emerging level of penetration of the embedded intelligence in industry, infrastructures and in everyday’s public and private spaces, the crucial role of real-time and networked embedded systems as bridges between the physical and information world planes, the ubiquitous presence and accessibility and the capabilities to connect smart miniaturized objects with the internet, integrating and leading into the major revolution of globally connected systems and to the vision of the Internet of Things (IoT) (or Internet of Everything - IoE) embedded in Smart Environments and Platforms, has been identified as an emerging “neural system” in society and economy, and as one of the next big concepts to support societal changes and economic growth at an annual rate estimated at 20% .
Major part of the added value, as well as of the development costs of complex cyber physical systems are attributed to the embedded software executed in these devices. This is responsible to orchestrate and manage the available hardware capabilities and resources, and to realize the local or distributed algorithms and application specific logic, the communication protocols and the networked services offered, many times under strict extra-functional requirements such as the real-time response or energy consumption characteristics. Today, the development and deployment of systems and applications exploiting state of the art complex NES technologies and systems such as resource-constraint Wireless Sensor/Actuator Networks (WSANs), involves a number of different and complementary views, while there is not always a mature separation of concerns between the typical stakeholders and the various required engineering disciplines. These can be shortly outlined in:
- Embedded software engineering expertise, where central issues of concern are portability / efficiency trade-offs, programming and task models & scheduling, as well as local resource management mechanisms
- Wired/wireless network engineering expertise, where the focus is on the channel & link behaviour, on bandwidth / energy trade-offs, on protocol design and on topology and mobility patterns and modelling
- Distributed application software engineering expertise, where communication / processing trade-offs, time and synchronization aspects and mechanisms of representation and discovery of resources as network functions are of importance
- Specific application domain expertise, where it is assumed that in addition to the domain knowledge (e.g. on processing algorithms, on data semantics & relationships, on application level functional and extra-functional properties etc.) there exist generic system and software engineering skills, too.
All this expertise has to be efficiently coupled for the final system to satisfy important horizontal requirements, ease of use and effective guidance for on-site diagnosis and troubleshooting.
Important technology breakthroughs have already been filed and widely accepted, in each specific expertise axis, such as operating systems and libraries for the embedded software engineer, international standards and industry-driven specifications for the networked system engineer, and various proposals for the distributed application engineering which target interoperability, service discovery and composition, code mobility, reprogramming and reconfiguration. Furthermore, there are already many proposals today, which may follow different approaches in order to hide the complexity and the heterogeneous nature of the underlying infrastructure, ranging from simple hardware abstraction layer definitions to platform virtualization through the usage of widely used or custom virtual machines, depending on the available hardware resources. In addition, a number of proposals deal with resource management and run-time dynamic adaptivity of the nodes and the network, focusing on the establishment of cross-layer interaction frameworks. Finally, from a system integration and macro-programming perspective, the abstraction of the whole network or network segment can be achieved by different approaches, such as by extending the scope of the VM, by resource naming and dynamic task distribution, by shared data abstractions with local or logical scope, or by providing a distributed data-base view of the network, with a really vast number of research effort and proposals focusing on these issues.
Although all existing proposals succeed in the provision of a higher level abstraction which may simplify the application design and/or distributed data handling, it is hard to find a solution that concurrently succeeds in integrating multiple aspects of the state of the art in a disciplined cross-layer approach while preserving predictability in the behaviour of important extra-functional and emergent properties, without leading to a strict monolithic system which needs extensive reengineering in order to adopt new algorithms, networking protocols or tool hooks and dependencies. Furthermore, the current level of usability of all these technologies is eventually captured at the integrator’s view: today, a broad and detailed knowledge is required to deploy an efficient complex system, from system-level code of the node device to channel behavior, network protocols, distribution mechanisms and application functionality. This spread of resources is obviously not efficient; an effective encapsulation and coupling of important technology breakthroughs and a synergy with flexible tool chains are needed such way to promote composition and management of the large design and configuration space, from each simple node to the whole network of nodes and from each distributed function to the full system deployed.
Ινστιτούτο Βιομηχανικών Συστημάτων