Requirements
The following high-level requirements have been identified:
- layered architecture
- lowest level mechanisms
- high level policy
- tiered architecture
- frontend
- middleware
- agents
- component architecture
- functional blocks
- multiple frontends
- system resource management
- discovery
- allocation
- utilization
- communication
- point to point
- aggregate
- low latency/high bandwith
- asynchronous
- fault tolerant
- heterogeneous data support
- guaranteed cleanup
- ability to enter quiescent state on demand (e.g. get to consistent state)
- single instance can be shared by multiple tools
Junction Requirements
- The infrastructure should provide a set of predefined junctions to support common operations
- Junctions can be user defined
- There is a mechanism to register/de-register junctions
- Junctions can be composed
- Junctions can be activated/deactivated/(re-)configured
- Reconfigure may just be a normal message intercepted by the plugin
- Junctions can be bound to different dataflows
- Limit plugin propagation
- A junction can query its location in topology
- Junctions are supported on leaf nodes
- Junction dependencies will be managed by the infrastructure (e.g. autoload dependent junctions)
- The junction has access to communication synchronization primitives
- e.g. receive from any child, receive from n children
- Junctions can access system interfaces (e.g. open), though this is not encouraged
Entry Point
Routing Framework
Session Management
Security Model
Bootstrapping