After discussing how SPAs are developed, visualized, and debugged in Chapters 3 to 5, this chapter will focus primarily on describing the architectural underpinnings of a conceptual SPS application runtime environment.
Shifting the discussion to the middleware that supports stream processing provides an opportunity to discuss numerous aspects that affect how an application runs. These aspects include the support for resource management, distributed computing, security, fault tolerance as well as system management services and system-provided application services for logging and monitoring, built-in visualization, debugging, and state introspection.
This chapter is organized as follows. Section 7.2 presents the conceptual building blocks associated with a stream processing runtime: the computational environment and the entities that use it. The second half of this chapter, Sections 7.3 and 7.4, focuses on the multiple services that make up a SPS middleware and describes how they are integrated to provide a seamless execution environment to SPAs.
Architectural building blocks
Middleware is the term used to define a software layer that provides services to applications beyond what is commonly made available by an Operating System (OS), including user and resource management, scheduling, I/O services, among others. In general, middleware software provides an improved environment for applications to execute. This environment referred to as the application runtime environment, further isolates the application from the underlying computational resources.
Therefore, the fundamental role of any middleware is to supply additional infrastructure and services.