This paper presents the programming model and the basic structure of the languages used by the STER environment for distributed real-time programming. Applications in STER are configured using several levels of abstraction represented by the entities module, group, station and system. Modules are the basic reusable components able to meet the different timing and placement constraints of different applications. The programming model is integrated to a scheduling strategy that guarantees, off-line, that modules with hard real-time constraints will always meet their deadlines and tries, dynamically, to meet as many soft real-time constraints as possible.