670 likes | 858 Views
A Natural Extension: Using the Com-plete HTTP Server for Web-Enablement. David Wimberly Project/Program Director, University of Arkansas wdw@uark.edu. Presentation Overview. The Com-plete HTTP server A Natural tool for web enablement Web-Enablement at the University of Arkansas
E N D
A Natural Extension:Using the Com-plete HTTP Server for Web-Enablement David Wimberly Project/Program Director, University of Arkansas wdw@uark.edu
Presentation Overview • The Com-plete HTTP server • A Natural tool for web enablement • Web-Enablement at the University of Arkansas • Enhancing existing applications with web technologies • Implementation considerations • Tips and techniques • Examples
The Com-plete HTTP Server • A Natural tool for web-enablement • Com-plete 6.1 architecture • Natural and the HTTP server • Natural programmer’s view • System view • Advantages of this native MVS web and application server
VTAM Inter- face CGI applications Product X Utili ties Spool Telnet Natural HTTP HLLI Posix RTS Com-plete 6.1 Architecture
CGI applications Natural HTTP HLLI Posix RTS Natural and the HTTP Server
Natural Programmer’s View • Simple CALL interface ** Read user input from the web CALL ‘HAANUPR’ #CGI-STATUS /* Return code and reason code #CGI-ACTION /* GET-DATA or PUT-DATA #FIELD-NAME /* HTML form field name #FIELD-VALUE /* User input value #FIELD-LENGTH /* Length anticipated/returned SEPARATE… FIND EMPLOYEE WITH…
System View • Natural programs: • Run in the buffer pool • Access ADABAS and other resources • Call external module HAANUPR • To read HTML form inputs and controls (GET or POST) • To send dynamically generated HTML to the browser • Configuration parameters for default user ID, library, buffer sizes, etc. • Automatic EBCDIC/ASCII translations and url encoding/decoding
Com-plete v6.1 Natural HLLI Posix TCP/IP ESX TCP/IP ADABAS Natural CGI interface (HAANUPR) HTTP Operating System Native MVS Web and Application Server
Web-Enablement with the Com-plete HTTP Server • Enhancing existing applications with web technologies • Objectives • Background • Web session examples
U of A’s Objectives • To enhance and extend our mainframe applications • Reach new audiences • Employees and vendors • Enhance the presentation of information • Consolidate information and dress it up • Simplify access for infrequent users • Not to replace all or even most 3270 functions • Not to literally move a 3270 application to the web
U of A Background • Natural and ADABAS mainframe shop since 1986 • BASIS: Business & Administrative Strategic Information Systems • Custom inhouse developed applications • Everything but student systems • Separate groups doing Java web development and screen scraping web deployment • Preference for Natural application code • Timing was right for the Com-plete HTTP Server
Implementation Considerations • How to maintain state • Back button • Back button vs Return • Data security • Configuration • Essential JavaScript • Techniques for generating HTML • Coding tips, debugging tips, and more • Example HTML and Natural code
How to Maintain State • The web is stateless • Each interaction (submission) is self contained • No provision for a continuous user session • To maintain state • Use conversational mode, or • Create a session ID (*TIMESTMP) • Place it on the form as a hidden field • Save and restore user session information using ADABAS
Back Button • Can subvert your state information • User reappears not from where you left him • We considered • Disabling it • Running in a window without the toolbar or menubar • Issuing errors if they used it • Limit the state information you maintain • Not the active position within a READ loop • Instead, hide the first and last ISN on a page • Have one entry point -- a dispatcher program • action=“uwowdis”
Back Button vs Return Browse A objects at level 1 Browse B objects at level 2 Browse C objects at level 3 As 1 - 10 Bs 1 - 10 Cs 1 - 10 Object selection or Paging Cs 11 - 20 Bs 11 - 20 Back button Return Bs 21 - 30
How to Return • Save program hierarchy information in hidden fields • Our browse functions stack for each level: • Program ID • Search type in effect • ISN and MU/PE occurrence of first record on the screen • Whether page back was valid • A Return • Pops one of these from the stack • Executes the program and re-initiates the browse
Data Security • Sensitive data requires encryption • Com-plete HTTP server does not do SSL • Proxy server introduced to do all encryption and decryption • To avoid mixing document types and client side warnings • Style sheets and graphics are delivered from a separate web server using HTTPS