AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections - and Beyond

32
© 2013 IBM Corporation AD109 Using the IBM ® Sametime ® Proxy SDK: WebSphere Portal ® , IBM ® Connections ® - and Beyond. William Holmes (Software Engineer, IBM) Carl Tyler (Director, Epilio)

description

From simple lightweight usage to full real world integration and development, the Sametime Proxy offers an exceptional range of social capabilities. This session will showcase our integration with Portal and Connections, and then move on to illustrate how the openness of the programming model makes it suitable for any environment, by extending SDK objects, managing events and overriding Sametime Proxy widget prototypes. This session will show you real world examples of how customers transformed regular web and mobile applications into those with a rich social experience using the Sametime Proxy

Transcript of AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections - and Beyond

Page 1: AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections - and Beyond

© 2013 IBM Corporation

AD109 Using the IBM® Sametime® Proxy SDK: WebSphere Portal®, IBM® Connections® - and Beyond.

William Holmes (Software Engineer, IBM)Carl Tyler (Director, Epilio)

Page 2: AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections - and Beyond

2 © 2013 IBM Corporation

Please note:

IBM’s statements regarding its plans, directions, and intent are subject to change or withdrawal without notice at IBM’s sole discretion. Information regarding potential future products is intended to outline our general product direction and it should not be relied on in making a purchasing decision. The information mentioned regarding potential future products is not a commitment, promise, or legal obligation to deliver any material, code or functionality. Information about potential future products may not be incorporated into any contract. The development, release, and timing of any future features or functionality described for our products remains at our sole discretion.

Performance is based on measurements and projections using standard IBM benchmarks in a controlled environment. The actual throughput or performance that any user will experience will vary depending upon many factors, including considerations such as the amount of multiprogramming in the user's job stream, the I/O configuration, the storage configuration, and the workload processed. Therefore, no assurance can be given that an individual user will achieve results similar to those stated here.

Page 3: AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections - and Beyond

3 © 2013 IBM Corporation

Agenda

Introductions Sametime Proxy Overview Product Integration

─ IBM® Connections® & IBM® WebSphere Portal® & IBM® Sametime® Proxy Programming Models

─ LiveName & Chat─ Framework independent example

Beyond the SDK─ Base Components & UI Prototype Extensions

Mobiliy─ Live Help Application

Conclusion & Future Direction

Page 4: AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections - and Beyond

© 2013 IBM Corporation

Carl Tyler

Working with Notes since 1991 Building Sametime solutions for 10+ years 11 ½ years service at IBM/Lotus 10+ Years as an IBM Business Partner Director IBM Advanced Partner Epilio

─ UC Planning and Deployment─ Custom UC Development

Page 5: AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections - and Beyond

© 2013 IBM Corporation

Why the need for Sametime Proxy?

We used to have Sametime Links─ Used in

– iNotes– Quickr– Connections

─ Required JVM in browser─ HTML structure undocumented by IBM─ Undocumented interfaces to server

Page 6: AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections - and Beyond

© 2013 IBM Corporation

What’s the answer?

What can run on multiple browsers? Not require a JVM? Programmable? Customizable? Extendable? Support Anonymous Users

Page 7: AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections - and Beyond

© 2013 IBM Corporation

Sametime Proxy

Sametime Proxy

Page 8: AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections - and Beyond

© 2013 IBM Corporation

Sametime Proxy Architecture

Proxy communicates with Sametime Community Server

Does not require Sametime System Console – apart from install

REST API, Base Components and Dojo Widgets

REST API

Base Components

Dojo Widgets

Sametime Community Server

Sametime Proxy Server

Page 9: AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections - and Beyond

© 2013 IBM Corporation

Why do we even need it?

Access Sametime with no client Install Integration with business applications Access Sametime bots Situational Awareness Customer Help

─ Agents can handle more than one call at a time.

Page 10: AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections - and Beyond

10 © 2013 IBM Corporation

Sametime Proxy Client Overview

Page 11: AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections - and Beyond

11 © 2013 IBM Corporation

Sametime Proxy Overview

Page 12: AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections - and Beyond

12 © 2013 IBM Corporation

Product Integration – IBM Connections 4.x

UI Integration─ Profile

Page 13: AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections - and Beyond

13 © 2013 IBM Corporation

Product Integration – IBM Connections 4.x

UI Integration─ Business Card

Page 14: AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections - and Beyond

14 © 2013 IBM Corporation

Product Integration – IBM Connections 4.x

UI Integration─ Footer

Page 15: AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections - and Beyond

15 © 2013 IBM Corporation

Product Integration – IBM Connections 4.x Configuration

─ NO Edge Server─ \profiles\AppSrv01\config\cells\<name>\LotusConnections-config\LotusConnections-config.xml

─ Configuration Advice– SSO (Authentication) https://ibm.biz/BdxSLc

• IBM Connections < > Sametime Community Server• SSO Key - Domain (i.e. .ibm.com)• Interoperability Mode (LTPA and LTPA2)• HTTPOnly - Disabled

– Using the same Host Name (FQDN)• Cookie Clash

– JSESSIONID• Sametime Proxy supports Changing the Cookie Name

Page 16: AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections - and Beyond

16 © 2013 IBM Corporation

Product Integration – IBM WebSphere Portal 8.x UI Integration

─ Contact List Portlet<span class="vcard X-person-profile-inplace X-sametime-resolve">

Page 17: AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections - and Beyond

17 © 2013 IBM Corporation

Product Integration – IBM WebSphere Portal 8.x UI Integration

Page 18: AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections - and Beyond

18 © 2013 IBM Corporation

Product Integration – IBM WebSphere Portal 8.x Configuration

─ Modifying the Theme Profile– ..\applications\AJAX Proxy Configuration.ear\deployments\AJAX Proxy

Configuration\wp.proxy.config.war\WEB-INF\proxy-config.xml

– 7 Configuration Grouped Processes– Manual Configuration Edit

• Install Portlet WAR• Modify the Theme Profiles• Install the BackEndChat EAR• Add new Resource Environment Entries• Restart the Server• Create and Configure your Page• Configure the Portlet

─ Configuration Advice– SSO (Authentication) https://ibm.biz/BdxSLc

• IBM Websphere Portal < > Sametime Community Server

WebSphere Portal 7.x > Click Here

Page 19: AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections - and Beyond

19 © 2013 IBM Corporation

Programming Models LiveName

─ Model is JavaScript Framework Independent─ Object Keys

– id, displayName, status, statusMessage, resolvedName, etc.─ Object Event Handlers

– onUpdate ,remove, Status Updates─ Update Types

– Status, Location, Capabilities (Telephony)

var myModel = stproxy.getLiveNameModel(<userId>,{args})

Model Model

Page 20: AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections - and Beyond

20 © 2013 IBM Corporation

Programming Models

Chat─ Model is JavaScript Framework Independent─ Object keys

– userId, isEmbedded, is1to1Chat, isAnonymous─ Object Event Handlers

– onMessage– sendMessage– onTyping– onRichTextData– onPartnerActive, onPartnerNotActive (Group Chat)– onMeetingInvitation, onAnnouncement– … etc.

var myModel = stproxy.getChatModel(<userId>,{args})

var myModel = stproxy.getGroupChatModel(<placeId>,{args})

Page 21: AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections - and Beyond

21 © 2013 IBM Corporation

Programming Models Framework Independent Widgets

─ Custom LiveName– What are you going to do with the data ?

{"status":1,"statusMessage":"I am Available", userId:"CN=Samantha Daryn,O=ibm"}

• Change a status icon(s) ?

• Update Status Message Text Node ?

– Listen for updates– Handle the data– Lets see a Working Example …

Page 22: AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections - and Beyond

22 © 2013 IBM Corporation

DEMO - 1

Page 23: AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections - and Beyond

23 © 2013 IBM Corporation

Programming Models Framework Independent Widgets

─ Custom Chat – What are you going to do with the data ?

{"userId":"CN=Amy Jones1,OU=Users,OU=WestfordFVT,O=IBM,C=US","action":["chat","msgReceived"],"text":"Hello World","displayName":"Amy Jones1"},"

─ Chat Transcripts

─ Show user typing

─ Listen for new messages─ Handle the data─ Lets see a Working Example …

Page 24: AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections - and Beyond

24 © 2013 IBM Corporation

DEMO - 2

Page 25: AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections - and Beyond

25 © 2013 IBM Corporation

DOJO UI WIDGETS

Leverage the UI Offering─ Base Components─ DOJO UI Widgets

Queue Text DEMO - 3

Page 26: AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections - and Beyond

26 © 2013 IBM Corporation

Beyond the SDK

Base Components─ Event Handling

– stproxy.hitch.connect(parent,child,function) returns OBJ– stproxy.hitch.disconnect(OBJ);– stproxy.hitch.event(obj,event,function)– stproxy.hitch.bind(scope,function)

─ Globalization– stproxy.i18nStrings (32 Languages)– stproxy.awareness._getStatusMessage(status)

─ Images– stproxy.getIconURL(status)– stproxy.uiControl.iconPaths

─ Cache– Using /latest/ forces a redirect to ensure latest version of JS is loaded per build

Page 27: AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections - and Beyond

27 © 2013 IBM Corporation

Beyond the SDK

UI Prototype Extensions─ General Prototypes─ Examples

– sametime.LiveName.prototype• HTML Template• Reset defaults

─ Go Explore and Experiment !!

Page 28: AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections - and Beyond

28 © 2013 IBM Corporation

Mobiliy - Live Help

Custom Application─ WebSphere Portal

– SSO─ Queue Engine─ Mobile Clients

– iOS– Android– Window 8– BlackBerry

Sametime Proxy─ Tabbed Container

– NWay Chat– Event Handling

Page 29: AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections - and Beyond

29 © 2013 IBM Corporation

DEMO - 4

Page 30: AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections - and Beyond

30 © 2013 IBM Corporation

Conclusion

Sametime 8.5.2IFR1─ Base Components─ DOJO UI Widgets─ Framework Independent Widgets─ Web Application - No Sametime Proxy Client Code

– JS APIs– Comms Layer, Headers, Cookies, xDomain, Long Poll, Error Handling– OR .... Just Load … /stbaseapi/latest/baseComps.js?lang=<lang>

Sametime Proxy Next─ Considerations

– Web Friendly – NO RIGHT CLICK– Storage / Persistence– Tabbed Chat

─ Integrations– Custom Widgets

Page 31: AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections - and Beyond

31 © 2013 IBM Corporation

Final Overview UI Considerations

Page 32: AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections - and Beyond

32 © 2013 IBM Corporation

Legal disclaimer

© IBM Corporation 2013. All Rights Reserved.The information contained in this publication is provided for informational purposes only. While efforts were made to verify the completeness and accuracy of the information contained in this publication, it is provided AS IS without warranty of any kind, express or implied. In addition, this information is based on IBM’s current product plans and strategy, which are subject to change by IBM without notice. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, this publication or any other materials. Nothing contained in this publication is intended to, nor shall have the effect of, creating any warranties or representations from IBM or its suppliers or licensors, or altering the terms and conditions of the applicable license agreement governing the use of IBM software.References in this presentation to IBM products, programs, or services do not imply that they will be available in all countries in which IBM operates. Product release dates and/or capabilities referenced in this presentation may change at any time at IBM’s sole discretion based on market opportunities or other factors, and are not intended to be a commitment to future product or feature availability in any way. Nothing contained in these materials is intended to, nor shall have the effect of, stating or implying that any activities undertaken by you will result in any specific sales, revenue growth or other results.

All customer examples described are presented as illustrations of how those customers have used IBM products and the results they may have achieved. Actual environmental costs and performance characteristics may vary by customer.

Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.

Microsoft and Windows are trademarks of Microsoft Corporation in the United States, other countries, or both.

All references to [insert fictitious company name] refer to a fictitious company and are used for illustration purposes only.