(Difference between revisions)
|
|
| Line 37: |
Line 37: |
| | * AMQP – Queues and RPC | | * AMQP – Queues and RPC |
| | ** Queues for 'work' | | ** Queues for 'work' |
| - | ** RPC for immediate calls (see [[BOSS/AIR]]) | + | ** RPC for immediate calls (see [[BOSS/AIR|AIR]]) |
| | | | |
| | * Messages – all JSON | | * Messages – all JSON |
| Line 49: |
Line 49: |
| | [[File:Boss7.png]] | | [[File:Boss7.png]] |
| | | | |
| | + | This is [[BOSS/AIR|AIR]] |
| | == Communication : BOSS Participant == | | == Communication : BOSS Participant == |
| | [[File:Boss9.png]] | | [[File:Boss9.png]] |
Revision as of 08:32, 15 July 2010
This presentation introduces the BOSS system.
BOSS Overview
BOSS is a framework to orchestrate workflow steps around the build system.
Workflow : Ruote
Ruote has been selected as the workflow framework :
- Straightforward
- Concise
- Clean design
- Ruby core
- JSON messages
- Language agnostic
- Active + welcoming upstream
Workflow
- Jobsheet based (not state-machine):
- The workflow passes a 'sheet of paper' between participants
- Each participant looks at the paper, does some work, writes on it and passes it on
- The engine decides who gets the paper next
- Paper = JSON structure
- Multiple independent workflows can co-exist
AMQP
- Reliability
- Performance
- Flexibility
- Simplicity
- Multiple Language Bindings
- Persistence, concurrence and queuing “for free”
Talking to the BOSS
- AMQP – Queues and RPC
- Queues for 'work'
- RPC for immediate calls (see AIR)
- Messages – all JSON
- Workitems
- Service request/response
Communication : Queues
Communication : RPC
This is AIR
Communication : BOSS Participant
- Receive a workitem
- Process it
- Return it
- Control thread using RPC allows cancel/status