In this report we will be providing a fresh architecture (virtual services) and associated implementation for dynamically aligning and reconfiguring the behaviour of network system services. Virtual services definitely are a compositional middleware system which transparently interposes itself between a service and a client, masking new functionality with configurations of modules arranged in processing chains. Virtual services enable computer programmers and system administrators to extend, alter, and reconfigure dynamically the behaviour of current services for which source code, object code, and administrative control aren’t available. Virtual service module processing chains are instantiated on a per connection or invocation basis, thus permitting the reconfiguration of individual connections to a service without impacting other connections to the same service. To confirm our architecture, we’ve applied a virtual services software development toolkit and middleware server. Our experiments reveal that virtual …
Contents: Dynamic Reconfiguration with Virtual Services
1 Background
1.1 Motivating Problem
1.2 Difficulties
1.3 Objectives
2 Requirements
2.1 Evaluation Criteria
2.1.1 Reconfigurability
2.1.2 Dynamism
2.1.3 Loose Coupling
2.1.4 Transparency
2.1.5 Flexibility
2.1.6 Persistence
2.1.7 Programmability
2.1.8 Usability
2.1.9 Efficiency
3 Methodology
3.1 Implementation Plan
3.1.1 Managed Object Infrastructure
3.1.2 Modules as Units of Reconfiguration
3.1.3 Transparent Mediation Strategies
3.2 Evaluation Plan
3.3 Limitations
i4 System Architecture
4.1 System Components
4.1.1 Virtual Service Modules
4.1.2 Module Processing Chains
4.1.3 Virtual Services
4.1.4 Virtual Service Context
4.1.5 Virtual Service Containers
4.1.6 The Virtual Service Agent
4.2 Architectural Challenges
4.2.1 Service Mapping
4.2.2 Reflection-based Management
4.2.3 Concurrency Control
4.2.4 Configurations and Reconfiguration
5 Implementation
5.1 Application Layer Virtualization
5.2 Transport Layer Virtualization
5.3 Module Processing
5.4 Serialization of Configurations
5.5 Application Programming Interface
5.5.1 Module API
5.5.2 Module Chain API
5.5.3 Virtual Service API, Containers and Agents
6 Applications
6.1 Non-security Applications
6.1.1 Manual Reconfiguration
6.1.2 TCP Forwarding and Zero-downtime Upgrades
6.1.3 Logging
6.1.4 Dynamic Instrumentation
6.1.5 Filtering
6.1.6 Proxying
6.1.7 Component Migration
6.2 Dynamically Reconfigurable Security
6.2.1 Authentication
6.2.2 Connection Restriction
6.2.3 Request Screening
6.2.4 Encryption
6.2.5 Traffic Monitoring and Adaptive Response
6.2.6 Software Fuses
7 Experiments
7.1 Module Complexity
7.2 Performance
7.2.1 Test Plan
7.2.2 Measurements
7.3 Autonomic Self-Defense
7.3.1 Adaptive Response
7.3.2 Self-reconfiguration as Exploit Countermeasure
7.4 Summary of Results
8 Related Work
8.1 Adaptive Middleware
8.2 Aspect-oriented Systems
8.3 Compositional Systems
8.4 Dynamic Software Updating
8.5 Active Systems
8.6 Database Queries as Mobile Code
8.7 Service Orchestration
8.8 Static and Dynamic Reconfiguration
8.9 Miscellaneous Customization Systems…