Academic Context

Course Information

Course: Microservices Software Architecture (A.Y. 2025/2026)
Objective: Design and implement a realistic distributed platform integrating BPMN process orchestration, formal choreography projections, SOA modeling (TinySOA), and heterogeneous microservice communication protocols (REST, SOAP, gRPC, Redis Pub/Sub).

Business Domain

ACME Mobility operates a fleet of electric vehicles across 7 designated stations in Bologna. Each station hosts electric cars, e-scooters, and electric mopeds. The system delivers a seamless end-to-end user experience:

  • User registration with automatic Jolie bank account creation
  • Interactive map with real-time station vehicle availability
  • Instant rental via QR Code scan simulation
  • Short-term reservation (30-minute window)
  • Live ride telemetry streaming (position and battery) over Server-Sent Events (SSE)
  • Automated settlement and money unlock upon ride completion
  • Damage reporting and automated daily vehicle maintenance cycle

Core Technical Goals

BPMN Process Orchestration

Rental lifecycle executed by Camunda 8 (Zeebe). Backend state drives Angular UI navigation via the canonical `/resume` endpoint.

Distributed Formal Choreography

Complete formal global specification and role projections for all 8 system participants (RS, User, Bank, Station, FM, TS, BMS, LS).

UML TinySOA Profile

Full SOA modeling using Eclipse Sirius: capabilities, service interfaces, domain entities, and utility components.

Polyglot Microservices

Seamless integration of Spring Boot, Jolie, Angular 21, gRPC, SOAP, PostgreSQL, Redis, and Docker Compose.

Home Architecture