If you can't read please download the document
Upload
james-gallagher
View
373
Download
2
Embed Size (px)
DESCRIPTION
Have you ever thought that your organisation could be utilising IBM Connections more? The session will demonstrate the highly flexible and integratable component that is the IBM Connections' Activity Stream. The stream can be integrated into different IBM products such as IBM Notes and IBM WebSphere Portal but is also an Open Social Gadget and therefore can run within any OpenSocial container such as Apache Shindig. This stream is based on an open standard and the content within does not have to be from Connections alone. One business partner integrated Atlassian JIRA and Confluence content into the Activity Stream. This presentation explains and demonstrates how to utilise this functionality in your organisation.
Citation preview
2. Please Note IBMs statements regarding its plans, directions,
and intent are subject to change or withdrawal without notice at
IBMs 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 users 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. 3. Agenda Intro Integrate 3rd
Party Events Integration with IBM products Life in 3rd Party Apps
Conclusion Q&A 4. Intro 5. Possibility of Higher traffic
Heavily featured product, think it could be used more? Leveraging
it full potential? Content + Location 6. Activity Stream Features
AS_Intro.mp4 Video with presentation's zip on IBM Greehouse here 7.
Activity Stream Features Status Update + file upload with
image/file preview Timeago + Permalink @mentions URL Preview Inline
Commenting Action Items Like, Comment, Repost, Save this, Stop
Following Other Connection Component Updates blogs, wikis, etc. EE
- actions items, forum replies etc. 3 Updates Views I'm Following,
Status Updates, Discover Others Views - @mentions, My
Notifications, Action Required, Saved 8. How Its Implemented
Activity Stream Standard - http://activitystrea.ms/ Used by IBM
Google Microsoft Opera MySpace To name a few... Exposed as an Open
Social Gadget 9. Integrate 3rd Party Events 10. Atlassian
Integration Example AS_Atlassian_Integration.mp4 Video with
presentation's zip on IBM Greehouse here 11. Authentication
Anonymous access For public data, some APIs are available at an
anonymous URL, where no authentication challenge is performed
/connections/opensocial/anonymous/rest/activitystreams/@ me/@all
Form Based Authentication Authentication used by browser URLs
(where the user is redirected to the login page) Ajax applications
also use this when accessing APIs in order to take advantage of the
available session information Complex login redirect handing is
however required Not recommended or supported for third party
applications /connections/opensocial/rest/activitystreams/@me/@all
12. Authentication Basic Authentication Needs Base-64 encoded
header for the username and password This should always be done
over https (avoid cleartext passwords) Most HTTP libraries support
setting basic authentication headers
/connections/opensocial/basic/rest/activitystreams/@public/ @all
OAuth Authorisation Is an authorisation (rather than
authentication) mechanism You can authorise a service to act on
your behalf without giving them your credentials
/connections/opensocial/oauth/rest/activitystreams/@public/ @all
13. 3rd Party Events Can POST any event to the stream of the
current user /connections/opensocial/rest/activitystreams/@me/@all
Main details are - actor : Connections or External Id verb : from a
set list title : Connections will generate if needed content : for
display of event details updated : event time object : details on
the object including title, id etc. connections : a grab bag of
connections specific properties that add more information 14. HTML
Formatting No Active Content ACF run on all fields title Allows
anchor tags only content, object.summary Allows following tags
Style limitations Images given max-width of 100% (of the item container) Tables given simple 1px border Vertical whitespace (newlines, paragraphs) collapsed 15. Generator Identifies the source of the entry Can be used to request filtered feeds Can specify details in entry being posted "generator": { "id": "socialConnectVI", "image": { "url": "http://ebmedia.eventbrite.com/s3- build/images/6261669/36270708046/1/logo.png" }, "displayName": "Social Connect VI", "url": "http://socialconnections.info/events/social-connections-vi" } The image, if provided, is displayed in stream. Should be 16x16 16. Generator registration Applications can be registered (NewsActivityStreamService.registerApplication()) Provide following details: appId, displayName, url, secureUrl, imageUrl, secureImageUrl, summary NewsActivityStreamService.registerApplication("socialConnectVI", "Social Connect VI", "http://socialconnections.info/events/social-connections-vi/", "https://socialconnections.info/events/social- connections-vi/", "http://ebmedia.eventbrite.com/s3-build/images/6261669/36270708046/1/logo.png", "https://ebmedia.eventbrite.com/s3-build/images/6261669/36270708046/1/logo.png", "Best Conference EVER!", "true") Benefits: Post events with just appId for generator "generator": { "id": "socialConnectionsVI" } ImageUrl or SecureImageUrl choosen appropriately for feed Filter displayed in ActivityStreams in Connections 17. File Item Use objectType: file for entry that denotes a file { "actor": { "id": "@me" }, "verb": "post", "title": "${Actor} has uploaded ${Object} to SlideView", "object": { "summary": "", "objectType": "file", "id": "slide001", "fileUrl": "http://SocialConnectionsVI.com/ASIntegration.odp", "displayName": "ASIntegration.odp", "url": "http://SocialConnectionsVI.com/viewSlide?deck=ASIntegration.odp" } } 18. File Item Can also add preview image "object": { ... "image": { "url": "http://SocialConnectionsVI.com/getThumb?deck=ASIntegration.odp" } } 19. Embedded Experience Provide extra detail and embedded functionality for your ActivityStream entry Displayed in popup when entry is clicked in the stream Defined in entry.opensocial.embed Two types supported: OpenSocial gadget URL* 20. Configuration Development Edit the opensocial-config.xml file in the LotusConnections-config directory. Set the whiteListEnable attribute of gadget-settings to "false". Any Gadget can now be placed into the stream. This is not secure enough for a production environment. However, it is suitable for a development server. With this setting in place, you can now post any event into the Activity Stream referencing any Gadget, and the Gadget will be rendered. Note : You should be checking the file out to do this, but if you are on a single node you can edit the file directly and restart the server. 21. Configuration Enabling developers on a production server Where a server is required for both production and development the server admin can enable a development page and a number of hosts who have the authority to deliver Gadgets. You will need to edit the opensocial-config.xml file in the LotusConnections-config directory You should set the enabled attribute of developer to "true". You can then use the developer page to test Gadgets. http:///connections/resources/web/com.ibm.lconn.gadget/ test/bootstrap.html 22. EE - OpenSocial Gadget Need to provide gadget and context when posting entry "opensocial": { "embed": { "gadget": "http://SocialConnectionsVI.com/gadgets/slideview.xml", "context": { "deck": "ASIntegration.odp" } } } gadget URI to the gadget definition context Anything you want Gadget must be registered via Homepage Administration UI or wsadmin commands Gadgets that are not registered will be ignored, and a generic EE from Connections is used Typically, gadgets will use OAuth authentication to load data from application 23. EE - URL Provide url when posting entry "opensocial": { "embed": { "url": "http://SocialConnectionsVI.com/ee/viewSlide? deck=ASIntegration.odp"" } } There is no context supported, but contextual data can be passed in URL URL must be whitelisted (via opensocial-config.xml) URLs that are not whitelisted will be ignored, and generic EE from Connections is used 24. Rollup In order to address the scenario where a user posts a file and 200 people 'like' it, filling up their Activity Stream, rollup needs to be performed. This means Only the latest event on any given object is shown The 2 most recent comments are returned. We support the ?rollup=true flag on retrieval for specifying that a rolled up feed is required. In order to provide for rollup, simply add the following (by default, the object id will be used) "connections": { "rollupid": "3d7638dd-b5e1-4d52-a03d-83591996da20" }, 25. Templated titles Connections allows for the introduction of two kinds of title template Object substitutions - where a referenced object within the event is substituted into the title. Title template substitutions - using object substitutions, providing a complete title 26. Templated titles Object Substitution - A number of substitution values are supported within a submitted event.title. These are specified using the ${} marker. ${Actor} - this is converted into appropriately marked up HTML which displays the Actors name and links to a Business Card corresponding to the Actor ${Object} - for person objects as per Actor above, otherwise the displayName with a link to the url ${Target} - for person objects as per Actor above, otherwise the displayName with a link to the url Title Template Substitution ${add}=${Actor} added ${Object}. ${create}=${Actor} created ${Object}. 27. Distributing events By default most users do not have the authority to distribute events to another users stream. If they did then this would mean that any user would have the ability to spam indiscriminately. Although the ability to distribute can be opened up via configuration to any user, there is some basic distribution allowed for any user. To [UserID] where the user in question is the current user To @me which resolves to the same thing To @public which means the event will appear on everyones discovery tab - but this is only permitted if the submitting user is also the actor in the event To [CommunityId] where the current user is a member of that community or the community is public - again this is only permitted if the submitting user is also the actor in the event. In order do distribute any event to any user, the distributing user needs to be in the appropriate J2EE Role. 28. Coding Example Coding_Example.mp4 Video with presentation's zip on IBM Greehouse here 29. Simple Event { "actor": { "id": "@me" }, "verb": "share", "title": "${share}", "object": { "summary": "A totally new way of looking at things", "id": "thisid", "displayName": "Something Interesting", "url": "http://w3.ibm.com" } } 30. Add a Generator { "generator": { "image": { "url": "http://ebmedia.eventbrite.com/s3-build/images/6261669/36270708046/1/logo.png" }, "id": "SocialConnectionsVI", "displayName": "Social Connections VI", "url": "http://socialconnections.info/events/social-connections-vi" }, "actor": { "id": "@me" }, "verb": "share", "title": "${share}", "object": { "summary": "A totally new way of looking atthings", "id": "thisid", "displayName": "Something Interesting", "url": "http://w3.ibm.com" } } 31. Add a Comment { "generator": { "image": { "url": "http://ebmedia.eventbrite.com/s3-build/images/6261669/36270708046/1/logo.png" }, "id": "SocialConnectionsVI", "displayName": "Social Connections VI", "url": "http://socialconnections.info/events/social-connections-vi" }, "actor": { "id": "@me" }, "verb": "comment", "title": "${comment}", "object": { "summary": "This is definitely interesting", "id": "commentid", "objectType": "comment", "displayName": "Definitely interesting", "url": "http://w3.ibm.com" }, "target": { "summary": "A totally new way of looking atthings", "id": "thisid", "displayName": "Something Interesting", "url": "http://w3.ibm.com" }, "connections": { "rollupid": "thisid" } } 32. Add Formatted Text { "generator": { "image": { "url": "http://ebmedia.eventbrite.com/s3-build/images/6261669/36270708046/1/logo.png" }, "id": "SocialConnectionsVI", "displayName": "Social Connections VI", "url": "http://socialconnections.info/events/social-connections-vi" }, "actor": { "id": "@me" }, "verb": "comment", "title": "${comment}", "content": "Click on this entry to launch the embedded experience and see details and event history
Note : This is the default experience", "object": { "summary": "This is definitely interesting", "id": "commentid", "objectType": "comment", "displayName": "Definitely interesting", "url": "http://w3.ibm.com" }, "target": { "summary": "A totally new way of looking atthings", "id": "thisid", "displayName": "Something Interesting", "url": "http://w3.ibm.com" }, "connections": { "rollupid": "thisid" } } 33. Add Embeddied Experience { "generator": { "image": { "url": "http://ebmedia.eventbrite.com/s3-build/images/6261669/36270708046/1/logo.png" }, "id": "SocialConnectionsVI", "displayName": "Social Connections VI", "url": "http://socialconnections.info/events/social-connections-vi" }, "actor": { "id": "@me" }, "verb": "comment", "title": "${comment}", "content": "Click on this entry to launch the embedded experience and see details and event history
Note : This is the default experience", "object": { "summary": "This is definitely interesting", "id": "commentid", "objectType": "comment", "displayName": "Definitely interesting", "url": "http://w3.ibm.com" }, "target": { "summary": "A totally new way of looking at things", "id": "thisid", "displayName": "Something Interesting", "url": "http://w3.ibm.com" }, "connections": { "rollupid": "thisid" }, "openSocial": { "embed": { "gadget": "http://inspirationalgadget.googlecode.com/svn/trunk/wisdom.xml", "context": { "id": "12345" } } } } 34. Integration with IBM Products 35. Notes Heavily Integrated within Notes Activity Stream gadget can live in multiple places AS gadget in narrow mode on side bar AS gadget in full mode within it's own window Multiple Embedded Experience gadgets used also Repling to Forums Context Menu Actions and Controls 36. Portal Fully functional Activity Stream able to live anywhere inside Portal Can be associated to user's I'm Following or to a community Portal_AS_Integration.mp4 Video with presentation's zip on IBM Greehouse here 37. Life in 3rd Party Apps Activity Stream OSG can be loaded into any Open Social Container Also the Connection's EEs could be leveraged Notes is an example of this All of this could be integrated with 3rd Party Event + EEs Living in 3rd Party applications 38. Conclusion With more relevant Content And located in related areas of products Will push more traffic into Connections And begin to leverage it's full potential Can have you own Activity Stream wherever you want 39. Q&A 40. Acknowledgements and Disclaimers Availability. 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. The workshops, sessions and materials have been prepared by IBM or the session speakers and reflect their own views. They are provided for informational purposes only, and are neither intended to, nor shall have the effect of being, legal or other guidance or advice to any participant. While efforts were made to verify the completeness and accuracy of the information contained in this presentation, it is provided AS-IS without warranty of any kind, express or implied. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, this presentation or any other materials. Nothing contained in this presentation 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. 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. 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. Copyright IBM Corporation 2014. All rights reserved. U.S. Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. IBM, the IBM logo, ibm.com,and IBM Connections, and IBM FileNet are trademarks or registered trademarks of International Business Machines Corporation in the United States, other countries, or both. If these and other IBM trademarked terms are marked on their first occurrence in this information with a trademark symbol ( or ), these symbols indicate U.S. registered or common law trademarks owned by IBM at the time this information was published. Such trademarks may also be registered or common law trademarks in other countries. A current list of IBM trademarks is available on the Web at Copyright and trademark information at www.ibm.com/legal/copytrade.shtml Other company, product, or service names may be trademarks or service marks of others.