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.
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.
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.
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.
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:
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.
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.
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.