Modernizing IBM i Applications from the Database up to the User Interface and Everything in Between

Book description

This IBM® Redbooks® publication is focused on melding industry preferred practices with the unique needs of the IBM i community and providing a holistic view of modernization. This book covers key trends for application structure, user interface, data access, and the database.

Modernization is a broad term when applied to applications. It is more than a single event. It is a sequence of actions. But even more, it is a process of rethinking how to approach the creation and maintenance of applications. There are tangible deliveries when it comes to modernization, the most notable being a modern user interface (UI), such as a web browser or being able to access applications from a mobile device. The UI, however, is only the beginning. There are many more aspects to modernization.

Using modern tools and methodologies can significantly improve productivity and reduce long-term cost while positioning applications for the next decade. It is time to put the past away. Tools and methodologies have undergone significant transformation, improving functionality, usability, and productivity. This is true of the plethora of IBM tools and the wealth of tools available from many Independent Solution Providers (ISVs).

This publication is the result of work that was done by IBM, industry experts, and by representatives from many of the ISV Tool Providers. Some of their tools are referenced in the book. In addition to reviewing technologies based on context, there is an explanation of why modernization is important and a description of the business benefits of investing in modernization. This critical information is key for line-of-business executives who want to understand the benefits of a modernization project. This book is appropriate for CIOs, architects, developers, and business leaders.

Related information

Making the Case for Modernization, IBM Systems Magazine

Table of contents

  1. Front cover
  2. Notices
    1. Trademarks
  3. ARCAD Software Inc.
  4. ASNA, Inc.
  5. BCD Software
  6. Fresche Legacy
  7. Linoma Software
  8. looksoftware
  9. Profound Logic Software
  10. TEMBO Technology Lab (Pty) Ltd
  11. Preface
    1. Authors
    2. Now you can become a published author, too!
    3. Comments welcome
    4. Stay connected to IBM Redbooks
  12. Chapter 1. Why modernize
    1. 1.1 What is modernization
    2. 1.2 Approaches to modernization
    3. 1.3 The need for modernization
      1. 1.3.1 The need for database modernization
      2. 1.3.2 The need for interface modernization
      3. 1.3.3 The need for program modernization
    4. 1.4 The benefits of modernization
    5. 1.5 Where are you starting from
    6. 1.6 Laying the ground rules
    7. 1.7 What a modern application is
    8. 1.8 Roadblocks
    9. 1.9 The journey begins
  13. Chapter 2. Path to modernization
    1. 2.1 Where are you starting
    2. 2.2 What are your modernization goals
      1. 2.2.1 Replacement
      2. 2.2.2 Reengineering
      3. 2.2.3 Refacing
      4. 2.2.4 Refactoring
    3. 2.3 How to modernize
      1. 2.3.1 Introduction
      2. 2.3.2 Modernization model
      3. 2.3.3 General principles
      4. 2.3.4 Phase 0: Prepare
      5. 2.3.5 Phase 1: Experimentation
      6. 2.3.6 Phase 2: Off and running
      7. 2.3.7 Phase 3: Evaluate and expand, future thinking
      8. 2.3.8 Phase 4: Deployment
      9. 2.3.9 Repeat as necessary
  14. Chapter 3. Modern application architecture techniques
    1. 3.1 Introduction
      1. 3.1.1 Symptoms of a bad design
    2. 3.2 Modularization
      1. 3.2.1 Why modularization is important
      2. 3.2.2 General principles
    3. 3.3 Tiered design
    4. 3.4 Business object model
      1. 3.4.1 Implementation
      2. 3.4.2 Advantages
    5. 3.5 Data-centric programming
      1. 3.5.1 Moving to data-centric programming
    6. 3.6 Service orientation
      1. 3.6.1 What is a service
      2. 3.6.2 The properties of the services
    7. 3.7 Cloud
  15. Chapter 4. Modern development tools
    1. 4.1 Editing, compiling, and debugging IDE
    2. 4.2 SEU and PDM to Rational Developer for i: Why change
      1. 4.2.1 Current (and future) language support
      2. 4.2.2 Eclipse-based development environment
      3. 4.2.3 Productivity features of Rational Developer for i
      4. 4.2.4 Moving from PDM or SEU to Rational Developer for i
    3. 4.3 Other tools
      1. 4.3.1 Application Management Toolset
      2. 4.3.2 RPG Next Gen
      3. 4.3.3 RPGUnit
      4. 4.3.4 Zend Studio for IBM i
    4. 4.4 Source control and development management tools
    5. 4.5 IBM Rational Team Concert and ARCAD Pack for Rational
      1. 4.5.1 Description
      2. 4.5.2 Example of IBM Rational Team Concert configuration
      3. 4.5.3 Managing IBM i projects with IBM Rational Team Concert
      4. 4.5.4 ARCAD Pack for Rational
  16. Chapter 5. Interfacing
    1. 5.1 Stopping the confusion: Introduction to interfacing
      1. 5.1.1 The past
      2. 5.1.2 The present
    2. 5.2 Stateless interfaces
    3. 5.3 Communication
      1. 5.3.1 IBM WebSphere MQ
      2. 5.3.2 Data queues
      3. 5.3.3 TCP/IP
      4. 5.3.4 SSL/TLS
      5. 5.3.5 HTTP/HTTPS
      6. 5.3.6 FTP/FTPS
      7. 5.3.7 SSH/SFTP
      8. 5.3.8 Sockets
    4. 5.4 SOA and web services
      1. 5.4.1 Web services that are based on SOAP
      2. 5.4.2 Web services that are based on REST
      3. 5.4.3 SOAP versus REST
      4. 5.4.4 Web services support on IBM i
      5. 5.4.5 Web services: Provider perspective
      6. 5.4.6 Integrated web services server
      7. 5.4.7 WebSphere Application Server and IBM Rational Developer for i
      8. 5.4.8 Enterprise service bus
      9. 5.4.9 Integrated web services client for ILE
      10. 5.4.10 Web services: PHP
      11. 5.4.11 REST Web Services: XML Service
    5. 5.5 Cross environment
      1. 5.5.1 Cross environment: Java to ILE
      2. 5.5.2 Cross environment: XMLSERVICE
      3. 5.5.3 Data interchange
      4. 5.5.4 Database access
  17. Chapter 6. User interface
    1. 6.1 Text-based user interface
    2. 6.2 Browser user interface
    3. 6.3 Rich-client user interface
    4. 6.4 Custom application user interface
    5. 6.5 Summary
  18. SmartPad4i by SystemObjects
  19. Chapter 7. Modern RPG
    1. 7.1 The definition of modern RPG
    2. 7.2 The business value of modern RPG
    3. 7.3 Moving to modern RPG
    4. 7.4 Preferred practices
      1. 7.4.1 Preferred practices for RPG program design
      2. 7.4.2 Preferred practices for RPG coding
      3. 7.4.3 Quick list of RPG preferred practices guides
    5. 7.5 Free format RPG
      1. 7.5.1 Why free format
      2. 7.5.2 Free format RPG syntax overview
      3. 7.5.3 Free format examples
    6. 7.6 ILE and modularization
    7. 7.7 A modern language deserves modern tools
    8. 7.8 Dead code elimination
      1. 7.8.1 Why code “dies”
      2. 7.8.2 Dead code risks
      3. 7.8.3 Dead code detection
      4. 7.8.4 The iTrace tool
      5. 7.8.5 Using caution when removing code
    9. 7.9 Cyclomatic complexity and other metrics
      1. 7.9.1 Other relevant metrics
      2. 7.9.2 Putting it all together
  20. Chapter 8. Data-centric development
    1. 8.1 Set-based thinking
    2. 8.2 Defining physical containers for sets (SQL DDL)
      1. 8.2.1 Referential integrity
      2. 8.2.2 Indexes
      3. 8.2.3 Views
      4. 8.2.4 Auto-generated column support
    3. 8.3 Accessing and operating on sets (SQL DML)
      1. 8.3.1 Static
      2. 8.3.2 Dynamic
      3. 8.3.3 Security
      4. 8.3.4 SQL data access interfaces
      5. 8.3.5 Preferred practices from a database perspective
      6. 8.3.6 Result sets
      7. 8.3.7 Joins
      8. 8.3.8 Commitment control
    4. 8.4 Database modularization
      1. 8.4.1 Stored procedures
      2. 8.4.2 Triggers
      3. 8.4.3 User-defined functions
    5. 8.5 Modern reporting and analysis
      1. 8.5.1 Removing OPNQRYF and RUNQRY
      2. 8.5.2 Reasons to consider conversion
      3. 8.5.3 SQL is the industry standard
      4. 8.5.4 SQE features
      5. 8.5.5 Superior performance of SQE
      6. 8.5.6 Advanced functions of the SQL interface
    6. 8.6 Database tools
      1. 8.6.1 Managing DB2 for i with IBM Data Studio
      2. 8.6.2 Managing DB2 for i with InfoSphere Data Architect
      3. 8.6.3 Managing DB2 for i with IBM i System Navigator
      4. 8.6.4 SYSTOOLS
      5. 8.6.5 XML
      6. 8.6.6 Using RPG to use DB2 XML support
  21. Chapter 9. Database re-engineering
    1. 9.1 Re-engineering versus re-representing
    2. 9.2 Getting started
      1. 9.2.1 Business requirements that might result in re-engineering the database
      2. 9.2.2 Training, teaming, and tools
    3. 9.3 The phased approach to seamless transformation
      1. 9.3.1 Phase 0: Discovery
      2. 9.3.2 Phase 1: Transformation
      3. 9.3.3 Phase 2 and 3
      4. 9.3.4 Creating SQL views
      5. 9.3.5 Creating and deploying the SQL I/O modules
      6. 9.3.6 Creating and deploying external SQL I/O modules
      7. 9.3.7 Dynamic SQL
      8. 9.3.8 Bridging existing programs to SQL service programs
      9. 9.3.9 Activating referential integrity
    4. 9.4 Phase 3 and beyond
      1. 9.4.1 Managing database objects
      2. 9.4.2 Changing the DB2 for i database
      3. 9.4.3 Creating a table
      4. 9.4.4 Modifying a table by using the graphical interface of IBM i Navigator
      5. 9.4.5 Changing the PDM
      6. 9.4.6 Database update scenarios
  22. Chapter 10. Mobile, UI, and database modernization tools
    1. 10.1 Why you should consider a modernization tool
      1. 10.1.1 Mobile and UI modernization tools
      2. 10.1.2 Why you should consider one of these solutions
    2. 10.2 IBM Rational Open Access: RPG Edition
      1. 10.2.1 Architectural modernization
      2. 10.2.2 New control capabilities
      3. 10.2.3 User interface
      4. 10.2.4 Flow
      5. 10.2.5 Debugging
      6. 10.2.6 Converting existing programs to Open Access
      7. 10.2.7 Creating programs with Open Access
      8. 10.2.8 Enterprise integration
      9. 10.2.9 Open Access Handler example
      10. 10.2.10 Conclusion
    3. 10.3 5250 data stream interpretation
      1. 10.3.1 How the 5250 data stream method works
      2. 10.3.2 IBM Rational Host Access Transformation Services
  23. Chapter 11. EGL
    1. 11.1 A closer look at EGL
    2. 11.2 EGL modernization options for IBM i
      1. 11.2.1 Modernization through access to existing data
      2. 11.2.2 Modernization through reuse of existing RPG programs
    3. 11.3 A brief look at the EGL language
    4. 11.4 EGL rich user interface for web and mobile interfaces
      1. 11.4.1 The need for Web 2.0 and rich internet applications
      2. 11.4.2 Challenges in building Web 2.0 and rich internet applications
      3. 11.4.3 Web 2.0 and rich internet applications with EGL
      4. 11.4.4 EGL rich user interface syntax and tools
    5. 11.5 EGL: From the database to the web
      1. 11.5.1 Creating a data access application and services
      2. 11.5.2 Creating a data access application
      3. 11.5.3 Creating services and testing a local web service
      4. 11.5.4 Creating an EGL rich user interface front end
    6. 11.6 EGL: Calling external programs
      1. 11.6.1 Using linkage to call an RPG program
    7. 11.7 Benefits of EGL for IBM i
  24. Chapter 12. PHP
    1. 12.1 What is PHP
      1. 12.1.1 Open source
      2. 12.1.2 Documentation
      3. 12.1.3 What does PHP look like
      4. 12.1.4 How PHP works
      5. 12.1.5 Why use PHP
      6. 12.1.6 Who is Zend
      7. 12.1.7 PHP environment setup on IBM i
      8. 12.1.8 What is Zend Server
    2. 12.2 PHP development
      1. 12.2.1 Zend Studio
      2. 12.2.2 Exploring the stair-step approach: Four steps
      3. 12.2.3 Other data access
    3. 12.3 HLL integration
      1. 12.3.1 What the toolkit is made of
      2. 12.3.2 High-level description and workflow
      3. 12.3.3 Program calls
    4. 12.4 How dates are different in PHP
      1. 12.4.1 Installing open source applications
  25. Chapter 13. Java
    1. 13.1 The world of Java
      1. 13.1.1 What is Java
      2. 13.1.2 Java on IBM i
    2. 13.2 Why Java
      1. 13.2.1 Language and platform characteristics
      2. 13.2.2 Tools
      3. 13.2.3 Documentation and community
      4. 13.2.4 Freedom of choice
      5. 13.2.5 Skills and new talent
    3. 13.3 Moving to Java
      1. 13.3.1 The learning curve
      2. 13.3.2 Myths surrounding Java
      3. 13.3.3 Further reading
  26. Chapter 14. Web serving: What and why
    1. 14.1 Web server versus application server
      1. 14.1.1 Web server
      2. 14.1.2 Application server
    2. 14.2 WebSphere Application Server
    3. 14.3 Integrated Web Application Server
    4. 14.4 Tomcat
    5. 14.5 PHP: Zend Technologies
    6. 14.6 Ruby: PowerRuby.com
    7. 14.7 Conclusion
  27. Chapter 15. HTML, CSS, and JavaScript
    1. 15.1 The development environment
    2. 15.2 The browser interface
    3. 15.3 HTML
    4. 15.4 CSS
    5. 15.5 JavaScript
    6. 15.6 Ajax
    7. 15.7 HTML5 and CSS3
      1. 15.7.1 HTML5
      2. 15.7.2 CSS3
    8. 15.8 The benefit of frameworks
    9. 15.9 Going to the web
  28. Chapter 16. Security
    1. 16.1 Introduction
    2. 16.2 Classifying data
    3. 16.3 User authentication
      1. 16.3.1 IBM i user profile
      2. 16.3.2 Validation list user
      3. 16.3.3 LDAP
      4. 16.3.4 Application-defined authentication
      5. 16.3.5 Kerberos
      6. 16.3.6 *ALLOBJ special authority
      7. 16.3.7 Application owner profile
      8. 16.3.8 Connection profiles
      9. 16.3.9 Logging
      10. 16.3.10 Separation of duties
      11. 16.3.11 Encryption
      12. 16.3.12 Authority settings on the data
      13. 16.3.13 Other *PUBLIC authority settings
      14. 16.3.14 Using authorization lists to secure application objects
      15. 16.3.15 Integrated file system considerations
      16. 16.3.16 Conclusion
  29. Chapter 17. Globalization
    1. 17.1 Terminology
      1. 17.1.1 From an encoding scheme to a CCSID
      2. 17.1.2 Character set
      3. 17.1.3 Code page
      4. 17.1.4 Coded character set identifier
      5. 17.1.5 Invariant character set
      6. 17.1.6 Unicode
    2. 17.2 Single-, double-, and multi-byte character set (SBCS, DBCS, and MBCS)
      1. 17.2.1 DBCS and MBCS data type
    3. 17.3 Data integrity between environments or languages
      1. 17.3.1 Environments
      2. 17.3.2 Languages
      3. 17.3.3 Why a CCSID is important
      4. 17.3.4 Does a program have a CCSID
      5. 17.3.5 Flow examples
    4. 17.4 Unicode
      1. 17.4.1 Unicode CCSID
      2. 17.4.2 Unicode examples from the DB through the RPG to the DSPF
      3. 17.4.3 Moving to Unicode
      4. 17.4.4 Emulators
    5. 17.5 Locales
    6. 17.6 Reference links
  30. Chapter 18. Cloud
    1. 18.1 Overview: IBM i and cloud
    2. 18.2 IBM i cloud considerations
      1. 18.2.1 Security and isolation
      2. 18.2.2 New tenant provisioning
      3. 18.2.3 Service-level agreements
      4. 18.2.4 Licensing and pricing
      5. 18.2.5 Deployment options
    3. 18.3 IBM i OS cloud and multitenancy
      1. 18.3.1 Physical/isolated multitenancy
      2. 18.3.2 Shared hardware multitenancy
      3. 18.3.3 Operating system level multitenancy
      4. 18.3.4 Platform-level multitenancy
      5. 18.3.5 Application-level multitenancy
    4. 18.4 IBM i cloud technical refresh capabilities
      1. 18.4.1 Virtualization
      2. 18.4.2 Virtualization technologies for cloud and IBM i
    5. 18.5 IBM i virtual appliances
    6. 18.6 Summary
  31. Related publications
    1. IBM Redbooks
    2. Other publications
    3. Online resources
    4. Help from IBM
  32. Back cover
  33. IBM System x Reference Architecture for Hadoop: IBM InfoSphere BigInsights Reference Architecture
    1. Introduction
    2. Business problem and business value
    3. Reference architecture use
    4. Requirements
    5. InfoSphere BigInsights predefined configuration
    6. InfoSphere BigInsights HBase predefined configuration
    7. Deployment considerations
    8. Customizing the predefined configurations
    9. Predefined configuration bill of materials
    10. References
    11. The team who wrote this paper
    12. Now you can become a published author, too!
    13. Stay connected to IBM Redbooks
  34. Notices
    1. Trademarks

Product information

  • Title: Modernizing IBM i Applications from the Database up to the User Interface and Everything in Between
  • Author(s):
  • Release date: June 2014
  • Publisher(s): IBM Redbooks
  • ISBN: None