Uncategorized

Lync 2010 クライアント開発入門 : はじめに

最新の Skype for Business のクライアント開発では、REST/JavaScript ベースの Skype Web SDK (または UCWA) が使用できます。

Lync 2010 クライアント開発入門

こんにちは。

Microsoft Conference 2010 で紹介した Lync 2010 開発についていくつか質問を受けましたので、Lync 2010 SDK を使ったクライアントサイドの開発について記載したいと思います。(Microsoft Conference 2010 では、Exchange と SharePoint の開発を中心にお話しました。)

まず、Lync  による開発の全体像をつかんでいただくため、下記に、Microsoft Conference 2010 (の私の担当セッション) で説明したスライドを再掲します。

左側が現状の Office Communications Server 2007 ベースでの開発、右側が新しい Lync Server 2010 での開発、上段が Middle-tire / Service-tire での開発、下段がクライアントサイドの開発を意図しています。(この他に、Speech API など、API スタック層のいくつかは省略しています。)

まず、上段の UCMA (Unified Communications Managed API) ですが、この API を使用すると、Lync Server (または Office Communications Server) の基盤を使用して、自動応答の bot のような Inbound アプリケーションや、自動アラートなどの Outbound アプリケーション、コールセンター向けのワークフロー構築、さらには、音声から文字列への変換をおこなう ASR (Automatic Speech Recognition)、その逆の TTS (Text to speech)、音声情報に応じた複雑な自動応答 (IVR) のアプリケーションなど、「Lync らしさ」に溢れた先進的なアプリケーションが構築できます。この UCMA ですが、リファレンスやサンプルを見ていただくとわかりますが、SIP やプレゼンス関連のプロトコル、VoiceXML など、使いこなすには、この分野や Lync Server に関するある程度の専門知識 (前提知識) が必要です。
IM や Voice 関連の知識に疎い開発者がすぐに使いこなせるような容易な API ではありませんが、UCMA 3.0 になって、いくつかの処理は、以前より簡素に構築できるようになっています。 (たとえば、プレゼンス関連では、XML のパースは不要になっています。)
また、UCMA 3.0 では、B2BUA 開発のサポート、Call Park (「保留」して番号を割り振り、他の人が取れる機能) の提供、ASR/TTS のサポート言語が 26 言語に拡張 (従来は 12 言語でした。ちなみに、「日本語」は Office Coomunications Server 2007 で既にサポートされています) など、エンタープライズ系の機能強化に加え、Lync 2010 の Conversation Window 拡張との連携、Contextual Conversation (これらについては、この連載でも記載したいと思います) など、Lync Server 2010 の最新機能にも対応しています。

補足 : UCMA を使って、SIP エンドポイントを持ったクライアント開発もおこなうことができます。(ただし、UCMA Runtime、または Lync Server が必要です。)
製品情報に関する Web 上での問い合わせなど、Lync クライアントを使用せず、独自の IM 画面を使った Web アプリケーション開発をおこなう場合などでは、こうした手法を使うことができます。(この連載では、UCMA を使ったアプリケーション開発については説明しません。)

補足 : Lync Online 2010 では、UCMA を使ったアプリケーション開発はサポートされない予定です。Lync Online では、この連載で説明する Lync SDK を使った開発をおこなってください。

補足 : UCMA 3.0 を使用した開発については、「UCMA 3.0 アプリケーション開発 事始め (Startup)」に掲載しました。(2011年04月05日 追記)

さて、この連載では、Lync Online も見据えた開発の説明をしたいので、より簡単な、下段 (上図) のクライアント開発に注目して説明します。

まず、Office Communications Server 2007 / 2007 R2 (および、Office Communicator 2007 / 2007 R2) の開発では、上図の左側のように、目的に応じていくつかの API セットが提供されていました。簡単に説明すると、以下のような感じです。

  • UCC API (Unified Communications Client SDK)
    この API セットは、クライアント側の処理の基礎 (低レイヤー) を扱う API です。例えば、CAD 図面を共有しながら対話できるアプリケーションなど、Office Communicator と同じようなカスタムなクライアントを自作したい場合には、この API セットを使うことができます。
  • Communicator SDK
    こちらは、Office Communicator クライアントをハンドリングする API セットであり、さらに上のレイヤーの機能を利用できます。例えば、UI Automation による外部アプリケーションからの Communicator の操作などが可能です。
  • ActiveX ベースのコントロール
    プレゼンスをはじめとするコントロールは、ActiveX コントロールとして提供されています。(Office Communicator のクライアント コンポーネントと連携して動作します。)
    ただし、ActiveX ベースのため、Silverlight 上でプレゼンスを表示したい場合などには、かなり難しくなることがお分かり頂けるでしょう。

上記で「Silverlight の場合は困難」と書きましたが、Web アプリケーションでクライアント開発をおこなう場合は、AJAX 用の API (Unified Communications AJAX SDK) が提供されていて、Communicator Web Access への処理なども可能です。(UC 関連の API については、大西 が、イベント / セミナーなどでも紹介していますので、過去の Web キャストなどを参考にしてみてください。)

これらの API 群の特徴は、上述の ActiveX コントロールも含め、基本的には COM ベースの機能であり、.NET 開発用にラッパーが提供されているという点をおぼえておいてください。これが Lync 2010 ベースになると、統一された Full Managed の .NET API となり、Silverlight 用のコントロールなども提供されているという点が、大きな進化のポイントです。

注意: 旧 API で構築されたアプリケーションも Lync の環境で動作しますが、いくつか注意点があります。これらは、「Migrating from Microsoft Office Communications Server 2007 R2 to Microsoft Lync Server 2010 に記載されているので参照してください。(結論を言うと、UCC API、UC AJAX API などで構築された既存アプリケーションは、徐々に新しい API に移行を進めてください。。。)

ということで、昼休みも終わってしまったので、次回以降、この Lync 2010 SDK を使った開発手法の代表的なものをいくつか紹介し、その進化を具体的に見ていきましょう。

 

関連ナンバー

Categories: Uncategorized

Tagged as: ,

9 replies»

Leave a Reply