14 th Annual Natural Conference Application Reengineering Effort Pays Big Dividends in eServices California State Board of Equalization
Overview BOE Background Reengineering EntireX ACI: Web clients w/ Mainframe Servers EntireX ACI: Mainframe clients w/ non-Mainframe servers JavaService: design/code example RPC Servers in Mainframe Batch Natural The Future of RPC at BOE Q & A
Background
California Board of Equalization Taxing Agency Over $40 billion annually Over a third of California tax revenue A financial institution An information source
Reengineering
Before Reengineering Entered the 1990s with: Stove pipe type systems Redundant de-normalized data structures Running on in-house mainframe
Reengineering Summary Entire Business process was inspected Business Entities and workflows identified Normalized relational data model created Object oriented principles introduced: Reusable components, Encapsulation Presentation, rules, I/O layer separation principles Natural and Adabas selected Natural, coded with OO & layer separation principles Adabas, files defined with relational principles Moved to State data center Integrated Revenue Information System (IRIS)
EntireX Advanced Communication Interface(ACI) examples: Web clients with Mainframe Servers
First EntireX Application Seller’s Permit
Seller’s Permit Web query of Seller’s tax status Read only, no updates EntireX ACI, code both client and server ASP/Delphi Web client presentation Mainframe batch Natural/Adabas ACI server Co-developed with Interactive Voice Recognition (IVR) and CICS client presentations Reuse of rules and I/O layer objects
Business-to-Government (B2G) Example
Electronic Return – late rd party Electronic Return Originator (ERO) Web presentation Messaging format is XML A Web service (w/o the SOAP envelope) Real-time updates to Adabas and Tamino Selected fields saved first to Adabas Complete Tax filing saved as XML in Tamino Delphi ACI on mid-tier Mainframe batch Natural/Adabas ACI server Reuse of existing Mainframe Natural backend
EntireX ACI examples: Mainframe clients with non-Mainframe servers
Mainframe Clients with: Visual Basic Desktop Servers JAVA Mid-tier Servers
JavaService : design/code example Late 2002 From Mainframe Natural to Mid-tier Java Encapsulate Java
JavaService – Mainframe Components Application object: uses standard Callnat Validation object: Natural subprogram, checks parameters, adds Java Classpath ACI client: Natural subprogram, selects Broker node and class, sends and receives Broker message
Send Example
Parameter Data Area
Application object
VALIDATE object - excerpts
ACI Client - excerpts
XML Template - excerpt
Extending JavaService
Mainframe Batch Natural RPC Servers
Journey into RPC Servers Issues: Higher administration with ACI servers, always a need for a new service and servers Leveraging existing ACI servers not viable option Resistance: Know and trust ACI servers
ACI Server Proliferation ACI Server Count Year ProdTest/Devl Sellers Permit ERO Filing B2G Fuels Filing Total Server Count = 19 Total Service Definition Count = 19
Seller Permit ACI Server Had multi-use data area with ACTION field to direct secondary subprogram CALLNATs via a controlling subprogram There was always “developer anxiety” associated with changes to the controlling subprogram Developers did not want other subsystems using the controlling subprogram
Resistance to RPC New technology ACI servers already proven No time for Research and Development The next project already had a hard delivery date
We took the gamble RPC has paid back big time!
Benefits of RPC Tangible (original goal): Reduced administration Reduced service definition and server count No more coding of Natural servers Intangible: Natural Interface Definition Language (IDL) object generation Wrapper generation for: Java, WSDL, etc. Error handling Trace facilities
IDL/Wrapper Generator Java programmers now worked with generated Java wrapper objects versus parsing data strings The generated Java wrapper object performed the complex task of language-dependent data alignment Leveraged many existing IRIS subprograms (e.g. Tax Calculator subprogram) Wrapped existing mainframe rules and exposed via EntireX versus duplicating rules on another platform
IDL/Wrapper Generator – cont. Allowed Java developers to utilize existing mainframe Natural data areas without the overhead of having to code for each variable Changed the focus to the data being passed between Java and Natural versus the technical issues of dealing with the data at either end Java programmers feel enabled with the Natural IDL and Java wrapper generator
IDL/Wrapper Generator – cont. Faster development, a few clicks of the mouse and the Natural IDL and Java wrapper objects are generated Regenerate Natural IDL and Java wrapper objects if Natural PDA changes – no more bit-by-bit parsing changes within Java
RPC Server Error handling The RPC server acts similar to a CICS region in that individual transactions do not bring down the server
RPC Trace Facilities Adjustable setting: 0- Nothing is traced. 1- Only messages (inclusive Natural errors) are traced. (1,E) - Messages are traced in the event of an error only. 2- All messages and data from/to client are traced. (2,E) - Messages and data from/to client are traced in the event of an error only.
The Future of RPC at BOE
Old ACI servers and services will be retired as time permits. The Seller’s Permit has already been converted. Logging RPC errors from user exit NATRPC01 to generalized Error log reporting mechanism Additional production RPC server instances (i.e. batch jobs) will be added to support increasing load XML/SOAP Wrappers and Web Services
Thank you!