Chapter 8

Playing Fast and Loose: Loose Coupling and Federation

In This Chapter

Unraveling software dependencies

Mixing and matching components through loose coupling

Hawking software services

Distributing software with federation

Automating software manufacturing

Both traditional packaged software applications (the kind you buy from some company somewhere) and extensive homegrown software systems (created specifically to solve particular problems for a particular set of people) share a common difficulty: They weren’t designed for substantive change. One pervasive characteristic that makes both kinds of applications especially brittle — prone to break easily — is the extent to which the various programs that constitute the software applications are intertwined. These programs depend upon each other for little bits of code; and without such bits, they can’t run. These dependencies were often created in the name of efficiency, especially in the days when hardware and memory were expensive.

Today, however, a change is taking place in the software industry: one that relies on fewer dependencies, more distribution of functionality, and a view of software as a subscription-based service. In this chapter, we examine these changes and how they enable software to be more responsive and flexible to rapidly changing demands.

Understanding Software Dependencies

Have you ever seen the children’s toy that has pictures of animals on cards, but the cards are divided into thirds — the top third ...

Get Service Oriented Architecture For Dummies®, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.