Instant Messaging/Web Conferencing(Sametime)ツールキット とアプリケーション連携のご紹介 2003年11月 日本アイ・ビー・エム株式会社
by user
Comments
Transcript
Instant Messaging/Web Conferencing(Sametime)ツールキット とアプリケーション連携のご紹介 2003年11月 日本アイ・ビー・エム株式会社
® IBM Software Group Instant Messaging/Web Conferencing(Sametime)ツールキット とアプリケーション連携のご紹介 2003年11月 日本アイ・ビー・エム株式会社 ソフトウェア事業部 ロータス技術部 IBM Software Group | Lotus software はじめに 本資料の記載内容は、正式な IBM のテストやレビューを受けておりません。内容について、 できる限り正確を期すよう努めてはおりますが、いかなる明示または暗黙の保証も責任も負 いかねます。本資料の情報は、使用先の責任において使用されるべきものであること、あら かじめご了承ください。 掲載情報は不定期に変更されることもあります。他のメディア等に無断で転載する事はご遠 慮ください。 本資料の著作権は日本アイ・ビー・エムにあります。非営利目的の個人利用の場合において、 自由に使用してもかまいませんが、営利目的の使用は禁止させていただきます。 IBM、はIBM Corporationの商標。 Lotus、iNotes Web Access、Domino Web Access、Lotus Instant Messaging/Web Conferencing、Lotus SametimeはIBM-Lotusの商標。 Microsoft、Internet Explorer、はMicrosoft Corporationの米国およびその他の国における商 標。 その他、記載された社名および製品名は、それぞれ各社の商標または登録商標です。 IBM Software Group | Lotus software 本日の内容 ツールキットの概要 Webアプリケーションとの連携 Lotus Notes/Dominoアプリケーションとの連携 Botsのご紹介 IBM Software Group | Lotus software ツールキットのご紹介 ツールキットの目的 ツールキットの種類 基本機能とサービス 各サービス概要 ツールキットの分類 各ツールキットの特徴 ツールキットの選択 IBM Software Group | Lotus software ツールキットの目的 Lotus Instant Messaging/Web Conferencing(以下、Lotus Sametime)アプリケーションの開発、他のアプリケーションへのLotus Sametime機能の統合を容易に 他のコラボレーション・ソフトウェアにはない柔軟なアプリケーション開発、 統合環境を提供 プログラミング言語、プラットフォーム、必要な機能に応じて多彩な Toolkitを提供 IBM Software Group | Lotus software ツールキットの種類 クライアントサイド・ツールキット Java ツールキット C++ ツールキット COM ツールキット Sametine Links ツールキット サーバーサイド・ツールキット Community Server ツールキット Directory and Database Access ツールキット Chat Logging ツールキット IBM Software Group | Lotus software 基本機能とサービス コミュニティーサービス 在籍確認(Awareness) 誰がオンラインかを識別(Who is online) 誰が関連するドキュメントにアクセスしているかを識別(Who is here) 会話(Conversation) インスタントメッセージ 音声/動画 オブジェクト共有(Shared Objects) ホワイトボード アプリケーション共有 ミーティングサービス IBM Software Group | Lotus software 各サービス概要(1) コミュニティーサービス サービス名 機能 Community サーバー上のコミュニティーにログオン/ログオフ Announcement ログオンしているユーザーに対してブロードキャスト Awareness ユーザー/グループのオンラインステータスの取得 Buddy List サーバーに格納されているコンタクトリストの取得/表示 File Transfer ユーザー間でのファイル送受信 Instant Messaging ユーザー間でのテキストメッセージ送受信 Places 仮想的なプレースの生成/管理 Storage ユーザー関連の情報を属性として格納/検索 Lookup 不完全なユーザー名/グループ名の名前解決 Directory ディレクトリの表示、ユーザー/グループの検索 Post 多数のユーザーに対してブロードキャスト Token 認証のためのトークン作成 Names ニックネームやユーザーの区切り文字を設定 IBM Software Group | Lotus software 各サービス概要(2) ミーティングサービス サービス名 機能 Application Sharing アプリケーション/画面の共有、操作権の許可 Whiteboard 描画ツールを使ってコンテンツの作成、複数ユーザーから のアクセス許可 Streamed Media Interactive ミーティング時に各ユーザー間での双方向の画像/音声 の使用/制御 Streamed Media Broadcast ミーティング時に各ユーザー間での片方向の画像/音声 の使用/制御 IBM Software Group | Lotus software ツールキットの分類 – 言語別 Java Java C++ COM STLinks ○ ○ C++ ○ Visual Basic VBA ○ JavaScript ツールキットの分類 – プラットフォーム別 Java JRE1.1 C++ COM ○ ○ ○ Win32 Native ○ Web Lotus Notes/Domino STLinks ○ (Applet) ○ (DLL) ○ (ActiveX) ○ (JavaScript) IBM Software Group | Lotus software ツールキットの分類 – 機能別 Java C++ Community ○ ○ Announcement ○ ○ Awareness ○ ○ Buddy List ○ ○ File Transfer ○ ○ Instant Messaging ○ ○ Places ○ ○ Storage ○ ○ Lookup ○ ○ Directory ○ ○ Post ○ ○ Token ○ ○ Names ○ ○ COM STLinks Java ○ ○ Application Sharing ○ ○ ○ Whiteboard ○ Streamed Media Interactive ○ Streamed Media Broadcast ○ ○ ○ ○ C++ COM STLinks IBM Software Group | Lotus software Java ツールキットの特徴 Javaアプリケーション、Javaアプレットとして実装 長所 Toolkitの中で最も多くの機能、プラットフォームをカバーしている スレッドセーフ オブジェクト指向 モジュール型アーキテクチャ ユーザー・インターフェース・コンポーネントの提供 短所 起動時間がかかる(Java Appletの最初の起動時) IBM Software Group | Lotus software Java ツールキットのデモ IBM Software Group | Lotus software C++ ツールキットの特徴 スタティックライブラリとしてのみ提供 長所 スレッドセーフ オブジェクト指向 パフォーマンス 短所 サービスのカバレッジが少ない ツールキット自体にはユーザーインターフェイス機能がない IBM Software Group | Lotus software C++ ツールキットのデモ IBM Software Group | Lotus software COM ツールキットの特徴 Microsoft COM Addinとして機能 長所 Microsoft Visual Basicアプリケーションとして開発可能 VBAを使用してMicrosoft Officeに統合可能 短所 サービスのカバレッジが少ない(C++ ツールキットのサブセット) 使用する環境ごとにCOM Addinとしてのインストールとセットアップが必要 Visual Basicアプリケーションの場合ランタイムも必要 IBM Software Group | Lotus software COM ツールキットのデモ IBM Software Group | Lotus software STLinks ツールキットの特徴 JavaScriptを使用して実装 長所 簡素なAPI インストールの必要がない HTML/JavaScriptによりUIを自由にカスタマイズ可能 短所 サービスのカバレッジが少ない IBM Software Group | Lotus software STLinks ツールキットのデモ IBM Software Group | Lotus software ツールキットの選択 C++:Windowsネイティブアプリケーションへの統合もしくは、パフォーマンスが 最重要な場合 COM:Microsoft OfficeまたはVisual Basicアプリケーションへの 統合が必要な場合 STLinks:Webページへ埋め込みたい場合 Java:他を選択すべき理由がなければ … IBM Software Group | Lotus software Web アプリケーションとの連携 STLinks ツールキットでの組み込み Java ツールキットでの組み込み IBM Software Group | Lotus software STLinks ツールキットでの組み込み(1) JavaScript / HTML での簡易組み込み パフォーマンス重視 約30Kのアプレットをダウンロード コミュニティーサービスだけの使用 アウェアネス インスタントメッセージ クライアントでのインストール作業が無し IBM Software Group | Lotus software STLinks ツールキットでの組み込み(2) HTMLファイルへの組み込み 準備作業 <LINK REL=STYLESHEET HREF="/sametime/stlinks/stlinks.css" TYPE="text/css"> <SCRIPT src="/sametime/stlinks/stlinks.js"></SCRIPT> <SCRIPT>setSTLinksURL("/sametime/stlinks",“ja","/sametime/stlinks")</script> ログイン <SCRIPT>writeSTLinksApplet(loginName, password, false)</script> ユーザー名の表示 <SCRIPT>writeSametimeLink(loginName, loginName, true, "icon:no")</script> IBM Software Group | Lotus software IBM Software Group | Lotus software Java ツールキットでの組み込み(1) Java アプレットでの組み込み STLinks にないサービスを使う必要がある コミュニティーサービス • Buddy List , File Transfer etc ミーティングサービス クライアントでのインストール作業がなし IBM Software Group | Lotus software Java ツールキットでの組み込み(2) アプレットの作成 必要なパッケージのインポート Import com.lotus.sametime.core.comparch.STSession; Import com.lotus.sametime.core.comparch.DuplicateObjectException; Import com.lotus.sametime.community.*; セッションオブジェクトの作成 try { m_session = new STSession(“HelloWorldApplet” + this); ………. ………. } catch (DupulicateObjectException e) { e.printStackTrace(); } IBM Software Group | Lotus software Java ツールキットでの組み込み(3) 必要なコンポーネントの追加 m_session = loadAllComponents(); * 全てのコンポーネントをロードするメソッド 開始と終了 セッション、コンポーネントは使用する前に開始させる アプリケーション終了時に、終了とアンロードをさせる m_session.start(); m_session.stop(); m_session.unloadSession(); IBM Software Group | Lotus software Java ツールキットでの組み込み(4) ログイン、ログアウト m_comm = (CommunityService)m_session.getCompApi(CommunityService.COMP_NAME); ・ getCompAPIメソッド : 名前に基づいてコンポーネントの参照を要求 ・ STSessionは要求されたコンポーネントタイプを識別できないので、正しいキャストが必要 /* ログインメソッド */ m_comm.loginByPassword(“server” , “UserName” , “password”); /* ログアウトメソッド */ m_comm.logout(); IBM Software Group | Lotus software Java ツールキットでの組み込み(5) HTML への組み込み <applet align=center code=Applet.class width=300 height=300>; <param name=“loginName” value=“login")> <param name=“password” value="password “> <param name=“archive” value=“../bin/STComm.jar, ../bin/CommRes.jar”> <param name=“cabinets” value=“../bin/STComm.cab, ../bin/CommRes.cab”> </applet> IBM Software Group | Lotus software IBM Software Group | Lotus software Notes / Domino アプリケーションとの連携 R5/6でのアプリケーション組み込み 6.5でのアプリケーション組み込み IBM Software Group | Lotus software R5/6でのアプリケーション組み込み(1) Java ツールキットでのアプレット組み込み Lotus Sametimeに付属のディスカッションDB、チームルームDBと同様なアプリケー ション フォーム、サブフォーム、ページへの組み込み コミュニティーサービスの使用 ミーティングサービスを使用する場合はブラウザ起動 Notes ID を使用したシングルサインオンも可能 トークン値を使用 IBM Software Group | Lotus software R5/6でのアプリケーション組み込み(2) スクリプトライブラリの作成 SametimeHost、SametimeAgent、SametimeClient、SametimeStrings エージェントの作成、署名 SametimeGetHost、SametimeQueryOpen フォームの作成 トークン値の設定するフィールドを追加 コードベースを設定すrフィールドを追加 PostOpenイベントへのコード作成 • トークン値とコードベースの取り込みコード IBM Software Group | Lotus software (参考) Dim token As String Dim doc As NotesDocument Dim item As NotesItem Dim host As String Dim codebase As String Set doc = Source.Document token = SametimeProfileGetToken() Set item = doc.ReplaceItemValue("stToken", token) Call SametimeRemoveTokenRecord() host = SametimeGetHostFromNAB() codebase = "http://" + host + "/sametimeapplets/" Set item = doc.ReplaceItemValue("sametimeCodebase", codebase) IBM Software Group | Lotus software R5/6でのアプリケーション組み込み(3) アプレットの作成 パラメータとして、ホスト名、ユーザー名、トークン値、コードベースなどを取り込む アプレットの貼り付け フォーム、サブフォーム、ページなどに貼り付け パラメータの設定 • • ユーザー名(@UserName) トークン値(トークン値フィールド)など IBM Software Group | Lotus software IBM Software Group | Lotus software 6.5でのアプリケーション組み込み(1) ツールキットの必要なし! コアに連携機能が組み込み済み! デザイナーのみで組み込み可能! IBM Software Group | Lotus software 6.5でのアプリケーション組み込み(2) 名前フィールドでの在籍情報表示 ビューの列での在籍情報表示 IBM Software Group | Lotus software 6.5でのアプリケーション組み込み(3) 埋め込み設計要素としてコンタクトリストが追加 フォーム、ページに埋め込み IBM Software Group | Lotus software Bots のご紹介 Auto-Robots のこと インスタントメッセージは人対人から人対アプリケーションへ Lotus Sametime の Instant Messaging 機能を用いていろいろな種類のバック エンドのデータを処理するエージェント Lotus Sametime コネクトクライアントをフロントエンドとして利用 コネクトクライアントからさまざまなデータにアクセス可能 バックエンドシステムに関する知識は不要 バックエンドシステムにアクセスできる端末を容易に拡大可能 利用頻度の高い単純なデータを取得するのに有効 社員名簿 – 電話番号、メールアドレスなどの検索 辞書 ユーザー認証/暗号化などはLotus Sametime側にお任せ アクセス先バックエンドシステムごとに認証/暗号化部分を開発しなくて良い IBM Software Group | Lotus software Bots のしくみ Bot コネクトクライアント Lotus Sametime サーバー Sametime API Backend System API バックエンド システム IBM Software Group | Lotus software Botsのコーディング概要 public class Bot implements LoginListener, ImServiceListener, ImListener, public void imReceived (ImEvent event) { イベントから Im インスタンスを取得 リスナーの追加 } { public Bot() { STSession インスタンスを作成し、開始 } public static void main (String args[]) { コマンドラインパラメタの取得 Bot インスタンスを作成 login(); } private void login (String server, String username, String password) { Community Service モジュールの取得 リスナーの追加 ログイン処理 } public void loggedIn (LoginEvent event) { InstantMessagingService モジュールの取得 リスナーの追加 } public void loggedOut (LoginEvent event) { ログアウト処理 } public void imClosed (ImEvent event) { チャットの終了処理 } public void imOpened (ImEvent event) { チャット開始の処理 } public void openImFailed (ImEvent event) { チャット開始が失敗した場合の処理 } public void dataReceived (ImEvent event) { // データ受信時の処理 -- Bot では使用しない } public void textReceived (ImEvent event) { チャットを受信したときの処理 受信した文字列の取得 文字列の処理 処理した文字列を送信者に転送 } IBM Software Group | Lotus software 参考情報 – Lotus Developer Domain http://www-6.ibm.com/jp/domino07/lotus/home.nsf/Content/ldd Samtime Toolkitsマニュアル Sametimeボット(bot)を作ってみよう 第1回 Sametimeボット(bot)を作ってみよう 第2回