Publisher's Synopsis
Middleware is the software that connects network-based requests generated by a client to the back-end data the client is requesting. Middleware programs come in on-premises software and cloud services, and they can be used independently or together, depending upon the use case. Software systems and applications have become increasingly distributed, complex, and dynamic, for example because of interactions and dependencies with the physical world that arise from various types of sensors in the so called Internet of Things. Another driver is the increasing interoperation between software artifacts from multiple service providers. This evolution continues and the dynamics, both within the software systems as well as in the environment in which systems and applications are deployed drive the need for flexible modifications, preferably statically, yet by necessity often at run time. Software has become strategic to developing effective distributed real-time and embedded (DRE) systems. Next-generation DRE systems, such as total ship computing environments, coordinated unmanned air vehicle systems, and national missile defense, will use many geographically dispersed sensors, provide on demand situational awareness and actuation capabilities for human operators, and respond flexibly to unanticipated run-time conditions. Systems today are built in a highly static manner, with allocation of processing tasks to resources assigned at design time. For systems that never change, this is an adequate approach. Large and complex military DRE combat systems change and evolve over their lifetime, however, in response to changing missions and operational environments. This volume describes the need for reflective and adaptive middleware systems (RAMS) to bridge the gap between application programs and the underlying operating systems and network protocol stacks in order to provide reusable services whose qualities are critical to DRE systems. Context aware applications, which can adapt their behaviors to changing environments, are attracting more and more attention. To simplify the complexity of developing applications, context aware middleware, which introduces context awareness into the traditional middleware, is highlighted to provide a homogeneous interface involving generic context management solutions. A survey of state-of-the-art context aware middleware architectures is proposed in first chapter. The challenge for software engineering research is to devise notations, techniques, methods and tools for distributed system construction that systematically build and exploit the capabilities that middleware deliver. New research angle regarding flexible heterogeneous information fusion architecture for the IoT is the theme of fifth chapter. In the last few years, the use of gestural data has become a key enabler for human-computer interaction (HCI) applications. The growing diffusion of low-cost acquisition devices has thus led to the development of a class of middleware aimed at ensuring a fast and easy integration of such devices within the actual HCI applications. A modular middleware for gestural data and devices management is also proposed further chapter. In last, this volume illustrates the concept and approach with an example in the domain of security engineering of a large scale, internet based application in the domain of online document processing. In addition, we sketch why such an approach cannot only yield the desired variants of middleware security services, but also application-driven security dashboards, i.e. the tools to monitor and manage the actual security environment.