Distributed Components
Gigantic mainframes run monolithic software. With client/server and distributed computing technologies, you can distribute work and develop less monolithic applications. Before you learn about distributed components, let’s first examine how to make software less monolithic.
One technique is simply to develop special purpose modules, or static libraries. Applications use these static libraries by linking with them. With static libraries, you gain reusability at the source level. Notice that you also gain maintainability with a static library, because it contains a lump of code with a well-defined purpose. You build applications by integrating a number of these static libraries, allowing your application to become less monolithic. That’s fairly good—but not good enough.
Unlike static libraries, component technology supports the notion of pluggable components. Look at Figure 1-6 and consider this scenario. I have two mother boards that I want to sell. Board A has all the peripherals (CPU, RAM, video, sound, modem) built-in. Furthermore, there are no expansion slots. Board B is a Pentium 60, upgradable to Pentium 90. It has 16MB RAM, expandable to 128MB. And by the way, it has 3 ISA slots and 4 PCI slots. If you buy board B, I’ll throw in a cheap video, modem, and sound card. Board A cost $40 and board B cost $50. Which mother board would you buy? Of course, you’d buy B. Why? Because A is hideously monolithic, and B supports the notion of component plug-ins.
Figure 1-6. Which ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access