Una
vuelta de 360 implica volver al punto de partida. Pero también esos
360 grados nos hablan de una experiencia totalmente abarcativa como
fue el caso de IBM con el proyecto SYSTEM/360 que en 7 de
Abril del 2014 cumplió 50 años. Si, lo sé, ya casi pasó un mes
del acontecimiento, pero luego de algunas situaciones de traspapelado
y otra ocupaciones, veamos qué sucedió en la década del 60.
En
1960 IBM presentó el sistema 1401, consolidándose como el más
importante fabricante de computadoras dejando atrás a sus
competidores UNIVAC, RCA, General Electric,
Honeywell, CDC, Burroughs y NCR. El
sistema contaba con la impresora de cadena IBM 403, que capaz de
imprimir 600 líneas por minuto frente los 150 promedio de las
impresoras de la época. En aquel entonces muchas empresas aún
prefería el uso de máquinas tabuladoras electromecánicas como la
IBM 407, pero frente a un alquiler mensual de 2500 dólares
del nuevo equipo, o de su adquisición por 150.000, equivalentes al
precio de dos máquinas tabuladoras como la IBM 407, se empezó a
optar por el nuevo sistema que cuadruplicaba el rendimiento de una
tabuladora y además contaba con la posibilidad de efectuar
procesamiento de datos.
No
obstante, la posición favorable de IBM afrontaba un obstáculo
propiciado por los productos que la propia empresa había
desarrollado. A principios de 1960 IBM contaba con distintas series
de computadoras orientadas a distintos ámbitos como el ejército, el
comercio y la investigación científica. Como ejemplo sirven las
series IBM 700 e IBM 7000 con arquitectura valvular las primeras y
transistorizadas las segundas siendo el un único punto en común la
incompatibilidad de las arquitecturas.
Para
IBM esto significaba que cada plataforma contaba con sus propios
componentes y circuitos así como cadenas de montaje, equipos de
venta, soporte y programación. Para una empresa en proceso
expansión, significaba la necesidad de migrar de computadora,
periféricos y peor aún, todo el software de usuario debía ser
nuevamente escrito. El caso del software fue la luz que alertó a IBM
sobre próximas complicaciones debido a la gran cartera de clientes y
las diversas aplicaciones ofrecidas a éstos, dando lugar a
situaciones en las cuales, por ejemplo, un mismo sistema debía ser
reescrito en distintos idiomas, para las sucursales de cualquier
empresa multinacional.
La
idea de lograr cohesión entre productos sobrevolaba la compañía
que encontraba dificultades causadas, paradójicamente, por los
propios logros de IBM. Por un lado, la resistencia de funcionarios
como el presidente de la división de productos generales, John
Haanstra, que se aferraba al éxito de la IBM 1401 y que no
estaba dispuesto a sacrificar . Por otra parte todo el espectro de
los clientes debía ser abarcado por la nueva generación de equipos
y lo más importante, correr todo tipos de aplicaciones sin necesidad
de cambios.
SPREAD
La
sensibilidad y complejidad del nuevo planteo requirió de un
exhaustivo análisis del rumbo a tomar, la vicepresidencia de IBM
encomendó la tarea al grupo SPREAD -acrónimo de System
Programming, Research, Engineering and Development-, formado en
Octubre de 1961 por doce profesionales de la ingeniería,
programación y marketing que incluyó a Haanstra. El avance del
grupo desde el punto de vista del vicepresidente de la compañía
Vincent Learson, era terriblemente lento, por lo cual
en Noviembre del mismo año, SPREAD recibió instrucciones del propio
Learson de pasar todo el tiempo que fuese necesario dentro del New
Englander Motor Hotel en Stanford, el lugar
donde solían efectuar sus reuniones, hasta que no tuviesen una
propuesta del camino a tomar por parte de IBM.
El
borrador presentado el 28 de Diciembre de 1961 contenía lineamientos
acerca de la creación de una nueva línea de computadoras
compatibles entre sí en niveles de hardware y software.
El
reporte expuesto en la jornada completa del 4 de Enero de 1962 ante
un auditorio compuesto por los principales ejecutivos de IBM, causó
decepción y estupor en el público. La dimensión del proyecto NPL
-New Product Line- requería esfuerzo laboral y financiero; por
ejemplo se estimaban 125 millones de dólares para la creación del
nuevo software básico que contrastaba con los actuales 10 millones
consumidos en tareas de programación anualmente para todas las
líneas de computadoras. A esto se sumaba el factor riesgo implicado
por una apuesta por algo jamás creado que sustituiría a todos los
productos construidos. Se trataba, en cierto modo, de un salto al
vacío en busca de fundar nuevamente IBM.
Pero
la decisión de avanzar con el proyecto estuvo tomada al cierre de la
jornada, cuando Watson concluyó la conferencia diciendo “Muy bien,
lo haremos...”. A mediados de 1962 el proyecto inició construyendo
cinco computadoras, en las plantas de Poughkeepsie y Endicott en New
York y Hursley, en Inglaterra. Estas instalaciones estaban
comunicadas por líneas contratadas exclusivamente, incluyendo
conexiones trasatlánticas. Por otra parte, para abaratar costos, IBM
adquirió la capacidad de fabricar semiconductores convirtiéndose en
la empresa más grande en el rubro a nivel mundial.
Hacia
fines de 1963 el proyecto adoptó el nombre de System/360 que
daba a entender la universalidad de su esencia, mientras se definía
la estrategia de presentación de la línea de modelos desarrollados.
Durante este período, Honeywell, una de las competencias de IBM
presentó su modelo Honeywell 200 compatible con el hardware de la
IBM 1401 y mediante la ejecución de un programa llamado Liberator,
podía ejecutar aplicaciones nativas de la 1401 al doble de la
velocidad real. Las 400 ordenes en la primera semana de lanzamiento
de la 200, pusieron en duda la liberación del nuevo sistema de IBM
o de culminar una versión bajo desarrollo de la 1401. Pero ocurrió
que el grupo de programación de Poughkeepsie , que experimentaba con
la posibilidad de simular otras computadoras, tuvo la oportunidad de
incorporar microcódigo en la unidad de control para interpretar
instrucciones de IBM 1401, dando lugar al modo emulación 1401
del System/360 que habilitó la ejecución de aplicaciones de
dicho modelo con el cuadruple de velocidad que la computadora
original.
El
7 de Abril de 1964 en una conferencia de prensa simultánea en
sesenta y tres ciudades de los Estados Unidos y en catorce varios
ciudades de otros países, tuvo lugar la presentación pública del
System/360 de IBM, la noticia más importante en la historia de
compañía, según palabras de su presidente Thomas Watson Jr. El
esfuerzo en conjunto de una empresa que había sido apostada, según
palabras de algunos directivos, empezó a dar frutos desde las
primeras cuatro semanas en las que se ordenaron 1000 unidades de la
nueva línea. Los siguientes tres años arrojaron ganancias cercanas
a los 5.000 millones de dólares y la compañía debió duplicar la
cantidad de trabajadores en sus plantas. System/360 fue el impulsor
del crecimiento de IBM de los siguientes treinta años, no por nada
se dijo que System/360 fue el sistema que construyó IBM y que
construyó a IBM.
El
hardware
System/360
contó inicialmente con seis modelos de computadoras compatibles
denominados 30, 40, 50, 60, 62 y 70, variando su capacidad de memoria
RAM entre 8Kb y 64Kb para el primer modelo y entre 256Kb y 1Mb para
el último. La familia de periféricos estaba formada por cuarenta
dispositivos entre los que se incluyeron unidades de disco, cintas
magnéticas, lectoras y perforadoras de tarjetas, impresoras y
displays que podían ser alquilados o adquiridos.
Algunas
de las características más importantes descritas a continuación,
se convirtieron en estándares de facto:
- Uso de componentes de lógica en estado sólido (hardwired)
- Microcodificación de las intrucciones de CPU
- Unidad de información manejada por el sistema definida como un paquete de ocho bits denominado byte.
- Dieciseis registros con tamaño de palabra de cuatro bytes (32 bits)
- Cuatro registros de punto flotante de dos palabras (64 bits)
- Direccionamiento de memoria de 24 bits, otorgando un máximo de 16Mb
- Multiprocesamiento mediante la Interconexión de CPUs a través de unidades de control, canales y almacenamientos compartidos (página 18 del doc de IBM)
- Uso del juego de caracteres EBCDIC
El
software
Una
etapa crucial durante el desarrollo del proyecto System/360 IBM fue
la planificación de la construcción de software necesario para
explotar las características de las nueva familia de equipos. Esta
tarea que se vislumbraba como compleja y costosa tuvo un presupuesto
asignado de 125 millones de dólares. El objetivo era lograr la
implementación de OS/360, un sistema operativo timesharing que
debido a su magnitud, complejidad y limitaciones de algunos equipos,
tuvo que ser inicialmente reemplazado por tres sistemas orientados a
cada distintas escalas dentro de la familia System/360. Así se
crearon BOS/360 -Basic Operating System-, para la gama baja
con 8Kb de memoria; DOS/360 y TOS/360 -Disk Operating
System y Tape Operating System- para máquinas con al menos 16Kb de
memoria y unidades de disco y cinta respectivamente.
El
desarrollo del OS/360 planteó la construcción un sistema de
dimensiones desconocidas hasta el momento que derivó en un punto de
inflexión para las metodologías de construcción de grandes
sistemas y sentó las bases de la Ingeniería de Software. El
director del proyecto fue Fred Brooks, un discípulo de
Howard Aiken quien escribiría el libro clásico de la materia
“The Mythical Month-Man”, en el cual se sinceró y analizó
las fallas que llevaron al retraso de la construcción del OS/360 y
todo el conjunto de defectos y errores. Fundamentalmente planteó la
necesidad de nuevas metodologías para administrar los recursos de
programación disponibles, en lugar de simplemente introducir nuevo
personal en un estado avanzado del proyecto, que solo conlleva a un
detrimento del mismo. Esta problemática está muy bien sintetizada
en una frase del autor: “Una madre necesita nueve meses para
producir un bebé, pero nueve madres no lo producirán en un mes”
Para
cerrar la idea, el proyecto System/360 introdujo directa o
indirectamente muchos de los conceptos que usamos hoy día como la
unidad del byte, el concepto de compatibilidad entre distintas
computadoras gracias a una microcodificación de instrucciones de CPU
uniforme, el multiprocesamiento, el procesamiento remoto que en
esencia, ayer ocurría con una terminal conectada a un mainframe y
hoy ocurre con una notebook conectada a un servidor web, la
virtualización de equipos, tan incipiente en estos días y para
finalizar, pero no menos importante, la ingeniería de software que
vino planteada como una necesidad para administrar el ciclo de vida
del desarrollo del sistemas de grandes escalas.
LINKS
El proceso estratégico: conceptos, contextos y casos
OS/360