I've been talking to developers about writing applications for the Unified Communications platform and I thought it would be useful to provide an overview of what makes up the platform and what you can do with it.
UC development is all about integrating communications into your applications. When you think about UC dev, think about the following capabilities:
Enabling Users to Communicate/Collaborate: As developers, we all want to create killer apps that our users can't live without. If you develop software for information workers, you've probably noticed that they spend all day in that application finding the information they need to make decisions or take some sort of action. You've also probably noticed that your users often spend a majority of their day using data from your application to work with other people on their team to reach consensus, drive decisions, etc.
How do they communicate using the data stored or displayed in your apps? Do they copy/paste information from your app and email it, waiting for a response? Do they call their coworker and tell them about the situation and wait for them to open the application, find the information in question, etc.? Do they print if off and walk over to the person's desk?
Now, what if the ability to communicate was built in to your app?
The UC development platform allows you to build communications using voice, video and IM (including multi-party conferencing in each mode) directly into your app. You can build presence into your app letting users see whether another user is available to discuss an issue just like the presence integrated into Outlook 2007 when Office Communicator 2007 (OC 2007) is installed. Once you have presence built into your app, you can let users launch voice, video and IM sessions using data from your application. Presence helps users avoid phone tag, voice mails and endless email threads by letting them communicate quickly based on availability. The ability to communicate using data from your application, or to collaborate using some context from your app, allows them to quickly zero in on the information they need to make a decision.
I've been using this feature as it's delivered in Outlook 2007 and OC 2007 and it's pretty addictive.
Building Communications UIs: UC development gives me the ability to reach users in new ways, accelerating business processes or making my applications more useful by allowing users to get information or make decisions in ways they couldn't in the past. I think of this as a new UI paradigm, where I can use IM and speech to reach users or to allow users to access information or business processes in my applications.
For example, I can use IM in my Windows Workflow apps to reach users to move the workflow to the next step. I can broadcast time sensitive information to groups of users to alert them to critical situation. I can build an IM service that is registered as a contact for users in OC 2007 so they can chat with that "IM Bot" just like it was another contact to query and get access to information quickly.
I can call users using any phone and text to speech (TTS) and automatic speech recognition (ASR) in Speech Server 2007 (built into OCS 2007) to move workflows along without forcing users to get on the network, log into my application, etc. I can allows users to call my applications and use TTS/ASR to allow them to get the information they need while mobile.
OK, so there are some really cool scenarios that I can enable once I've deployed OCS 2007/OC 2007 and started using the SDKs. How do those SDKs maps to these capabilities?
Office Communicator 2007 SDK: This SDK provides the ability to integrate presence into your applications and automate OC 2007 in order to launch voice, video or IM communications (including multiparty).
Unified Communications AJAX SDK: This SDK allows you to build presence and IM communications into your web apps using AJAX.
Unified Communications Managed API SDK: This is a library of managed classes that allow you to create server side or middle tier applications for SIP processing (incoming, outgoing or both). Use this API to send out broadcast IM, or use the API to register the presence of an IM Bot that works like a contact for users in OC 2007 and allows users to IM the Bot queries for quick access to information.
Speech Server 2007 Extensions for Visual Studio 2005: This API includes the SDK and designer for creating TTS/ASR applications using Speech Server 2007. Use this SDK to create applications that allow users to phone your application to get information or use the SDK to call users to drive the next step in a workflow.
Office Communications Server 2007 SDK: This API allows you to customize the SIP processing of OCS 2007 to add custom business logic. Examples include adding a custom disclaimer to IM conversations for legal or compliance reasons.
Unified Communications Client SDK: This SDK allows you to create your own SIP clients, such as a specialized IM appliatoin for a specific industry (finance, health care, etc.).
That’s a quick overview of the APIs. In the coming weeks, I’m going to blog about each with more details along with setting up a development environment for UC development. We’ve also got some cool samples coming, so I’ll blog about that as soon as we’ve got something cool to show.