2009-03-20 7 views
8

He estado codificando y administrando aplicaciones Java & ASP.Net & servidores para toda mi carrera. Ahora me dirigen a la participación en mainframes, es decir, z/OS & JCL, y me resulta difícil entenderlo (¡todavía hablan de tarjetas perforadas!). ¿Cuál es la mejor manera de aprender todo esto después de haber sido completamente mimado por los lujos modernos?Learning mainframe & JCL con Java/OOP/SQL background

Respuesta

21

No hay tarjetas perforadas en los mainframes modernos, solo lo tienen encendido.

Tendrá dificultades porque todavía hay muchas cosas hechas de la "vieja" manera.

  • Los conjuntos de datos todavía se asignan con propiedades tales como bloque fijo-80, bloque-variable-255 y así sucesivamente. Planifica el contenido de tu archivo.
  • Sin directorios. Hay niveles de jerarquía y están limitados a 8 caracteres cada uno.
  • La interfaz de usuario es ISPF, una interfaz de usuario en modo texto en pantalla verde del séptimo círculo del infierno para aquellos que no están acostumbrados.
  • La mayoría de los trabajos se seguirán enviando como trabajos por lotes y deberá supervisar su progreso con SDSF (tipo de administrador de tareas).

Eso es algunas de las malas noticias, aquí es la buena noticia:

Tiene un subsistema USS (UNIX) para que pueda utilizar esas herramientas. Está notablemente bien integrado con z/OS. Ejecuta Java, ejecuta Websphere, ejecuta DB2 (DB2 correcto, no ese pequeño Linux/UNIX/Windows uno), ejecuta MQ, etc., etc. Muchas tiendas también ejecutarán z/VM, un hipervisor, bajo el cual lo harán ejecutar muchas LPAR (particiones lógicas), incluido z/OS en sí (copias múltiples, a veces) y zLinux (SLES/RHEL).

El mainframe no corre peligro de desaparecer en el corto plazo. Todavía hay una gran cantidad de trabajo que se realiza en los diversos laboratorios de IBM en todo el mundo y el sistema operativo de 64 bits (z/OS, MVS, era OS/390, ...) ha recorrido un largo camino. De hecho, hay un poco de una oportunidad de carrera ya que todos los viejos que lo conocen son mayores de 55 años, así que espera una gran aspiración en la escalera corporativa si te posicionas correctamente.

Todavía se utiliza en las grandes corporaciones, ya que es lo único que se puede confiar en sus transacciones: z en System z significa cero tiempo de inactividad y eso no es solo exageración de marketing. La potencia del mainframe no radica en su CPU (los procesadores individuales no son tan potentes, pero vienen en libros de 54 CPU con copias de seguridad en caliente, y puede ejecutar muchos libros en un solo cuadro System z), pero en el hecho de que todo lo que hace la CPU son las instrucciones de proceso.

Todo demás se descarga en procesadores especializados, zIIPs para DB2, zAAPs para cargas de trabajo Java, otros dispositivos de I/O (E/S y es donde la computadora central mata a todos los otros sistemas, el uso de fibra óptica y muy grandes matrices de discos). No lo usaría para el plegamiento de proteínas o la secuenciación del genoma, pero es ideal para los niveles de procesamiento de transacciones dirigidos a niveles masivamente insanos.

Como mencioné, z/OS tiene un subsistema UNIX y z/VM puede ejecutar varias copias de z/OS y otros sistemas operativos: he visto un solo cuadro z800 ejecutando decenas de miles de instancias de RHEL al mismo tiempo.Esto avergüenza a todos los fabricantes de PC y las comunicaciones entre las instancias son increíblemente rápidas con HyperSockets (TCP/IP pero usando memoria compartida en lugar de cables de red lentos (sí, incluso rastreos Gigabit Ethernet en comparación con HyperSockets (y perdón por los paréntesis anidados :-))).

Ejecuta Websphere Application Server y Java bastante bien en el espacio de Unix al mismo tiempo que permite que todo el material heredado (¿herencia?) Se ejecute también. De hecho, las tiendas de mainframe no necesitan comprar servidores basados ​​en PC, simplemente realizan algunas máquinas virtuales zLinux y ejecutan todo en una sola caja.

Y recientemente, se habla de que IBM también puede proporcionar dispositivos de complemento xSeries (es decir, PC) para sus mainframes. Mientras que la mayoría de las personas de mainframe considerarían que una verruga en el lado de su hermosa caja, abre un lote de posibilidades para proveedores externos. No estoy seguro de que alguna vez puedan ejecutar 50,000 instancias de Windows, pero ese es el tipo de cosas que parecen estar buscando (¿un anillo para gobernar a todos?).

Si te interesa, hay un emulador de System z llamado Hercules que he visto ejecutando a 23 MIPS en una caja de Windows y ejecuta el último MVS 3.8j legalmente utilizable lo suficientemente rápido como para hacerte una idea. Solo tenga en cuenta que MVS 3.8j es para z/OS 1.10 como CP/M para Windows XP.

Para proporcionar un enchufe desvergonzado para un libro que ha escrito uno de mis amigos en el trabajo, consulte What On Earth is a Mainframe? por David Stephens (ISBN-13 = 978-1409225355). Encontré este valor inestimable ya que provengo de un fondo de PC/UNIX, y es un gran cambio de paradigma. Creo que este libro sería ideal para tu pregunta en particular. Creo que hay trozos disponibles en Google Books para que puedas probar antes de comprar.

En cuanto a JCL, existe la creencia de que solo se ha escrito un solo archivo JCL y todos los demás fueron trabajos cortos sobre eso. Después de haber visto el contenido de ellos, puedo entender esto. Programas como IEBGENER e IEFBR14 hacen que Unix se vea, si no detallado, al menos comprensible.

+2

¡Excelente respuesta! He hecho algunos trabajos de mainframe en el pasado. Es un ambiente muy interesante. Y a menudo mal entendido. –

+1

En cuanto a las tarjetas de golpe, no me estaban poniendo. El tipo que lo usó estaba en una conferencia telefónica y no sabía que un neófito como yo estaba allí. Un poco de google me dijo que los viejos mainframers aún usan ese lenguaje. Sin embargo, no sé a qué se traduce la tarjeta perforada en la terminología moderna de mainframe. – Tim

+2

@Tim, probablemente sea solo el hecho de que los miembros que contienen JCL y los archivos de objeto todavía tienen formato FB80, limitado a 80 caracteres de ancho. De hecho, los "archivos" de objetos que se pasan al encuadernador (vinculador) aún se denominan mazos de objetos (como en los mazos antiguos de tarjetas perforadas que solían contenerlos). – paxdiablo

1

Si va a participar en el desarrollo de aplicaciones heredadas tradicionales, lea libros de Steve Eckols. Ellos son bastante buenos. Necesita comparar los términos de los sistemas abiertos al mainframe, lo que reducirá su tiempo de aprendizaje. Un par de ejemplos archivos se llaman conjuntos de datos en la computadora central JCL se parece más a un script de shell sub programas/o rutinas como funciones comunes etc ... Buena suerte ...

-1

Cuanto más mano que sostiene al principio, mejor. He trabajado en un mainframe como pasante y no fue fácil, aunque tenía bastante experiencia en UNIX. Recomiendo pedirle a alguien que trabaje en el departamento de mainframe que dedique uno o dos días a enseñarle los conceptos básicos. La capacitación de IBM también puede ser útil, pero no tengo ninguna experiencia con ella, por lo que no puedo garantizarlo. He puesto mi historia sobre cómo aprender a utilizar el mainframe a continuación para cierto contexto. Se decidió que todos los pasantes iban a aprender a usar el mainframe como un proyecto de verano que tomaría el 20% del tiempo allí. Fue un completo desastre, ya que todos los pasantes me aceptan estaban trabajando en áreas que no eran de mainframe y no tenían a nadie a quien pudieran gritar por la pared del cubo en busca de ayuda. El entorno de ISPF y JCL era extraño para que pudieran dominar rápidamente. El único éxito que tuvieron fue la programación básica bajo USS ya que es básicamente UNIX y la universidad los familiarizó con esto. Tuve mejor suerte por dos razones. Uno trabajé en un grupo de aproximadamente 20 programadores de mainframe, así que pude hacer que alguien se sentara conmigo regularmente para ayudarme a descubrir JCL, enviar trabajos, etc.En segundo lugar, utilicé Rational Developer for System z cuando se denominó WebSphere Developer for System z. Esto me dio una GUI principalmente utilizable que me permitía realizar la mayoría de tareas tales como enviar trabajos, editar conjuntos de datos, asignar conjuntos de datos, depurar programas, etc. Aunque no estaba pulido, era lo suficientemente útil y significaba que no tenía que aprender ISPF. El hecho de que tenía un IDE basado en Eclipsed para hacer tareas básicas de mainframe disminuyó significativamente la curva de aprendizaje y significó que solo tenía que aprender nuevas tecnologías, como JCL, que no era un entorno completamente nuevo. Como nota adicional, ahora uso ISPF ya que el software necesario para permitir que Rational se ejecute en el mainframe no se instaló en uno de los sistemas de producción que utilicé, por lo que ISPF fue la única opción. Ahora descubro que ISPF es más rápido que Rational Developer y soy más eficiente con él. Esto es solo porque pude aprender la tecnología subyacente como JCL con Rational y la interfaz ISPF en una fecha posterior. Si tuviera que aprender ambas cosas a la vez, habría sido mucho más difícil y habría requerido más instrucción individualizada.

2

Su primer error es creer que la "L" en JCL. JCL no es un lenguaje de programación; es realmente una declaración estática de cómo debería ejecutarse un programa y qué archivos, etc. debería usar.

De esta manera es muy similar (aunque superior) al xml config spahetti que se utiliza para controlar software "moderno" como spring, hebernate y ant.

Si lo piensas en estos términos, todo quedará claro.

La cultura del mainframe está impulsada por dos obsesiones aparentemente incompatibles.

  1. Compatibilidad con versiones anteriores. Todavía puede ejecutar ejecutables escritos y compilados en 1970. ¡Todavía se ejecutan JCL y scripts de cuarenta años y funcionan!
  2. Prestaciones del borde sangrante. Puede tener 128 cpus en cuatro máquinas en dos centros de datos trabajando en una única consulta de DB2. Ejecutará las últimas aplicaciones J2EE (Websphere) más rápido que cualquier otra máquina.