Section §3
System overview
Architecture, deployment topology, integration map.
3.1 What MES-Plus is
MES-Plus v6.4 is a thick-client Windows business application paired with a single SQL Server database, deployed on the customer’s own premises. The application binary is delivered by the vendor; the database schema, stored procedures, and a substantial body of customised forms and reports were authored partly by the vendor and partly by the customer’s own people over 17 years of operation.
In category terms it is a mid-market manufacturing ERP with light MES (manufacturing execution) extensions. It is not a best-of-breed system; it is a single integrated system covering accounting, inventory, production, and procurement in one schema, accessed through one client.
3.2 Architecture, at a glance
┌──────────────────────────────────────────────┐
│ CUSTOMER LAN │
│ │
30 × │ ┌────────────────────┐ │
shop-floor │ │ MES-Plus thick │ │
terminals │───┤ client (Delphi- │ │
│ │ class Win32 EXE) │ │
│ └─────────┬──────────┘ │
│ │ │
8 × │ ┌─────────▼──────────┐ ┌─────────────┐ │
office │───┤ MES-Plus thick │ │ Custom │ │
workstations │ │ client │◀──▶│ integration │ │
│ └─────────┬──────────┘ │ broker │ │
│ │ │ (.NET 4.7, │ │
│ ┌─────────▼──────────┐ │ 2014) │ │
│ │ SQL Server 2014 │◀──▶│ │ │
│ │ (340 GB, single │ └──────┬──────┘ │
│ │ instance) │ │ │
│ └────────────────────┘ │ │
└────────────────────────────────────┼─────────┘
│
┌────────────────────┼─────────────────────┐
│ ▼ │
┌────────▼──────┐ ┌────────────────┐ ┌────────▼────┐
│ Bank SFTP │ │ Customs portal │ │ BI export │
│ (5 banks) │ │ (EDI / XML) │ │ (nightly │
└───────────────┘ └────────────────┘ │ CSV → S3) │
└─────────────┘
Three tiers: thick client, single database, side-car integration broker. No web UI. No mobile. No microservices.
3.3 Components
| Component | Vintage | Owner | Source available |
|---|---|---|---|
| MES-Plus client (EXE) | 2008 base, patched 2017 | Vendor | No [INF] |
| SQL Server schema (core) | 2008, 280+ tables | Vendor | Schema visible, vendor stored procs partially obfuscated |
| SQL Server schema (customer-authored) | 2010–2024, ~40 tables, ~120 SPs | Customer | Yes |
| Custom reports | 2008–2024, ~180 reports | Mixed | Yes (Crystal Reports .rpt files) |
| Custom screens / form modifications | 2012–2019, ~25 modifications | Customer (consultant) | Partial — .dfm-style overlay files retained, no source for the consultant’s logic |
| Integration broker | 2014, .NET 4.7 Framework | Customer | Customer-written C#, depends on two third-party DLLs whose source is not held |
| SSIS packages | 2016–2022, 7 packages | Customer | Yes, .dtsx retained |
| Scheduled batch scripts | 2014–2024, 11 .bat and PowerShell scripts | Customer | Yes |
| Operating system (server) | Windows Server 2016 | Customer | OS, not source |
| Database engine | SQL Server 2014 Standard | Customer (licensed) | N/A |
The “vendor / customer / mixed” ownership split is what shapes every modernisation decision in §12. The vendor’s compiled binary cannot be modified; everything else can be, with consequences.
3.4 Deployment topology
The system runs on three physical (now virtualised) servers in the customer’s own server room:
- APP01 — Windows Server 2016, application server. Hosts the integration broker, SSIS runtime, scheduled tasks, and the file shares that the thick client reaches over SMB.
- DB01 — Windows Server 2016, SQL Server 2014 Standard. Single instance. 8 cores, 64 GB RAM.
- DB02 — Windows Server 2019, SQL Server 2019 Standard. Configured as Log Shipping secondary for DB01. Brought online in 2021 as a disaster-recovery target. Not used for read traffic.
Network: a flat /24 LAN. Shop-floor terminals are domain-joined Windows 10 LTSC PCs on the same subnet. No DMZ; the integration broker reaches the bank SFTP and customs portal directly via the customer’s firewall NAT.
The server room is climate-controlled but does not have generator backup; UPS coverage is approximately 25 minutes.
3.5 Integration map
The customer’s MES-Plus instance exchanges data with eight external systems:
| Direction | Counterparty | Mechanism | Frequency | Owner |
|---|---|---|---|---|
| Out | Bank A (primary) | SFTP, GPG-encrypted XML | Daily 22:30 | Broker |
| In | Bank A | SFTP, account statements MT940 | Daily 06:00 | Broker |
| Out | Banks B–E | SFTP, ABO/MultiCash | Weekly Fri | Broker |
| In/Out | Customs portal (CZ ČNB equivalent) | Web service, signed XML | Per declaration | Broker |
| Out | EDI partner #1 (largest customer) | SFTP, EDIFACT D.96A INVOIC | Per invoice batch | SSIS |
| In/Out | EDI partner #2 | SFTP, custom CSV | Daily | SSIS |
| In/Out | EDI partner #3 | SFTP, custom CSV | Daily | SSIS |
| Out | BI export (data warehouse) | Nightly CSV → S3 bucket | Daily 02:00 | SSIS + AWS CLI |
In addition, the payroll system (separate vendor) receives a monthly CSV export of hours and absences, generated manually by the HR administrator from a custom MES-Plus report.
The accountant’s tax-filing software is fed by manual export — no automated integration. This is treated by the customer as acceptable because the volume is low (monthly) and the accountant verifies figures by hand regardless.
3.6 What runs where
Day-to-day, the system has three operating regimes:
- Business hours (06:00–22:00). Interactive use. 30 shop-floor terminals plus 8 office workstations. Database load is steady; peak is shift change at 14:00 when production reporting bursts in.
- Nightly batch window (22:30–02:00). Inventory revaluation, MRP run, cost rollup, three integration exports, BI export, database maintenance (index rebuild, statistics). The window is tight; on month-end it routinely overruns to 04:30 [DOC, close-cycle log 2024].
- Weekend maintenance window (Sat 22:00–Sun 06:00). Reserved by IT for OS patching, integration-broker code deployments, schema changes. Used approximately 6 times per year.
The 22:30–02:00 batch window is the single highest-stakes operational interval in the system. §11 risk register treats batch-window failure as a Severity-1 risk.
3.7 What is not in MES-Plus
Three classes of business activity that an outsider might assume live in MES-Plus do not:
- Payroll. Separate vendor system (a Czech-market HR/payroll product). MES-Plus exports timesheet data to it monthly.
- CRM. No CRM module is licensed or in use. The sales director maintains a workbook (XLSX) with approximately 600 customer records, opportunity stages, and contact notes. This workbook is the only system-of-record for opportunity pipeline. [INT, sales director]
- Document management / drawings. Engineering drawings live on a separate Windows file share organised by part number. MES-Plus references part numbers but does not store or version the drawings.
These boundaries matter for §8 (integrations) and for §12 (modernisation): a “replace MES-Plus” project that does not account for the workbook-as-CRM and the file-share-as-DMS will solve the wrong problem.