...

Instant Messaging/Web Conferencing(Sametime)ツールキット とアプリケーション連携のご紹介 2003年11月 日本アイ・ビー・エム株式会社

by user

on
Category: Documents
36

views

Report

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回
Fly UP