Presentation is loading. Please wait.

Presentation is loading. Please wait.

Moving Beyond Boundaries A Natural Extension: Using the Com-plete HTTP Server for Web-Enablement David Wimberly Project/Program Director, University of.

Similar presentations


Presentation on theme: "Moving Beyond Boundaries A Natural Extension: Using the Com-plete HTTP Server for Web-Enablement David Wimberly Project/Program Director, University of."— Presentation transcript:

1 Moving Beyond Boundaries A Natural Extension: Using the Com-plete HTTP Server for Web-Enablement David Wimberly Project/Program Director, University of Arkansas wdw@uark.edu

2 Moving Beyond Boundaries 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

3 Moving Beyond Boundaries 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

4 Moving Beyond Boundaries Com-plete 6.1 Architecture VTAM Inter- face Utili ties Spool Telnet HTTP CGI applications Product X

5 Moving Beyond Boundaries Natural and the HTTP Server HTTP CGI applications

6 Moving Beyond Boundaries Natural Programmer’s View ** 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… Simple CALL interface

7 Moving Beyond Boundaries 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

8 Moving Beyond Boundaries Native MVS Web and Application Server Natural CGI interface (HAANUPR ) HTTP

9 Moving Beyond Boundaries Web-Enablement with the Com-plete HTTP Server Enhancing existing applications with web technologies  Objectives  Background  Web session examples

10 Moving Beyond Boundaries 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

11 Moving Beyond Boundaries 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

12 Moving Beyond Boundaries Logon

13 Moving Beyond Boundaries Menu

14 Moving Beyond Boundaries Browse PO selection screen

15 Moving Beyond Boundaries Help for Date-Close-Anticipated

16 Moving Beyond Boundaries Help for PO status, selection

17 Moving Beyond Boundaries Help for PO status, window

18 Moving Beyond Boundaries PO status returned

19 Moving Beyond Boundaries Budgetary Unit help

20 Moving Beyond Boundaries BU help search

21 Moving Beyond Boundaries Browse PO for Status and BU by Date

22 Moving Beyond Boundaries Browse result and PO selection

23 Moving Beyond Boundaries View of PO, top

24 Moving Beyond Boundaries View of PO, bottom

25 Moving Beyond Boundaries Select a PO to Browse Invoices for PO

26 Moving Beyond Boundaries Browse Invoices for PO

27 Moving Beyond Boundaries View Invoice

28 Moving Beyond Boundaries Select a PO to e-mail

29 Moving Beyond Boundaries E-mail the PO

30 Moving Beyond Boundaries PO list, vendor help

31 Moving Beyond Boundaries Vendor name search

32 Moving Beyond Boundaries Select vendor

33 Moving Beyond Boundaries PO search by vendor and date, initiated

34 Moving Beyond Boundaries PO search by vendor and date, results

35 Moving Beyond Boundaries Main menu, select pay activity

36 Moving Beyond Boundaries Browse pay activity

37 Moving Beyond Boundaries View earnings statement

38 Moving Beyond Boundaries Main menu, select addresses

39 Moving Beyond Boundaries 3270 Addresses, etc. equivalent

40 Moving Beyond Boundaries Addresses, etc

41 Moving Beyond Boundaries Enter changes, view errors and previous values

42 Moving Beyond Boundaries Correct errors and update

43 Moving Beyond Boundaries Update confirmation screen

44 Moving Beyond Boundaries Logoff screen

45 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

46 Moving Beyond Boundaries 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

47 Moving Beyond Boundaries 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”

48 Moving Beyond Boundaries Back Button vs Return As 1 - 10 Bs 1 - 10 Bs 11 - 20 Bs 21 - 30 Cs 1 - 10 Cs 11 - 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

49 Moving Beyond Boundaries 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

50 Moving Beyond Boundaries 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

51 Moving Beyond Boundaries U of A’s Environment HTTPSHTTP 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

52 Moving Beyond Boundaries Com-plete HTTP Server Configuration HAANCONF  SERVPOOL=YES Uses a shared logon or session  NATLIB=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

53 Moving Beyond Boundaries Essential JavaScript Cursor placement Selection processing and linking to different services  Set hidden form element to selected value  Submit form Window management  Open and Close windows  Pass and return values

54 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

55 Moving Beyond Boundaries Coding Tips Develop an architecture and generate your Natural CGI programs using Natural ISPF macros  Fast delivery of new functions  Consistent  Easy to implement changes -- REGEN To simplify making changes in page appearance  Use copy code, subprograms, constants defined in an LDA, and an external style sheet HTML form fields can have dashes, but javascript cannot reference them  Translate them to under-scores

56 Moving Beyond Boundaries HAANUPR Tips Field names  Must end with a blank character Field values  Are not blank filled, reset them before your CALL Field length  Passed in: the largest value you will receive  Returned: 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

57 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 HTML  This may mean holding information until you reach the page

58 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 attachment Read the source work area and send to SMTP using ESS’ PROCESS WRITE-SPOOL  Call from batch to generate an HTML e-mail attachment

59 Moving Beyond Boundaries HTML for UWOMENU, part 1

60 Moving Beyond Boundaries HTML for UWOMENU, part 2

61 Moving Beyond Boundaries Natural code, UWCSBH

62 Moving Beyond Boundaries Natural code, output Action

63 Moving Beyond Boundaries Natural code, output table of Services

64 Moving Beyond Boundaries Natural code, read HTML form fields

65 Moving Beyond Boundaries Enhancement Proposal 958 Efficient browsing of ADABAS data (no wasted I/O)  Forward or backward (descending)  Possible due to STARTING WITH ISN  Regular descriptors  MU type descriptors  Unique PE type descriptors It is not possible with non-unique PE type descriptors! Vote for FIND DESCENDING, enhancement proposal 958

66 Moving Beyond Boundaries Presentation Review The Com-plete HTTP server  A 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 considerations  Tips and examples from the University of Arkansas

67 Moving Beyond Boundaries Thank You!


Download ppt "Moving Beyond Boundaries A Natural Extension: Using the Com-plete HTTP Server for Web-Enablement David Wimberly Project/Program Director, University of."

Similar presentations


Ads by Google