Concepts in Mainframe Computing ANDREW COLLETT Contents Brief
Concepts in Mainframe Computing ANDREW COLLETT
Contents �Brief History and General Information �Pros/Cons of Mainframes �Terminology �Concepts used in the mainframe world �Mainframe process example
History & General Information �IBM Mainframe Definition . . ”a large computer, in particular one to which other computers can be connected so they can share facilities the mainframe provides. . The term usually refers to hardware only, namely, main storage, execution circuitry and peripheral units” �MIPS Million instructions per second IBM’s way of rating their mainframes
History & General Information �First IBM Mainframe April 7, 1964 - System/360 $5. 5 Million to purchase or ~$3, 000 -$100, 000/month rental 0. 0018 to 0. 034 MIPS �IBM z. Enterprise System – 2010 5. 2 Ghz per core with up to 96 cores on a single machine 3 TB of main memory 78, 426 MIPS industry standard today – more variations ~$33 Million to buy/install and ~$256, 000 / year to maintain
Pros of Mainframes �Extremely fast �Can handle a huge workload 24/7 �Consolidates the entire system together �Easy to manipulate data quickly �Great for transaction processing �Ton of support through IBM
Cons of Mainframes � Very expensive up front cost � Expensive to maintain – MIPS and hardware maintenance � Have to pay based on how many MIPS are actually being executed - if renting � Complex system – high learning curve � Not good for number crunching or doing complex calculations � Some systems can be old and outdated
Why are mainframes still around? � Nothing can match the speed of data processing that mainframes deliver � Nothing can match the volume and reliability of data processed � Has a lot of money, time, and energy invested into it Esp. IBM – TON of support Older systems cost too much to replace � Old systems need maintenance Trillions of lines of code that is used everyday Banks, financial institutions, big businesses, etc
Terminology �EBCDIC is a standard similar in concept to, but not compatible with, ASCII �COBOL A business-oriented programming language �z/OS A 64 -bit operating system that allows for virtualization of resources – what mainframes newer than 2000 run on �REXX A scripting language that is similar in concept to Perl and Python
Terminology �CICS A transaction server for online and batch processing �JCL A scripting language for executing batch programs �Batch Schedule based jobs that runs every night with an interconnected series of scripts �DB 2 the IBM relational database management system, also available on other platforms
EBCDIC �Extended Binary Coded Decimal Interchange Code �Devised in 1963 -1964 by IBM to co-release with its System/360 mainframe � 8 -bit character encoding Developed separately from the 7 -bit ASCII encoding scheme
EBCDIC
COBOL �COmmon Business-Oriented Language �Used in mainframes because they were built and structured around each other �Business oriented language so it is English like �Easy to read in files and manipulate records while applying business logic
REXX �Restructured Extended Executor �Developed by IBM �Designed as a macro or scripting-like language so each mainframe system can do unique things �Allow for developers to make ‘App-like’ programs on the mainframe. Ex. Typing a shortcut on the command line Small program to cleanup some files
REXX
REXX
z/OS � 64 -bit operating system that runs on mainframes designed by IBM Needs to be at least a “z. Series” or newer mainframe �Record-oriented data access methods �Supports Java, C++, and C# (built in compiler) �Comes with all the necessary tools to work on a mainframe – CICS, DB 2, JCL, REXX, etc.
z/OS �Meant for continuous, high-volume operation with high security and stability �Newest version – IBM Rational Development for System Z z/OS on Windows No ‘Green Screen’ Nice GUI – based on Eclipse client Has subversion type software built in Has ‘Content Assist’ – just like Intellisence
IBM Rational Development for System Z
CICS �Customer Information Control System �Is a Teleprocessing monitor server a control program that monitors the transfer of data between multiple local and remote terminals to ensure that the transaction processes completely or, if an error occurs, to take appropriate actions �Transaction server that runs mostly on IBM mainframe systems under z/OS �Middleware designed to support high-volume online transaction processing
CICS �CICS transaction is a unit of processing initiated by a single request that may affect one or more objects �Interacts with resources such as files, database connections, terminals, or to invoke functions such as web services �Manages the entire transaction – if transaction fails all recoverable changes can be backed out � 90% of Fortune 500 companies run on CICS Bank teller systems, ATMs, insurance agencies, record keeping, etc.
JCL �Job Control Language �Instruct the system on how/when to start a batch job �Job, steps, and procedures �JCL has scripting-like tools that can be used depending on the system Sort files before running, copy data to a different location, etc
JCL Example
JCL �Once the JCL is made without syntax errors it can be ‘submitted’ to the mainframe �The mainframe will run the job just as the card says �The example shown will run the program named ‘COBPROG’ with the given input and output files in addition to the ‘MYINPUT’ input
Batch Processing �Jobs that run directly on the mainframe that do a lot of transaction processing need to be scheduled �No manual intervention – controlled automatically �Prog. A needs to run before Prog. B because Prog. B has input that is created by Prog. A �Most companies have their own software on their mainframe that will do job scheduling Zeke for z/OS Event Scheduling
Zeke
DB 2 for z/OS �Database server product developed by IBM – DBMS manages incoming data, organizes it, and provides ways for the data to be modified or extracted by users or other programs �Supports SQL and XQuery �Primary way of getting and storing usable data for programs that need it �Integrated into Rational Development for System Z where it can generate usable error free SQL
DB 2
DB 2 Error Processing � 3 Types of return codes � 0 – successful execution �Positive number – successful execution with one or more warnings �Negative number – unsuccessful with an error �Easy to handle errors
Conclusion �All of these concepts work together �Huge sandbox with many tools �Mainframe advancements will continue to be made through these tools along with new mainframe hardware �These are things that a developer must know in order to be a successful programmer on a mainframe
ZEnterprise Mainframe z/OS CICS DB 2 JCL REXX COBOL BATCH EBCDIC JAVA C++ C#
ZEnterprise Mainframe PC z/OS CICS DB 2 JCL REXX COBOL BATCH EBCDIC JAVA C++ C# Rational Development for System Z (z/OS)
PC Rational Development for System Z (z/OS) COBOL Program P 1 Uses DB 2 Output - Report JCL to run the program
PC Rational Development for System Z (z/OS) COBOL Program P 2 Input file is Prog 1’s Output report JCL to run the program
ZEnterprise Mainframe PC z/OS CICS DB 2 JCL REXX COBOL BATCH EBCDIC JAVA C++ C# Rational Development for System Z (z/OS) Batch Scheduler (Zeke) Set Prog 2 to run directly AFTER Prog 1 finishes
ZEnterprise Mainframe z/OS CICS DB 2 JCL REXX COBOL BATCH EBCDIC JAVA C++ C# Nightly Batch Processing
ZEnterprise Mainframe COBOL Program P 1 z/OS CICS DB 2 JCL REXX COBOL BATCH EBCDIC JAVA C++ C# Uses DB 2 Output - Report Nightly Batch Processing JCL to run the program
ZEnterprise Mainframe z/OS CICS DB 2 JCL REXX COBOL BATCH EBCDIC JAVA C++ C# COBOL Program P 1 Gets needed data Via DB 2 Nightly Batch Processing Uses DB 2 Output - Report JCL to run the program
ZEnterprise Mainframe Output COBOL Program P 1 z/OS CICS DB 2 JCL REXX COBOL BATCH EBCDIC JAVA C++ C# Uses DB 2 Output - Report Nightly Batch Processing JCL to run the program
ZEnterprise Mainframe Output z/OS CICS DB 2 JCL REXX COBOL BATCH EBCDIC JAVA C++ C# Nightly Batch Processing
ZEnterprise Mainframe Output z/OS CICS DB 2 JCL REXX COBOL BATCH EBCDIC JAVA C++ C# COBOL Program P 2 Input file is Prog 1’s Output report Nightly Batch Processing JCL to run the program
ZEnterprise Mainframe Input z/OS CICS DB 2 JCL REXX COBOL BATCH EBCDIC JAVA C++ C# COBOL Program P 2 Input file is Prog 1’s Output report Nightly Batch Processing JCL to run the program
ZEnterprise Mainframe P 2 finished z/OS CICS DB 2 JCL REXX COBOL BATCH EBCDIC JAVA C++ C# Nightly Batch Processing
References � "ASG-Zeke. " ASG Software Solutions. 10, July 2013. Web. 14 Oct. 2013. <http: //www. asg. com/Products/View/ASG-Zeke. aspx>. � "CICS. " CICS LU 6. 2 User Data. Microsoft, 2013. Web. <http: //msdn. microsoft. com/en-us/library/gg 166110. aspx>. � Grega, Al. "A Brief History of the Mainframe World. " IBM Destination Z -. Destination Z, 20 June 2012. Web. 15 Oct. 2013. � Hansen, Kris D. "Z/OS Concepts for Java Developers. " Z/OS Concepts for Java Developers. IBM, 03 Oct. 2006. Web. 17 Oct. 2013. � "IBM DB 2 Database Software. " IBM DB 2 Database Software. IBM, 1 Oct. 2013. Web. 20 Oct. 2013. <http: //www 01. ibm. com/software/data/db 2/>. � "IBM ZEnterprise System. " IBM System Z. IBM, Mar. 2012. Web. 18 Oct. 2013. <http: //www-03. ibm. com/systems/z/hardware/zenterprise/>.
- Slides: 43