Transcript Document

Web Access to Adabas Using
EntireX Broker and a Natural Server
Lee Dustman
Database Administrator
Texas Office of the Attorney General,
Child Support Enforcement
7/16/2015
1
Agenda
Business requirement to provide Web access to
existing, mainframe Adabas data
Fitting EntireX Broker as Message-oriented-Middleware
to the TxOAG CSES application and environment in
Client/Server architecture
Major Architectural Decisions that enabled EntireX
Broker to ‘fit’ into the TxOAG IT environment.
Nuts and bolts
Nice-to-haves
7/16/2015
2
Introductory Basics
Web enables people to communicate via
computer.
Chasm between Web & Mainframe needs bridge.
EntireX Broker acts as such a bridge.
As we set it up in our shop, it works well for us.
Our architecture is just one of many options.
7/16/2015
3
Business requirement to provide
Web access to Adabas data
Allows clients direct access to their own
information.
Reduces need for ‘call center’ personnel, and for
data-entry clerks.
Implements a more flexible application
architecture, which allows separation of
presentation from business logic.
7/16/2015
4
Using EntireX Broker in
Client/Server architecture
Client/Server paradigm & architecture
– Client instigates request for Service
– Server ‘orchestrates’ fulfillment of Service
– Service performs required processing
EntireX Broker as message-oriented-middleware
– “From any platform, to any platform”
ACI vs. RPC
7/16/2015
5
EntireX Broker
Application Control Interface
CALL ‘BROKER’ #ETBCB #SEND #RECV #ERR
Four pieces of Broker message:
1) ACI Block - 600 bytes
– Broker-Id, Class, Server, Service
– Function-code, Buffer-lengths, User-Id, etc.
2) Send buffer (user-defined)
3) Receive buffer (user-defined)
4) Error-msg (up to 50 bytes)
7/16/2015
6
TxOAG CSES Application
CSES (Child Support Enforcement System)
written in Natural.
Implemented in 1997
Modularized; many subprograms, subroutines,
copycode modules.
Adabas database
– Prod (DB11) occupies appx. 1 terabyte
7/16/2015
7
TxOAG CSE Environment
3 LPARS
– System TEST – DBA playground
– DEVLopment – Programmer’s work area
– PRODuction – holds the database of record
Multiple Test Databases in Development
Two FUSERs in DEVL
– Development, for Programmers
– Test, for CSES Testing team
Two FUSERs in PROD
7/16/2015
8
TxOAG Software Life Cycle
System Test (system software only)
– LPAR: SYS3, FUSER: SysTEST (77,007), UDB: 77, 66
Development
– LPAR: SYS2, FUSER: Devl (88,007), UDB: 89-96
Test
– LPAR: SYS2, FUSER: Test (88,009), UDB: 89-96
Stage
– LPAR: SYS1, FUSER: Stage (01,009), UDB: (11)
Production
– LPAR: SYS1, FUSER: Prod (01,007), UDB: 11
7/16/2015
9
Major architecture decisions
What will Broker-Id represent?
– Broker will run on mainframe
What will Class represent?
What will Server represent?
– Natural program running as batch job
What will Service represent?
– Natural subprogram invoked by Server program
7/16/2015
10
TxOAG Conventions
Broker-ID = LPAR
– SysTEST=033, DEVL=036, PROD=039
Class = FUSER
– SysTEST = CSS, Devl = CSD, Test=CST, Prod=CSP
Server = Buffer size
– Small, Medium, Large (EX000nP1)
– Non-conversational, Conversational (EX000xP1)
Service = Name of Natural module executed
– Name based on shop Natural naming standards
7/16/2015
11
EntireX Broker Components
Broker Job & Broker Security Job
– Links to Adabas nucleus,
– SAF interface
Broker Attribute file
– Broker attributes
– List of Register-able Services
Broker ‘stubs’
– Installed on Participants’ machine
7/16/2015
12
Minimum Server functionality
Register Services
‘Receive’ request for Service
– CALL ‘BROKER’
• With Function = 1 (Receive), WAIT=YES
Fulfill (invoke or perform) Service
‘Send’ query results back to Client via Broker
– CALL ‘BROKER’
• FUNCTION = 2 (Send), WAIT = NO
7/16/2015
13
Recommended Server
Functionality
‘Logon’
‘Receive’ & ‘Send’ inside REPEAT loop
CALLNAT Service module,
– query parameters, query results passed in PDA
– READ, FIND (whatever) qualified by parameters
Error-handling
– Broker errors
– Service errors
‘Deregister’ and ‘Logoff’
7/16/2015
14
Enhanced Server Functionality
Server error handling
– Time-outs (3009)
Internal Maintenance Services
– Perform Logon, Register, De-register, Logoff, EOJ
Shutdown Statistics
Ping Service
Handle variable buffer-lengths
7/16/2015
15
Advanced Server Functionality
Use *User from web app, not batch Server
jobname
Natural/Adabas Administration tool
Conversational Servers & Services
Attach Server
Units of Work
Message Persistence
7/16/2015
16
Basic Client functionality
Load ACI
Load Send Buffer
Send with WAIT=YES
– Broker returns results in Receive-buffer
– Proceed to next line of code
Mainframe Client example code is located in SAG
documentation
Several PC Client examples also in SAG
documentation
7/16/2015
17
Summary
EntireX Broker bridges gap between Web & mainframe
–
–
–
–
Message-oriented-middleware
Uses Client/Server paradigm
Passes service request & query parms from Client to Server
Passes query results & return-code from Server to Client
“From any platform to any platform”
– Allows Services to be Natural modules
• Performing ‘READ’ or ‘FIND’ against Adabas data
You can do this!
– Examples in documentation sufficient for proof-of-concept
7/16/2015
18
Vocabulary
Platform
Web
Middleware
Client/Server architecture
Database Query
– Query parameters
– Query results
7/16/2015
19