Based on Architecture Version 6 (September 2025)
The DDEC (Detroit Diesel Electronic Controls) system is a distributed application that manages engine calibration data for programming Detroit Diesel engine controllers. The architecture consists of multiple servers handling web applications, batch processing, file transfers, and database storage.
┌────────────────────────────────────────────────────────────────────────────────────┐
│ DDEC SYSTEM ARCHITECTURE │
├────────────────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────┐ ┌──────────────┐ │
│ │ ORATOIMS │◄── Engine Order Info │ DDEC WEB │ │
│ │ (Legacy) │ │ Users │ │
│ └──────────────┘ └──────┬───────┘ │
│ │ │
│ ▼ │ HTTPS │
│ ┌──────────────────────────┐ ┌─────────────┐ ┌────────▼────────┐ │
│ │ LEGACY APP SERVER │ │ │ │ WEB APP SERVER │ │
│ │ (Batch Processing) │◄──SFTP──│ FILE SERVER │──SFTP──► │ │
│ │ STNAIDDCL1640 │ │ │ │ STNAADDCL1629 │ │
│ └──────────┬───────────────┘ └─────────────┘ └────────┬────────┘ │
│ │ │ │
│ ▲ TCP/IP │ 1433 │
│ ┌──────────┴───────────────┐ ┌──────▼────────┐ │
│ │ DRS / MBE DRS Clients │ │ DATABASE SRV │ │
│ │ (DDCTransClient) │ │ SQL Server │ │
│ └──────────────────────────┘ │ STNABDDCW1960 │ │
│ └───────────────┘ │
└────────────────────────────────────────────────────────────────────────────────────┘
The DDEC Web application runs on the modern application server and provides browser-based access to engine calibration data.
┌─────────────────────────────────────────────────────────────────────────────────┐
│ APPLICATION SERVER │
│ SUSE Linux Enterprise 15 / Open Liberty V22 / Java 17 │
├─────────────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ DDEC WEB APPLICATION │ │
│ │ ┌─────────────┐ ┌─────────────────────┐ ┌─────────────┐ │ │
│ │ │ │ │ │ │ │ │ │
│ │ │ JSPs │ │ Spring Boot / │ │ Data Layer │──┼──► Database │
│ │ │ (Frontend) │ │ Spring Security │ │ │ │ TCP/IP │
│ │ │ │ │ (Backend) │ │ │ │ 1433 │
│ │ └──────┬──────┘ └──────────┬──────────┘ └─────────────┘ │ │
│ │ │ │ │ │
│ └─────────┼────────────────────┼──────────────────────────────┘ │
│ │ │ │
│ │ HTTPS │ HTTPS │
│ │ Port 443 │ │
└──────────────┼────────────────────┼─────────────────────────────────────────────┘
│ │
▼ ▼
┌──────────────┐ ┌──────────────────┐
│ Web Browser │ │ Keycloak │
│ (DDEC WEB │ │ IAM/Auth Server │
│ Screens) │ │ │
└──────────────┘ └──────────────────┘
▲
│ HTTPS
┌──────┴───────┐
│ DRS Comm │
│ (Auth Only) │
└──────────────┘
| Component |
Technology |
Description |
| Frontend |
JSP 2.3 |
Terminal-emulation screens (80x24 forms) |
| Backend |
Spring Boot, Spring Security |
REST APIs, business logic, security |
| Data Layer |
JPA/Hibernate |
Database access abstraction |
| Authentication |
Keycloak |
SSO/IAM for user authentication |
- User Access: Users connect via HTTPS (port 443) using Microsoft Edge browser
- Authentication: Keycloak handles SSO authentication
- Request Processing: Spring Boot processes requests, Spring Security enforces authorization
- Database Access: Data layer connects to SQL Server via TCP/IP port 1433
- Response: JSP pages render terminal-style interface back to browser
Batch jobs handle scheduled operations and DRS client communication for engine calibration downloads/uploads.
┌────────────────────────────────────────────────────────────────────────────────┐
│ DDEC APPLICATION SERVER │
│ (Batch Processing) │
├────────────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ ┌─────────────────┐ ┌─────────────────────────┐ │ │
│ │ │ │ │ │ │ │
│ │ │ Batch Jobs │◄────►│ Java Package / │──────┼──► Database │
│ │ │ (KSH Scripts) │ │ Runtime Libraries │ │ TCP/IP │
│ │ │ │ │ │ │ 1433 │
│ │ └────────┬────────┘ └─────────────────────────┘ │ │
│ │ │ ▲ │ │
│ │ │ │ │ │
│ │ ▼ │ │ │
│ │ ┌─────────────────┐ │ │ │
│ │ │ Scheduler │─────────────────┘ │ │
│ │ │ (Cron/Control-M)│ │ │
│ │ └─────────────────┘ │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ │ │ │
│ │ SFTP │ Direct │
│ │ Port 22 │ File Access │
│ ▼ ▼ │
└────────────────────────────────────────────────────────────────────────────────┘
│ ┌─────────────────┐
│ │ File System │
▼ │ (Linux) │
┌──────────────┐ └─────────────────┘
│ DRS Comm │
│ Client │
└──────────────┘
| Component |
Technology |
Description |
| Batch Jobs |
KSH 93 (Korn Shell) |
Shell scripts for calibration processing |
| Java Runtime |
Java 17 packages |
Compression, encryption, file processing |
| Scheduler |
Cron / Control-M / CI Unit Center |
Job scheduling and triggering |
| File System |
Linux filesystem |
Working files, temporary storage |
- DRS Client Request: DRS Comm client connects via SFTP (port 22)
- File Upload: Request files uploaded to file system
- Job Execution: Scheduler triggers KSH batch jobs
- Processing: Java libraries handle compression/encryption
- Database Access: Jobs read/write to SQL Server (TCP/IP 1433)
- Response: Result files placed on file system for client download
| Component |
Technology |
| Operating System (App Server) |
SUSE Linux Enterprise 15 |
| Operating System (DB Server) |
Windows Server 2019 |
| Application Server |
Open Liberty 22.0.0.6 |
| Runtime |
Java 17 |
| Framework |
Spring Boot 2.7.10 |
| Database |
Microsoft SQL Server 2017 |
| Screen Technology |
JSP 2.3 |
| Batch Processing |
KSH 93 / Java packages |
| Authentication |
Keycloak |
| Scheduling |
Cron / Control-M / CI Unit Center |
| Client Browser |
Microsoft Edge v104+ |
| File Storage |
Linux File System |
| Port |
Protocol |
Purpose |
| 443 |
HTTPS |
Web application access |
| 1433 |
TCP/IP |
SQL Server database |
| 22 |
SFTP |
File transfers for batch jobs |
| 8080 |
HTTP |
Development/internal access |
- Access via web browser (Microsoft Edge)
- Connect to HTTPS port 443
- Authenticate via Keycloak SSO
- Desktop application for dealers/technicians
- Connects via SFTP (port 22) for calibration data
- Two variants: DRS and MBE DRS
- Legacy client connector
- Communicates with legacy application server
- Used for backward compatibility
- External system integration
- Receives DDEC Engine Order Information
- Communicates with legacy application server
The SQL Server database contains two main schemas:
| Schema |
Purpose |
| DDEC_WEB |
Application data (calibrations, customers, parameters) |
| Keycloak |
Authentication/authorization data |
Browser → HTTPS/443 → Keycloak Auth → Spring Boot → Data Layer → SQL Server
DRS Client → SFTP/22 → File Server → KSH Jobs → Java Libraries → SQL Server
ORATOIMS → Legacy App Server → File Server → DDEC Database
- Network: Firewalls between all server zones
- Transport: HTTPS for web, SFTP for file transfers
- Authentication: Keycloak SSO with role-based access
- Authorization: Spring Security for API protection
- Database: SQL Server authentication with application accounts