COMP 3400 Mainframe Administration, Winter 2009
General Information
Prerequisites
The prerequisites for this class are COMP 2400 (for undergraduates) or excellent
performance on the MFA scholarship exam
(for non-traditional students).
You should be able to write simple scripts in bash, REXX and
Python or Perl. You should be able to use UNIX editors such
as vi and emacs. Furthermore, some basic understanding
of a broad range of computer science topics including in particular
networking and computer security is expected.
This is a class on mainframe administration focusing on IBM's
zSeries mainframes running z/OS, z/VM and GNU/Linux for System z.
Projects will include the execution and automation of various
common administrative tasks on z. You are expected to attend the
lectures, study the textbooks and find and read additional material
available on the Internet and study the documentation available
for System z.
Lecture Hours and Location
The lectures will be held Mondays and Wednesdays
from 6-8pm in John Greene Hall 216.
In order to get a door code for the Computer Lab please visit the labcode
webpage. The code is updated on weekly basis.
Office Hours
- Christian Grothoff - JGH 108
- Monday, Wednesday 1pm-5pm and by appointment.
- Jeff Keene - CS Annex, West Office
- Tuesday, Thursday 4-6pm and by appointment.
Textbook and Syllabus
All of the textbooks for this course are available both in
hardcopy and as free on-line books, so you do not need to buy a copy
(however, if you do not like reading many pages on the computer,
getting a copy of z/OS Basics is highly recommended).
"Introduction to the New Mainframe: z/OS Basics"
by Bill Ogden et. al. is the main textbook for this course.
"Introduction to the New Mainframe: z/VM Basics"
by Lydia Parziale et. al. is a supplementary textbook for this course.
"Version
Control with Subversion". You must know how to use subversion as
a developer (not as an administrator) in order to submit
your assignments. Use this book as a reference if you
encounter problems. Basic knowledge of chapters 1-3
should be sufficient.
Specific topics that will be covered include:
- Mainframe Hardware
- Virtualization with z/VM
- History of z/VM
- Components of z/VM
- Session management
- The Control Program (CP)
- The Conversational Monitor System (CMS)
- z/OS: TSO/E, ISPF and UNIX
- Data sets
- JCL, SDSF, JES
- System administration
- Performance on z
- Networking on z
- Security on z
- Installation of guest operating systems
- z/OS Application development (COBOL, C, C++, Java, CLIST, REXX)
- Common z/OS workloads (CICS, DB2, WebSphere)
Assignments and Grading
This course includes various quizzes, projects and a final exam. The
final exam will be the
IBM System z
Entry Level for z/OS System Programmer Mastery Test which
will be proctored at DU (the set of questions for this test
is randomized, so paying to take it before the actual final
exam is unlikely to help).
For all projects you are free to discuss them with anyone
as long as you acknowledge contributions in your submission.
All projects will be graded using the following metrics:
- functionality (correctness with respect to project description)
- style (code formatting, design and documentation -- if applicable)
- performance and performance evaluation (if applicable)
Academic dishonesty includes, but is not limited to: plagiarism,
cheating in exams, unauthorized collaboration and falsifying
academic records. Violation of any of these may result in a grade
penalty on assignments, an "F" in the course, dismissal from an
academic unit, revocation of admission, suspension from the
University as well as being roasted over a slow fire.
The different kinds of assignments are weighted
as follows:
Projects | 25 Pts |
Quizzes | 25 Pts |
Final | 50 Pts |
There are theoretically a total of 100 Pts possible.
Grades will be given as follows:
Grade | Points |
A | > 90 Pts |
B | > 75 Pts (and at least 38 points on the final) |
C | > 60 Pts |
D | ≥ 45 Pts |
F | < 45 Pts |
Note that if you fail the final exam (less than 76 percent or
38 points), you will not get a B even if you got more than 75
points in total.
Software
You should have access to a Debian GNU/Linux
system for this class. If you do not have a machine where you can install this
operating system, you can always use the department's
HP lab which has all of the necessary software installed. You can access
the various mainframes used in the course from virtually any operating system,
but getting more experience with a GNU/Linux system would be a good idea.
Submission of Assignments
Each student will get access to a subversion
repository. Assignments must be committed to that repository by the respective
deadline. Students are encouraged to use the repository for version control while
still working on the assignment. Only the last version commited before the deadline will
be used for grading.
In order to access your subversion repository, you must first request an account
by either putting your UNIX logon onto the paper I pass around in the first lecture
or by contacting our system administrator (mention the course name and number).
Once your account has been created, you should do an initial check out:
$ svn checkout https://svn.cs.du.edu/courses/comp2355/w2009/$USER
$ cd $USER
You should then proceed to create some initial file for the first project
and commit it:
$ touch test
$ svn add test
$ svn commit -m "comment"
Make sure to commit the final version with all files (hint: svn status)
before the deadline. It is also a good idea to do a seperate checkout and
verify that the result works.
For group projects, you should e-mail the logins of the group members and a project
name to our system administrator. You will then be given the name of a directory to which
all group members have access.
Projects
Projects are sized to be done in teams of two or three students; however,
you are welcome to do them on your own as well. You are only
expected to do one of the projects listed below. The
projects will require you to study aspects of System z on your own
beyond the scope of the lectures. While the instructor may be able
to point you towards additional resources, there is no master
solution; these projects are supposed to cause sleepless nights. You
are allowed to ask online for help (for example, in developer forums
for related software project), but you then must acknowledge whatever
help you have received in your project documentation.
You are expected to demonstrate your project in class 19. On that
day, you must also submit all of your code and documentation to
the group repository including a report
that states what was achieved, what was not achieved
and why.
- libgcrypt on z
- Port GNU's libgcrypt to z/OS; test your port by
checking that HTTPS works with GNU libmicrohttpd on z/OS;
finally, consider adding code to use the z/OS cryptographic
processors to improve the performance of libgcrypt.
This project requires good knowledge of C and the GNU
autotools. Fame and fortune await.
- Data Set Explorer
- You can access z/OS catalogs and data sets from z/OS UNIX using
z assembler. Write C wrappers around the assembler code and
C code to generate HTML views from the data sets. Integrate
with Websphere Application Server or libmicrohttpd. This
project requires that you are willing to learn and write
code in assembler. Get your hands dirty!
(Documentation is here,
here,
here,
here and
here)
- System Report
- Write a tool that can be used to get a (useful) report about the
current status and configuration of a z/OS system. The
generated report (HTML or LaTeX plus possibly graphics)
should include information
about system resources (sysplex hardware configuration),
system users (active, inactive), system software (what is
installed, which versions) and system utilization (performance
metrics, failures). The report tool should operate within the
security restrictions of a normal system user (class G).
Combining the use of scripting languages (CLIST, REXX, JCL) with
compiled languages (C, Java, COBOL) is recommended.
What is the Language System?
- Need for Speed: DB2
- Database performance is a major bottleneck for
GNUnet. Port the
GNUnet
database performance benchmarks to z/OS with DB2.
This will require learning to access DB2 from some compiled
language (likely C, possibly COBOL).
How fast can you make it run?
- Simple Event Notification
- Using Websphere MQ, implement an event notification
system that informs a group (!) of system administrators
running your client software on their GNU/Linux or
Windows desktops about events on the mainframe system.
The mainframe events should be generated by calling
some simple program on the mainframe with the respective
message. This project must use the Websphere MQ
mechanisms to setup message queues and would
likely be written most easily in Java.
Write once, run everywhere?
Each team is expected to demo their project in class 19.
Schedule
This is the list of topics for the course. Expect a
portion of the lectures to be spent on discussions of the projects
and work on projects and small exercises. You should also set
aside time for working in the lab on projects (on your own or
in groups) in addition to the scheduled lab classes.
Class 1: Introduction to the mainframe and mainframe hardware (1/5/2009)
- Required Reading
- z/OS book, chapters 1 and 2; z/VM book chapters 1-3 and 4.1
- Slides
- Lecture 1 slides
- Useful links
- Subversion,
z10 hardware model,
"z/OS Concepts"
Class 2: Introduction to z/VM (1/7/2009)
- Required Reading
- z/VM book chapters 4 and 5
- Slides
- Lecture 2 slides
- Useful links
- zFavorites,
VM/ESA CMS Sharted File System,
DFSMS/VM documentation,
HCD/HCM library
Class 3: Introduction to CMS (1/12/2009)
- Required Reading
- z/VM book chapters 6 and 8
- Slides
- Lecture 3 slides
- Additional Materials
- CMS Pipelines Explained
- Useful links
- IBM Tutorials on CMS Pipelines
Class 4: Introduction to z/OS (1/14/2009)
- Required Reading
- z/OS book, chapters 3-4
- Slides
- Lecture 4 slides
- Additional Materials
- UNIX System Services Command Reference
Class 5: Data sets (1/19/2009)
- Required Reading
- z/OS book, chapter 5
- Slides
- Lecture 5 slides
- Additional Materials
- TSO Command Reference,
ISPF at CNS (introduction to basic tasks)
Class 6: JCL and SDSF (1/21/2009)
- Required Reading
- z/OS book, chapter 6
- Slides
- Lecture 6 slides
- Additional Materials
- ABCs of z/OS System Programming Volume 1
Class 7: JES and WLM (1/26/2009)
- Required Reading
- z/OS book, chapter 7
- Slides
- Lecture 7 slides
- Additional Material
- WLM at IBM
Class 8: Application programming on z/OS (1/28/2009)
- Required Reading
- z/OS book, chapters 8-10
- Slides
- Lecture 8 slides
- Additional Material
- z/OS C++ runtime library reference,
z/OS standard C++ library reference,
z/OS C++ programming guide,
Java on z/OS: JRIO API
Class 9: Lab: Porting Applications to z/OS (2/2/2009)
- Required Reading
- z/OS book, chapters 8-10
- Slides
- Lecture 9 slides
- Additional Material
- z/OS porting guide
Class 10: Transaction management systems on z/OS (2/4/2009)
- Required Reading
- z/OS book, chapter 11
- Slides
- Lecture 10 slides
Class 11: Database management systems on z/OS (2/9/2009)
- Required Reading
- z/OS book, chapter 12
- Slides
- Lecture 11 slides
- Useful links
- Normalization Rules,
IBM Information Management Software for z/OS Solutions Information Center
Class 12: HTTP Servers, WebSphere and WebSphere MQ (2/11/2009)
- Required Reading
- z/OS book, chapters 13-15
- Slides
- Lecture 12 slides
Class 13: System Programming (2/16/2009)
- Required Reading
- z/OS book, chapter 16, z/VM book, chapter 9
- Additional material
- MVS System Commands
- Slides
- Lecture 13 slides
Class 14: SMP/E (2/18/2009)
- Required Reading
- z/OS book, chapter 17
- Additional material
- IBM SMP/E for z/OS User's Guide
- Slides
- Lecture 14 slides
Class 15: Networking on z (2/23/2009)
- Required Reading
- z/OS book, chapter 19, z/VM book, chapter 11
- Slides
- Lecture 15 slides
Class 16: Security on z (2/25/2009)
- Required Reading
- z/OS book, chapter 18, z/VM book, chapter 12
- Slides
- Lecture 16 slides
Class 17: Performance (3/2/2009)
- Required Reading
- z/VM book, chapter 10
- Additional material
- z/VM Performance
- Slides
- Lecture 17 slides
Class 18: Linux on z (3/4/2009)
- Required Reading
- z/VM book, chapter 13
- Additional Material
- Linux for S/390,
Debian S/390 port,
Linux for S/390: Device Drivers and Installation Commands
- Slides
- Lecture 18 slides
Class 19: Review and Demos (3/9/2009)
- Additional Material
- US firm files complaint about IBM
Class 20: Final Exam (3/11/2009)
Grades can be requested at any time during office hours.
Christian Grothoff
Last modified: Wed Jan 7 16:56:29 MST 2009