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