1414thth Annual Natural Annual Natural ConferenceConference
Application Reengineering Application Reengineering Effort Pays Big Dividends in Effort Pays Big Dividends in
eServiceseServices
California State California State Board of EqualizationBoard 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
BackgroundBackground
CaliforniaBoard of Equalization
Taxing Agency Over $40 billion annually Over a third of California tax revenue A financial institution An information source
ReengineeringReengineering
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 EntireX Advanced Communication Communication Interface(ACI) Interface(ACI) examples:examples:
Web clients withWeb clients withMainframe ServersMainframe Servers
First EntireX First EntireX ApplicationApplication
Seller’s PermitSeller’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
Business-to-Business-to-Government Government (B2G)(B2G)
ExampleExample
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: EntireX ACI examples:
Mainframe clients withMainframe clients withnon-Mainframe serversnon-Mainframe servers
Mainframe Clients with:
Visual Basic Desktop Servers
JAVA Mid-tier Servers
JavaService: design/code example
Late 2002From Mainframe Natural to
Mid-tier JavaEncapsulate 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 Email Example
Parameter Data Area
Application object
VALIDATE object - excerpts
ACI Client - excerpts
XML Template - excerpt
Extending JavaService
Mainframe Batch Mainframe Batch NaturalNatural
RPC ServersRPC 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 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 gambleWe took the gamble
RPC has paid RPC has paid back big time!back big time!
Benefits of RPCTangible (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 BOEThe Future of RPC at BOE
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!Thank you!
Top Related