throbber
Java Thin-Client Programming
`for a Network Computing Environment
`
`Jurgen Friedrichs, Henri Jubin and The Jalapefio Team
`
`
`
`International Technical Support Organization
`
`http://www.redbooks.ibm.com
`
`SG24-5115-00
`
`LGEExhibit-1015/Page 1 of 346
`LGEv. Uniloc
`
`

`

`LGEExhibit-1015/Page2 of 346
`
`LGE Exhibit-1015/Page 2 of 346
`
`

`

`International Technical Support Organization
`
`SG24-5115-00
`
`Java Thin-Client Programming
`for a Network Computing Environment
`
`June 1998
`
`LGE Exhibit-1015/Page 3 of 346
`
`

`

`Take Note!
`
`Before using this information and the product it supports, be sure to read the general information in
`Appendix C, “Special Notices” on page 307.
`
`First Edition (June 1998)
`
`Comments may be addressed to:
`IBM Corporation, International Technical Support Organization
`Dept. DHHB Building 045 Internal Zip 2834
`11400 Burnet Road
`Austin, Texas 78758-3493
`
`© Copyright International Business Machines Corporation 1998. All rights reserved
`Note to U.S Government Users – Documentation related to restricted rights – Use, duplication or disclosure is
`subject to restrictions set forth in GSA ADP Schedule Contract with IBM Corp.
`
`LGE Exhibit-1015/Page 4 of 346
`
`

`

`Contents
`
`Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .ix
`
`Tables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii
`
`Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv
`The Team That Wrote This Book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv
`Comments Welcome . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix
`
`Chapter 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
`1.1 A Thin Client Application—The Lunar Medical Center Story . . . . . . . . . 2
`1.2 About the Book. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
`1.3 Structure of the Book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
`1.4 Who Should Read This Book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
`1.5 Assumptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
`1.6 How to Use This Book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
`
`Chapter 2. Network Computing and Network Computers . . . . . . . . . . . 9
`2.1 What is Network Computing? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
`2.1.1 Network Computing Ideals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
`2.1.2 Network Computing Reality . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
`2.2 Problems with Network Computing . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
`2.3 The Network Computer (NC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
`2.3.1 NC Objectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
`2.3.2 NC Capabilities and Architecture . . . . . . . . . . . . . . . . . . . . . . . . 15
`2.3.3 NC Product Example: The IBM Network Station 1000. . . . . . . . . 18
`2.4 A Network Computing Strategy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
`
`Chapter 3. Distributed Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
`3.1 The Monolithic, Nondistributed Alternative . . . . . . . . . . . . . . . . . . . . . 23
`3.2 A Look at Some Issues. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
`3.3 Considering Distributed Systems Design & Development Strategies . 28
`3.4 In Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
`
`Chapter 4. HTML-Based Clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
`4.1 Browsers and Web Servers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
`4.2 HTML Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
`4.2.1 HTML Conformance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
`4.2.2 Developing in HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
`4.2.3 Simple Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
`4.2.4 Forms and Tables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
`4.2.5 To Validate or Not to Validate... . . . . . . . . . . . . . . . . . . . . . . . . . 45
`4.3 Client Intelligence - JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
`
`© Copyright IBM Corp. 1998
`
`iii
`
`LGE Exhibit-1015/Page 5 of 346
`
`

`

`4.3.1 Simple JavaScript Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
`4.3.2 Using JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
`
`Chapter 5. Java-Based Clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
`5.1 A Brief Overview of Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
`5.2 Client-Server Computing with Java. . . . . . . . . . . . . . . . . . . . . . . . . . . 60
`5.2.1 Applets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
`5.2.2 Sockets in Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
`5.2.3 Accessing an HTTP Server with Java . . . . . . . . . . . . . . . . . . . . . 65
`5.2.4 Object-Object Communication: Remote Method Invocation (RMI)66
`5.2.5 Connecting to the Database: JDBC . . . . . . . . . . . . . . . . . . . . . . 66
`5.3 The Lunar Medical Center’s Java Application . . . . . . . . . . . . . . . . . . . 68
`5.4 The Lunar Medical Center’s Java Applet . . . . . . . . . . . . . . . . . . . . . . 73
`5.5 Some Java Facilities Supporting Enterprise-Wide Network Computing76
`5.6 In Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
`
`Chapter 6. Design Decisions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
`6.1 Designing the Object Model for the Lunar Medical Center’s Systems . 79
`6.2 Designing the Applications: Considering Alternatives . . . . . . . . . . . . . 82
`6.2.1 Profiles Describing the Check-In Applet . . . . . . . . . . . . . . . . . . . 83
`6.2.2 Profiles Describing the Main Patient View/Edit Application . . . . . 83
`6.2.3 Profiles Considered but not Implemented . . . . . . . . . . . . . . . . . . 84
`6.2.4 Additional Factors to be Considered . . . . . . . . . . . . . . . . . . . . . . 85
`6.3 The Lunar Medical Center Implementations . . . . . . . . . . . . . . . . . . . . 86
`6.3.1 Nondistributed Full Application Based on Files . . . . . . . . . . . . . . 88
`6.3.2 HTML Only at the Browser with a Servlet at the Server . . . . . . . 89
`6.3.3 HTML and JavaScript with HTTP to a Servlet . . . . . . . . . . . . . . . 90
`6.3.4 Applet at the Browser with HTTP Connection to Java Servlet . . . 90
`6.3.5 Applet with Direct JDBC Connection. . . . . . . . . . . . . . . . . . . . . . 91
`6.3.6 Java Application Using JDBC Directly. . . . . . . . . . . . . . . . . . . . . 92
`6.3.7 Full Application Using Sockets . . . . . . . . . . . . . . . . . . . . . . . . . . 93
`6.3.8 Full Java Application Using Java RMI . . . . . . . . . . . . . . . . . . . . . 94
`6.4 In Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
`
`Chapter 7. Java Servlets and HTTP Communication . . . . . . . . . . . . . . 97
`7.1 Overview of the Hypertext Transfer Protocol and Request Methods . . 97
`7.1.1 Protocol Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
`7.1.2 HTTP Headers and Server Status Codes . . . . . . . . . . . . . . . . . 100
`7.1.3 Client Request Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
`7.2 Common Gateway Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
`7.2.1 Using CGI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
`7.2.2 Problems with CGI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
`7.3 Java Servlets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
`7.3.1 Servlet Requirements and Usage . . . . . . . . . . . . . . . . . . . . . . . 110
`
`iv
`
`Java Thin-Client Programming for a Network Computing Environment
`
`LGE Exhibit-1015/Page 6 of 346
`
`

`

`7.4 The LMC’s HTTP/Servlet Implementation . . . . . . . . . . . . . . . . . . . . . 115
`7.5 In Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
`
`Chapter 8. Java Servers using JDBC . . . . . . . . . . . . . . . . . . . . . . . . . 119
`8.1 Overview of JDBC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
`8.1.1 JDBC API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
`8.1.2 JDBC/SQL Data Type Mapping . . . . . . . . . . . . . . . . . . . . . . . . 121
`8.1.3 JDBC Database Drivers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
`8.2 Using JDBC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
`8.3 The LMC’s JDBC Implementation. . . . . . . . . . . . . . . . . . . . . . . . . . . 128
`
`Chapter 9. Java Servers and Socket Communication . . . . . . . . . . . . 137
`9.1 Introduction to TCP/IP sockets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
`9.2 Sockets with Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
`9.2.1 Compatibility of Different Socket Implementations . . . . . . . . . . 140
`9.3 The LMC’s Socket Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . 141
`9.3.1 Implementing the Socket Client . . . . . . . . . . . . . . . . . . . . . . . . 141
`9.3.2 Implementing the Socket Server . . . . . . . . . . . . . . . . . . . . . . . . 143
`9.4 In Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
`
`Chapter 10. Java Servers and RMI Communication . . . . . . . . . . . . . . 147
`10.1 RMI: An Easy Way to Implement Java Client/Server Applications. . 147
`10.2 The RMI Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
`10.2.1 Stub and Skeleton Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
`10.2.2 Remote Reference Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
`10.2.3 Transport Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
`10.2.4 RMI Method Invocation Mechanism . . . . . . . . . . . . . . . . . . . . 150
`10.3 RMI from a Programmer’s Perspective . . . . . . . . . . . . . . . . . . . . . . 150
`10.3.1 Server Side . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
`10.3.2 Client Side . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
`10.3.3 RMI Security Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
`10.3.4 RMI Registry. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
`10.3.5 Major RMI Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
`10.3.6 Developing with RMI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
`10.4 The LMC’s RMI Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
`10.4.1 The RMI Server Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
`10.4.2 The RMI Server Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
`10.4.3 The RMI Client Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
`10.5 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
`
`Chapter 11. Client Diets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
`11.1 Looking at the Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
`11.1.1 The Compiler and Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
`11.1.2 Packaging, Class Loading and Pre-Initialization . . . . . . . . . . . 165
`
`
`
`v
`
`LGE Exhibit-1015/Page 7 of 346
`
`

`

`11.1.3 Object Recycling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
`11.1.4 Garbage Collection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
`11.1.5 Optimizing Memory Accesses . . . . . . . . . . . . . . . . . . . . . . . . . 171
`11.1.6 Synchronization Overheads . . . . . . . . . . . . . . . . . . . . . . . . . . 172
`11.1.7 Error Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
`11.1.8 Other Issues and Optimizations . . . . . . . . . . . . . . . . . . . . . . . 175
`11.2 In Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
`
`Chapter 12. Tasty Additions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
`12.1 Introduction to SmartCards. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
`12.1.1 The SmartCard File System . . . . . . . . . . . . . . . . . . . . . . . . . . 180
`12.1.2 The OpenCard Framework . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
`12.2 Sample SmartCard Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
`12.3 Accessing a Serial Port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
`12.3.1 X-10 Architecture and Protocols . . . . . . . . . . . . . . . . . . . . . . . 188
`12.3.2 Programming the X-10 CP290 Home Control Interface . . . . . . 188
`12.3.3 The Java Espresso Machine Example . . . . . . . . . . . . . . . . . . 189
`
`Chapter 13. NC Deployment: Using IBM Network Stations . . . . . . . . 193
`13.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
`13.2 Software Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
`13.3 The Initialization Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
`13.3.1 The Power-On Self-Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
`13.3.2 Locating the Boot Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
`13.3.3 Loading the Kernel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
`13.3.4 Initiate the Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
`13.4 IBM Network Station Set Up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
`13.4.1 The NVRAM Setup Utility Panel . . . . . . . . . . . . . . . . . . . . . . . 199
`13.4.2 Set Network Parameters Panel . . . . . . . . . . . . . . . . . . . . . . . . 201
`13.4.3 Set the Boot Parameters Panel. . . . . . . . . . . . . . . . . . . . . . . . 204
`13.5 The IBM Network Station Manager . . . . . . . . . . . . . . . . . . . . . . . . . 206
`13.6 The Configuration Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
`13.6.1 The Configuration File Syntax. . . . . . . . . . . . . . . . . . . . . . . . . 209
`13.6.2 System-Level Configuration Files . . . . . . . . . . . . . . . . . . . . . . 209
`13.6.3 Workstation-Level Configuration Files. . . . . . . . . . . . . . . . . . . 210
`13.6.4 User-Level Configuration Files . . . . . . . . . . . . . . . . . . . . . . . . 211
`13.7 The Startup Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
`13.8 The IBM Network Station User Services . . . . . . . . . . . . . . . . . . . . . 213
`13.9 The IBM Network Station Message Log . . . . . . . . . . . . . . . . . . . . . 215
`13.9.1 Local Session . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
`13.9.2 Allowing Remote Telnet Session . . . . . . . . . . . . . . . . . . . . . . 216
`13.9.3 Remote Telnet Session . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
`13.10 Accessing the Serial Port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
`
`vi
`
`Java Thin-Client Programming for a Network Computing Environment
`
`LGE Exhibit-1015/Page 8 of 346
`
`

`

`13.10.1 Allowing Access to the Serial Port . . . . . . . . . . . . . . . . . . . . 218
`13.10.2 Initializing the Serial Port . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
`13.11 Coming Soon: IBM Software Release 3 . . . . . . . . . . . . . . . . . . . . 221
`13.11.1 The Setup Utility Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
`13.11.2 IBM Network Station Manager . . . . . . . . . . . . . . . . . . . . . . . 221
`13.11.3 Java Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
`
`Chapter 14. Java in the IBM Network Station . . . . . . . . . . . . . . . . . . . 223
`14.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
`14.2 Java Virtual Machine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
`14.3 Memory Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
`14.4 Java Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
`14.5 Running Java Programs in the IBM Network Station. . . . . . . . . . . . 225
`14.5.1 Adding a Java Applet Item to the Taskbar. . . . . . . . . . . . . . . . 225
`14.5.2 Adding a Java Application Item to the Taskbar . . . . . . . . . . . . 227
`14.5.3 Autostarting Java Programs and Applets . . . . . . . . . . . . . . . . 229
`14.6 Troubleshooting Java Execution Problems . . . . . . . . . . . . . . . . . . . 230
`14.7 The eSuite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
`14.7.1 The WorkPlace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
`14.7.2 The Administrator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
`14.7.3 Adding a Java Applet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
`
`Appendix A. Brief HTML Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
`A.1 Top Level Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
`A.2 Character Formatting Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
`A.3 Block Formatting Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
`A.4 Table Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
`A.5 List Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
`A.6 Forms Tags. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
`A.7 Miscellaneous Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
`
`Appendix B. Java Development: Using VisualAge for Java . . . . . . . . 251
`B.1 The VisualAge Family . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
`B.2 VisualAge for Java Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
`B.3 Integrated Development Environment (IDE) . . . . . . . . . . . . . . . . . . . . . . 254
`B.3.1 Java Support. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
`B.3.2 Navigating within VisualAge for Java . . . . . . . . . . . . . . . . . . . . . . . 258
`B.3.3 How It Fits Together . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
`B.3.4 Team Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
`B.3.5 Applet Viewer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
`B.3.6 Editor/Debugger/SmartGuides . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294
`B.3.7 Proxy Builder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
`B.4 Enterprise Access Builder (EAB) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
`B.4.1 Data Access Builder (DAX). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
`
`
`
`vii
`
`LGE Exhibit-1015/Page 9 of 346
`
`

`

`B.5 System Requirements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
`B.6 Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
`
`Appendix C. Special Notices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
`
`Appendix D. Related Publications. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
`D.1 International Technical Support Organization Publications . . . . . . . . . . 309
`D.2 Redbooks on CD-ROMs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
`D.3 Other Publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
`
`How To Get ITSO Redbooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
`How IBM Employees Can Get ITSO Redbooks . . . . . . . . . . . . . . . . . . . . . . . 311
`How Customers Can Get ITSO Redbooks. . . . . . . . . . . . . . . . . . . . . . . . . . . 312
`IBM Redbook Order Form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
`
`List of Abbreviations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
`
`Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
`
`ITSO Redbook Evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
`
`viii
`
`Java Thin-Client Programming for a Network Computing Environment
`
`LGE Exhibit-1015/Page 10 of 346
`
`

`

`Figures
`
`1. The Jalapeño Team . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvi
`2. The Lunar Medical Center . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
`3. Network Computer Abstract Architecture. . . . . . . . . . . . . . . . . . . . . . . . . . 17
`4. The IBM Network Station . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
`5.
`IBM Network Station Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
`6. Server Clusters Can Cater for Performance Issues in a Transparent Way 25
`7. A Failover Server Can Transparently Take Over from a Crashed Server . 25
`8. Recovering from a Network Partition is a Difficult Task . . . . . . . . . . . . . . . 26
`9. Distributed Administration is Vital for Large Distributed Systems . . . . . . . 27
`10. The Single Computer Image Concept . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
`11. A Client Able to Deal with Multiple Versions . . . . . . . . . . . . . . . . . . . . . . . 28
`12. The Decomposition of a System into Distributed Cooperating Services . . 29
`13. Clients and Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
`14. Isolating the Business Logic into Middleware . . . . . . . . . . . . . . . . . . . . . . 31
`15. Using Wrappering to Incorporate Legacy Systems . . . . . . . . . . . . . . . . . . 32
`16. Check-In Application Distribution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
`17. General Architecture of Browsers and Web Servers . . . . . . . . . . . . . . . . . 38
`18. Growing Architecture of Browsers and Web Servers. . . . . . . . . . . . . . . . . 39
`19. Simple HTML Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
`20. HTML Form Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
`21. Simple JavaScript Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
`22. Intermediate JavaScript Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
`23. JavaScript Instance Hierarchy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
`24. Intermediate JavaScript Example Using New Window . . . . . . . . . . . . . . . 54
`25. Java’s Architecture-Neutrality Arises from the Use of Bytecodes . . . . . . . 56
`26. The Simple Applet Running Inside a World Wide Web Browser . . . . . . . . 62
`27. Servers Create Multiple Threads to Handle Multiple Clients . . . . . . . . . . . 63
`28. JDBC Provides a Uniform Interface to Proprietary Databases . . . . . . . . . 67
`29. Construction of the Initial Log-In Screen . . . . . . . . . . . . . . . . . . . . . . . . . . 69
`30. Constructing the Main Patient Record View/Edit Screen. . . . . . . . . . . . . . 70
`31. Construction of the “Select History Entry” Screen . . . . . . . . . . . . . . . . . . . 71
`32. Construction of the “History Entry” Screen . . . . . . . . . . . . . . . . . . . . . . . . 72
`33. Constructing Two Error/Warning Screens . . . . . . . . . . . . . . . . . . . . . . . . . 73
`34. The Hospital Check-In Applet Running in the Applet Viewer. . . . . . . . . . . 74
`35. Check-In Applet Displayed in VisualAge’s Visual Composer. . . . . . . . . . . 75
`36. Simple Object Model for the LMC’s Systems. . . . . . . . . . . . . . . . . . . . . . . 81
`37. Profile for a Two-Tier Browser-Based Solution . . . . . . . . . . . . . . . . . . . . . 83
`38. Profiles for the Three-Tier Browser-Based Solutions. . . . . . . . . . . . . . . . . 83
`39. Profiles Describing the Application-Based Alternatives . . . . . . . . . . . . . . . 84
`40. Alternate Profiles Considered by the LMC’s . . . . . . . . . . . . . . . . . . . . . . . 84
`
`© Copyright IBM Corp. 1998
`
`ix
`
`LGE Exhibit-1015/Page 11 of 346
`
`

`

`41. Representation for a Communicator Class and Mechanism . . . . . . . . . . . 86
`42. Alternative Plug-Ins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
`43. Factored, Nondistributed Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
`44. HTML, JavaScript POST Data to the Servlet through the Browser . . . . . . 89
`45. HTML, JavaScript POST Data to the Servlet through the Browser . . . . . . 90
`46. Applet POST Data through a Direct URL Connection to the Servlet . . . . . 91
`47. Applet Using the Facilities Provided by JDBC . . . . . . . . . . . . . . . . . . . . . . 92
`48. Application Using the Facilities Provided by JDBC . . . . . . . . . . . . . . . . . . 93
`49. Application Using Sockets to Communicate with its Server. . . . . . . . . . . . 94
`50. Application Using Java RMI to Communicate with its Server . . . . . . . . . . 95
`51. Simple Browser > Web Server > CGI Program > DBMS . . . . . . . . . . . . . 106
`52. Typical Web Server Servlet Administration Interface. . . . . . . . . . . . . . . . 113
`53. Output from the Servlet Shown in Client Browser . . . . . . . . . . . . . . . . . . 118
`54. JDBC General Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
`55. JDBC Driver Categories. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
`56. DB2’s JDBC "Applet Driver" Architecture. . . . . . . . . . . . . . . . . . . . . . . . . 125
`57. DB2’s JDBC Application Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
`58. Simple Object Model for the LMC’s Systems. . . . . . . . . . . . . . . . . . . . . . 129
`59. Sequence of Interactions in Client/Server Socket Communication . . . . . 139
`60. Overview of the Socket Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
`61. An RMI-Based System. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
`62. Remote Method Invocation Architecture . . . . . . . . . . . . . . . . . . . . . . . . . 148
`63. RMI Implementation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
`64. RMI Programmer Viewpoint. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
`65. Using Callbacks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
`66. Generating Stub and Skeleton with IBM VisualAge for Java . . . . . . . . . . 156
`67. Starting the RMI Registry within IBM VisualAge for Java . . . . . . . . . . . . 157
`68. Packaging an Applet for Efficient Download . . . . . . . . . . . . . . . . . . . . . . 166
`69. Physical Properties of an ISO 7816 SmartCard. . . . . . . . . . . . . . . . . . . . 177
`70. Internal Structure of a SmartCard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
`71. Example of an ISO 7816-4 SmartCard File System . . . . . . . . . . . . . . . . 180
`72. Architecture of the OpenCard Framework . . . . . . . . . . . . . . . . . . . . . . . . 181
`73. Class Hierarchy for the CardTerminal Component . . . . . . . . . . . . . . . . . 182
`74. Class Hierarchy for the Main CardAgent Objects . . . . . . . . . . . . . . . . . . 182
`75. Class Hierarchy of the CardIO Component . . . . . . . . . . . . . . . . . . . . . . . 184
`76. External Device Controlled by NC Using Serial Port and X-10 . . . . . . . . 188
`77. Initialization Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
`78. IBM Network Station Boot Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
`79. IBM Network Station, Loading the Kernel . . . . . . . . . . . . . . . . . . . . . . . . 198
`80. IBM Network Station Password Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
`81. IBM Network Station Administrator Setup Utility Panel . . . . . . . . . . . . . . 201
`82. Set Network Parameters Panel Using with Network Option Selected . . . 202
`83. Set Network Parameter Panel with NVRAM Option Selected . . . . . . . . . 203
`
`x
`
`Java Thin-Client Programming for a Network Computing Environment
`
`LGE Exhibit-1015/Page 12 of 346
`
`

`

`84. Set Boot Parameters Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
`85. The Network Station Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
`86. The Console Window. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
`87. Setup Parameters Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
`88. The Terminal Chooser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
`89. Local Terminal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
`90. Allowing Access to the Message Log . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
`91. Windows NT Telnet Session . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
`92. Allowing Serial Access. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
`93. Configuring the Serial Port. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
`94. Java Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
`95. Adding a Java Applet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
`96. Multiple Applets Running on the IBM Network Station . . . . . . . . . . . . . . 227
`97. Adding a Java Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
`98. The Lunar Login Application in the Network Station . . . . . . . . . . . . . . . . 229
`99. Java Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
`100.Java Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
`101.Java Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
`102.The eSuite WorkPlace. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
`103.The eSuite WorkPlace Administrator . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
`104.Task and Categories in the eSuite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
`105.Adding a Category. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
`106.Adding a Java Applet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
`107.Adding a Task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
`108.Associating a Task with a Group. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
`109.The Scribble Applet in the WorkPlace. . . . . . . . . . . . . . . . . . . . . . . . . . . 240
`110.The Scribble Applet Runni

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket