1.1. Enterprise Computing Defined
The term "enterprise computing" raises many different images in people's minds: big,
sterile-looking corporate data centers filled with humming servers ; complex financial
systems stretching across the globe; elaborate multilevel software systems running a
stupefying amount of code distributed across many servers, locations, companies,
countries, even (in the case of NASA's Mars Rover project) planets.
All of these images are true, to a degree. But they're all imprecise to a degree as well.
Enterprise computing can be done on a single student's laptop as well as in a big corporate
data center. It can be used in a small mom and pop business with a single storefront as
well as in a huge multinational. It can be done just as effectively with a very small amount
of code as it can with huge code repositories.
At its heart, enterprise computing is all about combining separate applications, services,
and processes into a unified system that is greater than the sum of its parts. The rest is
context that determines how you go about accomplishing this basic goal.
Anyone can write enterprise applications, not only because of the generalized nature of
enterprise computing but also because the tools and techniques for developing enterprise
systems have matured to the point that this domain is accessible to a much broader group
of software developers. Many of the arcane details have been smoothed over by standards,
well-defined APIs, and really powerful tools. This has made enterprise computing less
scary and a lot more fun.