# LANSA (development environment)

LANSA is an integrated development environment (IDE) for building desktop, web, and mobile software applications that can be deployed to Cloud, Windows, Linux, and IBM server platforms. The main feature of the LANSA environment is the 'RDML / RDMLX' language–which is classified as a 4GL (4th generation language). RDML closely follows the syntax of IBM CL or Control Language. CL is the "scripting language" equivalent of the OS/400 operating system. In recent years RDML has been extended to become RDMLX. This new version of the language has extra features, commands, types, and functions that are used in component development. RDML, on Microsoft Windows, integrates with ActiveX.
In its first release in 1987, the product was called lambda. At that time, solutions developed with RDML could be deployed to IBM S/38 and from 1988 onwards to the IBM AS/400 (iSeries, Systems, now IBM). The LANSA's RDML Program was related to (Rapid Development and Maintenance Language). This development language allows you to create a High-Level Application Definition or abstraction of your business application. This definition is independent of the operating platform. Defining logic with a 4GL makes your programs independent of the 3GL layer. A 4GL will eventually generate some type of 3GL code, which is compiled and executed, but you never need to modify the generated 3GL. It should not matter which 3GL is used. A High-Level Application Definition should allow you to generate or regenerate the same applications in different languages to make your applications portable.
Since 1992 LANSA has been deployed to multiple server platforms, including IBM, Windows, Linux, OS/2, and Unix.

## Business rules and data definitions repository

The LANSA development environment includes a metadata repository which is an enhanced type of data dictionary. The database repository contains data and file definitions, business rules, application templates, and RDML code.
The repository stores information about fields (or data elements) in the application including descriptions, column headings, edit codes, visualizations, default values, help text, and prompt programs. It holds information about files and application databases including physical files, logical files (or views), relationships, file definition attributes, file validation rules, trigger programs, multilingual definitions, virtual fields, and predetermined join fields. Objects and components used for event-driven Windows applications also reside in the repository.
Applications share objects and logic from the repository and the repository is an active participant with the applications as both the custodian of the data and business rule definitions and the rule enforcer.

## Data management services

The data management services provide a data abstraction layer, similar to a data access layer, that separates the physical data from applications that use the data.
Applications access data using data management programs generated from data definitions and business rules held in the repository. The data management programs know about the structure and relationships of the database and the business rules that control create, read, update, and delete actions. When definitions and rules change the data management programs require regeneration but the applications that use the data require no change.
Applications are independent of data structures, formats, and locations and access the data by issuing requests to the data management programs.