© Copyright IBM Corp. 2005. All rights reserved. iii
Draft Document for Review October 19, 2005 9:29 am 4046TOC.fm
Contents
Notices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii
Trademarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii
Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix
The team that wrote this Redpaper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .x
Become a published author . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi
Comments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi
Chapter 1. Overview: modernization and X-Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1 Why modernize an existing application?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.1 Modern application considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Architecture a modern application. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.1 Using stateless programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3 Service oriented architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.4 General principles for automated modernization projects. . . . . . . . . . . . . . . . . . . . . . . . 6
1.5 Introducing X-Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.5.1 X-Analysis components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.6 X-Analysis and the iSeries Developer Roadmap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.6.1 Future tools view of the iSeries Developer Roadmap. . . . . . . . . . . . . . . . . . . . . . 12
1.6.2 X-Analysis and the roadmap. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.7 X-Analysis modernization scenarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.7.1 Business scenario 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.7.2 Business scenario 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.7.3 Business scenario 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Chapter 2. Introducing the sample application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.1 About the sample application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.2 Overview the Customer Management System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.2.1 Customers Main Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.2.2 Data files associated with Customers Main Menu . . . . . . . . . . . . . . . . . . . . . . . . 30
2.2.3 Programs associated with the Customers Main Menu . . . . . . . . . . . . . . . . . . . . . 30
2.3 The XRAPPS Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.3.1 Data files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.3.2 Source and object files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Chapter 3. Reengineering an existing application to the MVC architecture . . . . . . . . 35
3.1 Prerequisites for MVC reengineering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.2 Application reengineering overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.2.1 The Model-View-Controller architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.2.2 Creating the Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.2.3 Creating the View and Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.2.4 Working with function definitions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.3 Example application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.4 X-Analysis MVC reengineering summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.5 Partitioning the application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.5.1 Creating the application area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.5.2 Adding the Customers Main Menu to the application area . . . . . . . . . . . . . . . . . . 43
3.6 Reviewing the application’s standard function definitions . . . . . . . . . . . . . . . . . . . . . . . 44
3.6.1 Viewing the standard function definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45