What is FWD?
About FWD

FWD is open source software which helps you maximize the value of your ABL investment through

FWD Analytics

Understand Your Application Better with FWD Source Code Analytics

The first step in any modernization or code improvement effort is to understand the target application. FWD includes a powerful source code analytics tool set to help you understand your ABL application better.

The FWD project has tools which preprocess and parse entire ABL applications, using the source code and schemata to generate Abstract Syntax Tree (AST) data structures. These ASTs represent the code and database structure of an application in a form that is ideal for inspection and analysis. FWD Analytics leverages these ASTs to present information about your application that is difficult or impossible to determine with conventional, text-based search techniques.

This tool set evolved from the need to understand the low-level internals of applications being converted to Java with FWD. However, the analytics tools can be used on a stand-alone basis, even if you do not intend to use FWD's transformation capabilities or its Java runtime environment.

Use FWD Analytics To:

  • View hundreds of pre-defined reports which reveal exactly what your application uses and does.
  • Drill down into detailed reports to explore specific findings.
  • Inspect highlighted results in context using side-by-side, interactive, source code and AST views.
  • Visualize a call graph of all the ways your application invokes related code; traverse the graph to explore these interdependencies.
  • Leverage the call graph to identify missing code and dead code.
  • Define custom reports and ad-hoc searches to discover exactly what you want to know about your application.

[Please note: an older version of the FWD analytics tools which produce static HTML reports and a less developed call graph is available with the current open source distribution of the FWD project. The FWD analytics web application shown above currently is under development. It is expected to be released shortly.]

Keep your Application

Transform Your Application and Deploy with the FWD Runtime

FWD replaces the OpenEdge runtime and database entirely, while preserving and helping you grow the value of your application investment. Whether you want to convert your application to Java and not look back, or keep developing your application with the ABL, FWD gives you the tools to take your application to the next level.

  • Conversion is 100% automated and repeatable, so you can continue with your normal development in the ABL indefinitely, or you can cut over to Java development at your pace.
  • FWD delivers your existing GUI to the web immediately, giving you the freedom to then modernize that user interface as much or as little as you want.
  • FWD is Java, giving you immediate access to numerous, modern technologies.
  • Wish you had a feature that OpenEdge doesn't provide? FWD is open source and flexible. Take a look at some planned enhancements in FWD's road map. Ask yourself what improvements you have always wanted and let us know (you will have to register to post).

Immediate Web Deployment

The FWD runtime can be configured to surface a GUI (or ChUI) application through a web browser using the FWD thin web client (no plugins, no applets... just javascript). No user interface rewrite is required! The UI can be exposed in its entirety, as a virtual desktop within a browser. It looks and feels the same to your users as your existing application.

Application Modernization at Your Pace

If modernization of your ABL application is a goal, moving from OpenEdge to Java with FWD gives you better options. Conversion already gets your existing user interface to the web, gets your business logic to Java, and gets your data to a modern database. With that behind you, you can focus on and prioritize the most important areas of your application to modernize. Without the need to straddle new and legacy platforms, multiple database implementations, and fat vs. thin deployment technologies, your modernization plan can be greatly simplified. With FWD's custom conversion features and the capabililty to extend the ABL in FWD, there are likely ways to leverage automation to further reduce the effort.

Flexibility - Develop in the ABL, or Java, or Both

FWD offers new development model options. ABL source code is converted to Java and the compiled result is deployed on the Java platform. That means you have the opportunity to develop your application in Java going forward, if you so choose. It does not mean you have to give up developing in the ABL if you don't want to!

You may want to eliminate your dependency on the OpenEdge platform, but perhaps you have concerns about retraining an existing Progress development team in Java. Maybe you wish to continue developing in the ABL for purposes of continuity or just preference. On the other hand, you may want to move forward with Java development exclusively. FWD supports either model, or a blend of the two. You can continue developing some or all of your application using the ABL and convert to Java as part of your normal build process. You choose which, if any, application components are developed in Java, and which in the ABL.

Regardless of the primary development language you choose, custom conversion features let you integrate hand-written or third-party Java code and maintain these dependencies consistently across application builds.

A Different Approach to Replace OpenEdge

With FWD, your dependency on all Progress technology is eliminated. Your converted application is a "drop-in" replacement for the original. FWD is different than other migration solutions. It provides:

  • a fully automated conversion process that results in immediately compilable Java source code; and
  • a strictly compatible runtime environment that ensures your application behaves exactly as it did before conversion.
The combination of these attributes minimizes the cost of conversion and the risk of deployment, and gives you new development choices.

Automated Conversion

The FWD conversion technology consists of an ABL-compatible preprocessor, lexer, parser, and conversion engine. Conversion requires some up-front work: gathering inputs, preparing conversion hints, feature gap analysis, and planning for external dependencies that may be different in the post-conversion environment. Once that preparatory work is complete, the conversion runs as a fully automated batch, as often as needed. The Java code it produces can be compiled immediately. The SQL data definition language it produces can be used to create new databases immediately. FWD includes tools to migrate your OpenEdge databases to PostgreSQL, SQL Server, or H2.

Compatible Runtime Environment

FWD provides a runtime environment that makes a converted application behave exactly as the original. Converted code compiles against this runtime and calls into it for all the services it needs, including database access, user interface services, user-local resources, transaction management, etc.

Data Migration

FWD includes tools to import data that has been exported from Progress databases into new, relational databases (e.g., PostgreSQL). The import is performed as a batch and leverages multiple CPUs.