"The time has come," the Walrus said,
"To talk of many things:
Of shoes--and ships--and sealing-wax--
Of cabbages--and kings--
And why the sea is boiling hot--
And whether pigs have wings."
--Lewis Carroll
Many people recognize this verse up to the cabbages and kings part. Personally, I like the third stanza--I believe it's the first recorded mention of pigs' wings. And frankly, some of what I'll be talking about today will happen when pigs fly.
What will I be talking about today? Oh, lots of things:
- Accessing Microsoft SQL Server from the iSeries
- Open-Source Software: Can Anyone Play?
- Is Custom Software Dead?
- Technology for Technology's Sake
- More Fun with IBM Services
Sort of a clearing house of various information, a spring cleaning if you will, before I start back in on the plethora of new things in the WebSphere world. If you were wondering when I was going to get back to WebSphere, rest assured that we were just waiting for some things to get to General Availability, which is finally happening.
There have been a number of great announcements, and the entire WebSphere arena is about to explode with activity. My next column will be all about WebSphere Express, the wonderful new offering from IBM that replaces (for a slightly higher than nominal fee) the old, free WebSphere Standard Edition. I've been working with it quite a bit lately, and I'll have lots of news. Most of it good, actually.
The next big piece will be WebSphere Development Studio client for iSeries Version 5 (or WDSc5). Since it's not generally available until (last heard on the street) sometime around the end of April, mum's the word for now. I mean, I could tell you, but then I'd have to kill you. But I promise that several articles will have WDSc5 as their focus. If you haven't managed to see demos of it at COMMON or iSeries DevCon, prepare to be amazed. The sheer breadth of this offering is breathtaking.
Accessing Microsoft SQL Server from the iSeries
This is a question tangentially related to WebSphere, since one of the reasons to not use the iSeries as a Web server is the idea that it cannot access all your enterprise data--specifically, data residing in Microsoft SQL Server. It's very easy to access iSeries data from a Windows machine, but not vice versa. A client recently asked about this issue, so I did a whole bunch of research on the topic. During my research, I found that this is a question that is asked over and over again, so I thought I'd share my findings.
Awhile ago, I learned about ODBC, Microsoft's semi-proprietary standard for communicating to a remote database. Any computer with an ODBC client can communicate with an ODBC server, which in effect allows you to remotely access a SQL Server database, among many others. However, ODBC is a standard, and somebody still needs to write the code to implement it. And, no great surprise here, Microsoft never got around to writing an ODBC client for OS/400. So basically, there was no easy way to get at SQL Server data from the iSeries.
Then I learned about JDBC. JDBC is a Java wrapper around ODBC. That brought up interesting possibilities.... Java runs on the iSeries, so if JDBC talks to an ODBC server on a Windows machine, then, by extension, a Java program written on an iSeries should talk to a SQL Server database! Yeah. Check the pigs--they got wings yet? It turns out that JDBC was nowhere near as universal as I thought. There is indeed something called a Type 1 JDBC/ODBC bridge driver, but it doesn't talk to an ODBC server. No, that would make too much sense. The Type 1 driver talks to an ODBC client and uses it to talk to the ODBC server. Which means that you still need an OS/400 ODBC client. And since nobody writes such things for OS/400, Type 1 JDBC access to SQL Server from the iSeries isn't possible. This was the current state of affairs until very recently: The only access to Microsoft databases from the iSeries was through Distributed Relational Data Architecture. I don't know how much DRDA costs, but I suspect it's not the least-expensive product out there--nor the easiest.
However, I found two alternatives: First, Microsoft recently released a Type 4 driver for SQL Server 2000, which means any Java application can directly connect to a SQL Server 2000 application. Type 4 drivers talk directly to the database engine using the database's proprietary network protocol (this is what I thought the Type 1 drivers were doing!). Thus, by downloading the driver, you can connect to SQL Server 2000 from anywhere. You can click here to get the driver.
Second, at least one or two companies provide Type 3 drivers for MS databases. A Type 3 driver has two pieces. One piece is a third-party server that sits on the same machine as the database and translates requests from the other piece, a JDBC driver that can be used in any application. The server is usually a for-fee product, costing about $1,000. One way to find these drivers is to go to the Sun driver page.
Open-Source Software: Can Anyone Play?
This topic is also tangentially related to the WebSphere world, in that the open-source project in question is Eclipse, which is the framework upon which the WDSc is built.
As it turns out, anybody can indeed play (although you might need a thick skin to do so--if you don't follow protocol, someone will be sure to let you know). Let me give you a perfect example: The final release of Eclipse Version 2.1 was released March 28. This was the culmination of six months of effort and is equivalent to General Availability for an IBM product. The Sunday before release (March 23) I was capturing screens for my soon-to-be-released Eclipse book (Eclipse: Step by Step) when I noticed a subtle bug in the Eclipse tool. This bug had been introduced in the most recent release, out just the previous Wednesday, so nobody had noticed it yet. This was a fairly nasty little bug; it had a simple workaround, but if you didn't know the workaround, the bug could be very annoying. So I decided to notify the Eclipse development team.
03/24 12:32 a.m.: I posted a note to the newgroups very early Monday morning.
03/24 09:15 a.m.: I was directed to a mailing list specific to these sorts of problems.
03/24 12:18 p.m.: I joined the mailing list and posted my information.
03/24 12:28 p.m.: I was asked for a reproducible test case.
03/24 01:43 p.m.: I posted a reproducible test case.
03/24 01:53 p.m.: I was directed to the "bug reporting" site, which runs Bugzilla.
03/24 02:13 p.m.: Somebody from IBM verified my error on the mailing list.
03/24 03:28 p.m.: I posted the test case to Bugzilla.
03/24 05:15 p.m.: A patch was posted.
03/24 07:12 p.m.: The patch was verified and marked for inclusion in this release.
03/25 11:45 a.m.: Fix was included in release.
03/25 12:10 p.m.: Release version of fix was verified.
Whoa! Just 36 hours from find to fix! Less than 24 hours from bug being reported to inclusion in the release. Not only that, but I'm not a developer on the Eclipse team; as far as they're concerned, I'm just your average Joe User, and yet since I was able to report a real bug, the team listened. Now, had I not taken the time to create a reproducible error case, chances are the fix would not have occurred as quickly. But it's pretty amazing that these folks were willing to open up the code, fix it, and get it into the final release before Friday. And the reason behind the inclusion is even better: because it was a step backward from Version 2.0. That is, they didn't want to release a new version of the product that broke something in the previous version. That's certainly refreshing in this day and age.
Is Custom Software Dead?
Here's an interesting issue. As more and more tools designed to allow the "plug-and-play" integration of software become available, are custom software houses going by the wayside? Will Web services for applications (in which you basically rent a piece of software) become the norm?
There seems to be a trend among some folks in our industry toward a "commoditization" of software--after all, parts is parts, right? The Nirvana seems to be to purchase ready-made software pieces off the shelf and plug them together in a WYSIWYG workbench to make a mission-critical application. Or better yet, to simply design slick interfaces to existing services rented from the Internet. Is this trend the inevitable direction of our industry? Are 20th century programmers simply the old-fashioned silversmiths of the software industry, destined to be replaced by mass production and electroplating?
Some people think not. Fujitsu Software Corporation markets NetCOBOL, a COBOL development environment for various platforms, and on the Fujitsu Web site, there's a link to an interesting article by Frank Hayes at Computerworld. Although he talks about mainframe COBOL, his sentiments could just as easily be applied to midrange RPG applications.
Technology for Technology's Sake
Here's a little reminder to everyone about the concept of "bleeding edge," or using technology for its own sake. Tower Technology designed and developed the premier Java native optimization suite in the world. Since Java was an interpreted language, it ran slower than compiled languages. A native optimizer would take that interpreted language and compile it into faster machine-specific code (which is basically what CRTJVAPGM does on the iSeries).
They did everything right, as far as technology was concerned, targeting a wide variety of platforms and providing a superior product at a reasonable price. The press loved it, industry magazines gave it accolades and awards, and their clients raved about it.
The problem? Nobody really needed it. It was a solution looking for a problem, a technology without a target. Rather than worry about squeezing a few cycles out of their JVMs, most end users simply got a bigger machine. And so, even though it was a superior product masterfully executed, Tower Technology eventually posted this on its Web site:
"February 14, 2003
Tower Technology was founded in 1992 to bring high performance object oriented development tools to the market. With our award winning TowerEiffel and TowerJ products, we set new standards for Eiffel and Java performance on a wide variety of hardware and software platforms.
Unfortunately, due to the financial climate of the past year, Tower closed its doors at the end of 2002. All efforts to find a way to resume operations have failed.
All of us at Tower want to extend our thanks to our customers and those who have supported us. Current customers can send support issues to
A mature, successful high-tech company, over a decade old, and it just pukes out. Not from resting on its laurels, certainly, but because there was no audience for what it was trying to say. Have you seen other examples of such technology-driven Pyrrhic successes? Does the San Francisco project ring a bell? How about J2EE in general? What about WAP/WML--remember when that was the wave of the future? This concept of well-meaning but poorly conceived technological directives is not a new phenomenon, certainly. Back in the old days, we had SAA/CUA, and while that actually had some long-term benefits, the umbrella project is long deceased.
This trend is not likely to end anytime soon. In fact, I'll offer up a couple more candidates: Struts and Web services. While I'm not saying either one is necessarily going to tank, I do think you might want to be careful before tossing all your eggs in either basket. Struts is simply a different syntax for something that can already be done just fine in a JSP, and Web services is basically EDI via XML. Neither one holds any intrinsic value other than offering a certain amount of programming relief for people who are willing to lock themselves into a specific architecture. (Can you say "commoditization"?)
In neither case is anything new being created, and in order to take advantage of either one, you need a certain amount of infrastructure support. That sort of technology is always a questionable investment. Programmer shortcuts make programmer's lives better, certainly, but if management gets the idea that they cost too much or reduce business flexibility, they often go out the window. On the other hand, if the programmer's job becomes too easy, there's the danger that the programmers themselves are no longer cost-effective, and we end up seeing jobs outsourced.
Me, I'll be interested to see how many shops actually stick with Struts. Since it's built into the latest version of IBM tools, it's likely to be around for a while. But that doesn't necessarily make it good. Personally, I'm amazed that we got stuck with WAR and EAR files. What self-respecting midrange programmer would come up with the name "WEB-INF" (all caps, with punctuation in the middle) for a folder name, much less later insist that it's a "standard"? I recently commented in the MC Forums that if this is indeed what passes for a standard these days, then I take back every nasty thing I ever said about ANSI (the American National Standards Institute). They may have taken a long time to get things done, but at least their standards made sense.
More Fun with IBM Services
Lately, I've had more interaction with IBM services in one form or another than I have had over the previous five years, except perhaps for the hoops I had to jump through to get my development box.
In any event, the two latest experiences are actually positive. In both cases, the support personnel were impeccable. In the former case, the experience itself wasn't exactly pleasant, but the support was superb.
What were the cases? The first was a badly botched upgrade to V5R1. In retrospect, it looks as though the problem was probably triggered by the most dangerous part of the system: the operator. It seems I read the instructions very carefully and completely and then followed them meticulously, but didn't quite grasp the fundamental part that said "DO THE FOLLOWING STEPS EXCEPT WHEN UPGRADING THE FIRST TIME." Evidently, I just put too much on the machine at once and confused the link loader, at which point I was hosed.
Well, I opened a support contract with IBM for the one-time price of $250, and that may be the best $250 I've ever spent. The gentleman who helped me through the recovery was absolutely the best (and I'm so sorry that I can't find his name anywhere, but if anybody from IBM is looking, just see who handled my support call--the guy is a gem to work with!). He was personable and had a sense of humor, too, which is really important when you have a client on the other end of the phone who is panicking. He was also able to nicely tell me that the problem was probably my fault and then immediately move on from fixing the blame to fixing the problem. And even though it turned out that I had to do a SLIC reload, he walked me through every step, and I was up and running that day.
The second case was even better. I blew out another disk drive on a Wednesday morning. but I didn't find out until late Wednesday night because the system just kept chugging along. The iSeries is a beautiful thing. Anyway, once I found out, I called IBM first thing Thursday morning. Within about three hours, a new drive had been couriered to my location, a technician had come and installed it, and the drive had rebuilt itself. In between, there was a total of 19 minutes downtime for the IPL and replacement of the drive. Once again, all personnel were wonderful, the process was flawless, and I'm just thrilled.
I probably could have done this myself with a Windows network and a RAID controller. I probably would have had to select the controller and the disks, and I would have had to go get the replacement drive and install it myself and run the rebuild utilities, but I could have done it. On the other hand, with the iSeries, I was basically able to continue working for all but 20 minutes. Interesting tradeoff, eh?
Wrap-Up
No real conclusions this month, other than the fact that IBM processes seem to be getting better. The open-source movement is very cool, especially for tools, but I don't like the idea that some people think mission-critical application software can be a commodity. And, as always, I love my iSeries.
See ya next time.
Joe Pluta is the founder and chief architect of Pluta Brothers Design, Inc. He has been working in the field since the late 1970s and has made a career of extending the IBM midrange, starting back in the days of the IBM System/3. Joe has used WebSphere extensively, especially as the base for PSC/400, the only product that can move your legacy systems to the Web using simple green-screen commands. Joe is also the author of E-Deployment: The Fastest Path to the Web and the soon-to-be-released Eclipse: Step by Step. You can reach him at
LATEST COMMENTS
MC Press Online