What features does FWD offer?
  • Compatibility with a vast library of legacy ABL features
  • Direct-to-WebTM deployment (no UI rewrite!)
  • Multiple application modes: GUI, ChUI, Appserver, batch
  • Choice of database at deployment time
  • Portability across hardware and software platforms
  • Integration of external code using custom conversion rules
More information is available below and even more in the FWD Wiki.

The FWD conversion process and runtime environment support a critical mass of legacy features necessary to convert and run a wide range of existing Progress applications. FWD includes tools to migrate your application data to a choice of database backends. The same converted application code is used, regardless of the choice of database.

FWD offers exciting new capabilities not available in existing applications, including a Direct-to-Web deployment option for GUI and ChUI applications, and an optional, enhanced security model.

Direct-to-WebTM Deployment

Direct-to-Web is an exciting new capability, which surfaces an application's GUI or ChUI interface directly through a web browser! Direct-to-Web is a built-in deployment option immediately available upon conversion of a GUI or ChUI application. For an application which uses standard 4GL GUI or ChUI widgets/controls, it requires no rewrite of an application's user interface; in fact, it requires no additional development effort beyond the normal conversion process. So, once an application is converted to run as a desktop client (GUI or ChUI) or via a terminal or terminal emulator (ChUI), it also can be surfaced through a web browser. The same user interface which users are used to working with as a desktop client is now available through the web!

Here's an example screen shot of a GUI screen from an ABL ADM/ADM2 demo application, converted with FWD. It is presented in a browser using the FWD web client, in virtual desktop mode:

Virtual Desktop Screenshot

The web client is not a Java applet, nor does it use or have any dependency on OpenEdge, Windows, Terminal Server, RDP, Citrix, etc. There are no plug-ins required. It is a very thin user interface renderer and event processor, implemented with JavaScript, HTML5, and CSS. It connects to a Java back-end server where the converted application's business logic runs.

Direct-to-Web also provides the capability to integrate legacy applications with newer web applications. If your organization is undergoing a modernization campaign or a push to the web, but a rewrite of your existing Progress GUI application is not feasible, Direct-to-Web offers features to ease the integration of a converted, legacy 4GL application into a "from-scratch" web application. This can be useful in a scenario where new or expanded functionality is being offered by a new web application, but legacy features must continue to be supported.

Here's a screen shot of the same converted ADM/ADM2 GUI application as above. However, in this case, a converted screen from the legacy application has been embedded within a larger web application. It is surrounded by and integrated with JavaScript controls. The embedded legacy screen is displayed and controlled by the enclosing web application: Embedded Web Application Screenshot

In the example above, all of the browser area outside the embedded legacy screen is the enclosing/controlling web application, hand-written using JavaScript, HTML5, CSS, and several open source JavaScript frameworks. The enclosing web application includes the title and logo area, menu bar, footer, "Hotel Capacity" calendar control, and "Median Revenue Earned by Room Type" chart and data table at the right side of the browser. The remaining area containing the converted GUI screen (sans window decorations) is an embedded iframe in which the FWD web client runs. It is connected to the same Java back-end where the converted application runs.

In embedded mode, a converted legacy application's graphical user interface is modified to remove window decorations and borders. In this case, it is presented using the Windows 10 theme, but it is possible to implement different color schemes and rendering themes to integrate more seamlessly with the user experience parameters of the surrounding web application. An API is available to load and manage converted, legacy screens via URL within the context of the controlling web application. It is also possible to invoke converted business logic from a web application using a JavaScript RPC-style interface. Bi-directional communication between converted ABL code and JavaScript is available through an enhanced implementation of the publish/subscribe feature. These interfaces allow rich communication and data exchange between converted ABL business logic and new JavaScript features to produce stunning, modern user interfaces, while preserving the investment in legacy screens and programs developed with the ABL.

See the FWD demonstration page for a demo of the web client features in action. See also the Hotel GUI Demo Application wiki page for more information.

Legacy Compatibility

FWD supports the following major feature areas:

  • Graphical User Interface (GUI) (including ADM/ADM2), with the following deployment choices:
    • Direct-to-Web
    • Desktop (Swing) client
  • Character User Interface (ChUI), with the following deployment choices
    • Direct-to-Web
    • Desktop (Swing) client
    • Terminal emulator
    • Physical terminal
  • A huge catalog of core language features (language statements, built-in functions, methods, attributes)
  • Database access (static and dynamic)
  • Application Server
  • Batch processing
There are some legacy feature sets which have not been implemented yet; however, each of these represents an incremental effort to implement, measured at most in person months:
  • ProDataSets
  • Object Oriented Programming
  • WebSpeed
Generally speaking, much more of the legacy environment is supported than unsupported. As such, any currently unimplemented features could be integrated without causing a major impact on a medium to large project.

Deployment-Time Database Choice

Unlike with Progress data servers, your application code does not need to change in order to support a different back end. The same converted code will work with your choice of database, and the application's behavior will be the same, to the extent the database implementation supports the minimum features needed by FWD.

The following databases are currently supported:

  • PostgreSQL (9.4 and higher) - recommended
  • SQL Server (2012 and higher)
  • H2 (1.4.192 and higher)
Support for additional databases can be added with an incremental effort. Please contact Golden Code Development for details.

Enhanced Security Options

Many applications use a hand-tooled security model which commingles security data with business data.  FWD offers the option to extract this security data and maintain it in an LDAP or XML-based directory.  This entails some custom conversion work and data migration work, but offers the capability to centrally manage users, groups, and permissions.