Javra IDE Architecture
The Architecture for Javra IDE for Progress could be explained using the figure 1.3 below:
There are two databases being used in the diagram above :
Javra IDE / XE Repository:
Contains all the program logic data of:Menu Structure
Screen Layout (e.g. widget placement and properties, icons, toolbars)
Security settings (program and widget security, as well as record create, update and delete security)
- Data validation rules
- Multi-language labels
Customer Database
Contains all the actual data of the customer, which the customer would want to view at the UI.
Javra IDE for Progress /XE Files Client side
This is the interface which allows user to login and perform various tasks.
- Javra IDE for Progress/XE Files Server side
This represents the Web Server, where all the business logic, data logic is carried out.
When the user login to application, the GUI manager starts and all the application related components like the menu structure, fields/widgets, browser fields, filter fields, etc. are fetched from the X/E repository and generated upon certain event generation at runtime. The app server works the data logic or the business logic and fetches the data from the customer database and then renders it to the client.
The Repository
The X/E Repository is the central storage where data is stored and maintained for future retrieval. The X/E Repository stores Menus, Screen Layouts, Widget properties and several other data related to Javra IDE for Progress application, which are used to compose application forms dynamically at the run time.
The following entity relationship diagram represents the high level structure of the Javra IDE for Progress repository.
Javra IDE for Progress is a repository based framework which means that features and characteristics of the application are stored in the database. When the Javra IDE for Progress is connected to a new database the schema of that database is imported into the repository. The repository provides an extended representation of each table and field in the data dictionary.
With this extended representation of the data dictionary developers can enable or disable a wide range of properties for each table and field. Tables can be grouped in the repository through which the Javra IDE for Progress is able to enforce referential integrity rules. The repository also stores the definition of every menu and screen within the application.