chris walsh, senior systems architect 1085 morris ave, union, nj 07083 (908) 289-0552 [email protected]...
Post on 21-Dec-2015
212 views
TRANSCRIPT
Chris Walsh, Senior Systems Architect
1085 Morris Ave, Union, NJ 07083
(908) 289-0552
Winning in the Web World Winning in the Web World using Construct Spectrumusing Construct Spectrum
Utility Business Services, Utility Business Services, IncInc.
An application service provider (ASP) for the water,
wastewater, & gas industries
Serving public and investor-owned utilities and municipal
authorities for more than 30 years
Provides full-featured geospatial and customer information
systems & services
A subsidiary of NUI Corporation
32 CIS clients & 11 GIS clients in 8 states
1 million CIS accounts = 8 million bills sent annually
Utility Business Services, IncUtility Business Services, Inc
Customer Information Systems (CIS)
Water, Wastewater, Gas
Client Support
Bill Printing and Mailing
Payment Processing
Browser or 3270 Choice &
Flexibility
Geographic Information Systems (GIS)
Digital maps Facilities database Distribution system modeling FieldBook -
remote access to GIS
Automated pipe replacement Meter route optimization
UBS Products & UBS Products & ServicesServices
Mainframe Platform
Mainframe OS390
Natural & Adabas
Construct Spectrum
EntireX
Natural Construct
Predict
UBS EnvironmentUBS Environment
NUI has been a Software AG customer since 1985Natural & Adabas used by UBS since 1993
Web Platform
Windows NT 4 Server
HTML -Active Server Pages
Construct Spectrum
EntireX
Visual Basic
JavaScript
Design philosophy - Wins® CIS adapts to clients’ ever-changing business environment and does not require their business processes to adapt to Wins® CIS
UBS developed Wins® CIS software in 1993
Designed to be more than a billing “program”
Flexible, customizable, table-driven design
Multi-organization / multi-jurisdiction
Entity Relationship data model evaluated as “one of the best in the utility industry” and “visionary”
WinsWins®® CIS CIS ”Classic””Classic”
Mainframe application with “GUI-fied” look’n feel Not your typical “green screen” application Wins® CIS is 100% Natural and Adabas Construct utilized for over 50% of online development
Wins® CIS is the backbone to UBS’ service offerings Application is extremely reliable and accurate Selected web methodology needs to be as reliable Many “heads down” users of system performing data entry
It works, so why change?
WinsWins®® CIS CIS ”Classic””Classic”
Why a web browser front-end?
Most RFPs (request for proposal) require GUI interface and/or client-server topology
Offer more choices to UBS clients
Increase UBS clients’ competitive opportunities
Position UBS and UBS clients’ for growth in the e-world
Web browser is the ultimate thin client!
But how best to get there?
WinsWins®® CIS CIS ”Web””Web”
Getting There: Approaches?Getting There: Approaches?
Original 3270 Presentation
Duplicated and Modified 3270
Modules
Original 3270 Modules
Reengineered 3270 Modules
New Web Presentation
Approach #1:
Spin-off Existing Application to Create a Second Application
Approach #2:
Modify Existing Application to Include Multiple Presentations
Modified 3270 Presentation
New Web Presentation
Pros:Pros: Original not impacted; Independent presentation content; Staff can specialize
Cons:Cons: Maintenance effort duplicated; Synchronization issues
Pros:Pros: One set of business modules; Enforces synchronized maintenance
Cons:Cons: Increased code complexity; Introduces change into a stable system; Rollout issues
Business Logic& Data Access
Layer
Not a second system - an enhancement to classic Wins
Design philosophy - Wins® CIS will provide coexistent browser (GUI) and mainframe (CUI) presentation layers
Access shared mainframe-based objects and data
Leverage UBS’ mainframe application investment
WinsWins®® CIS CIS ”Web””Web”
Character Based Presentation Layer
WEB Based Presentation Layer
CharacterApplication
NEXT
Reengineering for the Web Reengineering for the Web
Presentation
Data Handling
Business Logic
Maintenance Model Program
PresentationMaintenance Dialog
Data Handling
Business Logic
Object Maintenance Subprogram
Taking a legacy application to the web begins with the reengineering process – separating interface from
business
Dialog Components manage presentation and user
interface including navigation logic, PF-Key checking and other presentation-specific
handling.
Business Components are natural subprograms that
manage database access, business rules, and
validation processing
Host Based ObjectsOriginal Host Object
Reengineering for the Web Reengineering for the Web
Reengineering the mainframe components absorbed majority of the total project work effort
Approximately 75% of developer effort went into transforming maintenance programs into object maintenance subprograms
Requirement that mainframe reengineering be transparent to the user community
Functions needed to look and act the same before and after
Hindsight tip:
Design mainframe functions utilizing an object-oriented approach where possible by keeping business logic independent of presentation layer
Reengineering for the Web Reengineering for the Web Why did mainframe reengineering take 75% of the time?
Average Natural object ratio increased from 2 to 6 modules
Original Maint Program : U00PF01A
Maps : U00MF011
New Object PDA : P00AF01A
Restricted PDA : P00RF01A
Extra PDA : P00XF01A
Object Subprogram : P00NF01A
Maps : M00MF011
Dialog Program : U00PF01A
Reengineering for the Web Reengineering for the Web Why did mainframe reengineering take 75% of the time?
Logic did not always transfer to same location in new modules
Needed to verify that no editing and business logic was overlooked during transformation
Business object subprograms must be tested without dialog module to ensure it behaves well in all environments
Reusable modules often required changes when tested in context of parent functions reengineered later in project
Resolving program complexity issues such as embedded presentations, linked modules, and “unique” program logic
Reengineering for the Web Reengineering for the Web Dialog components considerations
Know the strengths and limitations of planned presentation layers
Limit amount of logic that would need to be replicated in other presentations when accessing the same business component
Business components considerations
Should make no assumptions about the presentation layer or the environment in which it is running
Must be controlled exclusively by the parameters passed to it and able to influence dialog using parameters passed out of it
Functions well in a stateless environment
Minimize amount of data passed across the network by performing most of work on the mainframe and passing only needed data
Reengineering for the Web Reengineering for the Web
Business Components Considerations
May not perform any screen I/O such as the statements INPUT, REINPUT, DISPLAY, WRITE, PRINT, AT TOP OF PAGE, etc
Should not interrupt the flow of control or include these statements: STOP, FETCH, STACK, TERMINATE
Avoid using most system variables since many only apply to stand-alone character applications. Includes *PF-KEY, *CURSOR, *CURS-FIELD, *POS, etc
Must “play nice” whenever and wherever used and reused…
Construct Spectrum is cornerstone of web development
Continues Construct concept of modularity and regenerability
HTML presentation via ASP (active server page) technology
Utilizes server-based Visual Basic objects
Works with both Construct and non-Construct mainframe objects
Frees the developer to focus on “fun stuff”: HTML customization
JavaScript
Web page layout
Construct Spectrum Construct Spectrum
Reengineering for the Web Reengineering for the Web
Presentation
Data Handling
Business Logic
Maintenance Model Program
PresentationMaintenance Dialog
Data Handling
Business Logic
Subprogram Proxy
Object Maintenance Subprogram
ActiveX Business Object
Page Handler
PresentationHTML
Web Server Based ObjectsHost Based ObjectsOriginal Host Object
Subprogram Proxy
Generated by Natural Construct
Handles all data that will be passed between the mainframe to the WEB via a 32K pass area
Translates Natural’s internal field formats into platform-independent string formats
ActiveX Business Objects (ABO)
Generated by Construct Spectrum
ABO’s expose the object subprograms as VB classes
Each action supported by the Natural component (ie: Display, Update, Add, etc.) has an equivalent method defined in ABO
Spectrum ObjectsSpectrum Objects
HTML Template
Generated by Spectrum the first time, after which they are maintained manually – via Hotdog or Notepad for example
Typically contain static HTML interspersed with special placeholders that get converted dynamically into HTML
Page Handlers
Generated by Construct Spectrum
One needed for each HTML template to process web page
It scans for replacement tags, processes custom tags, and replaces each tag with field content
Spectrum ObjectsSpectrum Objects
Entire X Broker & Spectrum connect the two worlds
Provides adaptive performance management
Automatically starts & ends dispatchers as needed
Spectrum ConnectivitySpectrum Connectivity
Web App1
SpectrumDispatch Client
EntireXMessage Broker
NaturalBusiness Object
SpectrumProxy
SpectrumDispatch Server
Web App2
Client/ServerApp
ActiveXBusiness Object
Spectrum allows Natural developers to ease into web development without being overwhelmed
New skills for the Natural Programmer
Visual Basic
HTML
JavaScript
By using Spectrum, developers need not have in depth knowledge of:
EntireX Broker
ASP (Active Server Pages)
Web SupportWeb Support
Reengineering over 1,000 presentations within 370+ business functions for Internet/Intranet environments
Wins® CIS functions are robust and flexible:
Dual presentations (full-screen & window)
Dynamic presentation/validation based on profile tables
Interactive account banner information
On-the-fly formatting using DY and CV variables
Internal and external key fields for access
Very flexible security methodology
Web ChallengesWeb Challenges
Original modules contain embedded presentations, data access, and business rules - 50% Construct (non-object)
No technical specifications or documentation available
Presentation customization issues addressed early in project
“To cache or not to cache”
Unique navigation methodology
How much “webification” to implement
Resemblance to mainframe field arrangement
What browsers and versions to support
Handling of pop-up windows on the web
Web ChallengesWeb Challenges
Contracted with Software AG Professional Services to perform reengineering of Wins® CIS presentation modules
Offsite Project Team consisted of Project Management, Mainframe and Web Developers and Application Testers
Project teamwork has provided – Transfer of knowledge to UBS Staff
Formalized technical documentation
Reengineering procedures and methodologies
Offsite Methodology of baseline testing and shipping each unit has allowed all work to be done remotely, reducing costs, focusing communication and helping to build the expertise of the project team into being a UBS “virtual staff”
Project ManagementProject Management
Challenge to balance client-responsiveness during project
Instituted a code freeze for duration of project Limited program modifications on a “need-to-go” basis
Larger-scale requests deferred
Change is inevitable despite memos and policies!!!
Techniques for identifying changes made during the freeze Source code saved at beginning of each unit was compared
against current version at end of unit
All changes made during freeze must be well-documented and recorded in a tracking spreadsheet
Project ManagementProject Management
What to freeze and when?
Project encompassed over 370 functions and 1,000 modules
Divided into four compliance units for easier handling First unit small – used to define methodology, techniques, and
identify major roadblocks
Subsequent units grew in size and complexity
Eliminates the need to freeze the entire system all at once
Froze all related objects for each logical function Objects were identified by using a home-grown analysis utility
Included maps, subprograms, fetched programs and data areas used by parent program
Project ManagementProject Management
Activities to begin compliance unit
Identify size and content of compliance unit
Develop test scripts and test conditions
Establish test environment and take baseline backup
Execute test scripts and take second backup
Establish offsite environment
Restore test environment from baseline backup
Execute test scripts and compare to script samples
Validates that both sites are equal and consistent
Project ManagementProject Management
Offsite reengineering and web development takes place
Test scripts and peer testing used to validate transformation
Mainframe scripts basis for testing of web version
Preview testing used throughout reengineering to identify major issues and provide feedback to development team
Following delivery, acceptance testing takes place
Restore test environment to baseline backup
Execute test scripts and compare results
Perform freeform “off-script” testing to identify other issues
Feedback returned to development team in form of problem reports for resolution, redelivery and retesting
Project ManagementProject Management
Install reengineered objects
Apply changes made during “freeze”
Final testing and remediation
Options: “Big bang” versus “Staged”
Reengineer remaining functions
The ultimate test: the users
Training and support
Which users and when?
Listen and react
ImplementationImplementation
Staff expectations “Is this really necessary?”
Management expectations “Why can’t it be done faster? Cheaper?” “The reengineering is done, why isn’t it implemented?” “Do we really need to keep changes made during the freeze?”
User expectations “We want it. What is it?”
Managing Expectations Managing Expectations
DemonstrationDemonstration
Before
teamwork teamwork
thatthat
delivers!delivers!
Before (and After)
teamwork teamwork
thatthat
delivers!delivers!
After
Examples Examples The Standard Spectrum Template
Examples Examples Customizing the Standard Templates
Current Organization Name
Message Line
TOPX Account information,indicator line and launch buttons
Standard Action Keys
Functiontoggle link
StandardFunctions
Next orgshown if user
can accessmultiple orgs
FindButtons
allow usersto search for
values
Utility Business Services, Utility Business Services, IncInc.
1085 Morris Ave, Union NJ 07083
(908) 289-9433
Chris Walsh, Senior Systems Architect
Thank you! Thank you!
Q & A Q & A