Hosted MVS
This project aims to provide hosted MVS and VM instances so that members can:
- Log in to (via 3270 terminals - including a AJAX browser emulator) MVS anv VM for development and training purposes.
- Submit JCL jobs via a custom command line tool (for development purposed).
- Mount and create tapes.
The vision is to provide an easy to use platform that will allow people to easily learn, experiment with and use to develop (open) software for MVS and VM.
Scope
Key scope/requirements of the project is:
1. Support Multiple Instances of Hercules
2. Support Remote access via TN3270
3. Provide a Web based AJAX console to allow:
- Remote access via a Web Based 3270
- Auto provisioning (including users)
- Ability to view/download print output
- Ability to submit JCL jobs
- Ability to upload/download and mount tapes
- Ability to view/download/upload (and redirect to a reader) punch output/input
4. A Web-Service interface (and downloadable command line tool) to provide the same
functions as the console. This will allow remote submission of jobs (possibly by client [PC] side build scripts)
5. A Programmable Operator (using REXX scripts) to support, start-up,
shutdown, mounting tapes, catalogue password, and the like
6. Hosting will be public and free
7. Software will be open source
Console Screen Shots
The most challenging piece of work is to provide a comfortable Web Console to allow users to access the facility and manage their account.
Especially challenging is providing a really usable 3270 Web based emulator. I am very happy to say that I have manged to complete this task and included some screen shots below. The 3270 Emulator maps 3270 fields into HTML INPUT TEXT fields, and uses CSS classes to implement field attributes, uses READONLY for PROTECTED fields, etc.
In addition Javascript was required to
- Provide Function Keys
- Provide expected TAB key behavior
- Provide expected Cursor key behaviour (including working out which field and which field position the text cursor should go to if, for example, the down cursor key was pressed)
- Provide Cursor select (via double click)
A key design aim was to make sure that the Web Emulator as efficient as a normal 3270 Emulator in the sense that round trips to the web server only happen when ACTs are triggered (i.e. Function Keys, ENTER, PAs etc.), but not for other events (like TABing, normal characters etc.).
I have put a standalone version up pointing to the free DeZhi Mainframe here http://mvs.open-bpm.org/.
Screen Shots
Notice that the Status bar and onscreen keyboard are "rough and ready" ... these have been completed in the current version.



Status
Support Multiple Instances of Hercules
Technology: Hercules, Scripts and MySQL database to manages instances, accounts and input/output.
Status: Complete
Support Remote access via TN3270
Technology: Authenticating Proxy developed (C++)
Status: Complete
Console - General
Technology: Wt (Witty) C++ AJAX Library
Status: Framework and security complete
Console - Remote access via a Web Based 3270
Technology: Wt, S3270 and custom Javascript
Status: Feature Complete (Screen Rendering, Attributes (i.e. colours), Function Keys, Cursor Keys, Tab Key, IND$FILE, Multiple Instances)
Console - Auto provisioning (including users)
Technology: Wt Forms, REXX, JCL & MVS/VM C
Status: Not started
Console - Ability to view/download print output
Technology: Wt Forms, Hercules Print Handler, MySQL storage
Status: 70% Complete
Console - Ability to submit JCL jobs
Technology: Wt Forms, Hercules Job Submitter, MySQL storage
Status: Not Started
Console - Ability to upload/download and mount tapes
Technology: Wt Forms, Hercules Tape Mounter (Operator), MySQL storage
Status: Not Started
Console - Ability to view/download (and redirect to a reader) punch output
Technology: Wt Forms, Hercules Punch Handler, MySQL storage
Status: Not Started
Web-Service interface and command line tool
Technology: Based on GSOAP
Status: Technology and transport complete (including huge files)
Need to wait for Console to be completed before hooking up to functionality.
Programmable Operator
Technology: Based on existing RexxObjects project code
Status: Not Started
Proof of Concept Status
An initial version was provided as a POC (Proof of Concept) instance to develop the concept.
- MVS was been hardened with RAKF etc.
- We have a authenticating 3270 TELNET proxy (for perimeter security)
- We have tested h3270 web 3270 emulator. This was found not to be fit-for-purpose and subsequent development has replaced this.
- A Print handler has been developed to split and post output to the correct member.
- JCL External Submission (including print output response) is the next task. This will be a web service - we will provide a command line client.
- Automatic user provisioning is pending. I will review the existing JCL and I need to integrate this with RAKF. A common userid will be used (between portal and MVS) but the passwords will be separate (this work was not completed during the POC).
The POC was successful and shows it is possible to host Hercules remotely with sufficient performance and stability and with no obvious long term hosting issues. A key finding was that no publicly available Web Based 3270 Emulator with the required features (and "comfort") and stability existed. This will need to be developed.
This POC is now closed - I am actively developing the console and will update this page when it is available again - please e-mail me if you have any questions. (AS - 17 July 2009)
Note: The MVS version is currently based on MVS/380 which is built on top of TK3SU1 which is again built on top of TK3. There seems to be community issues with the use of Turnkey TK3 and MVS/380 - it may be that a custom distribution of MVS will be needed, but it is hoped that the Turnkey community will come up with an acceptable distribution.
POC Instructions
Notes:
- These are now obsolete - but have been kept here for reference.
- Currently these instructions are only designed for people who know MVS well. Beginners instructions will be developed once we have a completed hosted platform.
Sign-Up
To Access the system you need to be a open-bpm member. Sign-up with the link on the left - this is free, automated and quick.
Currently there is no automatic way to provision a MVS userid - please e-mail me and I will set up an account for you.
3270 Access
The link is mvs.open-bpm.org port 3270.
If you are using C3270 please use "a:mvs.open-bpm.org:3270".
The system first stays in VT (ASCII) mode and asks for userid/password - please use your open-bpm member details. It then connects to the host and goes into 3270 mode - you will get the standard Turnkey log-in screen.
Note: Press CLEAR to bring up the Turnkey Login Screen if you only get the Hercules start screen.
Printer Output
The printed output from your jobs will be routed to your private files (link on left).
MVS Security
Always use have a USER=xx,PASSWORD=yy in your job card. Otherwise RAKF will not give you access to your datasets! Also the print handler will not know to route output to you.
Note: Do not save your MVS password in you JCL - everyone can read it!
Web Access
Please try http://mvs.open-bpm.org/
You need to log-in to the page using your open-bpm member details. Then follow the link to h3270.
This is very much Alpha quality (panels are OK but TSO confuses the 3270 emulator).
Notes:
- Please always use the http://mvs.open-bpm.org/ first - do not go directly to the h3270 emulator - otherwise the authentication caching does not work and you will get a slow connection ...
- Press CLEAR to bring up the Turnkey Login Screen if you only get the Hercules start screen.
- Use the Browser Back Button and bring up the keypad and use RESET to try and recover from Java Exceptions (remeber this web interface is ALPHA).
JCL Submission
This will be via a provided command line tool (and web service if you want to code your own).
I will post details once I have set this up.
Cookbook
See here