Transcript Utility Business Services
Winning in the Web World using Construct Spectrum
Chris Walsh, Senior Systems Architect 1085 Morris Ave, Union, NJ 07083 (908) 289-0552 [email protected]
Utility Business Services, Inc
.
Utility Business Services, Inc
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
UBS Products & Services
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 Environment
Mainframe Platform
Mainframe OS390 Natural & Adabas Construct Spectrum EntireX Natural Construct Predict
Web Platform
Windows NT 4 Server HTML -Active Server Pages Construct Spectrum EntireX Visual Basic JavaScript NUI has been a Software AG customer since 1985 Natural & Adabas used by UBS since 1993
Wins
®
CIS
”Classic”
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”
Wins
®
CIS
”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?
Wins
®
CIS
”Web”
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?
Getting There: Approaches?
Approach #1: Spin-off Existing Application to Create a Second Application Approach #2: Modify Existing Application to Include Multiple Presentations
Original 3270 Presentation New Web Presentation Modified 3270 Presentation New Web Presentation Original 3270 Modules Duplicated and Modified 3270 Modules Pros:
Original not impacted; Independent presentation content; Staff can specialize
Cons:
Maintenance effort duplicated; Synchronization issues
Reengineered 3270 Modules Pros:
One set of business modules; Enforces synchronized maintenance
Cons:
Increased code complexity; Introduces change into a stable system; Rollout issues
Wins
®
CIS
”Web”
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
Character Application NEXT
Character Based Presentation Layer WEB Based Presentation Layer Business Logic & Data Access Layer
Reengineering for the Web
Original Host Object
Maintenance Model Program Presentation Data Handling Business Logic
Host Based Objects
Presentation Maintenance Dialog Object Maintenance Subprogram Data Handling Business Logic
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
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
Why did mainframe reengineering take 75% of the time?
Average Natural object ratio increased from 2 to 6 modules Original New Maint Program Maps Object PDA Restricted PDA Extra PDA Object Subprogram Maps Dialog Program : U00PF01A : U00MF011 : P00AF01A : P00RF01A : P00XF01A : P00NF01A : M00MF011 : U00PF01A
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
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
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
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
Reengineering for the Web
Original Host Object Host Based Objects
Presentation Maintenance Dialog
Web Server Based Objects
Presentation HTML Maintenance Model Program Presentation Object Maintenance Subprogram Page Handler Data Handling Data Handling Business Logic Business Logic ActiveX Business Object Subprogram Proxy
Spectrum Objects
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 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 Connectivity
Entire X Broker & Spectrum connect the two worlds
Provides adaptive performance management Automatically starts & ends dispatchers as needed
Web App1 Web App2 Client/Server App ActiveX Business Object Spectrum Dispatch Client EntireX Message Broker Natural Business Object Spectrum Proxy Spectrum Dispatch Server
Web Support
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 Challenges
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 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
Project Management
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 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 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 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 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
Implementation
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
Managing Expectations
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?”
Demonstration
teamwork that delivers!
(and After)
teamwork that delivers!
After
Examples
The Standard Spectrum Template
Examples
Customizing the Standard Templates
Find Buttons allow users to search for values Current Organization Name Message Line Next org shown if user can access multiple orgs TOPX Account information, indicator line and launch buttons Function toggle link Standard Functions Standard Action Keys
Q & A
Utility Business Services, Inc
.
1085 Morris Ave, Union NJ 07083 (908) 289-9433 Chris Walsh, Senior Systems Architect [email protected]