Cyber Physical Systems are one step towards our quest to build smart systems. Smartness implies convenience, and there many compelling visions of the technology improving the quality of our lives.
Smart phones are ubiquitous now, and there are trends developing whereby a smart phone is the only means of access to the internet that some demographics have. Smart home technology is essentially automation, that through inexpensive devices, coupled to a pervasive network of broadband and 4G cellular access, is leading towards greater uptake of lighting and heating control for instance. Smart cities are perhaps the most visionary application of technology, as they integrate technologies that are available, together with technologies that are developing rapidly such as autonomous vehicles.
Research to date has been roughly partitioned into Wireless Sensor Networks, Internet of Things and Cyber Physical Systems, with clear areas of overlap. It is clear though that there is a move towards convergence as it becomes more difficult to separated the technologies, as at one level, any integration of physical sensing and actuation through a communication network actually becomes a cyber physical system.
What is interesting is that we appear to have a hierarchy of systems developing, with the realisation that a CPS is not necessarily limited to a discrete set of components and capabilities that are brought together to solve a particular problem; a CPS can emerge because it has been enabled by a pre-existing network infrastructure for instance.
So, if we have systems-of-systems, how do we:
- verify that a solution is correct prior to execution, and
- resolve any conflicts during execution.
The CPSs do need to scale in an uncertain environment, as the density of data and interactions increases, as well as the availability of computation through embedded “smart” devices.
We also have hardware and humans in the loop, which also mandates that we model behaviour and emotions if we are to explore realistic representations of the eventual systems.
We know that a CPS acts upon its environment, and that the environment is continually changing. How do we cater for secondary, unforeseen, unintended events?
This poses challenges for human safety and how we provide the necessary controls that can respond in real-time. We also know from experience that services are not all created equally. Different design approaches and standards can lead to different results.
Real-time control is a concern for the CPS research community, as the effects when a system does not respond instantaneously could be fatal. Such scenarios may happen at some time in the future, and depending upon the environment may cause exposure to hazardous situations such as chemicals, radiation or unknown phenomena.
The effects may be different for a changing demographic of user, and might not appear as we would expect.
One approach to the arrangement of CPSs could be to consider watchdog architecture, where the components and services are partitioned into:
- verification: we have methods in place to verify and validate design models prior to implementation. Formal methods can assist with this.
- conflict detection: we proactively include functionality within the design to seek out and detect behaviour that would cause conflict with either the system itself or with other interacting CPSs.
- conflict resolution: the solution has the capability to be rational and optimises its decisions based upon experience (knowledge base) and the desires of the system, which recognising any altruistic, share goals of a given community.
Scaling and density
Such is the potential scale of deployment of CPSs, there are challenges that must be addressed relating to both the scale of a CPS’s influence, as well as the density of sub-components of CPSs and their communications infrastructure.
For instance, how many individual devices might represent an agent or actor in an environment? If we assemble systems from sub-systems, who owns what in a service-based environment? This is particularly relevant to the stewardship of personal data. A related challenge is knowing when to share data to exploit an opportunity that will advance an agent’s goals.
The need to be flexible and adapt to changing circumstances is important for an effective CPS. How do we reconfigure during execution?
All of this functionality will place a greater demand on messaging for sensing and actuation, and introduces the possibility of greater interference and cross-talk within the networks. Since these are increasingly likely to have an impact on critical functions, there will be safety implications to consider.
Earlier, we considered a watch-dog architecture as one potential approach to governing a CPS. The implications of this being managed in real-time are additional complexity. Not only does the design have to take account of the inherent relationships between conflict detection, resolution and verification, but during execution, conflict detection, safety analysis and re-validation needs to occur.
This emphasises the dynamic nature of a CPS; it must react to environmental stimuli, whilst considering its internal goals. It has an obligation to not do harm, and must therefore continually re-assess its actions.
Software engineering approaches include testing as a stage, or as an interactive part of the development process. In the case of a CPS, the testing needs to be a continuous function if the underlying design model is to retain its key principles. For instance, sensor readings can be emulated to to test a particular function. If a set of readings produces test results that are outside of scope, then the CPS has to decide whether to adapt or to retain its current configuration. One significant challenge is how we can produce models that include an element of “conscience” for a CPS, to steer its reasoning when faced with dilemmas.
Big Data has brought the characteristics of volume, velocity, veracity and value to the fore. A CPS needs to decide what data is required for a particular purpose. An interface with humans is likely to include the capability to process natural language, to extract concepts from streamed inputs, and to perform information searches, all in real-time. In addition, the CPS will also need to be able to distinguish between information that is trusted and that which is not.
Normal human behaviour (whatever that is), is complex. Humans can cope with datasets that are incomplete, by using past experience, reasoning, or even guessing. How can be develop such capabilities in software? This is a key challenge for the control theory communities.