Successfully developing applications for large-scale DRE systems is very difficult for most (all?) programmers. Decentralized development makes this greatly complicates this already difficult task. Reliability, maintainability, and understandability are critical components for success TENA provides: Model-based, high-level programming abstractions. Bug prevention through compile-time type checking and an API that's hard to use wrong. Model-driven code generation of custom-tailored core middleware software. Complete, working, model-based applications, ready for customization by programmers.The TENA Middleware uses model-driven automated code generation to reduce the amount of software that must be written (and tested) by humans. Furthermore, the TENA Middleware provides the application developer with a powerful programming abstractions. These programming abstractions are easy for the application developer to understand, resulting in applications with fewer mistakes.