8

在我的整个职业生涯中,我一直在编写和管理 Java 和 ASP.Net 应用程序和服务器。现在我被引导参与大型机,即 z/OS 和 JCL,我发现很难把我的头包起来(他们仍然在谈论打孔卡!)。在完全被现代奢侈品宠坏之后,学习这一切的最佳方式是什么?

4

5 回答 5

23

现代大型机中没有打孔卡,它们只是让您继续使用。

你会很难过,因为还有很多事情是用“旧”的方式完成的。

  • 数据集仍然分配有诸如fixed-block-80、variable-block-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 的 zIIP、用于 Java 工作负载的 zAAP、用于 I/O 的其他设备(而 I/O 是大型机使用光纤和非常大的磁盘阵列杀死所有其他系统的地方)。我不会将它用于蛋白质折叠或基因组测序,但它非常适合它的目标、大规模疯狂级别的事务处理。

正如我所说,z/OS 有一个 UNIX 子系统,z/VM 可以运行 z/OS 和其他操作系统的多个副本——我见过一个 z800 机器同时运行数万个 RHEL 实例。这让所有 PC 制造商的“绿色”声明感到羞耻,并且实例之间的通信速度非常快,使用 HyperSockets(TCP/IP 但使用共享内存而不是通过慢速网络电缆(是的,与 HyperSockets 相比,即使是千兆以太网也爬行)(抱歉嵌套括号:-)))。

它在 Unix 空间中很好地运行 Websphere Application Server 和 Java,同时仍然允许所有遗留(遗产?)的东西也运行。事实上,大型机商店根本不需要购买基于 PC 的服务器,他们只需安装几个 zLinux 虚拟机并在一个机器上运行所有东西。

最近,有传言称 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。

要为我工作中的一个朋友写的一本书提供一个无耻的插件,请查看什么是大型机?大卫斯蒂芬斯 (ISBN-13 = 978-1409225355)。我发现这是非常宝贵的,因为我来自 PC/UNIX 背景,这是一个相当大的范式转变。我认为这本书非常适合您的特定问题。我认为其中的大部分内容都可以在 Google 图书上找到,因此您可以在购买前尝试一下。

关于 JCL,有一种观点认为只编写了一个 JCL 文件,而其他所有文件都是在此之上进行的。看了他们的内容,我就明白了。像 IEBGENER 和 IEFBR14 这样的程序使 Unix 看起来,如果不是冗长的话,至少是可以理解的。

于 2009-03-20T07:00:33.353 回答
2

您的第一个误解是相信 JCL 中的“L”。JCL 不是一种编程语言,它实际上是关于程序应该如何运行以及应该使用哪些文件等的静态声明。

通过这种方式,它很像(尽管优于)用于控制诸如 spring、hebernate 和 ant 之类的“现代”软件的 xml config spahetti。

如果你用这些术语来思考它,一切都会变得清晰。

大型机文化是由两个看似不相容的痴迷驱动的。

  1. 向后兼容。您仍然可以运行在 1970 年编写和编译的可执行文件。四十年前的 JCL 和脚本仍然可以运行和工作!
  2. 流血的边缘性能。您可以在两个数据中心的四台机器上拥有 128 个 CPU,处理单个 DB2 查询。它将比任何其他机器更快地运行最新的 J2EE (Websphere) 应用程序。
于 2010-06-30T09:13:15.730 回答
1

如果您曾经接触过Z/OS 上的CICS(大型机事务服务器),我会推荐《Designing and Programming CICS applications》一书。
这是非常有用的。
替代文字 http://img18.imageshack.us/img18/7031/designingandprogramming.gif

于 2009-03-20T07:17:45.183 回答
1

如果您打算参与传统的遗留应用程序开发,请阅读 Steve Eckols 的书籍。他们很好。您需要比较从开放系统到大型机的术语,这将减少您的学习时间。几个示例文件称为大型机上的数据集 JCL 更像是一个 shell 脚本子程序/例程或像常用函数等......祝你好运......

于 2009-04-06T00:59:57.350 回答
-1

一开始手越多越好。我作为实习生在大型机上做过工作,尽管我有相当强的 UNIX 背景,但这并不容易。我建议请在大型机部门工作的人花一两天时间教你基础知识。IBM 培训也可能会有所帮助,但我没有任何经验,因此不能保证会。我已经把我关于学习如何使用大型机的故事放在下面的一些上下文中。决定所有实习生都将学习如何使用大型机作为暑期项目,这将花费 20% 的时间。这是一场彻底的灾难,因为所有实习生都承认我在非大型机区域工作,而且没有人可以越过立方体墙大喊大叫寻求帮助。ISPF 和 JCL 环境对他们来说是陌生的,以便他们快速熟练使用。他们唯一的成功是在 USS 下的基本编程,因为它基本上是 UNIX,大学让他们熟悉了这一点。我有更好的运气有两个原因。一个是我在一个大约 20 名大型机程序员组成的小组中工作,因此能够定期有人坐下来帮助我弄清楚 JCL、提交工作等。第二个我使用System z 的 Rational 开发人员当它被命名为 WebSphere Developer for System z 时。这为我提供了一个最实用的 GUI,让我可以执行大多数任务,例如提交作业、编辑数据集、分配数据集、调试程序等。虽然它没有完善,但它足够可用,意味着我不必学习 ISPF。我有一个基于 Eclipsed 的 IDE 来执行基本的大型机任务这一事实显着降低了学习曲线,这意味着我只需要学习 JCL 等新技术,而不是一个全新的环境。作为进一步说明,我现在使用 ISPF,因为在我使用的生产系统之一上没有安装允许 Rational 在大型机上运行所需的软件,因此 ISPF 是唯一的选择。我现在发现 ISPF 比 Rational Developer 更快,而且我使用它的效率更高。这只是因为我能够在以后学习底层技术,例如带有 Rational 的 JCL 和 ISPF 接口。如果我必须同时学习两者,那将更加困难,并且需要更多的一对一指导。

于 2009-04-28T12:04:44.450 回答