1 / 42

IBM Lotus Sametime Connect 7.5 Integration Guide TechTalk

IBM Lotus Sametime Connect 7.5 Integration Guide TechTalk. Dan Kehn Lori Ott. 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.

zoltin
Download Presentation

IBM Lotus Sametime Connect 7.5 Integration Guide TechTalk

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. IBM Lotus Sametime Connect 7.5Integration Guide TechTalk Dan Kehn Lori Ott

  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

  3. Sametime 7.5The 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

  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)

  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.

  6. Adding UI Extensions (Main Window) Actions Menu Branding Areas Action Bar Telephony Live Names "Mini apps" Status Bar

  7. Adding UI Extensions (Chat Window) Actions Menu Action Bar Telephony Branding Area Message Toolbar Branding Area Status Bar

  8. Sametime Connect 7.5 Demonstration

  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

  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.

  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

  12. Sametime 7.5 Client Architecture (Eclipse base) Sametime Platform Eclipse 3.2 RCP SWT JFace Workbench Help Perspectives Platform Runtime

  13. UIM Client Architecture User Interface Components Community Services Chat Storage Telephony Alert Storage User Info OS-Specific Services Quick Find Service and Plug-in Registry RT Session Buddy List Storage Directory Privacy Policy RTC (Real-Time Collaboration) API Messaging Services Storage Service Location Service Policy Service Capabilities Login Chat Presence Real-Time Sessions Notification Other Tools SIP Stack * Third-Party Protocols * Sametime Java API ST Connect Framework WED 6.1 (WebSphere Everyplace Deployment) Credential Store/SSO Pre-Authenticated Browser Embedded Browser Network Sensing Localization Spell Checker User Interface Components ... Eclipse 3.2 RCP Java 1.4.2 Runtime Environment (J9 jclMax) (Sametime 7.5) * SIP and third-party protocols not supported in Sametime 7.5

  14. Sample Plug-ins • Quick Response* • Recent Buddies* • Buddy Note** • Acronym Expander • Snippets * Sample plug-ins that will be presented today

  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

  16. Quick Response UI Clicking this drop-down Clicking this button opens the Quick Response pop-up add on opens the Quick Response menu pulldown

  17. Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: Quick Response Plug-in Bundle-SymbolicName: com.ibm.collaboration.realtime.sample.quickresponse;singleton:=true Bundle-Version: 1.0.2 Bundle-Activator: com.ibm.collaboration.realtime.sample.quickresponse.QuickResponsePlugin 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 The Quick Response manifest file Quick Response Manifest required Eclipse plug-ins Required Sametime 7.5 plug-ins

  18. Quick Response Plug-in Extension Classes

  19. <extension point="com.ibm.collaboration.realtime.chatwindow.popupAddOn"> <popupAddOn class=“…sample.quickresponse.QrPopupAddOn" id=“…sample.quickresponse" name="Quick Response"/> </extension> Quick Response Plug-in Extension Manifest Quick Response plugin.xml • Declares two Sametime-specific extension points • com.ibm.collaboration.realtime.chatwindow.popupAddOn • com.ibm.collaboration.realtime.chatwindow.chatAction

  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>

  21. 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(); } QrPopupAddon composite

  22. 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 { …. } QrOpenPopupAddOn action

  23. Quick Response plug-in manifest outline

  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

  25. The Recent Buddies UI after… before…

  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

  27. Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: Sametime Sample Recent Buddies Plug-in Bundle-SymbolicName: com.ibm.collaboration.realtime.sample.recentbuddies; 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.MF The Recent Buddies Manifest required Eclipse plug-ins Required Sametime 7.5 plug-ins

  28. The Recent Buddies Plug-in Extensions Right-click action set

  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.MessageHandlerListener 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.

  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).

  31. Recent Buddies plug-in outline

  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

  33. The Buddy Note UI after… before…

  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 file, MANIFEST.MF uses Open Sources Gateway Initiative (OSGi) bundles describes how the plug-in is packaged defines the plug-in requirements The Buddy Note Manifest required Eclipse plug-ins Required Sametime 7.5 plug-ins

  35. BuddyNote classes

  36. <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.buddynoteminiapp"/> </extension> <extension point="com.ibm.collaboration.realtime.messages.MessageHandlerListener"> <messageHandler class="com.ibm.collaboration.realtime.sample.buddynote.BuddyNoteMessageHandlerAdapter"/> </extension> 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

  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; } BuddyNoteMiniAppusing com.ibm.collaboration.realtime.imhub.miniApps extension point

  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.handleBuddySelected(person); } public void handleMessage(ImConnectedMessage message) { BuddyNoteMiniApp.INSTANCE.handleConnected(); } public void handleDefaultMessage(Message message) { } } the DefaultMessageHandler class BuddyNoteMessageHandlerusing com.ibm.collaboration.messages.MessageHandlerListener extension point Your handler is notified by overriding the desired handleMessage(eventMessage) method.

  39. Buddy Note plug-in outline

  40. Where to Get the Sametime 7.5 Integration Guide IBMers… Partners... Contact your IBM sales representative

  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_edit&podcastId=1489

  42. Q & A Thank you! For more information: http://www.ibm.com/software/sw-lotus/products/product3.nsf/wdocs/st75home

More Related