DDEC (Detroit Diesel Electronic Controls) is an enterprise application used to manage engine parameter data for programming Detroit Diesel Engine Controllers. The system was originally a mainframe IMS (Information Management System) application that has been modernized to run as a Java web application while preserving the original transaction-based architecture.
┌─────────────────────────────────────────────────────────────────┐
│ Web Browser │
│ (Terminal Emulation UI) │
└─────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ DDEC Web Application │
│ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │
│ │ JSP Screens │ │ Spring MVC │ │ Keycloak │ │
│ │ (80x24 Forms) │ │ Controllers │ │ Security │ │
│ └─────────────────┘ └─────────────────┘ └─────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ QRE 2.0 Framework │
│ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │
│ │ IMS Transaction│ │ COBOL Data │ │ Database │ │
│ │ Manager │ │ Type Support │ │ Abstraction │ │
│ └─────────────────┘ └─────────────────┘ └─────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ SQL Server Database │
│ (Engine Parameters, Customer Data) │
└─────────────────────────────────────────────────────────────────┘
QRE (Quipoz Runtime Environment) is a proprietary framework developed by CSC/DXC that emulates IBM mainframe IMS functionality in Java. It allows COBOL-based IMS applications to be migrated to modern Java/Spring platforms with minimal code changes.
Key capabilities:
The application presents a mainframe terminal emulation interface. The web browser displays forms that mimic IBM 3270 terminal screens:
The JSP files in webapp/ represent different application screens:
| Screen Pattern | Purpose |
|---|---|
MainMenu.jsp |
Main application frame (frameset) |
Bm4*Form.jsp |
BM4 series - Basic Maintenance screens |
D21*Form.jsp |
D21 series - Data entry/display screens |
D2*Form.jsp |
D2 series - Data management screens |
D3*Form.jsp |
D3 series - Additional data screens |
*slForm.jsp |
Selection list screens |
IMS_*.jsp |
IMS system screens (clear, logon, etc.) |
The application manages engine controller parameters including:
The application uses IMS-style transaction codes. Key transactions defined in ddec-transactions.xml:
| Transaction | Purpose |
|---|---|
| R24PMENU | Main menu transaction |
| R33POEMN | Program management |
| R19PBMHI | Batch management |
| R24PD3II | Data initialization |
Roles are managed via Keycloak or in-memory configuration:
| Role | Access Level |
|---|---|
| admin | Full administrative access |
| Guest | Read-only access |
| IOSCHD | Batch job scheduling |
Default test users (in user-profiles.properties):
admin / adminGuest / Guesttest1 / test11. User enters search criteria on form
2. JSP submits to Spring MVC controller
3. Controller invokes IMS transaction
4. Transaction handler executes DL/I calls
5. QRE translates to SQL queries
6. Results mapped to COBOL copybook structures
7. Data rendered on JSP screen
1. User modifies data on form
2. Form validation (JavaScript + server-side)
3. Transaction handler processes update
4. COBOL data structures converted to SQL parameters
5. Database updated within transaction boundary
6. Confirmation displayed to user
| Profile | Purpose |
|---|---|
web |
Web application mode (enables embedded Tomcat) |
local-test |
Local development with HSQLDB |
dev |
Development environment |
qa |
QA/Testing environment |
prod |
Production environment |
keycloak |
Enable Keycloak authentication |
batch |
Batch processing mode |
| File | Purpose |
|---|---|
application.yml |
Spring Boot configuration |
ddec.properties |
Core DDEC settings |
ddec-web.properties |
Web UI settings |
ddec-{env}.properties |
Environment-specific settings |
user-profiles.properties |
In-memory user accounts |
The application includes batch job capabilities:
ddec-transactions.xml with programType="BATCH"qre2-batch-korn modulecd src/ddec-web
java -Djava.net.preferIPv4Stack=true \
-jar target/ddec-web-1.0.1-SNAPSHOT.war \
--spring.profiles.active=web,local-test \
--server.address=0.0.0.0
Access at: http://localhost:8080
Login: admin / admin
Requires:
ddec-{env}.properties settings