Welcome to the EGL Development Team blog! The EGL development team consists of the testers, developers, writers and architects who make the magic of EGL technology happen. This is a highly talented group of individuals who are dispersed around the world: North Carolina, US (our main site), Connecticut, US, Beijing, China and Toronto, Canada.
In this blog, you will hear from us what we are up to with driving our technology and products forward. Occasionally, you might even hear about what we are up to with our personal lives. We hope to develop a virtual connection with you, our users. Please give us feedback by commenting on our blog entries.
I am very excited about what we are doing and where we are headed with the product. My team and I look forward to sharing our excitement with you via this blog.
Wing Hong (Albert) Ho, Senior Manager, EGL & RBD Development[Read More]
winghong 120000Q3UD 301 Views
It's been an interesting few weeks as Chris Laffra and I have been working on the scheduler application for RSDC. To give you a quick overview, I'm running the EGL part of the application on a Windows workstation (in fact, I'm running it inside of RBD's test environment). That in turn talks to my IBM iSeries model 270 and exposes the RPG business logic as web services. The front end that consumes the web services (written in EGL Rich UI) is being served either through that same RBD instance or from a public PHP server in Norway somewhere.
So as it stands, you could be using a browser in South America to talk to a server in Chicago that talks to an iSeries in the same room, or you could be using an iPhone in Japan to talk to a PHP server in Norway that talks to that same iSeries in Chicago. And all of this without Chris or I having to write a single line of Java code or do much of anything except generate the WSDL using RBD (me) and consume it (him). And all with excellent speed. And you should see it when the whole thing is on a single LAN!
Anyway, the really interesting bit happened last week. The iSeries (and its successors, the System i and now the IBM i) share an incredible reliability. They're very good about handling RAID disk and they also will tell you about any problems they're having. I happen to have two servers: an older workhorse model 270 that I own and that I use for day-to-day application serving, and then a newer development box that I lease, getting a new box every year or two to keep up with the latest technologies.
Well, the production machine, where I was running the application, started telling me it had a pending disk drive error. I love that - not only does it support RAID, but it also tells you when one of the drives is acting up even before it fails so that you can be ready to replace it. And while replacing a drive is easy enough, rebuilding a RAID set takes time. Since we were getting close to the conference and actually had the application up for live testing, I didn't really want to bring the machine down for the couple of hours it would take to rebuild the RAID set.
So I made an executive decision. I brought down the WAS server in RBD, did a save/restore of the RSDC library from the production i machine (the model 270) to the development i machine (the model 520), changed the server name on the Linkage parts, did a quick regen of the app, and restarted the WAS server. All of this took about five minutes, and nobody was the wiser. And reflecting on this, since I use a hardcoded HOSTS table on the workstation, I could have simply changed that entry to point to the other model 520 and saved myself two of those five minutes.
The point of all this? Well it seems that the architecture is doing exactly what it's supposed to do. Chris was able to do initial testing without even needing the back end. Then, once the back end was up, it was easy to run the front end simultaneously on two different machines. And as for the back end, failing over to a different machine is as easy as changing an address in the HOSTS table. Chris and I have been able to concentrate on features rather than infrastructure, and that really is the promise of EGL.
Joe [Read More]
Well, of course it was William Shatner, not Captain Kirk, but it was still outstanding. Through a series of terrifically funny anecdotes, Shatner related the software development industry to the movie production industry, and often had the audience howling. It was all great fun.
Seeing my boyhood idol was just one more of the surreal bits of my time in Orlando. Through my own lack of prior preparation, I had to stay offsite, so both days I found myself cabbing through Disney World. It was always a bit of a mental clash to go from the high-energy environment of the conference to looking out the window of the cab and seeing the Tower of Terror.
I would have loved to stay longer, but there are just too many things to do back here at home. When I gave my session, it was clear that the attendees saw the power of the tool, and how EGL could provide them with the fastest way to extend the business logic behind their green screen code to the web and beyond. It's a great story: a few lines of code and you can call an ILE program. Drag and drop an array on a page, and you have a table of data. Or, check a box and turn a function into a web service. Just a few lines of EGL turns the IBM i into a full-fledged participant in modern application architectures.
But it doesn't stop there. Add onto that the new Rich Web Services capabilites and now you're at the very leading edfe of technology. I stuck my head into a Dojo session, and I know that the RWS team is looking at the GWTx toolkit. And that's what puts EGL head and shoulders above things like RPG-CGI and PHP. Instead of spending their time figuring out the plumbing needed to add basic web capabilities to their existing systems, i developers can use EGL to do the plumbing for them and can instead focus on architecting the next generation of applications.
Joe [Read More]
JoePluta 100000KMX3 Tags:  i business_logic application_modernization egl rpg 4 Comments 1,512 Views
I noticed that I have been somewhat remiss in that I haven't actually written a formal "Welcome to my Blog" post. This is my first blog, so perhaps you can forgive me that transgression. (I told my good friend David that I had finally releneted and was blogging. His response? "I AM LOCUTUS OF BLOG! YOU WILL BE ASSIMILATED! RESISTANCE IS FUTILE!" Guess he's right.) Anyway, it's that time - time where I try to let you know what this corner of the Internet is intended to be about, and you can decide whether you want to follow the bouncing blogger.
I have a very straightforward goal. I want the i platform to continue on being the best darned business logic server ever designed, and EGL is the way to do it. The reason is simple: the IBM i, whatever it's name or incarnation, has always been about simplicity. You could, with enough work, get another platform to do most of what the i does. But it was always easier, and faster, and more productive with the i. Not only that, but until the advent of the Web, the i was perhaps the last bastion of the one-person IT shop; one good programmer could literally do everything required to keep an i shop running. If you knew DDS, CL and RPG (or COBOL), and knew how to hit F1 and F4, you could pretty much run an i and keep its users happy.
However, in the brave new world of Web development, the i message got a little fragmented. Rather than there being a single path to getting your work done, there were many. RPG-CGI, Net.Data, Java, and now even PHP; these were all heralded at one time or another as the way to the web for i shops, but for one reason or another, they never lived up to the hype. It seemed that the technology was either easy to use but a little out-of-date, or else so bleeding edge that developers couldn't keep up. In either case, the i slipped further behind the curve and we know the outcome: it became that "old" box in the corner that just wasn't glitzy enough. Forget that it had been running all applicaitons flawlessly and with nearly zero downtime for years; the new generation is all about the glitz, and what have you done for me lately.
Enter EGL! By combining a procedural syntax with the concept of hiding complexity, EGL does what i developers have been asking for: it gives them a clean, consistent way to write web applications where they can concentrate on the business logic rather than the plumbing. In many ways, EGL is the spiritual successor to the 5250. While it far surpasses the 5250 in rich user experience, in many ways it's as easy, if not easier, to use than the old green screen SDA. Combine that with a carefully crafted and deceptively simple CALL Interface, and EGL does for the web what display files did for the green screen.
There's a subplot here: using EGL and RPG together. Note that I said RPG; you could also use COBOL if you were so inclined, and lots of EGL folks do. In fact, EGL will generate COBOL and I will spend some time with that particular piece of the technology over the coming months. But I am an i guy, and for the majority of us, RPG is the language we use to code business logic. And while there are lots of really super-bright people working to make EGL a complete, self-contained business language, my particular self-appointed niche is going to be making sure that all those RPG programs (and more importantly, those RPG programmers) can use EGL to enhance and extend their existing applications, letting them co-exist with brand new applications (written in EGL, of course!).
Programmers may some day be able to write entire ERP applications using nothing but EGL; that's certainly the goal of the EGL team. But for now, i shops already have business logic - logic that they've spent years (even decades!) developing - and the best initial use of EGL in those shops is exposing that logic, either directly as browser-based web applications or - moving to the true SOA approach - as web services that can be consumed by other internal and external clients. Then, they can combine that newly enabled business logic with all the rich application features of EGL to create new integrated applications they never dreamed of.
And my goal will be to explain how to do that quickly and productively.[Read More]
JoePluta 100000KMX3 334 Views
Although it's not really the focus of this entry, I just like saying that. It's such a good marketing phrase; I wish we'd see more like it. And we could, you know - the EGL team is putting together the kind of glitzy eye-catching technology that could be showcased everywhere from a YouTube spot to a Super Bowl ad (do I have to pay to say that?).
I guess though that catchphrase is indeed germane to this entry; in a way it really epitomizes a large part of what I want this blog to be about: moving the i into the future (I'm not going to make all the *i*'s blue this time - bold ought to be enough). I want to really delve into those areas where the particular strengths of EGL and the i work together the best. For example, in the case of the RSDC scheduler, Chris Laffra and I were able to make three technologies - EGL Java/WebSphere, EGL RUI and good old RPG - work together flawlessly. Development was at a pace unlike anything I've done in a long time, and the fact that we could concentrate on the business requirements rather than the plumbing allowed us to deliver code at the speed of thought. It was quite an exhilirating experience, actually.
But what exactly does that mean for my core constituency? What can EGL really do for the long-time IBM midrange customers? These are customers who have entrusted their business to the midrange since it had names like "System/3" and technologies like CCP, customers whose most important asset right now is not even their programs so much as their programmers - programmers with a skill set that all signs indicate is becoming harder and harder to find.
What can EGL do for these folks? Well, in my vision, EGL is nothing short of the wonder drug for these shops. First, it will allow procedural programmers to write web applications. The popularity of languages like Visual Basic and PHP ought to make it clear that not all code need be written in OO, and that procedural programming is still an important otol in the business toolkit. This is particularly good news for business programmers becuase the procedural nature of EGL removes one of the biggest hurdles between RPG/COBOL programmers and the brave new world of the web. The WYSIWYG design tools and the declarative nature of the EGL syntax is putty in the hands of people who have written RPG code.
But if the tool just put a new face on an old paradigm, it wouldn't be the future; it would just be a holding pattern. The future is where EGL really shines. Once you have your business logic encapsaulted in EGL library functions, you will be able to move forward into the world of AJAX and eventually to Rich Web Services (RWS or RUI, depending on which acronym you prefer). But the good news is that you don't have to do that wholesale. You can rewrite parts of your application with JSF (in fact JSF may be all you ever need for large parts of traditional green screen systems) and then apply the new technologies where they are best suited, such as for new executive dashboards or other Web 2.0 types of applications.
I always say thatyou should use the right tool for the job, and for i shops the right tool includes business logic on the i and then EGL for whatever user interface technologies are needed. The beauty is that the right tool for all of the new generation of UI jobs is EGL. [Read More]
guy_slade 06000289MN 370 Views
I think for this initial posting I am going to introduce myself and from then on who knows what I will spout off about... I have a few ideas.
I have been involved in this product and it predecessors for the last 21 years. I started my career as a CSP/DB2/PLI developer working for Air New Zealand and after a few years migrated to the U.K where I freelanced for 5 odd years moving from CSP, to CSP/2AD, and finally to VisGen. I then came over to the development lab here and joined the team. It was about that time that the product got the VisualAge brand and became VisualAge Generator. I think the first release I worked on was 4.0 and I was involved with the processor and the debugger. My main value add was that I was fresh from being a 'customer'. I knew how enterprise customers worked, and how they used the product.
I moved off the product for about 5 years working on the WSAD Struts tooling and the Web Diagram Editor and then to the RAD team and worked on the J2EE Security Editor.
I moved back to the RBD product March 2007. An interesting piece of work I am currently involed in is something we have called the SWAT team. This is a small group of us whose job it is is to bear the initial work of any customer initiated issues. This can be anything from bug reports, suggested product improvements, to help our Eco Team out with Proof of Concept work. This all means we get to touch on areas of the product we would not normally be exposed to. An example of this was a defect we recently investigated involving a customers project that contain a great number of inter-related parts. They has an issue where a project build was taking 20 minutes. We tracked the problem back to the how we compiled parts when we detected cyclic dependencies. i.e. a requires b requires c requires a. In this situation we were not able to fully compile c since it needed 'a' to be compiled and the whole chain started when the request to compile a came in. Anyway, to cut it all short, through some clever caching we brought the time down from that 20 mins to under 2 mins.... cool huh? Well, I thought so. You need a big project with spaghetti like dependencies to see an improvement like this but it will be rolled out in the next 7.1 fix pack.
B.T.W The SWAT team is still waiting to be issued with our M16's and Kevlar jackets.
If anyone is interested in knowing more about life on the line as an RBD developer then feel free to post a comment with any questions or topics that you would like to see discussed here. Could be technical in nature... or not.
oh, and the title? ...... Go read some Douglas Adams. [Read More]
Ha! I snuck in under the wire - it's been (just) less than a month since my last blog post. I hate when someone starts a blog and then just stops posting, but I assure you I had good reason. June was a super hectic month (including RSDC and OCEAN), and July hasn't shown any signs of letting up. There are things happening in the EGL world, some of which I can tell you, some I can't just yet. But suffice to say there will be a lot of things to talk about in the coming months - but you knew that would be the case, anyway, didn't you?
At the same time, I've had to keep up with the i world as well. Remember the name of this blog: EGL and i. Well, the i world has had some major announcements lately, many of which have to do with EGL directly or indirectly. For example, the ability to trade up from ADTS (the green screen tools) to RDi has been announced, which puts i programmers one step closer to EGL - hopefully once they play with RDi for a little while, they'll download a trial of RBD and find out what is really available!
Also, IBM announced the new Power 520 Express package - a powerful developer machine that includes a seat of RDi-SOA for EGL. IBM now has an entry level EGL machine for the RPG developer. This is huge. Anyway, I've been writing about that; you can read articles in MC Press and IBM Systems Magazine covering those topics.
But now I'm back and ready to roll with EGL. As many of you probably are, I'm waiting very expectantly for the next Alphaworks drop of Rich Web Support for EGL. As soon as it's available, I'll load it here at the Pluta Labs, and I'll strart letting you know what's up. Some say that Rich UI is a great complement for JSF, others say it is a replacement. I'll let you know what I think as I learn more about it, and this blog will be the primary place where you'll hear about my day to day struggles (well, here and in the forums :)).
Let's see how quickly this old dog can learn some new tech... [Read More]
Hello there! It's been a very hectic few weeks here with lots of projects (some of which I can tell you about, some of which I can't... yet). I haven't been able to post as much as I had liked but I hope to be able to fix that over the coming months. I especially hope to give you some updates regarding the Rich UI and how that particular code works with the i.
To start with, I've managed to create end-to-end rich applications using nothing but the Rational tooling. These applications run from a Rich client in the browser written using the latest RUI release, through a web service written in EGL using RBD 7.1, to an RPG program written using RDi 7.1. It's fast and easy - the entire web service infrastructure, for example, only took a dozen or so lines. I'm looking forward to the day when all three components live together in a single workbench, but for now it's pretty easy. In fact, I run all three tools on my desktop at the same time in less than 1GB of memory (my Firefox and Thunderbird take up more!).
I've begun playing with the various widgets, including the Dojo widgets. I created a simple application that invokes a web service to get data and then shows that data side-by-side using a regular Grid object and a DojoGrid. I'm finding some interesting things about developing, including issues with the debugger and with passing complex objects (remind me to explain why you can't create a factory function that returns a DojoGrid).
All in all, it's been very interesting. Unfortunately, the real projects are taking most of my time, so I don't have a lot to share publicly this post, but I hope to be able to tell you more about some of those projects soon. And in the meantime, I'll try to keep updating you with what I've been up to. I see if I can figure out how to post my end-to-end HelloWorld application later this week.
Thanks as always for reading![Read More]
LisaLasher 110000JCF5 511 Views
First let me introduce myself. My name is Lisa Lasher, and I have worked on EGL and its predecessor products all my life (well, it seems that way). For many years I was a developer, primarily working on the preprocessor and generator components back when our development environment was on VM and MVS. Now I am the project manager, which means that I am involved with plans, schedules, release coordination, beta programs, and general whip-cracking.
Now to the current topic. One thing that I will be posting in this blog will be information about maintenance updates. This will allow you to get automatic notification when new fix packs are available, if you request a Post RSS feed for this blog.
Back on June 27 we shipped fix pack 184.108.40.206. If you have not installed it yet, you can get it from the RBD support download page: Rational Business Developer, Version 220.127.116.11 . This fix pack contains a lot of fixes, especially in the areas of Java generation & runtime, COBOL generation, page handlers, and validation, so everyone should install it.
We also included several small enhancements in this fix pack, in response to some customer requirements that came in too late to be included in the 7.1 release:
We did have one glitch with this fix pack, which is that it has an install conflict with HATS. This issue was originally reported here in the EGL Cafe in the forum (thank you!). A fix is now available, so if you want to have RBD and HATS installed together, go to Interim Fix for Rational Business Developer, Version 18.104.22.168 and follow the instructions. [Read More]
JoePluta 100000KMX3 Tags:  rpg rbd egl rui i rws application_modernization business_logic rdi 1 Comment 1,817 Views
No, seriously, what I mean is this is the next generation of posts on the RUI topic. A month ago I wrote that some exciting stuff was in the works, and now I can tell you about it. This will actually be a short blog entry - I just want to let you know what's coming.
Briefly, I'm writing a book. The book is going to be about using RDi SOA to build EGL Rich UI applications with the i. EGL Rich UI is the "formal" term for RUI, and if you haven't played with it yet, you should get yourself down to the alphaWorks site and get a copy (and yes I know the page says EGL Rich Web Support, but I have it on good authority that EGL Rich UI is the official name).
The book will show how to build a Rich UI interface using EGL and then connect that to a business logic back end written in RPG. Every step of the way will be written and debugged using Rational tooling.
And those of you who read my blog will get an inside look into the process of writing a book. It may inspire some of you to try your own hand at it. Those of you with clearer heads will run screaming...
Anyway, that's the short version. This ought to be an interesting project...[Read More]
JoePluta 100000KMX3 Tags:  business_logic egl rui rui_tips i application_modernization 999 Views
I can't think of a better title for this, but since I hope this becomes an ongoing series of posts, I want to make sure I stick a number in there. Maybe I should have made this one Number 0, because it's going to be sort of an introductory post, but that's okay.
This blog series will be based on things I find as I'm writing RUI applications. It will range from little things like tips for formatting (using a class to right-adjust grid columns) to major RUI topics such as how to implement services in a modular architecture (the answer is Delegates, but the devil is in the details).
Because of the book, I've already got a list of topics on hand. In fact, as I write the blog posts you'll get more glimpses into the book writing process. But I can give you a few quick previews. For example, I'm becoming pretty proficient at formatting Grids. This is important stuff for those of us in the i community; the Grid is the replacement for the subfile and it's crucial to being able to build applications quickly.
Another thing that comes into play is the fact that all the HTML for a RUI page is generated at runtime. Because of that, it's difficult to see the actual HTML which in turn makes it hard to diagnose CSS issues. I've figured out a way around that. I hope to make a generalized widget available soon, but I will at the very least post some example code. The trick is outerHTML...
Anyway, I'll be back posting more. Let me know if there are areas you need addressed.
JoePluta 100000KMX3 Tags:  rdi rpg business_logic egl i soa application_modernization 6 Comments 1,863 Views
I haven't been posting this month because I've been really busy getting ready for iSeries DevCon. This is one of the best technical conferences, although you might consider me a little biased; in four days, I give one all-day jumpstart (this year on migrating from PDM and SEU to RDi) and then 10 sessions and hands-on labs. It's always been a forward-thinking conference; I did sessions there on Eclipse and Visual Age for Java (Eclipse's predecessor) as far back as 2001, along with some of my first web-enabling sessions.
Since then, they've always been ready to present the latest technologies and so this year I gave what I'm pretty sure was the first hands-on EGL lab at an i technical conference, along with a number of other sessions and labs ranging from multi-tier architecture development to extending Rational tools with Eclipse plugins. My session on Eclipse, WebSphere and Rational was repeated, and even though the second one was in the last slot on the last day, we still had good turnout.
In the i space, EGL has to deal with all the buzz surrounding PHP and MySQL. To me, that buzz is nothing more than white noise because PHP just doesn't stand up to EGL when it comes to ease of use, adoption of advanced technology and integration - especially with the i. As a simple example, PHP's connection to the i involves using a PHP knockoff of IBM's Java toolbox, and while the toolbox is phenomenal technology, using it directly requires a lot of code; a simple program call might require dozens of lines of code. With EGL, it's a simple CALL statement. And when I demonstrated how easy it was to build entire applications using RDi-SOA to write EGL front ends and RPG back ends, people started getting excited. In a simple 90-minutes lab attendees with no prior Java experience were able to create an EGL record, build a JSF page, then flip over to the RSE perspective to compile the RPG business logic, and then back to the EGL to add a few lines of code to attach the two.
I also did a lab on multi-tiered architecture without EGL (using plain old JSP and Java) and the people who attended both really got an understanding of what EGL was all about: simplifying the plumbing. Even the simplest web application requires a significant amount of plumbing code in any 3GL, whether it's Java or PHP or RPG-CGI. EGL removes all of that for you. Not only that, but the very nature of the language makes it easy to reuse code, so that once you've created a JSF client, it's simple to turn around and create a rich client or a web service. I think that really hit home with a lot of the attendees.
Anyway, I'm back now and I'm focused on the Rich UI book. You'll see a lot more about that in the coming weeks. It's good to be back, and thanks for reading![Read More]
LisaLasher 110000JCF5 462 Views
I'm very happy to announce that RBD 22.214.171.124 is finally available, a little holiday gift from us to you!
This fix pack contains a lot of fixes, especially in the areas of COBOL generation, Java generation, debugger, and page designer. So everyone who is using RBD 7.1.x should install it.
You can download the fix pack from the support site: IBM Rational Business Developer Version 126.96.36.199.
If you deploy your applications on zSeries, you should also get current maintenance for Rational COBOL Runtime; there are a couple of PTFs that need to be applied.
In addition to bug fixes, this fix pack contains a number of small enhancements:
Lisa [Read More]
Happy (almost) New Year, everyone!
I've been busy with a non-EGL project, and now I'm back to work with EGL. The EGL Rich UI book is well along conceptually, and I'm working to incorporate the many changes that occurred between the Alphaworks version of Rich UI and the production release of 7.5.1.
Stay tuned here and I'll bring you the blow by blow.
LisaLasher 110000JCF5 460 Views
Fix pack 188.8.131.52 is now available. It includes fixes across all areas of the product, so everyone who is using 7.5.x should install it.
You can read the release notes and download the code from IBM Rational Business Developer Version 184.108.40.206
With 220.127.116.11, RBD now supports zLinux as a Java-generation runtime platform. Both JSF and TUI applications are supported, equivalent to our other Java platforms. VAGen Web transactions and Informix CUI applications are not supported on this platform. [Read More]