Ich habe Java & amp; ASP.Net Anwendungen & amp; Server für meine gesamte Karriere. Jetzt bin ich auf die Beteiligung an Mainframes ausgerichtet, dh z / OS & amp; JCL, und ich finde es schwierig, meinen Kopf darum zu wickeln (sie reden immer noch über Lochkarten!). Was ist der beste Weg, all das zu lernen, nachdem man sich von modernen Luxusartikeln komplett verwöhnen ließ?
Es gibt keine Lochkarten in modernen Mainframes, sie bringen dich nur an.
Sie werden es schwer haben, da noch viele Dinge auf "alte" Art und Weise erledigt werden.
Das sind einige der schlechten Nachrichten, hier sind die guten Nachrichten:
Es hat ein USS-Subsystem (UNIX), so dass Sie diese Tools verwenden können. 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 einen riesigen Sog auf der Karriereleiter, wenn du dich richtig positionierst.
Es wird immer noch in den großen Konzernen 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 macht Anweisungen.
Alles wird auf spezielle Prozessoren ausgelagert, zIIPs für DB2, zAAPs für Java-Workloads, andere Geräte für I / O (und I / O ist der Bereich, in dem der Mainframe jedes andere System mit Glasfaser abtötet und sehr große Festplatten-Arrays). Ich würde es nicht für die Proteinfaltung oder die Genomsequenzierung verwenden, aber es ist ideal für die zielgerichteten, massiv verrückten Ebenen der Transaktionsverarbeitung.
Wie bereits erwähnt, verfügt z / OS über 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 Shared Memory anstelle ü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 aus, während es immer noch alle veralteten (Erbe?) Sachen laufen lässt. Tatsächlich 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 wurde darüber gesprochen, dass IBM xSeries (d. h. PCs) Plugin-Geräte auch für ihre Mainframes anbietet. Während die meisten Mainframe-Leute das als eine Warze neben ihrer schönen Box betrachten würden, eröffnet sie doch eine Menge Möglichkeiten für Drittanbieter. Ich bin mir nicht sicher, ob sie jemals in der Lage sein werden, 50.000 Windows-Instanzen laufen zu lassen, aber das ist die Art von Dingen, auf die sie zu zielen 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 gesehen habe und er läuft das letzte legal nutzbare MVS 3.8j schnell genug, um ein Gefühl zu bekommen. Denken Sie daran, 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, schaut euch Was auf der Erde ist ein Mainframe an ? von David Stephens (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.
Bezüglich JCL gibt es eine Denkrichtung, dass nur eine JCL-Datei jemals geschrieben wurde, und alle anderen waren Cut'n'Paste-Jobs. 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.
Ihr erstes Missverständnis besteht darin, das "L" in JCL zu verlieren. JCL ist keine Programmiersprache, sondern eine statische Erklärung, wie ein Programm laufen soll und welche Dateien usw. es verwenden soll.
Auf diese Weise ähnelt es dem xml config spahetti, das zur Steuerung solcher "moderner" Software wie spring, hebernate und ant verwendet wird
Wenn Sie in diesen Begriffen darüber nachdenken, wird alles klar werden.
Die Mainframe-Kultur wird von zwei scheinbar unvereinbaren Obsessionen angetrieben.
Wenn Sie sich jemals mit CICS (Mainframe-Transaktionsserver) auf Z / OS beschäftigen, empfehle ich das Buch < a href="http://rads.stackoverflow.com/amzn/click/1565926765"> "Entwerfen und Programmieren von CICS-Anwendungen" .
Es ist sehr nützlich.
alt text http://img18.imageshack.us/img18/7031/designingandprogramming. gif
Wenn Sie sich für die Entwicklung traditioneller Legacy-Anwendungen interessieren, lesen Sie die 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. Einige Beispiele Dateien werden auf dem Mainframe Datasets genannt JCL ähnelt mehr einem Shell-Skript Unterprogramme / Routinen oder ähnliche Funktionen etc ... Viel Glück ...
Je mehr Hand zu Beginn, 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 ungefähr 20 Mainframe-Programmierern, so dass jemand regelmäßig mit mir zusammen sitzen konnte, um mir zu helfen, JCL zu finden, Jobs einzureichen usw. Zweitens verwendete ich Rational Developer für System z , als es WebSphere Developer für System z genannt 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 gewesen und hätte auf einer Anweisung mehr verlangt.