IBM Lotus Sametime Connect 7.5

capybarabowwowSoftware and s/w Development

Oct 30, 2013 (3 years and 11 months ago)

83 views

IBM Software, WPLC

May 3, 2006

© 2006 IBM Corporation

IBM Lotus Sametime Connect 7.5

Integration Guide TechTalk

Dan Kehn

Lori Ott

IBM Software, WPLC

Sametime Connect 7.5 Integration Guide

© 2006 IBM Corporation

2

Today’s Agenda


Overview of Sametime Connect 7.5


Sametime Connect Demonstration


Sametime Connect and Eclipse


Sametime Connect 7.5 Architecture


Review of Sample Plug
-
ins’ Implementation

IBM Software, WPLC

Sametime Connect 7.5 Integration Guide

© 2006 IBM Corporation

3

Sametime 7.5

The next generation of real time collaboration


Breakthrough IM client


New look and feel


rich text, emoticons, spell check, etc.


Customizable branding*


Improved Web Conferencing


Easy to get into meetings


Updated UI


Advanced Organizational Collaboration


Instant polls


Reach out to a community of experts


Extensible client based on Eclipse


IBM and 3rd party plug
-
ins such as VOIP, Location Awareness, LDAP, etc.

* Beta does not include branding; it is planned for GA

IBM Software, WPLC

Sametime Connect 7.5 Integration Guide

© 2006 IBM Corporation

4

Unified Instant Messaging


Sametime Connect 7.5 is the first release of the new unified instant
messaging (UIM) client


All managed client products use the same Eclipse
-
based
WebSphere Everyplace Deployment (WED) platform


UIM is a set of common instant messaging and presence client
components for IBM managed client products, including Hannover
and Workplace Managed Client (WMC)

IBM Software, WPLC

Sametime Connect 7.5 Integration Guide

© 2006 IBM Corporation

5

Extending Sametime Connect 7.5


Sametime Connect 7.5 is built on Eclipse.


Integration Guide includes practical end
-
user extensions to
demonstrate how the product can be enhanced by third parties
using plug
-
ins.


Extensions allow seamless integration into the Sametime Connect
7.5 client user interface.

IBM Software, WPLC

Sametime Connect 7.5 Integration Guide

© 2006 IBM Corporation

6

Adding UI Extensions (Main Window)

Branding Areas

Live Names

Telephony

Action Bar

Actions Menu

"Mini apps"

Status Bar

IBM Software, WPLC

Sametime Connect 7.5 Integration Guide

© 2006 IBM Corporation

7

Adding UI Extensions (Chat Window)

Message Toolbar

Branding Area

Action Bar

Actions Menu

Telephony

Status Bar

Branding Area

IBM Software, WPLC

Sametime Connect 7.5 Integration Guide

© 2006 IBM Corporation

8

Sametime Connect 7.5 Demonstration

IBM Software, WPLC

Sametime Connect 7.5 Integration Guide

© 2006 IBM Corporation

9

What is Eclipse?


Sametime Connect client is composed of Eclipse plug
-
ins


Wait… Isn’t Eclipse an IDE?


Yes, but it is also a rich client application development platform


Architected with extensibility as one of the primary objectives


Plug
-
ins are the base functional unit (declarations + code)


Plug
-
ins define “extension points” where other plug
-
ins can contribute (e.g., menu items,
services)


Plug
-
ins can define extension points to allow other plug
-
ins to extend their
functionality


Sametime plug
-
in extension points are documented in the Sametime Client Toolkit


Extend the Sametime client by creating your own plug
-
ins that leverage the
Sametime plug
-
in extension points


Your plug
-
ins can access any services exposed by Sametime and the underlying platforms
(RTC API, Sametime Java API, WED, Eclipse, Java RTE)


Your plug
-
ins register listeners for events that they need to handle


Your plug
-
ins can define extension points for other plug
-
ins to use


See eclipse.org and jdg2e.com for more information

IBM Software, WPLC

Sametime Connect 7.5 Integration Guide

© 2006 IBM Corporation

10

Why the Extensible Client Model?



Plug
-
ins allow IBM, partner, and customer extensions


LDAP, softphone, video, etc


Advanced plug
-
ins (LDAP, Locations, Calendar look up…)


ISV Enablement team working with partners to “jumpstart” adoption
of Sametime 7.5


Managed beta partners (technical account manager / TAM)


Open beta partners (forum and e
-
mail support)


Integration Guide includes “reusable” examples that ISVs can adapt to their
needs.

IBM Software, WPLC

Sametime Connect 7.5 Integration Guide

© 2006 IBM Corporation

11

Examples of UI Extension Points*


Extend menus and toolbars in
other windows (chat history viewer,
n
-
way chat, etc.)


Extend Preferences UI using
standard Eclipse API


Branding of colors, fonts, icons
(coming soon)


Add plug
-
in actions to system tray
menu

* Beta does not include all the extensions planned for GA

IBM Software, WPLC

Sametime Connect 7.5 Integration Guide

© 2006 IBM Corporation

12

Sametime 7.5 Client Architecture (Eclipse base)

Eclipse 3.2 RCP

Platform Runtime

SWT

JFace

Perspectives

Help

Workbench

Sametime
Platform

IBM Software, WPLC

Sametime Connect 7.5 Integration Guide

© 2006 IBM Corporation

13

Messaging

Services

RT

Session

Buddy List
Storage

Directory

Privacy

Policy

SIP Stack *


Third
-
Party
Protocols *

UIM Client Architecture

Java 1.4.2 Runtime Environment (J9 jclMax)
(Sametime 7.5)

Eclipse 3.2 RCP

Credential
Store/SSO

Pre
-
Authenticated
Browser

Embedded
Browser

Network
Sensing

Localization

Spell Checker

User Interface
Components

...

Sametime Java API

Community Services

Chat
Storage

Telephony

Alert
Storage

User
Info

User Interface Components

WED 6.1 (WebSphere Everyplace Deployment)

Login

Chat

Presence

Real
-
Time
Sessions

Notification

Other
Tools

RTC (Real
-
Time Collaboration) API

OS
-
Specific
Services

Quick
Find

Storage
Service

Service and
Plug
-
in

Registry

Location
Service

Policy
Service

* SIP and third
-
party protocols not supported in Sametime 7.5

Capabilities

ST Connect Framework

IBM Software, WPLC

Sametime Connect 7.5 Integration Guide

© 2006 IBM Corporation

14

Sample Plug
-
ins


Quick Response*


Recent Buddies*


Buddy Note**


Acronym Expander


Snippets

* Sample plug
-
ins that will be presented today

IBM Software, WPLC

Sametime Connect 7.5 Integration Guide

© 2006 IBM Corporation

15

Quick Response Plug
-
in


What it does for the user:


Provides one
-
click button to answer common questions


What it demonstrates for the programmer:


Chat window integration using pop
-
up add
-
on


Adding chat toolbar action

IBM Software, WPLC

Sametime Connect 7.5 Integration Guide

© 2006 IBM Corporation

16

Quick Response UI

Clicking this button

opens the Quick Response
pop
-
up add on

Clicking this drop
-
down

opens the Quick Response
menu pulldown

IBM Software, WPLC

Sametime Connect 7.5 Integration Guide

© 2006 IBM Corporation

17

Manifest
-
Version: 1.0

Bundle
-
ManifestVersion: 2

Bundle
-
Name: Quick Response Plug
-
in

Bundle
-
SymbolicName:
com.ibm.collaboration.realtime.sample.quickresponse;sin
gleton:=true

Bundle
-
Version: 1.0.2

Bundle
-
Activator:
com.ibm.collaboration.realtime.sample.quickresponse.Qui
ckResponsePlugin

Bundle
-
Vendor: IBM

Bundle
-
Localization: plugin

Require
-
Bundle: org.eclipse.ui,


org.eclipse.core.runtime,


com.ibm.collaboration.realtime.imhub,


com.ibm.collaboration.realtime.chatwindow,


com.ibm.collaboration.realtime.ui,


com.ibm.collaboration.realtime.messages,

Eclipse
-
LazyStart: true

Quick Response Manifest


The Quick Response manifest file

required Eclipse plug
-
ins

Required Sametime 7.5
plug
-
ins

IBM Software, WPLC

Sametime Connect 7.5 Integration Guide

© 2006 IBM Corporation

18

Quick Response Plug
-
in Extension Classes

IBM Software, WPLC

Sametime Connect 7.5 Integration Guide

© 2006 IBM Corporation

19

Quick Response Plug
-
in Extension Manifest

Quick Response plugin.xml


Declares two Sametime
-
specific extension points


com.ibm.collaboration.realtime.chatwi ndow.popupAddOn


com.ibm.collaboration.realtime.chatwi ndow.chatAction


<extension


point="
com.ibm.collaboration.realtime.chatwindow.popupAddOn
">


<popupAddOn


class=“…sample.quickresponse.QrPopupAddOn"


id=“…sample.quickresponse"


name="Quick Response"/>


</extension>






IBM Software, WPLC

Sametime Connect 7.5 Integration Guide

© 2006 IBM Corporation

20

Quick Response Plug
-
in Extension Manifest
(cont’d)

The following lines of code show the plugin.xml file.




<extension


point="
com.ibm.collaboration.realtime.chatwindow.chatAction
">


<chatAction


class=“…sample.quickresponse.QrOpenPopupAddOnAction"


displayName="Quick Response"


id=“…realtime.sample.quickresponse.openquickresponse"


image="images/quickresponse.png"


path="format/end"


showsFor="both"


tooltipText="Quick Response"


type="format"/>


</extension>

IBM Software, WPLC

Sametime Connect 7.5 Integration Guide

© 2006 IBM Corporation

21

QrPopupAddon composite

The following code creates the pop
-
up add on:



public class QrPopupAddOn implements IPopupAddOn {



private ImChatWindowHandler wndHandler = null;


List listResponses;



public QrPopupAddOn() {


super();


}




void addItems() {


ArrayList elems = QuickResponsePlugin.getDefault().loadResponses();


for (int i = 0; i < elems.size(); i++)


listResponses.add((String) elems.get(i));


listResponses.add(QuickResponsePlugin.ADD_NEW_RESPONSE_MSG);


}



public Composite createControl(ImChatWindowHandler handler, Composite parent) {


wndHandler = handler;


Composite comp = new Composite(parent, SWT.NONE);


comp.setLayout(new FillLayout());




listResponses = new List(comp, SWT.SINGLE …);


addItems();


listResponses.addSelectionListener(...);


...



return comp;


}




public int getInitialSize() {


return PREFERRED_HEIGHT;


}

}


IPopupAddon


public interface IPopupAddOn {


public Composite createControl


(ImChatWindowHandler, Composite);


public int getInitialSize();

}

IBM Software, WPLC

Sametime Connect 7.5 Integration Guide

© 2006 IBM Corporation

22

QrOpenPopupAddOn action

The following code adds content to the pop
-
up window


public class QrOpenPopupAddOnAction extends ImChatWindowAction {


public QrOpenPopupAddOnAction() {


super(IAction.AS_DROP_DOWN_MENU);


}



public void run() {


ImChatWindowHandler handler = getChatWindowHandler();



if (handler.isPopupShowing()) {


handler.hidePopupMessageArea();


} else {


handler.createPopupMessageArea(…,


QrPopupAddOn.PREFERRED_HEIGHT);


}


}



public IMenuCreator getMenuCreator() {


return new IMenuCreator() {


...


};


}


}


ImChatActionWindowAction


public class ImChatWindowAction extends Action {


….

}

IBM Software, WPLC

Sametime Connect 7.5 Integration Guide

© 2006 IBM Corporation

23

Quick Response plug
-
in manifest outline

IBM Software, WPLC

Sametime Connect 7.5 Integration Guide

© 2006 IBM Corporation

24

Recent Buddies Mini Application


What it does for the user:


Displays a dynamic list of users based most recent chats (similar to
NotesBuddy’s primary buddies)


List is stored locally


What it demonstrates for the programmer


Event notification


Local data storage


Directory interface



IBM Software, WPLC

Sametime Connect 7.5 Integration Guide

© 2006 IBM Corporation

25

The Recent Buddies UI

before…

after…

IBM Software, WPLC

Sametime Connect 7.5 Integration Guide

© 2006 IBM Corporation

26

Adding a Sametime Mini Application

In order to add a mini application, a developer needs to:


Create an Eclipse plug
-
in that requires the Sametime runtime
plug
-
ins


Declare a contribution to the UI with an extension to Sametime
specific extension points


Create an extension class


IBM Software, WPLC

Sametime Connect 7.5 Integration Guide

© 2006 IBM Corporation

27

Manifest
-
Version: 1.0

Bundle
-
ManifestVersion: 2

Bundle
-
Name: Sametime Sample Recent Buddies Plug
-
in

Bundle
-
SymbolicName:
com.ibm.collaboration.realtime.sample.recentbuddi es;
singleton:=true

Bundle
-
Version: 1.0.2

Bundle
-
Activator: …sample.recentbuddies.RecentBuddiesPlugin

Bundle
-
Vendor: IBM

Bundle
-
Localization: plugin

Require
-
Bundle: org.eclipse.ui,


org.eclipse.core.runtime,


com.ibm.collaboration.realtime.core,


com.ibm.collaboration.realtime.community,


com.ibm.collaboration.realtime.imhub,


com.ibm.collaboration.realtime.messages,


com.ibm.collaboration.realtime.people,


com.ibm.collaboration.realtime.storage

Eclipse
-
Lazystart: true

The Recent Buddies Manifest


The Recent Buddies MANIFEST.MF

required Eclipse plug
-
ins

Required Sametime 7.5
plug
-
ins

IBM Software, WPLC

Sametime Connect 7.5 Integration Guide

© 2006 IBM Corporation

28

The Recent Buddies Plug
-
in Extensions

Right
-
click action set

IBM Software, WPLC

Sametime Connect 7.5 Integration Guide

© 2006 IBM Corporation

29

Recent Buddies Plug
-
in Extension Manifest

Recent Buddies plugin.xml


Declares a Sametime specific extension point


com.ibm.collaboration.realtime.imhub.miniApps


com.ibm.collaboration.realtime.messages.MessageHandl erListener

The following lines of code show the plugin.xml file.



<extension


point="
com.ibm.collaboration.realtime.imhub.miniApps
">


<miniApp


category="shelf.messaging"


class="com.ibm.collaboration.realtime.sample.recentbuddies.ui.RbMiniApp"


displayName="Recent Buddies"


id="com.ibm.collaboration.realtime.sample.recentbuddies.miniApp"


maxHeight="400"/>

</extension>


Your “mini app” declares the class responsible for creating the contents of the
tabbed area.





IBM Software, WPLC

Sametime Connect 7.5 Integration Guide

© 2006 IBM Corporation

30

Recent Buddies Plug
-
in Extension Manifest, cont.

The following lines of code show the plugin.xml file:




<extension


point="
com.ibm.collaboration.realtime.messages.MessageHandlerListener
">


<messageHandler


class="com.ibm.collaboration.realtime.sample.recentbuddies.RbMessageHandlerAdapter"/>


</extension>

</plugin>


Your “message handler” can subscribe to IM events (connected,
disconnected, status change) and UI events (person selected, chat
window opened).

IBM Software, WPLC

Sametime Connect 7.5 Integration Guide

© 2006 IBM Corporation

31

Recent Buddies plug
-
in outline

IBM Software, WPLC

Sametime Connect 7.5 Integration Guide

© 2006 IBM Corporation

32

Buddy Note Plug
-
in


What it does for the user:



Displays a tabbed, text area to enter short
notes about the currently selected person


Notes are stored locally


What it demonstrates for the
programmer


How to declare a “mini application”
extension


How to track the selection of a person


mini app tabbed area

IBM Software, WPLC

Sametime Connect 7.5 Integration Guide

© 2006 IBM Corporation

33

The Buddy Note UI

before…

after…

IBM Software, WPLC

Sametime Connect 7.5 Integration Guide

© 2006 IBM Corporation

34

Bundle
-
Name: BuddyNote

Bundle
-
SymbolicName: ...sample.buddynote;singleton=true

Bundle
-
Version: 1.0.0

Bundle
-
ClassPath: BuddyNotePlugin.jar

Bundle
-
Activator: ...sample.buddynote.BuddyNotePlugin

Bundle
-
Vendor: IBM

Bundle
-
Localization: plugin

Require
-
Bundle: org.eclipse.ui,


org.eclipse.core.runtime,


com.ibm.collaboration.realtime.imhub,


com.ibm.collaboration.realtime.ui,


com.ibm.collaboration.realtime.people,


com.ibm.collaboration.realtime.core,


com.ibm.collaboration.realtime.community

Eclipse
-
LazyStart: true

The Buddy Note Manifest


The Buddy Note manifest file,
MANIFEST.MF


uses Open Sources Gateway Initiative
(OSGi) bundles


describes how the plug
-
in is packaged


defines the plug
-
in requirements


required Eclipse plug
-
ins

Required Sametime 7.5
plug
-
ins

IBM Software, WPLC

Sametime Connect 7.5 Integration Guide

© 2006 IBM Corporation

35

BuddyNote classes

IBM Software, WPLC

Sametime Connect 7.5 Integration Guide

© 2006 IBM Corporation

36

The Buddy Note Plug
-
in Extension Manifest

Buddy Note plugin.xml


Declares a Sametime specific extension point


com.ibm.collaboration.realtime.imhub.miniApps


com.ibm.collaboration.messages.MessageHandlerListener


<extension


point="
com.ibm.collaboration.realtime.imhub.miniApps
">


<miniApp


category="shelf.messaging"


class="com.ibm.collaboration.realtime.sample.buddynote.BuddyNoteMiniApp"


displayName="BuddyNote"


maxHeight="300"


id="com.ibm.collaboration.realtime.sample.buddynote.buddynotemi niapp"/>


</extension>




<extension


point="
com.ibm.collaboration.realtime.messages.MessageHandlerListener
">


<messageHandler
class="com.ibm.collaboration.realtime.sample.buddynote.BuddyNoteMessageHandl erAdapter"/>


</extension>


IBM Software, WPLC

Sametime Connect 7.5 Integration Guide

© 2006 IBM Corporation

37

The BuddyNoteMiniApp class extends


public class BuddyNoteMiniApp extends AbstractMiniApp {



static public BuddyNoteMiniApp INSTANCE;


private final String DEFAULT_NOTE = “…";


private IPerson person = null;


MyBusinessCard bizCard;


StyledText textControl;


String currentNote = null;



public Control createControl(Composite parent) {


Composite comp = new Composite(parent, SWT.BORDER);


comp.setLayout(new FormLayout());



// Business card is "person aware", i.e., will update


// as the person's status updates.


bizCard = new MyBusinessCard(comp, SWT.NONE);


FormData fd = new FormData();


...


bizCard.setLayoutData(fd);



// Text input area; it displays an indication that it's empty


// as defined by DEFAULT_NOTE


textControl = new StyledText(comp, SWT.MULTI | SWT.V_SCROLL |
SWT.WRAP);


...



// Save and restore the buddy note on gain/lose focus.


// (remember not to store the "default" note!)


textControl.addFocusListener(new FocusAdapter() {... });



return comp;

}


the AbstractMiniApp class


public abstract class AbstractMiniApp {



public abstract Control createControl(Composite parent);




public boolean showsInitially() {


return true;


}




public abstract void init() throws Exception;

}

BuddyNoteMiniApp

using com.ibm.collaboration.realtime.imhub.miniApps extension point

IBM Software, WPLC

Sametime Connect 7.5 Integration Guide

© 2006 IBM Corporation

38

The BuddyNoteMessageHandler class
extends


public class BuddyNoteMessageHandler extends
DefaultMessageHandler {


public void handleMessage(BuddySelectedMessage
message) {


IPeopleService peopleSvc = (IPeopleService)
ServiceHub.getService(IPeopleService.SVC_TYPE);


IPerson person =
peopleSvc.getPersonById(message.getPersonId());


BuddyNoteMiniApp.INSTANCE.handl eBuddySelected(pers
on);


}




public void handleMessage(ImConnectedMessage message)
{


BuddyNoteMiniApp.INSTANCE.handleConnected();


}



public void handleDefaultMessage(Message message) {


}

}

the DefaultMessageHandler class


BuddyNoteMessageHandler

using com.ibm.collaboration.messages.MessageHandlerListener extension point

Your handler is notified by overriding the desired
handleMessage(
eventMessage
)

method.

IBM Software, WPLC

Sametime Connect 7.5 Integration Guide

© 2006 IBM Corporation

39

Buddy Note plug
-
in outline

IBM Software, WPLC

Sametime Connect 7.5 Integration Guide

© 2006 IBM Corporation

40

Where to Get the Sametime 7.5 Integration Guide

IBMers…

Partners...

Contact your IBM
sales representative

IBM Software, WPLC

Sametime Connect 7.5 Integration Guide

© 2006 IBM Corporation

41

Resources


Sametime TechTalks from Feb 15:


WPLC TechTalk: Sametime 7.5, Interoperability, and Integrated Audio


Or for Partners:


Partner Lotus Sales Talk QuickPlace
and selecting

2006 Lotus TechTalks
:


http://extranet.lotus.com/salestalk


User Name: Sales Talk


Password: golotus




TechTalks via Podcast delivery!


Download the audio replays from WPLC Talks via the



WPLC TechTalk Podcast



http://podcast.webahead.ibm.com/podcast_view.do?podcastId=1100


WPLC SalesTalk Podcast



http://podcast.webahead.ibm.com/podcast_view.do?setPage=pages.podcast_e
dit&podcastId=1489


IBM Software, WPLC

Sametime Connect 7.5 Integration Guide

© 2006 IBM Corporation

42

Q & A

For more information:

http://www.ibm.com/software/sw
-
lotus/products/product3.nsf/wdocs/st75home