# IBM 3270

El IBM 3270 es una clase de terminal hecha por IBM desde 1972 normalmente usado para comunicarse con los mainframes. Es el sucesor del terminal IBM 2260. Debido al color de texto de los modelos originales, eran informalmente llamados terminales pantalla verde. Al contrario que los terminales ASCII seriales, el 3270 minimizaba el número de interrupciones de E/S requeridas para aceptar los grandes bloques de datos, y usaba una interfaz propietaria de alta velocidad con cable coaxial.
IBM detuvo la fabricación de terminales hace ya muchos años, pero el protocolo IBM 3270 se mantiene en uso a través de un emulador de terminal para acceder a algunas aplicaciones basadas en mainframes. En consecuencia, tales aplicaciones son llamadas a veces aplicaciones de pantalla verde. El uso del 3270 está disminuyendo con el paso del tiempo a medida que más y más mainframes adquieren interfaces Web, pero algunas aplicaciones web usan la técnica de "screen scraping" para capturar viejas pantallas y transferir los datos a salidas modernas. Hoy en muchos lugares, como los Centros de llamadas, utilizan las interfaces de "pantalla verde" 3270 por ser más productivo y eficiente que gastar recursos para reemplazarlos por sistemas más modernos.

## Principios

En un flujo de datos, tanto el texto como el control (o las funciones de formato) se entremezclan permitiendo una pantalla entera "dibujada" como si fuera una única operación de salida. El concepto de "formato" en estos dispositivos permite que la pantalla sea dividida en racimos de celdas de caracteres contiguos para los cuales pueden definirse numerosos "atributos" (color, juego de caracteres, resaltado, protección contra modificaciones). Un atributo ocupa un lugar físico en la pantalla, el cual también determina el inicio y el fin de un "campo" (subsección direccionable separada de la pantalla).
Además, usando una técnica conocida como "lectura modificada", los cambios hechos en cualquier número de campos con formato pueden leerse como una sola entrada sin transferir ningún otro dato, otra técnica para mejorar el rendimiento de la terminal de la CPU. Algunos usuarios familiarizados con las terminales con interfaces comandadas por interrupciones (como Microsoft Windows) encuentran inusual esta técnica. Había también la posibilidad de usar un "buffer de lectura" que transfería el contenido entero de la pantalla del 3270 incluyendo los atributos de los campos. Esto se usaba principalmente para depuración, preservando los contenidos de la pantalla del programa mientras era reemplazada, temporalmente, con la información corregida.
El primer 3270 no tenía teclas de función. Modelos posteriores del 3270 tenían doce, y posteriormente 24 teclas de función programables, o teclas PF, y tres teclas PA (o "atención del programa") colocadas en una o dos hileras en la parte superior del teclado. Cuando una de estas teclas era presionada, causaba que su unidad de control (usualmente una IBM 3274 o 3174) generara una interrupción de E/S y presentara un código especial que identificaba la tecla presionada. Las funciones de los programas como finalización, página-arriba, página-abajo o ayuda podían invocarse presionando una sola tecla, reduciendo la carga en procesadores muy ocupados.
De esta manera, la CPU no era interrumpida con cada tecla que se presionaba, un esquema que permitía a los primeros mainframes 3033 con solo 16 MB soportar hasta 17.500 terminales 3270 bajo CICS.
Por otra parte, un manejo del tipo vi no era posible (pero para el usuario final era más previsible con el 3270, algo que ellos apreciaban).
Por la misma razón, la migración del Lotus 1-2-3 a los mainframes con terminales 3279 no tuvo éxito porque los programadores no podían adaptar la interfaz del usuario de la hoja de cálculo a un dispositivo que manejaba "una pantalla por vez" en lugar de uno que manejaba "un carácter por vez".
En contraste, el software de oficina OfficeVision de IBM disfrutó de un gran éxito con la 3270. Y por muchos años el calendario PROFS fue el más visualizado en las terminales de las oficinas alrededor del mundo.
También en contraste, el Works Records System de ICI Mond Division, la primera hoja de cálculo pública compartida, usaba con éxito la 3270 para la que fue, en efecto, una versión potente de las hojas de cálculo de hoy, con funciones adicionales.
Se mantuvo en uso continuo durante 27 años hasta el 2001 y, a pesar de no tener una GUI, las celdas se podían definir en cualquier lugar de la pantalla (no necesariamente en las filas o columnas) y podía reconfigurarse en forma inmediata la longitud, el contenido y las fórmulas según las necesidades.
Es interesante notar que el ICI era una hoja de cálculo en línea, completamente interactiva que precedió a las PC por varios años y permitía a varios usuarios usar la hoja de cálculo al mismo tiempo, similar a las hojas de cálculo compartidas basadas en web de hoy día.
Como se mencionó anteriormente, la Web (y el HTTP) es similar a la interacción con el 3270 debido a que el terminal (navegador) da más responsabilidad para gestionar la presentación y la entrada del usuario, reduciendo al mínimo la interacción del servidor al mismo tiempo que facilita la recuperación y el procesamiento de la información.
El desarrollo de aplicaciones en muchos aspectos ha vuelto a acercarse a la 3270. en la era del 3270, todas las funciones de las aplicaciones estaban centralizadas.
Con la llegada de las PCs, la idea era invocar el sistema central solo cuando era absolutamente inevitable, y hacer todo en el computador personal con el software de la aplicación.
Hoy, en la era Web (y con la Wiki en particular), la aplicación está muy controlada por el servidor, con solo funciones técnicas distribuidas a la PC.
A inicios de la década de 1990 una solución popular era conectar la PC a los mainframes con una placa IRMA. Esta era un componente de hardware que se conectaba dentro de la PC y enlazaba con el mainframe a través de un cable coaxial. El IRMA también permitía transferir archivos entre la PC y el servidor.

## Otros fabricantes

Muchos fabricantes, como Hewlett Packard, crearon terminales compatibles con el 3270, o adaptaron terminales ASCII como la serie HP 2640 para tener una compatibilidad similar al modo de bloques el cual podía transmitir una pantalla por vez, con alguna forma de validación.
Las aplicaciones modernas a veces se construyen sobre la herencia de aplicaciones 3270, usando utilidades de software para capturar ("screen scraping") pantallas y transferir los datos a las páginas web o interfaces GUI.

## Modelos

El subsistema terminal IBM 3270 consiste de monitores, impresoras y controladores.

### Monitores

* 3277 modelo 1: terminal 40×12
* 3277 modelo 2: terminal 80×24, el más exitoso de todos
* 3277 modelo 3: terminal 80×32
* 3277 GA: un 3277 con una E/S RS232C, a menudo usada para manejar las pantallas gráficas Tektronix 4013 o 4015 (monócroma, 1024×768)
* 3278 modelos 3,4,5: generación siguiente, con caracteres acentuados y teclas modificadoras para los países que las necesitan.
** modelo 2 : 80×24
** modelo 3 : 80×32
** modelo 4 : 80×43
** modelo 5 : 132×27 u 80×24 (seleccionable)
* 3278 PS: caracteres programables; permite también visualizar gráficos monocromáticos
* 3279: terminal color, versiones de 4 colores (texto) o 7 colores (gráficos)
* 3290: unidad con una gran pantalla de plasma monócroma, con capacidad visualizar en varios modos, incluyendo cuatro terminales independientes 3278 modelo 2, o una sola terminal de 160×62; también soportaba particionado.
* 3178: terminal de bajo costo (1983)
* 3179: terminal color de bajo costo (1984)
* 3104: terminal de bajo costo para los sistemas IBM 8100
(Generalmente, los modelos 3277 eran solo con mayúsculas, excepto para el que combinaba EBCDIC/APL el cual tenía minúsculas; la capacidad de mayúsculas-minúsculas y la posibilidad de teclas modificadoras, al principio un simple RPQ (Solicitud de cotización de precios, adaptados a petición con un coste adicional) se añadió solo en los modelos 3278 y 3279.
Una versión del IBM PC conocido como 3270 PC, lanzado en octubre de 1983, incluía el emulador del terminal 3270. Posteriormente, lo siguieron el 3270 PC/G (gráficos) y el 3270 PC/GX (gráficos extendidos).

### Controladores de pantalla

* 3275 pantalla remota con control de funciones (sin pantallas adicionales o impresoras)
* 3276 pantalla remota con control de funciones (con un número limitado de pantallas e impresoras)

### Impresoras

* 3284 impresora matricial
* 3286 impresora matricial
* 3287 impresora, incluía un modelo color
* Y3288 impresora de línea
* 3268-1 impresora independiente para sistemas IBM 8100

### Controladores

* 3271 controlador remoto
* 3272 controlador local
* 3274 controlador de racimo (podían conectarse diferentes modelos conectados por canales, conexión BSC o SDLC, y tenía entre 8 y 32 puertos co-ax)
* 3174 controlador de racimo

## Fabricación

El subsistema IBM 3270 fue creado y desarrollado por el laboratorio de IBM en Kingston, Nueva York, el cual fue cerrado durante una crisis de IBM a mediados de la década de 1990.
La impresoras fueron desarrolladas en el laboratorio de Endicott, Nueva York.
Cuando el subsistema se expandió, el controlador de pantalla 3276 fue desarrollado por el laboratorio de Fujisawa, Japón, y posteriormente por el laboratorio de Yamato, el monitor color 3279 y la impresora color 3287 por el laboratorio de Hursley, Reino Unido.
Estos productos fueron fabricados en Kingston (monitores y controladores), Endicott (impresoras), y Greenock, Escocia, Reino Unido, (varios productos) y enviados a los clientes en Estados Unidos y el resto del mundo.
Las terminales 3278 continuaron produciéndose en Hortôlandia, cerca de Campinas, Brasil, hasta finales de la década de 1980, siendo rediseñadas por un equipo de ingenieros locales para usar tecnología CMOS, manteniendo el aspecto externo.

## Telnet 3270

El Telnet 3270, o TN3270, describe tanto al proceso de enviar y recibir paquetes de datos 3270 usando el protocolo Telnet como al software que emula la terminal clase 3270 cuya comunicación usa ese proceso. El TN3270 permite a un emulador de terminal 3270 comunicarse en una red TCP/IP en lugar de una red SNA. Los clientes telnet estándar no pueden usar un sustituto para clientes TN3270, debido a que utilizan diferentes técnicas de intercambio de datos.