1.1. Enterprise Computing DefinedThe 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. |