Preface | | xvii | |
| CHAPTER 1 BUILDING BUSINESS SYSTEMS | | | 1 | (12) |
| 1.1 The Increasing Pace of Competition | | | 1 | (2) |
| 1.2 Java Technology's Rapid Rise | | | 3 | (1) |
| | 4 | (2) |
| | 6 | (1) |
| | 7 | (1) |
| 1.5.1 via World Network (Chapter 2) | | | 7 | (1) |
| 1.5.2 Customer Sales Support (Chapter 3) | | | 7 | (1) |
| 1.5.3 Customer Service Support (Chapter 4) | | | 7 | (1) |
| 1.5.4 Human Resource Service Delivery (Chapter 5) | | | 8 | (1) |
| 1.6 Subject Chapter Overview | | | 8 | (3) |
| 1.6.1 An Enabling Technology (Chapter 6) | | | 8 | (1) |
| 1.6.2 Is Java a Fad? (Chapter 7) | | | 8 | (1) |
| 1.6.3 Converting Existing Business Systems (Chapter 8) | | | 9 | (1) |
| 1.6.4 Managing a New Technology (Chapter 9) | | | 9 | (1) |
| 1.6.5 Is Java Right for Everyone? (Chapter 10) | | | 9 | (1) |
| 1.6.6 Bridging Procedural and Object-Oriented Styles (Chapter 11) | | | 9 | (1) |
| 1.6.7 Building Execution Architectures (Chapter 12) | | | 10 | (1) |
| 1.6.8 Moving beyond Applets (Chapter 13) | | | 10 | (1) |
| 1.6.9 Overcoming Performance Challenges (Chapter 14) | | | 10 | (1) |
| 1.6.10 Making Applications Secure (Chapter 15) | | | 10 | (1) |
| 1.6.11 Building Highly Available Systems (Chapter 16) | | | 10 | (1) |
| 1.6.12 Motivating Application Developers (Chapter 17) | | | 11 | (1) |
| 1.6.13 Learning the Technology (Chapter 18) | | | 11 | (1) |
| 1.6.14 Improving Developer Productivity (Chapter 19) | | | 11 | (1) |
| 1.6.15 New Development Tools and Processes (Chapter 20) | | | 11 | (1) |
| | 11 | (2) |
| CHAPTER 2 CASE STUDY: VIA WORLD NETWORK | | | 13 | (18) |
| | 13 | (1) |
| 2.2 Reinventing Travel Product Distribution | | | 13 | (2) |
| | 15 | (9) |
| | 16 | (2) |
| | 18 | (1) |
| | 19 | (1) |
| 2.3.3.1 C and COBOL Developer Productivity | | | 20 | (1) |
| 2.3.3.2 C and COBOL Code Portability | | | 20 | (1) |
| 2.3.3.3 Cost of a Java Execution Architecture | | | 21 | (1) |
| 2.3.3.4 Training Materials and a Development Environment | | | 21 | (1) |
| 2.3.3.5 Managing Technology Risks | | | 22 | (1) |
| 2.3.4 Software Conversion | | | 22 | (1) |
| | 23 | (1) |
| 2.4 Building the Application | | | 24 | (1) |
| | 25 | (2) |
| 2.6 Pitfalls and Drawbacks of Using Java | | | 27 | (1) |
| | 28 | (2) |
| 2.7.1 Complexity of C-to-Java Interface | | | 28 | (1) |
| 2.7.2 Development Platform | | | 29 | (1) |
| 2.7.3 Java's On-line Functionality | | | 29 | (1) |
| 2.7.4 Technology Development Life Cycle | | | 29 | (1) |
| | 30 | (1) |
| CHAPTER 3 CASE STUDY: CUSTOMER SALES SUPPORT | | | 31 | (8) |
| | 31 | (1) |
| 3.2 Supporting Customer Sales | | | 31 | (1) |
| 3.3 Customer Sales Support Business Systems | | | 32 | (2) |
| 3.4 A Client/Server Sales Support System | | | 34 | (1) |
| 3.5 Converting to the Java Language | | | 35 | (1) |
| | 36 | (1) |
| | 37 | (2) |
| CHAPTER 4 CASE STUDY: CUSTOMER SERVICE SUPPORT | | | 39 | (6) |
| | 39 | (1) |
| 4.2 Supporting Customer Service Call Centers | | | 39 | (1) |
| 4.3 Existing Business System | | | 40 | (1) |
| | 41 | (2) |
| | 43 | (1) |
| | 43 | (2) |
| CHAPTER 5 CASE STUDY: HUMAN RESOURCE SERVICE DELIVERY | | | 45 | (6) |
| | 45 | (1) |
| 5.2 Delivering Human Resource Services | | | 45 | (1) |
| | 46 | (2) |
| | 48 | (1) |
| | 49 | (2) |
| CHAPTER 6 AN ENABLING TECHNOLOGY | | | 51 | (8) |
| | 51 | (1) |
| 6.2 Multiple Deployment Options | | | 52 | (2) |
| | 54 | (1) |
| 6.4 Best Price/Performance | | | 54 | (1) |
| 6.5 Integrating Internet Technologies | | | 55 | (2) |
| | 57 | (2) |
| | 59 | (8) |
| | 59 | (1) |
| 7.2 The Legacy of Fad Technologies | | | 59 | (1) |
| 7.3 Java's Popularity Encourages New Resources | | | 60 | (1) |
| 7.4 Developer Acceptance of Java | | | 61 | (2) |
| 7.5 Third-Party Product Support for Java Computing | | | 63 | (1) |
| 7.6 The Pace of Acceptance | | | 64 | (1) |
| | 65 | (2) |
| CHAPTER 8 CONVERTING EXISTING BUSINESS SYSTEMS | | | 67 | (12) |
| 8.1 Upgrades to Business Systems | | | 67 | (1) |
| 8.2 How "Clean" Is the Legacy System? | | | 68 | (2) |
| 8.2.1 Easing the Pain of Conversion | | | 69 | (1) |
| 8.3 A Structured Conversion Approach | | | 70 | (3) |
| 8.3.1 Automating Simple, Repetitive Syntax Changes | | | 70 | (1) |
| 8.3.2 Interfaces to Third-Party Products | | | 70 | (1) |
| 8.3.3 Preserving Complex Logic | | | 71 | (1) |
| 8.3.4 Reorganizing Source Files into Packages | | | 71 | (1) |
| 8.3.5 Leveraging Existing Development Tools and Processes | | | 71 | (1) |
| 8.3.6 Converting C/C++ Constants into Variables within Java classes | | | 71 | (1) |
| 8.3.7 Creating a Java Class for Each Source File | | | 71 | (1) |
| 8.3.8 Converting C Function Prototypes to Method Prototypes | | | 72 | (1) |
| 8.3.9 Focusing on Conversion, Not Object-Oriented Design | | | 72 | (1) |
| 8.3.10 Incorporating Java's String Class | | | 72 | (1) |
| 8.3.11 Incorporating Java's Date Class | | | 72 | (1) |
| 8.3.12 Converting Structures into Classes | | | 72 | (1) |
| 8.3.13 Converting the Execution Architecture to the Java Language | | | 73 | (1) |
| 8.3.14 Executing the Java Compiler | | | 73 | (1) |
| 8.4 Converting Business Systems to Java | | | 73 | (4) |
| 8.4.1 via World Network Conversion | | | 73 | (3) |
| 8.4.2 Customer Sales Support Conversion | | | 76 | (1) |
| | 77 | (2) |
| CHAPTER 9 MANAGING A NEW TECHNOLOGY | | | 79 | (12) |
| 9.1 Leveraging a New Technology | | | 79 | (1) |
| 9.2 Java's Rise in Popularity | | | 79 | (2) |
| 9.3 Challenges in Using a New Technology | | | 81 | (3) |
| 9.3.1 Don't Depend on Vendors to Come to the Rescue | | | 81 | (1) |
| 9.3.2 Development Tools Are Emerging | | | 82 | (1) |
| 9.3.3 Integration with Existing Products | | | 82 | (1) |
| 9.3.4 There Are Still Bugs in Java | | | 82 | (1) |
| 9.3.5 Java Skills Are Scarce | | | 83 | (1) |
| 9.3.6 There Are Few Large Java Business Systems | | | 83 | (1) |
| | 84 | (2) |
| 9.4.1 Weigh Advantages against Risks | | | 84 | (1) |
| 9.4.2 Identify Custom Technology Integration Requirements | | | 85 | (1) |
| 9.4.3 Prototype the Technology Implementation | | | 86 | (1) |
| 9.4.4 Begin Development with a Pilot Set of Developers | | | 86 | (1) |
| 9.5 A Pioneer's Challenges | | | 86 | (2) |
| | 88 | (3) |
| CHAPTER 10 IS JAVA RIGHT FOR EVERYONE? | | | 91 | (8) |
| 10.1 Is Java Right for the Business? | | | 91 | (1) |
| 10.2 Technology Challenges | | | 91 | (1) |
| 10.3 Before Using Java, Ask These Questions | | | 92 | (3) |
| 10.3.1 Technology Leadership | | | 93 | (1) |
| 10.3.2 Have Developers Been Experimenting? | | | 93 | (1) |
| 10.3.3 A "Filling-the-Gaps" Culture | | | 93 | (1) |
| 10.3.4 Third-Party Product Support | | | 94 | (1) |
| 10.3.5 A Fast-Paced, Rapidly Changing Environment | | | 94 | (1) |
| 10.3.6 Does the Company Have a "Green Field" Project? | | | 94 | (1) |
| 10.4 Does the Business Have the Right Skills? | | | 95 | (1) |
| 10.5 Acquiring the Right Skills | | | 96 | (1) |
| | 97 | (2) |
| CHAPTER 11 BRIDGING PROCEDURAL AND OBJECT-ORIENTED STYLES | | | 99 | (10) |
| 11.1 Application Development Styles | | | 99 | (1) |
| 11.2 Objects Are Not for Everyone | | | 100 | (3) |
| 11.2.1 Fine-Grained Object-Oriented Design Is Difficult to Attain | | | 100 | (1) |
| 11.2.2 Reuse Is Difficult | | | 101 | (2) |
| 11.2.3 The Pervasiveness of Procedural Systems | | | 103 | (1) |
| 11.3 Combining Object-Oriented and Procedural Styles | | | 103 | (1) |
| 11.4 Java Bridges the Two Styles | | | 104 | (1) |
| 11.5 Example Java-Based Object/Procedural Systems | | | 105 | (2) |
| | 107 | (2) |
| CHAPTER 12 BUILDING EXECUTION ARCHITECTURES | | | 109 | (18) |
| 12.1 Execution Architectures | | | 109 | (4) |
| | 113 | (2) |
| 12.3 The Downside of Execution Architectures | | | 115 | (1) |
| | 115 | (5) |
| 12.4.1 No Memory Management | | | 116 | (1) |
| 12.4.2 Standard, Comprehensive Approach to Error Handling | | | 116 | (1) |
| 12.4.3 Platform Independence | | | 117 | (1) |
| 12.4.4 Network Communication Building Blocks | | | 118 | (1) |
| | 118 | (1) |
| | 118 | (1) |
| 12.4.7 Example Solutions on the Web | | | 119 | (1) |
| 12.4.8 Simpler Object-Oriented Approach | | | 119 | (1) |
| 12.4.9 Third-Party Products Leveraging Java | | | 119 | (1) |
| 12.4.10 Java's Multithreading Capabilities | | | 119 | (1) |
| | 120 | (1) |
| 12.6 A Java Execution Architecture | | | 120 | (5) |
| 12.6.1 On-line Travel Booking | | | 122 | (1) |
| 12.6.2 Customer Sales Support System | | | 123 | (1) |
| 12.6.3 Call Center Customer Support | | | 123 | (1) |
| 12.6.4 Human Resource Service Delivery | | | 124 | (1) |
| | 125 | (2) |
| CHAPTER 13 MOVING BEYOND APPLETS | | | 127 | (16) |
| 13.1 Complex Business Systems | | | 127 | (1) |
| 13.2 Implementation Challenges | | | 128 | (2) |
| 13.2.1 Server-Side Business Services | | | 129 | (1) |
| 13.2.2 Deploying Client/Server Applications | | | 129 | (1) |
| 13.2.3 Impact of Emerging Standards | | | 130 | (1) |
| 13.3 Java Technology's Role | | | 130 | (4) |
| 13.3.1 Providing Server-Side Business Services | | | 130 | (1) |
| 13.3.2 Deploying Client/Server Applications | | | 131 | (2) |
| 13.3.3 Summary of Key Technology Components | | | 133 | (1) |
| 13.4 What about ActiveX and CORBA? | | | 134 | (5) |
| 13.4.1 Competing Standards | | | 136 | (1) |
| 13.4.2 Real-World Systems | | | 136 | (1) |
| 13.4.3 An ActiveX-CORBA Survival Strategy | | | 137 | (1) |
| 13.4.3.1 Insulating Server-Side Services | | | 138 | (1) |
| 13.4.3.2 Tools for Insulation | | | 139 | (1) |
| | 139 | (1) |
| | 140 | (3) |
| CHAPTER 14 OVERCOMING PERFORMANCE CHALLENGES | | | 143 | (16) |
| 14.1 The Performance of Business Systems | | | 143 | (1) |
| 14.2 Challenges of a New Technology | | | 144 | (1) |
| 14.3 Addressing Java Technology Performance | | | 145 | (1) |
| 14.4 via World Network-Java Performance | | | 146 | (4) |
| | 146 | (1) |
| 14.4.2 Improvements in Price/Performance | | | 147 | (1) |
| 14.4.3 Portability of Java | | | 147 | (1) |
| 14.4.4 High-Quality Business Logic | | | 148 | (1) |
| 14.4.5 Predictable and Consistent Behavior | | | 149 | (1) |
| 14.4.6 Scalable Business Logic Design | | | 149 | (1) |
| 14.5 via World Network Business Logic | | | 150 | (2) |
| 14.5.1 In-Memory Table Loads | | | 151 | (1) |
| | 151 | (1) |
| 14.5.3 Global Object Declaration | | | 151 | (1) |
| 14.5.4 Redundant Object Instantiation | | | 152 | (1) |
| 14.5.5 Object Creation and Control Structures | | | 152 | (1) |
| 14.6 via World Network Execution Architecture | | | 152 | (2) |
| 14.6.1 In-Memory Table Storage Size | | | 152 | (1) |
| 14.6.2 Java String and Date Objects | | | 153 | (1) |
| 14.6.3 Memory Heap Size of the Java Interpreter | | | 153 | (1) |
| | 154 | (1) |
| | 154 | (1) |
| 14.7 via World Network Results | | | 154 | (1) |
| | 155 | (4) |
| CHAPTER 15 MAKING APPLICATIONS SECURE | | | 159 | (8) |
| 15.1 Internet Security for Businesses | | | 159 | (1) |
| 15.2 Security Concerns of Java | | | 160 | (1) |
| 15.3 Reasons Not to Worry | | | 161 | (1) |
| 15.3.1 Breaking Java Has Become a "Sport" | | | 161 | (1) |
| 15.3.2 Before Java, This Was Not a Problem | | | 161 | (1) |
| 15.3.3 Java Applications Can Be Installed Locally | | | 162 | (1) |
| 15.4 Developing Secure Applications | | | 162 | (2) |
| 15.4.1 "Internet-Friendly" Communications | | | 163 | (1) |
| 15.4.2 Reliable and Secure Transmissions | | | 163 | (1) |
| | 164 | (3) |
| CHAPTER 16 BUILDING HIGHLY AVAILABLE SYSTEMS | | | 167 | (16) |
| 16.1 Business System Requirements | | | 167 | (1) |
| 16.2 Implementation Challenges | | | 168 | (4) |
| 16.2.1 Single-Vendor Strategies | | | 169 | (1) |
| 16.2.2 A Multivendor Strategy | | | 170 | (2) |
| 16.3 The Role of Java Technology | | | 172 | (3) |
| 16.4 The Travel Industry's High Availability Requirements | | | 175 | (2) |
| 16.5 via World Network's Approach | | | 177 | (3) |
| | 180 | (3) |
| CHAPTER 17 MOTIVATING APPLICATION DEVELOPERS | | | 183 | (10) |
| 17.1 Developers at the Java One Conference | | | 183 | (1) |
| 17.2 A Variety of Reasons | | | 184 | (4) |
| 17.2.1 Java Is New and Different | | | 185 | (1) |
| 17.2.2 Java Technology Is Cutting-Edge | | | 185 | (1) |
| 17.2.3 The Industry Has Overhyped Java | | | 185 | (1) |
| 17.2.4 Java Programming Is Easy to Learn | | | 186 | (1) |
| 17.2.5 Animated Web Pages | | | 186 | (1) |
| 17.2.6 Java Increases Prototyping Speed | | | 187 | (1) |
| 17.2.7 Sharing of Java Code | | | 187 | (1) |
| 17.2.8 Excitement over the Internet | | | 187 | (1) |
| 17.3 Developers Are Motivated to Work with Java Technology | | | 188 | (1) |
| 17.3.1 Developers Work Harder | | | 188 | (1) |
| 17.3.2 Recruiting Is Easier | | | 188 | (1) |
| 17.3.3 Developers Have a Positive Attitude | | | 189 | (1) |
| 17.3.4 Developers Establish Professional Contacts | | | 189 | (1) |
| 17.4 Experiences with the Interest in Java | | | 189 | (2) |
| | 191 | (2) |
| CHAPTER 18 LEARNING THE TECHNOLOGY | | | 193 | (12) |
| 18.1 The Cost of Training | | | 193 | (1) |
| 18.2 Java Is Easier to Learn | | | 194 | (6) |
| | 194 | (1) |
| 18.2.2 Similarity to C and C++ | | | 195 | (1) |
| 18.2.3 Wide Base of Documentation | | | 195 | (1) |
| 18.2.4 Prebuilt Building Blocks | | | 195 | (1) |
| 18.2.5 Simpler Memory Management | | | 196 | (1) |
| 18.2.6 User-Friendly Compiler | | | 197 | (1) |
| 18.2.7 Platform Independence | | | 198 | (1) |
| 18.2.8 Simplified Systems Programming | | | 199 | (1) |
| 18.2.9 Simplified Object-Oriented Programming | | | 199 | (1) |
| 18.2.10 Impact of Java on New and Experienced Developers | | | 199 | (1) |
| 18.3 Learning Java Still Takes Time | | | 200 | (1) |
| 18.4 via World Network Training | | | 200 | (2) |
| | 202 | (1) |
| | 203 | (2) |
| CHAPTER 19 IMPROVING DEVELOPER PRODUCTIVITY | | | 205 | (16) |
| 19.1 Programming Is a Complex, Time-Consuming Task | | | 205 | (1) |
| 19.2 Java Programming Increases Developer Productivity | | | 206 | (7) |
| | 207 | (2) |
| | 209 | (1) |
| | 209 | (1) |
| 19.2.4 Systems Programming | | | 210 | (1) |
| 19.2.5 Platform Independence | | | 211 | (1) |
| 19.2.6 Object-Oriented Programming | | | 212 | (1) |
| | 212 | (1) |
| 19.3 Aspects That Hinder Productivity | | | 213 | (2) |
| 19.3.1 Development Tool Immaturity | | | 214 | (1) |
| 19.3.2 Pool of Experienced Programmers | | | 214 | (1) |
| 19.3.3 Few Examples of Business Systems | | | 214 | (1) |
| 19.4 Java Reduces Application Development Time | | | 215 | (4) |
| 19.4.1 Release One Development | | | 215 | (1) |
| 19.4.2 Release One System Testing | | | 216 | (1) |
| 19.4.3 Release One Summary | | | 217 | (1) |
| 19.4.4 Release Two Summary | | | 218 | (1) |
| 19.4.5 Production Operations | | | 218 | (1) |
| | 219 | (1) |
| | 219 | (2) |
| CHAPTER 20 NEW DEVELOPMENT TOOLS AND PROCESSES | | | 221 | (12) |
| 20.1 Development Tools and Processes | | | 221 | (2) |
| 20.2 Java Programming's Impact on Development | | | 223 | (5) |
| 20.2.1 Application Debuggers | | | 223 | (1) |
| | 224 | (1) |
| | 225 | (1) |
| 20.2.4 Source Code Control Facility | | | 226 | (1) |
| 20.2.5 Compilation Utilities | | | 226 | (1) |
| 20.2.6 Programming Standards | | | 227 | (1) |
| 20.2.7 Development Platforms | | | 228 | (1) |
| | 228 | (3) |
| 20.3.1 Development and Production Platform | | | 228 | (1) |
| 20.3.2 Development Process and Methodology | | | 229 | (1) |
| 20.3.3 Source Code Control Facility | | | 229 | (1) |
| 20.3.4 Compilation Utility | | | 229 | (1) |
| | 230 | (1) |
| | 230 | (1) |
| | 231 | (1) |
| | 231 | (2) |
Glossary | | 233 | (6) |
Index | | 239 | |