a natural extension: using the com-plete http server for web-enablement

67
Moving Beyond Boundaries A Natural Extension: Using the Com-plete HTTP Server for Web- Enablement David Wimberly Project/Program Director, University of Arkansas [email protected]

Upload: shadi

Post on 25-Feb-2016

59 views

Category:

Documents


0 download

DESCRIPTION

A Natural Extension: Using the Com-plete HTTP Server for Web-Enablement. David Wimberly Project/Program Director, University of Arkansas [email protected]. Presentation Overview. The Com-plete HTTP server A Natural tool for web enablement Web-Enablement at the University of Arkansas - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: A  Natural  Extension: Using the Com-plete HTTP  Server for Web-Enablement

Moving Beyond Boundaries

A Natural Extension:Using the Com-plete HTTP

Server for Web-EnablementDavid Wimberly

Project/Program Director, University of Arkansas [email protected]

Page 2: A  Natural  Extension: Using the Com-plete HTTP  Server for Web-Enablement

Moving Beyond Boundaries

Presentation Overview

The Com-plete HTTP serverA Natural tool for web enablement

Web-Enablement at the University of ArkansasEnhancing existing applications with web

technologies Implementation considerations

Tips and techniquesExamples

Page 3: A  Natural  Extension: Using the Com-plete HTTP  Server for Web-Enablement

Moving Beyond Boundaries

The Com-plete HTTP Server

A Natural tool for web-enablementCom-plete 6.1 architectureNatural and the HTTP serverNatural programmer’s viewSystem viewAdvantages of this native MVS web and application

server

Page 4: A  Natural  Extension: Using the Com-plete HTTP  Server for Web-Enablement

Moving Beyond Boundaries

Com-plete 6.1 Architecture

VTAMInter-face

Utilities

Spool Telnet

HTTP

CGIapplications

Product X

Page 5: A  Natural  Extension: Using the Com-plete HTTP  Server for Web-Enablement

Moving Beyond Boundaries

Natural and the HTTP Server

HTTP

CGIapplications

Page 6: A  Natural  Extension: Using the Com-plete HTTP  Server for Web-Enablement

Moving Beyond Boundaries

Natural Programmer’s View

** Read user input from the webCALL ‘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/returnedSEPARATE…FIND EMPLOYEE WITH…

Simple CALL interface

Page 7: A  Natural  Extension: Using the Com-plete HTTP  Server for Web-Enablement

Moving Beyond Boundaries

System View

Natural programs:Run in the buffer poolAccess ADABAS and other resourcesCall 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

Page 8: A  Natural  Extension: Using the Com-plete HTTP  Server for Web-Enablement

Moving Beyond Boundaries

Native MVS Web and Application Server

NaturalCGI interface(HAANUPR)

HTTP

Page 9: A  Natural  Extension: Using the Com-plete HTTP  Server for Web-Enablement

Moving Beyond Boundaries

Web-Enablement with the Com-plete HTTP Server

Enhancing existing applications with web technologiesObjectivesBackgroundWeb session examples

Page 10: A  Natural  Extension: Using the Com-plete HTTP  Server for Web-Enablement

Moving Beyond Boundaries

U of A’s Objectives

To enhance and extend our mainframe applicationsReach new audiences

Employees and vendorsEnhance the presentation of information

Consolidate information and dress it upSimplify access for infrequent users

Not to replace all or even most 3270 functions Not to literally move a 3270 application to the web

Page 11: A  Natural  Extension: Using the Com-plete HTTP  Server for Web-Enablement

Moving Beyond Boundaries

U of A Background

Natural and ADABAS mainframe shop since 1986 BASIS: Business & Administrative Strategic

Information SystemsCustom inhouse developed applicationsEverything but student systems

Separate groups doing Java web development and screen scraping web deploymentPreference for Natural application code

Timing was right for the Com-plete HTTP Server

Page 12: A  Natural  Extension: Using the Com-plete HTTP  Server for Web-Enablement

Moving Beyond Boundaries

Logon

Page 13: A  Natural  Extension: Using the Com-plete HTTP  Server for Web-Enablement

Moving Beyond Boundaries

Menu

Page 14: A  Natural  Extension: Using the Com-plete HTTP  Server for Web-Enablement

Moving Beyond Boundaries

Browse PO selection screen

Page 15: A  Natural  Extension: Using the Com-plete HTTP  Server for Web-Enablement

Moving Beyond Boundaries

Help for Date-Close-Anticipated

Page 16: A  Natural  Extension: Using the Com-plete HTTP  Server for Web-Enablement

Moving Beyond Boundaries

Help for PO status, selection

Page 17: A  Natural  Extension: Using the Com-plete HTTP  Server for Web-Enablement

Moving Beyond Boundaries

Help for PO status, window

Page 18: A  Natural  Extension: Using the Com-plete HTTP  Server for Web-Enablement

Moving Beyond Boundaries

PO status returned

Page 19: A  Natural  Extension: Using the Com-plete HTTP  Server for Web-Enablement

Moving Beyond Boundaries

Budgetary Unit help

Page 20: A  Natural  Extension: Using the Com-plete HTTP  Server for Web-Enablement

Moving Beyond Boundaries

BU help search

Page 21: A  Natural  Extension: Using the Com-plete HTTP  Server for Web-Enablement

Moving Beyond Boundaries

Browse PO for Status and BU by Date

Page 22: A  Natural  Extension: Using the Com-plete HTTP  Server for Web-Enablement

Moving Beyond Boundaries

Browse result and PO selection

Page 23: A  Natural  Extension: Using the Com-plete HTTP  Server for Web-Enablement

Moving Beyond Boundaries

View of PO, top

Page 24: A  Natural  Extension: Using the Com-plete HTTP  Server for Web-Enablement

Moving Beyond Boundaries

View of PO, bottom

Page 25: A  Natural  Extension: Using the Com-plete HTTP  Server for Web-Enablement

Moving Beyond Boundaries

Select a PO to Browse Invoices for PO

Page 26: A  Natural  Extension: Using the Com-plete HTTP  Server for Web-Enablement

Moving Beyond Boundaries

Browse Invoices for PO

Page 27: A  Natural  Extension: Using the Com-plete HTTP  Server for Web-Enablement

Moving Beyond Boundaries

View Invoice

Page 28: A  Natural  Extension: Using the Com-plete HTTP  Server for Web-Enablement

Moving Beyond Boundaries

Select a PO to e-mail

Page 29: A  Natural  Extension: Using the Com-plete HTTP  Server for Web-Enablement

Moving Beyond Boundaries

E-mail the PO

Page 30: A  Natural  Extension: Using the Com-plete HTTP  Server for Web-Enablement

Moving Beyond Boundaries

PO list, vendor help

Page 31: A  Natural  Extension: Using the Com-plete HTTP  Server for Web-Enablement

Moving Beyond Boundaries

Vendor name search

Page 32: A  Natural  Extension: Using the Com-plete HTTP  Server for Web-Enablement

Moving Beyond Boundaries

Select vendor

Page 33: A  Natural  Extension: Using the Com-plete HTTP  Server for Web-Enablement

Moving Beyond Boundaries

PO search by vendor and date, initiated

Page 34: A  Natural  Extension: Using the Com-plete HTTP  Server for Web-Enablement

Moving Beyond Boundaries

PO search by vendor and date, results

Page 35: A  Natural  Extension: Using the Com-plete HTTP  Server for Web-Enablement

Moving Beyond Boundaries

Main menu, select pay activity

Page 36: A  Natural  Extension: Using the Com-plete HTTP  Server for Web-Enablement

Moving Beyond Boundaries

Browse pay activity

Page 37: A  Natural  Extension: Using the Com-plete HTTP  Server for Web-Enablement

Moving Beyond Boundaries

View earnings statement

Page 38: A  Natural  Extension: Using the Com-plete HTTP  Server for Web-Enablement

Moving Beyond Boundaries

Main menu, select addresses

Page 39: A  Natural  Extension: Using the Com-plete HTTP  Server for Web-Enablement

Moving Beyond Boundaries

3270 Addresses, etc. equivalent

Page 40: A  Natural  Extension: Using the Com-plete HTTP  Server for Web-Enablement

Moving Beyond Boundaries

Addresses, etc

Page 41: A  Natural  Extension: Using the Com-plete HTTP  Server for Web-Enablement

Moving Beyond Boundaries

Enter changes, view errors and previous values

Page 42: A  Natural  Extension: Using the Com-plete HTTP  Server for Web-Enablement

Moving Beyond Boundaries

Correct errors and update

Page 43: A  Natural  Extension: Using the Com-plete HTTP  Server for Web-Enablement

Moving Beyond Boundaries

Update confirmation screen

Page 44: A  Natural  Extension: Using the Com-plete HTTP  Server for Web-Enablement

Moving Beyond Boundaries

Logoff screen

Page 45: A  Natural  Extension: Using the Com-plete HTTP  Server for Web-Enablement

Moving Beyond Boundaries

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

Page 46: A  Natural  Extension: Using the Com-plete HTTP  Server for Web-Enablement

Moving Beyond Boundaries

How to Maintain State

The web is statelessEach interaction (submission) is self containedNo provision for a continuous user session

To maintain stateUse conversational mode, orCreate a session ID (*TIMESTMP)

Place it on the form as a hidden fieldSave and restore user session information using ADABAS

Page 47: A  Natural  Extension: Using the Com-plete HTTP  Server for Web-Enablement

Moving Beyond Boundaries

Back Button

Can subvert your state informationUser reappears not from where you left him

We consideredDisabling itRunning in a window without the toolbar or menubar Issuing errors if they used it

Limit the state information you maintainNot 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”

Page 48: A  Natural  Extension: Using the Com-plete HTTP  Server for Web-Enablement

Moving Beyond Boundaries

Back Button vs Return

As1 - 10

Bs1 - 10

Bs11 - 20

Bs21 - 30

Cs1 - 10

Cs11 - 20

Object selection or Paging

Back button

Return

Browse A objects at level 1

Browse B objects at level 2

Browse C objects at level 3

Page 49: A  Natural  Extension: Using the Com-plete HTTP  Server for Web-Enablement

Moving Beyond Boundaries

How to Return

Save program hierarchy information in hidden fields Our browse functions stack for each level:

Program IDSearch type in effect ISN and MU/PE occurrence of first record on the

screenWhether page back was valid

A Return Pops one of these from the stackExecutes the program and re-initiates the browse

Page 50: A  Natural  Extension: Using the Com-plete HTTP  Server for Web-Enablement

Moving Beyond Boundaries

Data Security

Sensitive data requires encryptionCom-plete HTTP server does not do SSLProxy server introduced to do all encryption and

decryption To avoid mixing document types and client side

warningsStyle sheets and graphics are delivered from a

separate web server using HTTPS

Page 51: A  Natural  Extension: Using the Com-plete HTTP  Server for Web-Enablement

Moving Beyond Boundaries

U of A’s Environment

HTTPS HTTP

Client with SSL enabled Web Browser

Proxy Server for SSL encryption

Web Server for *.gif and *.css files

IBM OS/390 running ADABAS, Natural, and Com-plete 6.1

Page 52: A  Natural  Extension: Using the Com-plete HTTP  Server for Web-Enablement

Moving Beyond Boundaries

Com-plete HTTP Server Configuration

HAANCONFSERVPOOL=YES

Uses a shared logon or sessionNATLIB=default library

Natural CGI programs in other libraries require an implicit logon

HTTPUSER=default user ID URL processing user exit

Restrict access to specific hosts or domains

Page 53: A  Natural  Extension: Using the Com-plete HTTP  Server for Web-Enablement

Moving Beyond Boundaries

Essential JavaScript

Cursor placement Selection processing and linking to different

servicesSet hidden form element to selected valueSubmit form

Window managementOpen and Close windowsPass and return values

Page 54: A  Natural  Extension: Using the Com-plete HTTP  Server for Web-Enablement

Moving Beyond Boundaries

Techniques for Generating HTML

Output your HTML to the Source Work Area Use Natural ISPF macros

But macros cannot be invoked directly as a Natural CGI program Use Natural

DEFINE PRINTER (1) OUTPUT 'SOURCE'FORMAT (1) PS=0 LS=133 EJECT OFF (1) SET CONTROL 'Z‘WRITE (1) NOTITLE …

Send the generated HTML to the browser HNANCGIP is provided, but limited to 72 character lines Create your own using longer lines via the USR1035N interface

Page 55: A  Natural  Extension: Using the Com-plete HTTP  Server for Web-Enablement

Moving Beyond Boundaries

Coding Tips

Develop an architecture and generate your Natural CGI programs using Natural ISPF macrosFast delivery of new functionsConsistentEasy to implement changes -- REGEN

To simplify making changes in page appearanceUse copy code, subprograms, constants defined in

an LDA, and an external style sheet HTML form fields can have dashes, but javascript

cannot reference themTranslate them to under-scores

Page 56: A  Natural  Extension: Using the Com-plete HTTP  Server for Web-Enablement

Moving Beyond Boundaries

HAANUPR Tips

Field namesMust end with a blank character

Field valuesAre not blank filled, reset them before your CALL

Field lengthPassed in: the largest value you will receiveReturned: the actual size of the field entered

CALL ‘HAANUPR’ #CGI-STATUS /* Return 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

Page 57: A  Natural  Extension: Using the Com-plete HTTP  Server for Web-Enablement

Moving Beyond Boundaries

Debugging Tips

You can’t sprinkle WRITEs into your code You can’t run the Natural debugger Trap and log errors on a data base file

Note: *ERROR-TA always starts as HNANERR and can only be changed by an assignment statement

Output your debugging information with your web page using HTMLThis may mean holding information until you reach

the page <body>

Page 58: A  Natural  Extension: Using the Com-plete HTTP  Server for Web-Enablement

Moving Beyond Boundaries

Code Reuse

Develop a Natural subprogram to output the core HTML document for an object (Purchase Order, Earnings Statement, etc.)Call from your Com-plete web application (Natural

CGI program)Call from online 3270 session to generate an HTML

e-mail attachmentRead the source work area and send to SMTP using ESS’ PROCESS WRITE-SPOOL

Call from batch to generate an HTML e-mail attachment

Page 59: A  Natural  Extension: Using the Com-plete HTTP  Server for Web-Enablement

Moving Beyond Boundaries

HTML for UWOMENU, part 1

Page 60: A  Natural  Extension: Using the Com-plete HTTP  Server for Web-Enablement

Moving Beyond Boundaries

HTML for UWOMENU, part 2

Page 61: A  Natural  Extension: Using the Com-plete HTTP  Server for Web-Enablement

Moving Beyond Boundaries

Natural code, UWCSBH

Page 62: A  Natural  Extension: Using the Com-plete HTTP  Server for Web-Enablement

Moving Beyond Boundaries

Natural code, output Action

Page 63: A  Natural  Extension: Using the Com-plete HTTP  Server for Web-Enablement

Moving Beyond Boundaries

Natural code, output table of Services

Page 64: A  Natural  Extension: Using the Com-plete HTTP  Server for Web-Enablement

Moving Beyond Boundaries

Natural code, read HTML form fields

Page 65: A  Natural  Extension: Using the Com-plete HTTP  Server for Web-Enablement

Moving Beyond Boundaries

Enhancement Proposal 958

Efficient browsing of ADABAS data (no wasted I/O)Forward or backward (descending)Possible due to STARTING WITH ISNRegular descriptorsMU type descriptorsUnique PE type descriptors

It is not possible with non-unique PE type descriptors!

Vote for FIND DESCENDING, enhancement proposal 958

Page 66: A  Natural  Extension: Using the Com-plete HTTP  Server for Web-Enablement

Moving Beyond Boundaries

Presentation Review

The Com-plete HTTP serverA great run time environment for Natural, and now

an enabler for Natural based web applications Web-Enablement at the University of Arkansas

Examples of what can be done with the Com-plete HTTP server

Implementation considerationsTips and examples from the University of Arkansas

Page 67: A  Natural  Extension: Using the Com-plete HTTP  Server for Web-Enablement

Moving Beyond Boundaries

Thank You!