用Java/OOP/SQL背景学习主机和JCL

8

我一直在编写和管理Java和ASP.Net应用程序和服务器,这是我的整个职业生涯。现在我被指导参与主机,即z/OS和JCL,但我发现很难理解它(他们还在谈论打孔卡!)。在完全被现代奢侈品宠坏后,学习所有这些的最佳方法是什么?

5个回答

23

现代主机已经不使用卡片穿孔技术了,他们只是故弄玄虚。

你可能会遇到很多“老式”做法。

  • 数据集仍然具有属性,例如固定块80、可变块255等。计划文件内容。
  • 没有目录。层次结构有限制,每个层次结构名称长度最多为8个字符。
  • 用户界面是ISPF,对于不习惯此类绿屏文本模式用户界面的人来说简直像来自地狱的第七圈。
  • 大多数作业仍将作为批处理作业提交,并且您需要使用SDSF(一种任务管理器)监视它们的进度。

这是一些坏消息,但好消息如下:

它有一个USS子系统(UNIX),因此您可以使用这些工具。它与z/OS非常好地集成。它可以运行Java、Websphere、DB2(正确的DB2,而不是那个小型的Linux/UNIX/Windows版本)、MQ等等。许多商店还将运行z/VM,一个虚拟化程序,在其中它们将运行许多LPAR(逻辑分区),包括z/OS本身(有时是多个副本)和zLinux(SLES/RHEL)。

主机不会很快消失。各个IBM实验室仍在进行大量工作,64位操作系统(z/OS,曾用名称为MVS,也称为OS/390,...)已经取得了长足的进展。实际上,由于所有了解该系统的老员工年龄都在55岁或以上,所以如果您正确地定位自己,可以期望获得职业发展机会。

它仍然在大型企业中使用,因为它是唯一可以信赖其交易的东西 - System z中的z代表零停机时间,这不仅是市场营销的炒作。主机的优势不在于其CPU性能(单个处理器并不那么强大,但它们以54个CPU本的形式提供,并带有热备份功能,您可以在单个System z框中运行许多本书),而在于CPU仅执行指令的事实。

所有其它工作都被分配给专门的处理器,DB2使用zIIPs、Java工作负载使用zAAPs,I/O使用其它设备(而且在 I/O 方面,主机杀死了其他系统,使用光纤和非常大的磁盘阵列)。 我不会用它来折叠蛋白质或基因组测序,但它非常适合针对性强的、需要进行大规模事务处理的场景。

正如我所说,z/OS 有一个 UNIX 子系统,z/VM 可以运行多个 z/OS 和其它操作系统——我见过单个 z800 箱同时运行数万个 RHEL 实例。这使得所有 PC 制造商的“绿色”宣传都黯然失色,实例之间的通信通过 HyperSockets 进行,速度非常快(HyperSockets 使用共享内存而不是慢速网络电缆(是的,即使是 Gigabit 以太网与 HyperSockets 相比也很慢(抱歉有嵌套的括号:-))。

它可以在 Unix 空间中很好地运行 Websphere 应用服务器和 Java,同时仍然允许所有遗留系统运行。实际上,主机商店根本不需要购买基于 PC 的服务器,只需放置几个 zLinux VM 并在一个箱子上运行所有东西。

最近,有传言称 IBM 可能也会为他们的主机提供 xSeries(即 PC)插件设备。虽然大多数主机人士认为这是他们美丽盒子上的瑕疵,但它确实为第三方供应商开启了许多可能性。我不确定他们是否能够运行 50,000 个 Windows 实例,但这似乎是他们的目标(一圆主宰他们)。

如果您感兴趣,有一个名为 Hercules 的 System z 模拟器,我曾经看到它在 Windows 箱上以 23 MIPS 的速度运行,并且可以快速运行最后一个可用的 MVS 3.8j 版本,以便提供体验。只要记住,MVS 3.8j 相对于 z/OS 1.10 就像 CP/M 相对于 Windows XP 一样。

为了推广我的一位同事写的书,您可以查看David Stephens所著的《地球上的主机是什么?》(ISBN-13 = 978-1409225355)。由于我来自PC / UNIX背景,这本书对我非常有价值,因为它带来了一种全然不同的范式转换。我认为这本书非常适合您的问题。我认为Google Books上有一些节选,供您试读。

关于JCL,有一种看法认为只有一个JCL文件曾被编写,而所有其他文件都是从中复制粘贴的。通过查看它们的内容,我能理解这个观点。像IEBGENER和IEFBR14这样的程序使Unix看起来至少是可读的,如果不是啰嗦的话。


2
很棒的回答!我过去做过一些主机工作。这是一个非常有趣的环境,但也经常被误解。 - Toon Krijthe
1
关于穿孔卡片,他们并没有欺骗我。 使用它的那个人正在进行电话会议,并不知道像我这样的新手在那里。一点搜索告诉我,老式主机仍在使用该语言。虽然我不知道现代大型计算机术语中穿孔卡片的翻译是什么。 - Tim
2
@Tim,可能只是因为包含JCL和目标文件的成员仍然是FB80格式,宽度限制为80个字符。实际上,传递给绑定器(链接器)的“文件”对象仍然被称为对象卡片(就像旧的打孔卡片一样)。 - paxdiablo
1
我已经在IBM大型机上工作了25年。我想我最后一次看到真正的穿孔卡可能是至少24年前了。有时你会遇到带有ddname SYSPUNCH的JCL - 这与穿孔卡无关(也许曾经有过)。一些在大型机店使用的术语已经过时了 - 但技术仍然非常棒。 - NealB
以下是来自 Mainframe 博客的一篇文章,介绍了两个 System z 模拟器:Hercules 和 zPDT。其中 Hercules 是由 @paxdiablo 提及的开源模拟器。该文章发布于 2011 年 6 月 28 日,仍然具有现实意义。总的来说,这是一个不错的主机信息网站。 - Ellie Kesselman

2
你的第一个误解是认为JCL中的“L”代表编程语言。实际上,JCL只是静态声明程序应该如何运行以及使用哪些文件等。
从这个角度来看,它很像(尽管更加优越)用于控制现代软件(如Spring、Hibernate和Ant)的xml配置混乱。
如果你从这个角度来考虑,一切都会变得清晰明了。
主机文化受到两种看似不兼容的追求的驱动。
1. 向后兼容性。您仍然可以运行在1970年编写和编译的可执行文件。40年前的JCL和脚本仍然可以运行并正常工作!
2. 最先进的性能。您可以在两个数据中心的四台机器上拥有128个CPU,处理单个DB2查询。它将比任何其他机器更快地运行最新的J2EE(WebSphere)应用程序。

1
如果您将要参与传统遗留应用程序的开发,建议阅读史蒂夫·埃克尔斯(Steve Eckols)的书籍,它们非常好。您需要比较开放系统和主机之间的术语,这将缩短您的学习时间。以下是一些例子: 主机上的文件被称为数据集 JCL 更像是一个 shell 脚本 子程序/例程或类似于公共函数等...祝您好运...

1

-1
在开始时提供更多的帮助会更好。我曾经作为实习生在主机上工作,尽管我有相当强的UNIX背景,但这并不容易。我建议向主机部门的某个人请教一两天基础知识。IBM的培训也可能有所帮助,但我没有任何经验,不能保证它会有用。下面是我学习如何使用主机的经历,以便更好地理解。我们决定所有实习生都要学习如何使用主机,作为夏季项目的20%时间。这是一个彻底的灾难,因为除了我之外的所有实习生都在非主机领域工作,他们无法向墙壁另一边的人寻求帮助。ISPF和JCL环境对他们来说太陌生了,无法快速熟练掌握。他们唯一的成功是在USS下进行基本编程,因为它基本上是UNIX,而大学使他们熟悉了这一点。我有更好的运气,原因有两个。首先,我在一个约有20名主机程序员的小组中工作,因此能够定期与某人坐下来帮助我解决JCL、提交作业等问题。其次,我在WebSphere Developer for System z被命名为Rational Developer for System z时使用了它。这给了我一个基本可用的GUI,让我执行大多数任务,如提交作业、编辑数据集、分配数据集、调试程序等。虽然它不够完美,但足够可用,意味着我不必学习ISPF。我有一个基于Eclipse的IDE来执行基本的主机任务,这显著降低了学习曲线,意味着我只需要学习JCL等新技术,而不是完全新的环境。进一步说明,现在我使用ISPF,因为需要让Rational在主机上运行的软件没有安装在我使用的一个生产系统上,所以ISPF是唯一的选择。我现在发现ISPF比Rational Developer更快,我也更有效率。这仅仅是因为我能够先用Rational学习底层技术,如JCL,然后在以后学习ISPF界面。如果我必须同时学习两者,那将会更加困难,并需要更多的一对一指导。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接