Wednesday, June 26, 2002

Enterprise Computing

This article appears in slightly different form in the May/June 2002 issue of IEEE Micro © 2002 IEEE.

In the March/April 1998 Micro Review, I reviewed a book by Roger Sessions about Microsoft's vision for distributed computing. Microsoft has continued to march down that road. As I found out at the VSLive conference in February 2002, they seem to have assembled all of the pieces (COM+, .NET, C#, Visual Basic) and are ready to put them together with XML into something called web services.

At the same time, Sun's strategy has been more visible. The Java Two Enterprise Edition (J2EE) has been in widespread use for two years. As I found out at the Java One conference in March 2002, Sun is extending the J2EE platform and using XML technologies to enable something called web services.

Books about these approaches abound. This time I look at a generic book about web services and several books about the Java approach to providing them.

Enterprise software is not an end in itself. I also look at a book that deals with content -- the reason for all that software.

Finally I look at a book about a topic that never seems to go away -- improving the software development process.

Web Services

Web Services Essentials -- Distributed Applications with XML-RPC, SOAP, UDDI and WSDL by Ethan Cerami (O'Reilly, Sebastopol CA, 2002, 288pp, ISBN 0-596-00224-6,, $29.95)

A web service, according to this book, is any service that is available over the Internet, uses a standard XML message system, and is not tied to a specific operating system. This general definition gives little insight into what they will look like and how they will affect our lives. I went to VSLive and JavaOne looking for a clearer picture, but they didn't give it to me. I am sorry to say that reading this book did not give me a clearer picture either.

The book does, however, give a good introduction to the technologies that everybody seems to agree will underlie whatever web services turn out to be. Those technologies are the acronyms mentioned in the book's subtitle: XML-RPC (the XML-based remote procedure calling protocol), SOAP (the simple object access protocol), UDDI (the universal description, discovery, and integration specification), and WSDL (the web services description language). These are the building blocks of a loosely coupled architecture for distributed applications.

Cerami is a programmer, and he writes for programmers. If you wish to understand the business case for web services, look for a different book. Cerami focuses on details of how to use the base technologies. Real XML files and real code fill the pages of his book. If you like to dig into such details, this book should make you happy.

Java Web Services -- Using Java in Service-Oriented Architectures by David A. Chappell and Tyler Jewell (O'Reilly, Sebastopol CA, 2002, 262pp, ISBN 0-596-00269-6,, $39.95)

At first glance this looks very much like the Cerami book, and you may wonder, as I did, why O'Reilly brought out such similarly titled books at essentially the same time. I don't have a good answer, because there is considerable overlap -- Cerami's book is full of Java code, for example. The Chappell and Jewell book, however, focuses more on the Java aspects of the subject. It also seems to cover the subject area more broadly. If you intend to work mainly on the J2EE platform, you can probably start with this book and skip the Cerami book.

Chappell and Jewell see interoperability as the point of web services. The service-oriented architectures they refer to in the book's subtitle are frameworks in which new and existing enterprise software packages can work together without knowing too much about each other's inner secrets. 

A service-oriented architecture is like a dating service for client/server relationships. Servers advertise their services (for example, I provide stock price quotes) in a registry. Clients look in the registry for a suitable server. They use the information they find there to establish contact, over the Internet or a company network, with the server and obtain the desired service (for example, tell me the current price of Microsoft stock).

Making this sort of thing work smoothly, without human intervention, between systems using disparate operating systems and languages requires an alphabet soup of standards. In addition to SOAP, UDDI, and WSDL, my notes from JavaOne mention:
  • ebXML TRP, a business-to-business messaging standard based on SOAP
  • JAX-RPC, a set of rules for generating Java code from WSDL
  • JAXP, an API for parsing XML into SAX or DOM
  • JAXR, an abstract layer to hide differences between registry APIs
  • JAXM, a low level API, based on SOAP, for messaging
That doesn't include the ones that don't exist yet (JAXB and JSR-109, for example).

As anyone who has participated in standardization efforts knows, many factors influence the final outcome. And the final outcome is rarely final, because the pressures of ongoing development and de facto standards lead to a succession of versions, each introducing new features. Multiply this chaos by the number of standards involved in web services, and you can see what a confusing field it is.

Chappell and Jewell realized that a big part of their job in writing this book was to separate truth from hype and software from vaporware. They do a good job of making sense of the field as it is now (or was in March 2002 when this book appeared).

A wise developer, looking at this situation, would probably decide to wait a year or so for web services to settle down. But many companies, not wishing to miss the next big thing, are jumping into web services with both feet. If that's the situation you find yourself in, this book can save you a lot of grief. Don't approach web services without it.  

Java Enterprise Applications

As they did last year, Sun gave attendees a book at this year's JavaOne conference. Unlike last year's book, which contained interesting but disjointed case studies, this book focuses on application architecture. Arising out of the Java BluePrints program, this book lays out design patterns and best practices for building enterprise applications on the J2EE platform.

Designing Enterprise Applications with the J2EE Platform, 2d ed by Inderjeet Singh et al. (Addison-Wesley, Boston MA, 2002, 440pp, ISBN 0-321-12522-3,, $44.99)

The web services field is arcane and chaotic. J2EE application architecture is mature by comparison, and this book illustrates that point extremely well. You could use it as the textbook for a college course on the subject. Despite the large number of authors, the book is coherent and clear. It appears to speak in a single voice and tell a single story, without gaps or overlap. To my knowledge, nothing remotely like it exists for the .NET platform.

This book arises from the Java BluePrints program. In fact, its unofficial name is the BluePrints book. It culminates with a sample application (the Java Pet Store) that illustrates the principles and design patterns that the book discusses. The entire program, and this book in particular, are a model for the way all companies should support their products for developers. If you have anything to do with developing enterprise applications on the J2EE platform, drop everything and read this book from cover to cover.

Mastering Enterprise JavaBeans, 2d ed By Ed Roman, Scott W. Ambler, and Tyler Jewell (Wiley, New York NY, 2002, 672pp, ISBN 0-471-41711-4,, $45.00)

Ed Roman, CEO of the Middleware Company, is a developer who has been working with Enterprise JavaBeans (EJB) since they first appeared. He has taught the subject to many students. Scott Ambler is a columnist for Software Development and the author of many books on object oriented development methods. Tyler Jewell is a technology evangelist for BEA Systems and an expert on EJB. The first edition of this book, which appeared three years ago, was widely admired. Taking all that into account, I expected this to be an excellent book, and it lives up to that expectation.

To paraphrase Mark Twain, Enterprise JavaBeans are to JavaBeans as lightning is to a lightning bug. EJB is the Java equivalent of Microsoft's COM+ (see Micro Review, Nov/Dec 2001). It is a robust server-side technology designed to handle tricky functionality automatically in the runtime environment. Application programmers need not worry about transactions, persistence, or caching database information, for example. The EJB container can take care of these things for them.

This book teaches you EJB from the ground up. While far too many computer books are superficial -- filling an impressive 1000 pages with regurgitated manuals and specifications, this thick book is concise and focused. It deals with difficult issues and refers you to Sun's specifications for the minute details. It is both a textbook and a tutorial, but not the sort of tutorial that leads you through page after page of baby steps. It shows you code, discusses the key issues, and lets you try it out if you wish to do so. You can download all of the code from the book's website.

When Ed Roman first encountered EJB, he struggled for months to understand the specification. Having become an expert the hard way, he resolved to write the book he wished he had been able to read then. Why reinvent the wheel? If you need to work with EJB, read this book.


Enterprise Content Services by Greg Laugero and Alden Globe (Addison-Wesley, Boston MA, 2002, 204pp, ISBN 0-201-73016-2,, $29.99)

Greg Laugero is an expert in managing intellectual capital. Alden Globe is an expert in knowledge management. Together they founded Industrial Wisdom, LLC, a company that focuses on providing enterprise information to the decision makers who need it.

This book tries to put the horse back in front of the cart. The authors point out that managers often mistakenly assume that acquiring the right technology will solve their problems. The truth, however, lies in the old saw: first devise the process, then automate it. In the case of content management, this means examine your business goals and strategy to identify your information needs, then devise ways to develop and deliver that information automatically.

The authors devote a considerable portion of the book to an elementary explanation to managers about why they need to manage their enterprise information within the context of their business strategy and how to measure the benefits of doing so. Many managers in high tech firms probably already understand this. They should find the rest of the book much more interesting.

The authors move from the why of content management to the how of it. They lay out a practical, easy to follow process for identifying the enterprise information that is relevant to your business needs and for managing that information to meet those needs. They build this process around the following basic elements: knowledge storyboard, content inventory, and enterprise content catalog. These elements are just what you think they are, but the authors provide lots of practical advice to keep them from becoming too elaborate. Their basic ground rules are:
  • Know the business problem and know the content
  • Acknowledge that people and processes drive technology
  • Be aware that the catalog is the foundation
  • Think big, work small, deliver quickly
The main point of these rules is to focus you on a process that meets your business needs, not on flashy technology. If this book achieves that goal with a significant number of readers, perhaps it will help content management vendors focus more on the quality of their offerings and less on the lengths of their feature lists.

Process Improvement

Making Process Improvement Work -- A Concise Action Guide for Software Managers and Practitioners by Neil S. Potter and Mary E. Sakry (Addison-Wesley, Boston MA, 2002, 196pp, ISBN 0-201-77577-8,, $29.99)

Potter and Sakry are cofounders of a company that consults in the area of software process improvement. Both have been working in this area for many years. Like the content management book by Laugero and Globe, this book tries to bring its subject down to earth. It focuses on identifying specific business problems and addressing them with simple, practical, targeted steps.

Many companies take achievement of a specific level in the Software Engineering Institute's Capability Maturity Model (CMM) as a goal in itself. This leads them to introduce processes and paperwork into their already busy workflows without a clear idea of what all of this red tape is supposed to accomplish. Project teams quickly abandon these additions or learn to go through the motions. The business problems remain as they were.

Potter and Sakry suggest a different approach: focus on your organization's goals and problems, and tie improvement activities directly to current project work. Solve the most important problem first. When that solution is succeeding, address the next problem. Look at how your solutions relate to the CMM, but don't make your solutions broader than they need to be to solve the business problem. You can apply Laugero and Globe's maxim here: Think big, work small, deliver quickly. A little momentum goes a long way.

The book is concise. It contains a step-by-step procedure for identifying, simplifying, and carrying out process improvements that solve real problems. If anybody in your management has ever mentioned the CMM, you should buy this book.