9ce6ae37be
- Em dashes: 1712 remplaces par tirets simples (86 fichiers + _index.md, en-tete section Limagrain conserve) - Checklists: 24 '- [ ]' -> '- ☐' (3 pages operations, plus de todos Obsidian) - Ancres: 33 reparees (slugs GitHub + ancres HTML <a id> reconnues), 1 reciblee (manuel de reten) - related: tenseflow -> tense-flow, pie -> mechanical-elements, group.md retire (doublon shipping) - Registre: compteur global 122 -> 131 pages - Rapport racine _lint_report.md mis a jour (scan v2 + re-scan final: 0 anomalie) - Aucun fichier limagrain/ modifie (cloisonnement)
200 lines
10 KiB
Markdown
200 lines
10 KiB
Markdown
---
|
|
title: "System Architecture Overview"
|
|
type: architecture
|
|
sources:
|
|
- areas/architecture/index.md (404 - compiled from cross-source knowledge)
|
|
- areas/saas/index.md (404)
|
|
- areas/hardware/index.md (404)
|
|
- areas/license/index.md (404)
|
|
- areas/ERP.md
|
|
- areas/parameters.md
|
|
- CLAUDE.md context
|
|
- custom/analyse_fonctionnelle.md
|
|
- sources/archives/Presentation_GALILEO.md
|
|
- sources/archives/Communication_WMS_GALILEO.md
|
|
related:
|
|
- architecture/security.md
|
|
- architecture/application-dictionary.md
|
|
- architecture/entities-map.md
|
|
- architecture/galileo-integration.md
|
|
- concepts/erp-interface.md
|
|
- concepts/mechanical-elements.md
|
|
last_compiled: "2026-04-17"
|
|
---
|
|
|
|
# System Architecture Overview
|
|
|
|
## Overview
|
|
|
|
Easy WMS is a Warehouse Management System developed by Mecalux. It is a multi-layer web application running on Windows servers (IIS), backed by a relational database (Oracle, SQL Server, MySQL, or PostgreSQL), accessed via a SmartUI web interface, RF terminals (RFT), and mobile apps.
|
|
|
|
The system follows an **Application Dictionary (AD)** architecture where most business logic is defined as configurable metadata (entities, commands, workflows) rather than hardcoded logic, enabling extensive customization without code changes.
|
|
|
|
Easy WMS is available in two deployment models:
|
|
- **SaaS (cloud-hosted by Mecalux)**: Multi-tenant, managed infrastructure, Amazon SaaS environment (required for some modules like Amazon Marketplace)
|
|
- **On-Premise**: Installed on customer or partner-managed Windows VMs; customer controls updates, backup, and networking
|
|
|
|
## Deployment Stack
|
|
|
|
### On-Premise Deployment
|
|
|
|
| Layer | Technology |
|
|
|-------|-----------|
|
|
| OS | Windows Server |
|
|
| Web Server | IIS (Internet Information Services) |
|
|
| Application Runtime | ASP.NET Core (ASPNETCORE_ENVIRONMENT variable for dev/prod) |
|
|
| Database | Oracle 19c / SQL Server 2019 / MySQL 8.0.14+ / PostgreSQL 14+ |
|
|
| Cache | Redis (session and application cache) |
|
|
| Message Queue | Internal background job system (no external broker documented) |
|
|
| Equipment Integration | TCP/IP sockets for AGV/PLC, WIFI for Pallet Shuttle tablets |
|
|
| Print Server | Local or network label printers (Zebra-type) |
|
|
|
|
### Application Pools (IIS)
|
|
|
|
Easy WMS uses multiple IIS application pools to isolate services:
|
|
- **Main WMS pool**: Core WMS logic, UI, API endpoints
|
|
- **Background Jobs pool**: Asynchronous processing (replenishment, defragmentation, AGV, label prints)
|
|
- **Integration pool**: ERP message processing (inbound/outbound queue)
|
|
|
|
Each pool runs as a separate Windows process with its own identity and recycling schedule.
|
|
|
|
### SaaS Deployment
|
|
|
|
In SaaS mode, Mecalux hosts all infrastructure. Key differences:
|
|
- Customer accesses via browser only; no local server management
|
|
- Updates are applied by Mecalux on a managed schedule
|
|
- Some integrations (ERP, label printers, RF equipment) require VPN tunnels or local agents
|
|
- Amazon SaaS is a specific certification required for Amazon Marketplace connector (Android 10 device requirement applies)
|
|
|
|
## API Architecture
|
|
|
|
Easy WMS exposes three REST API families:
|
|
|
|
### Application Dictionary API (AD API)
|
|
The primary programmatic interface. All AD elements (Commands, Queries, Dialogs, Views, Entities) are accessible via:
|
|
|
|
```
|
|
POST /api/commands/{commandName} → Execute a Command
|
|
GET /api/queries/{queryName} → Execute a Query (LINQ-based)
|
|
GET /api/entities/{entityName} → CRUD on an Entity
|
|
POST /api/dialogs/{dialogName}/steps → Advance a Dialog flow
|
|
```
|
|
|
|
### QueryExecute (LINQ API)
|
|
Allows dynamic data retrieval using LINQ-style expressions against any exposed View or Entity. Used for reporting, dashboards, and integration reads.
|
|
|
|
### CommandExecute API
|
|
Used to trigger business operations (receive stock, release orders, assign tasks, etc.) mapped to AD Commands.
|
|
|
|
### ERP Integration API
|
|
Asynchronous message exchange via structured XML/JSON messages over REST or file-based queues. See [ERP Interface](../concepts/erp-interface.md) for the full message catalog.
|
|
|
|
## Multi-Site and Multi-Warehouse
|
|
|
|
- A single EasyWMS installation can manage multiple **Sites** (physical warehouses)
|
|
- Each site has its own **parameters**, **locations**, **users**, and **equipment**
|
|
- Inter-site transfers are managed via transfer orders (SOR type = Transfer)
|
|
- The **DOM module** extends this to multi-node distributed order management
|
|
|
|
## Warehouse Types
|
|
|
|
Two fundamental warehouse types drive most architectural decisions:
|
|
|
|
| Type | Description | Key Constraint |
|
|
|------|-------------|----------------|
|
|
| **Manual warehouse** | Human operators pick using RF or paper; locations accessed directly | No location sequencing required |
|
|
| **Automatic warehouse** | Conveyor/shuttle/AGV system; WMS controls machine movements via control system | All movements must go through task queue; no direct access |
|
|
|
|
Mixed warehouses (some automatic aisles, some manual) are supported. The warehouse type determines which task flows, counting modes, defragmentation strategies, and station types are available.
|
|
|
|
### Automation control system (TMS)
|
|
|
|
Automatic warehouses depend on a **Transport Management System (TMS)** that physically drives conveyors, stacker cranes, miniloads, shuttles and lifts. In Mecalux installations the TMS is **GALILEO** (production) or **EasyS** (3D simulation for development / demos). Both dialog with EasyWMS through the **EasyWMS Gateway** Windows service over TCP port 3000.
|
|
|
|
Principle: **EasyWMS holds all business intelligence** (stock, strategies, orders); **GALILEO has no predictive vision** - it only requests orders and executes them. Three GALILEO-initiated message types drive the flow (Event / Search / End) plus two status update streams (station / route).
|
|
|
|
Full protocol, workflows (`Galileo_PIEEventHandler_PR`, `Galileo_SearchCreatedEventHandler_PR`, `Galileo_EndCreatedEventHandler_PR`) and command catalogue: [GALILEO Integration](galileo-integration.md). Bring-up and simulation: [Galileo Simulation](../operations/galileo-simulation.md). Troubleshooting: [Galileo Troubleshooting](../operations/galileo-troubleshooting.md).
|
|
|
|
## Background Job System
|
|
|
|
Easy WMS relies heavily on background jobs for asynchronous processing:
|
|
|
|
| Job Name | Frequency | Purpose |
|
|
|----------|-----------|---------|
|
|
| TryToReplenishProductLocations | Continuous | Automatic replenishment of PDL locations |
|
|
| Delete_StockStatusJob_PR | Every 15 min | Remove expired stock quality locks |
|
|
| AGV communication jobs | Continuous | Phase protocol exchange with AGV controllers |
|
|
| PSService | Continuous | Pallet Shuttle tablet communication |
|
|
| Continuous Slotting | Configurable | Ongoing slotting recommendations |
|
|
| Metric Gatherer | Configurable | Data Analytics KPI collection |
|
|
| Cycle Count Generation | Per schedule | Create cycle count batches |
|
|
| Defragmentation Planner | Per schedule | Execute defragmentation strategies |
|
|
|
|
## Hardware Requirements
|
|
|
|
### On-premise minimum server specifications
|
|
|
|
| Server role | CPU | RAM | Storage |
|
|
|-------------|-----|-----|---------|
|
|
| **Database server** | 4-core @ ≥ 3 GHz | 32 GB | 600 GB (data) + 50 GB (OS) |
|
|
| **Application server** | 4-core @ ≥ 3 GHz | 32 GB | 200 GB (logs + app) |
|
|
|
|
Both servers run Windows Server. For small warehouses the DB and App roles can be on the same machine (specifications must still be met).
|
|
|
|
### Client and peripheral hardware
|
|
- **Client (SmartUI)**: Modern web browser (Chrome/Edge); tablet or desktop PC
|
|
- **RF Terminals (RFT)**: Dedicated warehouse scanners running Windows CE or Android; connect via WIFI
|
|
- **Label Printers**: Zebra-type thermal printers; connected via network or USB
|
|
- **Automatic Warehouse**: Requires PLC/control system interface (proprietary per vendor - AGV, Pallet Shuttle, APS3D each use their own protocol)
|
|
- **Scales**: PIE stations can have integrated scales for container weight validation
|
|
- **Mobile Devices**: Android 10+ required for Amazon SaaS Marketplace integration
|
|
|
|
### SaaS tiers (Azure-hosted by Mecalux)
|
|
|
|
EasyWMS SaaS runs on Azure and is available in three subscription tiers:
|
|
|
|
| Tier | vCPUs | RAM | Max concurrent users | Max orders/day |
|
|
|------|-------|-----|---------------------|----------------|
|
|
| **Basic** | 2 | 7 GB | 10 | 200 |
|
|
| **Standard** | (contact Mecalux) | - | - | - |
|
|
| **Advanced** | (contact Mecalux) | - | - | - |
|
|
|
|
All SaaS tiers: Mecalux manages infrastructure, updates, backup. ERP integration and printers require VPN tunnel or local agents. Some integrations (Amazon Marketplace) require Android 10+ devices.
|
|
|
|
## License Model
|
|
|
|
Easy WMS licenses are modular:
|
|
- **Base WMS**: Core inbound/outbound/inventory functionality
|
|
- **Module licenses**: Each additional module (AGV, Pallet Shuttle, Multi-Carrier, Slotting, LMS, 3PL Billing, DOM, etc.) requires a separate license
|
|
- **User licenses**: Typically per concurrent user or per named user
|
|
- **Site licenses**: Some modules require per-site activation
|
|
|
|
## Parameters and Configuration
|
|
|
|
System behavior is governed by two layers of parameters:
|
|
1. **Organization-level parameters**: Apply globally across all warehouses
|
|
2. **Warehouse-level parameters**: Override organization defaults for a specific site
|
|
|
|
Key system parameters are documented at `areas/parameters.md`. Each functional module has its own parameter set. See [Parameters](../concepts/parameters.md) for the full compiled reference.
|
|
|
|
## Common Errors
|
|
|
|
| Symptom | Likely Cause |
|
|
|---------|-------------|
|
|
| IIS application pool stopped | Background job crash or unhandled exception; check Windows Event Log |
|
|
| ERP messages not processed | Integration pool stopped or message queue backlog; check integration logs |
|
|
| RF terminal cannot connect | WIFI network issue or IIS binding misconfiguration |
|
|
| "Development environment" error in browser | ASPNETCORE_ENVIRONMENT set to Development in production; should be Production |
|
|
| Automatic warehouse tasks not generating | Background job (replenishment/defragmentation planner) not running |
|
|
|
|
## Related
|
|
|
|
- [Application Dictionary](application-dictionary.md) - AD structure: Commands, Queries, Entities, Workflows
|
|
- [Security](security.md) - User roles, authentication, audit
|
|
- [Entities Map](entities-map.md) - Data model and entity relationships
|
|
- [ERP Interface](../concepts/erp-interface.md) - All ERP messages and integration protocols
|
|
- [Parameters](../concepts/parameters.md) - System configuration parameters
|
|
- [AGV](../modules/agv.md) - Automatic warehouse AGV protocol
|
|
- [Pallet Shuttle](../modules/pallet-shuttle.md) - PS system architecture
|
|
- [APS3D](../modules/aps3d.md) - Fleet Manager controller
|