What is Progress OpenEdge? 

2017 01 05

Nowadays IT world would not be the same without a true old-but-gold Progress OpenEdge, former Progress 4GL. In 2021, this fourth-generation programming language celebrated its 40th anniversary of innovating how to build applications.  

However, as a Progress OpenEdge developer, I still often receive questions like: Are you programming? Does it support legacy systems? Similar questions prove that it is still essential to explain, so what is Progress OpenEdge? 

In this blog post, I go deeper into presenting Progress and its core products, which help deliver faster innovation cycles for business. You are welcome to read more! 

So, what does Progress OpenEdge mean? 

Progress is a massive technology comprised of programming language (ABL), Database Management System (DBMS), Application servers, front-end (web, mobile) development frameworks, IDE and many complementary products for different developer and customer needs. 

Shortly, it works as a development platform, covering multiple products and tools.  

Importantly, Progress OpenEdge offers architecture recommendations to uncover the most value while developing a new system or redesigning the legacy one. Have a look at one architecture example provided below.

Programming language (OpenEdge ABL)   

Advanced Business Language (ABL) is the core programming language of Progress OpenEdge. There are a couple of fundamental Progress OpenEdge ABL features: 

  • Procedural and object-oriented (OOP) programming paradigm support. From the very beginning, Progress maintained a procedural programming language. After the release of the OpenEdge ABL 10.1A version, the OOP paradigm was introduced; 
  • Backwards compatibility. OpenEdge ABL code is backwards compatible. As a result, the program written 20 years ago is fully compatible with the newest version of Progress installation. You may get compilation warnings that some statements are deprecated or new constructs should replace other stuff, but the code should work without more significant problems; 
  • A close relation to OpenEdge RDBMS. Database queries can be written in a strongly-typed manner, meaning the query statement validation happens during compile time instead of during application runtime. It is also possible to write the same database queries dynamically, including controlled record locking, index usage, records fetching order and many other database-related operations. It helps easily predict how records will be fetched from the database and provided for UI or services; 
  • Temp table. A unique data structure is like a real database table, where data resides in RAM. It is easy to manipulate data in the code because of the same structure as the database table. Moreover, it is a very convenient data structure to interchange data between different architectural layers, e.g. database access and business logic.

ABL supports a few types of user interfaces:  

  • GUI for .NET. It presents a UI that provides native support for .NET forms, .NET controls, and .NET foundation classes that can be directly viewed, communicated with, and manipulated using event-driven and object-oriented programming syntax. GUI also presents a UI in graphical widgets, including windows, dialogue boxes, and visual controls, supported by an event-driven programming model; 
  • ChUI (character UI). It introduces a UI in character-based widgets for effortless display and data entry. There is an opinion that such UIs are only used in legacy systems. For operations, intensive systems ChUI clients are preferable compared to Web or GUI applications, as data entrance rate is greater several times; 
  • WebUI. For the backend layer, Progress Application Server for OpenEdge (PASOE) provides developers with an option to create HTTP-based endpoints written in OpenEdge ABL. Progress recommends using Kendo UI and other well-known libraries and frameworks for the frontend part. 

Database (OpenEdge RDBMS) 

Another essential component of Progress OpenEdge is the Relational Database Management System, having a few key features: 

  • Neither SQL database nor NoSQL. OpenEdge RDBMS is not strictly relational database compared to Oracle or some other vendors. Relation constraints are not preserved in the database meta schema. Table triggers should ensure table relations integrity, i.e., the developer’s responsibility is to keep database integrity in order; 
  • SQL support. Despite Progress, the database is not a SQL Database since you can access data using SQL statements directly from the native ABL interpreter. Additionally, ODBC and JDBC drivers are supported.

Multiple enterprise features enable Progress Database: 

  • Horizontal table partitioning. Based on some search criteria, it is possible to allocate large tables into different physical storage. In this way, you can improve query performance for extensive tables;  
  • Availability. After imaging technology enables data restoration in case of disk failure in the precision in part of the second; 
  • Multi-tenancy. Database supports several separate and distinct groups of users, referred to as tenants. Multi-tenant applications have taken an increasingly more significant foothold in the database marketplace, largely due to the emergence of SaaS as a deployment strategy; 
  • Transparent data encryption. Provides data privacy while the data is “at rest” in the Progress database, regardless of the location of the database and who has a copy of it; 
  • Two-phase commit. Enables distributed transaction integrity when there is more than one database. 

Progress Application Server for OpenEdge (PASOE) 

Progress Application Server (PAS) for OpenEdge is a highly-scalable and standards-based application server. It requires fewer system resources and eases installation, configuration and management. PAS is the new version of original application server, known as Progress AppServer or Classic AppServer.  

PAS for OpenEdge has a few specific features that you should know about: 

  • Solid security. With included Spring Security Framework, PAS for OpenEdge guarantee the latest standards for secure operation; 
  • Cloud-based server. It unites all Progress products into a single application server technology, providing a scalable cloud-based server to increase operations efficiency and reduce management costs; 
  • OpenEdge ABL Development and Deployment support. It helps to use way fewer system resources than the OpenEdge AppServer and enhance the application performance of your business. 

Progress OpenEdge’s potential evolves yearly as it helps build dynamic multi-language applications, ensuring secure deployment across any platform, device or cloud.  

If you are looking for professional help to enable Progress OpenEdge for your business success, feel free to contact Baltic Amadeus