Repository navigation
Release 2.0.0
Release v2.0.0: The Modular Evolution
This milestone marks a major architectural shift from a monolithic structure to a high-performance, modular system. By decoupling the core mathematical engine from the graphical interface and introducing a dedicated simulation server, the project is now ready for distributed scaling and cross-platform integration.
Architectural Overhaul: Monolith Decomposition
The project has been refactored into 5 specialized Maven modules to ensure high cohesion and low coupling:
petri-math: The standalone core engine containing simulation algorithms and mathematical logic.petri-model: Dedicated layer for graph structures and robust PNML parsing.petri-api: Shared interfaces, constants, and DTOs for seamless inter-module communication.petri-swing-ui: The legacy desktop client, now fully isolated as a pluggable UI module.petri-server: A brand-new Spring Boot-based microservice.
Petri-Server (Simulation as a Service)
You can now run simulations in the cloud or on a remote server. The new petri-server provides:
- REST API (v1): Secure endpoints for network uploads and simulation lifecycle management.
- Real-time Streaming: Integrated Server-Sent Events (SSE) to push simulation steps to clients instantly.
- Interactive Control: WebSocket (STOMP) support for low-latency session management (Pause/Resume/Stop).
- Live Documentation: Interactive API exploration via Swagger UI (available at
/docs).
Technical Improvements & Optimization
- Modern Stack: Upgraded to Java 23 and established a robust Maven Multi-Module build lifecycle.
- Optimized Parsing: Replaced legacy Regex-based parsing in
NetLibrarywith a faster, Reflection-based approach. - Stability: Resolved a critical Race Condition in
HeadlessSimulationRunnerfor reliable CLI-based executions. - Asset Management: Configured Git LFS to properly handle large
.pnmlfiles and binary assets.