Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
1309 leveraging social business data visualizing the connections org structure
1. 1309 Leveraging Social Business
Data: Visualizing the Connections Org
Structure
Halvdan Barrett
Matthew Milza
2. 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.
3. Agenda
• IBM Connections Development Detailed Overview
• Visualizing the Connections Org Structure
• Social Sidebar Example
• Touchpoint Example
5. IBM Connection as a Social Software Platform
• IBM Connections provides a large number of extension points
• This presentation focuses on creating applications that extend
IBM Connections capabilities. These separate applications will
perform CRUD (Create, Read, Update, Delete) operations with
IBM Connections leveraging the REST API.
7. IBM Connections - APIs
• The IBM® Connections applications (Activities, Blogs, Bookmarks, Communities, Files, Forums, Profiles, and
Wikis) and the IBM Connections Homepage all provide application programming interfaces (APIs) that enable
you to integrate them with other applications. Using the interfaces, you can programmatically access and
update much of the same information that you can access and update through the IBM Connections user
interface.
• Like the IBM® Connections user interface, the application programming interfaces (APIs) for
the IBM Connections applications are accessed using HTTP, so they work over your intranet from any
program that can send and receive HTTP.
• The IBM Connections APIs use the Atom Syndication Format and JSON (JavaScript Object Notation) for
providing information that your programs can retrieve.
8. Is there an API for that?
• Most IBM Connections UI capabilities have a corresponding
API
• Check the API Documentation for the availability of an API
https://ibm.biz/55APIdoc
For example the following API
• https://enterprise.example.com/blogs/follow/atom/resources?
source=blogs&type=blog
9. Authenticating the request
• Form-Based Authentication
This is usually used by the IBM Connections components themselves
when using the APIs from the browser. Typically, APIs using Form-based
authentication has /form/ in the request URI
• Basic Authentication
API programs that use the basic authentication to access protected
resources need to provide a user name and password. Typically, APIs
using basic authentication /basic/ in the request URI
• Oauth Authorization
Supports the OAuth 2.0 standard authorization protocol. Typically, APIs
using 'OAuth' have the /oauth/ in the request URI.
10. IBM Connections APIs
• IBM Connections APIs are based on Atom standard
• No!
You don't need to use your college Physics textbook
11. Introduction to Atom
• What is Atom?
Similar to RSS – places content into machine parseable file
RSS 1.0 --> Too complicated
RSS 2.0 --> Too loosely defined
• Atom spec developed by volunteers using a Wiki
• It's really a pair of standards
12. Introduction to Atom (cont'd)
• More specifically, it uses Atom Publishing Protocol (APP)
HTTP-based application-level protocol for publishing using Atom
feed
Requires two documents: Service and Category
• Service allows feed discovery
• Category lists categories for collections / web content
• Atom feed is a well-formed XML
Commonly used for blog feeds (similar to RSS)
13. Atom vs Web Services
• How does Atom compare to SOAP / Web Services ?
• SOAP is open-ended – service defines the XML
• Atom already has constructs defined
Person
Entry
Feed, etc
• You can have your own elements by extending XML
• Atom leverages existing HTTP actions: GET, POST, PUT, DELETE
• No longer need to write your own web service (getPost(), createPost(), etc...
14. Authenticating with Atom
• Atom specifies that HTTP BasicAuth should be used as its
authentication scheme
• Here's an example: A client sends a GET request to retrieve an html file over SSL
GET /private/index.html HTTP/1.0
Host: localhost
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Server response:
HTTP/1.0 200 OK
Date: Sat, 27 Nov 2006 10:19:07 GMT
Content-Type: text/html
15. Atom Example
• First retrieve the user profile based on email address
fadams@greenwell.com Notice the @ is encoded with %40
https://server.connections.com/profiles/atom/profile.do?
email=fadams%40greenwell.com
• This returns the following XML with links to information about
the profile
16. Atom Example Cont’d
• Parse the returned XML for the link to the photo for Frank
Adams
<div><img
src="https://server.connections.com/profiles/photo.do?
key=236efdbf-3bdf-4d2c-925c-
50111939a185&lastMod=1449687796139"
class="photo"></img></div>
17. Atom Example Cont’d
• Retrieve the photo for Frank adams
https://server.connections.com/profiles/photo.do?key=236efdbf-
3bdf-4d2c-925c-50111939a185&lastMod=1449687796139"
class="photo">
18. Introduction to JSON
• IBM Connections OpenSocial APIs are based on the JSON
standard
• No!
They did not leave the A out of Jason
19. JSON and XML comparison
• Much Like XML Because
Both JSON and XML is "self describing" (human readable)
Both JSON and XML is hierarchical (values within values)
Both JSON and XML can be parsed and used by lots of programming languages
Both JSON and XML can be fetched with an XMLHttpRequest
• Much Unlike XML Because
JSON doesn't use end tag
JSON is shorter
JSON is quicker to read and write
JSON can use arrays
• The biggest difference is:
XML has to be parsed with an XML parser, JSON can be parsed by a standard JavaScript function.
20. OpenSocial APIs
• All of the Connections Open Social APIs work from a single root
-http://server.connections.com/connections/opensocial/rest
• Appended to this is the name of the particular API you'd like to use.
activitystreams - for viewing and sending rich events to the Activity Stream
ublog - for viewing and posting status updates and comments
people - getting information about the current user
• After this, there is normally the user of interest (typically '@me') followed by
the group of interest (typically '@all')
• So for example, if you want to see the current users (@me) most recent activity stream
events from all sources (@all) you would make a GET request to
-http://server.connections.com/context_root/connections/opensocial/rest/activitystreams
/@me/@all
21. OpenSocial APIs Authorization
• The current logged in user can retrieve their activity stream with the following url
http://connections.server.com/connections/opensocial/rest/activitystreams/@me/@all
• Connections supports basic and OAuth
authentication/authorization , but each is available on its own
URL. The above URL would become one of the following
Basic
http://connections.server.com/connections/opensocial/basic/rest/
activitystreams/@me/@all
Oauth
http://connections.server.com/connections/opensocial/oauth/rest/
activitystreams/@me/@all
22. JSON Example
• Retrieve the users activity stream
http://server.connections.com/connections/opensocial/rest/activit
ystreams/@me/@all
• The result starts with same basic information about the query
{"startIndex":0,"totalResults":-1,"connections":
{"isAdmin":"false","unreadNotifications":14},"filtered":true,"title":"I
BM Connections - News feed for Frank
Adams","itemsPerPage":20,"sorted":true,"list"
23. JSON Example Cont’d
• The activity stream is returned
"http://tscr3test.ibmcollabcloud.com/connections/resources/web/c
om.ibm.oneui3.styles/imageLibrary/Icons/ComponentsGray/Blog
sGray16.png?
etag=20150811.191529","numLikes":"1","summary":"u003cp
dir="ltr"u003eWant to have a more power CRM to use in the
field.
25. The Big Picture
• Data overwhelms us
• New data is being created constantly
• APIs are more and more common
• How can we understand the data better and see changes in or
near real time?
26. The Presentation Layer
• Browser centric presentation layer with iWidget/Open Social
• Javascript – extremely versatile, ubiquitous
• D3.js - A js library for visualizing data with web browser
technology.
27. The Data Source
• Connections offers many data views from its API
• Tapping into these data sources is half of the lift
• Presentation is key to understanding
• D3 integrates with many data types (json, xml, csv, Morse code :)
28. What can D3 do?
D3 can take data such as these json and xml examples…
30. But wait, there’s more!
• The D3 experience is interactive
• Animations can be controlled to a fine degree
• Use cases:
Charts
Maps
Trees
Chord Diagrams
And more
31. Connections API on D3
• Presenting hierarchical data in D3 is a core functionality
• The Connections organizational structure is ripe for this
• Social media data/content is rich with data relationships
• Accessing data via the Connections API is recommended
• Creating a widget using D3 is natural fit
35. What’s next?
• Reporting structure is basic, can more be done?
• More sophisticated data relationships
Users' friend network
Forum threads
Interaction charts (chord diagrams)
Analytics
37. Provide immediate, in-context access to IBM Connections capabilities to
increase user adoption and social engagement
37
Surface Social Sidebar on any corporate web
page
Quickly share status without switching back to
Connections
Monitor Connections activities easily
Customize the UI to match organization
branding or visual identity
IBM Connections Social Sidebar
Access and share Connections content from any corporate web page
New for Q4 2015
Updated deployment documentation
Improved UI
@Mentions
Expanded community list
Bookmark list
New for Q4 2015
Updated deployment documentation
Improved UI
@Mentions
Expanded community list
Bookmark list
38. 38
IBM Connections Social Sidebar
Access and share Connections content from any corporate web page
Share status updates to Connections from Social Sidebar
39. View status updates for people you are
following
39
IBM Connections Social Sidebar
Access and share Connections content from any corporate web page
Notification tab flashes to indicate new
content
40. 40
IBM Connections Social Sidebar
Access and share Connections content from any corporate web page
Navigate quickly to Communities
41. 41
IBM Connections Social Sidebar
Access and share Connections content from any corporate web page
Don’t miss any @mentions
42. IBM Connections Social Sidebar
• Easy to embed onto any webpage
• Just insert one script element
<script id="social-sidebarbar-boot-script"
src="SocialSidebar/hub/js/boot.js"></script>
44. IBM Connections Touchpoint
Engage employees from the start
44
Touchpoint ensures that users populate their network and start
following people and content so their experience is richer from
the start
By completing their profile and tagging themselves, users are more
likely to be found by others when searching
Touchpoint helps people reach a critical mass of contacts and
content faster
People learn how to leverage Connections for business from one
another. Having active contributors and content engages people in
conversation and encourages them to share as well
45. IBM Connections Touchpoint
Engage employees from the start
45
Touchpoint
• Greets users entering IBM Connections for the first time
• Asks users to agree to company policies
• Guides users to complete profile fields & upload photo
• Prompts users to tag themselves
• Proposes colleagues to invite as network connections
• Suggests colleagues and communities for users to follow
• Plays a video, e.g. a welcome message from the CEO
Touchpoint can be customized to meet your needs
46. IBM Connections Touchpoint
Engage employees from the start
46
Touchpoint accelerates adoption of users to the system, especially in
the start-up phase
The whole organization starts connecting faster
Touchpoint helps you make a good first impression
Explain why Connections is strategic to your organization and why people
should spend their time there
We recommend that Touchpoint be part of an overall adoption
strategy
Adoption efforts should cover both bottom-up and top-down initiatives
51. IBM Connections Touchpoint
Engage employees from the start
51
A dynamic list of people
is rendered, based on a
query which includes
the tags entered in the
previous frame.
52. IBM Connections Touchpoint
Engage employees from the start
52
If a search string is
entered, people
with a matching
name will appear.
53. IBM Connections Touchpoint
Engage employees from the start
53
People to follow is built
from the 'promotions'
feature of Touchpoint.
In the current version, this is a
static list of important people,
configured in Touchpoint. This
feature can be customized to
create a more dynamic list
based of profile attributes.
54. IBM Connections Touchpoint
Engage employees from the start
54
Communities to
follow is built from
the 'promotions'
feature of
Touchpoint.
A static list in the current
version, but this can be
customized to be more
dynamic.
56. Notices and Disclaimers cont.
Information concerning non-IBM products was obtained from the suppliers of those products, their published announcements or other publicly available
sources. IBM has not tested those products in connection with this publication and cannot confirm the accuracy of performance, compatibility or any other
claims related to non-IBM products. Questions on the capabilities of non-IBM products should be addressed to the suppliers of those products. IBM does not
warrant the quality of any third-party products, or the ability of any such third-party products to interoperate with IBM’s products. IBM EXPRESSLY DISCLAIMS
ALL WARRANTIES, EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
FOR A PARTICULAR PURPOSE.
The provision of the information contained herein is not intended to, and does not, grant any right or license under any IBM patents, copyrights, trademarks or
other intellectual property right.
•IBM, the IBM logo, ibm.com, Aspera®, Bluemix, Blueworks Live, CICS, Clearcase, Cognos®, DOORS®, Emptoris®, Enterprise Document Management
System™, FASP®, FileNet®, Global Business Services ®, Global Technology Services ®, IBM ExperienceOne™, IBM SmartCloud®, IBM Social Business®,
Information on Demand, ILOG, Maximo®, MQIntegrator®, MQSeries®, Netcool®, OMEGAMON, OpenPower, PureAnalytics™, PureApplication®,
pureCluster™, PureCoverage®, PureData®, PureExperience®, PureFlex®, pureQuery®, pureScale®, PureSystems®, QRadar®, Rational®, Rhapsody®,
Smarter Commerce®, SoDA, SPSS, Sterling Commerce®, StoredIQ, Tealeaf®, Tivoli®, Trusteer®, Unica®, urban{code}®, Watson, WebSphere®, Worklight®,
X-Force® and System z® Z/OS, are trademarks of International Business Machines Corporation, registered in many jurisdictions worldwide. Other product and
service names might be trademarks of IBM or other companies. A current list of IBM trademarks is available on the Web at "Copyright and trademark
information" at: www.ibm.com/legal/copytrade.shtml.
Sidebar exposes Connections functionality into other web applications through inclusion of 1 line of JavaScript. Users can keep track of their activity stream and perform standard actions without leaving their web application. The next release planned for Q4 2015 will provide improved user interface and easier deployment.
Sidebar exposes Connections functionality into other web applications through inclusion of 1 line of JavaScript. Users can keep track of their activity stream and perform standard actions without leaving their web application. The next release planned for Q4 2015 will provide improved user interface and easier deployment.
Sidebar exposes Connections functionality into other web applications through inclusion of 1 line of JavaScript. Users can keep track of their activity stream and perform standard actions without leaving their web application. The next release planned for Q4 2015 will provide improved user interface and easier deployment.
Sidebar exposes Connections functionality into other web applications through inclusion of 1 line of JavaScript. Users can keep track of their activity stream and perform standard actions without leaving their web application. The next release planned for Q4 2015 will provide improved user interface and easier deployment.
Sidebar exposes Connections functionality into other web applications through inclusion of 1 line of JavaScript. Users can keep track of their activity stream and perform standard actions without leaving their web application. The next release planned for Q4 2015 will provide improved user interface and easier deployment.