The Design of Component-Based Systems

This chapter from Building Systems from Commercial Components illustrates the authors' approach to the design of component-based systems through a model problem: are there any applet ensembles that will work with both Internet Explorer and Netscape Navigator?

This chapter is excerpted from Building Systems from Commercial Components.

...no plan of operation can extend with any prospect of certainty, beyond
the first clash with the hostile main force. Only a layman can pretend to trace
throughout the course of a campaign the prosecution of a rigid plan, arranged
beforehand in all its details and adhered to the last. All successive acts of
war are therefore not pre­mediated executions but spontaneous acts guided by
military tactics.
­Field Marshal Helmuth von Moltke, "the Elder"

This chapter describes the initiating
design question. It identifies a main design thread is identified, along with a
more promising but speculative contingency plan. The case study describes an
attempt to demonstrate the viability of this contingency plan.

13.1 Where are We?

The close of Chapter 12 posed a number of questions about how to transform
the unstructured manifest depicted in Figure 12-3 into something more tangible.
At root, each of these questions tries to clarify the implications of a number
of a priori technology commitments.

During the earliest stage of the design two overall approaches surfaced. The
first approach used Web server scripting to produce dynamic Web content and to
act as a gateway interface between browsers and back-end DIRS services. The
second approach used Java applets running in browsers to communicate with DIRS
services. Each approach had its strengths and weaknesses:

The Web server scripting approach promised to be easy to
implement, at least in the early stages. On the other hand, there were concerns
that the approach would lock the project into a proprietary scripting language,
this was dangerous considering how fast that segment of the
technology market was changing. There were also worries about the long-term
maintainability of this approach.

The applets approach promised to be a flexible way to deliver
applications to geographically distributed users. This design also made fewer
commitments to vendor­specific features of either HTTP browsers or servers. On
the other hand there were serious concerns about the performance and security
attributes of this approach.

After much gnashing of teeth, the project architect committed to the server-side
approach, while simultaneously exploring the feasibility of the applet approach.
If its feasibility could be demonstrated before the server-side approach had
progressed too far, a switch-over could be effected without impact to the overall
project schedule. There was, after all, considerably more development on other
aspects of DIRS. The case study begins in earnest from the situation depicted
in Figure 13-1. The
main design branch was the Server-Side JavaScript (SSJS) ensemble, while the
main contingency was the applet ensemble.