Author: Ken North
Prentice Hall Ptr, 1999
The objective of this book is to describe the details of building optimized database solutions with multiple technologies. The audience for this book is any manager of projects involving
distributed technologies. The author enlightens the reader to a number of technologies including database platforms, messaging queuing, application servers, OLE DB, ODBC, JDBC, Java, and ASP.
Early in the book there is a valuable emphasis on data design with some very thoughtful insights. However, this discussion is missing one very important tidbit. The discussion of business rules did
not properly emphasize the need to design data driven behavior instead of hard coding parameters. For example, if the business rule is 60 day past due is a problem invoice. The value of 60 should
be a parameter. Typically, this parameter is stored in a table in the database. Then if the business rule should change as executives deem 45 days or 90 days as the current rule, this can be
accomplished without programmer intervention.
I enjoyed the historical perspective presented of how technology has evolved. Ken’s perspective on how technology has evolved enriches his perspective on where things are and where they are
going. For example, he quotes a source from the 1950’s, as predicting that 12 centralized computers would eventually serve the world’s computing needs. Then he quotes a 1995 prediction
from Microsoft that there will shortly be 300 million servers around the world.
Much of the book can be used as reference material. This can come in handy when objectively evaluating how to partition and structure a solution if there are several technology alternatives
available to the project. Providing a resource to cover all available distributed technologies is a daunting task. Ken does address most of the popular technologies. The most obvious gap in the
technologies covered is Oracle. There is great coverage of all the leading technologies, but almost no depth at all in Oracle.
There is a phonetic algorithm example, which is carried through a number of technologies. I feel this example was too much code. Granted, “Hello World” would have been too simple, but perhaps an
example of two tables and an aggregation algorithm with less than a dozen lines of code would be easier to follow. With a smaller example, more depth could have been described.
Another strength of this book is the prevalent theme of Java that finds its way through the discussion in almost every chapter. If there is a second edition, this book could easily become “The
Impact of Java in Distributed Technologies”. There is no denying the positive industry wide impact of the Java programming language. I did not realize how integrated this language is becoming in
everything. Just about every server platform such as database servers and application servers are now supporting Java or are planning on supporting this language.
The last few chapters discuss a concept he calls adaptive programming. This concept is the practice of using the programming API’s to determine the appropriate method of interacting with the
data source for code portability. For example, for any given data type, you cannot assume that for a different database platform, this data type behaves identically.
If you are involved in distributed technology project decision making, you will enjoy this book.