Chapter
2 Introduction to stream processing
2.2 Stream Processing Applications
2.2.1 Network monitoring for cybersecurity
2.2.2 Transportation grid monitoring and optimization
2.2.3 Healthcare and patient monitoring
2.3 Information flow processing technologies
2.3.3 Publish–subscribe systems
2.3.4 Complex event processing systems
2.3.5 ETL and SCADA systems
2.4 Stream Processing Systems
2.4.3 System architecture
Part II Application development
3 Application development – the basics
3.2 Characteristics of SPAs
3.3 Stream processing languages
3.3.1 Features of stream processing languages
3.3.2 Approaches to stream processing language design
3.4.2 A ``Hello World'' application in SPL
3.5 Common stream processing operators
3.5.1 Stream relational operators
3.5.3 Edge adapter operators
3.7 Programming exercises
4 Application development – data flow programming
4.2.2 Dynamic composition
4.3.2 Selectivity and arity
4.3.4 Output assignments and output functions
4.5 Programming exercises
5 Large-scale development – modularity, extensibility, and distribution
5.2 Modularity and extensibility
5.2.3 Primitive operators
5.2.4 Composite and custom operators
5.3 Distributed programming
5.3.1 Logical versus physical flow graphs
5.5 Programming exercises
6 Visualization and debugging
6.2.1 Topology visualization
6.2.2 Metrics visualization
6.2.3 Status visualization
6.3.2 User-defined operator debugging
6.3.3 Deployment debugging
6.3.4 Performance debugging
Part III System architecture
7 Architecture of a stream processing system
7.2 Architectural building blocks
7.2.1 Computational environment
7.3 Architecture overview
7.3.2 Resource management
7.3.7 Logging and error reporting
7.3.8 Security and access control
7.4 Interaction with the system architecture
8 InfoSphere Streams architecture
8.2 Background and history
8.4.2 Instance components
8.5.2 Resource management and monitoring
8.5.6 Logging, tracing, and error reporting
8.5.7 Security and access control
8.5.8 Application development support
Part IV Application design and analytics
9 Design principles and patterns for stream processing applications
9.2 Functional design patterns and principles
9.3 Non-functional principles and design patterns
9.3.1 Application design and composition
9.3.3 Performance optimization
10 Stream analytics: data pre-processing and transformation
10.4 Descriptive statistics
10.4.1 Illustrative technique: BasicCounting
10.5.1 Illustrative technique: reservoir sampling
10.6.1 Illustrative technique: Count-Min sketch
10.7.1 Illustrative techniques: binary clipping and moment preserving quantization
10.8 Dimensionality reduction
10.8.1 Illustrative technique: SPIRIT
10.9.1 Illustrative technique: the Haar transform
11 Stream analytics: modeling and evaluation
11.2 Offline modeling and online evaluation
11.3 Data stream classification
11.3.1 Illustrative technique: VFDT
11.4 Data stream clustering
11.4.1 Illustrative technique: CluStream microclustering
11.5 Data stream regression
11.5.1 Illustrative technique: linear regression with SGD
11.6 Data stream frequent pattern mining
11.6.1 Illustrative technique: lossy counting
11.7.1 Illustrative technique: micro-clustering-based anomaly detection
12.2 The Operations Monitoring application
12.3 The Patient Monitoring application
12.4 The Semiconductor Process Control application
13.2 Challenges and open problems
13.2.1 Software engineering
13.2.3 Scaling up and distributed computing
13.3 Where do we go from here?
Keywords and identifiers index