2009-03-20 6 views
8

Ich habe Java & ASP.Net Anwendungen & Server für meine gesamte Karriere codiert und verwaltet. Jetzt bin ich auf die Beteiligung an Mainframes angewiesen, dh z/OS & JCL, und ich finde es schwierig, meinen Kopf darum zu wickeln (sie sprechen immer noch über Lochkarten!). Was ist der beste Weg, all das zu lernen, nachdem man sich von modernen Luxusartikeln verwöhnen lässt?Lernen Mainframe & JCL mit Java/OOP/SQL-Hintergrund

Antwort

21

Es gibt keine Lochkarten in modernen Mainframes, sie haben nur Sie auf.

Sie werden es schwer haben, da es immer noch viele Dinge auf "alte" Art und Weise gibt.

  • Datensätze werden weiterhin mit Eigenschaften wie fixed-block-80, variable-block-255 usw. zugewiesen. Planen Sie Ihre Dateiinhalte.
  • Keine Verzeichnisse. Es gibt Hierarchieebenen und sie sind auf jeweils 8 Zeichen begrenzt.
  • Die Benutzeroberfläche ist ISPF, eine Greenscreen-Text-Modus-Benutzeroberfläche aus dem siebten Kreis der Hölle für diejenigen, die es nicht gewohnt sind.
  • Die meisten Jobs werden weiterhin als Batch-Jobs gesendet und Sie müssen ihren Fortschritt mit SDSF (Art des Task-Managers) überwachen.

, dass einige der schlechten Nachrichten, hier ist die gute Nachricht:

Es hat ein USS-Subsystem (UNIX), so können Sie diese Tools verwenden. Es ist bemerkenswert gut in z/OS integriert. Es läuft Java, es läuft Websphere, es läuft DB2 (richtiges DB2, nicht so wenig Linux/UNIX/Windows), es läuft MQ, etc, usw. Viele Geschäfte werden auch z/VM, einen Hypervisor, unter dem sie laufen Führen Sie viele LPARs (logische Partitionen) aus, einschließlich z/OS selbst (manchmal mehrere Kopien) und zLinux (SLES/RHEL).

Der Mainframe ist nicht in Gefahr, in absehbarer Zeit zu verschwinden. Es gibt immer noch eine Menge Arbeit in den verschiedenen IBM Labs auf der ganzen Welt und das 64-Bit-Betriebssystem (z/OS, war MVS, war OS/390, ...) hat einen langen Weg zurückgelegt. In der Tat gibt es ein bisschen eine Karrieremöglichkeit, da alle Oldies, die davon wissen, bei oder über 55 Jahre alt sind, also erwarte ein riesiges Saugen auf der Karriereleiter, wenn du dich richtig positionierst.

Es wird immer noch in den großen Unternehmen verwendet, da es das einzige ist, dem man mit seinen Transaktionen trauen kann - das z in System z bedeutet keine Ausfallzeiten und das ist nicht nur Marketing-Hype. Die Leistung des Mainframe liegt nicht in seinem CPU-Grunt (die einzelnen Prozessoren sind nicht so leistungsstark, aber sie kommen in Büchern mit 54 CPUs mit Hot-Backups, und Sie können viele Bücher in einer einzigen System-z-Box laufen), aber in der Tat Die ganze CPU tut Anweisungen.

Alles anderes Fach Prozessoren, zIIPs für DB2 abgeladen wird, zAAPs für Java-Workloads, andere Geräte für die I/O (und I/O ist, wo das Mainframe jedes andere System tötet, Faseroptik mit und sehr große Festplatten-Arrays). Ich würde es nicht für die Proteinfaltung oder Genomsequenzierung verwenden, aber es ist ideal für die zielgerichteten, extrem irren Ebenen der Transaktionsverarbeitung.

Wie bereits erwähnt, hat z/OS ein UNIX-Subsystem und z/VM kann mehrere Kopien von z/OS und anderen Betriebssystemen ausführen. Ich habe eine einzige z800-Box gesehen, auf der Zehntausende Instanzen von RHEL gleichzeitig ausgeführt werden.Dies stellt die "grünen" Behauptungen aller PC-Hersteller in den Schatten und die Kommunikation zwischen den Instanzen ist blendend schnell mit HyperSockets (TCP/IP, aber mit gemeinsamem Speicher statt über langsame Netzwerkkabel (ja, sogar Gigabit Ethernet Crawl im Vergleich zu HyperSockets (und Entschuldigung für) die verschachtelten Klammern :-))).

Es führt Websphere Application Server und Java ziemlich gut im Unix-Bereich, während immer noch alle alten (Erbe?) Sachen laufen können. In der Tat müssen Mainframe-Shops keine PC-basierten Server kaufen, sondern nur ein paar zLinux-VMs plünnen und alles auf der einen Box ausführen.

Und kürzlich, es ist die Rede davon, dass IBM xSeries (d. H. PCs) Plugin-Geräte für ihre Mainframes bieten kann. Während die meisten Mainframe-Leute würden denken, dass eine Warze auf der Seite ihrer schönen Box, öffnet es ein Los von Möglichkeiten für Drittanbieter. Ich bin mir nicht sicher, ob sie jemals in der Lage sein werden, 50.000 Windows-Instanzen auszuführen, aber das ist genau das, wonach sie zu streben scheinen (ein Ring, um sie alle zu beherrschen?).

Wenn Sie interessiert sind, gibt es einen System z Emulator namens Hercules, den ich bei 23 MIPS auf einer Windows-Box laufen gesehen habe und er läuft das letzte legal verwendbare MVS 3.8j schnell genug, um ein Gefühl zu bekommen. Bedenken Sie, dass MVS 3.8j für z/OS 1.10 wie CP/M für Windows XP ist.

Um einen schamlosen Stecker für ein Buch zu liefern, das einer meiner Freunde bei der Arbeit geschrieben hat, schauen Sie sich What On Earth is a Mainframe? von David Stephens an (ISBN-13 = 978-1409225355). Ich fand das unschätzbar wertvoll, da ich von einem PC/UNIX-Hintergrund kam, und es ist ein Paradigmenwechsel. Ich denke, dieses Buch wäre ideal für Ihre spezielle Frage. Ich denke, Teile davon sind in Google Books verfügbar, sodass Sie es vor dem Kauf ausprobieren können.

In Bezug auf JCL, gibt es eine Denkschule, dass nur eine JCL-Datei jemals geschrieben wurde und alle anderen waren Cut'n'Paste Jobs auf diesem. Nachdem ich den Inhalt von ihnen gesehen habe, kann ich das verstehen. Programme wie IEBGENER und IEFBR14 lassen Unix aussehen, wenn auch nicht ausführlich, zumindest verständlich.

+2

Große Antwort! Ich habe in der Vergangenheit einige Mainframe-Arbeiten gemacht. Es ist eine sehr interessante Umgebung. Und oft missverstanden. –

+1

In Bezug auf Lochkarten haben sie mich nicht angezogen. Der Typ, der es benutzte, war auf einer Telefonkonferenz und wusste nicht, dass ein Newb wie ich dort war. Ein bisschen Googeln sagte mir, dass die alten Mainframer immer noch diese Sprache benutzen. Ich weiß jedoch nicht, was eine Punschkarte in der modernen Mainframe-Terminologie bedeutet. – Tim

+2

@Tim, es ist wahrscheinlich nur die Tatsache, dass die Mitglieder mit JCL und Objektdateien sind immer noch FB80-Format, auf 80 Zeichen Breite beschränkt. Tatsächlich werden die Objekte "Dateien", die an den Binder (Linker) übergeben werden, immer noch als Objekt-Decks bezeichnet (wie in den alten Decks von Lochkarten, in denen sie gehalten wurden). – paxdiablo

1

Wenn Sie mit traditionellen Legacy-Anwendungen Entwicklung beteiligt sind, lesen Sie Bücher von Steve Eckols. Sie sind ziemlich gut. Sie müssen die Begriffe von offenen Systemen mit Mainframe vergleichen, um Ihre Lernzeit zu verkürzen. Ein paar Beispiele Dateien werden als Datensätze auf Mainframe- JCL mehr wie ein Shell-Skript Unterprogramme/Routinen ist oder wie häufig verwendete Funktionen etc ... Viel Glück ...

-1

Je mehr Hand am Anfang halten, desto besser. Ich habe als Praktikant an einem Mainframe gearbeitet und es war nicht einfach, obwohl ich einen ziemlich starken UNIX-Hintergrund hatte. Ich empfehle jemandem, der in der Mainframe-Abteilung arbeitet, ein oder zwei Tage damit zu verbringen, Ihnen die Grundlagen zu vermitteln. IBM Training kann auch hilfreich sein, aber ich habe keine Erfahrung damit, kann es also nicht garantieren. Ich habe meine Geschichte darüber geschrieben, wie man den Mainframe für einen bestimmten Kontext verwendet. Es wurde beschlossen, dass alle Praktikanten lernen würden, den Mainframe als Sommerprojekt zu nutzen, das 20% seiner Zeit beanspruchen würde. Es war eine völlige Katastrophe, da alle Praktikanten akzeptierten, dass ich in Nicht-Mainframe-Bereichen arbeitete und niemanden hatte, den sie über die Kubuswand brüllen konnten, um Hilfe zu bekommen. Die ISPF- und JCL-Umgebung war für sie zu fremd, um schnell mit ihnen vertraut zu werden. Der einzige Erfolg, den sie hatten, war die grundlegende Programmierung unter USS, da es im Grunde UNIX ist und das College sie damit vertraut gemacht hat. Ich hatte aus zwei Gründen mehr Glück. Ich arbeitete in einer Gruppe von etwa 20 Mainframe-Programmierern, so dass ich jemanden regelmäßig bei mir sitzen lassen konnte, um mir zu helfen, JCL zu finden, Jobs einzureichen usw.Zweitens verwendete ich Rational Developer for System z, als es WebSphere Developer für System z benannt wurde. Dies gab mir eine größtenteils nutzbare GUI, die mir die meisten Aufgaben wie das Übergeben von Jobs, das Bearbeiten von Datasets, das Zuweisen von Datasets, das Debuggen von Programmen usw. ermöglichte. Obwohl es nicht poliert wurde, war es brauchbar genug und bedeutete, dass ich ISPF nicht lernen musste. Die Tatsache, dass ich eine auf Eclipse basierende IDE hatte, um grundlegende Mainframe-Aufgaben zu erledigen, verringerte die Lernkurve signifikant und bedeutete, dass ich nur neue Technologien wie JCL lernen musste, keine völlig neue Umgebung. Als eine weitere Anmerkung verwende ich jetzt ISPF, da die Software, die benötigt wird, um Rational auf dem Mainframe laufen zu lassen, nicht auf einem der Produktionssysteme installiert war, die ich verwendete, so dass ISPF die einzige Wahl war. Ich finde jetzt, dass ISPF schneller ist als Rational Developer und ich effizienter bin. Dies liegt nur daran, dass ich zu einem späteren Zeitpunkt die zugrunde liegende Technologie wie JCL mit Rational und die ISPF-Schnittstelle kennenlernen konnte. Wenn ich beides auf einmal lernen müsste, wäre es viel schwieriger und erforderte mehr auf einmal.

2

Das erste Missverständnis ist das Behandeln des "L" in JCL. JCL ist keine Programmiersprache, sondern eine statische Erklärung, wie ein Programm laufen soll und welche Dateien usw. es verwenden soll.

Auf diese Weise ist es ähnlich wie die xml Config Spahetti, die verwendet wird, um solche "moderne" Software wie Feder, Hebernate und Ant zu steuern.

Wenn Sie daran in diesen Begriffen denken, wird alles klar werden.

Die Mainframe-Kultur wird von zwei scheinbar unvereinbaren Obsessionen angetrieben.

  1. Abwärtskompatibilität. Sie können weiterhin ausführbare Dateien ausführen, die 1970 geschrieben und kompiliert wurden. 40 Jahre alte JCLs und Skripts laufen noch und funktionieren!
  2. Blutungsrandleistung. Sie können 128 CPUs auf vier Rechnern in zwei Rechenzentren haben, die an einer einzelnen DB2-Abfrage arbeiten. Es wird die neuesten J2EE (Websphere) -Anwendungen schneller als jede andere Maschine ausführen.