Open-BPM > System Architecture > The Hosted Hercules Project

Hosted MVS

The Hercules Hosting Console in Action
The Hercules Hosting Console in Action

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.

 

tl_files/openbpm/Logon.png

 

 

tl_files/openbpm/edit.png

 

tl_files/openbpm/edit2.png

 

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