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!