о чудесах архитектуры
От: Codealot  
Дата: 07.10.20 22:13
Оценка: :))) :))) :))) :)
Попалось в одном рассказе. Не знаю, правда ли такие чудеса бывают в реальности, но меня повеселило


"A big corporate accounting system. Used to run on a bundle of mainframes at six different national headquarters, talking via leased line. Want to hear about it?"
"Pray continue." I had his attention.
"They downsized everything they could, but there were about fifty million lines of PL/I on the accounts system. Nobody could be bothered to bring it up to date --it had taken about two hundred programmers twenty years to put it all together. Besides which, they were scared of the security implications of reverse-engineering the whole thing and sticking it on modern networked machines. In the end, they hit a compromise: there was this old VM/CMS
emulator for DOS PC's floating around. They bought six stupidly powerful workstations running something a bit more modern. Stuck a DOS emulator on each workstation, and ran their accounting suite under the VM/CMS emulator under the DOS emulator --"
I waited while his spluttering subsided into a chuckle. "I think that deserves another drink: don't you?"
I took a big gulp from my G&T and nodded. "Yeah." More fizzy water for the Prof. "Anyway. These six, uh, mainframes, had to talk to each other at something ridiculous like 1200 baud. So the droids who implemented this piece of nonsense hired a hacker, who crufted them up something that looked like a 1200 baud serial line to the VM/CMS emulator, but which actually tunneled packets through the internet, from one workstation to another. Only it ran under DOS, `cause of the extra level of emulation. Then they figured they ought to let the data entry clerks log in through virtual terminals so they could hire teleworkers from India instead of paying guys in suits from Berkhampstead, so they wrote a tty driver just for the weird virtual punched-card reader or whatever the bloody accounting system thought it was working with."
Someone tapped me on my shoulder. I glanced round.
"Yo, dude! Gimme five!"
"Six," I said. Clive beamed at me. "Been here long?"
"Just arrived," he said. "I knew I'd find you propping up the bar. Hey, did the guys on the gangway give you any aggro?"
"Not much." I put my hand over my watch's face. The whole thing disturbed me more than I wanted to think about, and Rita's silent presence (reading a book in a deep leather-lined chair at the far side of the room) didn't contribute anything good to my peace of mind. "I was just telling the professor about
--"
"The mainframes." The professor nodded. "Most interesting. Can I trouble you to tell me what happened in the end? I hate an interrupted tale." I shrugged. "Drink for my man here," I said.
"Make mine a pint," said Clive.
"In a nutshell," said the professor.
"In a nutshell: they'd put it all in an emulator, and handled all the logins via the net, so some bright spark suggested they run six emulators in parallel on one box and use local domain sockets to emulate the serial lines. It looked like it would save about fifty thousand bucks, and they'd already spent a quarter million on the port --as opposed to eighty, ninety million for a proper re-write --so they did it. Put everything in one box."
"And what happened?" asked Clive.
Well, they stuffed the old corporate accounting system into a single workstation. You've got to understand, it was about fifty times as powerful as all six mainframes put together. The old mainframes were laid off about two months after the emulator went live, to save on the maintenance bill. So they moved office six months after that, and they managed to lose the box in the process. The inventory tag just went missing; it was so unobtrusive it looked like every other high-end server in the place. By the time they found it again, some droid from the marketing department who though Christmas had come early had reformatted its root partition and installed a multi-user game server on it ..."

 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.