【问题标题】:Learning mainframe & JCL with Java/OOP/SQL background [closed]学习具有 Java/OOP/SQL 背景的大型机和 JCL [关闭]
【发布时间】:2009-03-20 06:35:13
【问题描述】:

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

【问题讨论】:

    标签: mainframe zos jcl


    【解决方案1】:

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

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

    • 数据集仍分配有诸如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。

    要为我工作中的一位朋友写的一本书提供一个无耻的插件,请查看 David Stephens 的 What On Earth is a Mainframe? (ISBN-13 = 978-1409225355)。我发现这是非常宝贵的,因为我来自 PC/UNIX 背景,这是一个相当大的范式转变。我认为这本书非常适合您的特定问题。我认为 Google 图书上提供了其中的大部分内容,因此您可以在购买前尝试一下。

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

    【讨论】:

    • 很好的答案!我过去做过一些大型机工作。这是一个非常有趣的环境。并且经常被误解。
    • 关于打孔卡,他们没有让我戴上。使用它的人正在电话会议上,不知道像我这样的新手在那里。谷歌搜索告诉我,旧的大型机仍然使用这种语言。不过,我不知道打孔卡在现代大型机术语中的意思。
    • @Tim,可能只是包含 JCL 和目标文件的成员仍然是 FB80 格式,限制为 80 个字符宽度。事实上,传递给活页夹(链接器)的对象“文件”仍然被称为对象牌组(就像过去用来存放它们的打孔卡片的旧牌组一样)。
    • 在过去的 25 年里,我一直在研究 IBM 大型机。我想我上一次看到真正的打孔卡至少是在 24 年前。有时您在 JCL 中运行 ddname SYSPUNCH - 这与打孔卡无关(也许从前它确实如此)。大型机商店中使用的一些术语已经过时 - 但技术简直太棒了。
    • 这是来自 Mainframe 博客的一篇关于 @paxdiablo 和 zPDT 提到的两个 System z 模拟器 Hercules 的帖子,它不是开源的:mainframe.typepad.com/blog/2011/06/… 日期是 2011 年 6 月 28 日,所以它是最新的.总体上不错的大型机信息网站。
    【解决方案2】:

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

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

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

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

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

    【讨论】:

      【解决方案3】:

      如果您曾经参与过 Z/OS 上的 CICS(大型机事务服务器),我会推荐这本书 "Designing and Programming CICS applications"
      非常有用。
      alt text http://img18.imageshack.us/img18/7031/designingandprogramming.gif

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          【解决方案5】:

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

          【讨论】:

            猜你喜欢
            • 2011-06-17
            • 1970-01-01
            • 2011-03-13
            • 2014-03-29
            • 2012-04-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多