tags:

views:

1238

answers:

11

Background: I believe most of the major financial institutes and major retailers still have many critical business processes and data relied on the legacy systems, such as Mainframe. Many developers still write code on those terminal windows without a debugger to add enhancements to their Mainframe systems, which I call the stone age of programming. (No offense to the Mainframe developers.)

Question: Are there any Technical Advantages on these legacy systems compared to the modern systems built on .Net, J2EE or other modern platforms?

The only reason for keeping these systems, I think, is these big banks and retailers are locked-in by these legacy systems, which have been developed and enhanced for more than 20 years. No one can afford the money / risks to port them to a modern platform. Please share your thoughts.

+2  A: 

In my experience the age of the mainframe software is the deciding factor. Years of repeated refactoring have developed extremely effective software for the job they need to do. I'm in the insurance industry and have watched people switch from OS/400 software to Windows and then back just as quickly.

IBM and other vendors are also not going to drop support for mainframe OSes any time soon. Couple that with the fact that the back-end mainframe systems can interact with outside systems means that they can be gracefully changed to providing SOAP, REST, or other access to information in their gigantic black boxes.

I don't think it's a matter of being 'locked in' at all. The tool does the job better than most other things that compete with it.

dragonmantank
+1  A: 

I think money matters, but I think security may matter even more. After years and years of fending off (most of the time) hackers, they have these systems locked down to a fare thee well. It would take a comparable number of years before they would be as confident in the security of a new system.

Don't get me wrong I'm not saying that there security is air tight. Simply that it is a matter of better the devil that you know than the one you don't.

EBGreen
+6  A: 

A mainframe is specifically built for data throughput, not general purpose computing. When you need to deal with millions of financial transactions per second the limiting factor is not processor speed, but how fast you can find the data, get it on the bus to the processor, do the simple math on it, and throw it into the correct location.

The machine architecture has a lot to do with that - what surrounds the CPU is more important than what's in the CPU, or even what runs on the CPU.

Mainframe languages and machine code are similarly geared for this type of work.

Clusters are replacing them as a cheaper option, but clusters are inherently unreliable, and even with failover, etc it makes people worry. Mainframes are also backed by multi million dollar contracts so they don't have to worry about it - if there's a problem the mainframe company diagnoses and fixes it within hours, if not minutes.

It's a completely different machine and business model because it's what the banks demand.

Adam Davis
A: 

Also, mainframes can do web. IBM installs WebSphere on their mainframes for systems that handle millions of transactions/month for the Big Banks. They make a lot of money off it, and it works...

Mikezx6r
+4  A: 

Mainframes have a ton of stuff built in that modern systems don't have. Things like Master Control Programs. Really complex job schedulers ones that run a predescessor successor models. Ways to easily monitor system health during night processing, and ways to easily shut down parts of them without affecting other parts of the same system. Mainframes don't handle simple systems either, we talking about computers which handle billion dollar general ledgers every month. Stuff that departments get fired over when there's a problem.

My boss used to laugh at us at our old job when we talked about how mainframes were a thing of the past. There are ways to duplicate what they do, don't get me wrong, but as far as out of the box technology that has really been through the paces, mainframes are difficult to beat.

You wanna know the truth? Places like banks aren't really locked into anything. If they want to change, they can. Money for the large banks is really no object. Their authority over the tech industry is staggering. I've been in meetings where the SVPs of the bank told the technology company what direction their product was going to take. Not small companies either. I know what you're saying, the tech company should walk away, but making a large bank angry can be death of the company when a multi million dollar contract leaves, because you said no.

Kevin
+1  A: 

Mainframe Software is Reliable

I worked (as a consultant) for a major NY Bank for about 2 years and never ever try to make the guy who pay the bills throw away 20 years in man/hours out of the window while he can continue to invest in software that just works. It's a classic escalation of commitment where they will not revoke a decision because they already invested millions (if not billions) into it.

The only shadow on the horizon is the fact that old-school programmers will eventually retire and young pup like me do not learn that old & boring stuff anymore.

Shadow_x99
It's an interesting point you noted that what if after twenty years, there would be not enough Mainframe developers available to keep these systems running. I definitely believe that whoever can find a feasible solution to replace these old systems is going to make a big BUCK!
Ryan Liang
+1  A: 

I think you'll see 'modern' mainframes finding a role in 'virtual data centers' or 'virtual computational substrates' (as MS refers to them). It's certainly an approach of resourcing cycles for cloud services that's diametrically opposed to racks of commodity boxes or blades. But, it's also one that will probably sell depending on how well they compete on the basis manageability and energy consumption.

J Healy
+2  A: 

A couple of years ago, I observed an industrial facility that used an AS/400 (iSeries) system. They didn't consider it "legacy", even though their users had dumb terminals and green screens.

For them, the performance and reliability of those systems were simply irreplaceable.

Note0: By "performance" I mean basically everything was instant. No delay. I mean it. You push a button, a report appears before your finger is off the key.

Note1: When I say "reliability" I mean they went down for maintenance once every two years or so.

I think most .NET / Win32 / Java developers would be surprised at how solid those systems are. The modern bells and whistles come at a price.

Having said all of that, I'm not learning RPG, ILE, and DB2 any time soon.

JosephStyons
+1  A: 

One major advantage is that they have working software. When you are talking about billions of dollars, a rewrite is incredibly risky.

This article by Joel Spolsky is a great read on this topic.

I wouldn't be surprised if some of those systems are still around 100 years from now, running inside a virtual machine hosted on new hardware.

JosephStyons
+1  A: 

Mainframes (at least IBM zSeries) are more advanceded than any machine you are working on.

Features include:- Clustering over two or more datacentres. Clustered database which presents a single coherant image to any node in the cluster. Dynamic repartitioning, reallocation of resources to nodes in a cluster. Spectacular IO bandwidth. Redundant components -- effectivly built in spare parts for all critical components.

They can run the latest trendiest software the whole Apache stack, Websphere Suse or Redhat Linux, while retaining the capability to run a binary that was compiled in 1968.

James Anderson
A: 

Also, mainframes can do Java. My recent employer just moved several websphere application servers from Windows servers onto the mainframe as it turned out to be cheaper! And more and more of the tools that IBM sells for the z/os are written in Java (like the BEP).

Bartosz Radaczyński