Free Trial

Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.


  • Create BookmarkCreate Bookmark
  • Create Note or TagCreate Note or Tag
  • DownloadDownload
  • PrintPrint
Share this Page URL
Help

Foreword

Foreword

The Internet, business magazines tell us week after week, changes everything. Software professionals, who have a long tradition of helping automate all trades but their own, had better get it right this time, to keep pace with the speed of business-style innovation.

Do we know how to do it? Not quite. If we did, software wouldn't have the kind of reputation it has gained in business circles—always being late, over budget, and underfunction. Managers wouldn't be so preoccupied with the shortage of developers; and we would all go home earlier. But we have a few clues, and can also draw some hope from recent advances in tools, techniques, and standards.

Alan Brown's book does an excellent job of summarizing these advances clearly and comprehensively. Most software books belong to one of two categories: technical presentations directed at developers or management analyses intended for superiors. Although there is nothing wrong with either of these, the present work distinguishes itself by bringing elements of interest to both audiences while studying the confluence of three trends: application development, the Internet, and the rise of components.

Application development today is subject to considerable pressures. On the business side, the rule of thumb is to support the kind of constant, institutionalized change that has become the norm in much of the corporate world. On the user side, everything must be available all the time everywhere to everyone through the World Wide Web—without endangering the integrity and security of the critical business processes thus exposed to the whole wide world. On the human resources side, we must do with the limited pool of software talent available, and survive if the competition steals our best developers overnight. And, as if this weren't enough, we can seldom afford to do what we have been taught in Software Engineering 101. Even though the dream of any self-respecting software professional is to build a beautiful system from scratch, much of what we actually do is to wrap, rewrap, and wrap again some "legacy" code bequeathed to us by our predecessors.

The Internet doesn't just mean instant global connectivity; it also raises the stakes in almost all enterprise development today, requiring every application to include all the possible components—business logic, one or more (commonly several) Graphical User Interfaces, middleware, distribution, database, security, scalability, a built-in plan for evolution, and interfaces with many other systems from within and without the company.

Component-based development seems a required part of any solution. Born of the marriage between the high-flying software engineering principles of object technology and the initially humble "user controls" of the Windows world, components bring, to the legacy issue, the promise of clean, disciplined rewrapping; and, to new developments, the promise of modular, pluggable, evolutionary elements with impeccable interfaces to the rest of the world. Bring in intercommunication standards, and we are on our way to a new era of application development.

On our way only, since we must still master a dizzying variety of technologies, standards, metastandards, and standards on interconnecting standards, so numerous in fact as to make the old joke ("We love standards, and what we love most about them is that there are so many to choose from") lose any irony and become an objective description of the daily reality in the world of components and middleware. Alan Brown does a marvelous job of guiding the reader through the forest of technologies and acronyms, from EAI to ERP, EJB to RMI, UML to XML, RPC to MOM, and many more. Throughout the discussion, he brings together the technology and its application to business needs, illuminating component-based Internet enterprise application development to those of us who are developers, those of us who are managers, and those of us who are a little of both.

—Bertrand Meyer