┌─────────────────────────────────────────┐ ┌─────────────────────┐ ┌─────────────┐ │ Automation, machine to machine │ │ End users/Browsers │ │ Agents │ │ command line prompt (curl, wget..) │ │ │ │ │ └─────────▲─────────────────────▲─────────┘ └───────────▲─────────┘ └───────▲─────┘ │ │ │ │ │ │ │ │ │ │ │ │ ┌───────────▼───────────┬─────────▼───────────┬─────────────▼───────────┬─────────▼──────┐ │ Command line CLI │ HTTP Endpoints │ Web user interface │ Remoting │ ├───────┬───────────────│ │ │ │ │ SSH │ websocket │ │ (Jelly /Groovy views) │ │ │ │ or HTTP │ │ │ │ │ ├───────────────┴─────────────────────┴─────────────────────────┤ │ │ │ │ │ │ │ Stapler: security, routing, requests processing │ │ │ │ │ │ ├───────┴───────────────────────────────────────────────────────────────┴────────────────┤ │ │ │ Business layer: models, processing, scheduling │ │ │ ├────────────────────────────────────────────────────────────────────────────────────────┤ │ │ │ Storage layer: XML files on JENKINS_HOME │ │ │ └────────────────────────────────────────────────────────────────────────────────────────┘