By Jorge Ubeda

Advantage Plex 5.1 from Computer Associates is a rapid application development tool that was first released about 10 years ago. It’s based on what we call today the Model Driven Architecture (MDA): an abstract design model that enables 100-percent code generation to multiple deployment platforms.


Readers’ Choice Awards

Recently, Builder.com announced the winners of the 2nd Annual Builder Readers’ Choice Awards for 2003. Advantage Plex 5.1 from Computer Associates was voted second runner-up in the Best Windows Development category. This was the first year that Advantage Plex received a nomination. The strong showing had us wondering what this development tool was like and what made it jump in member popularity. Consequently, we asked the Builder community to volunteer any first-hand knowledge they had of Plex. Builder member Jorge Ubeda was kind enough to gives us his assessment of the development tool.


Advantage Plex utilizes object-oriented inheritance and encapsulation and has strong support for defining and reusing patterns. The underlying model has multidimensional configuration management built-in, including:

  • Variants, which allow you to manage platform-specific requirements. Variants are conceptually equivalent to transformation marks in MDA.
  • Versions, which allow you to store multiple versions of the same application in a single model (release 1, release 2, etc.).
  • Languages, which allow the model to store strings and other resources in different languages (French, Spanish, English, etc.).

Everything in the Plex repository is strongly integrated, so you can change the attributes or properties for any object, and the change will be reflected anywhere it’s used in the model. In this way, the impact of any change is fully controlled and applied when required.

There are two main parts of Advantage Plex: the abstract design model and code generators for deployment. The product includes generators for C++ (Windows), Java, and the IBM iSeries, and it supports multiple databases through ODBC, JDBC, and Oracle OCI. You can use n-tier architecture and dynamic application partitioning, and generate EJBs for J2EE. Future versions will support the .NET platform. All of this support means that you can maintain multiple server platforms all within a single model. The product also includes a GUI screen designer for both Windows (C++) and Java (Swing) GUI generation.

The best thing about Plex is that you work at an abstract level by designing applications in a model without having to make deployment decisions. For example, in the future, Plex will add .NET deployment. This means you won’t have to make a big decision about rewriting applications for .NET. Instead, you’ll just make the few changes necessary to support a new Plex variant and then regenerate the applications for .NET.

An example
Let me introduce a short example from my experience. I work at a medium-sized wholesale shop, which has stores throughout northern Chile. We developed an extranet to be used by our suppliers to gather information about products sold, reapplying our internal development for stock level and net sales into a Web application. It was made by creating a new model for Web development and attaching to it our Websydian patterns and wholesale library. Our design required some new functions and entities to manage concurrency from our suppliers, full reuse for library server functions, and some rework of HTML presentation.

Our HTTP server was configured to the Websydian CGI, and no more, so our task was to add patterns to our existing Plex functions generated in RPG and to rework the HTML generated by Websydian.

Finally, in order to manage our relationship with suppliers, we developed some Windows Client editors to give them the means and authority to input data, and regenerated some editors in C++ that were to be accessed from Windows clients. We created a model from the various parts and generated the RPG, HTML, and C++ from the same abstract objects.

Why work with only Java or only .NET if you can avoid both worlds? Why not move a Windows-like (or iSeries) application to the Web with minimum effort? Moving to a Web application can be done via the Websydian add-on (which is a set of patterns built with Plex) or by generating Java applets. You can deploy on iSeries, Windows Server, Linux server, or a combination of these platforms. Deploying to a new platform requires minimal changes to the model—perhaps less than 10 percent of the application definition needs to be modified.

Plex also comes with a strong set of well-designed patterns, all ready to use. These provide a range of solutions for simple to complex situations, covering both GUI and server deployment. There are also a good number of third-party pattern providers, which gives proof to the ideal of building software from parts.

An excellent solution
Advantage Plex is a tool for building mission-critical, flexible applications that can be used in complex scenarios and are viable for the long term. It was for these reasons that Plex was nominated in several categories in the Builder.com Readers’ Choice Awards for 2003. Advantage Plex can provide an excellent solution for many development problems.


Discussion

Are you an advocate of Advantage Plex 5.1? In the article discussion, tell us what you think of Jorge’s review and share with us your experience with this application development tool.