34
Vienna, October 16-17 2017 IBM Connections Customizer A Whole New World of Possibilities Martin Donnelly Brian Gleeson Room 3, Oct 17 2017, 9:40am - 10:40am

IBM Connections Customizer – A Whole New World of Possibilities

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

PLATINUM SPONSORS

GOLD SPONSORS

SILVER SPONSORS

BRONZE SPONSORS

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

Thank You

Thank You

PLATINUM SPONSORS

GOLD SPONSORS

SILVER SPONSORS

BRONZE SPONSORS