From a service provider’s perspective, there are a few principles to keep in mind when envisioning and building architecture:
1. You go to them. Building consumer oriented services involves standing the traditional view of the Internet on its head. Users and providers are accustomed to thinking of the Web as being akin to a physical world with familiar, if figurative, laws of physics: to get information or make use of a service, you visit the location where it “lives” and consume it there. A URL is like a street address that marks the location in virtual space where the resource can be found, and the browser is the means of transportation by which users travel from place to place.
The ideal consumer oriented service, by contrast, is designed to come to the user. To consume and distribute it, the user can simply drop the service into his or her SNS profile or page, or send it to friends in a message. For example, several services allow users to embed streaming video in a Web page simply by adding a few lines of HTML code, something even novice users can do. Savvy users and sites can modify the presentation of standards-compliant services so things like controls, text labels, and backgrounds can be visually integrated with the rest of the hosting site without changing the service’s underlying functionality. By making services available for seamless embedding in this manner, you can reach the large subset of casual users who would not make the affirmative decision to visit your site directly.
2. Build services that integrate into users’ daily lives. As discussed earlier, more people are using the Internet for lifestyle-related purposes, in addition to simple information retrieval. People go online to connect with friends, coordinate their “offline” activities, play games, fall in love, and do any number of other things to pursue entertainment options and manage various aspects of their lives. Think about how you can build services that can integrate into users’ virtual living spaces.
3. Leverage user activity to improve your service. Think of users not only as consumers, but as potential contributors to a “read/write” service. Through participatory mechanisms like tagging, evaluation, and commenting, users construct valuable metadata that you can use to classify your offerings and extend their reach. In addition, by incorporating the idea of user context, you can leverage user requests to create additional metadata of your own.
4. Expose everything to the public so users can handle it freely. Openness is the key to creating a service that can change and evolve over time. Providing users, developers, and other providers with an open, well documented, self-service interface can lead to your services being used in ways you never dreamed of, helping you take advantage of even more of the long tail.
With that in mind, there are a few architectural considerations as shown in the diagram below.
In addition to the users that consume the service and the various providers that interface with it, this architecture comprises seven components:
· Core service: The essential component of your service that provides users with access to information, functionality, or both.
· Management: The mechanism by which administrators can configure and operate the service from within designated environments and platforms.
· Composition: Packages features into multiple services at the user and provider levels.
· Programming: Provides developers with a public API they can use to enhance the original service.
· Delivery: Determines how your service is presented for consumption.
· Consumption: Dictates how users access your service themselves.
· Propagation: Decides how, and if, users are allowed to share and distribute access to your service on their own.