You can use Microsoft Lync 2010 SDK to add Microsoft Lync 2010 features into your line of business application client or you can create a client application dedicated to giving you a custom collaboration client like Lync 2010. In either case, Lync 2010 must be a running process on any client computer that hosts your Lync 2010-enabled application.
A client application you create using this SDK is capable of interoperating with Microsoft Lync Server 2010. In addition, your Lync 2010-enabled client application interoperates with remote users on Lync 2010.
A custom Lync SDK client relies upon the client process running within Lync 2010. If Lync 2010 is not running, your custom client cannot obtain an instance of the class. When a user signs in to Lync Server 2010 using your custom client, it is actually causing the Lync 2010 client process to issue the sign-in request to Lync Server 2010 on behalf of the user.
Lync 2010 can support multiple instances of a custom client running on one computer with some restrictions. A user can only attempt to sign in to Lync Server 2010 from one client. Once a user is signed in using a custom Lync SDK application or Lync 2010, other clients must use the established communication session. If a user signs in to Lync Server 2010 from a custom Lync SDK client, Lync 2010 uses the newly established session to update its user interface as though a user had signed in from the Lync 2010 client.
You can suppress the user interface of Lync 2010 so that a user experiences only the user interface presented by your custom Lync SDK client. When you do this, your custom Lync SDK client is still using the client process that underlies the Lync 2010 user interface.
Multiple instances of a custom Lync SDK client can run concurrently. If a user is signed in to Lync Server 2010 using Lync 2010, your custom Lync SDK client must not attempt to sign in again. However, each instance of your custom Lync SDK client still has access to the client process running within Lync 2010.
The following figure illustrates the relationship between collaboration processes running on a local client that hosts your application.