From an architectural perspective, instant messaging provided us a glimpse at some of the essential capabilities that later proved important for social networks. Unfortunately, the sheer momentum of artificially defined market segments can stay around for years and cause us to not see this as an evolution of social engagement and simply continue viewing these features as, well, … just features. However, by taking a broader perspective and learning lessons from these experiences, we can now see how these social services are applicable beyond IM systems as well as social networks.
From Features to Services
What many of us once thought were critical features of instant messaging, turned out to be the building blocks of richer online social interactions (as exemplified by social networks such as Facebook). These social services include:
- A social graph: IM systems use buddy lists. Social networks have friends or connections. More importantly, social networks also allow us to describe relationships with other entities, such as groups or applications.
- The changing definition of presence: IM systems describe someone’s presence in terms of online/offline or free/busy. Social networks can describe a richer form of online presence that highlights what is happening within someone’s life at that moment (through their status messages), the groups they are involved in, and can also indicate interest and experience (based on who and what they interact with).
- Controlling how people can interact with us (also known as relation controls): IM systems can limit who is allowed to send us messages or see our presence. Social networks have privacy controls.
The lesson learned here is architects need to start thinking of features such as a social graph, presence, and relation controls as reusable services that can be leveraged by applications beyond instant messaging and social networks. This includes not only consuming these services, but also enriching them as well.
For example, there are many contexts within a business application (e.g., a customer in a CRM system or a bill of materials in a product release system) that could use or enrich these services. Business applications should:
- Provide contexts that participate within a social graph (e.g., employees who have worked with a particular customer or products that have used a particular part or component)
- Provide contexts that have a "presence" (e.g., the changing state of a BoM or comments posted by others in response to an event)
- Honor or contribute to relation controls (e.g., who has permission to monitor this customer or this BoM?).
Our IT1 Reference Architecture already details a number of aspects to consider with these reusable social services. Look for further revisions to explore these topics more fully throughout the year.