Exploring Eclipse RCP

A "Rich" Alternative for System i GUI Development

December 4, 2006

Welcome to the Exploring Eclipse RCP Blog

I started on the AS/400 in 1988 and have worked continuously on the platform. The bulk of my experience is with RPG and System i integration. I started working with Java on the System i in 2001. I missed Visual Java and used CODE as my IDE. I started using Eclipse 2.0 for Java development in early 2003.

I am not claiming to be an expert on Java, Eclipse, or Eclipse RCP. Each time I have a new application, I find myself on the Sun and Eclipse forums along with my visits to System iNetwork. Frankly, at age 54, I find learning and applying Java quite a challenge. But I have spent time in the trenches and deployed Java applications.

My BS is in accounting, University of Kentucky, 1976. My MBA is from the University of Dayton, 1985 (not that either make much difference after all this time). I currently work for a System i company in the financial services sector. This blog represents my views and not necessarily those of my employer.

As I humm the tune "Everything old is new again," I'd like to begin with a question:

Do "Rich Clients," aka "Fat Clients," have a place in the tools available to the System i shop to extend selected functionality to the desktop?

Obviously I think so or I wouldn't be putting time into this blog. Or has the browser triumphed? Are "Fat Clients" that access functionality of the System i relics of the past? Am I wasting my time and yours as you read this blog?

Please notice that the initial question is "extend selected functionality of the System i to the desktop?" It took a while to compose that sentence.

"Selected functionality" is not "provide a GUI interface to a 5250 display." Certainly there are better tools than a desktop client to GUI-ize a 5250 display, and most of them are browser based.

Consider two tool sets that provide us the means to create System i programs: PDM and WDSc. PDM is 5250 based. The processing, member updating, syntax checking, compiling etc. takes place on the iSeries. If a GUI presentation of the PDM 5250 displays were required then a browser-based solution would be just the ticket. The browser on the desktop handles the user interface, replacing the 5250 display. The rest remains as it is.

WDSc is a completely different approach to a similar task. In addition to moving the user interface from 5250 displays WDSc moves much of the function from the System i to the desktop. WDSc is a "fat client." A client which "extends selected functionality" of the System i to the desktop."

Most GUI interfacing tasks for System i applications are done well, perhaps even best done, with some type of browser based technology.

But I argue that a "Rich Client" should be considered when an application is to be developed which can make good use of desktop capabilities for the benefit of the user or business. The "desktop capabilities" I refer to are
- functionality of the OS and desktop
- the processing power and memory of the desktop platform
A browser-based approach does not make use of the power of the desktop platform and provides only some of the functionality of the OS and desktop, but not all or even most. Again, consider WDSc. Imagine what it would look like, and perform like, if it were browser based?

Browser based applications certainly have many advantages of a desktop client. These advantages are overwhelming when the application is to give 5250 displays a GUI interface or simply to provide a GUI front end to a System i application. Still "Rich Client" applications have these advantages over browser-based applications:
- "Richer" functionality, browser-based applications are limited by HTML standards and components.
- More components to choose from (tables, calendars, dialogs, built-in editors and even operating specific capabilities such as Active-X controls)
- Better usability: menus, hover help, icons, multiple buttons and control styles
- Can have multiple GUI tasks are going on at the same time, or be multi-threaded from the end-user perspective
- Browser-based applications generally require server applications and some infrastructure on the System i which may not be a cost effective solution if only a limited set of System i functionality needs a GUI presentation.

These advantages give "Rich Clients" a place in the System i tools.

In this blog, I want to explore with you using Eclipse RCP for making "Rich Clients." I want to have a place where that small group of us who both develop Java client and System i applications can meet and share our experiences with the Eclipse tools. I invite your active participation!

Posted by Bill Blalock at December 4, 2006 4:53 PM

Comments

Thanks for starting this blog on an iseries rich client, Bill. I agree with your premise, and over time I hope to contribute more than opinions on it.

rd

Posted by: Ralph Daugherty at December 7, 2006 5:43 PM

I am in agreement also. I am new to Eclipse and I have yet to start developing an RCP.

After working in a shop that tried to provide all the desktop functionality in a browser, RCP is worth considering. I do suppose there will be some people who would bring up that AJAX has the potential to substantially improve the browser experience. I hope they will send in their thoughts also.

Forgive my ignorance, but do you have to install an RCP application on each PC? I have heard some systems administrators say that is why they like the browser based applications.

Posted by: Donna at December 8, 2006 2:11 PM

> but do you have to install an RCP application on each PC?

Yes, an Rich Client is an application like a word processor or Client Access.

Eclipse RCP has done a lot of work to make installing the Rich Client you create a painless process. An Ecllipse RCP application can be built that lives in one folder which carries everything it needs including the JVM (if you choose). This is very nice in situations where there is already another version on Java which may not be the one you want.

To install it just copy the generated install folder and make a shortcut to the launcher executable.

Posted by: Bill Blalock at December 8, 2006 3:03 PM

Some years ago I dove head first into desktop and client-server development using VB, Visual Foxpro, and Delphi. VB and Visual Foxpro compilers created small .exe files, but required runtime .dlls of 1.5 - 2.5 meg. Delphi created self contained .exe files that ranged in size from a about 3kb and up. My biggest application was about 4MB.

In client-server settings we normally used ODBC to access SQL databases, which might be deployed on remote servers. Performance of ODBC was constrained by network bandwidth. We adopted the term Fat-Client, which was unflattering, but appropriately fit the architecture. Most of the application logic was deployed to the desktop, which was a pain to manage and maintain.

If I understand correctly, the minimum RCP footprint is about 7MB, and deploying an application on top of that will perhaps double the footprint, and being written in Java, my guess is that the memory requirements would be about ten (10) times greater than the desktop applications I used to develop. If they were fat, wouldn't that make RCP obese?

Rich sounds more appealing, of course. But where did the term Rich-Client come from? And why was it adopted by the Eclipse community? The first time I heard it was in connection with AJAX technology, then later with Adobe Flex, which are both browser-based technologies. Flex applications run in a small browser plug-in, while AJAX just runs in the browser. Did the Eclipse community hijack the term?

One day I was composing an email, using Yahoo, which is a browser based interface, when I noticed that about half of my words had squiggly red lines underneath. What's all the red, I wondered? I tried clicking on one of the words and was immediately rewarded with a small popup list containing similar words, but having correct spelling. It turned out that some asynchronous process in Yahoo was running a spell checker while I typed.

Now I'm really wondering just how far AJAX will go? Will it be possible to deploy applications to servers that provide desktop like interactivity, without the need of a footprint on the desktop?

Nathan.

Posted by: Nathan M. Andelin at December 15, 2006 4:53 PM

Nathan, thank you for your comment.

Tools and technology mature. When a new technology enteres the market there is a lot of hype and initial enthusiam. Often the new technology doesn't live up to the expectation. This is not a new pattern. The client - server model fell into that trap, and not just on the System i. Bad initial experience, even failures, does not justifying writing off future generations of the technology "because it didn't work before." AJAX is the beneficiary of a long line of bad experiences and failures in web enablement.

In terms of size, "fat" is relative. I don't think "fatness" should be judged on absolute numbers. The judgement should be made by comparing the client's size and resource consumption:
- to the size and resouces of the client system, and
- to the performance that the client application delivers in exchange for the resources consumed.

The term "rich client" is a generic term can be used to described any client with a signifcantly improved interface. Since its inception in 2001 Eclipse has described itself as "an open extensible IDE for anything and yet nothing in particular." In 2002 developers began to recognize the potential for developing non-IDE applications using Eclipse. This is when the first internal position papers for a subset of Eclipse plugins to develop non-IDE applcations emerged. The first "announcement" outside the Eclipse community of the Eclipse Rich Client Platform (RCP), which I have located, was the November 11, 2003 integration build of Eclipse 2.1. The copyright year of the RCP examples in the next blog entry is 2003. I personally encountered Eclipse RCP in mid 2004.

So no, I don't think the Eclipse community hijacked anything by naming this project Eclipse Rich Client Platform.

I agree, complicated applications which were once only implemented as client server, for example e-mail clients, are now successful web applications.

I also am interested in seeing how far AJAX will go.

My point, though, is that the client server model is still relevant for some applications in some sets of "circumstances," those circumstances being the confluence of hardware, network structure, number of users, types of clients and more.

Yes, in many situations the nature of the application and confluence of circumstances support a web deployed GUI access to System i resources or applications.

But not every time!

I believe that the client - server model has evolved just as the web enabled, and web distribution models have evolved. In this blog I want to explore the potential of one particular means of implementing the client - server modle, Eclipse RCP.

For a given application and environement the best choice may be a client - server application. I hope to show how Eclipe RCP can be applied and provide a place for other people using Eclipse RCP on the System i to share their experiences.

Again, thank you Nathan for giving me the the opportunity to say this. I hope we hear from you again.

Posted by: Bill Blalock at December 18, 2006 1:14 PM

Post a comment




Remember Me?


Bill Blalock
October 2008
Sun Mon Tue Wed Thu Fri Sat
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  

Blog Policy

We welcome your comments and opinions and encourage lively debate on the issues. However, Penton Media reserves the right to delete or move any content that it may determine, in its sole discretion, violates or may violate its Terms of Use or is otherwise unacceptable. For more information, see Penton Media's Terms of Use.

ProVIP Sponsors