52
06/19/22 A Natural Web Front End using CICS Transaction Gateway Michael Erichsen, CSC GSE Nordic and UK CICS Conference Hursley, May 1999 Session N25

A Natural Web Front End using CICS Transaction Gateway

Embed Size (px)

Citation preview

Page 1: A Natural Web Front End using CICS Transaction Gateway

05/02/23

A Natural Web Front End usingCICS Transaction Gateway

Michael Erichsen, CSC

GSE Nordic and UK CICS ConferenceHursley, May 1999

Session N25

Page 2: A Natural Web Front End using CICS Transaction Gateway

05/02/23

Agenda

CSC

Covering Students’ Living Costs

The US2000 Project

A three Tier Architecture

Three different views of Data

The Program Flow

Java Development

Other Challenges

Page 3: A Natural Web Front End using CICS Transaction Gateway

05/02/23

CSC

A “Collection of Small Companies” - 51,000 employees Management Consulting Systems Integration & IT Consulting Technology Management

CSC Scandinavia CSC Denmark CSC Computer Management CSC Sweden

Page 4: A Natural Web Front End using CICS Transaction Gateway

05/02/23

Agenda

Covering Students’ Living Costs

Page 5: A Natural Web Front End using CICS Transaction Gateway

05/02/23

Covering Students’ Living Costs

SU (Statens Uddannelsesstøtte) is the Danish State Education Grants and Loan Scheme Agency

Provides for 250,000 students every year

Tuition is free at public and most private educational institutions

Supports students with grants and loans

Annual budget over 8,000,000,000 DKK - 0.6% of GNP

Page 6: A Natural Web Front End using CICS Transaction Gateway

05/02/23

Agenda

The US2000 Project

Page 7: A Natural Web Front End using CICS Transaction Gateway

05/02/23

The US2000 Project

The current system consists of 70+ 3270 applications running Software AG Natural and Adabas on CICS/VSE

The Agency decided in 1997 to modernise system

Asked three partners for proposals November 1997

A technical model was prepared by CSC in May 1998

Specification made in June 1998

CSC on project July 1998

Pilot production 2Q 1999

Full implementation 4Q 1999

Page 8: A Natural Web Front End using CICS Transaction Gateway

05/02/23

Why a Web Interface?

A modern graphical user interface

Safeguard the investment in business logic

Maintain a stable environment

Easier to learn for new users

Can cooperate with PC environment

Relieve the Agency of the responsibility for the users’ network connections and software distribution

Enabling self service by students

Page 9: A Natural Web Front End using CICS Transaction Gateway

05/02/23

Agenda

A Three Tier Architecture

Page 10: A Natural Web Front End using CICS Transaction Gateway

05/02/23

PC UNIX Server VSEWEBBrowser

CICS Client

CICS Gatewayfor Java

WEB Server

VTA

M

CICS

Natural

HTTP

APPC

ADABAS

Personal Comm

A Three Tier Architecture

Page 11: A Natural Web Front End using CICS Transaction Gateway

05/02/23

The Communication Architecture

A classic Windows Client/server model was rejected due to configuration and software distribution problems

A general transaction format is designed to simplify programming

Application logic in Client and on CICS/VSE, not on middle tier

Fundamentally just a new incarnation of the well-tested, rock-solid transaction processing model

Page 12: A Natural Web Front End using CICS Transaction Gateway

05/02/23

Why a Middle Tier?

CICS/VSE has no direct Web interface - yet

Design prepared for interfacing directly with CICS

Two different proposals: SAG Entire Broker CICS Transaction Gateway

The Agency bought a complete IBM package with RS/6000, AIX, LDGWS, and CICS Transaction Gateway for the middle tier

Page 13: A Natural Web Front End using CICS Transaction Gateway

05/02/23

The Server Architecture

Total separation of user dialogue from business logic and data access

Natural programmers can concentrate on business logic

Willing to reprogram 3270 applications to server programs

Prepare architecture for the future

Two simple CICS Assembler programs make up server end of "Pipeline"

Page 14: A Natural Web Front End using CICS Transaction Gateway

05/02/23

The NATCALL Interface

Page 15: A Natural Web Front End using CICS Transaction Gateway

05/02/23

The Client Architecture

Visual classes

Formatting classes

Transaction classes

The architecture has matured through three steps to Client heaven

Step 1: The decision to use Java Step 2: Applets or Applications Step 3: Java Beans

Page 16: A Natural Web Front End using CICS Transaction Gateway

05/02/23

Step 1: The Decision to use Java

Better function than plain HTML

Enables mouseless operation

Java Applets are easy to distribute on-line

Response time proves acceptable Averaging 0.5 seconds on browser

Page 17: A Natural Web Front End using CICS Transaction Gateway

05/02/23

Step 2: Applets or Applications

Applications run Stand-alone on the desktop

Applets run inside a browser

Problems with caching of jar files

Browsers are not compatible

Applications can also be distributed on-line

But loses some functionality

Page 18: A Natural Web Front End using CICS Transaction Gateway

05/02/23

Step 3: Java Beans

Java Beans is a component technology

Helps to design for code reuse

Visual builder tools understands the components

Systems programmers can encapsulate complexities and validation in Java Beans

Application programmers can concentrate on user interfaces

Both applets and applications can be built from Java Beans

Page 19: A Natural Web Front End using CICS Transaction Gateway

05/02/23

Agenda

Three Different Views of Data

Page 20: A Natural Web Front End using CICS Transaction Gateway

05/02/23

Three Different Views of Data

Java classes Internal fields/properties with names and types Accessed through "setter" and "getter" methods

CICS Program One long buffer (Commarea) with an implicit structure Each end must understand offsets, lengths and types

Natural Programs Positional parameters with names and types Accessed by name

Page 21: A Natural Web Front End using CICS Transaction Gateway

05/02/23

How to Map a Commarea?

Different models Self describing format Variable length fields Predefined structure known by both ends ...

Characters only or binary numeric data?

Page 22: A Natural Web Front End using CICS Transaction Gateway

05/02/23

Predefined Transaction Format

SSeeggmmeenntt UUsseedd bbyy CCoonntteennttssA Pipeline only Password

Natural andAdabas identifiersInternal responsetime

B PipelineNatural Control

UseridError information

C Natural ControlServer Programs

Personal ID No.Response textJournalinformation

D Specific ServerProgram only

Transactionspecific fields

Page 23: A Natural Web Front End using CICS Transaction Gateway

05/02/23

Data Inversions

SSuubbssyysstteemm DDaattaa vviieewweedd aass DDaattaa aacccceesssseedd bbyy

Client front-end Visual fields Getters andsetters

Client back-end Bean Properties Getters andsetters

Pipeline Data buffer -

Natural programs Positionalparameters

Name

Page 24: A Natural Web Front End using CICS Transaction Gateway

05/02/23

Agenda

The Program Flow

Page 25: A Natural Web Front End using CICS Transaction Gateway

05/02/23

PC UNIX Server

VSE

Java Client

CICS Transaction Gateway

ADABAS

The Program Flow

Frontend

Backend

Bootstrap

Control

Server

Page 26: A Natural Web Front End using CICS Transaction Gateway

05/02/23

The US2000 Java Client

Page 27: A Natural Web Front End using CICS Transaction Gateway

05/02/23

Formatting Beans

A M O U N T_ N 8B ean

D D _ M M _ Y Y Y YB ean

C P R N RB ean

E tc .

N atu ra lF orm ate rin g(A b s trac t)

C om p on en t

O b jec t

Page 28: A Natural Web Front End using CICS Transaction Gateway

05/02/23

Transaction Beans

D is p layS tu d en tIn fo rm ationB ean

D isp layP aren tIn com eB ean

E tc .

C s cA b s trac tTran sac tion

O b jec t

Page 29: A Natural Web Front End using CICS Transaction Gateway

05/02/23

CICS Transaction Gateway

Page 30: A Natural Web Front End using CICS Transaction Gateway

05/02/23

Front-ending Natural

TS Queue

Page 31: A Natural Web Front End using CICS Transaction Gateway

05/02/23

3GL Front End on CICS

Distributed Program Link with a Commarea from CICS Client through APPC

Saves Commarea in a Temporary Storage queue

Saves User id, response time etc. in a Data Table for surveillance and performance monitoring

Links to Natural Boot Strap with a list of dynamic parameters including data from the A and B segments

Page 32: A Natural Web Front End using CICS Transaction Gateway

05/02/23

Natural Boot Strap Program

Does Natural initialisation and housekeeping behind the covers

Cannot be called with data

Calls out again to another 3GL program

Just two lines of code

Page 33: A Natural Web Front End using CICS Transaction Gateway

05/02/23

3GL Back End on CICS

Reads the Commarea from Temporary Storage

Allocates extra storage for communication between Natural subprograms to prevent storage violations

Calls Natural Parameter List Builder Program

Calls Natural Control Subprogram with Commarea as a single positional parameter

Afterwards data is returned through Temporary Storage

A dummy back end seems to be necessary to get around Natural’s Menu system...

Page 34: A Natural Web Front End using CICS Transaction Gateway

05/02/23

Natural Subprograms

Natural Control Subprogram Subdivides the Commarea into positional parameters Gives control to the appropriate server subprogram Saves response time returned from the Client Assembles data from server subprogram back into a single

positional parameter

Natural Server Subprogram Validates data Does business logic Accesses Adabas Eventually about 100 server programs with as many

different D segments

Page 35: A Natural Web Front End using CICS Transaction Gateway

05/02/23

Other CICS programs

Page 36: A Natural Web Front End using CICS Transaction Gateway

05/02/23

Agenda

Java Development

Page 37: A Natural Web Front End using CICS Transaction Gateway

05/02/23

Java Development

Objects, reuse, and components

Division of work

Education

Designing the component architecture

Visual builder tools and how to choose them

Page 38: A Natural Web Front End using CICS Transaction Gateway

05/02/23

Objects, Reuse, and Components

Object technology still hasn’t fulfilled the promises of code reuse

Have to consciously build code reuse into the design of classes and applications

Components can help doing this

Supported by a new generation visual builders

Need to organise the project group division of work

Need to adopt an iterative development process

Page 39: A Natural Web Front End using CICS Transaction Gateway

05/02/23

Division of Work

Visual application programmers User interface

Systems programmers Communication Complex technical matters

Tools for each kind of person

Optimal use of differentiated qualifications and interests

Make it fun for everybody to ensure motivation and to reduce staff turnover

Page 40: A Natural Web Front End using CICS Transaction Gateway

05/02/23

Visual Programming

Page 41: A Natural Web Front End using CICS Transaction Gateway

05/02/23

Education

Java is difficult to learn for a Natural or 3GL developer Objects is a different ballgame than structured (or even

unstructured) programming Components are something else again

Three distinct education needs User interface design Object design Using the specific tool

Page 42: A Natural Web Front End using CICS Transaction Gateway

05/02/23

Designing the Component Architecture

Generalise common functionality into abstract parent classes

Secures optimal reuse of code Concrete, derived classes only contain what is specific to

them

An iterative development process Continuous identification of functions to be moved from

application to systems programming

Keep classes small and simple

Page 43: A Natural Web Front End using CICS Transaction Gateway

05/02/23

Visual Builder Tools

Visual Café from Symantec

Visual Age from IBM

More than 20 others

Started with Visual Café 2.5

Changed to Visual Age 2.0

Page 44: A Natural Web Front End using CICS Transaction Gateway

05/02/23

Criteria for Visual Builder Choice

Import/export of source

Support for the preferred division of work

Support for programming styles and services

External support

Page 45: A Natural Web Front End using CICS Transaction Gateway

05/02/23

Keeping Java classes in Sync with Natural Development

Page 46: A Natural Web Front End using CICS Transaction Gateway

05/02/23

Natural in - Java out

16:23:44 Subprogram ISTA Library U 0010 ************************************0020 * PROGRAM : ISTA 0030 * FUNKTION : Stamoplysninger0040 * BESKRIVELSE : Viser stamoplysnin0050 * støtteår. 0060 * Programmør : Finn Jørgensen 0070 * OPRETTET : 16-12-1998 0080 ************************************0090 * Versionsændringer: 0100 * 0110 * Version Init Dato Beskrivelse 0120 * ------- ---- -------- ------------0130 * 001 FJ 16-12-98 VERSION 1. 0140 ************************************0150 DEFINE DATA PARAMETER 0160 * 0170 USING A-PARMTR 0180 * 0190 LOCAL USING T-PERSON 0200 LOCAL USING T-REKVIS 0210 * 0220 LOCAL 0230 * 0240 * TRANS-AREAL D 0250 * TRANSNAVN=VIS_STAMOPLYSNINGER0260 * COMMAREAID=ISTA0270 1 W-TRANSDATA (A1/1:400280 1 REDEFINE W-TRANSDATA0290 2 TR-VERSION (N3) /*V0300 2 TR-LGD (N5) /*V0310 * Adresse10320 2 TR-CONAVN1 (A34)0330 2 TR-OPKRADR1 (A34)0340 2 TR-BYNAVN1 (A34)

package dk.su.us2000.trans;import java.beans.*;import com.sun.java.swing.*;

/*** This class represents the commarea b * It is generated by the CSC Commarea Ge * <p>This class contains accessors and m * in the D segment of the transaction de * It inherits accessors and mutators * for the A, B, and C segments from its * @version Natural: 981216 16:23, Java: * @author Finn Jørgensen */public class ISTA extends dk.su.us2000.tr

/** No-arg constructor */public ISTA() {super();initialize();} // No-arg c:tor

/** Gets the VERSION property (String) va * @return The VERSION field. * @see #setVERSION */public String getVERSION() {byte[] ba = new byte[3];System.arraycopy(commarea, 830, ba, 0, 3)String sout = new String(ba);if (isDebug()) {System.out.println("Method getVERS} // if debugreturn strip(sout, "N");} // getVERSION()

Page 47: A Natural Web Front End using CICS Transaction Gateway

05/02/23

Properties of a Generated Transaction Bean

Page 48: A Natural Web Front End using CICS Transaction Gateway

05/02/23

Agenda

Other Challenges

Page 49: A Natural Web Front End using CICS Transaction Gateway

05/02/23

State Handling

CICS pseudo transactions have states - web transactions are stateless

User can go away without telling CICS

Retaining sign-on between calls

Achieving update integrity by serialisation using timestamps on each database record

Page 50: A Natural Web Front End using CICS Transaction Gateway

05/02/23

New Version Problems on Old Bottles

Web distribution solves the old version problems

But the most common browsers do not implement Java identically

Can be remedied by using the Java Plug-In

Still have to handle a multitude of version interdependencies and incompatibilities

Page 51: A Natural Web Front End using CICS Transaction Gateway

05/02/23

Security

Logon is done with userid and password and is validated by Natural Security

A user profile is retrieved from Adabas and sent to the Client to control the dynamic menu

Security of userids, passwords, and data when running on the open network is currently being analysed

Page 52: A Natural Web Front End using CICS Transaction Gateway

05/02/23

Any Questions?