In a previous technology life I was fortunate enough to create really fun software targeted at the web. The fun part was creating logical units of work that could run independent of the container to which they were published. Other developers could then reuse the components within their own applications internal to the company. Advancements in web technology spawned many building blocks which were created at first for internal consumption and then much later for public consumption. The adoption and creation of the web mashup was born. Standard protocols are what made this possible. As a developer I now had a ton of flexibility and tools to create applications built for consumption, regardless of whether they were published internally or externally. The flexibility of the components alone was impressive; the only frustrating aspect was the lack of clear direction to what or how I should proceed. As with all technology adoption, timing is everything. Today we have a number of applications that are made completely of other services, but organized in a way that makes sense for a given business application.