IBM Software WPLC IBM Lotus Sametime Connect 7
IBM Software, WPLC IBM Lotus Sametime Connect 7. 5 Integration Guide Tech. Talk Dan Kehn Lori Ott May 3, 2006 © 2006 IBM Corporation
IBM Software, WPLC 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 2 Sametime Connect 7. 5 Integration Guide © 2006 IBM Corporation
IBM Software, WPLC 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 3 rd party plug-ins such as VOIP, Location Awareness, LDAP, etc. * Beta does not include branding; it is planned for GA 3 Sametime Connect 7. 5 Integration Guide © 2006 IBM Corporation
IBM Software, WPLC 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 Web. Sphere 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) 4 Sametime Connect 7. 5 Integration Guide © 2006 IBM Corporation
IBM Software, WPLC 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. 5 Sametime Connect 7. 5 Integration Guide © 2006 IBM Corporation
IBM Software, WPLC Adding UI Extensions (Main Window) Actions Menu Branding Areas Action Bar Live Names Telephony "Mini apps" Status Bar 6 Sametime Connect 7. 5 Integration Guide © 2006 IBM Corporation
IBM Software, WPLC Adding UI Extensions (Chat Window) Actions Menu Action Bar Telephony Branding Area Message Toolbar Branding Area 7 Sametime Connect 7. 5 Integration Guide Status Bar © 2006 IBM Corporation
IBM Software, WPLC Sametime Connect 7. 5 Demonstration 8 Sametime Connect 7. 5 Integration Guide © 2006 IBM Corporation
IBM Software, WPLC 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 jdg 2 e. com for more information 9 Sametime Connect 7. 5 Integration Guide © 2006 IBM Corporation
IBM Software, WPLC 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. 10 Sametime Connect 7. 5 Integration Guide © 2006 IBM Corporation
IBM Software, WPLC 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 11 Sametime Connect 7. 5 Integration Guide © 2006 IBM Corporation
IBM Software, WPLC Sametime 7. 5 Client Architecture (Eclipse base) Sametime Platform Eclipse 3. 2 RCP SWT JFace Workbench Help Perspectives Platform Runtime 12 Sametime Connect 7. 5 Integration Guide © 2006 IBM Corporation
IBM Software, WPLC UIM Client Architecture User Interface Components Community Services RT Buddy List Directory Privacy Session Storage Chat Storage Policy RTC (Real-Time Collaboration) API Login Chat SIP Stack * Presence Real-Time Sessions Third-Party Protocols * Notification Other Tools Alert User Telephony Storage Info Messaging Services Storage Service OSSpecific Services Location Service Quick Find Policy Service and Plug-in Registry Capabilities Sametime Java API ST Connect Framework WED 6. 1 (Web. Sphere 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 (J 9 jcl. Max) (Sametime 7. 5) * SIP and third-party protocols not supported in Sametime 7. 5 13 Sametime Connect 7. 5 Integration Guide © 2006 IBM Corporation
IBM Software, WPLC Sample Plug-ins § Quick Response* § Recent Buddies* § Buddy Note** § Acronym Expander § Snippets * Sample plug-ins that will be presented today 14 Sametime Connect 7. 5 Integration Guide © 2006 IBM Corporation
IBM Software, WPLC 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 15 Sametime Connect 7. 5 Integration Guide © 2006 IBM Corporation
IBM Software, WPLC Quick Response UI Clicking this dropdown Clicking this button opens the Quick Response pop-up add on 16 Sametime Connect 7. 5 Integration Guide opens the Quick Response menu pulldown © 2006 IBM Corporation
IBM Software, WPLC Quick Response Manifest § The Quick Response manifest file Manifest-Version: 1. 0 Bundle-Manifest. Version: 2 Bundle-Name: Quick Response Plug-in Bundle-Symbolic. Name: com. ibm. collaboration. realtime. sample. quickresponse; sin gleton: =true Bundle-Version: 1. 0. 2 Bundle-Activator: com. ibm. collaboration. realtime. sample. quickresponse. Qui ck. Response. Plugin Bundle-Vendor: IBM Bundle-Localization: plugin required Eclipse plugins Require-Bundle: org. eclipse. ui, org. eclipse. core. runtime, Required Sametime 7. 5 plug-ins com. ibm. collaboration. realtime. imhub, com. ibm. collaboration. realtime. chatwindow, com. ibm. collaboration. realtime. ui, com. ibm. collaboration. realtime. messages, Eclipse-Lazy. Start: true 17 Sametime Connect 7. 5 Integration Guide © 2006 IBM Corporation
IBM Software, WPLC Quick Response Plug-in Extension Classes 18 Sametime Connect 7. 5 Integration Guide © 2006 IBM Corporation
IBM Software, WPLC Quick Response Plug-in Extension Manifest Quick Response plugin. xml – Declares two Sametime-specific extension points – com. ibm. collaboration. realtime. chatwindow. popup. Add. On – com. ibm. collaboration. realtime. chatwindow. chat. Action <extension point="com. ibm. collaboration. realtime. chatwindow. popup. Add. On"> <popup. Add. On class=“…sample. quickresponse. Qr. Popup. Add. On" id=“…sample. quickresponse" name="Quick Response"/> </extension> 19 Sametime Connect 7. 5 Integration Guide © 2006 IBM Corporation
IBM Software, WPLC 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. chat. Action"> <chat. Action class=“…sample. quickresponse. Qr. Open. Popup. Add. On. Action" display. Name="Quick Response" id=“…realtime. sample. quickresponse. openquickresponse" image="images/quickresponse. png" path="format/end" shows. For="both" tooltip. Text="Quick Response" type="format"/> </extension> 20 Sametime Connect 7. 5 Integration Guide © 2006 IBM Corporation
IBM Software, WPLC Qr. Popup. Addon composite The following code creates the pop-up add on: IPopup. Addon public class Qr. Popup. Add. On implements IPopup. Add. On { public interface IPopup. Add. On { public Composite create. Control (Im. Chat. Window. Handler, Composite); public int get. Initial. Size(); } private Im. Chat. Window. Handler wnd. Handler = null; List list. Responses; public Qr. Popup. Add. On() { super(); } void add. Items() { Array. List elems = Quick. Response. Plugin. get. Default(). load. Responses(); for (int i = 0; i < elems. size(); i++) list. Responses. add((String) elems. get(i)); list. Responses. add(Quick. Response. Plugin. ADD_NEW_RESPONSE_MSG); } public Composite create. Control(Im. Chat. Window. Handler handler, Composite parent) { wnd. Handler = handler; Composite comp = new Composite(parent, SWT. NONE); comp. set. Layout(new Fill. Layout()); list. Responses = new List(comp, SWT. SINGLE …); add. Items(); list. Responses. add. Selection. Listener(. . . ); . . . } } 21 return comp; public int get. Initial. Size() { return PREFERRED_HEIGHT; } Sametime Connect 7. 5 Integration Guide © 2006 IBM Corporation
IBM Software, WPLC Qr. Open. Popup. Add. On action The following code adds content to the pop-up window Im. Chat. Action. Window. Action public class Qr. Open. Popup. Add. On. Action extends Im. Chat. Window. Action { public Qr. Open. Popup. Add. On. Action() { super(IAction. AS_DROP_DOWN_MENU); } public class Im. Chat. Window. Action extends Action { …. } public void run() { Im. Chat. Window. Handler handler = get. Chat. Window. Handler(); } if (handler. is. Popup. Showing()) { handler. hide. Popup. Message. Area(); } else { handler. create. Popup. Message. Area(…, Qr. Popup. Add. On. PREFERRED_HEIGHT); } public IMenu. Creator get. Menu. Creator() { return new IMenu. Creator() {. . . }; } } 22 Sametime Connect 7. 5 Integration Guide © 2006 IBM Corporation
IBM Software, WPLC Quick Response plug-in manifest outline 23 Sametime Connect 7. 5 Integration Guide © 2006 IBM Corporation
IBM Software, WPLC Recent Buddies Mini Application § What it does for the user: – Displays a dynamic list of users based most recent chats (similar to Notes. Buddy’s primary buddies) – List is stored locally § What it demonstrates for the programmer – Event notification – Local data storage – Directory interface 24 Sametime Connect 7. 5 Integration Guide © 2006 IBM Corporation
IBM Software, WPLC The Recent Buddies UI before… 25 Sametime Connect 7. 5 Integration Guide after… © 2006 IBM Corporation
IBM Software, WPLC 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 26 Sametime Connect 7. 5 Integration Guide © 2006 IBM Corporation
IBM Software, WPLC The Recent Buddies Manifest § The Recent Buddies MANIFEST. MF Manifest-Version: 1. 0 Bundle-Manifest. Version: 2 Bundle-Name: Sametime Sample Recent Buddies Plug-in Bundle-Symbolic. Name: com. ibm. collaboration. realtime. sample. recentbuddies; singleton: =true Bundle-Version: 1. 0. 2 Bundle-Activator: …sample. recentbuddies. Recent. Buddies. Plugin Bundle-Vendor: IBM Bundle-Localization: plugin required Eclipse plug. Require-Bundle: org. eclipse. ui, org. eclipse. core. runtime, ins 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 Required Sametime 7. 5 plug-ins 27 Sametime Connect 7. 5 Integration Guide © 2006 IBM Corporation
IBM Software, WPLC The Recent Buddies Plug-in Extensions Right-click action set 28 Sametime Connect 7. 5 Integration Guide © 2006 IBM Corporation
IBM Software, WPLC Recent Buddies Plug-in Extension Manifest Recent Buddies plugin. xml – Declares a Sametime specific extension point – – com. ibm. collaboration. realtime. imhub. mini. Apps com. ibm. collaboration. realtime. messages. Message. Handler. Listener The following lines of code show the plugin. xml file. … <extension point="com. ibm. collaboration. realtime. imhub. mini. Apps"> <mini. App category="shelf. messaging" class="com. ibm. collaboration. realtime. sample. recentbuddies. ui. Rb. Mini. App" display. Name="Recent Buddies" id="com. ibm. collaboration. realtime. sample. recentbuddies. mini. App" max. Height="400"/> </extension> Your “mini app” declares the class responsible for creating the contents of the tabbed area. 29 Sametime Connect 7. 5 Integration Guide © 2006 IBM Corporation
IBM Software, WPLC Recent Buddies Plug-in Extension Manifest, cont. The following lines of code show the plugin. xml file: … <extension point="com. ibm. collaboration. realtime. messages. Message. Handler. Listener"> <message. Handler class="com. ibm. collaboration. realtime. sample. recentbuddies. Rb. Message. Handler. Adapter"/> </extension> </plugin> Your “message handler” can subscribe to IM events (connected, disconnected, status change) and UI events (person selected, chat window opened). 30 Sametime Connect 7. 5 Integration Guide © 2006 IBM Corporation
IBM Software, WPLC Recent Buddies plug-in outline 31 Sametime Connect 7. 5 Integration Guide © 2006 IBM Corporation
IBM Software, WPLC 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 32 Sametime Connect 7. 5 Integration Guide © 2006 IBM Corporation
IBM Software, WPLC The Buddy Note UI before… 33 Sametime Connect 7. 5 Integration Guide after… © 2006 IBM Corporation
IBM Software, WPLC 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 Bundle-Name: Buddy. Note Bundle-Symbolic. Name: . . . sample. buddynote; singleton=true Bundle-Version: 1. 0. 0 Bundle-Class. Path: Buddy. Note. Plugin. jar Bundle-Activator: . . . sample. buddynote. Buddy. Note. Plugin Bundle-Vendor: IBM Bundle-Localization: plugin Require-Bundle: org. eclipse. ui, required Eclipse plugins 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-Lazy. Start: true Required Sametime 7. 5 plug-ins 34 Sametime Connect 7. 5 Integration Guide © 2006 IBM Corporation
IBM Software, WPLC Buddy. Note classes 35 Sametime Connect 7. 5 Integration Guide © 2006 IBM Corporation
IBM Software, WPLC The Buddy Note Plug-in Extension Manifest Buddy Note plugin. xml – Declares a Sametime specific extension point – com. ibm. collaboration. realtime. imhub. mini. Apps – com. ibm. collaboration. messages. Message. Handler. Listener <extension point="com. ibm. collaboration. realtime. imhub. mini. Apps"> <mini. App category="shelf. messaging" class="com. ibm. collaboration. realtime. sample. buddynote. Buddy. Note. Mini. App" display. Name="Buddy. Note" max. Height="300" id="com. ibm. collaboration. realtime. sample. buddynoteminiapp"/> </extension> <extension point="com. ibm. collaboration. realtime. messages. Message. Handler. Listener"> <message. Handler class="com. ibm. collaboration. realtime. sample. buddynote. Buddy. Note. Message. Handler. Adapter"/> </extension> 36 Sametime Connect 7. 5 Integration Guide © 2006 IBM Corporation
IBM Software, WPLC Buddy. Note. Mini. App using com. ibm. collaboration. realtime. imhub. mini. Apps extension point The Buddy. Note. Mini. App class extends the Abstract. Mini. App class public class Buddy. Note. Mini. App extends Abstract. Mini. App { static public Buddy. Note. Mini. App INSTANCE; private final String DEFAULT_NOTE = “…"; private IPerson person = null; My. Business. Card biz. Card; Styled. Text text. Control; String current. Note = null; public abstract class Abstract. Mini. App { public abstract Control create. Control(Composite parent); public boolean shows. Initially() { return true; } public Control create. Control(Composite parent) { Composite comp = new Composite(parent, SWT. BORDER); comp. set. Layout(new Form. Layout()); // Business card is "person aware", i. e. , will update // as the person's status updates. biz. Card = new My. Business. Card(comp, SWT. NONE); Form. Data fd = new Form. Data(); . . . biz. Card. set. Layout. Data(fd); public abstract void init() throws Exception; } // Text input area; it displays an indication that it's empty // as defined by DEFAULT_NOTE text. Control = new Styled. Text(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!) text. Control. add. Focus. Listener(new Focus. Adapter() {. . . }); } 37 return comp; Sametime Connect 7. 5 Integration Guide © 2006 IBM Corporation
IBM Software, WPLC Buddy. Note. Message. Handler using com. ibm. collaboration. messages. Message. Handler. Listener extension point The Buddy. Note. Message. Handler class extends the Default. Message. Handler class public class Buddy. Note. Message. Handler extends Default. Message. Handler { public void handle. Message(Buddy. Selected. Message message) { IPeople. Service people. Svc = (IPeople. Service) Service. Hub. get. Service(IPeople. Service. SVC_TYPE); IPerson person = people. Svc. get. Person. By. Id(message. get. Person. Id()); Buddy. Note. Mini. App. INSTANCE. handle. Buddy. Selected(per son); } public void handle. Message(Im. Connected. Message message) { Buddy. Note. Mini. App. INSTANCE. handle. Connected(); } public void handle. Default. Message(Message message) { } } Your handler is notified by overriding the desired handle. Message(event. Message) method. 38 Sametime Connect 7. 5 Integration Guide © 2006 IBM Corporation
IBM Software, WPLC Buddy Note plug-in outline 39 Sametime Connect 7. 5 Integration Guide © 2006 IBM Corporation
IBM Software, WPLC Where to Get the Sametime 7. 5 Integration Guide IBMers… Partners. . . Contact your IBM sales representative 40 Sametime Connect 7. 5 Integration Guide © 2006 IBM Corporation
IBM Software, WPLC Resources § Sametime Tech. Talks from Feb 15: – WPLC Tech. Talk: Sametime 7. 5, Interoperability, and Integrated Audio – Or for Partners: – Partner Lotus Sales Talk Quick. Place and selecting 2006 Lotus Tech. Talks: – http: //extranet. lotus. com/salestalk – User Name: Sales Talk – Password: golotus § Tech. Talks via Podcast delivery! – Download the audio replays from WPLC Talks via the – WPLC Tech. Talk Podcast – http: //podcast. webahead. ibm. com/podcast_view. do? podcast. Id=1100 – WPLC Sales. Talk Podcast – http: //podcast. webahead. ibm. com/podcast_view. do? set. Page=pages. podcast_ edit&podcast. Id=1489 41 Sametime Connect 7. 5 Integration Guide © 2006 IBM Corporation
IBM Software, WPLC Q&A For more information: http: //www. ibm. com/software/sw-lotus/product 3. nsf/wdocs/st 75 home 42 Sametime Connect 7. 5 Integration Guide © 2006 IBM Corporation
- Slides: 42