Scenario One: Contextual Collaboration
Go back to the first example with the RFP from a client. Most likely, in any human process, some level of human interaction will be required. When Cheryl gets the RFP from the client, OBA may cull relevant data and automatically generate both the proposal and the workflow to route it. But before sending it out, Cheryl may need to chat with Ladd first because it's a really, really hot order and (as they always do) has some unique twist that the system hasn't anticipated.
Without UC, Cheryl would have to stop everything (now where was that "save but don't send" button?) while she did the phone tag thing. But by combining OBA with UC, Cheryl can see Ladd's presence information from within her SharePoint app, start an IM conversation or voice call, and include context about the RFP, a process called "contextual collaboration." She can then initiate an IM chat from within the app itself. And using OC 2007 with OCS 2007 she can switch modalities on the fly. Is the IM not cutting it? She can click a button and get voice, too.
This is one of the simplest ways to combine the two architectures. If you have Microsoft Office Communications Server 2007 (OCS) deployed, with Microsoft Office Communicator 2007 (OC) on the client side, then you can use the OC SDK to automate OC 2007 to launch communications sessions. Or you can use the Microsoft Office Communicator 2007 Presence Controls custom controls that you can drag and drop into your Visual Studio applications.
Scenario Two: Contextual Tab
Another way you can combine the two without messing with the server or doing any heavy coding is to register events with Office Communicator 2007 so that relevant information gets pulled into a Communicator tab, otherwise known as a Contextual Tab. For example, suppose "Click on contact" has been registered as an event in Office Communicator 2007. Cheryl clicks on the client name with Office SharePoint. Office Communicator 2007 handles that click event and opens a custom tab that pulls relevant customer info from her CRM app, including current activity, account level, primary contact, most recent calls, etc. In the same context, she can right-click or navigate a custom menu to initiate a call, which as mentioned would be handled through Office Communicator 2007 via VoIP.
Scenario Three: Integrated Web Applications
The first two scenarios involve very little coding outside of integrating controls. But if you want to step it up a notch, Microsoft provides abundant resources for both OBA and UC. In fact, the various elements of UC are built on systems that Microsoft has opened up for developers, such as an AJAX API that was used to build Microsoft Office Communicator Web Access. The many SDKs of UC are described here. But continuing with the AJAX example, you can use the AJAX API to display presence information in your web app. Create a contact list or conversation window, for instance, within the app itself. So when Cheryl needs an update on the RFP approval process, she might go to a status page built using ASP.NET, on which is listed the contacts involved in this process alongside their presence information.
For this example, you would need to deploy an Office Communicator Web Access server role and use the Microsoft Unified Communications AJAX SDK to understand the HTTP Response XML..
Scenario Four: Automated IM Agent and Voice Recognition
One of the primary goals of OBA and UC, both separately and together, is to reduce "human latency", i.e. phone tag, e-mail lag, scheduling conflicts, etc. Even streamlining processes, such as by integrating federated data into a single contextual repository, may not be enough. But what if you were able to combine that data integration with communications tools like instant messaging by building an intelligent IM Automated Agent that presented the information needed for decision-making in a streamlined Q&A tree?
For example, Cheryl needs to know discount breakpoints for a new product line. Ladd might not have the time for a voice conversation, or even a perusal of a web app that collates the data he needs. Cheryl circumvents the traditional call-and-response by letting the SharePoint workflow initiate an IM session based on Ladd's presence. An Automated IM Agent, a server process that communicates via an IM conversation, presents the request for information and offers Ladd a quick way to check for any data he may need to provide the answer. By navigating a simple text menu, he can get current inventory from a third-party LOB app, find previous orders for that SKU from a SQL Server database, and finally fulfill the request by updating SharePoint with a specified breakpoint price. This final step would also complete the workflow, which would send Cheryl an e-mail or IM alert to finish out the bid.
As you can guess, this type of scenario represents a deeper level of complexity. To build this system you would use OCS, OC, the UCMA API, and the OCS 2007 Speech Server, which includes developer tools. You would also need to set up a robust staging environment, as well as a trusted bot account.
Scenario Five: Third-party Integrated Products
How deep do you want to go? With this architecture, your options aren't limited to add-ins and custom controls. Since the UC APIs have been opened to developers via a series of product-specific SDKs, you can create entirely new client applications. For example, one company recently used the Unified Communications Client API, or UCCA API, to add conversation and client list functionality to a client-side product using OCS as the communications infrastructure and SIP as the data transport..
This final scenario presents more challenges than the others, but the rewards can be that much greater. Using the various available SDKs, third-party developers can build communication into their apps by having the app affect presence, create custom contacts lists, present presence and contacts in a unique way, even replace Microsoft Office Communicator 2007 functionality altogether so that conversations take place through the app itself. In other words, for IM, video, conferencing, etc, use SIP as a data transport to deliver data between your applications. For example, give Cheryl and Ladd a video conferencing app in which they can view and manipulate 3D models of their products with a business prospect, collaboratively and in real-time.
Where to Go From Here
To play in this space, your biggest challenge will probably be evaluating the architecture in the first place. To that end, Microsoft is working on a distributable virtual lab environment so you can set up client/server VPCs for building and experimenting with the UC architecture in particular. Stay tuned for more information about that in the coming months.
In the meantime, you have plenty of resources already available to get you started:
* This article was commissioned by and prepared for Microsoft Corporation. This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.