Index

A
 
abstract classes 271, 281
     vs. interfaces 271
abstract type
     XML 200
Access 25, 192, 280
accessor methods 213, 219, 227
ActiveX 62, 82
algorithm 302
allmystuff 16
amazon.com 8, 37
analysis paralysis 46
antipattern 1, 16, 51, 102, 109, 136, 151, 157, 225, 237, 249, 317
     and design patterns 6?7, 13
     bad workload management 298
     books 9
     cache 6
     community 12
     compound JSPs 88
     Connection Thrashing 172
     detective work 15
     hardwired connections 185
     in industry 14
     Magic Servlet 59
     monolithic JSPs 84
     on line 8, 13
     Performance Afterthoughts 289
     Round-Tripping 16, 295
     Split Cleaners 181
     Thrash Tuning 304
     well-known 10
AntiPatterns text 10, 13, 18?19, 21, 205, 263
Apache 18
Apple 41
architects 16, 21, 172, 202, 290, 294, 313
are 146
arrays 11, 167?168
artifact 46, 212
audit files 240
availability 284, 289
AWT 41
 
B
 
Baldrige, Malcolm 15
BASIC 25, 40
BEA 18, 134
bean class
     EJB 212, 215?216, 230
braces 260
bubble sort 10
bug patterns 13
bugs 10, 13, 16, 31, 66, 150, 203, 253
     and comments 263
     memory 145
     memory leaks 157, 163
 
C
 
C 21, 24, 42, 56, 149?150, 156?158, 261
C++ 4, 10, 24, 40, 42?44, 56, 144?145, 148?151, 161, 168, 258, 268, 271
cache 6, 30, 51, 107?111, 125?128, 131?138, 140, 158, 160, 203, 240, 243?244, 286, 295, 297, 302, 304, 306, 313, 320, 324
     access frequency 127
     and memory leaks 157, 159
     application properties for caching 127
     command 126
     data distribution 127
     database size 127
     EJB 243, 290
     hardware 30, 109, 286
     hit 131
     in code 128, 132
     manager, to purchase 134
     memory leak 136
     servers 109
     size 127
     stale data 127
     volatility of data 127
cacheable units 127?128
cache-less cow 140
caching 6
capitalization 256
careers
     antipatterns 312
cascading style sheets 194
CGI 34, 62
CICS 10, 186
circular references 148
class diagrams 9
Class.forName 63, 122, 174
client/server 34?35, 59, 173?174
client-server 35, 59
Cloneable interface 272
close() 61, 174, 183?185, 239
     in JSP 85
CNInitialContextFactory 178, 218
coarse commands 98
COBOL 69
code inspection 16
code reviews 16, 270
ColdFusion 82, 94
collection
     consolidating round trips 232
command xviii
     distributed 244
command bean 69, 76, 84, 92
command pattern 80, 244
comments 10, 255, 261?263, 281
     and code editors 265
     and coding standards 261
     C style 261
     document style 264
     documentation style 262
     single-line 262
communication overhead 16
communications area 186, 188, 190
communications buffer 186?187
component 38, 151, 196, 208, 287, 323, 326?327
Concurrent Programming 284
     books 8
connection pool 71, 111, 116, 174?177, 179?180, 202?203, 288
     benefits 176
connections 5, 51, 173?175, 177, 179?180, 185?186, 192, 202?204, 243, 289, 320?321
     and HTTP 34
     cleaning 111
     database 62
     last mile 30
Conner, Dr. Mike 67, 108
consultants 225, 242, 276, 313?314
consulting 6, 14, 46, 62, 109, 290, 293, 313
container
     EJB 208, 210?212
container-managed persistence 210, 237?238, 241, 323
controller 321?323
     in MVC 56, 58?59, 66, 68, 83
Copy-on-Write 142
CORBA 24, 42, 104, 187, 208, 230, 234?235, 244
cost
     of EJB without facade 226
coupling 15, 70, 102, 163, 185, 190?192, 200, 291, 313
     between model and view 83
createJDBCDataSource 178
cut-and-paste 38, 66, 153, 163, 169
cycle time 4, 46, 253, 270
 
D
 
dangling pointers 149
dangling type 200?201
data source 177?179
database connection 64, 69, 71, 116, 131, 179, 203, 320
DataSourceFactory 178?179
DB2 18, 289
     drivers 62
DCOM 42
deallocation 146
decouple 189
defines 43
delay binding 201, 212
deployment descriptor 211?212, 222, 230
     code 222
design patterns 1, 157, 272, 317
     and antipatterns 6?7, 13, 17
     command pattern 67?68
     defined 7
     in industry 14
     JSP 82
     model-view-controller 56
     publish/subscribe 127
     refactoring 11
     ValueObject 243
diamond inheritance problem 43
dispatcher 77, 302?303
dispose method 155
DMZ 29, 285, 289
DNS 25?26, 33, 285
Docroot Manager 135
Document Object Model. See DOM
documentation 264
DOM 194
Dover Elevators 14
downstream view 60
DriverManager 63, 122, 174
dynamic content 35, 74?75, 87, 134?135, 285?287, 289, 320
     and performance planning 291
     cache 109
     in JSP 86
 
E
 
early binding 189
e-commerce 111, 189
edge services 109, 284, 286?287
editor
     code 265
EIS 180, 243
EJB 158, 208, 225?227, 241?244, 273, 282, 286, 288, 295?296, 298, 303?304, 313, 321, 323
     and memory leaks 158
     and XML 190
     basics 224
     cache 243
     examples 13
     history 67
     in Bitter Java 18
     instead of commands 73
     oversold 27
     performance 288, 290
     with commands 98
ejbPassivate 217
Encina 186
Enterprise Java Beans. See EJB
entity beans 209?210, 212, 221, 223?224, 226, 230, 237?240, 243, 247, 304, 320, 323
EntityContext 216?218
entity-relationship diagram 211
ER diagram 211, 226
event filtering 41
event listener 151, 155, 322
event management 41
event storm 41
exception
     managing connections 184
exception management 52, 161, 233, 272?273
exceptions 77, 118, 123, 125, 185, 203, 272, 275?276
     and validation 124
execute
     method 71, 92, 123, 183, 271
extreme programming 277
     defined 47
     simplicity 270
 
F
 
facade 68, 223?224, 228?231, 233, 236, 238, 240?241, 243?244, 273, 282, 286?288, 295?297, 301
     in code 233
file handles 41, 203
     connection cost 173
final
     modifier 272
finalize 155
finally 111, 161, 184?185, 204, 239, 279
fine commands 98, 100
firewalls 29?31, 285
fragments 135
frameworks 40?41, 140, 148, 151, 225, 230, 244, 281
     and antipatterns 24
     graphical 40
Front Page 25
FrontTier 134
 
G
 
garbage collected 148?151, 156, 162, 164, 322
garbage collection 136, 144, 146?151, 153?157, 159, 161?162, 164?165
garbage collector 144, 146?148, 150, 156, 158, 160
GET 34, 60?61, 287
getClassLoader 87
getConnection 63, 122, 174, 178, 184
getParameter 91
getServletContext 77
getters 73, 121, 132, 179, 221
GREP 160, 164
grep 155
 
H
 
hard wiring XML 197
hash codes 212, 272
hash table 11, 126, 131, 135?137, 161, 167, 240
     and memory leaks 157
     as cache 131
heap 145?146, 164
Hello, World 25, 60
helps 56
hidden namespaces 197
home interface 211, 215, 233?234
HTML 25, 28, 32, 34, 70, 78, 85, 90, 92?93, 97, 119?120
     downstream view 60, 62
     editor 65, 83
     editors 76, 94
     header 64
     in JSP 86
     input form 89
     JavaScript 75
     JSP 74, 78
     MVC view 59
     performance 289
     scripting 82
     table headings 64
HTTP 25, 28?29, 32?33, 37, 61, 185, 287?288
     and MVC 59
     image requests 126
     refactoring JSP 86
     servlets 54, 61
     stateless 158
Hungarian notation 258
hybrid approach
     to b2b interface synchronization 189
hygiene 160, 198, 249, 313
     programming 16
 
I
 
IBM xviii, 9, 18, 40?42, 67, 134, 174, 210, 244, 313
Includes 43
indentation 260
inheritance 38, 168, 268
initialize 122
     method 71, 116, 271
interaction controller 76, 79, 90, 102, 288
interfaces
     vs. abstract classes 271
intermediate xvii, 268, 281, 317
     programmers 16
Internet applications 16, 82, 125, 174, 284, 290, 292?294, 320
     scaling 287
Internet communications 35
Internet standards 1, 24?25, 35, 67
interviews 16
IP 25, 31?33, 185, 285
IP header 32
ISO 9000 14?15
iteration
     major interface boundaries 6
 
J
 
J2EE 18, 180, 210, 284
     books 8, 56
Jakarta 56, 67?68, 80, 104, 244
JAR 222
Java 42
Java code
     in JSP 94
Java Naming and Directory Interface. See JNDI
Java Server Page. See JSP
java.nio 274
JDBC 31, 62, 177?180, 238?239
J-Insight 161
JNDI 177, 179, 234
J-Probe 161
JSP xviii, 74?75, 113, 131, 134, 224, 226?227, 230, 287?288, 320, 323
     defined 74
     error conditions 122
     figure 76
     fragment cache 134
     fragment caching 286
     history 67
     in cached solution 115, 120
     in cached solutions 127
     in code 77
     PERL rewrite 65
     return trip 75
     versions 20
     with EJB 243
JVM 5, 160?161
 
L
 
Lapsed Listener 253
last mile 30
leaks
     cleanup considerations 273
life cycle 17, 42?43, 149?151, 153?155, 157?159, 163, 165, 169, 211?212, 215, 233, 322
Lisp 56
load balancing 30, 285, 301?302
localhost 33, 223
lock 136?137, 140
     in cache 135
     read 138
     write 139
loosely coupled 185, 190, 268
 
M
 
Magic Pushbutton 54?55, 60, 62
Magic Servlet 5, 9, 54, 59, 62, 84, 86
     causes 66
     common problems 65
     figure 60
     template 79
mark and sweep 148
memory 51, 125, 136, 144?152, 154?155, 157?164, 166?168, 203, 322
     and C 42
     cache 110?111, 128, 131
     connection cost 173
     connections 177
     leaks 15
     management 24, 44
memory leak 145, 153
memory leaks 145, 148?151, 160?162
     solving 161
memory management 43, 144, 149, 151
memory managers
     in C 145
mentoring 16
method
     design rules 270
methodology 1, 5, 37, 44, 46, 305?306, 324
     extreme programming 47
     iterative 40, 45
metrics 46, 270, 298, 306
     performance 293, 305
microkernel 41
Microsoft 25, 42
MIME 33
model logic 57, 64, 69, 78, 102, 212
     in JSP 86
model-view separation 57
model-view-controller 7, 54, 56, 59, 67, 83, 88, 114, 151, 314, 322
     and JSP 83
     figure 56
     refactoring monolithic JSP 86
     return trip 74
modem 30, 36
MP3 285
multiple inheritance 43?44, 271
 
N
 
named resource 177?179, 219
names
     rules for 255
     standards for 256
namespace 195?198, 200?201, 205
NetScape 42
non-blocking IO package 274
 
O
 
object models 238, 241
object oriented development
     vs. tag language 83
object-oriented systems 40
object-oriented technologies 45
OO programming 37
operating system 41, 126
     ancient 25
optimization 10, 273
OptimizeIt 161
Oracle PL/SQL 62
OS/2 40
override 38, 221, 272, 282
 
P
 
Page Detailer 35, 37, 306
page-level granularity 99
partitioning jobs 300
performance 303?304
     and layering 40
     application 16, 62, 71, 166?167, 202, 264, 273, 282, 284, 295?297, 299, 301, 313, 320, 323?324
     command granularity 100
     connection pooling 116, 173, 175?176, 194
     database 5, 172
     EJB 224
     examples 291
     hardware 108, 111, 134, 284?286, 288?289, 302
     infrastructure 30
     late in the process 291
     persistence frameworks 41
     plan 290?294
     process 5, 16, 238, 243, 249, 289?291, 293, 295, 304?307, 313?314, 320, 323?324, 326
     requirements 291
     testing 292, 294, 305
     tradeoffs 25
     tuning 304
     unpredictable 291
     web objects 37
PerformTask 61, 65
Perl 62, 65, 67, 110
persistence framework 237, 242, 292
persistent object model 112
pervasive computing 31
Piedra 24, 40
ping xviii, 33
pointer arithmetic 146
polymorphism 39
POP3 31
portals 135
POST 33?34, 60?61, 287
premature binding 189
prepopulation 120
primary key class 212, 221?222, 230
PrintWriter 61, 63, 124
procedural language 21
process
     antipatterns 315
programming in pairs 253
PropertyChangeListener 151, 154
proxy server 25
public Internet 30, 285
Publish 11
Publishing 165
 
Q
 
Quality Circles 15
quality metrics 15
queue specialization 299
 
R
 random access 11, 240
reachable 148?150, 156?157, 160?162, 164
     objects 148?149, 156, 160, 164
read only
     with EJBs 240
read/write bottleneck 137, 141
read/write locks 138, 140, 274
read/write ratio 138
readability 10, 75, 94, 163, 166, 168, 255, 257?258, 270, 280, 320
     and code editors 265
     and comments 261
     and consolidation 264
     and Hungarian notation 259
     and naming 256
readable 97, 157
redundancy 47
refactor 21, 52, 67, 108, 160, 165, 267, 313, 315?316
     antipatterns process 11
refactoring 184?185, 211, 223, 228, 253, 271, 315?316
     and antipattern process 12
     and class names 270
     and coding standards 261
     and extreme programming 47
     and methodologies 45
     and XP 253
     commands 101
     EJB solutions 227, 230
     EJBs 112
     JSP antipatterns 82
     Magic Servlet 54
     magic servlet 66, 68, 74
     opportunities 44
     role of standards 253
     round tripping 297
     split cleaners 184
     targets 16
     to model-view-controller 58
     with cache 111, 133
reference counting 146?148
reference objects 165, 273, 282
     phantom 156
     soft 156
     weak 156
release cycles 45
reliability 32, 38, 65?66, 75, 302
remote accessors 232
remote interface 209, 211?213, 219, 230, 238, 288, 323
remote procedure call. See RPC
repaint 41
RequestDispatcher 77
reserved names 260
Resin
     Caucho's product 134
response object 63, 87, 288
return trip 5, 63, 74, 77, 288
reuse 38?40, 65?66, 89, 98, 163, 168, 195, 206, 272, 301, 320
     and interfaces 272
     commands 99
     connections 174
round-tripping 16, 31, 35, 203, 208, 210, 229?230, 236, 273, 288, 295, 313
     cost 226
     solution 297
RPC 69, 186?187, 274
 
S
 
SAX 191, 194
scalability 27, 210, 249, 284, 286, 291, 294
schemas 195?197, 199, 206
scrollable lists 240
security xviii, 26, 28?31, 146, 180, 211?212, 216, 224, 242, 249, 268, 281, 285?286, 288
     and C++ 42
security policy 285
semaphores 41
separation of concerns 65, 77, 84, 86, 89, 94
sequence diagrams 9, 297
serializable 221, 232
serialVersionUID 216, 221, 233
server-side
     Java 8, 24, 27, 30?32, 37, 54, 59?60, 243, 249, 286
     programming 18
servlets 25
     container 25
     in code 62
     JSP 75
     on line 8
     standards 28
     touch points 287
session beans 73, 80, 104, 209?210, 222, 224, 236, 241, 243?244, 296, 303
     stateful 240
session data 136, 303?304
session management 158, 302
session state 158?160, 241, 288, 302?303
     and performance planning 291
setEntityContext 218
setters 73, 121, 132, 179, 221
shell sort 10
singleton 150, 153?159, 164
Smalltalk 42?43, 56, 68, 77, 104, 230, 271
SMTP 31
SOAP 192, 204
soft reference 160, 282
soft references 160
Split Cleaner 181, 253
sprayers 30
SQL 73, 238
     aggregate functions 220
     in JSP 85
     result set 70
state diagrams 9
stateful session beans 210
stateless session beans 210
static attribute
     and serialization 131
static content
     cache 25, 109?111, 126, 286, 289, 301, 320
     XML 198
strongly typed 43
structured programming 37, 40
Struts
     Jakarta 56, 67?68, 80, 104, 244
style guide 252, 276?277, 280
Sun 42
Swing 150?151
synchronization 135
synchronize 135
synchronized keyword 137
system logs 240
 
T
 
tabs vs. spaces 264
tag language 32, 82?84, 322
     problems 83
Taligent 41
TCP 25, 28, 31?32, 185, 285
TCP header 32
testing 274
     for memory leaks 163
thin client model 35
three-tier
     application deployment 242
tightly coupled 185
timeout 133
     cache 133, 159
TimesTen 134
Tomcat 158
tomcat 18
tools
     for memory leaks 149
     modeling 9
     programming 76, 210
training requirements 4
transaction logs 240
translation technologies
     XML 202
triangle 75, 87, 224
     design pattern 54, 56, 76, 78, 82, 88, 98, 102, 112, 314
Tuxedo 186
typedefs 43
 
U
 
UDDI 191
UML 158, 181, 227?228
     books 8?9
     defined 9
     sequence diagram 297
undo/redo 69, 99
Unified Modeling Language. See UML
unit tests 275
unsetEntityContext 218
URL 30, 113, 117, 178?179, 196, 257, 287
use cases 9, 45?46, 101
useBean 78, 87
 
V
 
validation 38, 68?69, 71?72, 88, 122?124, 130?131, 133, 185, 287
ValueObject 243
variable names 16, 196
variable-content containers 199
versions
     XML 202
Vignette 135
visibility
     standards 266
Visual Basic 25, 55
VisualAge for Java 153, 222
 
W
 
waterfall methodology 44
weak references 156
weakly reachable 156
web application servers 180, 285?286, 288?289, 302
web services 191?192, 203, 289
Web Services Description Language. See WSDL
WebLogic 18, 134
WebSphere 18, 20, 177, 179, 244
Windows 40, 126, 150
WML 31
workload management 298?299
written but not read 240
WSDL 191
www.bitterjava.com 8, 13, 20, 33, 52, 221, 223, 233, 258, 317
www.vignette.com 135
wwwthreads 110
 
X
 
XML xviii, 32, 34, 167, 189?199, 201?206, 212, 222, 323?324
     example 190
     on line 8
     versioning 201
XML document schema 195
XML schema 189?190, 196, 199
X-Path 193
XSL 34
XSLT 191, 194, 202
 
Y
 
Y2K bug 11, 37
yahoo.com 35
 
Z
 
Zero Defects 15