Upload
social-connections
View
244
Download
1
Embed Size (px)
Citation preview
Vienna, October 16-17 2017
IBM Connections Customizer – A Whole New World of PossibilitiesMartin Donnelly
Brian Gleeson
Room 3, Oct 17 2017, 9:40am - 10:40am
Social Connections 11 Chicago, June 1-2 2017Social Connections 12 Vienna, October 16-17 2017
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.
Social Connections 11 Chicago, June 1-2 2017Social Connections 12 Vienna, October 16-17 2017
Vienna, October 16-17 2017
Brian Gleeson
Software Developer
@BGleesonIE
Martin Donnelly
Software Architect
@TweeterDonnelly
Social Connections 11 Chicago, June 1-2 2017Social Connections 12 Vienna, October 16-17 2017
Agenda
• IBM Connections Customizer – What, Why & How…
• Say Hello to IBM Connections App Registry
• Demo Time
• Technical Summary
• Art of the Possible
• Wrap Up
Social Connections 11 Chicago, June 1-2 2017Social Connections 12 Vienna, October 16-17 2017
Vienna, October 16-17 2017
IBM Customizer
Why, What & How…
Social Connections 11 Chicago, June 1-2 2017Social Connections 12 Vienna, October 16-17 2017
IBM Connections Customizer
• … formerly known as Muse
• tool for modifying the IBM Connections UI
• an intelligent server that acts as an
intermediary between and endpoint device
and another server from which a user is
requesting a service - a proxy
Social Connections 11 Chicago, June 1-2 2017Social Connections 12 Vienna, October 16-17 2017
IBM Connections Customizer
• As a proxy between the request and response it can:
• change behavior of the service its sitting in front of…
• rewrite requests
• rewrite responses
• inject custom items
• do predictive caching
• do pretty much anything :-)
Social Connections 11 Chicago, June 1-2 2017Social Connections 12 Vienna, October 16-17 2017
Simple Request Routing
Connections
21
Social Connections 11 Chicago, June 1-2 2017Social Connections 12 Vienna, October 16-17 2017
Simple Request Routing
Connections Customizer
1
2
3
4
Social Connections 11 Chicago, June 1-2 2017Social Connections 12 Vienna, October 16-17 2017
Customizer with App Registry
Connections Customizer
Adjust payload
Customer 1 Customer 2For User 1
Customization
ManagerApp Registry
For Community X
Social Connections 11 Chicago, June 1-2 2017Social Connections 12 Vienna, October 16-17 2017
Vienna, October 16-17 2017
Say Hello to the
IBM Connections App Registry
Social Connections 11 Chicago, June 1-2 2017Social Connections 12 Vienna, October 16-17 2017
What is App Registry ?
In general terms…
• A central app design repo with UI and API access
• Helps manage and deploy apps on a per-org basis
• Provides a hierarchical model for defining applications
1. Services (e.g. OrientMe, ITM etc) declare Extension Points that expose customizable features
2. Apps are just containers for one or more extensions
3. An Extension is an implementation of an Extension Point
Service
App
Ext1 Ext2
App
Ext
Social Connections 11 Chicago, June 1-2 2017Social Connections 12 Vienna, October 16-17 2017
Simplified Anatomy of an App
{
"services": ["Customizer"],
"name": "Custom Communities",
"extensions": [ {
"type": "com.ibm.customizer.ui",
"path": "communities",
"payload": {
"include-files":["flipcard.js"]
}}]}
Customizer
Homepage Customizations
Kanban Watson Tone Analysis
Custom Communities
Flip Card Layout
Social Connections 11 Chicago, June 1-2 2017Social Connections 12 Vienna, October 16-17 2017
App Reg Design Properties
• type – identifies the extension point being implemented
com.ibm.customizer.ui | com.ibm.customizer.api
• path – in Customizer context it identifies the URL path
https://apps.collabservintegration.com/profiles/html/myProfileView.do#&tabinst=Updates
activities
blogs
communities
files
forums
global *
homepage
mycontacts
news
profiles
search
wikis
GET /appregistry/api/v2/services/Customizer/extensions?type= com.ibm.customizer.ui&path=profiles
Sample URL
App Reg REST Query
Valid Paths
Social Connections 11 Chicago, June 1-2 2017Social Connections 12 Vienna, October 16-17 2017
Vienna, October 16-17 2017
Demo
Time
Social Connections 11 Chicago, June 1-2 2017Social Connections 12 Vienna, October 16-17 2017
Vienna, October 16-17 2017
Technical Summary
Social Connections 11 Chicago, June 1-2 2017Social Connections 12 Vienna, October 16-17 2017
Customizer Design Properties
Customizer payload section exposes various properties
• match - url
• A regular expression can be used to match against the current request
• e.g. id=[a-z0-9]{8}-([a-z0-9]{4}-){3}[a-z0-9]{12} to test for a GUID in the URL
• user-name – compares specified value to the currently logged in user
• user-email – compares specified value to the email address current user
• user-id – compares specified value to user id (aka subscriber id)
• include-files – one or more files to inject e.g. “main.js”
Social Connections 11 Chicago, June 1-2 2017Social Connections 12 Vienna, October 16-17 2017
Managing Include Files
Where do the “include-files” reside?• On Cloud injected resources are synched and managed by a Files microservice
How to upload your include files to IBM Connections Cloudo Store your extension resources in your own GitHub repo
o Share your repo with IBM (https://github.com/ibmcnxdev)
o Issue a pull request to IBM when your extension is ready
o IBM merges pull request once acceptance criteria are met
o Repo files are pushed to Cloud via a webhook upon merge
o Rinse & repeat starting at Step #3 for extension updates
Social Connections 11 Chicago, June 1-2 2017Social Connections 12 Vienna, October 16-17 2017
IBM
Customizer
Request
Lifecycle
Social Connections 11 Chicago, June 1-2 2017Social Connections 12 Vienna, October 16-17 2017
IBM Customizer Big Picture
Social Connections 11 Chicago, June 1-2 2017Social Connections 12 Vienna, October 16-17 2017
Vienna, October 16-17 2017
Art of the Possible
Social Connections 11 Chicago, June 1-2 2017Social Connections 12 Vienna, October 16-17 2017
Enhanced Activity Stream
• https://github.com/OpenCode4Connections/enhanced-activity-stream
• Jay Agrawal
Social Connections 11 Chicago, June 1-2 2017Social Connections 12 Vienna, October 16-17 2017
Status Tone Analyzer
• https://github.com/OpenCode4Connections/status-update-tone-analyzer
• John Jardin
Social Connections 11 Chicago, June 1-2 2017Social Connections 12 Vienna, October 16-17 2017
Communities 3D Search
• https://github.com/OpenCode4Connections/bluemix-weather-widget
• https://github.com/OpenCode4Connections/watson-workspace-links
• Brian Gleeson
Social Connections 11 Chicago, June 1-2 2017Social Connections 12 Vienna, October 16-17 2017
3D Search
• IBM China Dev Team
Social Connections 11 Chicago, June 1-2 2017Social Connections 12 Vienna, October 16-17 2017
Summary
• Customizer is a Tactical Solution – not everything is a nail !
• Strategic solution for customizations is based on extension points
• Services declare extension points for customizable features
• Customizations are contributed according to the extension point rules
• Customizer extensions are based on a “man-in-the-middle” approach
• Intercept and modify interesting request/responses
• More fragile than an extension point mechanism
• But a good tactical solution where no extension points are in place
Social Connections 11 Chicago, June 1-2 2017Social Connections 12 Vienna, October 16-17 2017
Vienna, October 16-17 2017
Wrap Up
Social Connections 11 Chicago, June 1-2 2017Social Connections 12 Vienna, October 16-17 2017
Expand your Customizer Horizons
• A new open source community puts more extensions at your fingertips
• https://opencode4connections.org
• Associated open source repo – github.com/opencode4connections
Social Connections 11 Chicago, June 1-2 2017Social Connections 12 Vienna, October 16-17 2017
Our Next Session
• For a preview of Pink customization via extension points…
Social Connections 11 Chicago, June 1-2 2017Social Connections 12 Vienna, October 16-17 2017
Useful Resources
Check out the doc and samples on the Connections Developer GitHub site
https://github.com/ibmcnxdev/customizer/
https://github.com/ibmcnxdev/customizer/blob/master/README.md
https://github.com/ibmcnxdev/customizer/tree/master/docs
https://github.com/ibmcnxdev/customizer/tree/master/samples
https://github.com/ibmcnxdev/customizer/blob/master/docs/IBMConnectionsCustomizer.pdf
Help start a new community :https://opencode4connections.org
Watch some short videos on the OpenNTF YouTube channel http://bit.ly/2xmUuj5
Social Connections 11 Chicago, June 1-2 2017Social Connections 12 Vienna, October 16-17 2017
Useful Resources
For a Jump Start with User Script Add-Ons etc.• https://greasyfork.org/en
• https://tampermonkey.net/
• http://www.greasespot.net/
• https://zach-adams.com/2014/05/best-userscripts-tampermonkey-greasemonkey/
• https://www.lifewire.com/top-greasemonkey-tampermonkey-user-scripts-4134335