12th Annual Natural Conference
Download
Report
Transcript 12th Annual Natural Conference
14th 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 - 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-Government
(B2G)
Example
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 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 Email 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
Year
Sellers Permit
ERO Filing
B2G Fuels Filing
1998
2000
2002
ACI Server Count
Prod Test/Devl
1
2
4
Total Server Count = 19
Total Service Definition Count = 19
2
4
6
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
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!