450 likes | 565 Views
14 th Annual Natural Conference. Application Reengineering Effort Pays Big Dividends in eServices California State Board of Equalization. BOE Background Reengineering EntireX ACI: Web clients w/ Mainframe Servers EntireX ACI: Mainframe clients w/ non-Mainframe servers.
E N D
14th Annual Natural Conference Application Reengineering Effort Pays Big Dividends in eServices California State Board of Equalization
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 Overview
CaliforniaBoard of Equalization • Taxing Agency • Over $40 billion annually • Over a third of California tax revenue • A financial institution • An information source
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 withMainframe Servers
First EntireX Application Seller’s Permit
Seller’s Permit - 1998 • 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
Electronic Return – late 2000 • 3rd 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 withnon-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
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 Prod Test/Devl • Sellers Permit 1998 1 2 • ERO Filing 2000 2 4 • B2G Fuels Filing 2002 4 6 • 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