Business Logic Rules

Rich UI enhancements put the B in RBD 8, Part 1


IBM is introducing version 8 of Rational Business Developer (RBD), the flagship product of EGL. I’ve written about EGL in the past and about its long history, reaching back to the early 1980s. Part of the reason for this longevity is that EGL keeps reinventing itself, evolving to meet the needs of each new generation of programming. This latest incarnation of the tool is no different.

In this two-part article, I’ll share with you how new rich UI enhancements put the B in RBD 8. Part 1 compares thin-client and rich-client tooling and how each one is implemented in RBD’s data-centric design. Part 2 offers an extensive sneak peek into the capabilities of the enhancements to EGL Rich UI that are coming with RBD 8.

What We Needed

When I first crossed paths with EGL four or five years ago (as something called the Rational Business Developer Extension to WDSC), it was primarily a thin-client application-development tool. At its core, EGL is a data-centric language that encapsulates the complexity of new technology. In essence, it hides the plumbing. But the early version did that almost entirely within the UI paradigm of its predecessors, text-oriented 3270 and 5250 displays and thin-client JSP pages that emulated them. This approach did exactly what was needed at the time, exposing host-based business rules to Web applications. Given that you could write these applications in hours rather than days or weeks, the final product was nothing short of stunning.

But the application development world is fickle and the Web world particularly so. What was cutting edge last year is hopelessly out of date this year. This can be chalked up in part to “bright shiny new toy syndrome,” but the ever-increasing rate of change also results from the rapid development of technology in general. In particular, the move from thin client to Ajax to rich client has been almost warp speed. It wasn’t so long ago that Struts was the king of advanced UI technology. Struts grudgingly gave way to JSF and then in an eye blink we had Ajax and then the rich client JavaScript frameworks of Dojo, Ext JS and their compatriots.

And that’s exactly what makes EGL such a powerful tool. Because EGL is technology agnostic, it can be reimplemented to address each new technology wave. In this way, EGL is very similar to the IBM i operating system—application programming occurs on a layer above the technical implementation, thus insulating business development from changing technology.

Thin Client

Not long ago, Rational introduced a new rich-client technology within EGL called Rich UI. Not everyone agrees on what the term “rich client” means. At its broadest, the concept of a rich Internet application includes virtual machine technologies such as Flash and Silverlight, or even Java applets. The other end of the spectrum includes nothing more than HTML and JavaScript, although the size of the JavaScript libraries can be large (the current uncompressed version of Dojo, for example, is 123KB). Regardless of the disagreement about terms, the capabilities of Rich UI as implemented by EGL are inarguable. From its initial release, Rich UI provided the capability to create powerful rich-client applications that can rival desktop applications in their user interaction. However, from a pure application-development productivity standpoint, Rich UI wasn’t quite at the level of its older cousin, the thin-client JSF tooling. Let me explain.

The thin client WYSIWYG designer was built around the EGL Record construct. The term Record is very specific in EGL. At its simplest, it’s a grouping of DataItems, which are essentially fields with metadata such as descriptive text (the sort of thing you use for a label or column heading). A Record can also include arrays of DataItems or even arrays of Records. Imagine the work involved in painting a customer order on a screen, in which the order contains header information and an array of lines. In EGL, it’s very easy to define this complex data construct: you define an OrderLine record and an OrderHeader record. Then you define an Order record as containing one OrderHeader and an array of OrderLines. Simple.

That’s only the beginning though. Now EGL really begins to flex its muscles. First, you can pass an Order from one tier of an EGL application to another by simply defining it as a parameter. But in EGL those tiers can reside on different machines and even be implemented in different languages; EGL takes care of all of that for you! So if you have a JavaScript rich client running in a browser talking to a service on the IBM i written in Java which in turn calls an RPG program, you the application developer don’t have to worry about how the data is formatted and transmitted from one layer to another. EBCDIC to Unicode, Java object to XML or JSON string to JavaScript variable, it’s all handled for you.

So we’ve gotten the Order construct from one layer to another, now we have to get it onto the Web page and to the user. In thin client, it’s as easy as point and click.

Figure 1 shows the pop-up that occurs when you drop a complex order onto an EGL Web page. You can select, order and change the characteristics of the individual fields, including those of nested arrays. Once you’ve done that, you’re finished. The result is in Figure 2.

It’s perhaps not photo-gallery ready, but given that it takes less than a minute, I think you’ll agree it’s pretty darned good. Now you can modify or move things around to get the effects you need. Special note to the more GUI gifted among us: all of the generated HTML in RBD (thin or rich) is class based and CSS enabled. And the real beauty of this is that you don’t have to write any code to get the data from the Order record into the Web page. All plumbing is handled for you transparently; you concentrate on the business programming of filling the record, not the technical intricacies of HTML.


Joe Pluta is the founder and chief architect of Pluta Brothers Design Inc. Joe can be reached at

comments powered by Disqus



2018 Solutions Edition

A Comprehensive Online Buyer's Guide to Solutions, Services and Education.

Getting Started With RDP 8, Part 2

Obtaining and installing the new Rational Developer for Power

Getting Started With RDP 8, Part 1

Obtaining and installing the new Rational Developer for Power

Less Talk, More Action

Rich UI enhancements put the B in RBD 8, Part 2

IBM Systems Magazine Subscribe Box Read Now Link Subscribe Now Link iPad App Google Play Store
IBMi News Sign Up Today! Past News Letters