## 2 Proposed layering structure  
The proposed architecture relies on a layering architecture as the one reported in Figure 1. This layering architecture example highlights the fact that _the Cognitive Middleware is a middleware lying between the service/content layers and the transport layers_; in the example reported in the figure these last are represented by the technology-independent IP layer and by the technology-dependent layers (1, 2 and 3) belonging to four different underlying access networks indicated, for convenience, with the letters A,..., D.  
The figure also highlights that a key novelty is that the Cognitive Middleware takes information from both transport and service/content layers; such information can concern transport related performance parameters such as Bit Error Rates (BERs), transfer delays, supported traffic bit rates for each service class and each underlying network, as well as service/content related information such as the type of carried contents/services and the related characteristics. Then, based on proper (technology independent) elaborations of all this information, the Cognitive Middleware provides valuable outputs to both transport and service/content layers. Note that, according to the proposed vision, _the traditional stack layering, becomes, as far as control is concerned, a sort of star layering with the Cognitive Middleware being the centre of the star_. In other words, the proposed approach aims at _moving all \"thinking\" tasks related to all layers in a single transparent, flexible and efficient layer, namely the Cognitive Middleware layer_. The advantages of this approach will be outlined in Section 4. Figure 1: Proposed layering architecture. A fundamental Cognitive Middleware property is its _transparency_; this means that its insertion does not entail the modification of any of the Underlying Networks, IP, service/content/middleware layer procedures. Such transparency will be achieved thanks to the appropriate combination of non-invasive sensing and actuation techniques. In this respect, at least in a first exploitation phase, Cognitive Middleware control functionalities will be put into operation whenever they will be necessary either in order to assure interoperation, or to enhance unsatisfactory performance, whilst already existing control functionalities of the underlying access networks will be used in all other cases. The _flexibility_ of the Cognitive Middleware layer can be reached thanks to the extensive use of ontological models allowing the \"translation\" of heterogeneous data and parameters (belonging to heterogeneous networks) in homogeneous metadata which are properly handled (discovered, aggregated, elaborated, provided) in a context-aware fashion. This approach favors the decoupling from the specificity, on the one hand, of the lower layers (namely the underlying network transport layers) and, on the other hand, of the higher layers (namely the middleware/service/content layers). In addition, the middleware nature and the modular organization of the Cognitive Middleware makes system evolution possible via a Software Defined Radio (SDR) approach, _i.e._, the Cognitive Middleware can be upgraded via SDR-like techniques, without the need of modifying any piece of hardware. The _efficiency_ of the Cognitive Middleware layer mainly derives from the concentration of the thinking functionalities related to all the layers in a single layer. Therefore, in theory, a given thinking module can reason on the grounds of the complete vision of the overall information (measurements, data, services, contents) coming from all layers of all networks; in practice, to reduce the amount of data exchanged over the network, a subset of the overall potential information, dynamically selected according to the actual context, will be actually visible to the Cognitive Middleware, namely the one which is considered most valuable for the Cognitive Middleware algorithms.