230 likes | 1.52k Views
Web Access to Adabas Using EntireX Broker and a Natural Server. Lee Dustman Database Administrator Texas Office of the Attorney General, Child Support Enforcement. Agenda. Business requirement to provide Web access to existing, mainframe Adabas data
E N D
Web Access to Adabas Using EntireX Broker and a Natural Server Lee Dustman Database Administrator Texas Office of the Attorney General, Child Support Enforcement
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
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.
Business requirement to provideWeb 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.
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
EntireX BrokerApplication 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)
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
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
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
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
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
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
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
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’
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
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
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
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
Vocabulary • Platform • Web • Middleware • Client/Server architecture • Database Query • Query parameters • Query results