Sie sind auf Seite 1von 415

Building and Implementing

Social Digital Experiences

Aravin Pratapagiri
Basem Zaben
Catalin Mierlea
Chander Ponnusamy
David Greenstein
Deana Coble
Francesco De Collibus
Gavin Siller
Jackie Zhu
Jyoti Rani
Michele Buccarello
Vidyut Verma

Note: This PDF document is the original text from the Preparing Building and Implementing Social Digital
Experiences hosted in the online wiki site. Always refer to the online version for the latest updates.
Contents

Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .i
The team who wrote this guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ii
Supporting contributors and reviewers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v
Become a contributor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vi
Comments are welcome . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vi
Stay connected to IBM Redbooks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vi
What is in this guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii

Chapter 1. Introduction to a social portal . . . . . . . . . . . . . . . . . . . . . . . . . . . 1


1.1 Products and their capabilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Infusing third party social sites with your social portal. . . . . . . . . . . . . . . . . 4

Chapter 2. Introduction to social business. . . . . . . . . . . . . . . . . . . . . . . . . . 7


2.1 What does it mean to be a social business? . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2 Value of social business . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3 Common industry technology, strategy, and business opportunities . . . . . 9
2.4 Social business patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.4.1 Finding expertise. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.4.2 Gaining external customer insights . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.4.3 Increasing knowledge sharing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.4.4 Improving recruiting and on-boarding . . . . . . . . . . . . . . . . . . . . . . . . 11
2.4.5 Managing mergers and acquisitions . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.4.6 Enabling and improving workplace safety . . . . . . . . . . . . . . . . . . . . . 12
2.5 Implementing social business . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.5.1 Social customer relationship management (CRM) . . . . . . . . . . . . . . 12
2.5.2 Social business process management (BPM) . . . . . . . . . . . . . . . . . 13
2.5.3 Social content management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

Chapter 3. Defining the social portal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15


3.1 How social capabilities can improve a website . . . . . . . . . . . . . . . . . . . . . 16
3.1.1 Business value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.1.2 Capabilities required for a social website . . . . . . . . . . . . . . . . . . . . . 18
3.1.3 IBM Connections case studies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.2 Methods to infuse social into a website. . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.2.1 Pattern 1: Adding social alongside an existing website . . . . . . . . . . 23
3.2.2 Pattern 2: Putting social into context . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.2.3 Pattern 3: Making WCM authoring social . . . . . . . . . . . . . . . . . . . . . 25

Chapter 4. Architecture and setting up the server infrastructure. . . . . . . 27

Copyright IBM Corp. 2014. All rights reserved. iii


4.1 IBM software components for your site . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.2 Types of sites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.3 Factors influencing deployment architecture . . . . . . . . . . . . . . . . . . . . . . . 28
4.4 Environments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.5 Choosing between on-premise and cloud . . . . . . . . . . . . . . . . . . . . . . . . . 30
4.5.1 On-premise hosting vs cloud hosting . . . . . . . . . . . . . . . . . . . . . . . . 30
4.5.2 Cloud hosting with IBM SmartCloud Enterprise . . . . . . . . . . . . . . . . 31
4.6 Hardware and software considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.6.1 Software considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.6.2 Hardware considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.7 Deployment patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.7.1 Dynamic cluster considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.8 Core infrastructure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.8.1 Prerequisites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.8.2 Custom theme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.8.3 Topology for integrating WebSphere Portal Extend Version 8.0.0.1 with
IBM Connections Version 4.5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.8.4 General deployment guidelines. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.8.5 General setup to facilitate integration . . . . . . . . . . . . . . . . . . . . . . . . 38
4.8.6 Enabling community pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.8.7 Setting up IBM Connections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.8.8 Setting up IBM WebSphere Portal and IBM Web Content Manager. 40
4.8.9 Setting up IBM Security Directory Server . . . . . . . . . . . . . . . . . . . . . 47
4.8.10 Setting up Tivoli Directory Integrator . . . . . . . . . . . . . . . . . . . . . . . . 50
4.8.11 Storing IBM Connections content in IBM FileNet Content Manager 58
4.9 Setting up security. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4.9.1 Using LTPA for single sign on between IBM Connections and
WebSphere Portal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4.9.2 Other mechanisms for SSO between IBM Connections and WebSphere
Portal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
4.9.3 Setting up federated repositories and application security . . . . . . . . 64
4.10 Troubleshooting. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
4.11 Search and tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

Chapter 5. Setting up a development environment . . . . . . . . . . . . . . . . . . 73


5.1 Rational Application Developer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
5.1.1 Features of Rational Application Developer . . . . . . . . . . . . . . . . . . . 74
5.1.2 Installation of Rational Application Developer . . . . . . . . . . . . . . . . . . 75
5.2 IBM Web Experience Factory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
5.2.1 Features of IBM Web Experience Factory . . . . . . . . . . . . . . . . . . . . 76
5.2.2 Installation of IBM Web Experience Factory . . . . . . . . . . . . . . . . . . . 77

Chapter 6. Pattern 1: Adding social alongside an existing portal . . . . . . 79

iv
6.1 Why use side by side . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
6.2 How IBM Connections helps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
6.3 Deployment process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
6.4 Integrating Portal and Connections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
6.4.1 Configuring the same HTTP server for IBM WebSphere Portal and IBM
Connections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
6.4.2 Integrating IBM WebSphere Portal and IBM Connections using the Web
Application Integrator (WAI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
6.5 Customizing IBM Connections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
6.5.1 Customizing the login page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
6.5.2 Customizing the user interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

Chapter 7. Pattern 2: Putting social into context . . . . . . . . . . . . . . . . . . . . 99


7.1 Prerequisites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
7.1.1 Configuring AJAX Global Proxy . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
7.1.2 Configuring theme modules for social portlets . . . . . . . . . . . . . . . . 103
7.2 Community pages and IBM Connections portlets . . . . . . . . . . . . . . . . . . 105
7.2.1 Installing and configuring IBM Connections portlets . . . . . . . . . . . . 106
7.2.2 Creating community pages on portal . . . . . . . . . . . . . . . . . . . . . . . 107
7.2.3 Configuring WebSphere Virtual Member Manager (VMM) . . . . . . . 113
7.2.4 Configuring IBM Connection business card on portal . . . . . . . . . . . 116
7.2.5 Configuring tag portlet using configuration and wires . . . . . . . . . . . 119
7.2.6 Using list and detail portlet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
7.3 WCM social rendering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
7.3.1 Social rendering features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
7.3.2 Configuring social rendering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
7.3.3 Social list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
7.3.4 Adding social list to a portal page . . . . . . . . . . . . . . . . . . . . . . . . . . 136
7.3.5 New capabilities in social rendering . . . . . . . . . . . . . . . . . . . . . . . . 152
7.3.6 Using WCM to render social content. . . . . . . . . . . . . . . . . . . . . . . . 180
7.3.7 Example: Get blog posts, get community files, etc . . . . . . . . . . . . . 194
7.4 Digital Data Connector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
7.4.1 DDC Setup and Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
7.4.2 Connecting DDC to an External Datasource. . . . . . . . . . . . . . . . . . 197
7.4.3 Customizing the Display of a DDC List . . . . . . . . . . . . . . . . . . . . . . 207
7.5 Using IBM Connections as a platform . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
7.6 Using third party social credentials to log into your social website . . . . . 213
7.7 When you stay within Portal and when you need to step out of Portal . . 215

Chapter 8. Pattern 3: Making WCM authoring social . . . . . . . . . . . . . . . . 219


8.1 Publishing content from WCM to IBM Connections using the Social Media
Publisher. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
8.1.1 Installing and configuring Social Media Publisher . . . . . . . . . . . . . . 221

Contents v
8.1.2 Configuring credential vault and Social Media Publisher global settings
222
8.1.3 Setting up Social Media Publisher for Events authoring template . 226
8.1.4 Adding Social Media Publisher actions to WCM workflow . . . . . . . 229
8.1.5 Test publication process and see the results . . . . . . . . . . . . . . . . . 233
8.2 Sending a WCM workflow notification to Connections Activity Streams . 236
8.2.1 Prerequisites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
8.2.2 Creating a workflow action class for posting to an Activity Stream . 239
8.2.3 Adding the custom action to a WCM workflow . . . . . . . . . . . . . . . . 247
8.2.4 Testing the approval notification . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
8.3 Action a Workflow Action Request via an Embedded Experience Open Social
Gadget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
8.3.1 OpenSocial Gadget use case scenario . . . . . . . . . . . . . . . . . . . . . . 256
8.3.2 Prerequisites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
8.3.3 OpenSocial in IBM Connections . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
8.3.4 Configuring IBM Connections to host a third party gadget . . . . . . . 260
8.3.5 Extending WCM Activity post to reference OpenSocial gadget
implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
8.3.6 Implementing OpenSocial gadget . . . . . . . . . . . . . . . . . . . . . . . . . . 264
8.3.7 Testing the OpenSocial gadget implementation . . . . . . . . . . . . . . . 267

Chapter 9. Making business applications social . . . . . . . . . . . . . . . . . . . 271


9.1 Using the social business toolkit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
9.2 IBM Script portlets for WebSphere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
9.2.1 Installing IBM Script portlets for WebSphere . . . . . . . . . . . . . . . . . 274
9.2.2 Development user interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
9.2.3 Social business scenario using IBM Script portlets. . . . . . . . . . . . . 276
9.2.4 Implementing the social business scenario using IBM Script portlets. .
277
9.3 IBM Docs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
9.3.1 IBM Docs deployment options . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
9.3.2 Installation steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
9.4 IBM Forms Experience Builder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
9.4.1 Preparing for installing IBM Forms Experience Builder. . . . . . . . . . 284
9.4.2 Installing IBM Forms Experience Builder . . . . . . . . . . . . . . . . . . . . 292
9.4.3 Integrating IBM Forms with IBM Connections . . . . . . . . . . . . . . . . . 300
9.4.4 Create Survey in the Community and check the Activity Stream . . 312
9.4.5 Integrating Forms with WebSphere Portal . . . . . . . . . . . . . . . . . . . 316

Chapter 10. Searching your social website . . . . . . . . . . . . . . . . . . . . . . . 331


10.1 Integrating Connections and Portal search overview . . . . . . . . . . . . . . 332
10.2 Configuring search collections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332
10.3 Configuring remote content search service . . . . . . . . . . . . . . . . . . . . . . 337

vi
10.3.1 Configuring a Connections user to have the Portal Administrator role
337
10.3.2 Configuring Portal to create a RCSS service . . . . . . . . . . . . . . . . 338
10.4 Setting up portal search/summary portlet to Connections details portlet
navigation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
10.5 Configuring standalone content navigation . . . . . . . . . . . . . . . . . . . . . . 342

Chapter 11. Social analytics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345


11.1 Integrating with IBM Cognos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
11.1.1 Understanding IBM Cognos in a social business environment . . . 346
11.1.2 Setting up IBM Cognos to work with IBM Connections . . . . . . . . . 347
11.1.3 Understanding how Metrics application works in IBM Connections347
11.1.4 Built-in metrics for IBM Connections . . . . . . . . . . . . . . . . . . . . . . . 354
11.1.5 Build a custom report for IBM Connections. . . . . . . . . . . . . . . . . . 369
11.1.6 Integrating with IBM WebSphere Portal . . . . . . . . . . . . . . . . . . . . 390
11.2 Integration with Google Analytics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392
11.2.1 IBM Active Site Analytics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392
11.2.2 Write custom aggregator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393
11.2.3 Setting up WebDav resources and page metadata . . . . . . . . . . . 395

Contents vii
viii
Preface

IBM Lotus and IBM Redbooks have partnered together to show you by
example how to build and implement a Social Digital Experience using
WebSphere Portal Server with IBM Connections.

The guide is divided into the following sections:


Introduction to a social portal
Defining the social portal
Architecture and setting up the server infrastructure
Setting up a development environment
Pattern 1: Adding social alongside an existing portal
Pattern 2: Putting social into context
Making business applications social
Searching your social website
Pattern 3: Making WCM authoring social
Social analytics

DISCLAIMER: This guide is not intended as a best practice for social portal
development, configuration, architecture, or any other aspect, such as scalability
or performance. No warranty or support is implied for the sample codes
contained in the guide.

Copyright IBM Corp. 2014. All rights reserved. ix


The team who wrote this guide
This guide was produced by a team of technical specialists from around the
world working for the International Technical Support Organization

Deana Coble is an IBM Redbooks Technical Writer. She


has worked over 20 years in the field of technology and
collaborates with IBM subject matter experts to create
IBM Redbooks publications on a variety of systems.
Follow Deana on Twitter at @DeanaCoble

Michele Buccarello is an IBM Connections Specialist


working in SOWRE SA Switzerland. He has 4 years of
experience in complex IBM Connections projects. His
areas of expertise include IBM WebSphere Portal, IBM
Forms Experience Builder, IBM Cognos Connections
and many advanced techniques to integrate applications
in WebSphere Portal and IBM Connections projects. He
authored tutorials and articles both for IBM Connections
and WebSphere Portal.

Francesco De Collibus is an Solution Architect, working


in IBM Software Services for Collaboration european
CoE from Milan, Italy. Francesco is mostly engaged in
IBM Connections and WebSphere Portal projects. He is
fond of Social Software and Social Business topics, both
from the technological, and social perspective. In his
spare time, Francesco loves to write.

David Greenstein is a Solution Architect with Ascendant


Technology, an Avnet Technology Solutions Company in
the United States. He has more than 14 years of
experience in IT, most of which spent delivering
messaging, collaboration and social solutions to
organizations of various sizes in many different
industries. David hold certifications in multiple IBM
technologies and has been passionate about social
computing for years. He is an active blogger and has
been the technical editor for publications on the subject
in the past.

x Building and Implementing Social Digital Experiences


Aravin Pratapagiri is a Websphere Portal/Commerce
Architect with HeadStream Inc., an IBM Advanced
Business Partner Company in the US. He has more than
ten years of experience in IBM WebSphere Commerce,
IBM WebSphere Portal, IBM Connections, and IBM BPM
Products. His main areas of expertise are infrastructure
design, architecture, implementation, automation for
WebSphere administration, performance tuning and
problem determination of the WebSphere environment.
Aravin is also an IBM Certified System Administrator for
WebSphere Application Server and WebSphere Portal
Server. He holds a Masters degree in IT from University
of Oklahoma.

Chander Ponnusamy is working as a CTO at


ReactiveBus Business Solutions Pvt Ltd, Bangalore,
India. He has around 12 years of experience and worked
on various IBM WebSphere, IBM Lotus and IBM Security
Products. ReactiveBus is an IBM Business partner which
provides services in IBM Collaboration Solutions, IBM
Security and IBM BPM Solutions. You can reach him at
chander.ponnusamy@reactivebus.com

Mierlea Catalin is Middleware Software Specialist in IBM


Romania. Catalin joined IBM in March 2012 and has 10
years experience in IT. His areas of expertise include
WebSphere products, SOA, and software architecture.
He specializes in WebSphere Application Server,
WebSphere Portal Server, WebSphere Process Server,
and WebSphere Business Process Manager. Catalin has
a BS in Automation Control and Computers, an MS in
Integrated Informatics Systems, and certifications in the
IBM WebSphere products, in different Microsoft and
Oracle complementary technologies. He has extensive
industry knowledge and hands-on project experience in
the banking and the public sector.

Jyoti Rani is a Software developer in IBM India Software


labs. She has 10 years of experience in Portal based
application development field. She holds a degree in
Bachelor of Computer Science and Engineering from
MDU. She has published articles on Portal and Web
Experience Factory based development. She has also
conducted various workshops on Web Experience
Factory. You can reach her at jyotirani10@in.ibm.com

Preface xi
Gavin Siller is a solutions architect at MMI Holdings, a
financial services organization in South Africa. He has
been working in the financial services industry for over 12
years. Prior to that, he specialized in delivering
integration solutions around the world. He has
experience across a wide range of IBM products and
focuses on bringing these together to form client- centric
solutions. He holds a Masters degree in Information
Systems from the University of South Africa and has a
number of IBM certifications. You can reach him at
gavin.siller@gmail.com.

Vidyut Verma is a is a Collaboration Solutions Architect


(CSA), working in the IBM Collaboration Solutions (ICS)
team of IBM Software group. Based out of Delhi, India,
Vidyut travels around India working closely with IBM
customers & partners, helping them adopt and gain
technical and business benefit from the entire IBM Digital
Experience & Collaboration Portfolio of ICS. He has
overall 11 years of experience in IT and has been with
IBM for more than 8 years working on IBM WebSphere
Portal, IBM Web Content Manager, IBM Forms, IBM
Connections and other ICS portfolio offerings. You can
reach him at vidyut.verma@in.ibm.com.

Basem Zaben is a Senior Solution Manager at EJADA,


Kingdom of Saudi Arabia. He is a Solution Manager as
well an Architect, specialized in Portals and enterprise
collaboration with 14 years of experience in IT. Highly
motivated Solution Manager of proven experience,
solving challenging business problems with innovative
enterprise solutions aligning business needs to IT
capabilities. Expert in proposing, strategizing, building
Enterprise Portals. Unique blend of business and
technical skill sets resulting from a diverse professional
background, a solid educational foundation, and 14
industry-recognized certifications.

xii Building and Implementing Social Digital Experiences


Jackie Zhu is an Enterprise Content Management
Solution Consultant with IBM Software Group. She has
more than 10 years of software development experience
in accounting, image workflow processing, and digital
media distribution solutions using C, C++, Java,
JavaScript, Visual Basic, and Lotus scripts. Jackie holds
a Master of Science degree in Computer Science from
the University of the Southern California. Jackie joined
IBM in 1996. She is a Certified Solution Designer for IBM
Content Manager and has managed and led the
production of numerous IBM Enterprise Content
Management and IBM Collaboration Solution Redbooks
and wiki projects.

Supporting contributors and reviewers


Very special thanks to the following person for his contribution to this project:
Adam Ginsberg

Thanks to the following people for their contributions to this project:


Jonathan Booth
Jonathan F Brunn
Michael Burati
Juergen Schaeck
Nan BJ Shi
Jaspreet Singh
Thomas Steinheber
Xiao Feng Z Zhang

Thanks to the following authors who contributed to the first version of this guide:
Brian Farbrother
David Greenstein
Peter Hood
Malarvizhi (Malar) Kandasamy
Nagendra Shukla
David Strachan
Janice Taylor
Jackie Zhu

Preface xiii
Become a contributor
Join us for a two-to six-week residency program! Share your knowledge with
peers in the industry and learn from others. Help create content about specific
products or solutions, while getting hands-on experience with leading-edge
technologies. You will have the opportunity to team with IBM technical
professionals, Business Partners, and Clients. Your efforts will help increase
product acceptance and customer satisfaction. As a bonus, you will develop a
network of contacts in IBM development labs, and increase your productivity and
marketability.

Find out more about the residency program, browse the residency index, and
apply online at:
http://www.ibm.com/redbooks/residencies.html

Comments are welcome


Your comments are important to us!

We want the content in this wiki and all our wikis to be as helpful as possible.
Provide us your comments in one of the following ways:
Use the commenting feature with in the wiki. Login and add comments,
located at the bottom of each page.
Provide feedback in the Web form located at:
http://www-12.lotus.com/ldd/doc/cct/nextgen.nsf/feedback?OpenForm

Stay connected to IBM Redbooks


Find us on Facebook:
http://www.facebook.com/IBMRedbooks
Follow us on Twitter:
http://twitter.com/ibmredbooks
Look for us on LinkedIn:
http://www.linkedin.com/groups?home=&gid=2130806
Explore new Redbooks publications, residencies, and workshops with the
IBM Redbooks weekly newsletter:
https://www.redbooks.ibm.com/Redbooks.nsf/subscribe?OpenForm
Stay current on recent Redbooks publications with RSS Feeds:

xiv Building and Implementing Social Digital Experiences


http://www.redbooks.ibm.com/rss.html

What is in this guide


IBM WebSphere Portal and IBM Web Content Manager (WCM) offer facilities to
support the creation of a social digital experience (social portal), especially when
combined with the market-leading social capabilities of IBM Connections.

This guide begins with defining the social portal and its capabilities, the
architecture, the integration patterns between WebSphere Portal and IBM
Connections and social analytics. It then looks at a number of products and how
their capabilities can help you create the social digital experience.

This guide covers the following topics.

Side-by-side integration
IBM WebSphere Portal provides a number of capabilities to visually integrate
IBM Connections with WebSphere Portal. Web Application Integrator (WAI)
allows for portal headers to be displayed on the IBM Connections site. Login and
logout pages and other utility pages can be integrated. This topic is covered in
Chapter 6, Pattern 1: Adding social alongside an existing portal on page 79.

IBM Connections portlets


IBM supplies several pre-built portlets, which can be downloaded for free from
the IBM Greenhouse catalog. These portlets provide a set of read and write
capabilities to integrate with IBM Connections services. This topic is covered in
7.2, Community pages and IBM Connections portlets on page 105.

WCM social rendering


New in version 8.0.0.1 of IBM WebSphere Portal and IBM Web Content Manager
(WCM), WCM social rendering capabilities provide a flexible way to integrate IBM
Connections content into a website. This topic is covered in 7.3, WCM social
rendering on page 126.

Digital Data Connector


The Digital Data Connector (DDC) is a new data integration service available in
IBM WebSphere Portal 8.5, which enables site developers to use IBM Web
Content Manager (WCM) design components to render data being served from
external systems. It provides a public plug-in point to allow integration of all kinds
of data. This topic is covered in 7.4, Digital Data Connector on page 196.

Preface xv
OpenSocial Gadgets
OpenSocial gadgets are components written in XML, HTML, and JavaScript that
display custom content. These gadgets can be developed to work with IBM
Connections. This topic is covered in 8.3, Action a Workflow Action Request via
an Embedded Experience Open Social Gadget on page 256.

Using IBM Connections as a platform


Although IBM Connections has many social business capabilities as well an
attractive user interface for both desktop and mobile devices, there are many
reasons why Connections can be used as a platform as opposed to just a
product. This topic is covered in 7.5, Using IBM Connections as a platform on
page 211.

IBM Docs
IBM Docs extends IBM Connections, offering real-time collaboration with key
collaborative services, such as co-editing, file management, and contextual
commenting built right into the editing process. This topic is covered in 9.3, IBM
Docs on page 278.

IBM Forms Experience Builder


IBM Forms Experience Builder builds dynamic forms and applications using a
web-based interface. From a single interface, you can design a form, set roles to
create a workflow, deploy the application, and review submitted results. This
topic is covered in 9.4, IBM Forms Experience Builder on page 284.

Third party social credentials to log into your social web site
IBM WebSphere Portal enables users to login into a website with the social
credentials on public social networks such as Facebook, LinkedIn and Twitter.
There are advantages and disadvantages of using them in a website. This topic,
as well as references to configure these in a website, is covered in 7.6, Using
third party social credentials to log into your social website on page 213.

Social business toolkit


IBM Social Business Toolkit is a set of extensible tools and resources for
developers who want to incorporate social capabilities into their applications and
business processes. This topic is covered in 9.1, Using the social business
toolkit on page 273.

Script Portlet
IBM Script Portlet for WebSphere Portal is a tool that can be downloaded for free
from the IBM Greenhouse catalog and is compatible with Portal 8.0.0.1 onwards.
It allows developers with only JavaScript (JS), CSS, and HTML skills to build

xvi Building and Implementing Social Digital Experiences


portlets. Currently it also supports inter-portlet communication (via public shared
parameters) and the manipulation of portlet preferences. This topic is covered in
9.2, IBM Script portlets for WebSphere on page 274.

Searching your social content in website


You can integrate IBM Connections search in IBM WebSphere Portal to enable
users to perform search queries and view query results for IBM Connections
social content within the context of their WebSphere Portal environment, such as
blogs, forums, and profiles. This topic is covered in Chapter 10, Searching your
social website on page 331.

Making Web Content Manager authoring social


IBM Web Content Manager (WCM) authoring processes can be integrated with
social facilities offered by IBM Connections, thus making the authoring process
more effective. You can publish content to and from WCM to IBM Connections
using Social Media Publisher, sending a WCM workflow notification to
Connections Activity Stream, and action a workflow action request via
OpenSocial Gadget. This topic is covered in Chapter 8, Pattern 3: Making WCM
authoring social on page 219.

Social Analytics
You can perform social analytics in a social business environment with the
installation and integration of IBM Cognos into IBM Connections. For example,
you can create custom reports in IBM Connections along with metrics-Cognos
architecture. This topic is covered in Chapter 11, Social analytics on page 345.

Preface xvii
xviii Building and Implementing Social Digital Experiences
1

Chapter 1. Introduction to a social portal


A social portal, referred as a social digital experience, is a website that brings together
people, applications, and content. The amalgamation of these three important components
offers some of the following benefits:
Enhancing the ability to respond to customers faster and more cost effectively.
Increasing sales by improving customer loyalty.
Attracting and retaining customers by responding faster and more accurately to their
needs.
Improving employee productivity by providing easy access to information and subject
matter experts.

The social digital experience allows people to interact with your organization using their
channel of choice (web, social, and mobile).

IBM WebSphere Portal Server, in conjunction with IBM Connections, provides the realization
of this social digital experience to customers, partners and employees by integrating their
respective components. IBM WebSphere Portal Server offers solid web content management
and applications (via portlets) while IBM Connections adds social applications such as blogs,
wikis, activity streams, social file sharing and bookmarks.

This integration is offered out-of-the-box using the IBM Connections portlets for WebSphere
Portal. Alternatively, because of open nature of both platforms (REST based service enabled)
and the extensive tooling available (Rational Application Developer, Script Portlets,
WebSphere Experience Factory), this integration can be custom built to meet very specific
requirements.

Examples of this integration, or putting social in context, include:


Surfacing a discussion forum alongside an application to provide assistance to users.
Providing an activity stream on users' home page to display what information is new or
changed.
Displaying social objects related to an object the user is currently viewing based on, for
instance, the same author, same tag, etc.

Copyright IBM Corp. 2014. All rights reserved. 1


The marrying of social capabilities with a website offers countless opportunities to create an
engaging and effective social digital experience to users.

2 Building and Implementing Social Digital Experiences


1.1 Products and their capabilities
This section provides a list of products that are used to create a social digital experience.

To create a social digital experience, IBM provides a list of products and components that
help you to achieve that.

These products and components include:

IBM WebSphere Portal Version 8.5


IBM WebSphere Portal Version 8.5 provides a single access point to web content and
applications, that helps companies to deliver a highly personalized, social experience for their
customers.

IBM Connections Version 4.5


IBM Connections Version 4.5 is a social collaboration software which provides social
networking tools for businesses to bring together people, connect and share information in an
enterprise.

IBM Forms Experience Builder Version 8


IBM Forms Experience Builder Version 8 lets non-technical users to quickly build, custom and
self-service web form applications. Business users can easily create polls and surveys in the
IBM Connections communities when Forms Experience Builder is integrated with IBM
Connections. When they are integrated, the survey widgets, Surveys and Featured Survey,
are enabled in the community pages.

IBM Social Business Toolkit


IBM Social Business Toolkit is a set of libraries and code samples that can be used for
connecting to the IBM Social Platform. IBM Connections, IBM SmartCloud for Social
Business and IBM Domino can be used as infrastructure for the social business
applications.

IBM Connections Portlets Version 4.5


IBM Connections Portlets Version 4.5 are used to integrate social services from IBM
Connections into WebSphere Portal environment via a set of Portlets, thus infusing social
features in the website.

IBM Docs
IBM Docs is an office productivity suite for working with documents, spreadsheets and
presentations together in the cloud. IBM Docs extends IBM Connections, providing teams
with a better way to edit and review documents together.

IBM Rational Application Developer Version 9.1


IBM Rational Application Developer Version 9.1 is an eclipse based IDE for the development
and deployment of Java, Java EE, Web 2.0, mobile, OSGi, portal and service-oriented
architecture (SOA) applications.

IBM Web Experience Factory Version 8.0


IBM Web Experience Factory Version 8.0 is an eclipse based IDE with rapid application
development tools that enables developers to build custom portlets, widgets, and applications

Chapter 1. Introduction to a social portal 3


for IBM WebSphere Portal, IBM Worklight, and IBM WebSphere Application Server
environments.

IBM Script Portlet Version 1.0


IBM Script Portlet Version 1.0 for IBM WebSphere Portal is a tool that enables a script
developer to quickly develop portlets for WebSphere Portal without having the need to know
anything about Java, portlets or the JSR 286 portlet specification.

IBM Web Application Integrator


IBM Web Application Integrator allows external web applications to be easily integrated with
WebSphere Portal using a simple, straightforward solution.

Using this set of products and components together, this guide will show you how you can
implement exceptional digital experience with social capabilities in a website.

1.2 Infusing third party social sites with your social portal
An organization's social portal does not exist in a vacuum. Users utilize a large number of
public social networks such as Facebook, LinkedIn and Twitter. This section briefly explains
the mechanisms available for interacting with third party social websites.

Social Media Publisher


Since Version 8.0.0.0, IBM WebSphere Portal Server has shipped with the Social Media
Publisher (Available for version 7 of the product from Greenhouse. The SMP, facilitates the life
cycle of publishing content from an organization's portal to a third party social network. An
overview of the SMP as well as details on the types of messages that can be published to
which third party networks is available here.

Social login
Using OpenID and OAuth, it is possible to allow end users to authenticate with third party
social website credentials on your social portal. Also, Single Sign On (SSO) between your
portal and a third party website is possible using Security Assertion Markup Language
(SAML), provided this protocol is supported by that website. Finally, the OAuth protocol allows
the end user to authorize access of their social objects (for example, list of contacts), for use
in your social portal.

Note: Details on exploiting social login capabilities, and other related considerations can
be found in section 7.6, Using third party social credentials to log into your social website
on page 213 in this guide.

Other considerations
The open nature of WebSphere Portal Server, IBM Connections, and most of the third party
social networks as a function of their REST based APIs and federated identity management
capabilities (supported by one or more of SAML, OpenID, OAuth) allows for the construction
of social applications. These applications can be surfaced in either WebSphere Portal Server,
IBM Connections or the third party site, depending on what makes the most sense for the
use-case.

The OpenSocial industry standard for sharing social context between business applications
further increases interoperability between an organizations social portal and those third party
web sites that support this standard.

4 Building and Implementing Social Digital Experiences


Chapter 1. Introduction to a social portal 5
6 Building and Implementing Social Digital Experiences
2

Chapter 2. Introduction to social business


This section explains the meaning of a social business, its value to a company, and some
common terminology used when describing and working with social business.

Copyright IBM Corp. 2014. All rights reserved. 7


2.1 What does it mean to be a social business?
The definition of a social business has three underlying characteristics:
Engaged - A social business connects people to expertise. It enable individuals whether
customers, partners or employees to form networks to generate new sources of
innovation, foster creativity, and establish greater reach and exposure to new business
opportunities. It establishes a foundational level of trust across these business networks
and, thus, a willingness to openly share information. It empowers these networks with the
collaborative, gaming and analytical tools needed for members to engage each other and
creatively solve business challenges.
Transparent - A social business strives to remove unnecessary boundaries between
experts inside the company and experts in the marketplace. It embraces the tools and
leadership models that support capturing knowledge and insight from many sources,
allowing it to quickly sense changes in customer mood, employee sentiment or process
efficiencies. It utilizes analytics and social connections inside and outside the company to
solve business problems and capture new business opportunities.
Nimble - A social business leverages these social networks to speed up business, gaining
realtime insight to make quicker and better decisions. It gets information to customers and
partners in new ways -- faster. Supported by the ubiquitous access on mobile devices and
new ways of connecting and working together in the Cloud and on open platforms, a social
business turns time and location from constraints into advantages. Business is free to
occur when and where it delivers the greatest value, allowing the organization to adapt
quickly to the changing marketplace.

The most effective approach to enable social business centers to help people discover
expertise, develop social networks and capitalize on relationships. A social business enables
its employees and customers to more easily find the information and expertise they seek.
It helps groups of people bind together into communities of shared interest and coordinate
their efforts to deliver better business results faster. It encourages, supports and takes
advantage of innovation and idea creation and builds on the intelligence of the crowd.

An effective social business embodies a culture characterized by sharing, transparency,


innovation and improved decision making. Such a culture enables deeper relationships with
customers and business partners. By allowing people (both inside and outside an
organization) to document and share their knowledge and ideas and others to recognize,
refine and promote the value of those ideas and content, a social business can reap great
benefits. Among them:
1. The ability to leverage more expertise and a greater diversity of skills and experience
2. Better realtime use of current knowledge (contrasted with formalized, but less current
knowledge)
3. Improved situational awareness and use of social intelligence in decision making.

A social business shifts the focus from documents, project plans and other temporary artifacts
to the source of the energy, creativity and decision making that moves the business forward:
people. A people-centric approach relies on:
Networks Globally integrated networks of employees, partners and customers are the
backbone of a social business. Rich online profiles of trusted experts enable collaboration
and agility and allow for exploration of expertise, publications and networks of colleagues
to quickly initiate action or fulfill a business need.

8 Building and Implementing Social Digital Experiences


Social and realtime collaboration Connecting remote teams of people to improve
decision making and discover relevant expertise or related work empowers people and
enables problem solving.
Mobility A social business benefits from enabling individuals to use the device best
suited to their needs and keeping them connected whenever and wherever they are. The
speed and relevancy of information exchange are increasingly essential.
Integration Bringing social collaboration capabilities into the applications people use to
do their jobs, without overwhelming them, allows for information sharing within the context
of business processes.

2.2 Value of social business


As the rapid growth of social networking and mobility has erased some of the boundaries that
separated individuals in the past, people increasingly use their relationships with other people
to discover and use information to accomplish innumerable tasks. New opportunities for
growth, innovation and productivity exist for organizations that encourage people
employees, customers and partners to engage and build trusted relationships. Individuals
are using social networking tools in their personal lives, and many are also incorporating it
into their work lives. Astute organizations will embrace social software and find the most
effective ways to utilize it to drive growth, improve client satisfaction and empower employees.

Social business software has gained significant momentum in the enterprise, and this trend is
expected to continue, with IDC forecasting a compound annual growth rate of 38 percent
through 2014 and 2015. However, becoming a social business is not simply a matter of
deploying some collaboration tools and hoping for the best. It is a long-term strategic
approach to shaping a business culture and is highly dependent on executive leadership and
effective corporate strategy, including business processes, risk management, leadership
development, financial controls and business analytics.

Realizing the potential value of social business is predicated on an organizations ability to


recognize and design for this transformation.

Social businesses can orchestrate and optimize new ways of generating value through
innovation, creativity and utilizing the right skills and information at the right time. They
become more flexible and agile in the face of the global markets competitive pressures and
rapid rate of change.

2.3 Common industry technology, strategy, and business


opportunities
The following is a list of common industry terms associated with social business:
Enterprise 2.0: Mostly focused on collaboration behind the firewall between employees
and partners. When applied effectively, it can enable large organizations to become more
nimble and agile and, in many ways, act more like a small business in the best sense of
the world.
Social CRM: A strategy that allows an organization to make customers a focal point of
how it does business, where the customers are actually a key force behind the
development of the ideas, services and products that the organization produces.

Chapter 2. Introduction to social business 9


Social media: Social media is another channel composed of various social sites such as
Twitter and Facebook. These channels have their own processes, guidelines, governance
and forms of accountability. As an organization develops a social business strategy, social
media might be one of the channels to pursue.
Social software: The broader set of social tools (messaging, chats, blogs, wikis, activities,
file sharing, profiles, forums, analytics, tagging, etc.) that enable all of the concepts above
and include applications used within an enterprise behind a firewall as well as third-party
services that extend beyond the firewall.

Three key business value opportunities arise from the social business transformation.
Becoming a social business can help an organization:
Deepen customer relationships
Drive operational efficiencies
Optimize the workforce

Information and references

For more information and references, see:


Why social business
Becoming a Social Business: The IBM Story
The Social Business: Advent of a new age
IBM Connections 4.0 Home Page: Making Business Processes...

2.4 Social business patterns


There are a number of proven, repeatable actions, referenced as patterns, that add
measurable value when applied by an organization using social tools:
Finding expertise
Gaining external customer insights
Increasing knowledge sharing
Improving recruiting and on-boarding
Managing mergers and acquisitions
Enabling and improving workplace safety

These are proven set of value-producing actions. You can begin by applying just one pattern.
Later, as requirements grow, you can realize more benefits by implementing other patterns
over time.

2.4.1 Finding expertise


Employees inside an organization typically do not proactively share information with each
other. This results in increased time to solve common business problems and reinvented
solutions. Using social analytics to discover hidden knowledge, as well as the ability to search
and publish resources results in:
Rapidly locating the right people or information to solve a problem.
Finding the best resources to assist customers and partners.
Documenting solutions to problems to help others in the future.
An engaged and productive workforce.

10 Building and Implementing Social Digital Experiences


2.4.2 Gaining external customer insights
Organizations need to understand the needs of their current and potential customers in order
to provide them with relevant products and services. Furthermore, as organizations move
from mass marketing to targeting key individuals that can influence a large number of future
customers, the need to employ social monitoring tools is crucial. Listening and responding to
these social conversations has the following benefits:
Quickly understanding the needs of current and potential customers resulting in faster
time to market with the appropriate products and services.
The ability to find and engage with key customer influencers that can act as advocates for
the organization.

2.4.3 Increasing knowledge sharing


The inability of the organization to know what information already exists results in rework and
duplication of effort. The effect of this is increased cost and delays in revenue recognition.
Adding social communication capabilities to existing enterprise applications encourages open
conversations between employees and makes the knowledge in peoples heads as accessible
as those in documents. Adding gamification to the social portal increases the likelihood of the
desired behavior. The benefits of improved knowledge sharing include:
Increased productivity of the workforce due to the ease of publishing, sharing and locating
important information.
Better innovation due to more relevant and diverse information easily available.
Decreased cost due to the elimination of reinventing solutions and the time needed to find
information.

2.4.4 Improving recruiting and on-boarding


It is essential that an organization is able to attract talent and best match their capabilities to
the skills required. When these new hires begin work, getting them productive as soon as
possible and in touch with those in the organization with the expertise they require, is also
important. The use of externally and internally facing social capabilities assists in connecting
candidates with Human Resource and hiring managers to find the best candidates. Once an
employee starts at the organization, a social network that links them to existing employees
with domain knowledge and easy access to the right information speeds up the time it takes
for a new hire to be a productive asset. These social capabilities benefit as follows:
Matching the right person to the right vacancy as fast as possible, thereby streamlining the
hiring process.
Providing new employees with easy access to the right people and information, increasing
the chance of retention and reducing the time it takes them to be productive.

2.4.5 Managing mergers and acquisitions


Mergers and acquisitions are difficult for all parties involved. Executives from the different
organization have different visions for the resulting entity. The staff of the affected
organizations involved do not always understand what is transpiring at a strategic and tactical
level. In the case of an acquisition, the company being purchased often suffers from poor
retention of staff.

Chapter 2. Introduction to social business 11


Social network capabilities allow for executives and Human Resource to communicate with
the staff of the affected organization to share information on tactical and strategic issues. A
social network also allows for the discussion and decision making processes that take place
during such an endeavor. This leads to the following values:
Higher chance of success in achieving the merger and acquisition.
More effective vision setting, discussion and decision making before, during, and after the
merger and acquisition activities have taken place.
Accelerated creation of a single company community and culture.

2.4.6 Enabling and improving workplace safety


Since safety regulations change often, it is difficult for the organization to stay abreast of
these changes and remain compliant. Communicating the safety requirements to everyone in
the organization is another challenge, compounded in a distributed environment. Providing
the latest safety information, as it changes, on both a mobile and social platform yields the
following benefits:
Project delays resulting from safety concerns can be minimized.
Innovation in safety procedures can be increased as workers and safety officials
communicate more regularly.

Consult the document in the references section for detail on these social business patterns.
This document includes IBMs experience and concrete actions the organization can take to
implement these patterns.

References

Social Business Patterns White Paper

2.5 Implementing social business


To implement social business in an organization, your organization can adopt:
Social customer relationship management (CRM)
Social business process management (BPM)
Social content management.

2.5.1 Social customer relationship management (CRM)


Social CRM is a business strategy that is realized through social media platforms, such as
IBM Connections, whereby the organization engages with customers and partners. This
engagement model can result in the following:
Utilizing customer feedback to create or improve products and services.
Allowing customers to self-service by collaborating with other customers on the platform.
Listening, analyzing, and responding to customer sentiment on public social networks.
This allows for a two way conversation with the customer and the ability to respond rapidly.
Satisfied customers become advocates for the organization on public and private social
media platforms.

12 Building and Implementing Social Digital Experiences


All of the above give rise to a much deeper and more meaningful relationship with customers
and partners. This is not the case with traditional CRM systems. There is considerable
interest in adding social capabilities to these CRM systems (In this section the focus will be on
the integration of IBM Connection with these traditional CRM systems):
Sugar Connector for IBM Connections - Available on Greenhouse
An article describing how to integrate IBM Connections with Microsoft Dynamics CRM

The motivation behind these integration efforts is to exploit the strengths of both types of
systems to achieve the benefits of Social CRM.

2.5.2 Social business process management (BPM)


Social BPM is a methodology that aims for continuous process improvement by utilizing Web
2.0 and social technologies. Business processes are transparent and that if the BPM
designers and the end users of these processes can collaborate, optimal business processes
will be the result. Improved business processes can have a positive effect on the efficiency of
the organization. If these business processes touch on the customer, then improved customer
satisfaction will be the outcome.

Unstructured business processes (case management) can also benefit greatly from social
collaboration platform by allowing subject matter experts to more easily share information and
business context.

IBM has provided integration between IBM Business Process Manager and IBM Connections.
More information can be found here:
Business Processes Go Social with IBM Business Process Manager 8.5 and IBM
Connection
Enabling IBM Connections integration for Process Portal

2.5.3 Social content management


Social content management involves the goal of eliminating information silos within an
organization. These information silos have the following disadvantages:
Information is difficult to find. Solving problems based on this information take longer.
Solutions to these problems might not be consistent.
Information and the effort to create it is duplicated.
Only certain people have access to information. If they leave, this information may never
be discovered.

Using the capabilities (sharing, liking, user download statistics, tagging, commenting) around
content in social platform help to eliminate the disadvantages above with benefits to the
organization's employees, customers and partners. In addition, these social document
capabilities make the content itself richer, further advantaging all users (network effects).

Chapter 2. Introduction to social business 13


14 Building and Implementing Social Digital Experiences
3

Chapter 3. Defining the social portal


A web portal is a single web site that aggregates information and functionality and presents
them to the users in a consistent manner. Web portals typically serve one or more of the
following relationships:
Business to customer
Business to business
Business to employee
Government to citizen

Social portals add to this aggregation functionality by making users active participants rather
than passive consumers of information and services. As users participate in the web portal
such as adding content to it, the web portal becomes richer for all other users. This is one
principle of Web 2.0 and Enterprise 2.0 which we briefly discuss in section 3.1.2, Capabilities
required for a social website on page 18.

Social capabilities added to a traditional web portal include, but are not limited to the
following:
Blogs and microblogging functionality - Users can author content and others can
comment.
Wikis - A place to share information and other resources for a particular topic.
Social bookmarks - Sharing items on the portal of interest with others.
Ideation blogs - Sharing ideas and getting opinions from fellow community members.
Activity streams - A user can visualize, in a single place, all that has happened on the
social portal of which they are interested.

In this guide, we discuss patterns 3.2, Methods to infuse social into a website on page 23
concrete implementations for infusing social capabilities (like those above) into a traditional
web portal to transform it into a social portal. The discussion is limited to the integration of
WebSphere Portal Server with IBM products, solutions, and offerings, to achieve this goal.

Copyright IBM Corp. 2014. All rights reserved. 15


3.1 How social capabilities can improve a website
Building a website and getting it integrated with your back-end systems was the main focus
for a lot of organizations in the past. The move to mobile enablement was the next step. The
goal of these changes are to increase the channels for your business, get direct interaction
with your customers and employees, and increase and retain customers. As the business
demand increases, along with the necessity to keep the business competitive, organizations
need to go beyond the normal website and mobile channels and provide real connectivity with
customers and employees.

The need to support people networking are increasing. Organizations need to have social
capabilities infused into their strategies, operations, projects, and sales. Whether it is with
customers, partners, or employees, organizations need to leverage the collaboration tools to
improve efficiency, solve problems, create opportunities, boost productivity, and drive
innovation that make them more competitive and successful.

IBM Connections is a leading social software platform that can help your organization to
engage the right people, accelerate innovation, and deliver results. This integrated platform
helps people engage with networks of experts in the context of critical business processes. It
also provides the security that is required in such an environment so that everyone can act
with confidence and anticipate and respond to emerging opportunities.

In the following sections, we talk about the business value of IBM Connections, how you can
make your website socially enabled, and we also describe different use cases.

3.1.1 Business value


To improve productivity and provide the right information at the right time to the right people,
organizations need to improve their communication and collaboration with customers and
employees. People are constantly reading and writing emails. Content such as emails are
being produced in an ever-increasing speed and people are spending a lot of time searching
for these content. The challenge for every organization, employee, and customer, is to find the
relevant information that is hidden in a pool of content. Knowledge searching and sharing
thus have become exceedingly difficult.

Creating a social digital experience with IBM Connection and other IBM products and
offerings provide the following benefits for organizations:
Engage instantly and in context to get business done by staying on top of relevant activity
in your professional networks and communities.
Act quickly and responsively to customers by pivoting rapidly between internal and
external communities.
Create an ideal community experience and anticipate the needs of a community by
monitoring social activity and participation.
Increase personal and organizational effectiveness by creating, connecting, and sharing in
one easy-to-use social experience.
Access your communities from a variety of channels ranging from a web browser via
normal desktop computers, to mobile, and handheld devices.
Innovate through cultivation of critical information from co-workers, colleagues, partners,
and customers.
Use numerous points of integration with other products to establish many possible ways to
create and consume multimedia content.

16 Building and Implementing Social Digital Experiences


Provide high scalability capability to meet the demands of tens to hundreds of thousands
of users.
Customize and brand access points and displays to deliver an experience unique to your
company.

IBM Connections integrates activity streams, calendaring, wikis, blogs, email capability, and
flags relevant data for action. It allows, for instance, collaboration with one simple click, and
enables you to build social, secure communities both inside and outside the organization to
increase customer loyalty and speed business results. The new IBM Connections mail
capability provides simplified access to email within the context of the social networking
environment.

The following figure shows the various features that IBM Connections offers.

With IBM Connections, organizations can integrate and analyze massive amount of data
generated from people, devices, and sensors, and more easily align these insights to
business processes to make faster, more accurate business decisions. By gaining deeper
insights into customer and market trends and employees sentiments, businesses can
uncover critical patterns to help them not only react swiftly to market shifts, but predict the
effect of future actions.

The new capabilities of IBM Connections Version 4.5 empower employees from every line of
business, such as marketing, human resources, and development to gain actionable insight
into the information being generated in their social networks. For example, the IBM
Connections landing page features a single location that allows users to view and interact
with content from any third party solution through a social interface, alongside their own
companys content, including email and calendar. The embedded experience of the news
feed, also known as an activity stream, allows employees from any department within an
organization to explore structured and unstructured data (such as Twitter feeds, Facebook

Chapter 3. Defining the social portal 17


posts, weather data, videos, log files, and SAP applications), to electronically sign
documents, and to quickly act on the data as part of their everyday work experience.

Reference

For more information on business values of IBM Connections, see:

IBM Redbooks Solution Guide, Achieving Real Business Value with IBM Connections

3.1.2 Capabilities required for a social website


Before we look at the capabilities required for a social website, let's review the key concepts
and technologies, Web 2.0 and Enterprise 2.0, that shaped the websites of today.

Web 2.0
Web 2.0 is a term that describes the move in the way that the internet is utilized for business
and social computing. Before Web 2.0, the internet was primarily a platform for information
publishing and e-Commerce. Users interacted with websites in one direction only: They were
consumers of information and services. Web 2.0 is a fundamental shift away from this
one-sided use of the web by allowing users the means to contribute content to the web.

The web has evolved into a myriad of interconnected devices that utilize a network to allow
access and participation by users. As more individuals make use of the information and
services provided, and in addition contribute content, the richer the web becomes (O'Reilly,
2005).

Web 2.0 applications are responsive and engaging, enabled by technologies such as
JavaScript, AJAX and REST services. Furthermore, applications including Blogs, Wikis, Tag
Clouds and Activity Streams emerged and were infused into websites.

Enterprise 2.0
Soon after Web 2.0 applications began to appear on internet, two things began to happen to
the organizations. First, employees sought the same types of web applications in terms of
functionality and usability to be available for their day-to-day work. Secondly, the management
of organizations themselves began to wonder if the advantages and successes of Web 2.0
could be emulated in their own environment. These events led to the emergence of
Enterprise 2.0, which is the use of social software to increase collaboration between the
organization, its employees, business partners and customers.

McAfee (2006) proposes the following conceptual capabilities that are necessary for an
Enterprise 2.0 software system:
Search Content indexing and searching mechanisms should be available to locate
content based on keyword searches.
Links Content should be accessible via hyperlinks and this content itself should link to
related materials. This aids in organizing and finding information.
Authoring Components such as blogs, wikis and forums should be made available to
facilitate content publishing. This content increases in value as other individuals contribute
additional content to the original posts. What-you-see-is-what-you-get (WYSIWYG)
editors should be provided to allow for easy content authoring without the need to learn a
platform specific language.
Tags Simple descriptions linked to content allowing for better categorization,
searchability, and navigation of the collaboration system. These tags result in a

18 Building and Implementing Social Digital Experiences


folksonomy (categorization and structure of content by users over time) as opposed to a
taxonomy (content is added to a predefined structure).
Extensibility Content and new functionality should be able to be easily added to the site
without the need to program or learn a new syntax.
Signals Mechanisms should be available to inform users of changes or additions to
content they are interested in.

Enterprise 2.0 has a profound effect on the way individuals and groups in the organization
perform their daily tasks and interact with each other, business partners, and customers. This
is because Enterprise 2.0 websites help users to easily locate relevant information and
expertise to solve many business problems from product development to customer service.

IBM Connections and capabilities required for a social website


A social website should provide the capabilities required by an Enterprise 2.0 site as
mentioned earlier. IBM Connections (enhanced when integrated with WebSphere Portal)
provides these capabilities. The table below maps the required social website capabilities to
the features of IBM Connections.

Capability IBM Connections features

Search Content in IBM Connections is fully searchable.


Search can be federated between IBM Connections and IBM WebSphere
Portal providing a single place to search across both systems.
User profiles are searchable. This provides for easy location of subject
matter experts.

Links All summary components such as the Activity Stream contain hyperlinks
to more detailed information about the social object.

Authoring Wiki, Blog, Forum and Ideation features for content authoring.
WYSIWYG interfaces are provided for users to author content.
Users can upload and share files such as documents and media files.

Tags Most social objects can be tagged (Blog and wiki content, communities,
profiles, etc).
Tag clouds functionality is available (and can be surfaced inside
WebSphere Portal).

Extensibility IBM Connections provides REST services for social objects that support
the development of new functionality for IBM Connections.
OpenSocial gadgets and iWidgets can be added into IBM Connections for
custom functionality.
IBM Connections provides capabilities to extend existing websites (such
as those built using WebSphere Portal) with social capabilities by using
out-the-box portlets or writing custom applications interfacing with the IBM
Connections REST services.

Signals Many social objects (Files, People, etc) can be followed. Users will be
notified of any changes to objects they are following.
The Activity Stream components and the IBM Connections Homepage
provides a view of everything of importance to the user. These
components can be surfaced inside IBM WebSphere portal.
Users can be automatically emailed of updates to social objects they are
following. The content in the email contains hyperlinks to the social
objects in IBM Connections.

Analytics, that is, information about how users are making use of your social website has
become increasingly important. The insights gained through analytics can identify areas of

Chapter 3. Defining the social portal 19


the website that should be enhanced and also highlight other social metrics such as the
popularity rating of social communities. WebSphere Portal server offers built in Active Site
Analytics while IBM Connections exposes social interaction data via the Events SPI. IBM
Connections also ships with IBM Cognos to facilitate the creation of custom reports on the
social metrics of interest.

Reference

McAfee, A. (2006). Enterprise 2.0: The Dawn of Emergent Collaboration. MIT Sloan
Management Review, 47 (3).

O'Reilly, T. (2005). What is Web 2.0? Design Patterns and Business Models for the Next
Generation of Software. Retrieved 01 05, 2014, from O'Reilly

3.1.3 IBM Connections case studies


In this section, we provide IBM Connections use cases in education, energy and utilities,
healthcare, and computer services to help you better understand how IBM Connections can
help your organizations to improve your websites and create the social digital experience for
your users.

Use case 1: Education - Saxion University raises productivity with social


business software
"An educator might sometimes think, Why must I share what I have developed? Its mine. But
to thrive in todays digital world, we must work in more flexible and collaborative ways." -
Marion Vrielink, project manager for IBM Connections adoption, Saxion University of Applied
Sciences

Overview
With some 24,000 students and 2,500 staff members, Saxion University of Applied Sciences
is one of the largest institutions of higher education in the Netherlands, an important center of
expertise at the regional, national and international level. The university has four campuses in
the East of the Netherlands, in the Dutch cities of Deventer, Enschede, Hengelo and
Apeldoorn.

Business need
Saxion University of Applied Sciences needed to increase employee effectiveness through
better communications, collaboration and streamlined ability to locate needed expertise.

Solution
The university implemented a program for rolling out IBM Connections, social software for
business that help people engage with others in the context of critical business processes.
Key features include activity streams, profiles, blogs, communities, discussion forums and
wikis, all easily searchable for experts, documents and knowledge.

Benefits
By training staff to use IBM Connections software tools for work tasks, Saxion University of
Applied Sciences streamlined the meeting process, made it easier to identify and contact
experts, and improved their employee productivity.

20 Building and Implementing Social Digital Experiences


Becoming a social business
Saxion chose the IBM Connections solution. The integrated, secure social business platform
helps people find and engage with others in the context of business processes to share
information and work collaboratively. Key features include activity streams, profiles, blogs,
communities, discussion forums and wikis, all easily searchable for experts, documents and
knowledge. We wanted to raise our level of communications and collaboration to a higher
level, and thats exactly what IBM Connections does, says Rudy Orriens, Account Manager at
Saxion.

Saxion initially made IBM Connections software available to all staff without instruction. There
were notable successes: Although the iPhone and Android smartphones are popular with
staffers, the IT team lacked expertise with these products. Special-interest communities
created in the Connections solution covered these technologies, helping users support one
another through community engagement.

Other early adopters experimented with social tools such as:


Profiles, which let employees describe themselves by citing their skills, experience and
areas of expertise.
Activities, a task management system that helps groups of people collaborate easily on a
task.
Communities, which help enable ad hoc and planned collaboration around a project or
area of interest. But after six months, usage was less than anticipated.

Traditionally, Saxion did not have a culture of open sharing. Some employees shied away
from profiles as though they were akin to bragging about achievements. In addition, some
were unsure how they could apply social tools to daily tasks.

In response to that, Saxion teamed with eOffice, an IBM Business Partner in the Netherlands,
on a structured program to increase adoption across the university. The program, called
WorX, relies on a scenario-based model to train managers on the Connections solution.
Further, Saxion is training select functional groups, and in April 2013 it held a 60-workshop
event called Social Business Week for all staff. Key departments behind the training are IT,
human resources (HR) and corporate communications, all advocates for social business.

In our adoption strategy, we developed many scenarios, or use cases, for Connections, says
Cora Woltring, program manager, WorX at Saxion. How do we organize a meeting with
Connections? How do we profile ourselves? How do we share knowledge and experience
with teammates. How do we collaborate? For each scenario, we have a workshop, so users
dont have to learn the whole thing at once. Then managers attending the workshop can train
colleagues. The WorX training program has led some 200 new users to participate in the
Connections environment each month.

The scenario for meetings shows the improvement that the Connections solution can bring.
An effective meeting starts with the Activities function, which spreads the word to all meeting
principals, along with the agenda, related documents, subtasks and action items.
Stakeholders can absorb content, share discussions and form opinions before the meeting
occurs. This transparency can accelerate decisions by eliminating tedious emails and long
sit-downs.

Another scenario addresses employees reticence to fill out profiles, a must for locating others
in the organization. To make it easier, Saxion created a wiki of helpful tips and enlisted a
professional photographer and makeup artist for the photos. Thanks to WebSphere Portal
softwares integration capabilities, all profiles will be published on Saxions intranet as a
corporate directory. Wikis created from Connections software are also published to the
intranet.

Chapter 3. Defining the social portal 21


The university plans to roll out Connections software to its entire community within two to
three years. Employees are first, followed by educators and students, all in the interest of
improved efficiency, a higher level of transparency and a more engaged and richer
educational experience.

More details

For more information on the use case, see:

Saxion University raises productivity with social business software

Use case 2: Healthcare - Boston Childrens Hospital and IBM harness


social education
"OPENPediatrics is an open forum to connect healthcare providers around the world. The
idea is to leverage technology to promote worldwide sharing and exchange of knowledge to
rescue children from crisis." - Traci Wolbrink, MD, MPH, Boston Childrens Hospital

Overview
Founded as a 20-bed hospital for children in 1869, Boston Childrens Hospital today is a
395-bed comprehensive center for pediatric and adolescent healthcare. It is grounded in the
values of excellence in patient care and sensitivity to the complex needs and diversity of
children and families. Boston Childrens is the primary pediatric teaching affiliate of Harvard
Medical School.

Business need
The teaching hospital apprenticeship model, which once revolutionized medical education, is
now failing to adapt to an increasingly interconnected world. As a result, expert knowledge is
bottlenecked within the walls of institutions, creating disparities in access to medical
education.

Solution
The collaboration resulted in OPENPediatrics, a cloud-based education application for
desktops and notebooks that features advanced social networking. It is the first application for
continuing medical education outside of an institution, a paradigm shift that could
revolutionize post-graduate medical education.

Benefits
The IBM solution helped augment medical knowledge for healthcare workers everywhere,
share medical knowledge globally and equip caregivers with the knowledge and skills to care
for critically ill children.

More details

For more information, see:

Boston Childrens Hospital and IBM harness social education

Use case 3: Computer services - Highland Solutions builds on social


selling experience
"To be of value for sales people, CRM needs to be more than a data entry system. Weve
created integrations that, when data is entered into our SugarCRM environment, trigger

22 Building and Implementing Social Digital Experiences


valuable internal information from IBM Connections to aid in selling efforts." - Scott Taback,
vice president of business development, Highland Solutions

Overview
Headquartered in Chicago, Highland Group, Inc. (Highland Solutions) is a privately owned
technology and business process consulting firm. It provides IT services and solutions for
companies of all sizes, focusing on effective customer-facing systems such as CRM and
e-commerce. In business for more than 12 years, Highland Solutions partners with
technology leaders, including IBM, to serve customers located primarily in the United States.

Business need
Highland Solutions wanted to build a social selling platform to streamline collaboration for its
sales teams and to use as a foundation for new service offerings.

Solution
The company integrated its IBM Connections software with its SugarCRM platform so that
moving between applications was seamless.

Benefits
With the integrated solution, sales representatives can quickly assemble the right people and
access the most relevant information and best sales practices to help close deals faster.

More details

For more information see:

Highland Solutions builds on social selling experience

3.2 Methods to infuse social into a website


There are different methods of infusing social into a website. Those methods can be
categorized into three main patterns as following:
Pattern 1 : Adding social alongside an existing intranet
Pattern 2 : Putting social into context
Pattern 3 : Making WCM authoring social

In the following sections, we describe each pattern.

3.2.1 Pattern 1: Adding social alongside an existing website


This pattern aims to install IBM Connections alongside your website, and to style it. The users
do not experience a disruption when navigating between the two sites. In this pattern, we
must know how to unify the navigation structures and how to ensure a consistent login and
logout experience. In WebSphere Portal, we can achieve this pattern using WebSphere
Application Integrator (WAI) or Web Application Bridge.

Why use side by side


When faced with deploying a social platform to the enterprise, there are many considerations.
Much like any software package, these choices include ease of maintenance, manageability,
interoperability with other systems already in the enterprise, and scalability to name a few.

Chapter 3. Defining the social portal 23


IBM Connections provides these capabilities through its mature underlying architecture of
WebSphere Application Server and flexible customization model.

You might want to deploy IBM Connections alongside with other systems when you are
looking to maximize your manageability through the ability to quickly adopt updates and new
features without disruption or significant development costs after the purchase. Leveraging
the product mostly out of the box means time and efforts are able to be spent on
infrastructure, adoption, governance, and steady state support as opposed to software
development tasks. Your organization may find this to be a desirable state based on available
in-house skills or resource availability considerations.

How IBM Connections helps


While IBM's Portal products have taken care of technical complexities to have an exceptional
web experience, IBM Connections implements a flexible interface through the use of a
centralized customization model and a CSS based interface framework, called OneUI, which
enables system integrators and developers to make changes to the color scheme and replace
the IBM branding elements with their own more easily. This approach protects your
customization during updates and allows you to rapidly adopt fixes or features as they are
released without the need to duplicate tailoring or branding efforts in many cases.

3.2.2 Pattern 2: Putting social into context


In this pattern, we aim to bring the social content and features within the context of
personalized web content and applications. The infusing in this pattern can be achieved using
features that are provided in WebSphere Portal such as:
Social portlets
Social rendering
Search integration
Business card integration
Community pages
VMM community adapter
Connections files in federated document component

Social portlets
One method of bringing social into context is the usage of IBM Connections portlets. The
social protlets deliver a rich set of social software services for use within a WebSphere Portal
environment. They can be used to add the following features to your website:
Profiles
Forums, forums summary
Blogs, blogs Summary
Wikis
Bookmarks
Activities
Tag cloud

Social rendering
Another method of bringing social into context of your website is social rendering. The social
rendering feature enables page editors to display social objects hosted on a remote IBM
Connections server inside WebSphere Portal Server using IBM Web Content Manager
(WCM). Page editors can easily add social list definitions by using this feature. WCM social
rendering capability provides a flexible way to query and render IBM Connections social
content. WCM social rendering is an out-of-the-box portlet which is added as replacement to

24 Building and Implementing Social Digital Experiences


the IBM Connections Summary portlet. This is one of the easiest ways to integrate social
content in a Portal web page.

The WCM social rendering portlet provides an option to keep the user within Portal and view
the social content (from a remote IBM Connections server) or direct the user to IBM
Connections native user interface when required. WCM social rendering portlet can either be
configured to jump to the details portlet or to a separate IBM Connections URL. When
additional capability is required, for example adding blog entries and discussion threads, then
WCM social rendering portlet can work in conjunction with either the IBM Connections details
portlet or the native IBM Connections user interface.

With social rendering:


It is easy to render links to and information about data stored in IBM Connections (aka
social data) using WCM design.
Site designers have full control over visual appearance of social data on your website.
The lists can be added to the toolbar and page editors can drag the lists to pages.
Page editors can define queries to select social content on the page.
Page editors can pick the design for generating the visual appearance of the result list.

Business card integration


You can integrate business card feature into your website to bring social into context.

With business card integration:


It is easy to provide in-context access to people
You can customize look and feel via CSS
It is easy to include business card using config task to enable it in Portal
You can mark Live Name using vCard microformat.

Community pages
IBM Connections allows users to create communities where a group of users can contribute
and share information. Having a community around a specific subject matter or project is a
powerful and meaningful way of collaboration among people. In IBM Connections
communities, you can create a public, moderated, or private community depending on
requirement and IBM Connections allows you to associates other Connections application
such as blogs, wikis, and forum to any community.

Using IBM Connections portlets, you can integrate IBM Connections community pages into
your Portal site to enhance your Portal's social collaboration capabilities.

VMM community adapter


VMM is a WebSphere application servers component to manage users and groups
information by the following:
Provides a common model for applications to interact with the out-of-box repositories.
Allows multiple repositories to be federated as a single virtual repository.

VMM community adapter represents community members as groups to Portal.

3.2.3 Pattern 3: Making WCM authoring social


In this pattern, IBM Web Content Management (WCM) authoring processes is integrated with
social facilities offered by IBM Connections, to make the authoring process more effective.

Chapter 3. Defining the social portal 25


WCM authoring tools are increasingly central to the management of the websites produced
by WebSphere Portal - managed pages is based on WCM - and so social integration of the
WCM authoring process is an important part of a social portal.

To make WCM authoring social, the following tasks can be done:


Publish content to and from WCM to IBM Connections using Social Media Publisher.
Send a WCM Workflow Notification to IBM Connections Activity Streams.
Action a Workflow Action Request via an Embedded Experience Open Social Gadget.

26 Building and Implementing Social Digital Experiences


4

Chapter 4. Architecture and setting up the


server infrastructure
To design architecture of server infrastructure, this section discusses the various IBM
software components you might have for your site, the type of websites you have, factors that
influence the deployment options, and various environments you might have for developing,
testing, and running your site.

Copyright IBM Corp. 2014. All rights reserved. 27


4.1 IBM software components for your site
Typically, your site consists the following IBM software components:
IBM WebSphere Portal Server
IBM WebSphere Content Manager - This is installed with IBM WebSphere Portal Server
and is part of the extended offering.
IBM WebSphere Application Server - This is installed alongside with IBM WebSphere
Portal Server
IBM WebSphere HTTP Server powered by Apache - This is part of IBM WebSphere
Supplements and is needed in case you need a Web Server layer in front of you
application serving environment
IBM WebSphere Plugins - This is part of IBM WebSphere Supplements and is needed in
case you use IBM WebSphere HTTP Server powered by Apache to facilitate the
integration with IBM WebSphere Application Server and IBM WebSphere Portal Server
IBM WebSphere Application Server Edge components - This includes the Balancing and
the Caching Proxy components that can be used in front of your environment to balance or
cache the requests from clients.
IBM Connections - This requires a different installation that the Portal Server and has to
be integrated with it.
IBM Tivoli Directory server or another supported LDAP server that will hold the users of
your site environment.
IBM DB2 or another supported database server that is used for data persistence of your
environment. This is required when you use a Portal Server cluster environment and for
IBM Connections

4.2 Types of sites


There are different types of sites from the business point of view:
Internet site - The content and features are available in the Internet.
Intranet site - The content and features are available only for internal users of the
company.
Extranet site - The content and features are available for users outside of the company, for
the partners as an example, but not available in Internet or for the general public.

The content and features of your site can be delivered in a public or private manner. The
public content and features are available without authentication for all users that are
authorized to see the site link, while the private content and features are available and
customized for each user, thus requiring authentication and administration of the rights to
certain pages, content, applications, etc.

So, consider different security and deployment options for the site type you need.

4.3 Factors influencing deployment architecture


Your site deployment architecture is determined by various factors such as:

28 Building and Implementing Social Digital Experiences


Workload - The workload that has to be supported by your site is a factor that can
influence the type and amount of hardware needed to scale the usage of the site.
Availability - The availability of the site is a factor that influences the type of hardware
required. For example, your company might need to run the IBM WebSphere Portal site on
an IBM zSeries system due to the huge client system requests and due to its virtualization
features. Also, in order to meet high availability requests, you might find necessary to use
horizontal clusters.

4.4 Environments
Due to new features that might occur during the life of your site, you might find necessary to
develop and test new changes, thus the need for more than one environment, which is the
main production one.

You might find necessary to use all or a part of the following types of environments:
Production environment - This environment is also known as the "live" environment and it
delivers the content and features to your clients. This environment should be maintained
by a dedicated team that usually takes care of the tasks such as availability, patching,
backup, application or features installation and configuration, problem debugging,
environment configuration and integration with various other software technologies, etc.
Test environment - This environment is where the applications, features and integrations
changes are validated. This environment should be as close as possible as the production
environment from the type of deployment architecture point of view and it should be
integrated with other test environments of the various technologies that you are using to
deliver your content in the production environment.
Quality assurance (QA) environment - This environment is also known as pre-production
environment. You should use it to test the main patches, feature upgrades of your platform
and also to stress-test the changes that are to be moved into the production environment.
The QA environment should be configured as close as possible as the production
environment taking into consideration the type of deployment architecture, the type of
machine, the versions of software, the hardware resources allocated, the integration with
different other types of technologies. The QA environment is used in order not to validate
major changes and tuning on production environments.
Development environment - This is the environment that is mainly used by developers and
is usually a simple test environment integrated with Rational Application Developer; due to
the problems that might occur because of the integration with different technologies within
main production portal, the development environment should be used for development
and validation of the applications or of the new features and should not be used as testing
environment.
School environment - This environment delivers the business features of your site in a way
that the real users can learn how to use it and get familiarized with working before using
the production environment. The school environment is usually used by internal
employees that are taking lessons on how to use the business features that are
implemented into the production environment. For example, a bank's new employee would
use the school environment to get used with the features and way of working with the
credit processing application that is deployed into the intranet.
Disaster recovery environment - This environment is used in order to avoid the downtime
caused to the main production environment by factors such as server maintenance, and
unplanned problems that prevent you from running or showing the site to your clients. The
disaster recovery environment resides in a different place (building, town, area, country or
even continent) than the production environment. It delivers the same business features

Chapter 4. Architecture and setting up the server infrastructure 29


as, and is to be kept synchronized to the production environment. All software update of
your production site should be made available as soon as possible in the disaster recovery
site and thus synchronization methods should be implemented for each of them.

Staging between environments typically occur in the following order: development, test, QA,
production, disaster recovery and than school environment. In order to stage between the
different types of environment, you might find necessary to use scripts, where possible, to
extract the new features and move them to other environment. Backing up first the target
environment or target portlet, application, etc helps you overcome destructive effects of a bad
release. Also, release versions (deltas or entire site) might save a lot of time to investigate
and solve the possible unwanted effects of many deployments and changes that occur from
more than one source towards a certain environment.

4.5 Choosing between on-premise and cloud


When considering the hosting solution for the software components that will host your site,
the first thing to do is choose between on-site and cloud hosting. The business features of
your site can be delivered in the same way with minor implications such as security
considerations, but there are several things your company needs to consider before choosing
one solution or the other.

4.5.1 On-premise hosting vs cloud hosting


On-premise hosting systems use dedicated hardware in your company's data center and
are managed by a dedicated team while cloud hosting systems use third-party hardware
hosted by a cloud services provider company and require internet connection to be accessed.
The management of both systems and site can be done together by the cloud services
provider. This implies that there have to be SLAs signed between your company and the
cloud services provider.

The table below shows some of the most important differences between the two solutions:

On-premise hosted software Cloud hosted software

Security rules require your software and data to Your software and data is not so sensitive or it is
be placed behind company firewall. even required to be accessed from the web.

Your software is integrated with other sensitive The integration of your software to other zones of
zones of your IT environment, your IT environment is not so tightly coupled
so exposing though internet would be considered from the security point of view or the security
a risk (for example the single sign on issue type ). methods used are very well implemented.

The IT department of your company is able to The IT department of your company cannot
fully administer the software sustain the effort required to administer
( installation, upgrading, migration, backup, the entire list of tasks needed in order to maintain
updating, monitoring, integrating, documenting, the software.
reporting tasks ). The cloud hosting company will handle this for
you.

The company is able to buy and license the The company does not want to buy or maintain
required software. licenses for the software,
so this financial effort is externalized to the cloud
hosting company. This can lead to cost savings.

30 Building and Implementing Social Digital Experiences


On-premise hosted software Cloud hosted software

The hardware that your company owns can Cloud hosted software generally can be scaled
handle the scalability required for increasing the very quickly.
workload.

A company does not usually have a large data Large cloud hosting companies have huge data
center and uses multiple data rooms that requires centers that use more efficient cooling and
cooling electrical power systems.
and electrical power, thus the green footprint may
not be so light.

Security
One of the most important implications when adopting a cloud solution is the security.
Accessing your site and integration with your site hosted by a cloud provider has to be done in
a secure way and taking into consideration all aspects that derive from this, such as
authentication and authorization, user and identity management, SSL connections, digital
certificate management, Web Services security, etc. These things are important also for
on-premise hosted, but because of the firewall security that should be available, the
importance is generally lowered for this type of systems and sites.

4.5.2 Cloud hosting with IBM SmartCloud Enterprise


For your site's cloud hosting, IBM offers the SmartCloud Enterprise infrastructure solution that
lets you use pre-installed machine images of IBM WebSphere Portal server and IBM Web
Content Manager Version 8.0. These two products are pre-configured with features that allow
you to quickly use them and take full advantage of this situation.

The IBM WebSphere Portal server and IBM Web Content Manager Version 8.0 features that
are configured on IBM SmartCloud Enterprise images are listed below:
Security enabled. IBM WebSphere Application Server security is enabled, with the
virtuser user ID serving as both the WebSphere Portal administrator and WebSphere
Application Server administrator ID. During the provisioning of the image, you must set the
password for the virtuser user ID.
WebSphere Portal light-startup-mode enabled. Light-startup mode speeds up the start
time for WebSphere Portal by deferring the start of individual Web applications and
portlets until they are first requested by users. You can disable the portal light mode so
that all applications are started and ready to use by clients.
HTTP Server enabled. The IBM HTTP Server is configured to provide access on both
HTTP and HTTPS ports to WebSphere Portal. This ports are the default 80 and 443 ports.
External DB2 database. An instance IBM DB2 Enterprise Edition is installed and
configured as WebSphere Portal and IBM Web Content Manager's external database and
user repository. This provides an enterprise-class and highly performing database
environment.
Web Experience Factory. Eclipse and Web Experience Factory are installed
(development image only).

IBM SmartCloud Enterprise lets you select from a number of different instance types to meet
your computing needs, while each instance provides a predictable amount of dedicated
computing capacity.

Chapter 4. Architecture and setting up the server infrastructure 31


To manage the image instances, IBM provides a simple, integrated, web console for
managing images, image instances, access keys, and storage instances on the IBM
SmartCloud Enterprise site.

To access the image instances you can choose between two methods:
Console access: The image can be accessed through secure shell (SSH) using a secure
RSA private key based on the key pair specified at instance creation. Users need to save
the RSA private key pair to a local file that can be used as input to SSH.
Remote desktop access: Users can access the system by using a free Virtual Network
Computing (VNC) client to connect to the graphical desktop

You can start, stop, service, and use all the software installed on the images just as normal
installations. You can extract the customizations applied to an image and apply them on new
images. The customizations may include content libraries, portlets, portal configurations. The
extraction and importing of this customizations are done by using normal IBM WebSphere
Portal and IBM Web Content Manager version 8.0 methods such as xmlaccess and
ConfigEngine. The customized images can be captured and used when required.

Note: For a more detailed view on the relation between IBM SmartCloud and WebSphere
Portal 8.0.0.1 view this article.

Alternatively, you can use IBM WebSphere Portal through Amazon Elastic Compute Cloud
(Amazon EC2). For more details consult this IBM page and this Amazon Web Services
page.

4.6 Hardware and software considerations


This section presents the main hardware and software consideration for installing your
environment consisting of:
IBM WebSphere Portal Version 8
IBM Web Content Manager Version 8
IBM Connections version 4.5
Other necessary software components (such as database server and LDAP server)

This environment is required as basis for sustaining your social portal.

4.6.1 Software considerations


In order to install your site application serving environment, you need to consider the
installation path and the compatibility between the various versions and distributions of the
components that your site requires. Generally, you need to start by determining which
distribution and version (usually the latest) of IBM WebSphere Portal to install. For IBM
WebSphere Portal Version 8, you have four distributions: Portal Server, Portal Enable, Portal
Extend and Portal Express. Each of them is compatible with a list of operating systems,
hypervisors, application servers, Java SDKs, databases, identity management software
components, collaboration software components, development tools and so on. So, starting
from the version and distribution of IBM WebSphere Portal, you need to determine all the
other software components required for your site's environments.

To find out the compatibility between IBM WebSphere Portal and other software components,
visit this link and choose between the versions and distributions of Portal, then choose the
appropriate operating system.

32 Building and Implementing Social Digital Experiences


For example, following this path, you can learn that IBM WebSphere Portal Extend Version
8.0 is compatible with IBM AIX Operating System Version 7.1, requires WebSphere
Application Server Network Deployment Version 8.5 or 8.5.5, supports IBM Connections
Versions 4.5, can use for data persistence IBM DB2 Enterprise Server Edition Version 9.5. In
order to develop applications, you can use Rational Application Developer for WebSphere
Software Version 8.5. Also Tivoli Directory Server Version 6.3 can be used for Identity
management and Tivoli Access Manager for e-business Version 6.1 can be used for security
management.

The compatibility list between IBM WebSphere Portal and other software components is
much larger and you need to make sure all the versions you install are compatible. In case
you do not find a compatibility between a software component version and IBM WebSphere
Portal by following the link above, you can always double check on IBM Support Portal by
searching the required versions of software. As an example, by searching "Rational
Application Developer for WebSphere Software 9," you will learn that this development tool is
compatible for Portal tools with IBM WebSphere Portal Server 8.0 on IBM WebSphere
Application Server 8.5, but only starting with Version 9.0.1. You can see this by following this
link.

The installation path you need to follow is determined by the software components you
require and also by the integration options between them. In most of the cases, for IBM
software, you will find all these details by following the "Planing to install" section of that
particular piece of software version Information Center or wiki. For IBM WebSphere Portal,
you can get that information from this link.

A special attention is to be allocated for virtualization options. Depending on your version of


software and the operating system, there is a list of supported hypervisors that you can use.
This list is generally available in the system requirements of your IBM software.

After you determine all the required pieces of software and their versions and the path to
follow, you need to obtain the installation packages. Make sure that you are fully licensed to
use the software that you decide to use. You can get the installation packages for IBM
software in a few ways:
by using the physical media that you received from IBM when buying the software
by using the Passport Advantage to download the electronic images
by using the live repository; this repository is available through IBM Installation Manager

To install the software components, you need to use IBM Installation Manager. This tool is
used for managing the installation and update of most IBM software. You can find more
details about it the download options by visiting this link. It has to be installed on each
machine that you require for IBM software. The software you need to install is to be added as
a repository to IBM Installation Manager.

As an example, you can get the electronic images for IBM WebSphere Portal Extend Version
8, IBM Connections Version 4.5, IBM WebSphere Application Server Network Deployment
Version 8.5, and all the latest required fixes, add them as repositories in IBM Installation
Manager Version 1.7.1 that you already installed and you are ready to set your environment.
You will be able to install all of the in a single installation cycle, choose which fix level to install
and set all the installation options.

4.6.2 Hardware considerations


The hardware type that your site's IBM software will be running on, has to be compatible with
the supported operating systems. So, in case you want to use IBM WebSphere Portal Extend

Chapter 4. Architecture and setting up the server infrastructure 33


Version 8 running on AIX Version 7.1, then you need to make sure that your machine
hardware can run AIX Version 7.1.

You need to consider the hardware prerequisites for all software components:
disk space: all software components require a certain minimum amount of disk space in
various folders that are not necessary the target installation location (for example the /tmp
on AIX environments)
memory
processor

You need to provision the amount of hardware necessary for all your environments and in all
your required physical sites. Also, the backup method that you may require for your
environment can influence the type and amount of hardware.

4.7 Deployment patterns


Depending on your site requirements, you can choose between different server topologies for
your IBM WebSphere Portal environment. This WebSphere Portal server topology is the
foundation for your social site and all the other components have to be integrated with it. This
also influences the web server, database, user registry, and security layers of the deployment
architecture.

Tip: When planning for a topology, use deployment diagrams to design and visualize the
relationship between all the software components of your site.

IBM WebSphere Portal supports the following server topologies:


Single-server topology: This is the basic topology and can be used for small to medium
environments. All other components can coexist on the same machine. No scalability and
high availability is supported by this topology.
Stand-alone server topology: The Portal server is installed alone on a different machine
than the other components, thus providing dedicated processing capabilities. No
scalability and high availability are available for this topology.
Clustered servers topology: This is used for scalability and high availability
requirements. You can have vertical clusters where all servers are located on the same
machine, or you can have horizontal clusters where servers are distributed on different
machines, or you can have a mix of vertical and horizontal clusters. Multiple clusters can
be used to improve availability, failover, and disaster recovery. The cluster topology is also
useful for distributing and replicating the session and cache data. You have the option to
use the IBM HTTP Server Plug-in between IBM HTTP Server powered by Apache and the
portal cluster to balance user traffic across all members of the cluster.
Portal farm topology: This consists of multiple identically configured stand-alone server
instances.

If you use IBM Web Content Manager, the following IBM WebSphere Portal topologies may
apply:
Single-server topology for Web Content Manager: This consists of the IBM
WebSphere Portal and Web Content Manager that are installed both on the same server.
Dual-server configuration for Web Content Manager: This consists of two servers or
clusters, each containing IBM WebSphere Portal and Web Content Manager. The first one

34 Building and Implementing Social Digital Experiences


is used by clients to access the content that is only authored from the second one. This
option is used for heavy traffic websites.
Staging-server topology for Web Content Manager: This consists of more than two
servers or clusters, each containing IBM WebSphere Portal and Web Content Manager.
The content is authored in different servers and staging takes place between them in order
to present the content by an one dedicated server of cluster.

Additional reference

For more information about WebSphere Portal Server topologies, visit |Server topologies.

4.7.1 Dynamic cluster considerations


In case you are using a IBM WebSphere clustered environment that consists of a static
number of members, you may find yourself in the situation where the overall workload of your
site reaches the top configured levels of each member's resources (for example: number of
maximum client sessions per server or allocated memory). In this case, you might find useful
to switch to a dynamic cluster.

Dynamic cluster can be achieved by installing IBM WebSphere Virtual Enterprise that can
monitor performance and load information and dynamically creates and removes cluster
members based on the workload for the configured dynamic cluster. WebSphere Virtual
Enterprise provides an advanced, intelligent routing function called the On Demand Router
that has all of the features of the HTTP Server plug-in with the additional ability to define
routing and service policies. The On Demand Router is required if you are setting up a
dynamic clustered environment.

When using a dynamic cluster you have the following options:


set the minimum number of cluster instances: This indicates the minimum number of
cluster members that should be running at any given time in this cluster. You have the
option to stop the instances of the dynamic cluster in case other dynamic cluster needs
resources.
set the maximum number of cluster instances: This indicates the maximum number of
cluster members that should be running at any given time in this cluster. You have the
alternative to set manually the maximum number or to switch to a no limit of instances
option.
set the vertical stacking of instances on a node: This allows the dynamic cluster to start
more than one vertical cluster member on the node. A vertical cluster member is any
additional cluster member that exists on the same node as your main cluster member.
Using this option will automatically generate vertical cluster members.
set the isolation preference: Set this option if you have more than one dynamic cluster
running on a single node and want to restrict the number of clusters running on a node at
any given time.

All the vertical cluster members have to be configured separately.

There is a difference in the installation and configuration steps that need to be done in order
to achieve a static and a dynamic cluster. For dynamic clusters, WebSphere Virtual
Enterprise has to be installed on all Portal nodes and on the deployment manager node. The
tasks that you run to configure a dynamic cluster member are different from the tasks used to
create static members. So make sure you are following the right configuration path and you
run the appropriate tasks.

Chapter 4. Architecture and setting up the server infrastructure 35


Additional reference

For details about configuring a WebSphere Portal dynamic cluster on IBM AIX operating
system, visit:
Creating a dynamic cluster on AIX using WebSphere Virtual Enterprise.
The IBM WebSphere Portal Version 8.0 product documentation which also contains
information about creating dynamic clusters for other operating systems.

4.8 Core infrastructure


Integrating IBM WebSphere Portal and IBM Connections is a challenging task. In this guide,
we provide information for a sample deployment with focuses on WebSphere Portal Version
8.0.0.1 and the IBM Connections Version 4.5 integration.

After you integrate WebSphere Portal Version 8 with IBM Connections Version 4.5, you have
the following items in your environment:
IBM WebSphere Application Server Network Deployment Version 8.0.0.5 or higher
IBM WebSphere Portal + Web Content Manager (extend) Version 8.0.0.1 or higher
IBM Content Template v4.1 (CTC) - to be used for IBM Web Content Manager (WCM)
Social Network portlet (SNP)
Social Media Publisher (SMP)
Web Application Integrator portlet (WAI)
IBM Connections Version 4.5 or higher
IBM Connections Portlets for WebSphere Portal (Profiles portlet enabled)

4.8.1 Prerequisites
The following prerequisites are required to integrate WebSphere Portal Version 8.0.0.1 with
IBM Connections Version 4.5:
WebSphere Application Server Version 8 fixpack level 8.0.0.5 or higher for WebSphere
Portal V8.0.0.1
WebSphere Application Server Version 8 fixpack level 8.0.0.0 or higher for IBM
Connections
WebSphere Portal Extend Version 8.0.0.1 or higher installed
IBM Connections Version 4.5 installed
Supported databases are: DB2, Oracle, and SQL Server
IBM Tivoli Directory Integrator on the same physical server as the IBM Connections
database
Static cluster deployment for WebSphere Portal
Federated LDAP user registry, with or without Secure Socket Layer (SSL), and keeping the
file system user repository

Note: For a detailed list of the prerequisites for installing the two products, visit the
following pages:
WebSphere Portal V8.0 and V8.0.0.1 detailed system requirements
System requirements for IBM Connections Version 4.5

36 Building and Implementing Social Digital Experiences


4.8.2 Custom theme
You need to have an existing custom theme or create your own before configuring WAI to
integrate Portal and Connections navigation components. Copying the WebSphere Portal
theme ensures that your theme contains all the required elements it needs to function, and
that your changes will not be overwritten by a fixpack. Do not modify the WebSphere Portal
theme directly because it can be updated by service fixpacks. Instead, follow the instructions
in this article Create a copy of the theme.

4.8.3 Topology for integrating WebSphere Portal Extend Version 8.0.0.1 with
IBM Connections Version 4.5
The following figure shows a common topology for integrating WebSphere Portal 8.0.0.1 with
IBM Connections 4.5. This is what is used in this guide.

4.8.4 General deployment guidelines


Throughout this guide, we develop a scenario based on the premise that you will be adding
social capabilities to an existing XWebX Portal application. Therefore, we do not provide a
complete and detailed step-by-step guide on how to deploy IBM Websphere Portal V8 or IBM
Connections V4.5. Instead, we provide you with the following deployment considerations with
general steps and links to IBM Information Center for further deployment guidelines. Your
environment might be different from the one considered here, but you will be able to
understand the big picture on how to provide the core environment.

You should take note of the following guidelines while you deploy your infrastructure:
Single LDAP federated across both instances and SSO configured.
HTTP web servers can and should be shared across the two instances. This is discussed
further in 6.4.1, Configuring the same HTTP server for IBM WebSphere Portal and IBM
Connections on page 81.
A single database server could be shared across both instances.
Components could be rationalized further. A single utility server could host: DB2, LDAP,
TDI, etc.

Chapter 4. Architecture and setting up the server infrastructure 37


From the above guidelines, the following is a rationalized view of such a topology.

4.8.5 General setup to facilitate integration


This section outlines the steps necessary to configure single sign-on (SSO) and community
page integration between IBM WebSphere Portal and IBM Connections. The documentation
on the topic is quite extensive and is distributed between the product documentation for both
products:
In the Portal documentation: Integrating with IBM Connections and Roadmap for
integrating with IBM Connections
In the Connections documentation: Integrating with other products

For configuration of SSO and community pages, we found the instructions in the WebSphere
Portal documentation alone to be useful. The Connections documentation adds information
about configuring the Connections portlets and deeper security integration between the
products.

SSO
The minimum configuration to enable IBM Connections integration with WebSphere Portal is
described at this page. There are four basic steps, and product documentation is not
repeated in this guide:
Set up single sign-on
Set up single sign-on to ensure that visitors receive only one authentication challenge. In
our case, we achieved this by accessing the two servers on the same domain and
exchanging LTPA keys between the two servers. This topic provides steps to achieve this.

38 Building and Implementing Social Digital Experiences


Import SSL certificate to set up trust association
To prevent security alert pop-ups, import the IBM Connections SSL certificates to your
portal server. This topic provides steps to achieve this.
Configure the Portal resource environment provider with the Connections URL
The instructions for deploying the IBM Connections portlets include a procedure to
configure the resource environment provider. This topic provides steps to achieve this.
Set up AJAX proxy
The support for community pages uses the Ajax proxy to access the remote server. Use
the global Ajax proxy configuration to customize the outgoing HTTP traffic. This topic
provides steps to achieve this.

4.8.6 Enabling community pages


With the above configuration, community pages will start to function. The feature will become
enabled in WebSphere Portal configuration and you will be able to browse and select
communities in IBM Connections.

Further integration options are available at this page, in particular:


Automatically grant page access to community members
Overriding access control integration during community page instantiation
Configure limits for propagation of community associations
Configuring the number of retrieved communities

These are fully described in the product documentation.

Additional reference

For additional references and information:


WebSphere IBM WebSphere Portal 8 product documentation
Web IBM Web Content Manager 8 product documentation
IBM Connections 4.5 product documentation

4.8.7 Setting up IBM Connections


IBM Connections brings social networking to the enterprise and helps you to communicate,
collaborate, and build strong relationships with others. Connections helps you stay connected
from the office or your mobile device. IBM Connections consists of the following applications:
Activities, Blogs, Bookmarks, Communities, Files, Forums, Home page, Metrics, Profiles, and
Wikis. Whether you want to share information, build a network of useful contacts, or follow
people, there is an application for you.

This section does not provide steps of installing IBM Connections since they are well
documented in elsewhere already. Rather, we provide the necessary references for you to get
the information on setting up IBM Connections.

What's new and what's been updated


To find out what's new and what's been updated, check here.

The installation process


To review the steps that are required to install IBM Connections, check here.

Chapter 4. Architecture and setting up the server infrastructure 39


Pre-installation tasks
To review the pre-installation tasks and ensure that they are complete, check here.

Installing IBM Connections


To install IBM Connections, check here. Select the Connections applications that you plan to
use and install them in a clustered deployment.

Post installation tasks


After installation, you need to perform further tasks to ensure an efficient deployment. Check
here.

Uninstalling IBM Connections


To uninstall IBM Connections, check here.

4.8.8 Setting up IBM WebSphere Portal and IBM Web Content Manager
IBM WebSphere Portal and IBM Web Content Manager (WCM) are used together to create,
manage, and deliver content for your website. You can create content using the web content
authoring portlet, or create your own customized authoring interface. Web content stored in
external content management systems can also be referenced within a WCM system. You
can deliver your web content using web content viewer portlets, the WCM servlet or
pre-render your site to HTML.

WCM provides federated documents feature using Content Management Interoperability


Services (CMIS) standard. CMIS is an interoperability standard set by OASIS Open Standard
for sharing information across Enterprise Content Management Systems. This feature allows
users to insert a link to a document located in a remote server and render the documents
from the remote server.

WCM builds on top of WebSphere Portal. WebSphere Portal Extend Version 8 contains WCM
Version 8. If you have a Portal base environment installation, you can add the WCM
packages, but be careful about the deployment considerations of your environment.

Note: For more information about IBM Web Content Manager, click here.

In this guide, we use IBM WebSphere Portal Extend Version 8 in our scenario. To install this,
obtain and unarchive the following packages:
IBM WebSphere Application Server version 8 with at least Fix Pack 8.0.0.5
IBM WebSphere Portal Server version 8 with at least Fix Pack 8.0.0.1
IBM WebSphere Portal Extend version 8 with at least Fix Pack 8.0.0.1
IBM WebSphere Supplements version 8 with the latest Fix Pack in case you need to install
and use IBM HTTP Server powered by Apache and IBM Plugins
IBM Content Template Catalog version 4.1 (CTC)

The above packages can be added to an IBM Installation Manager repository and used to
install you server environment. You can always choose the silent installation option. In this
guide, we use IBM Installation Manager Version 1.7.1.

Installing IBM WebSphere Portal Extend Version 8


1. Launch IBM Installation Manager.

40 Building and Implementing Social Digital Experiences


The picture below describes the packages that need to be selected in order to proceed
with the IBM WebSphere Portal Extend version 8 installation:

2. Clicking Next takes you to the screen where you have to accept the license agreement
after carefully considering the information presented.
3. Choose the installation paths for WebSphere Application Server and WebSphere Portal
Server in the next screen.

Chapter 4. Architecture and setting up the server infrastructure 41


4. Click Next and you can select the translations to install.

42 Building and Implementing Social Digital Experiences


5. Select the features that you require for the server environment.

Chapter 4. Architecture and setting up the server infrastructure 43


6. Choose the type of portal profile template and the profile configuration details in the next
screen.

44 Building and Implementing Social Digital Experiences


7. After carefully completing the profile configuration details, click Next and review the
choices you made.

Chapter 4. Architecture and setting up the server infrastructure 45


8. Click Install and wait for the installation process to finish.
The final installation screen show the status of the installed packages and lets you launch
the Profile Management Tool to create different profiles.

46 Building and Implementing Social Digital Experiences


Installing IBM Content Template Catalog Version 4.1
The IBM Content Template Catalog (CTC) is installed with everything you need to build a site.
You can also install the demonstration site to learn from seeing the design of a working site.
Site Builder is an optional application that comes with CTC that lets you create a basic
website or site template quickly.

CTC Version 4.1 can be obtained from the the IBM Collaboration Solutions Catalog. The
archive we installed is called CTCInstall.zip and it has to be expanded on the machine where
the Portal node is installed. We took into consideration a one-node portal environment. If you
use a horizontal portal cluster, then CTC has to be installed on all nodes. For virtual portals
follow the steps described by following this link. More information about CTC is also available
there.

Before installing CTC, locate the ctc.properties file and add a valid value for parameter
PROFILE_DIR which is the path to the profile directory. You also should add valid values in
the wkplc.properties file for the WasPassword and PortalAdminPwd parameters.

To install CTC, you need to run the following command from within the folder you expanded
the CTC archive:

ctc-install.bat -PortalAdminPwd password -WasPassword password

4.8.9 Setting up IBM Security Directory Server


You can use IBM Security Directory Server to provide a trusted identity data infrastructure for
authentication.

IBM Security Directory Server provides a server that stores directory information using a DB2
database. It also provides a proxy server for routing LDAP operations to directory servers with
database. IBM Security Directory Server provides client utilities and graphical user interfaces
(GUI), such as Instance Administration Tool (idsxinst) and Configuration Tool (idsxcfg), to
manage servers.

Chapter 4. Architecture and setting up the server infrastructure 47


This section does not provide steps of setting up IBM Security Directory Server since they are
documented in elsewhere already. Rather, we provide the necessary references for you to get
the information.

LDAP pre-requirements
To ensure that the Profiles population wizard can return the maximum number of records from
your LDAP directory, set the Size Limit parameter in your LDAP configuration to match the
number of users in the directory. For example, if your directory has 100,000 users, set this
parameter to 100000. If you cannot set the Size Limit parameter, you can run the wizard
multiple times. Alternatively, you can write a JavaScript function to split the original LDAP
search filter, run the collect_dns_iterate.bat file, and then run the
populate_from_dns_files.bat file.

To prepare to configure your LDAP directory with IBM WebSphere Application Server,
complete the following steps:
1. identify LDAP attributes to use for the following roles. If no corresponding attribute exists,
create one. You can use an attribute for multiple purposes. For example, you can use the
mail attribute to perform the login and messaging tasks.
Display name: The cn LDAP attribute is used to display a person's name in the product
user interface. Ensure that the value you use in the cn attribute is suitable for use as a
display name.
Log in: Determine the attributes that you want the users to use to log in to IBM
Connections. For example, uid.

Note: The login name must be unique in the LDAP directory.

Messaging: (Optional) Determine which attribute to use to define the email address of
a use. The email address must be unique in the LDAP directory. If a user does not have
an email address and does not have an LDAP attribute that represents the email
address, that user cannot receive notifications.
Global unique identifier (GUID): Determine which attribute to use as the unique
identifier of each user and group in the organization. This value must be unique across
the organization.
2. Collect the following information about your LDAP directory before configuring it for
WebSphere Application Server:
Directory Type: Identifies and selects a directory service from the available vendors
and versions.
Primary host name
Port
Bind distinguished name
Bind password
Certificate mapping
Certificate filter, if applicable.
LDAP entity types or classes: Identifies and selects LDAP object classes. For example,
select the LDAP inetOrgPerson object class for the Person Account entity, or the LDAP
groupOfUniqueNames object class for the Group entity.
Search base: Identifies and selects the distinguished name (DN) of the LDAP subtree
as the search scope, for example, select o=ibm.com to allow all directory objects

48 Building and Implementing Social Digital Experiences


underneath this subtree node to be searched. Examples for the Group Search, use the
following LDAP attributesor: Group, OrgContainer, PersonAccount, or inetOrgPerson.

Installation with IBM Installation Manager


IBM Installation Manager is a tool that you can use for the installation and maintenance of
IBM Security Directory Server and its core pre-requisite software.

IBM Installation Manager overview


IBM Installation Manager is an installation wizard that guides you through the steps to install,
modify, update, roll back, or uninstall IBM products. It can use remote or local software
repositories for installation. For information, click here.

Supported operating systems


You can use IBM Installation Manager for the installation of IBM Security Directory Server on
AIX (ppc64), Linux (AMD64/EM64T architecture), and Microsoft Windows. For information,
click here.

IBM Security Directory Server installation package types


To choose the correct IBM Security Directory Server installation package, you must know the
available installation package types. For information, click here.

Installation guidelines
You must consider some restrictions before you begin the installation of IBM Security
Directory Server with the IBM Installation Manager. For information, click here.

IBM Security Directory Server components


When you install IBM Security Directory Server with the IBM Installation Manager, you can
select the components that you want to install. IBM Installation Manager displays the
dependencies of each component that you select. For information, click here.

IBM Security Directory installation customization


You can customize the IBM Security Directory Server installation to suit your product usage.
For information click here.

Default installation locations


If you run IBM Installation Manager for installation, IBM Security Directory Server and its
co-requisite software is installed in the predefined installation location. For information, click
here.

Installation repositories
The installation repository is the location where the IBM Security Directory Server packages
are available for installation. For information, click here.

Starting the installation


You can start the installation of IBM Security Directory Server either by using the Launchpad
or by using IBM Installation Manager set with repository preferences. For information, click
here.

Installing with IBM Installation Manager


Complete the steps to install IBM Security Directory Server with the IBM Installation Manager.
For information, click here.

Chapter 4. Architecture and setting up the server infrastructure 49


Silent mode installation
You can use silent mode installation to install IBM Security Directory Server on multiple
system without any manual interventions. For information, click here.

4.8.10 Setting up Tivoli Directory Integrator


IBM Security Directory Integrator is designed and built on the premise that even the most
complex integration problems can be decomposed down into three basic parts:
The systems involved in the communication also called data sources
The data flows between these systems
The events that trigger the data flows

With IBM Security Directory Integrator, you translate this atomic understanding of the
integration problem directly into a solution, building it incrementally, one flow at a time, with
continuous feedback and verification. This approach makes integration projects easier to
estimate and plan, sometimes reducing this effort to the counting and costing the individual
data flows to be implemented. Completing a task in runnable steps also allows you to
regularly demonstrate progress to stakeholders.

Installing Tivoli Directory Integrator


Follow these steps to install Tivoli Directory Integrator 7.1:
1. Unzip the Tivoli Directory Integrator 7.1 for Windows (CZ9MKML) in a temporary directory
(c:\temp), and start the launchpad.bat to launch the welcome screen.
Click Install IBM Tivoli Directory Integrator and click Tivoli Directory integrator 7.1
Installer.

2. Select your Language.

50 Building and Implementing Social Digital Experiences


3. In the Introduction page, click Next.

4. In the Previous Installations page, click Next.

Chapter 4. Architecture and setting up the server infrastructure 51


5. In the Software License Agreement page, click I accept the terms in the license
agreement and click Next.

52 Building and Implementing Social Digital Experiences


6. In the Choose Install Folder page, specify an Installation directory and click Next. We
recommend keeping the path name short and using 8 character folder names. Common
practice on Windows is to place the installation in a folder such as IBM, not Program Files
(x86) to avoid the spaces and longer folder names.

7. In the Choose Install Set page, select Typical and click Next.

Chapter 4. Architecture and setting up the server infrastructure 53


8. In the Solutions Directory page, Select Do not specify use current working directory
at startup time and click Next.

9. In the TDI Server Ports page, accept the default values and click Next.

54 Building and Implementing Social Digital Experiences


10. In the TDI Server Service page, accept the default values and click Next.

11. In the Integrated Solutions Port Values page, accept the default values and click Next.

Chapter 4. Architecture and setting up the server infrastructure 55


12. In the AMC Service page, accept the default values and click Next.

13. In the Pre-Installation Summary page, review the information in the Pre-Installation
Summary window and click Install.

56 Building and Implementing Social Digital Experiences


14. In the Install Complete page, uncheck Start the Configuration Editor and click Done.

You have now finished the IBM Tivoli Directory Integrator V7.1 installation.

Chapter 4. Architecture and setting up the server infrastructure 57


Applying the fix pack
After install Tivoli Directory Integrator 7.1, apply Fix Pack 6 using the following steps:
1. Download Fix Pack (7.1.0-TIV-TDI-FP0006.zip) from IBM Support Portal - Fix Central.
2. Unzip the Tivoli Directory Integrator 7.1 Fix Pack 6 (7.1.0-TIV-TDI-FP0006) in a temporary
directory (c:\temp) and go to this directory:
cd \temp\7.1.0-TIV-TDI-FP0006
3. Run the following command:
c:\IBM\TDI\V7.1\bin\applyUpdates.bat -update TDI-7.1-FP0006.zip

The following figure shows an installation output:

4.8.11 Storing IBM Connections content in IBM FileNet Content Manager


Document management with IBM FileNet Content Manager helps you meet the growing
challenge of managing enterprise content with greater speed, efficiency and accuracy.
FileNet Content Manager is a document management engine that combines enterprise
content, security and storage features with ready-to-use workflow and process management
capabilities. IBM FileNet Content Manager offers a single repository for enterprise content to
provide centralized access and better control.

IBM Connections can be integrated with IBM FileNet Content Manager using the Linked
Library widgets so that IBM Connection documents can be stored in the enterprise content
repository managed by IBM FileNet Content Manager.

FileNet Services for IBM Quickr is an adaptable web service component that integrates IBM
Connections server and IBM FileNet Content Manager. A Linked Library is a custom IBM
Quickr widget installed on the IBM Connections server and by default it is not enabled.

Configuring FileNet Content Manager


FileNet Content Manager and FileNet services for IBM Quickr need to be installed and
configured prior to integrating with IBM Connections server. A library object is created in the
FileNet Content Manager to manage all the documents and folders.

To configure FileNet Content Manager, follow these steps:

58 Building and Implementing Social Digital Experiences


1. Install and configure FileNet Content Manager on an appropriate platform.

Note: For detailed steps, see IBM FileNet P8 Platform Documentation

2. If FileNet is installed on a Linux platform, install FileNet Enterprise Manager (FEM) on a


Windows platform so that the FileNet Content Manager can be managed from FEM.
3. Install and configure FileNet Services for Quickr on an appropriate platform.
4. Install FileNet Services for Quickr add-ons to FileNet Object Store.
When the above steps are completed, you will see QuickrRoot under RootFolder in
FileNet Enterprise Manager.
5. Create a library and apply the necessary access settings.
6. Enter the following URL to validate the library:

http://< fully qualified Quickr services hostname>:/dm/atom/libraries/feed

7. To validate FileNet Services for Quickr services, enter the following URL. This service
status would be either running or stopped.

http://< fully qualified quickr services hostname >:/dm

Configuring IBM Connections


To use FileNet with IBM Connections server, the Linked library widget need to be enabled. To
enable Linked library widgets, the configuration file need to be checked out to a temporary
location and make a necessary changes and check-in to the configuration repository.

Follow these steps to configure IBM Connections:


1. Start the wsadmin client from Deployment Manager Profile Directory where IBM
Connection server is installed:
/wsadmin.sh(bat) lang jython username -password
2. Run the Jython script interpreter using following command to initialize the Communities
configuration file:
execfile(communitiesAdmin.py)
Now Communities Admin service is initialized.
3. Run the following command to check out the widget-config.xm:
CommunitiesConfigService.checkOutWidgetsConfig("working_directory",
"cell_name")
Where
- Working_directory is the directory where configuration files are copied.
- cell_name is the name of the WebSphere cell hosting the communities application.
4. Go to working directory and add the following entries at the end of widget-config.xml to
enable Linked library widget for IBM Connections communities.

<widgetDef defId="<Library Name>" bundleRefId="lc_clib"


url="{webresourcesSvcRef}/web/quickr.lw/widgetDefs/LibraryWidget_QCS_Connection
s.xml?etag={version}" description="CustomLibrary.description" modes="view edit
fullpage" primaryWidget="false"
helpLink="{helpSvcRef}/topic/com.ibm.lotus.connections.communities.help/c_com_l

Chapter 4. Architecture and setting up the server infrastructure 59


ibrary_frame.html" iconUrl="{contextRoot}/nav/common/images/iconFiles16.png"
uniqueInstance="true" displayLoginRequired="true">
<itemSet>
<item name="allowCustomServers" value="false"/>
<item name="allowedHosts" value=" http://<FileNetQuickrServices Host
Name>:<port>"/>
</itemSet>
</widgetDef>

5. Run the following command to check-in the widget-config.xml:


CommunitiesConfigService.checkInWidgetsConfig("working_directory","cell_name")
6. Run the following command to initialize the general service:
execfile(connectionsConfig.py)
7. Run the following command to check out the proxy-ecm-config.tpl file:
LCConfigService.checkOutProxyEcmConfig("working_directory","cell_name")
8. Go to the working directory and modify the proxy-ecm-config.tpl file to allow IBM
Connections server to communicate with FileNet Services for Quickr server:
Before:

<proxy:policy url="http://www.myECMServer.com:8080/*" acf="none"


basic-auth-support="true">

After:

<proxy:policy url="http://<FileNet Services for Quickr>:<port>/*" acf="none"


basic-auth-support="true">

9. Run the following command to check in the proxy-ecm-config.tpl file:


LCConfigService.checkInProxyEcmConfig("working_directory","cell_name")
10. Restart the IBM Connections server.
11. Log into IBM Connections server with administrator user ID.
12. Go to the Communities tab and select a Community.
13. Select Customize.
14. Add the newly configured linked library widgets to the list.
15. Export the LTPA token from FileNet WebSphere Application server to IBM Connections
WebSphere Application Server. The domain name must be same and share the same
LDAP to enable Single Sign on (SSO) between IBM Connections and IBM FileNet ECM
server.

Testing the integration with FileNet


When user adds documents or folders to the Linked library in IBM Connections community
application, the document is actually stored in the FileNet Content Manager. To validate the
scenario, execute the following steps as mentioned below:
1. Login to the IBM Connections server with a valid user ID and password and go to
Community where you want to work.
If the Community administrator added the Linked Library to the community, it will be shown
to the user along with other widgets.
2. Select the Linked Library widget.

60 Building and Implementing Social Digital Experiences


3. Login to the FileNet Services for Quickr application with existing credential or new
credential.
4. The Library will be retrieved from the FileNet Content Manager repository.
5. You can add files or folder that will be stored in the FileNet Content Manager repository.
6. Log out from the IBM Connections server after completing the task.

4.9 Setting up security


IBM Connections uses single sign-on (SSO) to secure the transfer of user ID and password
information that is used to authenticate with the system. With SSO, users can switch to
different applications without the need to authenticate again. SSO is automatically enabled
when IBM Connections is installed on a single WebSphere Application Server profile or when
different profiles are federated into the same cell.

Configuring single sign-on for users is recommended over using basic authentication for user
interactions as with basic authentication, each user has to manually authenticate with all the
systems being integrated which is troublesome and is only suited during development and
troubleshooting but not in a production environment.

This section covers the following topics:


Using LTPA for Single Sign On between IBM Connections and WebSphere Portal.
Other mechanisms for SSO between IBM Connections and WebSphere Portal.
Setting up federated repositories and application security.

4.9.1 Using LTPA for single sign on between IBM Connections and WebSphere
Portal
This section describes the steps that are required to enable single-sign-on (SSO) between
IBM Connections and WebSphere Portal when they are on different WebSphere Application
Server cells. Applications that are deployed on servers within the same WebSphere
Application Server cell are enabled for SSO by default.

To allow SSO between IBM Connections and WebSphere Portal, complete the following
steps:
1. On the server where IBM Connections is installed, enable SSO:
a. Log in to the WebSphere Application Server Integrated Solutions Console as an
administrator, expand Security Global security.
b. Expand Web and SIP security and then click Single sign-on (SSO).

Chapter 4. Architecture and setting up the server infrastructure 61


c. Enter the domain name.

Note: Ensure that the domain name you enter is valid: On the node where WebSphere
Portal is installed, log in to the WebSphere Application Server Integrated Solutions
Console as an administrator, click Security Global security Web and SIP
security Single sign-on (SSO) and verify that the domain name is present. If not,
repeat this step for WebSphere Portal as well.

2. On IBM Connections deployment manager node, complete the following steps:


a. Log in to the WebSphere Application Server Integrated Solutions Console as an
administrator.

62 Building and Implementing Social Digital Experiences


b. Click Security Global security LTPA, and then in the Cross-cell single sign-on
section, provide values for the following fields:
Password Type a secure password that you will remember. You must provide this
password later, when you export the key file

Note: Confirm the password.

Fully qualified key file name Specify a valid path and a name for the file that stores
the exported keys

c. Click Export keys.


3. On the node where WebSphere Portal is installed, complete the following steps:
a. Log in to the WebSphere Application Server Integrated Solutions Console as an
administrator and click Security Global security LTPA.
b. In the General properties section, provide values for the following fields:
Password Type the password that you used for the IBM Connections key file that
you exported.

Note: Confirm the password.

Fully qualified key file name Specify the name of the IBM Connections key file that
you exported.
c. Click Import keys.

Chapter 4. Architecture and setting up the server infrastructure 63


4. Restart all the nodes.
To verify that SSO is configured properly, login to WebSphere Portal with any user which is
also a connections user, say user A, and user should be able to login successfully. Once
logged in, open the Connections server URL, such as https://connections:9444/blogs, in
the same browser window, same user A should be logged in automatically to connections.

4.9.2 Other mechanisms for SSO between IBM Connections and WebSphere
Portal
Other ways of setting up SSO between IBM Connections and WebSphere Portal are using
third party authenticator such as Tivoli Access Manager, SPNEGO, and SiteMinder.

Follow these documentation on setting up SSO with the TPA:

Configuring single sign-on for portlets with TAM and SPNEGO

Configuring single sign-on with Tivoli Access Manager

Configuring single sign-on with SiteMinder and SPNEGO

Configuring single sign-on for portlets with SPNEGO

4.9.3 Setting up federated repositories and application security


Before you start, make sure that the Deployment Manager is started.

To setup the federated repository and application security, follow these steps:
1. Open the WebSphere Administration Console:
http://connections.example.com:9060/ibm/console.
2. Log in with the user you previously defined as administrator.

64 Building and Implementing Social Digital Experiences


3. Expand the "Security" section and click Global security.

4. Click Configure.

5. Click Add Base entry to Realm.

Chapter 4. Architecture and setting up the server infrastructure 65


6. Click Add Repository.

7. Type a name in the "Repository identifier" field, select a Directory type, type the "Primary
host name," and then type the user name and password of the "Bind distinguished name."
Use default values for the other fields.

66 Building and Implementing Social Digital Experiences


8. At the bottom of the page, click Apply. Next. at the beginning of the page, click Save as
shown in the following panel.

9. Fill the first field with the value of the base DN of the user container of your LDAP server.
This changes depending on the type of LDAP that you have. In this example, TDS is used
so the value isdc=connections,dc=example,dc=com.
The second field defines the location in the LDAP directory information tree from which the
LDAP search begins. The entries beneath it in the tree can also be accessed by the LDAP
search. In this example, the value is dc=connections,dc=example,dc=com.
For other LDAP servers:
Domino - Type ou=, o=, (for example, all that follows CN=username in the User Name
in Domino in both fields)
Active Directory - Use the same value as TDS.
When you are done, click Apply and then click Save.

Chapter 4. Architecture and setting up the server infrastructure 67


10. Click OK and then click Save.
11. Verify that the new base entry has been saved.

12. Click OK and then click Save.


13. Enable Administrative security and Application security. Do not enable Java 2 security.
Click Apply and then click Save.

Optional: If you want to set up SSO later, you must do the following:

68 Building and Implementing Social Digital Experiences


1. Expand the "Security" section and click Global security.
2. On the right, click the + sign next to "Web and SIP security" and then click Single sign-on
(SSO).

3. Insert the Domain name (for example, example.com) and then select the "Interoperability
Mode" check box.

4. Click Apply and then click Save.


5. Log out from the administrative console. Then, stop and restart the Deployment Manager.

4.10 Troubleshooting
Troubleshooting an environment consists of IBM WebSphere Portal Version 8 and IBM
Connection Version 4.5 requires you to acquire data about the two products installation
details, versions and logs. You can use various scripts, techniques, and patterns to address
issues that you might find when running your environment.

Chapter 4. Architecture and setting up the server infrastructure 69


Note: For detailed information on how to troubleshoot these two products, use the links
below:
Troubleshooting and support for IBM Connections version 4.5
Troubleshooting IBM WebSphere Portal Server version 8

In case you cannot resolve the problem by yourself, there is the option of creating a Problem
Management Record (PMR) with your local IBM support or by this link. Opening a PMR
requires you to provide your IBM Customer Number (ICN), version details of your
environment, and the description of the problem. You can find more information about how to
create a PMR by click here.

4.11 Search and tags


IBM Connections search is based on multifaceted search technology and uses related
people, related dates, related tags, and source application facets. This information enables
users to drill down into specific facets to find the content that they want without having to page
through large numbers of results.

During the indexing process, bookmarks created in the Activities, Communities, and
Bookmarks applications are indexed into the same document, and the details of the link, such
as its tags, are used to supplement the document in the index. For example, a blog posting
that was bookmarked in the Bookmarks application has facets for both Bookmarks and Blogs.

Search results in IBM Connections are based on the following facets.

Facet Description

Date The set of dates associated with the search results.

This facet enables users to filter search results first by year, and then by year
and month.

Tags The complete set of tags used for the full text result set, including tags
associated with bookmarks created in the Bookmarks, Activities, and
Communities applications.

Related people The complete set of users associated with the full text result set. This facet
includes associations mined from bookmarked content in Activities,
Bookmarks, Communities, Files, Forums, and Wikis. Related people also
include shared authors on blogs and people who have commented on blogs.

Source component The IBM Connections application from which the results were retrieved.

Users can filter results by source using the options at the side of the Search
Results page.

These facets are calculated at indexing time for optimum performance at search time.

Accessing the search configuration environment


You need to initialize the search configuration environment to be able to run the
SearchCellConfig and SearchService MBean commands. For information, click here.

70 Building and Implementing Social Digital Experiences


The indexing process
The Search index is generated by retrieving information from each of the applications based
on a schedule defined by the administrator. Search uses the IBM WebSphere Application
Server scheduling service for creating and updating the Search index. The index must be
deployed on each node running the Search enterprise application. For information, click here.

Creating search indexes


Search indexing is automatically configured for IBM Connections during installation. For
information, click here.

Index settings
Indexing is automatically configured in IBM Connections. However, when setting up indexing
for your environment, you might need to perform additional configuration tasks. For
information, click here.

Managing the search index


The Search application uses a Lucene 3.0.3 index, supplemented by social facet information.
The location of the Search index is mapped to an IBM WebSphere Application Server
variable, SEARCH_INDEX_DIR. The value of this variable is set
toCONNECTIONS_DATA_DIRECTORY/search/index by default. For information, click here.

Managing the search application


You can perform the following tasks when managing the Search application. For information,
click here.

Administering the social analytics service


The social analytics widgets that are available from Communities, Profiles, and the Home
page use the Search application as a data provider. For information, click here.

Viewing and collecting search metrics


Enter a URL to view a standard set of metrics related to the Search application. You can also
write internal search metrics to a file. For information, click here.

SearchCellConfig commands
The SearchCellConfig commands are used to configure the location of the Search index and
the IBM LanguageWare dictionaries used by Search, and to configure the file download and
conversion service used when indexing file attachments. For information, click here.

SearchService commands
The SearchService commands are used to create, retrieve, update, and delete scheduled
task definitions for the indexing and optimization Search operations. For information, click
here.

Chapter 4. Architecture and setting up the server infrastructure 71


72 Building and Implementing Social Digital Experiences
5

Chapter 5. Setting up a development


environment
To get started with the development of the applications, you need to install and configure the
necessary development environment along with the test environment. This section covers the
features and installation of the following:
Rational Application Developer
Web Experience Factory

IBM WebSphere Portal and IBM Connections should have already been setup from the
previous section.

Copyright IBM Corp. 2014. All rights reserved. 73


5.1 Rational Application Developer
You can use IBM Rational Application Developer for WebSphere Software to design, develop,
analyze, test, profile, and deploy high-quality web, service-oriented architecture (SOA), Java,
Java EE, Web 2.0, mobile, OSGi, and portal applications.

Rational Application Developer is part of the Rational Software Delivery Platform family of
products. Built on Eclipse 4.2, it is an extensible and customizable platform for constructing
and integrating software development tools. Each product in the Rational desktop family uses
the same integrated development environment (IDE). The differences among these products
reflect the optional features that are available and installed in each configuration.

5.1.1 Features of Rational Application Developer


To see the set of features, open Rational Application Developer, and then click Help
Welcome to see the overview of features, descriptions of new tools, links to tutorials and
samples, links to get started, and links to web resources.

The following table lists and describes some of the features that are available in Rational
Application Developer:

Feature Description

Web developer tools Graphical tools for building powerful server-side web applications that
are based on JavaServer Faces, JavaServer Pages, Portals, and
Portlets
Tools for HTML 5, CSS 3, JavaScript, Dojo (Dojo Toolkit 1.9), and
jQuery (jQuery Core 1.9.1, jQuery Mobile 1.3.1)
Rich Page Editor, a WYSIWYG and source editor
Simulation and testing tools to see how your application looks and test
on fixed and mobile devices

Enterprise developer Editors, validators, quick fixes, and many other tools that simplify the
tools development process with complex programming models and help
you focus on automating your business
Support for Java EE 6, from the web (JSF, JSP) to the middle tier
(EJB) and beyond (JPA, JCA)
Support for frameworks for building modular, service oriented software
(OSGi, SCA)

Rapid development and WebSphere Application Server Liberty profile, a developer-friendly


testing application server that starts in seconds
Test tools for Dojo, JSPs, JSFs, REST services, web services, EJBs,
and more
Server and specification migration wizards
Broad, rich integration between Rational Application Developer and
several versions of WebSphere Application Server and WebSphere
Portal Server

Collaboration, quality, Team collaboration with the Rational Team Concert client
and build A multi-language debugger that can transfer debug sessions in real
time, or across time zones
Code coverage tools that are tied into the editing, check-in, and build
phases of the development cycle
Static and dynamic analysis tools for finding anti-patterns,
performance problems, memory leaks, and misbehaving threads
Integration with Apache Maven

74 Building and Implementing Social Digital Experiences


Feature Description

Cloud computing Direct integration between Rational Application Developer and IBM
SmartCloud Enterprise that offloads your WebSphere test
environment from the desktop to the public cloud
Tools for developing virtual application pattern workloads for an IBM
Workload Deployer or IBM PureApplication System private cloud

What's new in version 9.0.1


Version 9.0.1 of Rational Application Developer contains the following new features and
enhancements:
WebSphere Optimized Local Adapters support
Security compliance defined by the National Institute of Standards and Technology
Special Publications
Portal tools support for WebSphere Portal 8.0 on WebSphere Application Server 8.5
Optimized license usage in shell sharing scenarios. A product license is required only
when a function in that product is explicitly invoked.
Improved startup time and time to work with a WebSphere Application Server Full Profile
instance by 30-40%

Additional reference

For more information, see the following links:


Rational Application developer 9.1
Rational Application Developer for WebSphere Software 9.0.x: new features and
enhancements
Developing WebSphere Portal application by using IBM Rational Application Developer

5.1.2 Installation of Rational Application Developer


Before you start with the installation, make sure that all the hardware and software
requirements are met. In addition, review the features you need to install. Plan ahead
because the installation for some of the features are optional in a typical installation.

Note: To get detail instruction on installing Rational Application Developer, follow the
product documentation:

Installing Rational Application Developer for WebSphere Software

5.2 IBM Web Experience Factory


Web Experience Factory is a powerful and flexible tool for rapidly building portlets on top of a
service-oriented architecture.

With Web Experience Factory, developers can quickly and easily leverage their company's
core assets, and automatically assemble them into custom, high-value portlets. Portlets
created with Web Experience Factory are dynamic and robust Java Enterprise Edition (JEE)
applications that react automatically to change. These portlets can be further modified by

Chapter 5. Setting up a development environment 75


business users in real time, to meet changing business requirements without requiring any
coding, duplicating or versioning of assets.

By eliminating the need to code all of these implementations and their variations, Web
Experience Factory simplifies the development, publishing, and change management
process, saving companies time and money.

5.2.1 Features of IBM Web Experience Factory


The following table lists and describes the primary features that are available in Web
Experience Factory:

Feature Description

Supports rapid development of This development environment reduces the modify-test cycle from
portlets by running them several minutes to seconds, enhancing developer productivity.
stand-alone in WAS Liberty

Automates the creation of The Web Experience Factory rapid application development (RAD)
multiple-page custom portlets capabilities and ease of use enable developers of all skill sets to
create multi-page, complex portlets.

Developers build portlets by defining a sequence of highly adaptive


software components called builders, which have an easy-to-use
interface. Developers assemble builders into models, which then
generate the application code. In this way, developers can capture
and automate the process of building dynamic portlets, instead of
explicitly coding each portlet.

Many portlets and patterns may be built using the existing Web
Experience Factory builders with little to no coding necessary,
while coding is still possible for those that wish to build Web
Experience Factory wizard-like builders encapsulating custom
business patterns and logic.

Robust integration capabilities Web Experience Factory provides automatic integration with
with enterprise applications and existing applications and data including SAP, Lotus Domino, Web
data Services, relational databases, and Microsoft Excel.

Developers can quickly create composite, high-value portlets that


leverage existing investment in your existing applications and data.

Automatic integration with IBM With Web Experience Factory, you have direct integration with
WebSphere Portal WebSphere Portal features such as portlet wiring, Click-to-Action,
business user configuration, people awareness, WebSphere Portal
groups, and the credential vault. Portlets are published
automatically to WebSphere Portal software.

Support for SOA development Web Experience Factory provides powerful technology for
speeding the creation of service-oriented applications (SOA) and
portlets. It includes data services builders along with data
integration builders that together automate the process of creating
services from systems such as SAP and IBM Lotus Domino. This
services approach provides a clean way to separate the back end
services of an application from the presentation layer. It also
automatically creates testing support for back end services, and it
enables front end presentation development and testing without
requiring a back end connection.

76 Building and Implementing Social Digital Experiences


Feature Description

Creates many portlet variations With the profiling capability of Web Experience Factory, developers
from a single code base can easily create multiple portlet variations from one code base,
without requiring any additional code changes or republishing.

Automates frequently occurring By creating new builders, developers and architects can capture
development tasks commonly used design patterns and company-specific business
processes as reusable components for all developers, enforcing
application architecture and development best practices.

Additional reference

For additional information, see:

High level overview of Web Experience Factory Designer

5.2.2 Installation of IBM Web Experience Factory


Before you start with the installation, make sure that all the hardware and software
requirements are met. In addition, review the features you need to install. Plan ahead
because the installation for some of the features are optional in a typical installation.

Note: To get detail instruction on installing IBM Web Experience Factory, follow the product
documentation:

Web Experience Factory Product Installation Guide

Chapter 5. Setting up a development environment 77


78 Building and Implementing Social Digital Experiences
6

Chapter 6. Pattern 1: Adding social


alongside an existing portal
In this section, we describe how to add robust, dynamic, and personalized social components
via IBM Connections alongside your existing websites. We recommend a method for styling
so that users do not have a disconnected experience when working in the combined
environment. We cover how to unify the navigation structures and ensure a consistent login
and logout experience through the use of branding techniques and sharing Portals theme
with IBM Connections through the use of WebSphere Application Integrator (WAI). Taking the
example even one small step further, we show how the two products can be merged into one
URL structure to elevate the contiguous experience to making the otherwise independent
products functionally one exceptional social digital experience.

Copyright IBM Corp. 2014. All rights reserved. 79


6.1 Why use side by side
When faced with deploying a social platform to the enterprise, there are many considerations.
Much like any software package, these choices include ease of maintenance, manageability,
interoperability with other systems already in the enterprise, and scalability to name a few.
IBM Connections provides these capabilities through its mature underlying architecture of
WebSphere Application Server and flexible customization model.

An organization is likely to deploy IBM Connections alongside other systems when they are
looking to maximize their manageability through the ability to quickly adopt updates and new
features without disruption or significant development costs after the purchase. Leveraging
the product mostly out of the box means time and efforts are able to be spent on
infrastructure, adoption, governance, and steady state support as opposed to software
development tasks. Your organization may find this to be a desirable state based on available
in-house skills or resource availability considerations.

6.2 How IBM Connections helps


Even though IBM's Portal products remove the technical complexities of achieving an
exceptional digital experience, IBM Connections implements a flexible interface through the
use of a centralized customization model and a CSS based interface framework, called
OneUI. This enables system integrators and developers to make changes to the color
scheme and replace the IBM branding elements with their own more easily. This approach
protects your customization during updates and allows your organization to rapidly adopt fixes
or features as they are released without the need to duplicate tailoring or branding efforts in
many cases.

The IBM Connections documentation includes some best practices when customizing the
user interface that can be found here.

6.3 Deployment process


To implement the side-by-side deployment, you need to perform the following steps:
1. 6.4.1, Configuring the same HTTP server for IBM WebSphere Portal and IBM
Connections on page 81
2. 6.4.2, Integrating IBM WebSphere Portal and IBM Connections using the Web
Application Integrator (WAI) on page 84
3. 6.5.1, Customizing the login page on page 94
4. 6.5.2, Customizing the user interface on page 95

6.4 Integrating Portal and Connections


Integrating your IBM WebSphere Portal platform with IBM Connections will add much-needed
social digital capabilities to your website, allowing your users to use out of the box features
such as blogs, forums, activities, wikis, bookmarks, and profiles.

In the scenario we discuss here, we show you how to leverage the side-by-side deployment to
address the needs of a government agency that wants to provide social capabilities for

80 Building and Implementing Social Digital Experiences


improved collaboration among employees, increase the level of transparency and efficiency in
the organization, and foster an environment of information sharing as opposed to information
hoarding.

In order to to implement the side-by-side deployment, the following environmental


prerequisites must be met:
All products must use the same LDAP for authentication.
Configuring IBM Connections for LDAP
Both the website and IBM Connections must be configured with the same DNS suffix. (Ex:
www.web_site.ro and cnx.web_site.ro)
The products will be installed, as described in their respective documentation, and on
dedicated systems.
Installing IBM Connections
Installing WebSphere Portal

As per the WebSphere Portal documentation configure web single sign (SSO) on between
Connections and Portal. This step is required for most of the scenarios discussed throughout
this guide.

Be sure to test LTPA SSO by logging into Portal and changing the URL to a Connections URL
which is protected, like /homepage/. If you are not challenged for credentials, then your SSO
configuration is successfully configured. It is also recommended that you take a moment to
test inter application interaction within Connections before proceeding. Do this by browsing to
an existing community or create a new one. Add a new feature that is not already there, such
as an Ideation Blog. If the operation completes as expected, your testing is a success.

In the following subsections, we describe how to perform these steps:


6.4.1, Configuring the same HTTP server for IBM WebSphere Portal and IBM
Connections
6.4.2, Integrating IBM WebSphere Portal and IBM Connections using the Web
Application Integrator (WAI) on page 84

6.4.1 Configuring the same HTTP server for IBM WebSphere Portal and IBM
Connections
Both IBM Connections and IBM WebSphere Portal Server (WP) make use of the IBM HTTP
Server (IHS) in order to optimize caching operations, to offer a way of separating static HTTP
content from the application server, and to provide other benefits as well. When deploying
IBM Connections alongside an existing WP deployment, one of the strategies we can employ
to promote accessibility and further future integrations is to deploy IBM Connections as an
extension of your existing digital experience. This ensures that the URLs to access
Connections is similar to the URLs already in use for the WP. Assuming WP is accessed by
the user community as intranet.demos.ibm.com, we setup Connections to make use of that
base URL as well.

The IBM System Console (ISC) provides an automated process to deploy the IHS plug-in for
both Connections and Portal. This process assumes that the respective products are the only
applications running on the servers. The result of completing the configuration steps in the
ISC is an XML file, keyring file, and a stash file which are copied to the web server. The XML
files generated for both WP and Connections, typically named plugin-cfg.xml, are comprised
of the same basic sections with no name space overlap by default. This means the process of
integrating your Connections deployment into your Portal deployment at a high level requires

Chapter 6. Pattern 1: Adding social alongside an existing portal 81


integrating the two plugin-cfg.xml files, configuring both products to use the same hostname
when producing dynamic URLs and references, and trust the same security keys.

Preparation
As part of the preparation, you need to configure SSL for the HTTP server.

Configuring SSL for the HTTP server


If you have not done so already, configure the HTTP server for SSL according to the
instructions found in the product documentation.

Integrating the plugins


To integrate the plugins, you need to make modifications to few settings.

Config general settings


Assuming that Portal is already using the existing HTTP server, you will want to begin by
locating your existing plugin-config.xml. This is typically found in /config if already deployed,
or in /config/cells/nodes/servers/plugin-cfg.xml.

Upon initial inspection, you will notice there are a few differences in the declaration, and an
additional defined when comparing the two plugin-cfg.xml files. We will integrate the
Connections settings into the Portal plugin so we will trust the Portal values here which
already exist unless you have specific tuning parameters for Connections which need to be
preserved.

HostGroup settings
We will focus on the section for default_host first. Copy any unique VirtualHost definitions
from the Connections plugin file into the Portal plugin file. In our example deployment, the
Portal plugin-cfg.xml contained:

<VirtualHostGroup Name="default_host">
<VirtualHost Name="*:9081"/>
<VirtualHost Name="*:80"/>
<VirtualHost Name="*:9444"/>
<VirtualHost Name="*:5063"/>
<VirtualHost Name="*:5062"/>
<VirtualHost Name="*:443"/>
<VirtualHost Name="*:10046"/>
<VirtualHost Name="*:10049"/>
<VirtualHost Name="*:10027"/>
<VirtualHost Name="*:10025"/>
<VirtualHost Name="*:10028"/>
<VirtualHost Name="*:10039"/>
<VirtualHost Name="*:10029"/>
<VirtualHost Name="*:10032"/>
</VirtualHostGroup>

Our Connections plugin contained:

<VirtualHostGroup Name="default_host">
<VirtualHost Name="*:9080"/>
<VirtualHost Name="*:80"/>
<VirtualHost Name="*:9443"/>
<VirtualHost Name="*:5060"/>
<VirtualHost Name="*:5061"/>

82 Building and Implementing Social Digital Experiences


<VirtualHost Name="*:443"/>
<VirtualHost Name="*:9081"/>
<VirtualHost Name="*:9444"/>
</VirtualHostGroup>

The resulting combined Virtual Host group now looks like:

<VirtualHostGroup Name="default_host">
<VirtualHost Name="*:9081"/>
<VirtualHost Name="*:80"/>
<VirtualHost Name="*:9444"/>
<VirtualHost Name="*:5063"/>
<VirtualHost Name="*:5062"/>
<VirtualHost Name="*:443"/>
<VirtualHost Name="*:10046"/>
<VirtualHost Name="*:10049"/>
<VirtualHost Name="*:10027"/>
<VirtualHost Name="*:10025"/>
<VirtualHost Name="*:10028"/>
<VirtualHost Name="*:10039"/>
<VirtualHost Name="*:10029"/>
<VirtualHost Name="*:10032"/>
<VirtualHost Name="*:9080"/>
<VirtualHost Name="*:9443"/>
<VirtualHost Name="*:5060"/>
<VirtualHost Name="*:5061"/>
</VirtualHostGroup>

ServerCluster settings
Next we need to transfer the ServerCluster sections from the Connections plugin into the
Portal plugin. Examine the existing cluster blocks to ensure there is no duplication of Name=
values. There should not be by default. Copy the entire block for each ServerCluster and past
it into the plugin-cfg.xml below the one that already exists.

UriGroup settings
Finally, we have the UriGroup and Route tag pairs. These should be kept together. The
default values should have no duplication, but examine just to be sure. Copy the contents
starting with the line:

<UriGroup Name="default_host_server1_<YOUR-NODE>_Cluster_URIs">

Until

<Route ServerCluster="ic4_cluster" UriGroup="default_host_<YOUR-CLUSTER>_URIs"


VirtualHostGroup="default_host"/>

Paste the block into the plugin-cfg.xml for Portal starting before the tag opens.

Wrapping up
You now have an integrated plugin-cfg.xml and the two application environments trust the
same key pair. Save this file and replace the one currently in use on the web server with this
one. Be sure to complete all of the steps for configuring the HTTP server for Connections,

Chapter 6. Pattern 1: Adding social alongside an existing portal 83


with the exception of anything referencing propagating the plugin, and restart your IHS and
Connections servers.

You now have an integrated plugin-cfg.xml and the two application environments trust the
same key pair. Save this file and replace the one currently in use on the web server with this
one. Be sure to complete all of the steps for configuring the HTTP server for Connections,
with the exception of anything referencing propagating the plugin, and restart your IHS and
Connections servers.

6.4.2 Integrating IBM WebSphere Portal and IBM Connections using the Web
Application Integrator (WAI)
As with many technologies, there are multiple ways to ensure consistent branding between
websites. In looking at our example, this means we would potentially build our theme for
Portal, and then duplicate the same theme in the Connections interface. If the theme is simply
limited to a small logo, this may be the preferred method as it is simple, effective, and
relatively easy to maintain.

The WebSphere Portal theme header in our example is more complicated than just a small
image to live in the same spot on all pages. We decided that in order to centrally manage our
solutions header it would be better to use a different approach and leverage WAI to present
the Portal header in place of the Connections header. This requires adding the WAI code into

84 Building and Implementing Social Digital Experiences


the header, eliminating the duplicate elements from the Connections header, and then
ensuring proper navigation exists for the components of our solution.

WAI installation steps


The WAI portlet can be downloaded from here: WAI

Documentation for installation and integration of WAI is found within the local file system at
the following directory after installation:

wp_profile/paa/WAIPortlet/components/WAIPortlet/documentation/Index.html

Alternatively, the documentation can be found in the following directory after unzipping the
webappintegrator.zip and WAIPortlet.paa files.

/webappintegrator/8.0.x/webappintegrator_for_Portal_8_0_x/WAIPortlet/WAIPortlet/co
mponents/WAIPortlet/documentation/Index.html

Note: The installation steps shown below are for a single node.

1. Unzip webappintegrator.zip to a temporary directory.


2. Determine the correct version of the WebAppIntegrator portlet that should be used (8.0)
and extract the files in that folder.

3. Copy WAIportlet.paa to a temporary directory on your portal server. Make sure the
WebSphere Portal Server is running.
4. Open a command prompt window and cd to wp_profile/ConfigEngine
5. Use the following commands to install and deploy WAI:
./ConfigEngine.sh install-paa -DPAALocation=/WAIPortlet.paa
-DWasPassword=waspwd -DPortalAdminPwd=wpspwd
Example:

Ensure you receive the following after running the above command.

./ConfigEngine.sh deploy-paa -DappName=WAIPortlet -DWasPassword=waspwd


-DPortalAdminPwd=wpspwd
Example:

Chapter 6. Pattern 1: Adding social alongside an existing portal 85


Ensure you receive the following after running the above command.

./ConfigEngine.sh deploy-webAppIntegrator
-DWebAppIntegratorLocation=/paa/WAIPortlet/components/WAIPortlet/installableApp
s -DWasPassword=waspwd -DPortalAdminPwd=wpspwd
Example:

Ensure you receive the following after running the above command.

6. Restart Portal Server.


7. After logging into WebSphere Portal:
Click the Administration tab.
Go to the following WebSphere Portal Portal User Interface Manage Pages.
Verify that you see the following WAI portlet at the bottom of Manage Pages.

WAI integration with IBM Connections 4.5


Perform these steps to integrate WAI with IBM Connections.

Step 1: WAI and a custom theme


See the section in the WAI documentation on How to Support Custom Themes to
determine which theme elements your WebAppIntegrator files will render. For the custom
Portal 8.0 theme used in this guide, we will render the top banner, page tab bar, breadcrumbs,
and footer links. After modifications have been made, ensure that there are no Javascript
errors in webAppIntegrator.jsp that will cause rendering to fail and not display the Portal
custom theme in Connections. The webAppIntegrator.jsp file is found in
custom-theme-name.war/themes/html/dynamicSpots/webAppIntegrator

Step 2: Creating a standard Portal URL page


To create a standard Portal URL page, follow these steps:
1. Log in to WebSphere Portal as an administrator (ie. wpsadmin).
2. Select Administration Portal User Interface Manage Pages.
3. Identify a parent page within the Portal navigation.
4. Navigate to the children of the parent page where you want the URL link to Lotus
Connections to be. For this sample, go to Content Root Government Home.
5. Click the New URL button.
6. On the "New URL" page:
Add a title for page. (ie. Social Gov).
Ensure that the radio button "A link to a Web page with the following URL" is
selected.

86 Building and Implementing Social Digital Experiences


Click the "HTML" checkbox and enter the URL to the external web application.
Click the "OK" button.

7. Assign a unique name to the "URL link" page to enable page for Exporting and Importing.
(ie.gov-social)

Chapter 6. Pattern 1: Adding social alongside an existing portal 87


Export the URL link page
1. Edit the ExportGovSocialPage.xml file to add the unique name of the page to be
exported.

2. Run the xmlaccess command from the /opt/WebSphere/PortalServer/bin subdirectory.


./xmlaccess.sh -in /ExportGovSocialPage.xml -user -password -url name of your
portal_server :/wps/config -out fileLocation/ExportGovSocialPageResults.xml
Ensure you successfully export the page.
Successful export console messages

88 Building and Implementing Social Digital Experiences


3. Edit the exported page, ExportGovSocialPageResults, by adding the following two
parameters.

<parameter name="com.ibm.portal.theme.template.file.name.html" type="string"


update="set"><![CDATA[ic4_wai]]></parameter>
<parameter name="resourceaggregation.profile" type="string"
update="set"><![CDATA[profiles/profile_deferred.json]]></parameter>

Example

Setting the com.ibm.portal.theme.template.file.name.html parameter to ic4_wai tells WAI


that this is an integration with Connections which causes WAI to add an additional CSS
class to the page and to set a Javascript variable which activates the ic4_wai theme
module, which provides some extra CSS and Javascript necessary for Portal and
Connections to co-exist.

Note: You must define which modules are used to render a page. Profiles specify which
modules are loaded on a page or whether they are deferred until after a page loads.

The list of modules is determined by:


If a profile path exists, it is obtained from the resourceaggregation.profile page
metadata.

Chapter 6. Pattern 1: Adding social alongside an existing portal 89


If no profile is set on the page, or the theme does not determine the profile, then the
default profile is defined by the resourceaggregation.profiles.default theme
metadata.
The list of available profiles within a theme is determined by loading all files in the folder
defined by the resourceaggregation.profiles.default theme metadata. If that metadata
is not defined, the profiles/ default folder is scanned for profiles.

Important: Only profile.json files are allowed. Use Web_Dav or Web_Drive to see the
list of profiles in name of your
portal_server/wps/mycontenthandler/dav/themelist/ibm.Portal.80Theme/profiles

The resourceaggregation.profiles parameter should point to a profile associated within


your theme which does not load dojo when integrating with Connections 4.0.
4. Save your file.

Note: Reference section 7.1.2, Configuring theme modules for social portlets on
page 103 for more details.

Import the URL link page


1. Rename ExportGovSocialPageResults.xml to ImportGovSocialPage.xml.
2. Run the xmlaccess command from the /opt/WebSphere/PortalServer/bin subdirectory.
./xmlaccess.sh -in fileLocation/ImportGovSocialPage.xml -user wpsadmin
-password wpsadmin -url http://name of your portal_server:10039/wps/config -out
fileLocation/ImportGovSocialPageResults.xml
Ensure you successfully import the page.

3. Restart Portal Server.

Step 3: Generating the WAI html script


1. Copy and paste the unique name or object identifier of the URL link page into the input
field.
2. Click the "Generate HTML script tag" button.

90 Building and Implementing Social Digital Experiences


Step 4: Adding the script
To now integrate our headers, we will copy the header.jsp and the footer.jsp from one of the
Connections applications to the
Connections/data/shared/customization/common/nav/templates directory. Files copied
to the customization directory override the same files within the EAR files and enable you to
manipulate the user interface in a location not to be disturbed by product updates or fixes.
Details on this can be found in the IBM Connections wiki.
1. Open the header.jsp and footer.jsp files with a text editor of your choice. Place the WAI
Generated HTML Script Tag at the top(first line) of the header.jsp and footer.jsp pages.
For header.jsp:

For footer.jsp

2. In the header.jsp, insert the following script before the WAI Generated HTML Script Tag.

<script type="text/javascript">
if (typeof djConfig != "undefined") {
var icConfig = djConfig;
}
</script>

Chapter 6. Pattern 1: Adding social alongside an existing portal 91


3. Now, in the header.jsp, insert the following script after the WAI Generated HTML Script
Tag.

<script type="text/javascript">
if (typeof icConfig != "undefined") {
djConfig = icConfig;
}
</script>

Example:

4. Save your files and restart your Connections server to see the custom Portal theme
displayed.

Troubleshooting hints and tips


If you are not seeing the custom theme in Connections, see the section in the WAI
documentation around Troubleshooting.

Connections also allows for more dynamic reading of the customization directory through the
WAS environment variable 'CONNECTIONS_CUSTOMIZATION_DEBUG' which can be set
while you are developing your user interface. Keep in mind it is a best practice to not leave this
setting enabled for a production deployment.

Clean up and remove duplicate elements


You need to clean up and remove duplicate elements within the header and footer.

92 Building and Implementing Social Digital Experiences


Within the header
Use the Portal Admin via Resource Permissions to add/remove permissions based on
user role.
Change the status of pages to inactive. This will help remove unwanted links to pages
within the Connections header.
Edit header.jsp to comment out the IBM Connections logo and other icons/logos that may
not be necessary for display.
Edit header.jsp to rename the Home tab.
Remove the duplicate user name found on the Connections header. Because this drop
down contains the Connections Logout link, you will need to add the following to your
header.jsp

<div id="logoutLink" style="display:hidden"></div>

Within the footer


See the following section 6.5.2, Customizing the user interface on page 95 for details on
cleanup/customizing the footer.jsp.

References and information sources

For additional references and information:


Working with the XML Configuration Interface
The Module Framework

6.5 Customizing IBM Connections


Customizing IBM Connections is one of the main steps in product deployment after the initial
installation. To create an exceptional social digital experience for your users, you might want
to stamp the organizations branding, naming, look and feel, and so forth in the system. In
many situations, it is necessary to blend the IBM Connections user interface into the user
interface of your corporate portal or other systems so that the whole experience is uniform.

There are many ways to customize the IBM Connections user interface. You can change the
appearance of the IBM Connections login page to meet your organization's needs. For
example, you can replace the IBM logo that is displayed on the login page with your own
company logo. Or you might want to include a link that enables users to have their user IDs or
passwords sent to them through email.

This section shows you how to perform the following tasks:


1. 6.5.1, Customizing the login page on page 94
2. 6.5.2, Customizing the user interface on page 95

Chapter 6. Pattern 1: Adding social alongside an existing portal 93


6.5.1 Customizing the login page
You can change the appearance of the IBM Connections login page to meet your
organization's needs. For example, you can replace the IBM logo that is displayed on the
login page with your own company logo. Or you can include a link that enables users to have
their user IDs or passwords sent to them through email.

To customize the login page, follow these steps:


1. Optional: Turn on the customization debugging capability. For more information, see
Enabling and disabling customization debugging.

2. Copy the login.jsp file from the WAR file of one of the applications. You can access the file
from the following directory:
WAS_HOME/profiles/profile_name/installedApps/cell_name/application_name.ear/a
pplication_name.war/nav/templates
where:
WAS_HOME is the directory to which you installed IBM WebSphere Application
Server.
profile_name is the profile to which you installed one of the IBM Connections
applications.
cell_name is the cell to which you installed the application.
application_name.ear is the EAR file name for the application.
application_name.war is the WAR file name for the application.

For a list of the web application source directories that are packaged with IBM Connections,
see Application WAR files and OSGi bundles.

The login.jsp file is the same for each application. You only need to make a copy of one
instance of the file.
3. Paste the login.jsp file into the appropriate subdirectory of the customizationDir
directory.
customizationDir/common/nav/templates/login.jsp
customizationDir/application_name/nav/templates/login.jsp
To use the same login page for all of the applications, copy it into the common
directory:
To create a different login page per application, copy the file into the appropriate
subdirectory for each application:

Note: See Determining where to save your customizations for more information about
locating your base customization directory.

4. Edit the login.jsp file or files to contain the information you want.

Note: For information on how to replace the logo on the login page, refer to the steps
covered in Changing the IBM Connections logo.

5. Save and close the login page.


6. To test your changes, log out of the product. Refresh the web browser, and then go to a
login page.

94 Building and Implementing Social Digital Experiences


7. Optional: If you enabled custom debugging, turn off the debugging capability when you
are ready to publish your changes.

Note: For more information, see Enabling and disabling customization debugging.

8. See Required post-customization step for details about how to apply your changes
permanently.

6.5.2 Customizing the user interface


The procedure to customize IBM Connections is the same for each application. You must edit
a copy of the relevant source file and save it in the appropriate customization directory.

Review the user interface to determine what you want to customize. Use these instructions as
a general guide for customizing the user interface.

The style of the IBM Connections user interface is based on the IBM Collaboration Solutions
OneUI Toolkit 3.0
1. Find the file that serves as the source of the interface elements that you want to
customize. For a list of the web application source directories and OSGi bundles that are
packaged with IBM Connections, see Application WAR files and OSGi bundles.

2. Enable the customization debugging capability. For more information, see Enabling and
disabling customization debugging.
3. Copy the file that you want to customize and past it into the appropriate customization
directory. For more information, see Determining where to save your customizations.

Remember: You can find the sources for style sheets in the following JAR files:

WAS_HOME/profiles/profile_name/installedApps/cell_name/application_name.ear/applicatio
n_name.war/WEB-INF/eclipse/plugins/com.ibm.oneui3.styles_version.jar

Notes:
The com.ibm.lconn.oneui3.styles_version.jar file contains the IBM Collaboration Solutions
OneUI 3.0.x toolkit that includes image resources and sprites.
This JAR file contains the CSS files for all IBM Connections applications.

WAS_HOME/profiles/profile_name/installedApps/cell_name/application_name.ear/applicatio
n_name.war/WEB-INF/eclipse/plugins/com.ibm.lconn.core.styles_version.jar

Note: The com.ibm.lconn.core.styles_version.jar file contains CSS style sheets that extend or
override default styles from the OneUI 3.0.x toolkit.

Tip: For a list of the web application source directories that are packaged with IBM
Connections, see Application WAR files and OSGi bundles.
WAS_HOME is the directory where IBM WebSphere Application Server is installed.
profile_name is the profile where you installed IBM Connections.
cell_name is the cell where you installed the application.
application_name.ear is the name of the application EAR file. To customize interface
styles that are common to all applications, use the Common.ear file.
application_name.war is the name of the application WAR file.

Chapter 6. Pattern 1: Adding social alongside an existing portal 95


version is the version number of the IBM Connections release plus the date and build
number of the JAR file.

Note: In previous releases of IBM Connections, the default style sheets were in the nav
subdirectory of the
WAS_HOME/profiles/profile_name/installedApps/cell_name/application_name.ear/applicatio
n_name.war directory. That location is deprecated in this release.

The following table identifies the source files for each user interface area.

Feature File location

Cascading style Note: If your users view the product in Arabic, Hebrew, or another
sheets right-to-left language, copy the defaultTheme_rtl.cssfile too.
/nav/common/styles/defaultTheme/custom.css
/nav/common/styles/defaultTheme/custom_rtl.css

To make extensive changes to the colors used in the product, edit the
following file:/nav/common/styles/defaultTheme/defaultTheme.css

Error page /nav/templates/error.jsp

Footer /nav/templates/footer.jsp

Login page /nav/templates/login.jsp

Navigation bar /nav/templates/header.jsp

For the menus available from the navigation bar:


/nav/templates/menu/people.jsp
/nav/templates/menu/communities.jsp
/nav/templates/menu/apps.jsp

For example:

customizationDir/common/nav/templates/footer.jsp

customizationDir/files/nav/templates/login.jsp
To edit the footer and have the same footer be displayed in all of the applications, store the
updated footer file in the following directory:
To change the login page of a single application, store the updated login page file in the
directory where customizations that are specific to that application are stored. For
example, to change the login page of the Files application only, store the login.jsp file in
the files subdirectory instead of the common subdirectory:
1. Find the file that serves as the source of the interface elements that you want to
customize.
2. Enable the customization debugging capability.
3. Copy the file that you want to customize and past it into the appropriate customization
directory.
4. Edit the file in the customizationDir directory to make your changes.
5. Test your changes by refreshing the web browser. You might have to clear your browser
cache to see the changes.
6. When you are ready to publish your changes, turn off the customization debugging
capability.

96 Building and Implementing Social Digital Experiences


7. Using the WebSphere Application Server Integrated Solutions Console, stop and restart
each application EAR file.
8. Force all user web browsers to refresh all cached content and display your changes by
running the command that updates the product version stamp. For more information, see
Required post-customization step.

For more information about customizing specific areas of the product, see the related topics.

Determining where to save your customizations

When you are customizing IBM Connections, save your customized files to the appropriate
directory to ensure that your customizations override the default settings.

Enabling live user interface customization editing mode

You can force applications to reload override files every time a browser request is made. This
capability shows your customization changes in the product instantly.

Customizing the navigation bar

You can edit the files that control the content of the IBM Connections navigation bar to add to
the bar's functionality. For example, you can add extra links to the navigation bar, remove the
Log Out link, or insert extra drop-down menus.

Customizing images

You can update the images used in IBM Connections to suit the needs of your organization.
For example, you can replace the IBM logo with your company logo, or customize the sprited
images and file type icons that are used in the product interface to fit with your company's
branding.

Adding styles to the IBM Connections stylesheet

You can change the look of the IBM Connections pages to give them a custom look by adding
new style definitions in the cascading stylesheet and applying that style to different parts of
the product user interface.

Making extensive color and style changes

Edit the defaultTheme.css file to change the look of the user interface, such as changing the
font style or background color.

Customizing the login page

Customize the login page in IBM Connections to have the appropriate style and content for
your organization.

Customizing the footer

You can edit the files that control the content of the IBM Connections footer to improve the
footer's functionality.

Customizing the error page

Customize the text on the error page in IBM Connections.

Customizing the Getting Started view

Chapter 6. Pattern 1: Adding social alongside an existing portal 97


Help your users get started with your implementation of IBM Connections by customizing the
Getting Started view that is displayed in the Home page.

Customizing product strings

You can replace a word or phrase in the product user interface with terminology that better
suits your environment.

Overriding and extending JavaScript in IBM Connections

IBM Connections supports a mechanism that allows you to override or extend the JavaScript
that is used in the different applications.

Extending JSP files with custom tags

You can extend IBM Connections by adding your own custom JSTL tags to meet your
company's needs.

Customizing the Application Access and Access Request interfaces

You can customize the header, footer, login, and error pages that prompt IBM Connections
users to grant/deny and revoke access to their Connections data for third-party applications
protected by OAuth. Also, you can edit the text strings that display on the Application Access
and Access Request interfaces.

98 Building and Implementing Social Digital Experiences


7

Chapter 7. Pattern 2: Putting social into


context
In this section, we describe how to bring your social content into the context of your website.
We look at the various options for displaying social content within your website using IBM
Connections, IBM Docs and IBM Forms.

In this section, we describe how to add, customize and view social content in the front end as
IBM WebSphere Portal using some of the features that are provided in portal such as social
rendering, IBM Connections portlets for Portal, social networking Portlets, IBM Docs, Digital
Data Connector (DDC) and IBM Forms Experience Builder. We cover how these features help
a page designer to easily add and customize the social content and give the customer a rich
exceptional social web experience. These features enable users to use social capabilities
within the context of WebSphere Portal. Users can always step out to IBM Connections from
Portal in case, if they want to do some actions specific to Connections.

Why use social content in the front end Portal


IBM WebSphere Portal provides a platform where all the portlets, application and content are
combined and presented to user into one unified presentation. It also delivers a highly
personalized experience where a user can personalize his settings based on his role. When
Connections content is customized for a user and delivered inside Portal, it gives the user an
exceptional social web experience. By displaying the social content in the front end as IBM
WebSphere Portal, a user can be well connected, productive, collaborative with his
community. By using the various applications that are available inside Portal he can easily
access and share information, find the right people, organize the work and activities and be
interactive with his community.

How to integrate Connections content inside Portal


Using IBM Connections portlets for Portal: Using the IBM Connections portlets available in
Lotus greenhouse, the Connections content can be delivered inside WebSphere Portal.

How to integrate external content inside Portal


IBM Digital Data Connector (DDC) for WebSphere Portal framework can be used to integrate
data from external data sources on your portal pages by using IBM Web Content Manager

Copyright IBM Corp. 2014. All rights reserved. 99


presentation components. External data means that the data does not need to be stored
directly in IBM Web Content Manager. For example, you can use DDC to render social data
that you have on your IBM Connections server or on other social platforms in the context of
your portal pages. Other possible data sources include news feeds, task lists, product catalog
information, to name just a few.

100 Building and Implementing Social Digital Experiences


7.1 Prerequisites
This section describes the software and configurations required for fusing content into your
digital website.

In order to bring social content into your website, download the following software from IBM
Product download page:
IBM WebSphere Portal V8.0.0.1 with CF09
IBM Connections V4.5 CR3.
IBM Forms Experience Builder V8.5
IBM Connections Portlets for WebSphere Portal
IBM Digital Data Connector (DDC).

Note: IBM WebSphere Portal and IBM Connections server must share the same LDAP
and SSO should be enabled to achieve seamless integration.

We cover the following topics in the subsections:


Configuring AJAX Global Proxy
Configuring theme modules for social portlets

7.1.1 Configuring AJAX Global Proxy


AJAX proxy configuration is needed for IBM WebSphere Portal to connect with IBM
Connections server. Any call that Portal makes to Connections is through this AJAX proxy
configuration. There are several ways to configure AJAX Proxy. Now, we will see how to do
this configuration through global proxy configuration. This global configuration is applicable to
all the applications that uses AJAX Proxy. If an application wants to have specific
configuration, then it is possible to configure an application specific AJAX proxy.

The global proxy configuration file proxy-config.xml is located in Portal Server under
/config/cells//applications/AJAX Proxy Configuration.ear/deployments/AJAX Proxy
Configuration/wp.proxy.config.war/WEB-INF .

Modify the proxy-config.xml file by including the following element. Here, URL should point to
IBM Connections server :

<policy url="https://connectionsww.demos.ibm.com/*" acf="none"


basic-auth-support="true">
<actions>
<method>GET</method>
<method>HEAD</method>
<method>POST</method>
<method>PUT</method>
<method>DELETE</method>
</actions>
<cookies>
<cookie>LTPA</cookie>
<cookie>LTPA2</cookie>
<cookie>LtpaToken</cookie>
<cookie>LtpaToken2</cookie>
<cookie>JSESSIONID</cookie>
</cookies>
<headers>

Chapter 7. Pattern 2: Putting social into context 101


<header>User-Agent</header>
<header>Accept-Language</header>
<header>Authorization*</header>
<header>Content*</header>
</headers>
<users>
<user>AllAuthenticatedUsers</user>
</users>
<meta-data>
<name>forward-credentials-from-vault</name>
<value>true</value>
</meta-data>
<meta-data>
<name>forward-http-errors</name>
<value>true</value>
</meta-data>
<meta-data>
<name>socket-timeout</name>
<value>50000</value>
</meta-data>
<meta-data>
<name>max-connections-per-host</name>
<value>50</value>
</meta-data>
<meta-data>
<name>max-total-connections</name>
<value>1000</value>
</meta-data>
</policy>

Run the ConfigEngine ant task :

./ConfigEngine.sh checkin-wp-proxy-config
-DProxyConfigFileName=dir_path/your_updated_proxy_file.name
-DWasPassword=WAS_admin_password

The ConfigEngine ant task must return a value of 0. This indicates that the configuration has
run successfully. In case, if the ant task shows build failure. Then, open the ConfigTrace.log
file located in directory /ConfigEngine/log to troubleshoot the issue.

To confirm whether the configuration is successful, open a browser and execute this URL:
http://:/wps/proxy/https//forums/atom/forums/public

Make sure that you are getting an ATOM XML feed document as shown below:

102 Building and Implementing Social Digital Experiences


7.1.2 Configuring theme modules for social portlets
The Connections portlets use Dojo capabilities. But, the default themes for Portal 7.0.0.2 and
Portal 8.0 do not load Dojo to render the theme faster. Hence we must configure Portal to use
the Dojo theme modules required for Connections.

Note: You do not need to perform any additional steps for the sample portal pages that are
deployed under IBM Connections when you install the IBM Connections V4.5 portlets.
Those pages are already configured to use the full profile theme.

A profile defines the modules that are used to render a page for the theme.

Follow the steps below to add or remove the Dojo modules required for Connections portlet to
be deployed in custom portal page:
1. Download AnyClient FTP client.
2. Using AnyClient, we can connect to Portal Server through the WedDAV protocol. Enter
the values for AnyClient as mentioned below.

Host http://portal.demos.ibm.com:10039/wps/mycontenthandler/dav/themelist
/

UserName wpamdin

Password wpadmin

Protocol WebDAV

Local Directory C:\Redbook\test

Chapter 7. Pattern 2: Putting social into context 103


3. Click Connect.
4. In the Remote System, browse to directory: /ibm.portal.80Theme/. Download the
metadata.properties file which contains the properties of the Portal 8 theme profile to
your local system as shown below.

104 Building and Implementing Social Digital Experiences


5. Look for the property name resourceaggregation.profile. Here the profile is referring to
profile_deferred.json file.

6. Again, browse to directory : /ibm.portal.80Theme/profiles/ in AnyClient. Download the


profile_deferred.json file and add the Dojo theme modules
"wp_liveobject_framework", "dijit_form_17" under "moduleIDs" section as below.
Save the changes.

7. After modifying the themes in your local system, upload the modified
profile_deferred.json file to the directory /ibm.portal.80Theme/profiles/ using
AnyClient. Restart Portal Server.
8. We can now find that the Connections Portlets like Activities, Forums, Blogs are displayed
in WebSphere Portal without error.

7.2 Community pages and IBM Connections portlets


IBM Connections allows users to create communities of their choices where a group of users
can contribute and share. Having a community around a specific thing is a powerful and
meaningful way of collaboration. With IBM Connections, you can create a public, moderated,
or private community depending on your requirement and you can associate other
Connections applications such as blogs, wikis, forum, etcto any community.

Using IBM Connections portlets, you can also integrate Connections services into
WebSphere Portal environment such as blogs, forums, wikis etc. Connections communities
can be integrated into your Portal site to enhance your portal's social collaboration
capabilities.

Chapter 7. Pattern 2: Putting social into context 105


To integrate, you can create a set of portal pages associated with any Connections
community in portal context such pages are called as community pages. After providing
community association to Connections community, you can add any community service to
this portal community page by adding the required Connections portlets on this page. IBM
Connections portlets on such pages automatically render their content within the context of
that community. You can create any number of community pages for Connections
communities.

Prerequisites
Prerequisites for using community pages and Connections portlets are:
Make sure the IBM WebSphere Portal and IBM Connections server are running properly.
IBM Connections Portlet must be deployed and configured.

In this section we will describe how to use community pages and Connections portlets.

We cover the following topics in the subsections:


7.2.1, Installing and configuring IBM Connections portlets
7.2.2, Creating community pages on portal on page 107
7.2.3, Configuring WebSphere Virtual Member Manager (VMM) on page 113
7.2.4, Configuring IBM Connection business card on portal on page 116
7.2.5, Configuring tag portlet using configuration and wires on page 119
7.2.6, Using list and detail portlet on page 123

7.2.1 Installing and configuring IBM Connections portlets


IBM Connections portlets are ready-to-use portlets designed to fetch IBM Connections social
data within the context of portal.

The following IBM Connections portlets are available to use inside portal:
Activities Collaboration tool for collecting, organizing, sharing, and reusing work related
to a project goal.
Activity Stream Integration portlet that lets you monitor and interact with people and
content that you are following.
Blogs Online journals you can use to deliver timely information with a personal touch.
Bookmarks Social bookmarking tool that you can use to save, organize, and share
Internet and intranet bookmarks.
Tags Meaningful keywords you can use to find associated content.
Profiles Directory of colleagues you can use to build a network and locate expertise.
Wikis Repository for sharing and collaborating on pages of interest to your group.
Forums View and contribute to discussion topics.
Community Overview View basic community information like the description, tags, and
community owners. Perform basic community actions from the portlet.
Blogs Summary Choose a view to see a snapshot of recent, latest, or featured blog
activity
Profiles Summary View a summary of information about your colleagues.
Forums Summary View a list of forums that you can access.
Bookmarks Summary View a list of bookmarks you can access.
Library Upload, manage, organize, and collaborate on community files contained in a
library.

106 Building and Implementing Social Digital Experiences


By installing and configuring Connections portlets, you can deploy these portlets selectively
on portal pages where you want to show Connections data for that specific service.

Further using these portlets, Portal pages can be configured to surface a community specific
data on a portal page.

These portlets can also be used to search Connections content in portal search. When
Connections search is configured in portal, social data from Connections can also be
searched along with portal content via Portal Search center. When user clicks on
Connections content in the search results, user is navigated to the IBM Connections porlets
(if configured on portal pages) or IBM Connections.

All Summary portlets are read only, lightweight portlets to display Connections content. By
configuring navigation, when a user clicks on any content on a Summary portlet, the user can
be navigated to Details portlet or to Connections to perform creation and editing functionality.

Downloading IBM Connections portlet


IBM Connections portlets can be downloaded from IBM Collaboration Solutions Catalog.

Download the latest available build.

Installing IBM Connections portlets


Installations of the IBM Connections portlets is simplified with the solution installer for
WebSphere Portal.

Prerequisites
Before starting with the installation process, make sure the following are true:
Portal and Connections are running properly.
SSO is working correctly between Portal and Connections.
SSL certificate from Connections is imported to your WebSphere Portal server.

Follow the procedure as documented in the product wiki here for installing the portlets.

Configuring the IBM Connections portlets


After the installation is complete, a set of sample portal pages will be created with the portlets
deployed on them. You can customize these pages to fit your needs or remove them and
create new pages.

Follow the documentation Configuring the portlets on a page to manually create pages and
deploy portlets on them.

7.2.2 Creating community pages on portal


You can map the portal page to a community in Connections in various ways. Make sure that
SSO is working fine between Portal and Connections before doing this mapping.

Edit community association through the Page Associations window


This approach is also described in product wiki here.

There are two ways to open the Page association window:


Using page properties portlet in Portal Administation
Using site toolbar in Edit mode of the Page

Chapter 7. Pattern 2: Putting social into context 107


Using page properties portlet in Portal Administation
Follow these steps to map portal page to a community in Connections using page properties
portlet:
1. Login to portal using a user with the Administrator rights.
2. Go to Administration Manage Pages and navigate to the page you want to associate
to a community e.g. Page name is 'DemoPublicCommunity'.
3. Click on Edit Page Properties option

4. From Edit Page screen, expand Advanced Options as shown below.

5. Select I want to edit associations option to provide page associations.

6. This enables you to provide community association. Select community tab and click on
Select a community button.

108 Building and Implementing Social Digital Experiences


7. This will take you to screen to search/select communities available in configured IBM
Connections Server.

Chapter 7. Pattern 2: Putting social into context 109


8. Select the connections community which you want to configure and click Select it will list
the selected community in association view. Click on OK then on pop-up click Yes.

Using site toolbar in Edit mode of the Page


Follow these steps to map portal page to a community in Connections using site toolbar in
Edit mode of the page:
1. Go to Edit mode of the page to be associated to the community.

2. Hover over Community.

3. Click on Edit link which appears on hover.

110 Building and Implementing Social Digital Experiences


After the Page Association window is open follow the steps below to select the
Community.
4. In the Page Association window as shown below select community tab and click on
Select a community button.

5. This will take you to screen to search/select communities available in configured IBM
Connections Server.

Chapter 7. Pattern 2: Putting social into context 111


6. Select the Connections community which you want to configure and click Select it will list
the selected community in association view. Click on OK then on the pop-up click Yes.

112 Building and Implementing Social Digital Experiences


Using the XML configuration interface (xmlaccess command)
Another approach which is useful when several pages needs to be mapped in one go. This
approach is also described in the Portal wiki here.

By performing above steps, you have made this portal page community aware. Any IBM
Connections portlet placed on this page would be able to surface content which is from the
associated community only.

7.2.3 Configuring WebSphere Virtual Member Manager (VMM)


Starting with Version 6.1, IBM WebSphere Application Server uses a component called
Virtual Member manager (VMM) to manage information about community membership. VMM
provides an interface that enables communication between WebSphere Portal and any
repository, whether federated repositories, a stand-alone repository, or your own custom user
registry. You can configure VMM to recognize IBM Connections as a repository so that portal
can access community user and group information from IBM Connections communities. For
example, after VMM is configured, users can select IBM Connections private or public
communities as groups in portal when they assign security roles or access rights.

Note: For more information about the architecture of VMM, see the article Virtual Member
Manager Integration from the IBM WebSphere Portal wiki.

Note: For more information about configuring a user repository for VMM, see the white
paper Setting up a custom user repository from IBM developerWorks.

After configuring IBM Connections to work with VMM, users can:


Search for IBM Connections communities by name (represented as groups in
WebSphere).

Chapter 7. Pattern 2: Putting social into context 113


Resolve community membership for particular users (represented as group membership
in WebSphere).
Display the WebSphere users that are members of a particular IBM Connections
community.

After VMM is configured, access to the community pages in portal can be restricted to only
the members of the community. This can be done by manually assigning permission to the
community pages, to only the groups representing the respective community or via the Portal
UI (from Portal 8 onwards) as described below:
1. Go to Edit Mode of the page that has to be associated to the community.

2. Hover over Community, (here you will see the community id or name, if this page is already
mapped to the community), click Edit.

3. In the Page Association window, follow the steps below to select the Community.

114 Building and Implementing Social Digital Experiences


4. In the Select a community window below, you will see the list of communities, which the
logged-in user has access to. See the figure below.

5. After the user selects the desired community, then select Limit access to this page to
only community members. This restricts the members access.

Note: The checkbox "Limit access to this page to only community members" is not
available by default but it can be enabled as described in the article Automatically grant
page access to community members. This way, only the members of the community can
view and interact with the respective community page.

Chapter 7. Pattern 2: Putting social into context 115


Additional reference

For more details on setup of VMM to configure connections repository in Portal, refer to the
product documentation.

7.2.4 Configuring IBM Connection business card on portal


IBM Connections business card enables users to access IBM Connections user data such as
a person's profile information. It can display all the information about this user including
summary, blogs, wikis, communities etc..

Connections business card can be configured in two ways:


Using the configure-ConnectionsBizCard task
Manual configuration

Using the configure-ConnectionsBizCard task


To use the task configure-ConnectionsBizCard to configure business card, you should have
IBM Connections portlets package installed properly.

Run the following command to configure the Connections business card:

ConfigEngine configure-ConnectionsBizCard -DICbaseURLunsecured =[baseURL]


-DURLProviderName=[URL-provider-name] -DWasPassword=[was-admin-pwd]

Note: The default name for [URL-provider-name] is Default URL Provider.

Run the following command to remove the configuration for the Connections business card:

ConfigEngine remove-ConnectionsBizCard -DURLProviderName=[URL-provider-name]


-DWasPassword=[was-admin-pwd]

Note: For more details refer to the product wiki here.

Manual configuration
To manually configure business card, follow these steps:
1. Login to the portal server's WebSphere Application Server Admin Console using
Administrator credentials.
2. Navigate to Resources URL URL Providers and then select the Default URL
Provider at the top of the hierarchy.

116 Building and Implementing Social Digital Experiences


3. Click on URL Providers. It will take you to the screen to select URLs under Additional
Properties.

4. It will take you to the screen where you can add new URLs. Click on New.

Chapter 7. Pattern 2: Putting social into context 117


5. It will take you to screen where you can define required inputs to configure Connections
business card as below. Provide CONNECTIONS_PEOPLE_CARD as name,
JNDI_CONNECTIONS_PEOPLE_CARD as JNDI Name and IBM Connections URL e.g.
http://connectionsww.demos.ibm.com:9081 in Specification.

6. Click Apply and then Save to take these changes effect.

118 Building and Implementing Social Digital Experiences


7. Restart the portal.

Testing business card


After performing the above steps, Portal gets configured to display Connections business
card. To test that the card is configured correctly, open one of the IBM Connections portlets
on WebSphere Portal and search for a person's name. Then, hover on the user's name to
make sure the business card displays for this user. If not, the Connections business card is
not configured properly.

On clicking on this yellow pop-up it will display connections business card as shown below.

7.2.5 Configuring tag portlet using configuration and wires


IBM Connections Tags portlet enables you to explore IBM Connections content by user
defined tags. On any portal page, you can place Tags portlet in association with any other
service portlet such as blogs, activities, forums, etc. Tags portlet can also be configured to
show the tags relevant to the specific Connections Service portlet.

The communication between the Tags portlet and the Service portlet happens by the means
of portal events (property broker architecture). Every Service portlet fires a property broker
event as Tags Payload and accepts Selected Tag.

Chapter 7. Pattern 2: Putting social into context 119


Configuring Tags portlet wires
In the following steps, we take an example of configuration with Forums portlet. Similar steps
needs to be performed for other service portlets.
1. Log in to portal as an administrator.
2. Go to Adminstration Manage pages.
3. Search for the page where Tags portlet and Service portlet (in our case, Forum) are
placed.

4. Click Edit Layout Icon to get the option to edit layout of this page. In this edit screen, you
can go to the Tags portlet. Click on the drop down and select Edit Shared Settings.

5. In the Shared Settings pop-up window, you get the options for all the available
Connections services. Make sure pop-ups are enabled in browser.

120 Building and Implementing Social Digital Experiences


6. Select the Forums Service or any other service which you want to associate with Tags
portlet. Click Save.
7. Now on parent window, select the Wires tab to get options to enable inter-portlet
communication as shown below.

8. From the drop down, you can select the the Source portlet and Corresponding target
portlet as mentioned in the table. For our scenario, we create two wires, one from Tags

Chapter 7. Pattern 2: Putting social into context 121


portlet to Service porlet (Forums) and another from Service portlet (Forums) to Tags
portlet.
Table 7-1
Source Sending Target Page Target Receiving Wire Type
Portlet Portlet

Tags Selected Tag {current page} Forums Selected Tag Public

Forums Tags Payload {current page} Tags Tags Payload Public

9. After Successful addition of wires, the screen would look like below:

10. Click Done and now you have successfully created wires between Tags and Forums
portlet.

Testing
To test this functionality, navigate to this page and then select any tag from the Tags portlet.
The corresponding Service portlet will filter its view according to the selected tag. Similarly, on
switching between the various views of Service portlet, the Tags portlet will refresh itself to
display only tags which are most appropriate for selected view.

By following the above specified steps, wires can be created between Tags and any Service
portlet.

122 Building and Implementing Social Digital Experiences


7.2.6 Using list and detail portlet
IBM Connections Portlets contains a number of Summary and Details portlets for various
services in IBM Connections. Using the Details portlets, user can interact with IBM
Connections service to create, update, and delete social data on Connections within the
context of IBM WebSpere Portal without switching to Connections. In addition to these Details
portlets, there are Summary portlets for profiles, blogs, bookmarks and forums. These
Summary portlets are read-only portlets with list views.

All Summary and Details portlets are community-aware which means when these portlets are
put into a community mapped page, these portlets are capable of rendering only data relevant
to the community.

Clicking on an item in Summary portlets, it takes user to the corresponding Details portlet or
IBM Connections as applicable, using Portal piece of content (POC) approach. POC
framework allows navigation between the portal pages and shares information between
portlets using Shared Public and Private Render Parameters.

The following figure shows a list of recent blog posts. You can see the summary of the blog
post and also the entire blog detail.

Configuring navigation from Summary to Details portlet


All Summary portlets can be configured to show the selected item in Details portlet or in IBM
Connections through portlet Configure mode.

Chapter 7. Pattern 2: Putting social into context 123


By selecting the option Display link to open IBM Connections in a browser window, it
allows user to navigate to IBM Connections web UI instead of navigating to corresponding
Details portlet.

There are other customization options in the Edit shared settings mode in every Summary
portlet, to modify the behavior of portlet.

Profiles Summary portlet when put in non-community page, it enables user search as follows:

124 Building and Implementing Social Digital Experiences


While clicking on action links, user can navigate to the Profiles details either in Details portlet
or in Connections web UI depending on the portlet configuration.

When Profiles Summary portlet is put in a community page, it will list all the members of that
community.

Chapter 7. Pattern 2: Putting social into context 125


7.3 WCM social rendering
Ability to provide social content in-context of WebSphere Portal pages is a great way to build
value for customers and help them deliver a true social digital experience. IBM Connections
portlets provides a way to bring social content in context of portal, but have some limitations
in terms of flexibility to customize the social content to gel it with other information present on
WebSphere Portal and ability to contribute to IBM Connections. IBM Web Content Manager
(WCM) social rendering enables us to bridge this gap and helps build a true social digital
experience.

Social rendering feature enables a page editor to display social objects hosted on a remote
IBM Connections server inside WebSphere Portal server using WCM conventions
(presentation template, authoring template, PZN & HTML components, piece of content, and
a web content portlet). This allows separation of concerns, meaning that the designer can
then quickly or easily modify the visual appearance of social data to match the portal design,
whereas the content author may define the content that will be available for a page editor.
Page editors can easily add social list definitions by using this feature. WCM social rendering
capability is a flexible way to query and render IBM Connections social content. It allows to
integrate social content in a portal web page with little effort. This provides an option to keep
users within portal and view the social content which avoids media discontinuity or direct
users to IBM Connections native user interface when required.

By default, the social rendering feature is disabled in IBM WebSphere Portal 8001. Once the
feature is enabled, portal displays content as below in Edit Mode. Enabling this feature also
displays the IBM Connections web content library in WCM. Page Editors can select the social
list definitions which they want to add in their portal pages from the content tab in Edit Mode.
They can also customize the look and feel of social list definitions using the WCM
Personalization component. It is recommended to use the WCM Social Rendering portlets
instead of IBM Connections Summary portlets.

Prerequisites
Prerequisites for using WCM social rendering:
IBM WebSphere Portal and IBM Connections server are running properly.
SSO is configured.
Social rendering is enabled.

For SSO configuration, refer to 4.9.1, Using LTPA for single sign on between IBM
Connections and WebSphere Portal on page 61

In this section we will cover the social rendering features, configuring it, and customizing the
social list.

We cover the following topics in the subsections:

126 Building and Implementing Social Digital Experiences


7.3.1, Social rendering features
7.3.2, Configuring social rendering on page 129
7.3.3, Social list on page 136
7.3.5, New capabilities in social rendering on page 152
7.3.6, Using WCM to render social content on page 180

7.3.1 Social rendering features


Social rendering enables IBM WebSphere Portal page editors to add social data that is
hosted on a remote IBM Connections server in the context of portal pages. It provides a
pre-defined set of list of social objects that allows page editors to add specific IBM
Connections data in context of portal page. For example, the social objects can be lists of
blog posts, files, or discussion topics. Page editors can control the visual appearance of the
social objects in the query result list. They do so by selecting the formatting component of
choice from a predefined, yet extensible set of formatting components.

Site designers provide the formatting components and define them in a style that is consistent
with your portal pages. They can also customize and extend this set of formatting
components. This way your page editors do not need to know the markup generation and
CSS styling details of the formatting components. Even without that knowledge, they can still
choose from a rich, but consistent set of visual designs for your lists.

As a result, page editors can focus on assembling meaningful portal pages that are enriched
by social data. They select the appropriate content for the individual portal pages and lists of
social objects to be rendered alongside. Inline editing capabilities allow to select the visual
appearance of the social list. They can also adjust the selection logic of the social list. For
example, they can show the most recent blog entries that are created in the IBM Connections
community to which the current page is associated. Page editors can select individual social
lists from a set of predefined social list definitions and drop them onto portal pages. When a
page editor drops a social list onto a portal page, the corresponding content item that
represents the social list definition is copied to the page. The page editor can then modify it
independently of other social lists on the same page or other pages as the modification is
performed on the item that had been copied to the page.

In general, social lists combine a specific query for social data from IBM Connections with a
formatting component that determines the looks of the query results. The formatting
components are IBM Web Content Manager (WCM) personalization components. The social
list definitions are stored as WCM content items of the type Social Objects Query. As a
consequence, social list definitions function the same functional aspects as other WCM
content with regards to versions, workflow, and syndication.

Social rendering provides you the following components:


A set of social list definitions
Two formatting components for visualizing the social lists in two different ways: a
condensed simple list design and a comprehensive list design.

What's new in social rendering


IBM WebSphere Portal Version 8.001 included the social rendering feature. It introduced the
pattern of using WCM design components to render social data from a remote IBM
Connections server. With IBM WebSphere Portal & Web Content Manager v8.0.0.1 CF11,
social rendering provides additional capabilities on top of this pattern and add extra query,
filtering, and rendering options. In addition to reading and displaying social information on
your websites, the feature extensions also allow for interaction handled through WebSphere

Chapter 7. Pattern 2: Putting social into context 127


Portal. Your site visitors can use these interfaces to contribute information. For example, they
can create blog posts or participate in forum discussion.

The new social rendering capabilities leverages Digital Data Connector (DDC) framework to
build custom social list using Connections query URLs and render the data using WCM. It
also provides capabilities to implement user interactions. Site designers can implement
formatting components that support an interaction between the user and the social data. For
example, a user can post a new reply to a forum topic or delete a previous reply.

The social lists that are provided with social rendering use the IBM Connections search
service feed to retrieve the social objects displayed in the list. This has the following
consequences:
Only information that is available in the Connections search feed can be displayed in the
social lists.
Updates to social objects in Connections do not appear in the social lists provided with
social rendering until the index of the Connections search service was updated.

The benefit of using these new social list is that the social data served using these social lists
is updated as it does not depend of search service.

The Digital Data Connector framework


IBM Digital Data Connector (DDC) for WebSphere Portal framework can be used to retrieve
more data from the IBM Connections server. Examples:
You can define custom queries against all IBM Connections remote APIs. For example,
such a query can be "Show the list of community owners of the community that is
associated to the current portal page".
You can provide access to IBM Connections service-specific object metadata. An example
is the community membership role.

Digital Data Connector profiles


IBM WebSphere Portal & Web Content Manager v8.0.0.1 CF11 includes a set of DDC
profiles. They facilitate the transformation of data that is served by the Connections server
into data structures that you can render by using WCM design components. The following
profiles are available:
Blogs (ibm.portal.sr.blogs)
Blog details (ibm.portal.sr.blogs.details)
Blog posts (ibm.portal.sr.blogs.posts)
Blog post comments (ibm.portal.sr.blogs.post.comments)
Communities (ibm.portal.sr.communities)
Community members (ibm.portal.sr.communities.members)
Forums (ibm.portal.sr.forums)
Forum topics (ibm.portal.sr.forums.topics)
Forum topic replies (ibm.portal.sr.forums.replies)
Forum topic and reply attachments (ibm.portal.sr.forums.attachments)
Profiles (ibm.portal.sr.profiles)
Profiles connections (ibm.portal.sr.profiles.connections)
Social objects (ibm.portal.sr.search)
Wiki pages (ibm.portal.sr.wikis.pages)
Wiki page comments (ibm.portal.sr.wikis.page.comments)
Wiki page attachments (ibm.portal.sr.wikis.page.attachments)

These profiles can be used to define social list for the following types of social data that is
served by the Connections server:

128 Building and Implementing Social Digital Experiences


Blogs, blog posts, and blog post comments, as served by the Blogs service
Communities and community members as served by the Communities service
Forums, forum topics, forum topic replies, forum topic attachments or reply attachments as
served by the Forums service
User profiles, user network connections as served by the Profiles service
Wiki pages, wiki page comments, wiki page attachments as served by the Wikis service
Search results as served by the IBM Connections search service.

The profiles define the attribute names that you can use in your [AttributeResource] tags
when you generate the HTML markup for your bean lists. You can either manually add the
AttributeResource tags to the design component of a social list, or you can use the Insert a
Tag user interface of WCM. Example: If a profile defines an attribute that is named title, you
can write out the title value of the items in your list by using the following tag:
[AttributeResource attributeName="title"].

User interactions
Social lists are more than a presentation of social data that is hosted on a remote
Connections server. Site designers can implement formatting components that support an
interaction between the user and the social data. For example, a user can post a new reply to
a forum topic or delete a previous reply. The sample list appearance components contain
HTML form definitions that you can use to create, modify, and delete information on the
Connections server. All interactions are implemented by using the generic Digital Data
Connector data sink plug-in.

Note: For more information, read The generic XML Digital Data Connector data sink, refer
to the article The generic XML Digital Data Connector data sink for more details.

The following interactions are available:


Create, delete, like, and unlike blog posts, blog post comments
Create, delete, like, and unlike forum topics, forum topic replies
Accept and reject forum topic replies as answers
Join and leave public communities
Accept and reject network invitations
Invite users to networks
Remove user from network
Like and unlike wiki pages.

7.3.2 Configuring social rendering


In a default IBM WebSphere Portal V 8.0.0.1 full or upgrade installation, the social rendering
features are installed, but not enabled. Social rendering needs to be enabled and there are
various global configuration settings which can be applied to social rendering.

Setting up social rendering in WebSphere Portal


Enabling social rendering in WebSphere Portal
If the ConfigEngine task enable-new-8001-features has already been run, then you do not
need to run the enable social rendering task again. Once the social rendering feature is
enabled, notice the following changes to your portal installation:
It deploys the IBM Connections web content library.

Chapter 7. Pattern 2: Putting social into context 129


The Social Content category is displayed in the Portal Site toolbar.
It deploys the Personalization resource collection named Social Objects.
It deploys the Social List portlets that are provided with the social rendering package and
adds them to the Social Content toolbar category.
It adds the theme module to the list.
Personalization component displays Social Objects as a resource collection.

To enable only social rendering features, run the ConfigEngine task


action-enable-social-rendering as below:

ConfigEngine.bat action-enable-social-rendering -DPortalAdminId=portal_user_id


-DPortalAdminPwd=portal_user_password -DWasUserid=was_user_id
-DWasPassword=was_user_password

Disabling social rendering features


To disable the social rendering features, run the ConfigEngine task
action-disable-social-rendering as below:

ConfigEngine.bat action-disable-social-rendering -DPortalAdminId=portal_user_id


-DPortalAdminPwd=portal_user_password -DWasUserid=was_user_id
-DWasPassword=was_user_password

Using custom theme with social lists


The social rendering uses the wp_social_rendering theme module to render social objects
in Portal. If you are using your own custom theme, then you must add this
wp_social_rendering theme module to the theme profile file. If the profile misses this theme
module, then the Social List object will not display properly as the CSS classes required for
Social rendering are missing.

You can add the theme module to your theme by running a ConfigEngine task:

ConfigEngine.bat add-theme-modules -DThemeUniqueName=my.custom.theme


-DThemeProfileFileName=profile_my_custom_profile.json
-DModuleIDs=wp_social_rendering -DPortalAdminId=portal_user_id
-DPortalAdminPwd=portal_user_password -DWasUserid=was_user_id
-DWasPassword=was_user_password

Remove a theme by running a ConfigEngine task:

ConfigEngine.bat remove-theme-modules -DThemeUniqueName=my.custom.theme


-DThemeProfileFileName=profile_my_custom_profile.json
-DModuleIDs=wp_social_rendering -DPortalAdminId=portal_user_id
-DPortalAdminPwd=portal_user_password -DWasUserid=was_user_id
-DWasPassword=was_user_password

You can also add theme module using any WebDAV client.

Global configuration settings for social rendering


You can apply some global configuration settings to social rendering. These global settings
apply to all social lists in your WebSphere Portal.

130 Building and Implementing Social Digital Experiences


To configure these settings, configure the appropriate properties in the WP Connections
Integration Service. Access this service in the WebSphere Integrated Solutions Console
under the resource environment providers.

Maximum number of items to be loaded from IBM Connections


You can define a value for the maximum number of list items that appear in a social list like
Blog Posts, Files list, etc. Internally, WebSphere Portal queries Connections server and
fetches the result and displays it. To limit the number of results displayed in a social list,
perform the below steps in WebSphere Integrated Solution Console:
1. Navigate to Resources Resource Environment Resource Environment
Providers.
2. Select WP ConnectionsIntegrationService.
3. Click Custom properties under the Additional properties section.
4. Modify the value for the search.page.size property.
5. Save the changes.
6. Restart portal server.

Note: For more details, refer to the article, Configuring the maximum number of items
loaded from IBM Connections.

The tags transmission limit configuration


You can configure your social lists to transmit tags that are associated to the list items to the
tag cloud. You can limit the number of tag names that are loaded from Connections. You
configure this limit in the WP ConnectionsIntegrationService resource environment provider
as detailed below:
1. Navigate to Resources Resource Environment Resource Environment
Providers.
2. Select WP ConnectionsIntegrationService.
3. Click Custom properties under the Additional properties section.
4. Modify the value for the transmitted.tags.limit property.
5. Save the changes.
6. Restart portal server.

Chapter 7. Pattern 2: Putting social into context 131


Note: Log in to WebSphere Integrated Solution Console as an administrator. Here the
logged in user is aalain as this user has Portal administrative permissions. For instructions
on how to configure Portal to provide Administrator role for a connections user, refer the
section 10.3, Configuring remote content search service on page 337.

Note: For more details, refer to the article, Configuring the tags transmission limit.

How social object data is served


Social objects have links that enable a user to download the social data such as a file or an
image. The social object data is served to the users from either Portal or Connections server
which is based on a setting that is configured in WebSphere Integrated Solution Console.

Following are the steps to configure this setting:


1. Navigate to Resources Resource Environment Resource Environment
Providers.
2. Select WP ConnectionsIntegrationService.
3. Click Custom properties under the Additional properties section.
4. Add or modify the resource.serving.url.type property to a value of either connections or
portal.
5. Save the changes.
6. Restart portal server.

Note: For more details, refer to the article, Configuring globally how social object data is
served.

How social object links are resolved


You can include one or many attributes of social objects in the design component that defines
the visual design of your social list. Among other features, social objects have different links
that enable users to access the social objects or the community to which the social objects
belong. If you plan to add these links to your social list, you can decide how you want the
social objects and their home community to be resolved when users click the corresponding
links. IBM WebSphere Portal can either resolve the links in the context of the portal itself, or
redirect the user to the Connections user interface. You can globally configure how links of
social objects are resolved for the users by using a setting in the WP
ConnectionsIntegrationService.

Following are the steps to configure this setting:


1. Navigate to Resources Resource Environment Resource Environment
Providers.
2. Select WP ConnectionsIntegrationService.

132 Building and Implementing Social Digital Experiences


3. Click Custom properties under the Additional properties section.
4. Add or modify the resource.resolution.url.type property to a value of either
connections or portal or contextual.
5. Save the changes.
6. Restart portal server.

Note: For more details, refer to the article, Configuring globally how social object links are
resolved.

Define file type icon mappings


Social rendering provides two types of appearance for the result lists: simple and
comprehensive. Both list appearances show file type specific icons when they render list
entries that refer to individual files. In this case, the file type is determined based on the file
extensions of the individual files. You can configure the set of file types that you want to use in
the WP Connections Integration Service resource environment provider. In the context of
social lists, a file type is defined by a file type name and a list of file extensions. This list
defines the mapping between individual files and your file types. In your social list
presentation components, you can then access the file type name for a given file by using the
WCM [AttributeResource attributeName="fileType"] tag . You can then use the file type name
to render the appropriate image, for example, by assigning a corresponding CSS class.

To modify the file type mapping, perform the following steps in WebSphere Integrated
Solution Console:
1. Navigate to Resources Resource Environment Resource Environment
Providers.
2. Select WP ConnectionsIntegrationService.
3. Click Custom properties under the Additional properties section.
4. Add or modify the values for file.type.mapping.type property.
5. Save the changes.
6. Restart portal server.
For example, adding a property with name as file.type.mapping.wordProcessing and
value as
.doc,.docm,.docx,.dot,.dotm,.dotx,.en4,.enw,.leg,.lwp,.lwp7,.manu,.msw,.mwp,.mwp
2,.mwpf,.odc,.odg,.odt,.ort,.otg,.oth,.otm,.ott,.pages,.pcl,.rtx,.std,.stw,.sxd,.sxq,.sxw
,.w6,.w97,.wm,.wp5,.wp6,. wpf will inform WCM to consider the files with these
extensions as word processing documents. Here the values are comma separated.

Chapter 7. Pattern 2: Putting social into context 133


Note: For more details, refer to the article, Configuring file type icon mappings.

Performance tuning for social rendering


Social rendering lists the data from Connections server. To improve the performance and to
provide the user a faster response, the social rendering feature caches the data in
WebSphere Portal. There are three types of caching layers available. They are :
1. Social object cache: The Social object cache caches the Java objects that are used to
build the social list results portlet. The data is retrieved from Connections server for the
first time. The next time, when the social lists finds that the object is available in cache, it
displays the results portlet from Java objects. This can have a larger effect on performance
than other cache layers. This is the default caching layer enabled in Portal.
2. Data source cache: If the social list did not find the social objects in the social object
cache, then it looks for the object in the data source cache. This cache layer caches the
HTTP response from connections server. The HTTP response contains the Connections
feed. However, there is an overhead in this caching layer, as the social rendering needs to
parse the feed to obtain the social lists again. This is the reason, social object cache layer
has more performance effect than data source cache layer. By default, the data source
cache layer is enabled. It supports both public and private feed caching. The expiration
time of a data source cache is specified in the HTTP response headers of a feed. The
max-agedirective in the cache-control header field and the Expiresheader field determines
the expiration time of the HTTP response. If Connections does not provide any expiration
time, then you can configure the expiration time in the custom property
connections.feeds.datasource.cache.lifetime in the WP Connections Integration
Service resource environment provider in the WebSphere Integrated Solutions Console. If
you want to override the setting specified in the Connections server, then you can specify
that in the custom property connections.feeds.datasource.cache.lifetime.overrulesto
true in the WP Connections Integration Service resource environment provider in the
WebSphere Integrated Solutions Console.
3. Social list cache: The social list cache can reduce the processor consumption when
Portal renders the same social lists multiple times. By default, the social list cache is
disabled. To enable social list cache, set the property
cacheinstance.com.ibm.wps.services.lc.cache.SocialListRenderCache.enabled as
true in WP Cache Manager Service resource environment provider in the WebSphere

134 Building and Implementing Social Digital Experiences


Integrated Solutions Console. If you enable the social list cache globally the website
designers can still enable or disable it for their social list individually using the social list
cache rendering plug-in. Even though the design component is updated, users might still
see the cached results until the cache expires. The social list cache caches the full
markup that the portal generates when it renders social list personalization components.
The design components that social rendering provides contain the required calls to the
SocialListCacherendering plug-in to cache social list renderings.
The SocialListCache tag syntax is :

[plugin:IBMConnections:SocialListCache mode="" elementName=""


extendedCacheKey=""]
...
[/Plugin:IBMConnections:SocialListCache]

The parameters of social list cache are:


1. mode: This parameter is to identify the evaluation mode of the SocialListCache rendering
plug-in.
The following are the supported modes:
mode="render" - In this mode, the plug-in renders a specific social list personalization
component identified by the elementNameparameter.
mode="get" - In this mode, the plug-in checks if the rendering result of the social list
personalization component is available in the cache to be rendered through the
SocialListCache rendering plug-in. If it is available, the enclosing SocialListCache
rendering plug-in returns the cached markup.
mode="onCacheMiss" - In this mode, the markup that is enclosed by a
SocialListCache rendering plug-in is only rendered if the result was not found in the
cache.
2. elementName: Use this parameter to identify the current item of social list personalization
component. This parameter should be used only if the parameter mode is set to "render".
3. extendedCacheKey: Use this parameter to feed more information into the cache key. This
parameter should be used only if the parameter mode is set to "get".

There are three steps to use the SocialListCache rendering plug-in. They are :
1. Starting social list rendering : To render the social list personalization component that is
identified by a component reference element named design, you can use the
SocialListCache rendering plug-in as follows:
Example:

[Plugin:IBMConnections:SocialListCache mode="render" elementName="design"]

In case, if you do not want to create dedicated presentations that do not use social list
caching, then you can trigger the direct rendering of the personalization element by using
the standard Element tag instead.
Example:

[Element key="design" type="content" context="current"]

2. Looking up the value from the cache : The rendering plug-in tries to retrieve a possible
previous rendering result for the social list from the cache. This cache lookup is performed

Chapter 7. Pattern 2: Putting social into context 135


in the Header section of social list personalization component. To add paging information
to the cache key, you have to set the "extendedCacheKey" parameter.
Example:

[Plugin:IBMConnections:SocialListCache mode="get" extendedCacheKey=" [PageInfo


value='currentPage']: [PageInfo value='itemsPerPage']"]

3. Performing cache aware component rendering : After the cache lookup, you can skip
rendering subsequent components if there is a cache hit. To skip the cache lookup, wrap
the component references in a SocialListCache tag with the mode parameter set to
"onCacheMiss". You can skip the cache lookup by the first statement in the Result design,
Footer, and No result design sections of social list personalization component.
For example, the result design might look as follows:

[Plugin:IBMConnections:SocialListCache mode="onCacheMiss"]
[Component name="path/to/design/HTML component"]
[/Plugin:IBMConnections:SocialListCache]

Note: Detailed information is provided in product documentation in this article,


Performance_tuning_for_social_lists_wp8001&mode=original&content=pdcontent

Additional reference

IBM WebSphere Portal Product Documentation

7.3.3 Social list


You can use and customize social list in different ways to meet your requirements. This could
mean customizing the content, visual design, and other characteristics. You can also use
WebSphere Portal Tag cloud portlet in combination with your social list, so that your site
visitors can filter the social data based on tags.

7.3.4 Adding social list to a portal page


Social list definitions are represented by Web Content Manager (WCM) content items.
Therefore, you can add social list portlets only to managed pages or pages that have an
explicitly defined web content association to a site area in WCM. To add a social list to a
page, follow these steps:
1. Select Edit Mode of the portal page.
2. Select the Content tab from the site toolbar shelf.
3. Select the category Social Content from the category selection list.
4. Select a social list to add to the page by drag-and-drop or by clicking the Add to page plus
sign icon.

136 Building and Implementing Social Digital Experiences


5. Once, the portlet is added, click save to save the changes to page.
6. While in page edit mode, move your mouse pointer to the social list portlet. A pop-up
appears with few menu items.
7. Click on Open Edit Form in the menu. The Web Content Manager inline edit dialog opens
up and shows the definition of the current social list.
8. You can modify the social list definition to serve the information appropriate to the current
page. For a list and descriptions of the available options, see section Customizing social
list on page 138 .

Using social list with custom theme


The social lists that social rendering provides work with portal pages that have the Portal 8.0
theme with a full or deferred theme profile. To use them with your own custom theme, you
have to add the wp_social_rendering theme module to your theme. The predefined social lists
require that the social rendering CSS styles are loaded by the theme that is associated to the
page with the social list. The theme loads these styles if the theme profile assigned to the
current theme incorporates the wp_social_rendering theme module. The Portal 8.0 theme
with either full or deferred profiles fulfills this requirement.

If you want to use social rendering with your own custom theme or a custom theme profile,
add the wp_social_rendering theme module to that theme profile. For example, you can do so
by using the add-theme-modules configuration task.

To add the wp_social_rendering theme module to your theme, register the theme module by
using the add-theme-modules portal configuration task.

ConfigEngine.bat add-theme-modules -DThemeUniqueName=my.custom.theme


-DThemeProfileFileName=profile_my_custom_profile.json
-DModuleIDs=wp_social_rendering -DPortalAdminId=portal_user_id
-DPortalAdminPwd=portal_user_password -DWasUserid=was_user_id
-DWasPassword=was_user_password

Note: You can also add theme module using any WebDAV client refer 7.1.2, Configuring
theme modules for social portlets on page 103 for more details.

Chapter 7. Pattern 2: Putting social into context 137


To remove the wp_social_rendering theme module from your theme, run the following
configuration task.

ConfigEngine.bat remove-theme-modules -DThemeUniqueName=my.custom.theme


-DThemeProfileFileName=profile_my_custom_profile.json
-DModuleIDs=wp_social_rendering -DPortalAdminId=portal_user_id
-DPortalAdminPwd=portal_user_password -DWasUserid=was_user_id
-DWasPassword=was_user_password

Customizing social list


You can customize social lists in different ways. For example, you can determine various
inputs based on which the content is filtered and shown to user, visual appearance of social
list by customizing the formatting components, and how the portal handles data related to the
listed social objects. You customize social lists by working with social list authoring templates.
You can also create your own custom authoring templates for social lists.

Customizing social list sources, filters, and look and feel


You can customize your social list definitions by defining the following settings in inline editing
mode. This customization is normally done by a web designer or a page editor.
1. While in page edit mode, move your mouse pointer to the social list portlet. The Edit icon
opens.
2. Click the Edit icon. The Web Content Manager inline edit dialog opens up and shows the
definition of the current social list.

3. You can change how you want to show the results of social list to end users as per the
details given below:
a. Name: Use this setting to specify a name for the list of social items.
b. Display Title: Use this setting to specify the display title for the list of social objects. If
you use the default presentation template, a change to the display title also changes
the heading shown for the list of social objects on the page.

138 Building and Implementing Social Digital Experiences


c. Content Sources: Use this setting to select the content sources that you want to
include in the list of social objects. You can select multiple content sources. Each
content source corresponds to a Connections service. Social rendering supports the
following Connections services: activities, blogs, bookmarks, communities, files,
forums, profiles, wikis, and events.
d. Filter by Community: You can limit the contents of a social list to a community by
filtering. The following options are available:
Limit to community that is associated with this page
Limit to selected community
Do not limit to a community
e. Filter by Type of Access: Select this option to display only public objects in this list. If
you do not select this option, the list can also include social objects that are owned by
or shared with the current user who views the list
f. Filter by Tags: Use this setting to specify a comma-separated list of tags to adjust the
list of social objects. If you specify a tag filter here, the list displays only social objects
that are tagged with these specific terms.
g. Tag Selection Support: Select this option to make this social list reflect tag selection
information that is generated by the portal Tag Cloud portlet. If a user selects a tag in
the portal Tag Cloud, the portal adds this tag dynamically to the existing tag filter of the
current social list.
h. Sorting Criteria: Use this setting to specify the sorting criteria that are used for the list
of social objects. You can choose between the Last updated and Relevance options.
i. Sorting Order: Use this setting to specify the sorting order that is used for the list of
social objects. You can choose between Ascending and Descending order.
j. List Appearance: Use this setting to select a component that formats the list of social
objects. By default, you can choose between two appearance types:
Simple :The Simple appearance is useful for a mobile view, as it contains fewer data.
Comprehensive: The Comprehensive appearance provides more information of the
following types:
The person who made the last update to the social object
The date of the last update to the social object
Tags that are assigned to the social object
The summary of the social object.
Both of these default appearances are responsive to the theme columns, screen width,
and screen orientation. Social rendering uses default CSS styles to provide this
responsiveness. For example, they can be useful if users use different types of devices
to view the lists or change between portrait and landscape views on a mobile device.
4. Maximum Results (hidden): This field is an optional input field. This setting is hidden by
default. To make it show, click Show hidden fields at the beginning or end of the screen.
Use this setting to specify the maximum number of content items included in this list. You
can also configure this setting globally for all social list portlets in the WP Connections
Integration Service in the WebSphere Integrated Solutions Console.

Note: Refer 7.3.2, Configuring social rendering on page 129 for more details

If you leave the Maximum Results field empty for a social list, then the value that is set in
the WP Connections Integration Service applies as the default.
5. Custom Properties (Hidden): This field is an optional input field. It is hidden by default.
To make it show, click Show hidden fields at the beginning or end of the screen. Add one

Chapter 7. Pattern 2: Putting social into context 139


or more custom properties in this input field. You can use such more custom properties to
add more flexibility to the layout of your list a required. For example, you can change the
layout of your social list by defining a specific condition that uses the custom property
added in this field. The following code sample shows how you change the color of the
social list heading by specifying the string blue at the Custom Properties element:

[Plugin:Equals text1="blue" text2="[Element context=current type=content


key=custom]"]
<h2 style="color:blue;">[Property context="current" type="content"
field="title"]</h2>
[/Plugin:Equals]
[Plugin:NotEquals text1="blue" text2="[Element context=current type=content
key=custom]"]
<h2 style="color:black;">[Property context="current" type="content"
field="title"]</h2>
[/Plugin:NotEquals]

Customizing social list appearance


You can customize the visual designs for social lists by modifying the corresponding WCM
Personalization components. For example, you can define the markup and styles. You can
also format your social lists to target mobile by reducing the amount of information listed. For
extracting the individual pieces of metadata of social objects contained in a social list, you can
use the WCM AttributeResource tag.

Follow these steps to modify the visual appearance of social list:


1. While in page edit mode, move your mouse pointer to the social list portlet. A pop-up
appears with few menu items.
2. Click on Open Edit Form in the menu. The Web Content Manager inline edit dialog opens
up and shows the definition of the current social list.

3. A pop-up window of Edit Form opens. Under List Appearance, Click on IBM
Connections / List Designs / Simple. The social list appearance can be formatted in two
ways: Simple and comprehensive list. Simple list as the name denotes displays only few
attributes. Comprehensive list displays attributes of the Social List in detailed form.

140 Building and Implementing Social Digital Experiences


4. Clicking on the Simple List Design, opens up a Personalization element where we can
modify the markup elements and specify how we want to render the Social Lists portlet
inside Portal.
5. Under the Result design section, there are few WCM and HTML tags which are used to
render the different attributes of Social Lists portlet. We can identify that the HTML refers
to a component name simple body. Click on the component as shown below.

6. Navigate to HTML markup and select simple non profile body component.

Chapter 7. Pattern 2: Putting social into context 141


7. Select title component.

8. Modify the HTML markup. Click on Edit.

142 Building and Implementing Social Digital Experiences


9. Insert an anchor tag in list markup, and click on Insert Tag button.

10. Insert Tag dialog box opens.

Chapter 7. Pattern 2: Putting social into context 143


11. Select Attribute Resource as tag type, Social Objects as target Component and View
URL as resource type tag.

12. This will insert the URL of document shown in the list. Click Save.

144 Building and Implementing Social Digital Experiences


13. Click Save and Close.

14. Click Close in List Entry Image. Close Simple Non Profile Body, Simple Body, Simple list
design.
15. The Page where we added Community Files List reloads and we can find that the portlet
is now showing the link to Open the file as below.

16. Click on one of the Open link. IBM WebSphere Portal can either resolve the links in the
context of the portal itself, or redirect the user to the IBM Connections user interface. In
this scenario the user is redirected to IBM Connections user interface. Please refer to

Chapter 7. Pattern 2: Putting social into context 145


Specifying_in_the_design_component_how_social_object_links_are_resolved_wp8001&
content=pdcontent for details.

Similarly, you can customize the social list objects using WCM Personalization
Comprehensive List Design. The Comprehensive list design lists social objects in a more
detailed form as compared to simple list design.

Note: IBM WebSphere Portal & Web Content Manager v8.0.0.1 CF11 includes a set of
list-rendering profiles which can be used with IBM Digital Data Connector (DDC) for
WebSphere Portal plug-in. These profiles facilitate the transformation of data that is served
by the IBM Connections server into data structures that you can render using Web Content
Manager design components. These profiles define the attribute names that you can use in
your [AttributeResource] tags when you generate the HTML markup for your bean lists to
be rendered. You can either manually add the AttributeResource tags to the design
component of a social list, or you can use the Insert a Tag user interface of IBM Web
Content Manager. Example: If a profile defines an attribute that is named title, you can
write out the title value of the items in your list by using the following tag:
[AttributeResource attributeName="title"]. Refer to section 7.3.1, Social rendering
features on page 127 for more details.

Customizing visual design


In this section, we will see some of the different ways of customization such as modifying the
authoring template of social list, creating custom authoring template for social list,
customizing the CSS styles, customizing media queries for mobile devices.

Creating custom authoring template

The social lists rendered in Portal are created from the predefined Authoring template Social
List Definition. We can find this Authoring Template by logging into Portal as an
administrator, navigating to Applications Content Web Content Management
Libraries IBM Connections Authoring Templates Social List Definition. The
figure below shows the Social List Definition in WCM Authoring portlet. You can also create
your own Authoring Templates for social lists by extending Social List Definition Authoring
Template. You should add additional rendering elements in the Presentation template, so that
the content is rendered appropriately for the additional elements in social lists.

146 Building and Implementing Social Digital Experiences


Ensure that all the elements in the custom authoring template are recognized by the
SetQueryContext rendering plug-in. This ensures that the social objects resource collection
can establish the appropriate query context when retrieving data from the remote IBM
Connections server.

Customizing the CSS styles of social list

In section 7.1.2, Configuring theme modules for social portlets on page 103 and 7.3.2,
Configuring social rendering on page 129, you saw how to add a theme to a page as well as
adding theme module wp_social_rendering to a customized theme. The
wp_social_rendering theme module contains the default CSS styles that are used to define
the visual appearance of social lists. You can define your own customized styles by modifying
the theme modules and CSS files. This CSS style makes social objects render differently for
different devices like tablet, smart phones, desktops etc based on the layout container that
contains the social list web content viewer. There are different CSS classes that are assigned
to these layout containers to render differently for various screen width. This responsiveness
to various screen width is achieved by using HTML5 and CSS3 media queries.

When you create your own custom theme module, make sure to add the following extension
point. Ensure that social_rendering capability ID is not changed but we can change the
module ID from wp_social_rendering to any value.

wp_social_rendering theme module uses the following extension point, you need to change
the module ID from wp_social_rendering to any value.

<extension point="com.ibm.portal.resourceaggregator.module"
id="social_rendering_head" >
<module id="wp_social_rendering">
<capability id="social_rendering" value="8.0"/>
<contribution type="head">
<sub-contribution type="css">
<uri value="res:{rep=WP
GlobalThemeConfig;key=resources.modules.ibm.contextRoot}/modules/sr/css/master_sr.
css" />
<uri type="rtl" value="res:{rep=WP
GlobalThemeConfig;key=resources.modules.ibm.contextRoot}/modules/sr/css/master_sr_
rtl.css"/>
<uri deviceClass="smartphone" value="res:{rep=WP
GlobalThemeConfig;key=resources.modules.ibm.contextRoot}/modules/sr/css/master_sr_
mobile.css"/>
<uri deviceClass="tablet" value="res:{rep=WP
GlobalThemeConfig;key=resources.modules.ibm.contextRoot}/modules/sr/css/master_sr_
mobile.css"/>

Chapter 7. Pattern 2: Putting social into context 147


</sub-contribution>
</contribution>
</module>
</extension>

Add the new module id to the profile for every page which requires additional theme module
changes. For example, in profile_full.json file, replace the default wp_social_rendering by
new_theme_module_id and save the changes.

"moduleIDs": [
....
....
"wp_liveobject_framework",
"dijit_form_17",
"wp_federated_documents_picker",
"wp_content_mapping_picker",
"wp_social_rendering"
.....
.....
]

For the list of CSS files available in wp_social_rendering theme and its purpose, refer the
topic Providing_custom_styles_for_social_lists_wp8001&content=pdcontent for more details.

While making the changes, the following are some of the most important points to keep in
mind:
1. If you are adding more master_*.css files, then you must update the sub-contributionxml
element section in the extension point mentioned above and also the CSS contribution in
plugin.xml file.
2. If you add more CSS files, then you must update the master_*.css files as they import
other CSS files. So that the CSS files are available for the customized theme module.
3. Update the profile file with the new theme module and specify this profile file in
resourceaggregation.profileproperty of the page.
4. If you are adding your own custom theme CSS classes and not using wpthemesample
CSS classes, then you must update the CSS files sr_wptheme.css and
sr_wptheme_rtl.css For the list of CSS class hierarchy for social lists, refer the topic CSS
class hierarchy for social lists in WebSphere Portal V8 Update documentation.

After making the changes, restart the Portal Server for the changes to take effect. Also, clear
the browser cache so that the changes are shown properly.

Customizing media queries to target mobile devices

The CSS3 media queries are used to implement responsive web design in mobile devices.
The media query of the social rendering is of the format:

@media screen and (max-width: $value px) {


.srComponent .srRightColumn {
display: none;
width: 0px;
}
}

148 Building and Implementing Social Digital Experiences


Here, $value is the maximum screen width in pixels. The rules within the query block does not
apply to other screens whose width is greater than the value defined here. You can have
multiple media query blocks for various screen widths. You can show or hide various
components using this definition.

The social list markup has three types of columns and the following are the CSS class
assigned for that:
1. srLeftColumn: This is the CSS to be used for the first column which contains the icon of
the social object.
2. srMainColumn: This is the CSS to be used for the main column which contains the title of
the social object.
3. srRightColumn: This is the CSS to be used for the third column which contains the likes,
comments and access control icons of the social object.

The above media query format defines that the third column should be hidden for screens of
width $value pixels or below. For example, if the $value is defined as 480 px, then the screens
of width 480 or below will not display the third column.

Customizing Tag cloud portlet


Now you will see how you can customize the Tag Cloud and Files Portlet to display the
specific files which are tagged by a user. On clicking on a specific Tag, Files portlet will
display only the files which uses that Tag.

Follow the below steps to customize the Tag Cloud:


1. Go to Content Tab, Click on Collaboration.
2. Click on the button Tag Cloud. Click Add to Page and Save the changes to add the Tag
Cloud portlet to a page. You will see a Tag Cloud portlet as shown below.

3. From the drop down in the right corner, choose Edit Shared Settings. In the Shared
Settings screen, the option Persisted tags only in Tag display modes and Redirect to tag
center in Action modes is selected by default.

4. Modify the drop down values and choose Transmitted tags only in Tag display modes
and Expose public render parameter in Action modes.

Chapter 7. Pattern 2: Putting social into context 149


5. Click OK. Now you can see that No tags found message is disappeared in Tag Cloud
portlet. After set this configuration in Tag Cloud portlet, it can communicate with other
Social portlets in the page to receive and display the tags, if other portlets have enabled
the Tag Selection support. By default, the Tag selection support is disabled in other
portlets.

6. In the Files Portlet, click on the portlet and choose Open Edit Form. In the Edit pop-up
window, Select the Enable Tag Selection Support under the Tag Selection Support
section.

7. Click Save and Close. The page where we added Tag Cloud portlet reloads and we can
find that the portlet is now showing all the tags provided by the Files Portlet which
represents the set of tags that have been assigned to the files represented by the files
portlet.

8. Click on the tag cmis. Now, you can find that the Files portlet displays only one file which
contains the tag cmis. The tags are filtered in Files Portlet based on the selection made in
Tag Cloud portlet.

150 Building and Implementing Social Digital Experiences


9. Again clicking on cmis and thus deselecting this tag will show all the tags in the Tag Cloud
portlet.
Similarly you can also customize the Files or Blogs portlet to list only certain information.
This can be achieved using the Edit form options : Filter by Type of Access, Filter by
Search Term, Filter by Tags.

Customizing business card


The business card and online status can be integrated in a social list by using live text
microformat. To use the business card, the page editor must add the portal.livetext.hcard
theme capability to the page. This theme comes along with wp_liveobject_framework
theme module which can be added to the page profile.

To customize the Business card, browse to the IBM Connections library by logging into Portal
as an administrator. Navigate to Applications Web Content Management IBM
Connections Components Components Business Card. You can find an HTML
component. By using this component we can customize the social list definitions. This HTML
component is referenced by the Comprehensive list appearance option for social objects. The
attributes authorObjectID or the authorEmail of a social object are used for identifying a
user by the business card. The HTML Markup of Business Card component is shown in the
figure below.

Chapter 7. Pattern 2: Putting social into context 151


Note: For more information, refer IBM WebSphere Portal 8 documentation, section
Integrating with IBM Connections. Also, refer the section 7.2.4, Configuring IBM
Connection business card on portal on page 116.

7.3.5 New capabilities in social rendering


IBM WebSphere Portal Version 8.001 included the social rendering feature. It introduced the
pattern of using WCM design components to render social data from a remote IBM
Connections server. With IBM WebSphere Portal & Web Content Manager v8.0.0.1 CF11,
social rendering provides additional capabilities on top of this pattern and add extra query,
filtering, and rendering options. In addition to reading and displaying social information on
your websites, the feature extensions also allow for interactions handled through WebSphere
Portal. Your site visitors can use these interfaces to contribute information. For example, they
can create blog posts or participate in forum discussion.

The new social rendering capabilities leverages Digital Data Connector (DDC) framework to
build custom social list using Connections query URLs and render the data using WCM. It
also provides capabilities to implement user interactions. Site designers can implement
formatting components that support an interaction between the user and the social data. For
example, a user can post a new reply to a forum topic or delete a previous reply.

The social lists that are provided with social rendering use the IBM Connections search
service feed to retrieve the social objects displayed in the list. This has the following
consequences:
Only information that is available in the Connections search feed can be displayed in the
social lists.
Updates to social objects in Connections do not appear in the social lists provided with
social rendering until the index of the Connections search service was updated.

The benefit of using these new social list is that the social data served using these social lists
is updated as it does not depend of search service.

IBM WebSphere Portal & Web Content Manager v8.0.0.1 CF11 includes a set of DDC
profiles. They facilitate the transformation of data that is served by the Connections server
into data structures that you can render by using WCM design components. The following
profiles are available:
Blogs (ibm.portal.sr.blogs)
Blog details (ibm.portal.sr.blogs.details)

152 Building and Implementing Social Digital Experiences


Blog posts (ibm.portal.sr.blogs.posts)
Blog post comments (ibm.portal.sr.blogs.post.comments)
Communities (ibm.portal.sr.communities)
Community members (ibm.portal.sr.communities.members)
Forums (ibm.portal.sr.forums)
Forum topics (ibm.portal.sr.forums.topics)
Forum topic replies (ibm.portal.sr.forums.replies)
Forum topic and reply attachments (ibm.portal.sr.forums.attachments)
Profiles (ibm.portal.sr.profiles)
Profiles connections (ibm.portal.sr.profiles.connections)
Social objects (ibm.portal.sr.search)
Wiki pages (ibm.portal.sr.wikis.pages)
Wiki page comments (ibm.portal.sr.wikis.page.comments)
Wiki page attachments (ibm.portal.sr.wikis.page.attachments)

These profiles can be used to define social list for the following types of social data that is
served by the Connections server:
Blogs, blog posts, and blog post comments, as served by the Blogs service
Communities and community members as served by the Communities service
Forums, forum topics, forum topic replies, forum topic attachments or reply attachments as
served by the Forums service
User profiles, user network connections as served by the Profiles service
Wiki pages, wiki page comments, wiki page attachments as served by the Wikis service
Search results as served by the IBM Connections search service.

The profiles define the attribute names that you can use in your [AttributeResource] tags
when you generate the HTML markup for your bean lists. You can either manually add the
AttributeResource tags to the design component of a social list, or you can use the Insert a
Tag user interface of WCM. Example: If a profile defines an attribute that is named title, you
can write out the title value of the items in your list by using the following tag:
[AttributeResource attributeName="title"].

Creating custom social lists by using the Digital Data Connector


You can use IBM Digital Data Connector (DDC) for WebSphere Portal plug-in to create
custom social lists with extra capabilities like:
Realize custom queries against the IBM Connections server
Retrieve data from IBM Connections services other than the search service and access
them via the List Rendering Profiles that come with WebSphere Portal 8.0.0.1 CF 11.
Make it possible for portal site visitors to contribute social information and interact with
social content via UI artefacts served by IBM Web Content Manager features and the
interaction capabilities provided by Digital Data Connector.

Note: Refer to section 7.4, Digital Data Connector on page 196 for more details.

Implementing custom IBM Connections queries


IBM Connections provides a comprehensive remote API. You can use this API to access
social data through Atom feeds. You can build custom queries for social data by constructing
corresponding query URLs. Refer to the article, Determine Connections REST API URL to
determine the right URL for Connections data you intend to render via Digital Data Connector.

Chapter 7. Pattern 2: Putting social into context 153


To render the result of such a query on your portal pages by using IBM Web Content Manager
design components, proceed as follows:
1. Create a custom Library to store your design elements e.g. SocialRendering.

2. Create a HTML component to be used as Query URL e.g "Query URL - Community
Members".
3. Use the following markup.

[Plugin:URLParam param="communityUuid=[Plugin:ConnectionsContext type='portal'


key='communityID']" url="[Plugin:ConnectionsContext type='service'
key='communities']/service/atom/community/members"]

This will result in a URL to list all community members of the community identified by the
passed communityUuid. In this specific case, the value of said parameter refers to the
connections community that the currently selected portal page is associated with.

154 Building and Implementing Social Digital Experiences


4. Save the HTML component.
5. Create a new authoring template called "Generic List Definition".

6. Add element as shown below.

Chapter 7. Pattern 2: Putting social into context 155


-- 'List appearance' serves as placeholder for the PZN component specifying the design
how the items are to be rendered.
-- 'source' ? is a reference to a component which will provide the URL to the remote
service from which data is to be displayed
-- 'profile' ? holds the reference to the List Rendering Profile to be used for rendering
-- 'provider' ? holds the ID of the DDC Bean List Provider
7. Disable the workflow & Save the authoring template.

156 Building and Implementing Social Digital Experiences


8. Create a generic DDC presentation template "Generic List Definition" with following
markup.

[Plugin:ListRenderingContext compute="always" extension-id="[Element


context='current' type='content' key='provider']" profile="[Element
context='current' type='content' key='profile']" attribute="source=[Element
context='current' type='content' key='source']"]
[Element context="current" type="content" key="List Appearance"
compute="always"]

Chapter 7. Pattern 2: Putting social into context 157


9. Save and close.
10. Go to "Generic List Definition" authoring template and create the default presentation
template mapping to "Generic List Definition" presentation template created above.

11. Save the changes.

158 Building and Implementing Social Digital Experiences


12. Create Personalization element called "Community Members". Click to create a new
Personalization rule.

13. Create a new Personalization rule called "Generic DDC Selection Rule".

Chapter 7. Pattern 2: Putting social into context 159


14. Enter
in Header section and
in Footer section.
15. Click Insert Tag in Result Design.

160 Building and Implementing Social Digital Experiences


16. Make selections as shown below.

17. Change the markup to as shown below.

<li>
<a href="[AttributeResource attributeName="portalLink" separator=","]">
[AttributeResource attributeName="memberName" separator=","]
</a>
</li>

Chapter 7. Pattern 2: Putting social into context 161


18. Enter "No members found" in no result design.

19. Save and close.


20. Create a Site Area "List Definitions".

21. Create a default content, called "Community Members", for this site Area, using Generic
List Definition authoring template.

162 Building and Implementing Social Digital Experiences


22. Select List Appearance component that you created.

23. Select Query URL component, provide profile & provider details as shown below. Save
and close.

Chapter 7. Pattern 2: Putting social into context 163


24. Add the Web Content Viewer portlet to the portal page associated with a Community. Go
to Edit Shared Settings mode.

164 Building and Implementing Social Digital Experiences


25. Refresh the page.
The page starts to render the community members list.

You can further modify the appearance of this list and display more information. For
example, you can use following code in you Community Members personalization result
design component

<li>
<table>
<tr>
<td>

Chapter 7. Pattern 2: Putting social into context 165


<img width="48" src="[AttributeResource attributeName="portalMemberImageLink"
separator=","]">
</td>
<td>
<a href="[AttributeResource attributeName="portalLink" separator=","]">
[AttributeResource attributeName="memberName"
separator=","]</a>([AttributeResource attributeName="memberRole"
separator=","])
<br>
Email: [AttributeResource attributeName="memberEmail" separator=","]<br>
</td>
</tr>
</table>
</li>

The modified list displays on the page.

Implementing interactions
Social lists are more than a presentation of social data that is hosted on a remote IBM
Connections server. Site designers can use WCM components to implement user interactions
with social data. For example, a user can post a comment to a blog post entry or delete the
same.

To create such interactive social list designs, site designers need to implement an HTML form
to send a POST action request to the Web Content Viewer portlet that displays the social list.
The HTML form must include the URL of a data sink and parameters that identify the action
that the designer wants to perform. The portlet then dispatches to the target data sink that
processes the form data and returns a data source that holds the result. For example, the
result can be a JSON object that contains the status of the operation triggered with the POST
action request and an error or success message. The portlet stores the result in the portlet
session or as a private render parameter. To access the result in the formatting components,
site designers can use the SessionAttribute rendering plug-in and the RenderParam
rendering plug-in.

166 Building and Implementing Social Digital Experiences


Note: For more information about the action URL, render parameter, and session attribute
rendering plug-ins, read Utility_plugins_wcm8&content=pdcontent in the Web Content
Manager documentation.

Interacting with blog post


The DDC for WebSphere Portal framework contains a generic data sink. You can use the data
sink in combination with HTML forms generated by your WCM design components.

Note: For more information about DDC generic data sink, supported parameters and result
object details, read

http://www-01.ibm.com/support/knowledgecenter/SSHRKX_8.5.0/mp/social/plrf_use_g
en_xml_ddc_datasink.dita\ThegenericXMLDigitalDataConnectordatasink.

For our scenario, we will complete the following steps to implement an interaction with blog
posts:
1. A demo blog with name "demoBlog" is created on our target Connections server.
2. Create a custom demo post list using ddc profile ibm.portal.sr.blogs.posts.
3. Implement user interaction with blog post.

Create a sample blog Post

For the purpose of this demonstration, we have created a demo blog post by the name First
Blog Post under demo blog named demoBlog on the Connections Server.

Create a custom demo post list using ddc profile ibm.portal.sr.blogs.posts

Chapter 7. Pattern 2: Putting social into context 167


1. Login to portal using WCM admin and go to WCM authoring interface. Navigate to
Applications Content Web Content Authoring. Select SocialRendering library
we created earlier.

2. Create a HTML component to be used as Query URL e.g "Query URL - Blog Posts".
3. Use the following markup.

[Plugin:ResourceURL url="[Plugin:ConnectionsContext type='service'


key='blogs']/demoBlog/feed/entries/atom"]

4. Save the HTML component.


5. We will use the "Generic List Definition" authoring template and "Generic List Definition"
presentation template created earlier.

168 Building and Implementing Social Digital Experiences


Create Personalization element called "Blog Posts". Click to create a new Personalization
rule.

6. Create a new Personalization rule called "Generic DDC Selection Rule".

7. Enter Insert Tag in Result Design.

Chapter 7. Pattern 2: Putting social into context 169


8. Make selections as shown below. For the same of simplicity, you can use the code below
as Result design of your Personalization component.

<tr id="tr1_[AttributeResource attributeName="id" separator=","]">


<td>
</td>
<td>

<h2>

170 Building and Implementing Social Digital Experiences


<a target="[Plugin:Equals text1="connections"
text2="[Plugin:RequestAttribute
key='ibm.portal.default.social.object.resolution.mode']"]_blank[/Plugin:Equals]
" title="[AttributeResource attributeName="title" separator=","]"
href="[AttributeResource attributeName="link" separator=","]">
[AttributeResource attributeName="title" separator=","]
</a>
&nbsp;
</h2>

<div>
<ul>
<li>
Last Updated on [AttributeResource attributeName="updated"
format="MMMM d, yyyy" separator=","]
</ul>
</div>
</td>
</tr>
<tr>
<td colspan="2" class="srSpacerCell">
<div>&nbsp;</div>
</td>
</tr>

<tr>
<td colspan="2" class="srSpacerCell">
<div>&nbsp;</div>
</td>
</tr>
<tr id="tr4_[AttributeResource attributeName="id" separator=","]">
<td class="srSpacerCell"></td>
<td class="srSocialBar">

<div class="srSocialBar srSocialBarBlog">


<span class="srMetaIcon">
Number of Comments - [AttributeResource
attributeName="numberOfComments" separator=","]<BR>
Number of Likes - [AttributeResource attributeName="numberOfLikes"
separator=","]
</span>
<BR>
<a href="[AttributeResource attributeName="link" separator=","]">View Blog
Entry</a>
</div>
</td>
</tr>
<tr>
<td colspan="2" class="srSpacerCell">
<div>&nbsp;</div>
</td>
</tr>

9. Enter "No Blog Posts found!" in no result design.

Chapter 7. Pattern 2: Putting social into context 171


10. Save.
11. Create a content, called "Blog Posts", for this site Area, using Generic List Definition
authoring template.

12. Select List Appearance, Query URL component that we created. Provide profile &
provider details as shown below.

172 Building and Implementing Social Digital Experiences


13. Save and close.
14. Add the Web Content Viewer portlet to the portal page associated with a Community. Go
to Edit Shared Settings mode.

Chapter 7. Pattern 2: Putting social into context 173


15. Refresh the page.
The page starts to render the list of all blogs posts. In this case, it render two blogs post
that we created earlier in this example

174 Building and Implementing Social Digital Experiences


Now we will implement user interaction, where a logged in user would be able to post a
comment using DDC.

Create HTML Forms to post comment


1. Create an HTML component called "Create Comment", this will be used as xml template
to post data to IBM Connections.

<?xml version='1.0' encoding='UTF-8'?>


<entry xmlns='http://www.w3.org/2005/Atom'
xmlns:thr="http://purl.org/syndication/thread/1.0">
<content type='html'>
</content>
</entry>

2. Click Save & Close.


3. Create another HTML called "BlogPost-WriteCommentForm" and provide the markup as
given below.

<form id="[AttributeResource attributeName="id"


separator=","]CreateBlogPostComment"
method="POST" enctype="multipart/form-data"
action="[Plugin:ActionURL action="post"
param="resultSessionAttribute=myResult" param="resultRenderParameter=myResult"
copyCurrentParams="true" compute="always"]">
<input type="hidden" name="_charset_"/>
<input type="hidden" name="action.uri"
value="ddc:operation:blp:ibm.portal.ddc.xml"/>
<input type="hidden" name="ddc.uri.template"
value="wcmrest:LibraryHTMLComponent/[Component
name="socialrendering/create comment" format="id"]"/>
<input type="hidden" name="ddc.profile.in"
value="ibm.portal.sr.blogs.post.comments"/>
<input type="hidden" name="ddc.itemattribute.operation.addComment"

Chapter 7. Pattern 2: Putting social into context 175


value="action=set,itemAttributeName=body"/>
Post Comment:
<textarea title="Content" name="ddc.itemattribute.value.addComment"
placeholder=" "></textarea>
<input type="hidden" name="ddc.uri.target" value="[AttributeResource
attributeName="rawCommentsEditLink" separator=","]"/>
<input type="hidden" name="ddc.method" value="post"/>
<input type="submit" class="lotusBtn" value="Submit" name="submitButton"/>
</form>

The ddc.uri.template references the Create Comment template component that has
been created in the previous step.
The 'body' item attribute is defined in the ibm.portal.sr.blogs.post.comments profile and
provides the location to where in the template the actual information will be stored before
submitting the form to the connections server.
The ddc.uri.target is the URL to where the information will be posted in this case it is
the edit comments link (rawCommentsEditLink) that points to the connections server.

Go to the personalization component "Blog Post" created earlier and refer the HTML
component created above on the Result design markup at the position you want the form
to comment a blog post to be displayed. You can use the code given below.

<tr id="tr4_[AttributeResource attributeName="id" separator=","]">


<td colspan="2" class="srSpacerCell">
[Component
id="650173a4-a858-4b97-8036-a98a3790818e:NC9zb2NpYWxyZW5kZXJpbmcvYmxvZ3Bvc3Qtd3
JpdGVjb21tZW50Zm9ybQ==" name="socialrendering/blogpost-writecommentform"]
</td>

176 Building and Implementing Social Digital Experiences


</tr>
<tr>
<td colspan="2" class="srSpacerCell">
<div>&nbsp;</div>
</td>
</tr>

Screenshot of updated "Blog Post" personalization component with reference to HTML


component created above.

4. Refresh the page, the updated blog post list with an option to post the comments is
rendered.

Chapter 7. Pattern 2: Putting social into context 177


5. Enter a comment to First Blog Post. Click Submit.

178 Building and Implementing Social Digital Experiences


The comment is successfully updated. Observer the number of comments changing from
0 to 1.

Chapter 7. Pattern 2: Putting social into context 179


6. Click on First Blog Post link to go to Connections interface.

7.3.6 Using WCM to render social content


This section demonstrates how to view the content created in IBM Connections inside IBM
WebSphere Portal. Using WCM, you can customize the look and feel and display the main
attributes of IBM Connections files within the context of WebSphere Portal. This feature

180 Building and Implementing Social Digital Experiences


enables a user to view Connections content in context within portal instead of moving out of
Portal and having unnecessary media discontinuity.

In previous sections, you saw that IBM WebSphere Portal Web Content Manager (WCM)
social rendering feature provides a flexible way to query and render IBM Connections social
content inside IBM WebSphere Portal. You also saw the various ways to customize the visual
design of social list using WCM Personalization component simple and comprehensive list
design. In this section, you will see how WCM can integrate and share documents with other
Content Management systems such as IBM Quickr, IBM FileNet, IBM Content Manager and
also IBM Connections. Using this way, WCM can render the social content inside IBM
WebSphere Portal.

Using WCM to render social content


WCM provides federated documents feature using Content Management Interoperability
Services (CMIS)standard. CMIS is an interoperability standard set by OASIS Open Standard
for sharing information across Enterprise Content Management Systems. This feature allows
users to insert a link to a document located in a remote server and also render the documents
from a remote server.

CMIS client support is provided in WCM to fetch files from IBM Connections in two ways:
Select IBM Connections Files using CMIS URL in Personalization (PZN) component and
render the PZN component using a Presentation template in Portal.
Refer to IBM Connections File hosted in a remote Connections server through a link in
Authoring Template, Rich Text component.

CMIS service uses a URL to point to a remote server and fetch the information as a XML
Atom Feed document. The CMIS URL is of the format: base URL of files
service/basic/cmis/CMIS Service Doc identifier.

Here,
base URL of files service is the entry URL to IBM Connections files service. The files
service URL is a combination of Connections URL and files context root. The default
context root is: /files
CMIS Service Doc identifier is the specific CMIS document service.

For our scenario used in this guide, the Connections server, the CMIS URL to Connections
Files is https://connectionsww.demos.ibm.com/files/basic/cmis/my/servicedoc. When
you enter the URL in a browser, it should return the ATOM feed XML document as shown in
figure below. This confirms that the CMIS URL is working properly.

Chapter 7. Pattern 2: Putting social into context 181


Configuring Portal for integration with Connections files
This section describes how to display Connections files within the context of WebSphere
Portal.

Configuring credential vault for Connections user

WebSphere Portal requires Connections user credentials to fetch the Connections files and
configure inside WCM Authoring Tools using Personalization and Rich text components. So,
you will now create a Credential Vault for Connections user.
1. Log in to IBM WebSphere Portal Console as an Administrator using credentials
wpsadmin/wpsadmin (username/password).
2. Navigate to Administration Access Credential Vault. Click on Add a vault slot.

3. Specify the vault slot name as connections_slot. Create a new vault resource for this
vault slot with name as conn_resource. Make the vault slot as shared by checking the
check box. Specify the Connections userid and password as
aalain@demos.ibm.com/passw0rd as shown in the figure below.
4. Click OK.
5. In Administration Access Credential Vault Manage system vault slots, you
should find that the added vault slot connections_slot is displayed.

182 Building and Implementing Social Digital Experiences


Configuring Portal for integration with Connections files

You must configure the Federated Document Service in WebSphere Application Server
(WAS) Administration Console to specify the CMIS URL and authentication information of the
Connections server. Follow the steps to configure the Resource Environment Providers, WP
FederatedDocumentsService.
1. Log in to WAS Administration Console as an Administrator using credentials
wpsadmin/wpsadmin (username/password).
2. Navigate to Resources Resource Environment Resource Environment
Providers. Select WP FederatedDocumentsService. The values can be specified in the
Custom Properties section as shown in the figure below.

Chapter 7. Pattern 2: Putting social into context 183


3. Click on Custom properties under Additional Properties.
4. Click on New as shown in the figure below :

Note: If a property by name is already present in Custom properties, then click on the
property and replace only the property value. Click Apply and Save changes directly to
master configuration.

5. Specify the Property name and value for Federated Documents.


a. Enter property name as wp.federated.documents.ic_personalized_sc.url and value
as https://connectionsww.demos.ibm.com/files/basic/cmis/my/servicedoc as shown in
figure below :

184 Building and Implementing Social Digital Experiences


b. Click Apply button and then click Save directly to master configuration link.

c. Click OK button. You can now find that the added property name is getting displayed in
Resources Resource Environment Resource Environment Providers WP
FederatedDocumentsService screen.
Similarly, follow the above steps a, b, c and add the following properties:

Property Name Property Value

wp.federated.documents.ic_personalized_s Your Documents on IBM Connections.


c.title.default

wp.federated.documents.suffix.type CMIS

wp.federated.documents.suffix.url https://connectionsww.demos.ibm.com/files/
basic/cmis/my/servicedoc

wp.federated.documents.suffix.title.default Your Documents on IBM Connections.

Chapter 7. Pattern 2: Putting social into context 185


6. You can also specify the Credential Vault information while connecting to remote
Connections server. In case, if SSO is configured with Portal and Connections, then you
may not need Credential Vault. Specify whether you need the Credential Vault for
federated documents for the two ways: Personalization (PZN) and Rich Text Element
(RTE).
Follow the above steps 5 a, b, c and add two properties with names :
wp.federated.documents.pzn.vaultselection.enabled and
wp.federated.documents.wcm.vaultselection.enabled.

Setting the property value to true indicates that you need credential vault slot, false indicates
that credential vault slot is disabled. If the Credential vault slot is disabled, then the current
logged in user is used for connecting to remote server. If the credential vault is enabled, then
you must add an additional property with name as
wp.federated.documents.suffix.vault.slot and value as connections_slot. While
connecting to CMIS server in WCM PZN and RTE components, the credential vault slot is
displayed based on these properties.

The following properties are added to enable credential vault slot.

Property Name Property Value

wp.federated.documents.pzn.vaultselection.enabled TRUE

wp.federated.documents.wcm.vaultselection.enabled TRUE

wp.federated.documents.suffix.vault.slot connections_slot

7. If the credential vault slot is enabled, then you must grant permission to All Authenticated
Portal Users to the ADMIN_SLOTS virtual resource. Follow the steps for granting
permission as show in the figure below.
a. Log in to IBM WebSphere Portal Console as an Administrator using credentials
wpsadmin/wpsadmin (username/password).
b. Navigate to Administration Portlet Access Resource Permissions.
c. From the Resource Types, select Virtual Resources.
d. For the ADMIN_SLOTS resource, click the Assign Access icon.
e. Edit the User role, and add the All Authenticated Portal Users to the role.

8. Add the Theme module wp_federated_documents_picker in


/ibm.portal.80Theme/profiles/profile_deferred.json and
/ibm.portal.80Theme/profiles/profile_full.json files of the Portal 8.0 theme. WCM Authoring

186 Building and Implementing Social Digital Experiences


portlet needs this theme module to display the Insert Link to Remote Document icon in
Rich Text Element.

Displaying Connections files in IBM WebSphere Portal by inserting a link in


WCM rich text element
You will now see how to insert a link of a document hosted in a remote Connections server in
the Rich Text Element of WCM Authoring Template in IBM WebSphere Portal.
1. Log in to IBM WebSphere Portal as an administrator.
2. Navigate to Applications Web Content Management.
3. Configure the Library which you prefer to use in the Preferences Configure Library
Selection.
4. Choose the Library in Library Explorer.
5. Click New Authoring Template. Choose Content Template.
6. Create an Authoring Template MyFilesAT. Click on Manage Elements button and add a
Rich Text Element with name MyRTE. Choose the Display Title Localization as Social
Rendering and Display Title Localization Key as SR_CONTENT_FILES as shown in the
figure below. Save the Authoring Template.

7. Create a Presentation Template MyFilesPT. In the Presentation Markup Element, click on


Insert Element Tags button. Choose the Authoring Template as MyFilesAT. In the
Presentation Markup, it displays the Rich Text Element Tags with paragraph
style. Replace the Presentation Markup content as shown below. It will reference a content
element with name MyRTE the name that you selected for the rich text element above.

Chapter 7. Pattern 2: Putting social into context 187


8. Create a Site Area FilesSiteArea. Add the created Authoring Template MyFilesAT and
Presentation Template MyFilesPT in Add Template Mapping. Save the changes.
9. Create a content MyFilesContent and choose the Authoring Template MyFilesAT. In the
Rich Text Element Field Files, click on Insert Link to Remote Document as shown in
figure below.

10. When you click on the link, it displays a window where you should be able to specify the
CMIS URL and the credentials to connect to remote Connections server as shown in the
below figure. If you have logged in with Connections user, choose the Authentication
method as Use current user. Here for our scenario, we have logged in to Portal as
Administrator, so choose Use Credential Vault and Click Next.

11. In the figure below, you can find that the files and folders of the logged in Connections
user aalain@demos.ibm.com is displayed. Choose any file and Click Finish.

188 Building and Implementing Social Digital Experiences


12. Now, you can find that a link to remote selected document is added in the rich text
element.

13. Add the content MyFilesContent as default content to the SiteArea FilesSiteArea. Now,
try to preview the content in FilesSiteArea. You can find that a link to remote document is
displayed. By clicking on the link you can either save or open the document.

Figure 7-1 clicking on the link you can either save or open the document

Displaying Connections Files in IBM WebSphere Portal using WCM


Personalization component

You will now see how to display Connections files hosted in a remote Connections server
using the Personalization component of WCM Authoring Template in IBM WebSphere Portal.
1. Log in to IBM WebSphere Portal as an Administrator.
2. Click on Applications Web Content Management.

Chapter 7. Pattern 2: Putting social into context 189


3. Click New Component Personalization. Create a Personalization component with
name as MalarPZN and Display title as Connections Federated Documents.
4. Under Personalization Element, click New to create a new Rule.

5. In the New Rule screen, modify the action rules. Click on Web Content link and choose
Federated Documents.

6. After selecting Federated Documents, click on Feed URL value. Choose Select
Document Folder. It displays a window where you should be able to specify the CMIS
URL and the credentials to connect to remote Connections server as shown in the below
figure. If you have logged in with Connections user, choose the Authentication method as
Use current user. Here for our scenario, we have logged in to Portal as Administrator, so
choose Use Credential Vault to select the connections_slot Credential Vault and Click
Next.

190 Building and Implementing Social Digital Experiences


7. In the figure below, you can find that the files and folders of the logged in Connections user
aalain@demos.ibm.com is displayed. Choose MalarFiles folder and Click Finish.

8. Now, you can find that Feed URL is referring to the Connections folder in the
Personalization Rule.

Chapter 7. Pattern 2: Putting social into context 191


Until now, you have configured to select the federated folder from Connections. Next step
is to render the documents from the selected folder MalarFiles in an appropriate format.
You will see how to display the files from the folder in a tabular format. In the List
Presentation Markup of Personalization component, modify the Header, Footer, Menu
search result elements as below.
Header :

<html>
<head>Federated Documents from Connections</head>
<body>
<table border="1">
<tr>
<td>
<b>Title</b>
</td>
<td>
<b>Authors</b>
</td>
<td>
<b>Download URL</b>
</td>
<td>
<b>Content Type</b>
</td>
<td>
<b>Updated</b>
</td>
</tr>

Result Design :

<tr>
<td>
<b>[AttributeResource attributeName="title" separator=","]</b>
</td>
<td>
<b>[AttributeResource attributeName="authors" separator=","]</b>

192 Building and Implementing Social Digital Experiences


</td>
<td>
<a href="[AttributeResource attributeName="contentLink"
separator=","]">Download</a>
</td>
<td>
<b>[AttributeResource attributeName="contentType" separator=","]</b>
</td>
<td><b>[AttributeResource attributeName="updated" separator=","]</b>
</td>
</tr>

Footer :

</table>
</body>
</html>

9. Click Save and Close to save the Personalization changes.


10. Edit the Presentation Markup in the Presentation Template MyFilesPT as below to
present this Personalization component. Save the changes.

11. Preview the content in FilesSiteArea. You can find that the Personalization component
with all the files in the MalarFiles folder is displayed in a tabular format as shown below.
12. You can also add this SiteArea FilesSiteArea to a Web Content Viewer Portlet in a New
Page and view the results. In Portal Administration portlet Portal User Interface
Manage Pages. Create a Page CMISFiles under Home Page. Click Edit Page layout of
CMISFiles page and add Web Content Viewer portlet. In the added portlet, select Edit
Shared Settings and add FilesSiteArea to the Content. Click Apply, OK and Done. Now
the CMISFiles Page is configured and added under Home page.

Chapter 7. Pattern 2: Putting social into context 193


13. Click the CMISFiles tab under Home Page. You can find that the IBM Connections Files
from MalarFiles folder are displayed. Click on the Download link, it may ask you to enter
the connections user and password for the first time. Then, you can either open or save
the document.

This section showed how to render Connections Files in a WebSphere Portal Page using the
Personalization and Rich Text Element of WCM components.

7.3.7 Example: Get blog posts, get community files, etc


Let us see a use case of how a citizen on entering the city government social portal website
can perform his job from home instead of visiting the various departments in city government
office.

Frank, a citizen checks the city government social portal website from his home and reads
Mayor's Blog everyday to be aware of the Mayor's vision for the New year 2014, Health care
improvement actions planned in the city and also he came to know that Mayor is opening a
school for poor in his near by locality. He clicks on some of the links in the right side to
download Birth/Death certificates, to submit Building Plan for getting approval from
government, to pay the Property Tax, for various Online Civil Services like Water/Sewage
connection to his home, Telephone connection, etc, to submit Online Public Grievance like
removal of a dead tree from the road, street light not working, request for a new bus service,
electricity repair work in his area, request for a park in his area, report a fraud in a

194 Building and Implementing Social Digital Experiences


government department, garbage not cleaned for many days, etc. He also goes through the
wikis to read several guides like How to apply for Social Security Number, Pay property tax,
Transfer Provident Fund etc. Also, there are some public forums which answers his questions
like how to segregate the garbage before throwing to dustbins, he wants to change his
address and all correspondence in his records, etc. He also asks his questions related to
government rules, policies in Forums which will be later answered by public or government
officials. Using the Search box in the page, he searches for various forms, guides, wikis,
forums to find relevant information from the website instead of manually visiting every page.

Here, the Citizen's web page uses internally the various social portlets and web portlets like
Blogs, Wikis, Forums, Bookmarks, Search which are added by a page designer using the
Social Rendering features.

Let us see a use case of how a government employee on entering the city government social
portal website get to know the happenings in various government departments and be
connected with his colleagues.

Frank is also the government employee, he checks the city government Portal website to
download the various files required for his job like Salary Grades, Pension Plan, Medical
Benefits, Workplace Safety Ratings and reads them. By using the various Human Resource
applications listed in the page like Leave Management, Payroll, Provident Fund, Pay your
Income Tax and Benefits, he applies for a leave, verifies his monthly salary and Provident
Fund accumulation, pays his income tax dues, submits his expenses for reimbursement. By
using the Tag Cloud, he can filter the files which got displayed in Download Files. He reads
the Latest News headline section in the page to be aware of the news from various
departments in government office. The Employee Blog section makes him aware of the
happenings in his community. He reads the blogs and also post his comment on it, write blogs
and shares his views, ideas, concerns, information regarding his daily job, Government
policies, Citizens welfare in the community. He also searches in the People search to know
more details about a colleague who newly joined his team, finding an expert in another
department, finding a relevant team mate for a position in his team. He uses the Activities
service to track the progress of other's work. He stays connected with his Colleagues using
the Mail and Messaging service available in Portal. He gets his queries answered by joining a

Chapter 7. Pattern 2: Putting social into context 195


relevant community in the website. He also finds the members of a community in the
Members section. The People web page of city government Portal website will look
something similar to the page below:

The People web page uses internally the various social portlets which are added by a page
designer using the Social Rendering features. Here the Latest News section is a Blog portlet
which uses the WCM Personalization Simple List design. The Employee Blog section is a
Blog portlet which uses the Personalization Comprehensive List design. The Download Files
uses the List of Files portlet which is again a Simple List design. A page designer also adds
some of the customized portlets using Administration, Manage Pages section. The People
search portlet is added using the Social Rendering People Finder component.

7.4 Digital Data Connector


Bringing social content into the same pages with static or transactional data is a great way to
add value for end users by bringing conversational elements related to the data together in
one view. This means that business users are able to make quick decisions or to better
understand the relevance of the data by having it all together. This is called bringing social
into context. We understand that using Social Rendering or the portlets available from the
Solution Catalog are two ways to bring the social content to the page. The Digital Data

196 Building and Implementing Social Digital Experiences


Connector (DDC) enables site developers to bring additional Connections data to their site
that may not have a list out of the box and it provides a flexible method for bringing the
transactional or static information to their site with formatting to match the rest of the site. The
DDC framework provides a plugin extensible, generic data consumer with works in
conjunction with Web Content Manager (WCM) presentation components to quickly develop a
data driven digital experience. DDC is the framework on which some of the Social Rendering
lists are based and can be used for a wide array of use cases, such as surfacing CRM, BI, or
Commerce information and elements on a website. It ships with two plugins. One is a generic
XML plugin and the other is the Social Rendering plugin for working with an IBM Connections
source. Using the generic XML plugin with the ATOM List-Rendering Profile (included with
Portal 8.5), or a custom profile, this plugin is very useful, flexible, and powerful.

This section will use an example of these capabilities to illustrate how rapidly a developer
could deploy data driven content on a Portal page.

We cover the following topics in the subsections:


7.4.1, DDC Setup and Requirements
7.4.2, Connecting DDC to an External Datasource
7.4.3, Customizing the Display of a DDC List on page 207

7.4.1 DDC Setup and Requirements


Digital Data Connector (DDC) is available on both IBM WebSphere Portal 8.0.0.1 with
Cumulative Fix 11 and Portal 8.5 and later. Portal 8.0.0.1 enablement steps will have to be
performed prior to using DDC.

To add DDC to Portal 8.0.0.1:


Locate the Portal Cumulative Fix 11 which includes DDC on Fix Central and download the
update.
Follow the Portal instructions for applying updates.
Review the included documentation with the fix for any last minute details or changes.
A ConfigEngine task will be required to enable DDC on an updated system.
Navigate to wp_profile_root/ConfigEngine.
Run the following command:
Windows: ConfigEngine.bat action-enable-plr -DWasPassword=was_password
-DPortalAdminPwd=portal_password
AIX Linux Solaris: ./ConfigEngine.sh action-enable-plr
-DWasPassword=was_password -DPortalAdminPwd=portal_password
IBM i: ConfigEngine.sh action-enable-plr -DWasPassword=was_password
-DPortalAdminPwd=portal_password
z/OS: ./ConfigEngine.sh action-enable-plr -DWasPassword=was_password
-DPortalAdminPwd=portal_password
Restart your Portal and you should now have access to the DDC feature.

7.4.2 Connecting DDC to an External Datasource


The Digital Data Connector (DDC) uses the following constructs to achieve what it is
designed to do:
DDC Plug-in

Chapter 7. Pattern 2: Putting social into context 197


This is a Java plugin that works in the DDC framework to load external data and
transform it into a format that can be rendered with the list design components.
DDC ships with two plug-ins, a social data plug-in for consuming IBM Connections
data, and a generic XML plug-in.
Bean List
The bean list is the result of the DDC plug-in that may result from processing a remote
document along with a List Rendering Profile.
List-Rendering Profile
A list-rendering profile defines the attributes in the bean list generated by the plug-in.
For the generic XML plug-in, list-rendering profiles are used to map the XML data
structure to actual attribute values available in the BeanList.
DDC Selection Rule
Created as a rule or rules configured in Portal or WCM Personalization components,
the selection rule is used to trigger the DDC framework at render time.
List Appearance
A WCM PZN component that references the DDC selection rule and defines the
visualization components to be applied to the list. It encompasses the header markup,
footer markup, the result markup, and the list's pagination rules.
List-Rendering Context
The context generated by the rendering plug-in. Usually it provides all information
necessary for processing the remote documents which is the source of the document,
the id of the DDC Plugin to be used as well as the List Rendering Profile that is to be
used for processing documents.
When used in social lists, it includes information about the instance of the social list
and ensures the social query contains an appropriate set of remote information. The
WCM tag [Plugin:ListRenderingContext] must be included in the presentation
templates before the DDC design components.
List Definition
This is the content item that represents the list. It provides the information to establish
the list-rendering context.
It maps the appearance component to the list for rendering the desired UI.
Is what the Web Content Viewer portlet is configured to render to display the list on a
page.

One needs these components to render data properly with DDC. The modular nature of this
design enables web developers to work on the rendering components installed from the data
definition. It also allows for context aware calls to data sources that include ACLs, like IBM
Connections so that the security in the data source system is respected by the Portal. This
design can be extended to Commerce sites, CRM data, etc. with great potential and
possibilities.

Methodology
You can use one of the following approaches to connecting to external data:
1. Leverage the existing XML Plug-in. This is the simplest method as it does not require the
development or deployment of any Java code. It does, however, require that your data
source is already in a consumable XML format. You create a list-rendering profile to use
this method or reuse the existing ATOM List Rendering Profile that comes with DDC.

198 Building and Implementing Social Digital Experiences


2. Develop a custom DDC Plug-in. Extremely flexible, but requires that a Java developer
write code that implements the
com.ibm.portal.wcm.plr.BeanListProvider Java interface as defined by the public Digital
Data Connector Java API.
3. Combine the two approaches. A custom plugin may internally dispatch to the first
approach that is described. In addition, it allows a flexible way for enriching the bean
information that is directly available in the remote XML Document with data that need to be
computed explicitly. This could for instance be data fragments that depend on the user that
is currently logged in to the portal system.

We will use method one for our example.

Example
We will connect to an XML data source and render a list of items for sale, simulating the
consumption of a web service. The sample xml file will be provided for download.

Assume the following:


Portal is the host: wpnextbeta.srdemo.com
Web service is located at: cnx.srdemo.com/demo/items.xml
The list will be placed on a portal page by itself, and you already created the target page
for this list

Procedure

Note: It is often considered a best practice to place all of your custom elements into a
separate WCM library, but for the purpose of this example, all elements are simply stored
in the Portal Site library.

1. To enable DDC to render the list from the source feed, the feed needs to be accessible
through the Ajax Proxy. Add the URL to Portal's proxy-config.xml according to the
documentation. For this example, the URL added was "http://cnx.srdemo.com/demo/*"
2. Two foundational elements need to be created, the List Definition Authoring Template and
the List Definition Presentation Template, and then a series of elements specific to our
unique list. Navigate to Applications Content Web Content Authoring to create
the components in WCM that will make up our new list.
3. Within the WCM Authoring Portlet, browse to the library which will contain all of the
elements.
4. Create the Presentation Template by selecting New Presentation Template.
5. Give the item a name and click on Save.
6. In the Markup field, define the ListrenderingContext. By using dynamic references to the
values we just created in the authoring template, the list definitions will be able to be used
by any similar DDC list. The value in the markup field should look something like this:

[Plugin:ListRenderingContext compute="always" extension-id="[Element


context='current' type='content' key='provider']" profile="[Element
context='current' type='content' key='profile']" attribute="source=[Element
context='current' type='content' key='source']"][Element context="current"
type="content" key="List Appearance" compute="always"]

Chapter 7. Pattern 2: Putting social into context 199


7. Save and close the element.
8. Create a new Authoring Template from the default Content Template.

9. Give the component a name and click on Save. Then click on Manage Elements.

200 Building and Implementing Social Digital Experiences


Add the following elements:

Element Type Element Name

Component Reference List Appearance

Component Reference source

Short Text profile

Short Text provider

10. Disable workflow for the Authoring Template and associate the presentation template just
created with this element.
11. Save and close the component.
12. The next few elements will define the source of the list and the list presentation. These
elements will be unique for almost any DDC list you create.

Chapter 7. Pattern 2: Putting social into context 201


13. Create an HTML component to be used as the Query URL for the list.

14. Populate the HTML element with the ResourceURL plugin statement defining the URL of
your web service then save and close the HTML component.
15. The list appearance is governed by the PZN component. Create a new PZN component
now.

202 Building and Implementing Social Digital Experiences


16. Give the component a name and save it.

17. The Personalization Element must contain a Select Pluggable Resources. Click on new
and modify as necessary. Save your rule.

Chapter 7. Pattern 2: Putting social into context 203


18. Complete the Header, Footer, Result, and No Results fields to contain basic HTML. For
more advanced list design, see 7.4.3, Customizing the Display of a DDC List on
page 207.

204 Building and Implementing Social Digital Experiences


19. Save and close the component.
20. Navigate to where in the WCM library you would like to create the content item that will
represent your list and create a new content item based on the Authoring Template
created earlier.
21. Give the content item a name and complete the four fields as defined in the table below
the figure:

Chapter 7. Pattern 2: Putting social into context 205


Item Value

List Appearance The PZN Component you created

source The HTML Component containing the Query


URL

profile ibm.portal.atom

provider ibm.portal.ddc.xml

22. Place the Web Content Viewer portlet on the intended page and configure it to render the
created piece of content. You will see your list.

206 Building and Implementing Social Digital Experiences


7.4.3 Customizing the Display of a DDC List
We will work with the example setup in the previous section 7.4.2, and change the interface
from a simple bullet list of item titles to a more appealing list with a formatted title, the item
content, and the author of each item.

Procedure
By replacing the markup in the PZN component with references to specific HTML
components, it is possible to build dynamic list elements which can be reused by more than
one list. In this example, we will create a list header, footer, and result HTML Components and
add them to the PZN component appropriately.

Assumptions:
All elements will be created in the same WCM library where the DDC list components
already exist.
A basic understanding of the WCM tagging interface and referencing components

Follow these steps:


1. Create a new HTML component to become the header markup. This will also contain a
STYLE tag that will have some style definitions for the other components. This could easily
be replaced with in-line style definitions in the tags, or with styles defined in a style sheet
that is referenced as well. This is the html of the Header component created:

<style>
.ddcIFSList{
list-style-type:none;
padding:0px;
margin:0px;
}

.ddcIFSItem{
margin-bottom:8px !important;
}

.itemTitle{
font-weight:bold;

Chapter 7. Pattern 2: Putting social into context 207


color:#00F;
font-size:12pt;
}

.itemContent{
font-weight:bold;
font-size:12pt;
}

</style>

<div>
<h1 class="ddcIFSTitle">Items for Sale</h1>
<ul class="ddcIFSList">

2. Create a new HTML component that will contain the markup for the footer.

</ul>
</div>

3. Place the markup for the result body in a third HTML component.

<li class="ddcIFSItem">
<div class="itemTitle">
[AttributeResource attributeName="title" separator=","]
</div>
<div class="itemContent">
[AttributeResource attributeName="content" separator=","]
</div>
<div class="itemAuthor">
<span>Author:</span><span style="color:#00c;">[AttributeResource
attributeName="authorName" separator=","]</span>
</div>
</li>

Note the references to the Atom feed elements. When adding the tags, be sure to select
Attribute Resource, and select the Atom Feed as the component. If your feed adheres to
the Atom feed specification, the elements you would want to work with should be present
already.

208 Building and Implementing Social Digital Experiences


4. Once complete, the list of components should look something like this:

5. Replace the markup in the PZN component with references to the three elements created.

Chapter 7. Pattern 2: Putting social into context 209


6. Save and close and review your redesigned list.

210 Building and Implementing Social Digital Experiences


7.5 Using IBM Connections as a platform
Although IBM Connections has many social business capabilities as well an attractive user
interface (both desktop and mobile), there are reasons why IBM Connections might be used
as a platform as opposed to a product:
Specialized use cases - There could be social business use cases that are very specific
to the organization. These use cases can be built using the services provided by IBM
Connections.
Targeted use cases - Value could be gained by providing only a small, powerful subset of
the functionality to end users in a customized way.
Social in context - There might be new, or existing business applications that could
benefit from social capabilities.
Cost of customization - The cost of customizing an entire IBM Connections installation
to suit an organizations requirements might be more expensive than building on top of the
IBM Connections platform.

IBM Connections offers a number of platform services to assist in these scenarios that
facilitate social objects and information being placed in a business context when the out of the
box components are not sufficient.

IBM Connections platform services


A number of different IBM Connections platform services are available. The business and
technology requirements will dictate which of these service types are most appropriate.

Chapter 7. Pattern 2: Putting social into context 211


IBM Connections REST APIs
The IBM Connections applications (Activities, Blogs, Bookmarks, Communities, Files,
Forums, Profiles, and Wikis) and the IBM Connections Home page all provide application
programming interfaces (APIs) that enable you to integrate them with other applications.
Using these interfaces, it is possible to programmatically access and update much of the
same information that is possible through the IBM Connections user interface.

Note: For more information, see the IBM Connections REST API documentation.

IBM Connections SPIs


IBM Connections provides Service Provider Interfaces (SPIs) to enable third parties to
integrate services and function into the IBM Connections product. Unlike the REST
Atom-based APIs, SPIs are Java-based and require some deployment and configuration
before they can be used.

Note: For more information, see the IBM Connections SPIs documentation.

IBM Connections OpenSocial APIs


There are a number of REST APIs that can be used to interact with the Open Social APIs
implemented and extended by IBM Connections. One such API is that of the Activity Stream
which is based on the OpenSocial implementation of the Activity Stream. Other important
APIs are those for microblogging and people.

Note: For more information, see the IBM Connections OpenSocial API documentation.

Implementing different user interface technologies to realize use cases


Essentially any technology that can invoke REST services can utilize the IBM Connections
APIs to create the eventual user interface to realize the social business use case. Some
examples include:
JSR-286 Portlets (and the new scripting portlets).
OpenSocial Gadgets
iWidgets
IBM Worklight mobile applications
.Net desktop and web applications (For example MS Dynamics CRM)
PHP applications (For example Sugar CRM)

Examples of IBM Connections as a platform in this guide


There are a number of examples where the IBM Connections platform services are used in
this guide.
Extending a WCM activity post using an OpenSocial Gadget - See 8.3.1, OpenSocial
Gadget use case scenario on page 256.
Using a Scripting portlet to upload a file from WebSphere Portal to IBM Connections - See
9.2.4, Implementing the social business scenario using IBM Script portlets on page 277.

Additional reference

For more information, see:

Using IBM Connections more as a platform than an application - Part One

212 Building and Implementing Social Digital Experiences


7.6 Using third party social credentials to log into your social
website
IBM WebSphere Portal Server, since Version 7, allows users to log into websites built on the
WebSphere Portal platform using social credentials that they have created on public social
networks such as Facebook, LinkedIn, and Twitter. Authentication and authorization protocols
such as OpenID, OAuth and SAML enable this capability and provide advantages to both the
end user and the organization. This section provides a brief overview of these protocols and
describes the advantages (and potential pitfalls) of using social credentials for authentication
and authorization on a social portal. The section concludes with references to instructions for
setting up social login capabilities on the IBM WebSphere Portal platform.

Social authentication and authorization protocols


There are several industry standard protocols that allow for federated identity management.
Federated identity management allows users to authenticate into and/or allow access to their
private resources on a site without that site storing their credentials, or even providing the
user with a login mechanism hosted on the site. Instead, the site will allow access to the user
if they are authenticated by an identity management system that the target site trusts.

OpenID
OpenID is an open industry standard sponsored by Facebook, Microsoft, Google, and Yahoo
(among others) that allows a user to be authenticated on a site using third-party
authentication services called identity providers.

OAuth
OAuth is also an open industry standard but differs from OpenID in that it is used for
authorization not authentication. With OAuth, the user owns the resource that the target site
(OAuth Consumer) would like to access from the site hosting the resource (OAuth Provider).
The user has to authorize the OAuth Consumer in order for access to be granted the user's
resource.

Security Assertion Markup Language (SAML)


SAML is an XML based standard, driven by the OASIS Security Services Technical
Committee, that facilitates the exchange of authentication and authorization information
between parties. A user (Principal) who wishes to validate their identity on a website that
doesn't store their credentials (Service Provider) does so by providing their credentials
managed by an another system (Identity Provider). This requires that the Identity Provider
and the Service Provider trust each other and that authentication and authorization
information passed between them is agreed upon and securely transported.

Advantages of using social credentials for a website


There are a number of benefits for both the user and the organization when social credentials
are utilized on a website for authentication and authorization purposes.

The advantages for the end user:


Less credentials to manage and remember.
No need to complete another website registration process.
Allowing access by the website to resources hosted on other sites that could add
increased and more targeted functionality (when using OAuth).

Benefits for the organization include:

Chapter 7. Pattern 2: Putting social into context 213


No need to develop and maintain user authentication and user credential management
capabilities (reset password, account lockout after failed login attempts, etc).
Easy access to important social objects such as user status updates and profiles (when
using OAuth).
The organization is not accountable for the secure hosting of the user credentials.
Infrastructure and space to store user credentials is not required.

Disadvantages of using social credentials for a website


No approach is without some disadvantages. Allowing a user to use social credentials to
access an organizations website is no exception.

Disadvantages for the end user:


Having to create an account on a third party website (if the user doesn't already have one)
can be an effort and confusing.
The end user might not feel comfortable sharing (or creating) a user account with a third
party website and would therefore be unable to access the site if no other options are
available.

Disadvantages for the organization:


Dependency on a third party system - If the authentication/authorization system is
unavailable for any reason, so is the organizations website.
Logic will be required on the organizations website if the end user will be allowed to use
more than one authentication/authorization provider.

Taking these disadvantages into account, the organization must weight up the benefits
against the disadvantages when deciding whether to allow a user to use social credentials on
their website. It might well be that that having support for social and organization credentials
is the best option.

Using social credentials to allow access to a website built on IBM


WebSphere Portal server
IBM WebSphere Portal server allows a user the means to use their social credentials to
access web content and applications built on that platform. After deciding whether this
approach is beneficial to the organization, there are a number of steps that must be followed
to use this capability.

This capability was not available as part of a standard portal installation until Version 8.0. The
link below provides details on downloading, installing, and configuring this social credential
login capability on WebSphere Portal Version 7:

How to Configure and Use OpenID, Facebook integration on WebSphere Portal

Note: Detailed instructions for Configuring this capability on WebSphere Portal Version
8.0.0.x is provided below:

Integrating with OpenID authentication

214 Building and Implementing Social Digital Experiences


7.7 When you stay within Portal and when you need to step out
of Portal
All IBM Connections Summary and Details portlets and also IBM Connections content
searched in the portal search center gives a capability through which the user can navigate to
either the details portlet deployed on portal pages or to IBM Connections web user interface.

Usually in any business-to-business (B2B) scenario, user may be allowed to navigate to


Connections web UI and in business-to-consumer (B2C) scenario, navigation to web UI may
be restricted (which is the default setting of portlets).

Configuring the navigation behavior to IBM Connections web UI or


portlets
The piece of content (POC) resolver handles navigation in following manner.
If the piece of content is community content:
Search the community page for a detail portlet to render the content.
If no static community page is found, search for a stand-alone page.
If no stand-alone page is found, navigate to an error page (if defined).
If the piece of content is from a stand-alone page rather than from a community:
Search the stand-alone page for a detail portlet to render the content.
If no stand-alone page is found, navigate to an error page (if defined).

There are additional parameters to control the navigation of the POC resolver as defined in
the documentation. You can configure and customize certain aspects related to navigation
like error page unique name, stand-alone pages unique name etc. by editing the resource
environment provider.

Note: For details, see Configuring a resource environment provider for POC.

Configuring Connections web UI navigation in Details portlets


While navigating to any Details portlet on almost every relevant view, you will see a navigation
icon at the right top corner of the portlet view as below.

Chapter 7. Pattern 2: Putting social into context 215


This behavior for navigation to web UI is controllable from the configurations screen of each
Details portlet as below:

216 Building and Implementing Social Digital Experiences


Configuring Connections web UI navigation in Summary portlets
All Summary portlets can operate in two mode, those that can be set to display detailed data
within the portal or those that can be configured to display that same data on IBM
Connections web UI.

This navigation behavior from summary to details is configurable through the portlet
configuration screen.

From Configuration screen, by selecting option to Display link to open IBM Connections in
a browser window allows user to navigate to IBM Connections web UI instead of navigating
to corresponding Details portlet.

Chapter 7. Pattern 2: Putting social into context 217


218 Building and Implementing Social Digital Experiences
8

Chapter 8. Pattern 3: Making WCM


authoring social
IBM Web Content Manager (WCM) authoring processes can be integrated with social
facilities offered by IBM Connections, in order to make the authoring process more effective.
WCM authoring tools are increasingly central to the management of the websites produced
by WebSphere Portal - managed pages is based on WCM - and so social integration of the
WCM authoring process is an important part of a social portal.

In this section, we consider two main patterns as summarized below and action a workflow
action request:
1. Publishing content to from WCM to IBM Connections using Social Media Publisher
In the first pattern, we use the Social Media Publisher to publish short article summaries to
Connections, with a link back to the WCM content. This tool can also be used to publish to
Facebook, Twitter and LinkedIn but we do not cover those cases in this guide.
2. Sending a WCM Workflow Notification to Connections Activity Streams
In the second pattern, we demonstrate how to use a WCM custom workflow action to post
an approval notification to nominated content approvers Connections Activity Streams.
3. Action a Workflow Action Request via an Embedded Experience Open Social Gadget
In this sub-section, we discuss how to extend publishing workflow notifications to the a
user's activity stream with the use of OpenSocial Gadgets.

Copyright IBM Corp. 2014. All rights reserved. 219


8.1 Publishing content from WCM to IBM Connections using
the Social Media Publisher
In this section, we use the Social Media Publisher to publish short article summaries to IBM
Connections, with a link back to the WCM content. This tool can also be used to publish to
Facebook, Twitter and LinkedIn but we do not cover those cases in this guide.

It is important to understand that the Social Media Publisher explicitly defines relationships
between specified authoring templates and specified social media accounts. Each
relationship defines what is to be posted, the content which can contain WCM elements,
components and so on (subject to length and markup limitations of the post to be made).
Many relationships can be set up, but each must be defined explicitly and so, especially in a
large website. This requires some planning.

The considerations are:


Which types of content should be published in social media channels?
At which stages of the content lifecycle should the content be posted? Should those posts
be deleted when the content expires?
What should be published about each type of content, to each social media channel?
Which accounts should be used to publish the content?

You may consider creating service accounts in each social media channel to represent your
organization.

This section describes the installation and configuration of the Social Media Publisher in a
simple scenario where we wish to publish event notifications (from the CTC demo website) to
IBM Connections. The process for configuring publication to Twitter, Facebook and LinkedIn is
similar, and the steps to create authentication credentials for those sites are described in the
Social Media Publisher product documentation.

In our scenario, Heather Reeds, a marketing manager, wishes to publish notifications of new
events to her IBM Connections blog. We will use the IBM Content Template Catalog (CTC)
demonstration site to achieve this, adding Social Media Publication to the Event authoring
template.

Many of steps in this section are described in detail in the product documentation. This
section only gives a summary of that documentation, rather than repeating the information
that is already published.

This section describes how to publish content to and from WCM to IBM Connections using
Social Media Publisher.

We cover the following topics (steps) in the subsections:


8.1.1, Installing and configuring Social Media Publisher on page 221
8.1.2, Configuring credential vault and Social Media Publisher global settings on
page 222
8.1.3, Setting up Social Media Publisher for Events authoring template on page 226
8.1.4, Adding Social Media Publisher actions to WCM workflow on page 229
8.1.5, Test publication process and see the results on page 233

A number of related topics are not covered by this documentation:


Publication to Twitter, Facebook, or LinkedIn
Creation and management of service accounts

220 Building and Implementing Social Digital Experiences


Manipulation of publication schedules (i.e. timed workflow actions)

8.1.1 Installing and configuring Social Media Publisher


Since WebSphere Portal v8.0.0.1, Social Media Publisher is included in the product
installation and must be enabled using configuration engine tasks. This process is described
in the product documentation.

Creating Social Media Publisher configuration for IBM Connections


Before proceeding with the configuration, check that the target Social Media server is
accessible from the Portal server. Customer environments frequently employ proxies and
sites such as Facebook and Twitter are often subject to access restrictions. The Social Media
Publisher documentation contains some information about setting up proxies if that is
required. In our use case scenario, we have no access to the internet but the Portal and
Connections servers can ping each other directly without any proxy.

Importing Connections server certificate


Follow these steps:
1. Log on to the WebSphere Integrated Solutions Console for the portal server, and import
the certificate. In our case this was located at:
https://portal.demos.ibm.com:10032/ibm/console
2. From the Integrated Solutions Console home page, navigate to: Security > SSL
certificate and key management > Key stores and certificates >
NodeDefaultTrustStore > Signer certificates.

3. Click Retrieve from port. On the form that appears, enter the server details and click
Retrieve signer information. If the connection is successfully established, the result will
be something like the form shown below.

Chapter 8. Pattern 3: Making WCM authoring social 221


4. Click OK to save the configuration. The configuration is applied immediately without any
need to restart the server.

8.1.2 Configuring credential vault and Social Media Publisher global settings
As noted in the introduction to this section, the Social Media Publisher establishes links
between specific WCM authoring templates and specific social media accounts. In this
scenario we are going to publish event newsflashes to the Connections account of Heather
Reeds, a marketing manager. To do this, we first need to create a portal credential vault slot
to hold Heather Reeds' account credentials.

To create the credential vault slot:


1. Navigate to the portal Administration pages as a portal administrator.
http://portal.demos.ibm.com:10039/wps/myportal/Administration
2. In the left-hand menu, under the Access section, choose Credential Vault, which results
in the following screen.

222 Building and Implementing Social Digital Experiences


3. Click Add a vault slot, which gives a form to create a new credential vault slot. The form
should be filled in similar to the screen shot below.

The net result is that Heather Reeds' credentials are stored in Portal so that the Social
Media Publisher can post, as Heather, to Connections. This is a technical and operational
reasons that using a service account may be preferable, since password changes on the
Heather Reeds' account need to be updated into the Credential Vault slot.
We also need to follow the same process to create a further credential vault slot for
updating content via the custom workflow actions that are supplied with the Social Media
Publisher. The user requires edit access to all content that will be posted via the workflow
actions. In our case, we will just use "wpadmin" and create a credential vault slot called

Chapter 8. Pattern 3: Making WCM authoring social 223


"socialWorkflowUser" (note that this is not the default, done to illustrate the use of the
global settings document). The similar form can be filled to create a credential vault slot for
wpadmin user id.

Creating global settings document


From here on, all Social Media Publisher configuration will be undertaken using WCM tools -
configuration objects are stored in the "Social Configuration" library that was created as part
of Social Media Publisher installation.

In this library, we now need to create a global settings document. To do this:


1. Navigate to the Social Configuration library. This is done by navigating to WCM:
Applications Content Web Content Management.
2. Select the library in the library explorer. If you cannot see the library in the library explorer,
you either do not have permission to access it or you have not added the library to your
view of the portlet (this can be changed in the Preferences menu on the left).
3. Once in the Social Configuration library, navigate to Components and you will see a text
component containing settings references.

224 Building and Implementing Social Digital Experiences


4. Open the Global Settings Reference component and click Edit. Before making any
changes, click Save As... and save the component with the name "Global Settings"
(without quote marks). Do not forget to change the "Localizations" on the display title,
either remove the configured text provider all together or select a different text provider.

5. Click OK. In the edit dialog that appears, we now have a modifiable text component that
contains properties to control a number of items:
The servers on which the Social Media Publisher should actually publish to social
networks
Administrative information about the credential vault used for custom workflow actions
Default templates for blog, wiki and status update post
6. In our case, we make two changes to this text component but otherwise leave the rest as
given in the defaults:

Chapter 8. Pattern 3: Making WCM authoring social 225


actions.post.credentialvault=socialWorkflowUser
socialTable.showFullRefreshButton=true

The first property simply gives the name of the credential vault slot we created with a
content administrator in the previous step. The second property allows us to manually
trigger a full refresh of likes, comments and so on. This is to be used with caution,
guidance is given in the configuration itself.
7. Save and close the document.

8.1.3 Setting up Social Media Publisher for Events authoring template


As mentioned earlier, the Social Media Publisher establishes a link between a particular
authoring template and a particular social network. This section describes the set-up of social
media publisher to link the Events authoring template and Heather Reeds' connections
account.

Create configuration document


The configuration of the Social Media Publisher uses WCM content and components in the
"Social Configuration" content library. To work with the configuration, follow these steps:
1. Navigate to the WCM library explorer and select the Social Configuration library.

Note: Note you must do this as a user with permission to create and edit content in this
library

226 Building and Implementing Social Digital Experiences


2. Create a new social network configuration document. In the Social Configuration library,
select New Content Select from all Content Templates, as shown below. If you
have recently created a social network configuration, you may see the relevant authoring
template directly in this menu.

3. In the dialog that appears, select the template Social Network Configuration. If you are
using the portal in a supported language other than English, you may see a localized title
for this authoring template. When you have selected an authoring template, the new,
blank, social network configuration content item will appear.
4. The complete authoring template is shown below. In this image, you can see that we have
populated the name and title of the configuration document, and entered the host name of
the portal server that will be used in URLs generated in the Connections posting.
Following this image, we zoom in on the social network information section and how to
populate it.

Chapter 8. Pattern 3: Making WCM authoring social 227


5. The social network information section is configured by selecting the type of social
network you wish to configure. In our case, we select IBM Connections. Select the name
of the credential vault slot we created earlier and click Authorize. The result is shown
below.

The radio button "Type" in IBM Connections Properties allows us to control where we wish
to post content. The message is populated with the default text from the global settings
document created in the previous article.

228 Building and Implementing Social Digital Experiences


6. In our scenario, we wish to over-ride this setting with a more personalized message, so we
use the Insert tags link to insert WCM authoring tags as normal. Since this configuration
is going to be applied to the Event authoring template, we can use content elements from
that template in our message. We configure the message so that our messages will
resemble:

We've got an exciting new event called IBM Connections Demo is scheduled at IBM EGL Lab,
Bangalore starting on March 21,2014 at 10AM.

See more:
The configuration used to achieve this is show here:

The WCM Element and URLCmpnt tags are not manually inserted, but created using the
"Insert Tags" link in line with standard WCM practice.
7. The Social Network Configuration must also be assigned to a WCM authoring template.
This is done in the next section of the authoring template. In our example, we wish to
associate publication to Heather Reeds' message board to the Events authoring template
and so we simply select that template, with the end result as show here.

8. With this is done, save and close the Social Network Configuration document.

8.1.4 Adding Social Media Publisher actions to WCM workflow


In this scenario, we will add a simple publish action to the default Content Template Catalog
(CTC) workflow, the effect of which will be that when an event is published by the workflow, a
message will appear on Heather Reeds' connections profile as per the Social Network
Configuration document created in the previous article.

In the earlier section, we created a credential vault slot called socialWorkflowUser, which
contains an administrative user with rights to edit access to all content that will be posted to
Connections.

Chapter 8. Pattern 3: Making WCM authoring social 229


To achieve this configuration, we will:
Create custom workflow actions to post and delete
Add those workflow actions to a workflow

The WCM workflow that we will customize is shown in the flowchart below.

Creating custom workflow actions


To customize this workflow, we require one custom workflow action:
Post to social networks

To do this we need to select the library in which we want to create the custom workflow action.
Follow these steps:
1. Go to CTC Demo WCM library, select New Workflow Actions Custom Action.

2. In the form that appears, click Select Action and choose the desired social media
publisher action. The custom workflow actions are installed by the Social Media Publisher
and several basic actions are supplied:
Delete - deletes a linked post from the specified social network (where supported)
Delete All - deletes a linked post from all configured social networks (where supported)
Next Stage - not used
Post - creates a linked post in the specified social network
Post All - creates a linked post in all configured social networks (where supported)
Untrack - removes the link between the WCM content item and the social network post
for the specified social network
Untrack All - removes the link between the WCM content item and the social network
post for all configured social networks

230 Building and Implementing Social Digital Experiences


3. For our custom workflow action, we opted the following values.
Post to social networks - We use Post All.

The action "date type" must be set correctly, too. The value should be Custom Action
Date so that custom logic in the workflow action executes to post to the social networks
shortly after the content is published.

Chapter 8. Pattern 3: Making WCM authoring social 231


4. Once completed, click Save and Close.

Adding custom workflow action to a workflow stage


Adding the custom workflow action to a workflow stage is straightforward and can be
achieved by opening the desired workflow stage and adding the custom workflow action to
the configuration.

Follow these steps to add custom workflow action to a workflow stage:


1. Add the action we created above to the stage Publish Stage in the "CTC Process" library.
To do this, we open the stage and click Edit, which results in the form shown below.

2. To add the custom workflow action to the stage, select Add Workflow Actions in the Run
on Entering Stage section. If you have recently worked with the custom action, it may
appear in the drop-down menu on the form. Otherwise, click the Add Workflow Actions
link and select the custom action in the resulting dialog as shown below.

232 Building and Implementing Social Digital Experiences


This results in the workflow action being added to the bottom of the list of actions to
execute, as shown below.

This order should be retained, so that the "Post to all social networks" action executes on
the published content. If the social networks action is before the published action, the
content will still be draft when the social media publisher fires. For draft content items to be
posted, the Enable Posting for Draft Documents check box must be selected in the
Social Network Configuration document.
3. Save and close the workflow stage.

8.1.5 Test publication process and see the results


This section walks through the content creation and publication process, including publication
to IBM Connections. It assumes that the steps described in the previous 4 sections have been
carried out.

In the scenario described in those previous ones, we created a Social Media Publisher
configuration for the Events authoring template, and added publication to the Content
Template Catalog (CTC) workflow so that a message is posted to Heather Reeds' wall when
the content item is published in WCM. Options existed for publishing in other ways, too.

Creating an event via WCM in-line editing


Follow these steps to create an event via WCM in-line editing:

Chapter 8. Pattern 3: Making WCM authoring social 233


1. To begin with, navigate to the CTC Demo page in Portal and select Program
Development track.
2. Click Edit Mode in the toolbar at the top of the page, and in-line edit tools become
available.
3. To create a new event, select the Create New Development Track Item at the top of the
content section of the page and enter a new event title as "IBM Connections Demo", as
shown below.

4. Click Create. We are presented with a new event that we can edit directly in the portal
page, as shown below. The new Portal 8.0.0.1 and CTC4 in-line editing tools allow us to
modify the event content without entering the WCM authoring environment.

We use these tools to fill in the event details, remembering that our Social Network
Configuration document specifies that the Summary, Location and Start Date will appear
in the posted message. This view does not, however, allow us to see the social network
configuration for the content item.
5. Hover the mouse over the article, additional options are presented in a call-out to view the
full article in WCM edit mode:

234 Building and Implementing Social Digital Experiences


Selecting the options Open Read Form or Open Edit Form allows the user to see the
Social Network Information section of the authoring template. At this time, no post has
been published so the information available is relatively sparse.

Publishing the content item and see the results in Connections


By default, the content item will be saved in a draft state and a content approver would be
required to approve the content. However in this case, as we have appropriate rights, we can
save and publish the content item as shown in the image below.

The resulting post in Connections is shown below.

Chapter 8. Pattern 3: Making WCM authoring social 235


The Social Network Information panel tracks comments and likes on the status message,
which can be tracked directly within WCM as shown below.

8.2 Sending a WCM workflow notification to Connections


Activity Streams
Traditionally, we have used email to notify IBM Web Content Manager (WCM) users that there
is content requiring their attention. With the rise of social business tools such as IBM
Connections, the role of email is changing and so it is attractive to use the Connections
Activity Stream as an alternate notification mechanism. In this way, a user will see approval
notifications from WCM alongside other social content, and be able to take action, without
leaving their Activity Stream.

This section and the next one describe how to create such a solution:
This section describes how we can use a WCM custom workflow action to send approval
notifications to the Connections Activity Stream of relevant users.
The following section describes how to create an OpenSocal Gadget that allows the user
to approve or reject the content item, without leaving the activity stream.

236 Building and Implementing Social Digital Experiences


This approach could be used in a variety of other implementations, such as notifying
subscribers of a news feed update or informing a marketing department of a piece of
feedback that has been posted to their web site.

Note that this scenario is different from that discussed in the previous section. In the previous
case, the social media publisher is used to publish content to Connections for general
consumption. In this case, we are privately publishing workflow notifications to selected
content approvers.

This section describes the development and configuration of a custom workflow action in a
simple scenario where we wish to send notifications to IBM Connections Activity Streams.

In our scenario, We use portal administrator (the user ID is wpadmin8) to create a workflow
that leverages Connections Activity Streams as a channel for approval request notification.
The portal administrator develops a custom workflow template that generates a JSON object
which is posted to Connections and distributed to the content approver(s).

Many of the steps in this section are described in detail in the product documentation. This
section only gives a summary of that documentation, rather than repeating the information
that is already published:

We cover the following topics in the subsections:


8.2.1, Prerequisites
8.2.2, Creating a workflow action class for posting to an Activity Stream on page 239
8.2.3, Adding the custom action to a WCM workflow on page 247
8.2.4, Testing the approval notification on page 252

8.2.1 Prerequisites
By default, IBM Connections only lets users post to their own Activity Stream. However, our
custom workflow action needs to post events to any approver's activity stream. In order to
post to a user's Activity Stream, we first need to configure the trustedExternalApplication
role within the Connections WidgetContainer application.

Assign a user to the WidgetContainer trustedExternalApplication role.

This can be done by following these steps:


1. Log in to the WebSphere Admin Console which hosts the Connections WidgetContainer
application.
2. Choose Applications Application Types WebSphere Enterprise Applications.
3. On the Enterprise Applications screen, click the WidgetContainer link.
4. In the Configuration screen under the Detail Properties section, click the Security role to
user/group mapping link.

Chapter 8. Pattern 3: Making WCM authoring social 237


5. On the Security role to user/group mapping screen, select the check box next to
trustedExternalApplication in the table and click the Map Users... button.

6. On the Map users/groups screen, enter the user name of the user to whom you wish to
add the role in the Search string field and click Search.
7. Select the user in the Available list box and click the right arrow button to add them to the
Selected list box.

238 Building and Implementing Social Digital Experiences


8. Click OK to apply the changes.
9. Click OK on the Security role to user/group mapping screen:

10. Save changes to the master configuration.


You have successfully assigned a user,"wpadmin8" to the trustedExternalApplication
role within the Connections WidgetContainer application. In the next subsection, we
create a custom IBM WCM workflow action class that posts to an IBM Connections
Activity Stream.

8.2.2 Creating a workflow action class for posting to an Activity Stream

Creating a custom workflow action


We first need to build a custom action that will be invoked by the WCM workflow, when a
piece of content enters the Approval stage.

Note: For detail information about creating a custom workflow action, refer to the product
documentation: Creating a custom workflow action class.

Within the workflow action class we need to do three things:


1. Test whether the document in the workflow is an instance of Content
2. Build a JSON object representation of the Content
3. Post the JSON to the approver's Activity Stream

Testing we have a Content item


Workflow actions can be invoked by WCM artifacts other than a Content item, e.g. templates,
components. We want to ensure that we are only posting a Content item to the Activity
Stream.

Chapter 8. Pattern 3: Making WCM authoring social 239


Example:
import java.util.Date;
import javax.naming.InitialContext;
import com.ibm.workplace.wcm.api.Content;
import com.ibm.workplace.wcm.api.WebContentCustomWorkflowService;
import com.ibm.json.java.JSONObject;
import com.ibm.workplace.wcm.api.Document;
import com.ibm.workplace.wcm.api.custom.CustomWorkflowAction;
import com.ibm.workplace.wcm.api.custom.CustomWorkflowActionResult;
import com.ibm.workplace.wcm.api.custom.Directive;
import com.ibm.workplace.wcm.api.custom.Directives;
public class SampleCustomWorkFlowAction implements CustomWorkflowAction {
@Override
public CustomWorkflowActionResult execute(Document arg0) {
// TODO Auto-generated method stub
AbderaUtils utils = new AbderaUtils();
WebContentCustomWorkflowService webContentCustomWorkflowService = null;
CustomWorkflowActionResult result = null;
Directive directive = Directives.CONTINUE;
String message = "Action succesfully executed";

// UserId and Password for posting the WCM content to IBM Connections Activity
Stream.
String user = "wpadmin8";
String passw = "passw0rd";
if (arg0 instanceof Content) { // Test for instanceof Content
try {
Content wcmItem = (Content) arg0;
// create activity stream formatted JSON
JSONObject json = CreateJSON.createFromWCMContent(wcmItem);

utils.doPostBasic("https://connection/connections/opensocial/basic/rest/activityst
reams/@me/@all",json.toString(), user, passw);
} catch (Exception e) {
e.printStackTrace();
}
}
try {
InitialContext initContext = new InitialContext();
webContentCustomWorkflowService = (WebContentCustomWorkflowService)
initContext.lookup("portal:service/wcm/WebContentCustomWorkflowService");
} catch (Exception ex) {
ex.printStackTrace();
}
result = webContentCustomWorkflowService.createResult(directive, message);
return result;
}

@Override
public Date getExecuteDate(Document arg0) {
// TODO Auto-generated method stub
return null;
}

240 Building and Implementing Social Digital Experiences


}

Retrieving information from the content item


The CreateJSON.createFromWCMContent() call in the above listing refers to a method that
retrieves relevant content components from the WCM Content object and turns the output into
an Activity Stream-formatted JSON document.

First we will grab some of the content from the article. In this example, we are retrieving the
Summary and Body text as RichTextComponents, showing some identification information
and adding links to read, approve or reject the content using a GET request. In the next
chapter, we will use the WCM REST API to approve/reject the content in an embedded
gadget.

The content will be returned as HTML code, which we will inject into the activity stream as rich
content.

import com.ibm.json.java.JSONArray;
import com.ibm.json.java.JSONObject;
import com.ibm.workplace.wcm.api.Content;
import com.ibm.workplace.wcm.api.RichTextComponent;
import com.ibm.workplace.wcm.api.exceptions.AuthorizationException;
import com.ibm.workplace.wcm.api.exceptions.ComponentNotFoundException;
import com.ibm.workplace.wcm.api.exceptions.PropertyRetrievalException;

import java.util.Date;
import java.util.HashMap;
public class CreateJSON {

public static JSONObject createFromWCMContent(Content wcmItem) {

JSONObject generator = new JSONObject();


generator.put("id", "WCMASDemo");
generator.put("displayName", "WCM Activity Stream DEMO");
JSONObject actor = new JSONObject();
actor.put("id", "@me");
JSONObject object = new JSONObject();
object.put("summary", "A web content item requires your approval");
object.put("objectType", "article");
object.put("id", "note1");
object.put("displayName","12345");

JSONObject connections = new JSONObject(); //Connections object


connections.put("actionable", "true"); // Adds the activity to the Action
Required stream
connections.put("broadcast", "true");

JSONObject json = new JSONObject();


json.put("connections", connections);
json.put("generator", generator);
json.put("actor", actor);
json.put("object", object);
json.put("verb", "post");
json.put("title", "A Web Content Approval Request Event");
// Get the content from WCM

Chapter 8. Pattern 3: Making WCM authoring social 241


String contentStr = CreateJSON.getWCMContent(wcmItem); // Get content from the
WCM document
json.put("content", contentStr);

JSONArray toArray = new JSONArray();


JSONObject toMe = new JSONObject();
toMe.put("objectType", "person");
//Heather Reeds uuid. If it is multiple approver, retrieve the userid and store
it in JSON array.
toMe.put("id","f10e17b4-d48c-469c-9833-1ea6fc7d6796" );
toArray.add(toMe);
json.put("to", toArray); //Array of user to distribute this activity to.
// Embedded Experience reference to gadget context. Add fields in here for the
embedded gadget to reference
String itemuuid = wcmItem.getId().getId();
JSONObject context = new JSONObject();
context.put("id", "12345");
context.put("summary", "A web content item requires your approval");
context.put("user", "hreeds");
context.put("uuid", itemuuid);
context.put("content", contentStr);
// Do the gadget embed
JSONObject embed = new JSONObject();
embed.put("gadget", "http://connection/wcm_approval.xml");
embed.put("context", context);
JSONObject social = new JSONObject();
social.put("embed", embed);
//End of gadget embed
json.put("openSocial", social);
return json;
}
public static HashMap<String, String> setupContent(Content wcmItem) {
HashMap<String,String> m = new HashMap<String,String>();
try {
Date now = new Date();
m.put("title", "Some content requires your approval.");
StringBuffer summaryBuf = new StringBuffer();
summaryBuf.append("<b>WCM Content Approval</b> Added to the activity stream at
"+ now);
summaryBuf.append("<br />The content is in workflow <i>"+
wcmItem.getWorkflowId().getName()+ "</i> and in stage <i>");
summaryBuf.append( wcmItem.getWorkflowStageId().getName() + "</i>");
m.put("summary", summaryBuf.toString());
m.put("id", wcmItem.getId().getId());
m.put("displayName", wcmItem.getTitle());
m.put("url", "http://portal:10039"+ "/wps/myportal/wcmAuthoring");
m.put("approveURL",
"?wcmAuthoringAction=approve&docid=com.ibm.workplace.wcm.api.WCM_Content/" +
wcmItem.getId().getId());
m.put("declineURL",
"?wcmAuthoringAction=decline&docid=com.ibm.workplace.wcm.api.WCM_Content/" +
wcmItem.getId().getId());

m.put("readURL","?wcmAuthoringAction=read&docid=com.ibm.workplace.wcm.api.WCM_Cont
ent/" + wcmItem.getId().getId());

242 Building and Implementing Social Digital Experiences


StringBuffer contentBuf = new StringBuffer();
contentBuf.append("<p><b>Title: </b>");
contentBuf.append(wcmItem.getTitle());
contentBuf.append("<p><b>Description: </b>");
contentBuf.append(wcmItem.getDescription());
try{
contentBuf.append("<p><b>Content summary: </b><br/><div class=\"richtext\"");
RichTextComponent cc = (RichTextComponent) wcmItem.getComponent("summary");
contentBuf.append(cc.getRichText()).append("</div></p>");
RichTextComponent rtc = (RichTextComponent) wcmItem.getComponent("body");
contentBuf.append("<p><b>Content Body</b><br/><div
class=\"richtext\">").append(rtc.getRichText()).append("</div></p>");
}catch(ComponentNotFoundException cnfe){
System.out.println("Content component not found.");
}
m.put("content", contentBuf.toString());
} catch (AuthorizationException e) {
e.printStackTrace();
} catch (PropertyRetrievalException e) {
e.printStackTrace();
}
return m;
}
public static String getWCMContent(Content wcmItem) {
HashMap<String,String> c = setupContent(wcmItem);
StringBuffer wcmContentBuffer = new StringBuffer("<p class=\"stream_title\">");
wcmContentBuffer.append(c.get("title"));
wcmContentBuffer.append("</p><hr /><p class=\"content_body\"");
wcmContentBuffer.append(c.get("content"));
wcmContentBuffer.append("</p><hr /><p class=\"summary\">");
wcmContentBuffer.append(c.get("summary"));
wcmContentBuffer.append("</p><hr />");
wcmContentBuffer.append("<p><a href=\"");
wcmContentBuffer.append(c.get("url"));
wcmContentBuffer.append(c.get("readURL"));
wcmContentBuffer.append("\">Click here to view the content item </a>");
wcmContentBuffer.append("</p><p><a href=\"");
wcmContentBuffer.append(c.get("url"));
wcmContentBuffer.append(c.get("approveURL"));
wcmContentBuffer.append("\">APPROVE this content</a>");
wcmContentBuffer.append(" | <a href=\"");
wcmContentBuffer.append(c.get("url"));
wcmContentBuffer.append(c.get("declineURL"));
wcmContentBuffer.append("\">REJECT this content</a>");
wcmContentBuffer.append("</p>");
String wcmContent = new String();
wcmContent = wcmContentBuffer.toString();
return wcmContent;
}
}

Getting the approver IDs from Connections


Next, we need to identify the user(s) that are authorized to approve the content. These users
will receive the approval notification in their activity streams.

Chapter 8. Pattern 3: Making WCM authoring social 243


In this example we are issuing a profile search against the approvers name (Heather Reeds);
this will return a feed that contains her profile data, from which we can extract her
Connections userid (if she has one) with an XPath evaluation or downloading her profile
vCard file. Note that this example doesn't accommodate approval groups, neither does it
consider multiple responses from the profile search.

Building the JSON object representing the content


We have some content and know who to post the notification to, so we now need to build the
JSON objects for posting to Connections. Refer createWCMContent method in CreateJSON
java class mentioned in the above section.

Our JSON object


Now we have built our JSON activity document. In its simplest form, an activity consists of an
actor, a verb, an object, and a target. It tells the story of a person performing an action on or
with an object, in our example "wpadmin8" submitted a new content item for approval" is our
activity.
The actor is the entity performing the activity, in this case it is the user given
trustedExternalApplication rights above.
The verb is a post: we are posting to the activity streams
The object defines the type of content being posted: a content article
The target is the Connections activity stream of the content approver(s). We want the
notification to appear in the approver's "Action Required" stream, so we set "actionable" to
"true" within the "connections" object.

Note that Connections expects the "to" object to contain user IDs in the internal format. This
was retrieved from Heather's profile.

The JSON object we post in this example looks like this:

{"generator":
{

id":"WCMASDemo","displayName":"WCM Activity Stream DEMO",

"url":"http:\/\/www.ibm.com"},

"actor":{"id":"@me"},

"connections":{

"actionable":"true",

"broadcast":"true"},

"openSocial":{

"embed":{

"gadget":"http:\/\/connection.reactivebus.com\/wcm_approval.xml",

"context":{

"var1":"data1",

244 Building and Implementing Social Digital Experiences


"user":"hreeds",
"content" : "<CONTENT STRING>"

"uuid":"<content item uuid","id":"12345"}}},

"title":"A Web Content Approval Request Event",

"content":"<p class=\"stream_title\">Some content requires your approval.<\/p><hr


\/>

<p class=\"content_body\"<p><b>Title: <\/b>Schedule announced. Registration now


open!<p>

<b>Description: <\/b>The Experience schedule has been announced. Registration now


open!

[remainder of the content] ...",

"to":[

"objectType":"person",

"id":"<Heather Reeds UUID">

],

"verb":"post",

"object":{

"summary":"A web content item requires your approval",

"objectType":"article",

"id":"note1",

"displayName":"12345",

Posting the JSON to the Connections Activity Stream


The doPostBasic method in AbderaUtils sends the JSON document to the Connections
server. This example uses Apache Abdera as a REST client to send our JSON object to the
Connections server. Our user account,"wpadmin8" configured to post content to Heather
Reeds activity stream. so our URL looks like this:

import org.apache.abdera.Abdera;

Chapter 8. Pattern 3: Making WCM authoring social 245


import org.apache.abdera.protocol.client.AbderaClient;
import org.apache.abdera.protocol.client.ClientResponse;
import org.apache.abdera.protocol.client.RequestOptions;
import org.apache.commons.httpclient.UsernamePasswordCredentials;
import org.apache.commons.httpclient.methods.InputStreamRequestEntity;

import java.io.*;
import java.net.URL;

public class AbderaUtils {

private static Abdera abdera = null;

public static synchronized Abdera getInstance() {

if (abdera == null) {
abdera = new Abdera();
}

return abdera;

}
public void doPostBasic(String urlStr, String json, String username,String
password) {

// set up the abdera client

Abdera abdera = new Abdera();


AbderaClient client = new AbderaClient(abdera);
AbderaClient.registerTrustManager();
RequestOptions options = client.getDefaultRequestOptions();
options.setUseChunked(false);
// set up authentication for the request
try {
URL url = new URL(urlStr);
String realm = url.getProtocol() + "://" + url.getHost();
client.usePreemptiveAuthentication(true);
client.addCredentials(realm, null, null,new UsernamePasswordCredentials(username,
password));
} catch (Exception e) {
e.printStackTrace();
}
InputStream is = new ByteArrayInputStream(json.getBytes());
InputStreamRequestEntity entity = new
InputStreamRequestEntity(is,"application/json");

// perform an HTTP POST


ClientResponse response = client.post(urlStr, entity, options);
BufferedReader in = null;
try {
in = new BufferedReader(new InputStreamReader(response.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
}
} catch (Exception e) {

246 Building and Implementing Social Digital Experiences


e.printStackTrace();
} finally {

try {
in.close();
} catch( IOException ioe) {
ioe.printStackTrace();
}

Additional references

Refer to the product documentation for details of requirements for creation and deployment
of the custom workflow action class: Creating a custom workflow action class.

This section has described an example implementation for creating a custom workflow
action class. The next subsection describes how to associate this action with a content
item workflow.

8.2.3 Adding the custom action to a WCM workflow

Adding the custom action to a WCM workflow


In this scenario, we will add a custom workflow action to a new content approval workflow, the
effect of which will be that when the content item is modified and submitted for approval, a
notification will appear on the content approvers' Activity Stream marked as "Action
Required".

To achieve this we will:


1. Create a custom workflow action to post to the approvers' Activity Stream.
2. Add the workflow action to the approval stage of a workflow.
The WCM workflow that we will create is shown in the flowchart below:

Creating the WCM custom workflow action


To customize this workflow, we require a new custom workflow action which will be activated
when an author submits content for approval.
1. Select the library, for example "CTC Demo" in which we want to create the custom
workflow action and, in the desired WCM library, select New Workflow Actions
Custom Action.

Chapter 8. Pattern 3: Making WCM authoring social 247


2. In the form that appears, click Select Action.

3. Choose the new custom workflow action that was deployed in the previous section, in this
case Activity Stream Custom Workflow Action Factory.

248 Building and Implementing Social Digital Experiences


4. For the Date type field, select Date Entered Stage.

5. Save the custom action and close.

Creating the approval workflow stage in "CTC Demo" Library


Create a workflow stage which invokes the custom workflow action when a content item
enters the stage. To do this we need to complete the following:
1. Select the library in which we want to create the workflow stage and, in the desired WCM
library, select New Workflow Stage.

2. To add the custom workflow action to the stage, we select Add Workflow Actions in the
Run on Entering Stage section. If you have recently worked with the custom action, it may
appear in the drop-down menu on the form - otherwise click on the Add Workflow Actions
link and select the custom action in the resulting dialog as shown below:

Chapter 8. Pattern 3: Making WCM authoring social 249


This results in the workflow action being added as an action to execute upon entering the
stage.
3. Select an approver. This will be the user that receives the notification that the content has
been submitted for review. In this case Heather Reeds. Click the Add button to move her
name to the Selected names pane on the right and click OK.

4. We can now save and close the workflow stage.

250 Building and Implementing Social Digital Experiences


Adding the approval stage to a publishing workflow
We now have an approval workflow stage with a custom workflow action that posts to the
approvers' Activity Stream. Now we have to either create a new Workflow or add the stage to
an existing workflow.
1. To create a new workflow, select the library in which we want to create the workflow action
and, in the desired WCM library, select New Workflow Actions Workflow.

2. In the workflow, Click Add Workflow Stages, select the workflow stage created in the
previous step and click OK.

Chapter 8. Pattern 3: Making WCM authoring social 251


This adds the stage to the list of stages in the workflow. If this is a new workflow, add the
Draft, Publish and Expire stages as appropriate. Ensure the new Approval stage is
between Draft and Publish as shown below:

3. Save the workflow.


This section has described how to associate the Activity Stream custom workflow action
action with a content item workflow. The next subsection describes how to associate this
workflow with a content item and test the solution.

8.2.4 Testing the approval notification


In this section we assign the new or modified workflow to a content item and submit the
content for review. We then log in to Connections as the approver to view the Activity Stream
notification.

Modifying a content item and submitting into the custom workflow


Follow these steps for this test:

252 Building and Implementing Social Digital Experiences


1. Select a piece of content to modify and click the Edit link.

2. In the resulting edit form, select the Properties tab Workflow Select Workflow and
select the workflow created or modified in the previous step.

3. Modify some of the content.

Chapter 8. Pattern 3: Making WCM authoring social 253


4. Click on the Save and Submit for Review option within the Save selection list.

The modified content item is now submitted into the approval stage of the workflow. This
should trigger our custom workflow action to distribute the approval notification to the content
approver (Heather Reeds).

Reviewing notification in the approvers' Activity Stream


In this test, we log in to Connections to test that our custom workflow action has posted the
notification successfully. Follow these steps:
1. Log in to Connections as Heather Reeds to check her Activity Stream for the content
approval notification.

254 Building and Implementing Social Digital Experiences


We see that Heather has an Action Required. This has been posted by the content
approval workflow and contains some of the content that was submitted.
2. Selecting the More... link shows more information about the content and some links to
read, approve or reject the content.

Chapter 8. Pattern 3: Making WCM authoring social 255


We have successfully posted a notification from a WCM custom workflow action to the
Connections Activity Stream of our content approver.

8.3 Action a Workflow Action Request via an Embedded


Experience Open Social Gadget
In this section, we look at extending the initial scenario outlined in 8.2, Sending a WCM
workflow notification to Connections Activity Streams on page 236 to take advantage of IBM
Connections OpenSocial Embedded Experience Gadgets. The objective is that users will be
able to action WCM Content Approval notifications in-line and in-context of the notification
that has been posted in their IBM Connections Activity Stream.

In this section we develop an OpenSocial Gadget to enable users to Action WCM Content
Approval notifications in-line and in-context.

We cover the following topics in the subsections:


8.3.1, OpenSocial Gadget use case scenario
8.3.2, Prerequisites on page 257
8.3.3, OpenSocial in IBM Connections on page 258
8.3.4, Configuring IBM Connections to host a third party gadget on page 260
8.3.5, Extending WCM Activity post to reference OpenSocial gadget implementation on
page 263
8.3.6, Implementing OpenSocial gadget on page 264
8.3.7, Testing the OpenSocial gadget implementation on page 267

8.3.1 OpenSocial Gadget use case scenario


In this OpenSocial gadget use case scenario, approvers will approve or reject the approval
notification via an in-line and in-context OpenSocial gadget that is embedded within the initial
Approval Notification.

The following figure illustrates the user interface design of the gadget that will be developed
for this use case scenario.

256 Building and Implementing Social Digital Experiences


8.3.2 Prerequisites
To implement an OpenSocial gadget in IBM Connections, you need to have the necessary
skills and enable developer mode in IBM Connections.

Required skills
To be able to implement the OpenSocial gadget use case scenario, a solid understanding of
the following topics is strongly recommended:

Programming Administration Tools

1. JAVA 1. IBM Connection 1. Eclipse IDE


2. JSON Administration. 2. OpenSocial Explorer
3. OpenSocial 2. XML 3. Mozilla Firefox and the Firebug
Specification plug-in
4. JQuery/Dojo 4. Fiddler
5. Be familiar with any language
and development IDE.

Enabling developer mode in IBM Connections


The process for adding a gadget to IBM Connections once it has finished development is
reasonably straightforward; however, it can be cumbersome while a gadget is still in
development and updates are being made. For this reason, it can be useful to enable
developer mode and skip many of the white listing or wsadmin command steps needed when
adding a finalized gadget.

Developer mode allows you to control the access settings of a gadget by appending a query
string to a gadget URL. In this way, you can quickly test a gadget anywhere in IBM
Connections, with any access settings you want, without handling any white listing or
wsadmin commands.

To enable the developer mode for OpenSocial gadget, follow these steps:
1. Launch the wsadmin client from Deployment Manager node:

Chapter 8. Pattern 3: Making WCM authoring social 257


./wsadmin.sh -lang jython -username -password
2. Execute the following command to initialize the IBM Connections Administrative Interface:
execfile("connectionsConfig.py")
3. Checkout the OpenSocial configuration files:
LCConfigService.checkOutOpensocialConfig("",AdminControl.getCell())
4. Modify the following values to enable the OpenSocial developer mode:

From To

developer enabled="false" developer enabled="true"

urlWhitelistEnabled="true" urlWhitelistEnabled="false"

developer-hosts-whitelist developer-hosts-whitelist
allServers="false" allServers="true"

5. Check-in the OpenSocial configuration files:


LCConfigService.checkInOpensocialConfig("",AdminControl.getCell())
6. Synchronize the nodes:
synchAllNodes()
7. Restart the IBM Connections server.

8.3.3 OpenSocial in IBM Connections

OpenSocial overview
The goal of OpenSocial is to make more apps available to more users. This is accomplished
by providing a common API that can be used in many different contexts. Developers can
create applications, using standard JavaScript and HTML, that run on social websites that
have implemented the OpenSocial APIs.

The OpenSocial APIs expose methods for accessing information about people, their friends,
and their data, within the context of a container. REST Create (POST), Retrieve (GET),
Update (PUT), Delete (DELETE) services define a language and platform neutral protocol for
clients to interact with OpenSocial container servers outside of gadgets on a web page. IBM
Connections does not allow Activity Stream entry deletion via the API.

Overview of the common rendering engine used in IBM Connections


The common rendering engine (CRE) is a shared component that IBM software programs
such as IBM Connections use to provide support for rendering various widget models,
including iWidgets and OpenSocial gadgets.

For more information, refer to Common Rendering Engine.

OpenSocial terminology
It is important to understand the following terms when we move through this section:
Embedded experience (EE) A specific type of gadget, distinguished by having a
context data that is used to render its UI. Embedded experiences are typically rendered
within the context of an activity stream entry. 90%+ of development questions relate to
how customers can build their own EEs.

258 Building and Implementing Social Digital Experiences


Embedded experience context The data context for rendering the EE. This is a JSON,
String or XML data object that is submitted as part of the activity stream entry. The typical
rendering is in the AS, although it is not technically required.
Activity stream (AS) OSAPI for posting events. Data from the News stream is surfaced
via this API.
White list or Gadget registry In order to limit malicious contents, gadgets must be
pre-registered with IBM Connections. This is done by either the Homepage Administration
UI or via MBean commands (if Homepage is not installed).
Container This is the short hand for the IBM Connections Widget Container.
Generally, this term is used in reference to its OpenSocial rather than iWidget half.
Feature access OpenSocial exposes a number of features. Features are often just a
JavaScript API. But in certain cases, they may dramatically alter the behavior of the
Container. A key example of this is SSO, which disables the Locked-Domains security
feature. In other cases, the feature access can grant the gadget access to things that let it
opens dialog boxes or other information in the Connections page. Because unrestricted
feature access is dangerous, when an administrator registers a gadget, the administrator
specifies the level of access that the gadget receives.
Proxy access Controls what URL endpoints the gadget can gain access to. For
example, you can prevent the gadget from accessing inside of the intranet via a simple
config setting.
Locked domains This is a feature for rendering gadgets in an iFrame that is hosted
outside of the SSO domain. This prevents any leakage of SSO tokens to the gadget.

Overview of OpenSocial gadgets


OpenSocial gadgets are small applications that are built using XML, HTML, and CSS. They
allow developers to write useful web applications that work anywhere on the web (within a
Container) without modification.

Anatomy of an embedded experience gadget


An embedded experience gadget is a specific type of gadget that has context data that is
used when it is rendered within the container

Chapter 8. Pattern 3: Making WCM authoring social 259


Sample gadget definition:

1. <Module> 1. Root of gadget XML.


2. <ModulePrefs title="Hello EE World" 2. Defines the title, description and desired
description="Hello World Embedded height, width of the gadget.
Experience gadget" height="400" 3. Is a request for feature access by the gadget.
width="500"> In this case, we ask for access to the
3. <Require embedded-experiences JS API.
feature="embedded-experiences"/> 4. The node defines a set of in-line JS and
</ModulePrefs> HTML that make up the gadget view.
4. <Content type="html" view="embedded, Gadgets may have multiple elements. In this
default"> case, we indicate that the views exposed
<![CDATA[ here are embdded - used by embedded
<script type="text/javascript"> experiences and a default view for all other
5. function init(){ cases. In addition to HTML, this can also be
opensocial.data.getDataContext().registerLis of type url which causes the Container to
tener('org.opensocial.ee.context', render an iFrame of the target URL.
function(key) { 5. function init() is a callback that is invoked
6. document.getElementById('eeContext').innerH after the gadget onload.
TML = 6. The inner content, registers an event listener
gadgets.json.stringify( for gaining access to the actual data.
opensocial.data.getDataContext().getDataSe 7. Is a simple, in-line HTML example.
t(key) );
});
}
gadgets.util.registerOnLoadHandler(init);
</script>
7. <div id="hello">
<h3>Hello Embedded Experiences
World</h3>
I am an EE gadget.<br>
My context is: <span
id="eeContext">[Context will go
here]</span>
</div>
]]></Content>
</Module>

8.3.4 Configuring IBM Connections to host a third party gadget

Configuring a Home page administrator to be able to add OpenSocial


gadgets
OpenSocial gadgets must be registered, or added to the existing white list (or gadget
registry). This prevents unknown and untrusted gadgets from being introduced into the
system. Only trusted gadgets for specific events can be used, whereas all other events use
the default gadget. In the next couple of sections, we setup Connections so that it trusts and
accepts our reference to our newly created gadget.

To make the OpenSocial gadgets available for use in the activity stream, you need to add the
gadgets from the Administration tab in the Home page user interface and then enable them
for use. Select Heather Reeds (his user id is "hreeds" ) as the Home page administrator.

Follow these steps to add the gadget to the existing white list:
1. Login to the IBM Connections Deployment Manager Administrative Console using a valid
user id and password.

260 Building and Implementing Social Digital Experiences


2. On the left panel, select Applications Application Types WebSphere enterprise
applications.
3. On the right pane, click the Homepage link.
4. Under the Detail Properties section, click the Security role to user/group mapping link.

5. On the next page, select admin and click Map Users...

6. In the Search and Select Users section, search for hreeds and click Search.
7. From the Available list, highlight hreeds and click the right arrow to move his name to the
Selected list.
8. Click OK. You should see hreeds under the mapped users for the admin role.
9. Click OK again. When you return to the Homepage Configuration page, click the Save link
at the top.
10. Click Logout to exit the Integrated Solutions Console.

Configuring a new OpenSocial gadget for IBM Connections


Follow these steps:
1. Login to IBM Connections server using the Heather Reeds userid.
2. If prompted, accept the certificate. Log in with the following credentials: hreeds/passw0rd
3. On the left panel, select the Administration link.

Chapter 8. Pattern 3: Making WCM authoring social 261


4. On the right pane, under the Disabled widgets section, click Add another widget.

Gadget specific registration settings


1. Specific information is required for a gadget to be registered to IBM Connections. See
below for details.

Field Name Description

Widget Type:
Indicate if you are registering a
gadget or iWidget. In this example,
we register a gadget.

Security:
Indicate if this is a restricted, trusted
or SSO gadget, In this example, we
use SSO/Trusted
Although the term is trusted, the
gadgets are still locked.
SSO access has major security
implications and breaks all of the
security features of the product.

UI Integration points:
Indicate if this gadget is intended for
use in the activity stream or share
dialog.
Note: This setting has additional
security implications for feature
access.

Server access via Proxy:


Indicate server access.
Select the value as All Servers.

In later steps, you will create the gadget.


2. Enter the following information for the gadget so that it is registered in IBM Connections.
Failure to register a gadget will cause those events to display the default gadget

Field Name Field Value

Widget Type Open Social Gadget

262 Building and Implementing Social Digital Experiences


Field Name Field Value

Security Trusted

Use SSO checked

Show for Activity stream events checked

Server access via Proxy All servers

Widget Title WCM Approval Gadget

URL: http://connections/wcm_approval.x
ml

Display on Updates Page and checked.

3. Scroll to the bottom and click Save.


4. In the Disabled widgets section, highlight the WCM Approval Gadget entry.

5. Underneath the Disabled widgets section, click Enable.

8.3.5 Extending WCM Activity post to reference OpenSocial gadget


implementation
In the previous section, you posted events in the activity streams that were generated by
WCM workflow events. Within the context of the event posted, we created a reference to an
OpenSocial gadget that we are now going to enable and implement.

The following JSON snippet references the OpenSocial gadget that we are going to
implement. It defines the URL to the gadget and context information. We reference an internal
gadget here, rather than a third party one hosted on another server for simplicity.
Authentication will be achieved via Basic Auth rather than OAuth2 which would be used for
externally hosted gadgets.

The complete code is available in 8.2.2, Creating a workflow action class for posting to an
Activity Stream on page 239.

// Embedded experience reference to gadget context. Add fields in here for the
embedded gadget to reference.
// Get the Content Item UUID from the newly created content
String contentItemuuid = wcmItem.getId().getId();

Chapter 8. Pattern 3: Making WCM authoring social 263


// This userid can be dynamically retrieved based on the content approver role.
Here we have chosen "Heather Reeds" as Content Approver.
String userId = "hreeds";
JSONObject context = new JSONObject();
context.put("id", "12345");
context.put("summary", "A web content item requires your approval");
context.put("user", userId);
context.put("uuid", contentItemuuid);
// Retrieve the Content Description. This key is later used in OpenSocial gadgets
data model XML file.
context.put("content", contentStr);

// Do the gadget embed


JSONObject embed = new JSONObject();
embed.put("gadget", "http://connections/wcm_approval.xml");
embed.put("context", context);
JSONObject social = new JSONObject();
social.put("embed", embed);
//End of gadget embed

8.3.6 Implementing OpenSocial gadget


In this section, we define our gadget definition. A gadget definition document is simply an
XML document that conforms to the OpenSocial gadget specification. It can be developed
with various tools, including tools such as eClipse, Rational Application Developer, or simply
notepad.

The functionality of the gadget is to allow users to take an action on some content that is
waiting for them to approve or reject.

In section 8.2, Sending a WCM workflow notification to Connections Activity Streams on


page 236, we discussed how to post an activity to the activity stream. Within the context of
this post, all information that the gadget requires to perform its function is passed along to the
gadget from within the initial post. Such information includes references to the content within
WCM that needs some action, and links to REST APIs that when called will either Approve or
Reject the content within the custom workflow to the corresponding stages. This keeps design
complexity to a minimal as the gadget now does not need to go and fetch any information
about the content that it needs to action prior to presenting itself to the user. It simply has to
submit the users response for the workflow approval notification request. In our example, we
use IBM OneUIv3 CSS styles to make the gadget look and feel like the default theme of IBM
Connections.

Location of gadget definition


The gadget definition will be served up from the Connections HTTP server. A new location is
defined at the root htdocs directory of our web server to hold the gadget definition. Our
gadget definition below is then stored in the above directory.

Code for the OpenSocial gadget implementation(data model)


The following is the code for the OpenSocial gadget implementation:

<?xml version="1.0" encoding="utf-8"?>


<Module>

264 Building and Implementing Social Digital Experiences


<ModulePrefs title="WCM Content Workflow Approval Gadget" description="A gadget
for approving WCM Content Workflows">
<Require feature="opensocial-0.9"/>
<Require feature="osapi"/>
<Require feature="embedded-experiences"/>
<Require feature="dynamic-height"/>
<Require feature="opensocial-data"/>
<Optional feature="settitle"/>
<Optional feature="content-rewrite">
<Param name="exclude-url">*</Param>
</Optional>
<Optional feature="sso-domain"/>
<Optional feature="com.ibm.connections.ee"/>
<Optional feature="com.ibm.connections.theme"/>
<Optional feature="cre.service.sso" />
</ModulePrefs>
<UserPref name="debug" required="false" type="hidden" default_value="false"
datatype="bool"/>
<Content type="html" view="embedded,default">
<![CDATA[
<!-- Link to IBM Connections OneUI Look and feel css's -->
<link appName="default" base="https://connections/connections/resources/web/"
defaultTheme="default"

href="https://connections/connections/resources/web/_style?include=com.ibm.lconn.c
ore.styles.oneui3/base/package3.css&;etag=20121109.133000"
id="lotusBaseStylesheet" oneui="3"
query="?version=oneui3&;rtl=false&;etag=20121109.133000" rel="stylesheet"
theme="default" type="text/css">

<link
href="https://connections/connections/resources/web/_style?include=com.ibm.lconn.c
ore.styles.oneui3/sprites.css&;etag=20121109.133000"
id="lotusSpritesStylesheet" rel="stylesheet" type="text/css">
<link
href="https://connections/connections/resources/web/_lconntheme/default.css?versio
n=oneui3&;rtl=false&;etag=20121109.133000"
id="lotusThemeStylesheet" rel="stylesheet" type="text/css">

<style
type="text/css">html,body{height:100%;width:100%;overflow:auto;}body,td,div,span,p
{font-family:arial,sans-serif;}a
{color:#0000cc;}a:visited {color:#551a8b;}a:active
{color:#ff0000;}body{margin: 0px;padding: 0px;background-color:white;}
</style><script>window['__isgadget']=true;</script>
<link
href="https://connections/connections/resources/web/style?include=com.ibm.lconn.co
re.styles.oneui3/base/package3.css&;etag=20121108.113023"
rel="stylesheet" type="text/css">
<link
href="https://connections/connections/resources/web/style?include=com.ibm.lconn.co
re.styles.oneui3/base/connectionsCore.css&;etag=20121108.113023"
rel="stylesheet" type="text/css">

Chapter 8. Pattern 3: Making WCM authoring social 265


<link
href="https://connections/connections/resources/web/lconntheme/default.css?version
=oneui3&;rtl=false&;etag=20121108.113023"
rel="stylesheet" type="text/css">
<link
href="https://connections/connections/resources/web/style?include=com.ibm.social.e
e/css/eeStyles.css&;etag=20121108.113023"
rel="stylesheet" type="text/css">

<div id="wcmresults"></div>

<script type="text/javascript">

//Retrieve the Content String from Open Social Context set in Custom Workflow
Action class.
function showContent(context){

document.getElementById("wcmresults").innerHTML = context.content;
gadgets.window.adjustHeight();
}
function initData(){
opensocial.data.getDataContext().registerListener('org.opensocial.ee.context',
function(key) {
showContent(opensocial.data.getDataContext().getDataSet(key));
});
}
gadgets.util.registerOnLoadHandler(initData);
gadgets.window.adjustHeight();

function approveMe() {
var context =
opensocial.data.getDataContext().getDataSet("org.opensocial.ee.context");
var url = "http://portal:10039/wps/mycontenthandler/wcmrest/item/" +
context.uuid + "/approve"
callWCM(url);
}
function rejectMe() {
var context =
opensocial.data.getDataContext().getDataSet("org.opensocial.ee.context");
var url = "http://portal:10039/wps/mycontenthandler/wcmrest/item/" +
context.uuid + "/reject"
callWCM(url);
}
function adjustHeight() {
gadgets.window.adjustHeight();
}
function callWCM(url) {
console.debug("About to call MakeRequest with url: " + url);
var postdata = {};
var params = {};
postdata = gadgets.io.encodeValues(postdata);
params[gadgets.io.RequestParameters.METHOD] = gadgets.io.MethodType.GET;
params[gadgets.io.RequestParameters.POST_DATA]= postdata;
//params[gadgets.io.RequestParameters.AuthorizationType] = 'signed';

266 Building and Implementing Social Digital Experiences


params[gadgets.io.RequestParameters.Authz] = 'sso';
gadgets.io.makeRequest(url, response, params);
};
function response(obj) {
console.debug("Returned from MakeRequest: retCode: " + obj.rc);
// Update UI.
if (obj.rc == 200) {
console.debug("Successfully updated workflow");
document.getElementById('wcmresults').innerHTML = "Success";
document.getElementById('wcmresults').setAttribute('color', 'green');
} else {
console.debug("Fialed to update workflow");
document.getElementById('wcmresults').innerHTML = "Unable to update content
workflow at this time";
document.getElementById('wcmresults').setAttribute('style', 'color: red');
}
};
</script>
<div id="wcmresults">
</div>
<div class="lotusBtnContainer" style="" id="btnContainer">
<button id="acceptBtn" type="button" class="lotusBtn lotusBtnSpecial
lotusFirst" onclick="approveMe()" title="Approve the content to be
published">Approve</button>
<button id="declineBtn" type="button" class="lotusBtn lotusBtnSpecial
lotusFirst" onclick="rejectMe()" title="Reject the content to be
published">Reject</button>
</div>
]]>
</Content>
</Module>

Summary
Users can now action WCM Content Approval notifications in-line and in-context of the
notification that has been posted in their IBM Connections activity stream.

8.3.7 Testing the OpenSocial gadget implementation


In this section, we describe how to validate the OpenSocial gadget implementation.

As we discussed in section 8.2, Sending a WCM workflow notification to Connections Activity


Streams on page 236, content is already submitted and it's ready for review. As soon as
Content Approver, in this use case, "Heather Reeds" logs into the IBM Connections server,
his activity stream is updated.

Follow these steps to validate the embedded experience of the OpenSocial gadget:
1. Log into IBM Connections server as "Heather Reeds".
2. Select the Action Required activity in Home page.

Chapter 8. Pattern 3: Making WCM authoring social 267


3. Select the Content and click to view the embedded content.

The final result is shown similar to the following figure.

268 Building and Implementing Social Digital Experiences


Chapter 8. Pattern 3: Making WCM authoring social 269
270 Building and Implementing Social Digital Experiences
9

Chapter 9. Making business applications


social
Social business applications differ from traditional business applications in that they are
collaborative in nature:
Their focus is on the community as opposed to a single user.
They attempt to exploit the collective intelligence to solve problems.
Human activities are better supported by providing applications in context with easy
access to experts and information.
The relationship between users is made more explicit to foster trust and inclusion of all
users.

A few examples which illustrate the differences are provided in the table below.

Traditional business Social business application objects


application entities

User Profile

Group of users Community

Attachment in an email A file in context

Notification Activity stream

Silo's search Universal search across content, applications


and communities

Textual content Tagged, "liked", bookmarked content

The Chapter 3, Defining the social portal on page 15 section of this guide describes the
fundamentals of social business, its elements, advantages and patterns of implementation.

In addition, this guide describes a number of concrete methods for transforming traditional
business applications into social business applications:

Copyright IBM Corp. 2014. All rights reserved. 271


Leverage 7.5, Using IBM Connections as a platform on page 211 to infuse social objects
into traditional business applications. The user interfaces of these applications can be
traditional portlets or 9.2, IBM Script portlets for WebSphere on page 274.
Utilize the 9.1, Using the social business toolkit on page 273 to simplify the development
of social applications, on premise or in the cloud.
10.1, Integrating Connections and Portal search overview to allow for search across
content, applications and social objects.

272 Building and Implementing Social Digital Experiences


9.1 Using the social business toolkit
The IBM Social Business Toolkit (SBT) is a Software Development Kit (SDK) that aims to
ease the tasks that social application developers face when writing social business
applications based on the IBM Social Platform. It does this by encapsulating the APIs of the
various products in the IBM Social Platform, providing a unified, consistent interface for social
applications both on-premise and in the cloud.

This SDK is completely standards based and utilizes REST services with JSON and/or ATOM
messages. In addition, the SBT supports building desktop client, browser and mobile
applications.

The SDK has three distinct levels to delineate the most appropriate functionality the
developer might require:
Widgets - User interface components built with HTML, CSS and JavaScript.
High-level APIs - Access to high level social objects such as profiles.
Low-level APIs - Utilities, security functionality and other helpers that the higher level APIs
use to provide their capabilities.

Without high level APIs, the developer would have to deal with many low level APIs provided
by the products in addition to other concerns (such as lower level OAuth details for
authorization).

A number of different development communities can utilize the SBT:


Java developers - The SBT runs on Java Application servers and as OSGI plugins.
JavaScript developers - A comprehensive JavaScript API is provided for client side
development. In addition, there are a number of ready to use GUI components to speed
up development.
PHP developers - This is a new capability, the details of which can be found here.

In addition, the SBT can be used to connect to a number of popular third party API's on the
internet. These include Twitter, Facebook, LinkedIn and DropBox. In fact, API that supports:
A REST API.
OAUTH (version 1 and 2) authorization.
One or more of JSON, XML or ATOM messages.

However, if the third party recommends a different SDK then it might be best to use that
instead.

Downloading and installing the Social Business Toolkit


The IBM SBT is available for download. The following is included the download:
The source code.
Sample applications.
A Tomcat server for executing the Java functionality of the SBT.

The Social Business Toolkit SDK Homepage provides videos that introduce and provide
guidance on installing the SBT.

There is also an Online SBT Playground that allows developers to experiment with the
JavaScript APIs that the SDK exposes without the need to download the SDK.

Chapter 9. Making business applications social 273


9.2 IBM Script portlets for WebSphere
Script portlets are a new feature added to IBM WebSphere Portal Server, that allows
developers with only JavaScript (JS), CSS, and HTML skills to build portlets. Current portal
capabilities supported by Script portlets are inter-portlet communication (via public render
parameters) and the manipulation of portlet preferences. These capabilities will increase over
time.

Script portlets benefit both IT and business:


It is easier for business to hire IT resources that understand HTML, CSS and JS than it is
to hire resources that understand portlet technology.
The ease of developing scripting portlets enables business to utilize portal for their use
cases as opposed to duplicating platforms to achieve the required functionality.
The nature of script portlets allows developers to gradually learn more about the portlet
programming model over time.
Some portlets (rich client side requirements) lend themselves more easily to script
portlets.
Simple and powerful development environment for developers of all skill levels.

Prerequisites
In order to successfully implement scripting portlets, a number of prerequisite skills and tools
are recommended.
Programming knowledge: A good understanding of web technologies including XML,
HTML, CSS, REST and JavaScript. Familiarity with a JavaScript library such as Dojo,
JQuery or AngularJS is also recommended. Initial understanding of JSR-286 portlet
programming is not required.
Tools availability: A web browser with debugging capabilities. Google Chrome and Mozilla
Firefox (with the Firebug addon installed) are good candidates.
Websphere Portal Server: It is recommended that your WebSphere Portal is at at 8.0.0.1,
(cumulative fix) CF9.

The sections describes the installation and development of script portlets.

We cover the following topics in the subsections:


9.2.1, Installing IBM Script portlets for WebSphere
9.2.2, Development user interface on page 275
9.2.3, Social business scenario using IBM Script portlets on page 276
9.2.4, Implementing the social business scenario using IBM Script portlets on page 277

9.2.1 Installing IBM Script portlets for WebSphere


The IBM Script portlets for WebSphere is available for download as a Portlet Application
Archive (PAA) on Greenhouseexternal link.

To install the IBM Script portlets for WebSphere onto your WebSphere Portal Server, follow
the steps below:
1. Extract the PAA from the archive downloaded from Greenhouse.

274 Building and Implementing Social Digital Experiences


2. Execute the following Config Engine task on WebSphere portal to install the script portlet
PAA:

[./]ConfigEngine.[bat|sh] install-paa DPAALocation=<location of script portlet


paa including filename> -DWasPassword=<your WAS admin password>
-DPortalAdminPwd=<your Portal admin password>

3. Execute the following Config Engine task on WebSphere portal to deploy the script portlet
onto WebSphere portal:

[./]ConfigEngine.[bat|sh] deploy-paa -DappName=scriptportlet-app


-DWasPassword=<your WAS admin password> -DPortalAdminPwd=<your Portal admin
password>

4. Restart WebSphere Portal server.


5. Login to portal as Portal Administrator.
6. Create a new portal page and add the portlet onto the page.

9.2.2 Development user interface


IBM Script Portlets for WebSphere provides a rich, simple and powerful user interface for a
developer to create portlets using JavaScript, CSS and HTML. The results of development
are immediately visible in a preview pane. This makes the development-test-debug cycle
rapid and thereby increases developer productivity.

To create the code for the installed scripting portlet, navigate to that page and switch the
portal to "Edit mode". The scripting portlet will have an Edit link visible. Click on the Edit link
to start development. See the figure below.

In the "Edit mode", the development user interface is shown in the figure below.

Chapter 9. Making business applications social 275


There are three panes for HTML, CSS and JavaScript code editing. The preview pane shows
the results of the coding effort once the developer has clicked the Save button (Top right).

Clicking on the '+' icon in the top right corner of each pane maximizes that pane for full screen
development or results viewing.

The result of the code sample in the figure above, and switching the portal back to "View
mode", is illustrated below.

9.2.3 Social business scenario using IBM Script portlets


In order to provide a concrete example of the many development possibilities of using IBM
Script Portlets, a simple example has been devised. The code to implement the example will
be provided in the 9.2.4, Implementing the social business scenario using IBM Script
portlets on page 277.

In this scenario, a user is able to upload a file, from inside WebSphere Portal, to their "My
Files" application inside IBM Connections. The figure below illustrates the Portlet that
provides this functionality.

276 Building and Implementing Social Digital Experiences


Selecting a file, and clicking Upload results in the file being uploaded to IBM Connections,
inside the users 'My Files' application. This is illustrated in the figure below.

This simple scenario could easily be extended to, for example, allowing the user to
automatically share the uploaded file with a specific person or community.

9.2.4 Implementing the social business scenario using IBM Script portlets
The 9.2.3, Social business scenario using IBM Script portlets on page 276 explained a
simple scenario whereby a file can be uploaded from WebSphere Portal Server into the "My
Files" application of a user. This scenario is implemented using IBM Script portlets.

Since IBM Script portlets are a client side technology, the example is implemented using
AngularJS which is a framework for building rich client side applications. In the example,
AngularJS allows for the separation of the view and controller logic and for making the AJAX
calls. The code provided is purely illustrative, and does not necessarily follow AngularJS best
practices. For production purposes, the AngularJS minified code should be available in the
WebSphere Portal theme.

Uploading a file to IBM Connections requires that a security token (a nonce), is first gained
from the IBM Connections server, and that this token is included in the HTTP header during
the file upload request.

Section 9.2.2, Development user interface on page 275 described the development user
interface for developing Script portlets. Using that information, copy-and-paste the HTML
code below in the HTML code pane:

<div ng-app="UploadFileToConnections" ng-controller="MainController">

Chapter 9. Making business applications social 277


<p>
Select the file you would like to upload to your "My Files" inside IBM
Connections:
</p>

<input type="file" ng-model-instant id="fileToUpload"


onchange="angular.element(this).scope().setFiles(this)" />
<input type="button" ng-click="uploadFile()" value="Upload" />
</div>

Then copy-and-paste the JavaScript code below in the JavaScript code pane:

var uploadFileToConnections = angular.module('UploadFileToConnections', []);

uploadFileToConnections.controller('MainController', function($scope, $http) {

var nonceURL = '<url to IBM Connections Server>/files/basic/api/nonce'; // If


Portal and Connections are not on the same server - Use AJAX Proxy

var fileUploadURL = '<url to IBM Connections


Server>/files/basic/api/myuserlibrary/feed'; // If Portal and Connections are not
on the same server - Use AJAX Proxy

$scope.setFiles = function(element) {
$scope.files = []
for (var i = 0; i < element.files.length; i++) {
$scope.files.push(element.files[i]);
}
};

$scope.uploadFile = function() {
$http({method: 'GET', url: nonceURL}).success(function(returnedNonce) { //
Get the security token from IBM Connections
var formData = new FormData()
for (var i in $scope.files){
formData.append("file", $scope.files[i]);
} // Upload the file to IBM Connections - Include the security token in
the HTTP header
$http({method: 'POST', url: fileUploadURL, headers: {'Content-Type':
undefined, 'X-Update-Nonce': returnedNonce}, data: formData,
transformRequest: function(data) { return data; }});
}).success(function() { alert("Your file has been uploaded to
Connections"); });
};
});

9.3 IBM Docs


The aim of Social Digital Experience is to bring together people, application, and content.
By this, the integration of Social Business Documents is very important to increase the reach
and distribution of shared knowledge within your organization. IBM Docs integration with IBM

278 Building and Implementing Social Digital Experiences


Connection will introduce new capabilities, including remote and mobile document access,
live co-editing, custom security options, real time or asynchronous modes, transparency file
format support and robust web editors. Sharing and distributing valuable content in a wide
variety of file types will be easier.

IBM Docs extends IBM Connections, providing teams with a better way to edit and review
documents. With IBM Docs, you can create word processing, spreadsheet, and presentation
documents independently, or collaborate in real-time with other contributors. With the
professional templates from IBM Docs, you can quickly create new documents, or upload
existing Microsoft Office and Lotus Symphony files to edit and share. You can also store
your files or download in Microsoft Office or PDF format, as needed at a later time.

System requirements
For the minimum system requirements for IBM Docs, click this link.

9.3.1 IBM Docs deployment options


There are two deployment options for IBM Docs:
Standard deployment: This is the simplest deployment option but it has limited flexibility
and does not allow individual applications to be scaled up. In this guide, we go through the
standard deployment option.
Large deployment: Use this option to maximize the use of available hardware and
system resources to suit your needs. We do not cover this option in this guide. For
information on this option, click this link.

Installation assumptions
We assume that IBM Docs will be installed on the same server of IBM Connections that was
used in this guide.

9.3.2 Installation steps


The following steps summarize all the installation steps that will be done for IBM Docs:
1. Install the Document Format Conversion server.
2. Create the IBM Docs database.
3. Install the IBM Docs application.
4. Install the IBM Docs extension plug-in.
5. Install the IBM File Viewer application.
6. Install the IBM File Viewer extension plug-in.

Before you start with the above installation steps, you need to extract IBM Docs 1.05 package
(CIT7DML). Once you are done with this, you should have the following folders:
Conversion
Docs
Viewer

Installing the Document Format Conversion server


To install the Document Format Conversion server, follow these steps:
1. Open coversion folder.
2. Extract DocsConversion.
3. Open DocsConversion/Installer.

Chapter 9. Making business applications social 279


4. Open cfg.properties file and make the following modifications:
a. Change the value for soap port for parameter: was_soap_port=8882. This will be your
IBM Connection Server Port.
b. Set was_install_root parameter to your websphere application server network
deployment location, for example: F:\IBM\WebSphere\AppServer
c. Set viewer_shared_data_name to f:\IBM\Viewer\shared\data
d. Set scope=Cluster
e. Set scope_name=Connections
f. Set conversion_shared_data_root=c:\IBMConversion\shared\data
5. Run installer.bat as administrator ( You will get like the below screen):
a. Press a to accept the software licenses.
b. Enter the WebSphere administrator user name and password.

You should get a message at the end of installation INFO Installation Completed
Successfully.

Creating IBM Docs database


To create the IBM Docs database, follow these steps:
1. Go to command prompt as administrator. Start your DB2 by typing db2start.
2. Go to the following folder that contains IBM Docs DB2 script
..\DOCS1.0.5_WINLIN_ML\CIT7DML\Docs\DocsApp\setupDB.
3. Run the script by using createDb.bat.
You should get success message "The TERMINATE command completed successfully".
4. Run updateDBSchema.bat.

You will get your schema has been updated to version 18.

280 Building and Implementing Social Digital Experiences


Installing the IBM Docs application
To install the IBM Docs application, follow these steps:
1. Extract DocsApp.zip.
2. Change the following parameters in cfg.properites:
docs_install_root=f:\IBM\IBMDocs
shared_data_dir=f:\IBM\IBMDocs\data\shared
was_install_root=F:\IBM\WebSphere\AppServer
was_soap_port=8881
scope=Cluster
scope_name=Connections
3. Open a command prompt and then go to the IBMDocs_Install_Package/installer
directory.
4. Run install.bat.

You should get "Installation Completed Successfully".

Installing the IBM Docs extension plug-in


To install the IBM Docs extension plug-in, follow these steps:
1. Extract DocsLCExtension.
2. Set the following parametes in cnf.properties
ext_install_root=f:\IBM\IBMDocs\extension
was_dm_profile_root=F:\IBM\WebSphere\AppServer\profiles\Dmgr01
was_soap_port=8881
ic_extension_path=F:\IBM\Connections\data\shared\provision\webresources
deamon_shared_path=F:\IBM\Connections\data\shared
files_scope=Cluster
files_scope_name=Connections
news_scope=Cluster
news_scope_name=Connections
common_scope=Cluster
common_scope_name=Connections
3. Run install.bat.

You should get the following message Installation Completed Successfully.

Installing the File Viewer application


To install the File Viewer application, follow these steps:
1. Set the following parametes in cnf.properties:
shared_data_dir=f:\IBM\IBMDocs\data\shared
was_install_root=F:\IBM\WebSphere\AppServer
was_soap_port=8881
files_path=
scope=Cluster
scope_name=Connections
2. Run install.bat.

You should get the following message Installation Completed Successfully.

Installing the File Viewer extension plug-in


To install the File Viewer extension plug-in, follow these steps:

Chapter 9. Making business applications social 281


1. Extract ViewerLCCustomizeApp.zip.
2. Set the following parametes in cnf.properties:
ext_install_root=f:\IBM\IBMFileViewerIC\extension
was_dm_profile_root=F:\IBM\WebSphere\AppServer\profiles\Dmgr01
was_soap_port=8881
files_scope=A
files_scope_name=Connections
news_scope=A
news_scope_name=Connections
3. Run install.bat.

You should get the following message Installation Completed Successfully.

Post installation tasks and configurations


After you install IBM Docs, File Viewer, and the Document Format Conversion server on
WebSphere Application Server, you can map the IBM Docs applications to the IBM HTTP
Server according to your needs.
1. Log in to the WebSphere Application Server (Deployment Manager) administrator
console.
2. Click Applications WebSphere enterprise applications in left panel, and then click
IBMDocs Manage Modules.
3. In the Manage Modules panel, select the check box for all modules, choose your target
web server or servers as well as the original cluster or server that contains the application,
and click Apply.
4. Click Applications WebSphere enterprise applications in left panel, then click
Spellcheck4IBMDocs Manage Modules.
5. In Manage Modules panel, select the check box for all modules, choose your target web
server or servers, as well as the original cluster or server that contains the application, and
click Apply.
1. Log in to WebSphere Application Server (Deployment Manager) administrator console.
2. Click Applications WebSphere enterprise applications in left panel, and then click
IBMConversion Manage Modules.
3. In the Manage Modules panel, select the check box for all modules, choose your target
web server or servers, as well as the original cluster or server that contains the
application, and click Apply.
1. Log in to WebSphere Application Server (Deployment Manager) administrator console.
2. Click Applications WebSphere enterprise applications, and then click ViewerApp ->
Manage Modules.
3. In the Manage Modules panel, select the check box for all modules.
4. Select your target web server or servers, and select the original cluster or server that
contains the application.
5. Click Apply.
For IBM Docs:
For the Conversion server:
For File Viewer:

After you complete the above steps, you will need to generate the plugin for the Web Server
as below:

282 Building and Implementing Social Digital Experiences


Note: Whenever you regenerate and propagate the plug-in, you must repeat all the steps.
Otherwise, the configuration files are overwritten.

1. Select Servers Server Types Web servers.


2. Select the check box for your web server.
3. Click Generate Plug-in.
4. Click Propagate Plug-in.
Finally, you will need to restart the web server as below:
Run /bin/apache k restart

Functional verification of installation


From the IBM Connections Files application, try to create new document:
1. Click the New button and select Document.

2. Specify a file name for the new document.

3. Verify that the IBM Docs editor opens and that you can edit and save the document.

Chapter 9. Making business applications social 283


4. Navigate back to the IBM Connections Files application to verify that the new document
has been created and enrolled with IBM Connections.

9.4 IBM Forms Experience Builder


Social digital experience is all about users, how they feel and what they think. It does not
matter whether they are internal or external to the organization: Gathering their feedback and
know what they think is critical for our success. IBM Forms Experience Builder is a product
developed exactly with this purpose: To create and manage forms, questionnaire, polls,
surveys and whatever you need to get the feedback of your people.

IBM Forms Experience Builder automates forms-based business processes to help


improve efficiency, customer service, and time to value, making you more responsive to
customer and market needs. With Forms Experience Builder, you can simply compose the
form within your browser, send or publish a URL for respondents, be alerted of submissions
and download submitted data to a spreadsheet for analysis, without assistance from IT. Data
captured in Forms Experience Builder is easily integrated into existing line-of-business
systems using a drag-and-drop web service interface. Since IFR1, IBM Connections Version
4.5 provides a built-in licensing for IBM Forms Experience Builder to provide widgets for IBM
Connections Community Survey and Polls.

In this section, we will document the steps required for IBM Forms Experience Builder
installation and integration with IBM Connections.

We cover the following topics in the subsections:


9.4.1, Preparing for installing IBM Forms Experience Builder
9.4.2, Installing IBM Forms Experience Builder on page 292
9.4.3, Integrating IBM Forms with IBM Connections on page 300
9.4.4, Create Survey in the Community and check the Activity Stream on page 312
9.4.5, Integrating Forms with WebSphere Portal on page 316

9.4.1 Preparing for installing IBM Forms Experience Builder


In order to install IBM Forms Experience Builder, you need to create and prepare the
database and WebSphere Application Server profile.

284 Building and Implementing Social Digital Experiences


Creating and preparing the database
Follow these steps to create and prepare the database required for the Forms Experience
Builder:
1. Start the DB2 Command Window.

2. Run the following commands to create the Form Experience Builder databases:
a. db2 "CREATE DB FEBDB using codeset UTF-8 territory us PAGESIZE 32768"

b. db2 connect to FEBDB

c. db2 "CREATE USER TEMPORARY TABLESPACE LARGE_USERTEMP PAGESIZE 32k MANAGED BY


AUTOMATIC STORAGE EXTENTSIZE 16 PREFETCHSIZE 16 BUFFERPOOL IBMDEFAULTBP"

Chapter 9. Making business applications social 285


After verifying that the right database is created for IBM Forms Experience Builder, we can
proceed to creating a WebSphere Application Server custom profile.

Creating custom WebSphere Application Server profile and federating it


In our scenario, we describe how to create a custom profiles with a servername that is more
meaningful than the commonly used "server1".

Follow these steps to setup WebSphere Application Server profile for Forms Experience
Builder:
1. Go into E:\IBM\WebSphere\AppServer8\bin\ProfileManagement for windows.
For Linux, go to /opt/IBM/WebSphere/AppServer/bin/ProfileManagement.
2. Run the pmt.bat or pmt.sh.

3. On the Profile Management Tool, click on the Create button.

4. Select Custom Profile, and click Next.

286 Building and Implementing Social Digital Experiences


5. Change the "Profile name" field and the "Profile directory" with your custom name, in this
case we use AppSrvFeb01.

6. Use the default Node name and Host name and click Next.

Chapter 9. Making business applications social 287


7. Since now you are going to federate the newly created to Custom Profile, check the SOAP
port inside the Connections Deployment Manager.
If you are not sure, go to WAS Console Deployment Manager.

8. Now go back into Profile Management Tool procedure, add the IBM Connections
Deployment Manager host name, the SOAP Port and an administrative user and
password and click Next.

288 Building and Implementing Social Digital Experiences


9. Leave the defaults for Profile Management Tool.

10. Extend the default lifetime of Certificates to 10 years or the appropriate years you needed.

Chapter 9. Making business applications social 289


11. Take notes of ports assigned by the Profile Management Tool.

12. Check the final summary and create the Websphere Application Server profile.

290 Building and Implementing Social Digital Experiences


13. Uncheck the Launch the first steps console and then click Finish.

At this point we have created and federated a WebSphere Application Server profiles into the
IBM Connections Deployment Manager. Now we need to manually create the WebSphere
Server that host the IBM Forms Experience Builder application.

To create WebSphere Server that hosts the IBM Forms Experience Builder application, log in
the IBM Connections Deployment manager and follow screen in order to create the server:
1. Select Server Types WebSphere application servers and click New.

Chapter 9. Making business applications social 291


2. Select the node that corresponds to the server you wish to create, enter the appropriate
server name, and click Next.

3. Keep the default server template and click Next.

4. Check Generate Unique Ports and click Next.

5. Confirm the new server set up.

At this point, you have successfully created the WebSphere Application Server for IBM Forms
Experience Builder.

9.4.2 Installing IBM Forms Experience Builder


To integrate IBM Forms Experience Builder with IBM Connections, you need to install Form
Experience Builder and configure it.

Installing IBM Forms Experience Builder


To install IBM Forms Experience Builder, follow these steps:
1. Extract the download file to a temp directory. For our scenario, we used F:\forms_files.
2. Run F:\forms_files\launchpad.exe (or .sh, in a Linux environment)

292 Building and Implementing Social Digital Experiences


3. Select the product to be installed. In this example, there is just one.

4. Accept the contract license to proceed with the installation.

Chapter 9. Making business applications social 293


5. Change the default folder installation path.

6. Select IBM Forms Experience Builder Connections Integrator.

294 Building and Implementing Social Digital Experiences


7. Insert the values of the Application Server profiles you previously created. In the
drop-down menu, the values for profile name and Application Server name should be
automatically discovered.

Chapter 9. Making business applications social 295


8. Configure the database source values, with the same jdbc URLs and providers where you
created the database in the previous steps.

9. Get ready for the mail notification, and fill the values accordingly to your configuration.

296 Building and Implementing Social Digital Experiences


10. Insert the Communities URL for your existing Connections deployment. This should be
the value stored in your LotusConnectionsConfig.xml file.

11. Click Next will start the installation.

Chapter 9. Making business applications social 297


12. Now everything should be correctly installed.

After IBM Forms Experience Builder is installed, you can proceed with the configuration by
integrating with IBM HTTP Server.

Configuring IBM Forms Experience Builder with IBM HTTP Server


Although this is not a mandatory step, we highly recommend that you do so.
1. Go to Deployment Manager console and select Application Types WebSphere
enterprise applications

2. Click into Forms Experience Builder.

298 Building and Implementing Social Digital Experiences


3. Click the Manage Modules.

4. In the Manage Modules, be sure that both WebSphere Application Server "FebServer01"
and the WebServer1 you defined are checked, for both your Forms modules.

Chapter 9. Making business applications social 299


5. Go back to Servers, Server Types - Web servers, select your webserver and then click
Generate Plug-in and the click Propagate.
6. Restart your HTTPServer and verify that that http://server/forms shows the Forms
application.

9.4.3 Integrating IBM Forms with IBM Connections


Integrate IBM Connections with IBM Forms Experience Builder

To integrate, follow these steps:


1. Check inside the C:\IBM\Forms\extensions\Connections_config.properties if the
following parameters are uncommented and set:
ibm.nitro.integrations.connections.Config.communityRoot=h@nowiki@server/communitie-
s ibm.nitro.integrations.connections.Config.authAlias=connectionsAdmin ( or febAdmin it
is only important the j2c alias is an adiministrative user )
2. Verify the following jar files exist in C:\IBM\Forms\extensions (/opt/ibm/Forms/extensions
(non-Windows))
ibm.fsp.ext.org.apache.commons.configuration-1.5_r2.jar
ibm.fsp.ext.org.apache.commons.digester-1.8.0.0_r5.jar
ibm.fsp.ext.sonata-4.5.0.20130311-1253_r1.jar
ibm.fsp.ext.waltz-4.5.0.20130311-1253_r1.jar
ibm.nitro.integrations.connections.core-8.5.0.244.jar
ibm.nitro.integrations.connections.lifecycle-8.5.0.244.jar
If they don't exist, copy from
C:\IBM\FormsExperienceBuilder\deploy\widget\extensions
3. Search in the F:\IBM\Forms\extensions (/opt/ibm/Forms/extensions (non-Windows)) for
Builder_config.properties.
4. At the end of the file uncomment ibm.nitro.NitroConfig.serverURI and set the forms
URL. In our scenario, it is:
ibm.nitro.NitroConfig.serverURI = http:lo2w03-utility1.demos.ibm.com/forms

300 Building and Implementing Social Digital Experiences


5. In the WebSphere Administrative console under the WebSphere Server, click on
FEBServer and check the default host port number.

6. Open a browser to http://lo2w03-utility1.demos.ibm.com:9082/forms.


7. Now we complete the configuration.

a. Starting setup: going to phase1. Click on the fix button.

Chapter 9. Making business applications social 301


After the Phase is completed you should see the screen below, enter the WebSphere
Administrative User.

302 Building and Implementing Social Digital Experiences


After the login you should see the image below with all green rectangles. Click on the
Continue to Manager button.

Chapter 9. Making business applications social 303


Creating extra table spaces for IBM Forms Experience Builder
At this point, we need to extra table spaces in the database to minimize the database size as
applications are created.

Follow these steps:


1. On the db2 prompt, connect to the forms database (FEBDB):
db2 > connect to FEBDB

2. Run the following commands:


CREATE BUFFERPOOL FEB4KBP IMMEDIATE SIZE 250 AUTOMATIC PAGESIZE 4 K

304 Building and Implementing Social Digital Experiences


CREATE LARGE TABLESPACE USERSPACE4K PAGESIZE 4 K MANAGED BY AUTOMATIC STORAGE
BUFFERPOOL FEB4KBP
CREATE BUFFERPOOL FEB8KBP IMMEDIATE SIZE 250 AUTOMATIC PAGESIZE 8 K
CREATE LARGE TABLESPACE USERSPACE8K PAGESIZE 8 K MANAGED BY AUTOMATIC STORAGE
BUFFERPOOL FEB8KBP
CREATE BUFFERPOOL FEB16KBP IMMEDIATE SIZE 250 AUTOMATIC PAGESIZE 16 K
CREATE LARGE TABLESPACE USERSPACE16K PAGESIZE 16 K MANAGED BY AUTOMATIC STORAGE
BUFFERPOOL FEB16KBP

Register resource bundle for Forms Experience Builder iWidget titles


and descriptions
To register resource bundle for Forms Experience Builder iWidget titles and descriptions,
follow these steps:
1. Extract F:\IBM\FormsExperienceBuilder\deploy\widget\
ibm.nitro.integrations.connections.client-8.5.0.244.zip and copy the content to
F:\IBM\Connections\data\shared\customization\strings.

Chapter 9. Making business applications social 305


2. Register the resource bundle file with Connections by running the following commands:
cd F:\IBM\WebSphere\AppServer\profiles\Dmgr01\bin\
wsadmin -lang jython -user admin -password admin123 -port 8879
execfile("connectionsConfig.py")
LCConfigService.checkOutConfig("F:/temp",AdminControl.getCell())
3. Go to F:\tempids and edit the LotusConnnections-config.xml file.
Near the bottom of the file look for the section, add the following in that section:
Save and Close the file.

<resources>
<widgetBundle prefix="formiwidget"
name="ibm.nitro.integrations.connections.client.resources"/>
</resources>

4. 4. Back in the WebSphere Administrative console, run:


LCConfigService.checkInConfig("F:/temp",AdminControl.getCell())
5. Copy
F:\IBM\FormsExperienceBuilder\deploy\widget\ibm.nitro.integrations.connections.packagi
ng.client-8.5.0.244.jar
to
F:\IBM\Connections\data\shared\provision\webresources\ibm.nitro.integrations.connectio
ns.packaging.client-8.5.0.244.jar
6. Register the widget in widgets-config.xml by running the following commands:

306 Building and Implementing Social Digital Experiences


execfile("communitiesAdmin.py")
CommunitiesConfigService.checkOutWidgetsConfig("F:/temp",AdminControl.getCell()
)
7. Edit widgets-config.xml.
Find the resource section that has a type="community" and add the following lines:

Note: Make sure to update the section in bold below to be your form server : port

<widgetDef defId="Surveys" description="Surveys.desc" bundleRefId="formiwidget"


primaryWidget="true" showInPalette="true" modes="view edit fullpage"
uniqueInstance="true" loginRequired="false"
url="{webresourcesSvcRef}/web/com.ibm.form.integrations.formiwidget/Surveys.xml
"
helpLink="http://www-10.lotus.com/ldd/lcwiki.nsf/dx/Using_surveys_in_Connection
s_communities"
iconUrl="{webresourcesSvcRef}/web/com.ibm.form.integrations.formiwidget/images/
survey_widget_icon.png">

<itemSet>

<item name="formSeverBaseUrl" value="/forms"/>


<item name="surveyNumberInOverview" value="5"/>

<item name="communitiesSvcRef" value="{communitiesSvcRef}"/>


<item name="webresourcesSvcRef" value="{webresourcesSvcRef}"/>
<item name="opensocialSvcRef" value="{opensocialSvcRef}"/>
<item name="version" value="{version}"/>
</itemSet>

<lifecycle
remoteHandlerURL="http://lo2w03-utility1.demos.ibm.com:9082/forms/secure/org/li
fecycle" remoteHandlerAuthenticationAlias="connectionsAdmin">
<event>community.members.added</event>
<event>community.members.removed</event>
<event>widget.added</event>
<event>widget.removed</event>
<event>community.updated</event>
<event>community.visibility.changed</event>
<event>community.prepare.delete</event>
<event>community.members.modified</event>
<event>community.org.changed</event>
</lifecycle>
</widgetDef>

Chapter 9. Making business applications social 307


<widgetDef defId="FeaturedSurvey" description="FeaturedSurvey.desc"
bundleRefId="formiwidget" primaryWidget="false" showInPalette="true"
modes="view edit" loginRequired="false" uniqueInstance="false"
url="{webresourcesSvcRef}/web/com.ibm.form.integrations.formiwidget/SingleSurve
y.xml"
iconUrl="{webresourcesSvcRef}/web/com.ibm.form.integrations.formiwidget/images/
survey_widget_icon.png">
<itemSet>
<item name="formSeverBaseUrl" value="/forms"/>
<item name="communitiesSvcRef" value="{communitiesSvcRef}"/>
<item name="webresourcesSvcRef" value="{webresourcesSvcRef}"/>
<item name="opensocialSvcRef" value="{opensocialSvcRef}"/>
<item name="version" value="{version}"/>
</itemSet>
</widgetDef>

Note: This part can be a bit tricky finding where to add these lines in the existing file.
We put them just below the close tag for.

<widgetDef defId="Library"....
.....
</widgetDef>

and above

<widgetDef bundleRefId="quickrCommunityLibrary_res"
defId="LinkedQuickrCommunityLib"

8. Save and close the file.


CommunitiesConfigService.checkInWidgetsConfig("F:/temp",AdminControl.getCell
())
9. Restart Communities and CommonEar Applications.
10. After restart, verify Connections can access the
ibm.nitro.integrations.connections.packaging.client-8.5.0.244.jar resource by going to
http://lo2w03-utility1.demos.ibm.com/connections/resources/web/com.ibm.form.int
egrations.formiwidget/Surveys.xml
If you open a community and go to customize, you should see the survey and
FeaturedSurvey listed.

Configure widget in homepage and Activity Stream


Before to start the configuration we need to enable the homepage administration:

308 Building and Implementing Social Digital Experiences


1. Go to WebSphere Administration Console under Websphere Enterprise Application, click
on Homepage and the click on Security role to users/group mapping.

2. Click Administration in the navigation and then click the Add another widget button.

3. Select the following options:


Open Social Gadget:
- In the Security section, choose Trusted.

Chapter 9. Making business applications social 309


- In the UI integration points section, check the Show for Activity stream events check
box.
- In the Server access via Proxy section, select All servers.
4. Add a Widget Title and the URL address and the secure URL address.
The gadget URL is
${COMMON_CONTEXT_ROOT}/web/com.ibm.form.integrations.formiwidget/Survey
InStream.xml.

Note: It should be written exactly like this. Do NOT select any of the other options.
This widget only works in the Activity Stream, and will not work on the My Page with
other widgets.

Do NOT select any of the other options. This widget only works in the Activity
Stream, and will not work on the My Page with other widgets.

310 Building and Implementing Social Digital Experiences


5. Click save.
6. Enable the gadget by clicking the Enable button in the Disabled widgets list.

Chapter 9. Making business applications social 311


At this point the widget survey is enabled and ready to use.

9.4.4 Create Survey in the Community and check the Activity Stream

Create the survey


Now that IBM Forms Experience Builder is installed and integrated with IBM Connections,
follow these steps to create a survey:
1. Go to the IBM Connections Community that has IBM Forms Experience Builder
configured.
2. Select Surveys and then click Create Survey.

3. Enter the survey name and description and then click Continue.

4. Click Ask Question.

312 Building and Implementing Social Digital Experiences


5. Enter the question for the survey, the type of the question, and the survey answer options,
and click OK.

6. When you added all the questions for the survey, click Save to save the survey.

Chapter 9. Making business applications social 313


7. To activate the survey, click Start.

8. Enter the end date for the survey and click Start.

9. To see the survey results, click the survey link.

10. Click Submit.

314 Building and Implementing Social Digital Experiences


11. Click View Results.

The following figure shows the testSurvey result.

Chapter 9. Making business applications social 315


Check the survey in the Activity Stream
Since IBM Connections 4.0 all application user interactions are tracked in the Activity Stream,
when the survey is created the event is tracked under the "Discovery" sections in the
Homepage application.

The Discovery sections displays the latest public updates from all the applications. When a
user click on the message inside the Discovery sections the Embedded Experiences widget
shows the survey inside a frame.

9.4.5 Integrating Forms with WebSphere Portal

Adding the portlet with the IBM Installation Manager


Follow these steps to add the portlet with IBM Installation Manager:
1. Run the IBM Installation Manager and click on the Modify icon.

316 Building and Implementing Social Digital Experiences


2. Select IBM Forms Experience Builder and click on Next.

3. Click on the Browser button and navigate to the PortalServer folder.


In the second field, enter the hostname of your portal installation with the configuration
server, the URL should be http://portalserver.example.com/wps/config.
Enter a valid administrative user and password and validate the information, after the
validation is successful, click Next.

Chapter 9. Making business applications social 317


4. At this point check in the Adding Feature window if all information are OK and click the
Modify button.

If the modification is completed successful, you should see a screen like the image below.

Creating a portal page and adding the Forms portlet


Follow these steps to create a portal page and add the Forms portlet:

318 Building and Implementing Social Digital Experiences


1. In IBM WebSphere Portal, login with an administrative user and click the Edit Mode link.

2. Click on the More button and then click New Sibling Page.

3. Chose a custom name for your page.

Chapter 9. Making business applications social 319


4. Click on the Content tab. In the search text area, write the word "forms". At this point you
should be able to see the Forms Experience Portlet.

5. Click Add to page.

320 Building and Implementing Social Digital Experiences


6. Click on the Layout tab and select the 1 column layout. After the layout is changed, click
Save.

7. In the Forms Experience Portlet area, click on icon in the upper right corner, a drop-down
menu appears. Select Edit Shared Settings.

8. Enter the forms URL and the portal proxy URL. In our scenario, they are:
Forms URL: h@nowiki@lo2w03-utility1.demos.ibm.com/forms
Proxy URL: http:lo2w03-utility1.demos.ibm.com:10039/wps/proxy

Chapter 9. Making business applications social 321


9. Click OK.

Configure the AJAX Proxy


To configure the AJAX Proxy, follow these steps:
1. Edit the proxy-config.xml with an editor. The location of the proxy-config.xml is in the AJAX
Proxy Configuration ear .

322 Building and Implementing Social Digital Experiences


2. In the folder \IBM\FormsExperienceBuilder\deploy\portlet, open the
proxy-config-Portal-8.xml.

3. Edit the URL properties and write the forms URL. In our scenario, this is
http://lo2w03-utility1.demos.ibm.com/forms/* .

<policy url="http://lo2w03-utility1.demos.ibm.com/forms/*" acf="none">


<actions
<method>GET</method>
<method>HEAD</method>
<method>POST</method>
<method>PUT</method>
<method>DELETE</method>

Chapter 9. Making business applications social 323


</actions>
<cookies>
<cookie>LTPA</cookie>
<cookie>LTPA2</cookie>
<cookie>JSESSIONID</cookie>
<cookie>LtpaToken</cookie>
<cookie>LtpaToken2</cookie>
<cookie>SimpleToken</cookie>
</cookies>
<headers>
<header>x-lfn-url-callback</header>
<header>User-Agent</header>
<header>Accept*</header>
<header>Vary</header>
<header>Location</header>
<header>Content*</header>
<header>Authorization*</header>
<header>X-Method-Override</header>
<header>Set-Cookie</header>
<header>If-Modified-Since</header>
<header>If-None-Match</header>
<header>X-Server</header>
<header>X-Update-Nonce</header>
<header>X-Requested-With</header>
<header>com.ibm.lotus.openajax.virtualhost</header>
<header>com.ibm.lotus.openajax.virtualport</header>
</headers>
</policy>
<meta-data>
<name>forward-http-errors</name>
<value>true</value>
</meta-data>

4. Edit the proxy-config.xml.

324 Building and Implementing Social Digital Experiences


5. Paste the policy created under the last policy in proxy-config.xml.

6. In the proxy-config.xml, search the tags and the code below:

<meta-data>

Chapter 9. Making business applications social 325


<name>forward-http-errors</name>
<value>true</value>
</meta-data>

7. To check in the configuration, run the command below:

ConfigEngine.bat -DWasPassword=admin -DPortalAdminPwd=admin123


checkin-wp-proxy-config
-DProxyConfigFileName="E:\IBM\WebSphere\wp_profile\config\cells\lo2w03-utility1
Cell\applications\AJAX Proxy Configuration.ear\deployments\AJAX Proxy
Configuration\wp.proxy.config.war\WEB-INF\proxy-config.xml"

To run the this command open a command prompt or a shell if the enviroment is Linux,
and navigate to the folder \IBM\WebSphere\wp_profile\ConfigEngine , past and the run
the command. When the command finishes execution, you should see a informational
message "BUILD SUCCESSFUL"

326 Building and Implementing Social Digital Experiences


8. Open the WebSphere Administrative Console and go in WebSphere enterprise
applications. Click on the checkbox of the Ajax Proxy Configuration application and
click on the Stop button.

9. Now start the application. After the start, the AJAX Proxy is successful configured with the
new policy.

Chapter 9. Making business applications social 327


Adding a survey in the Forms Experience portlet
To add a survey in the Forms Experience portlet, follow these steps:
1. In the Forms Integration pages, enable the Edit Mode. In portlet properties, click Edit
Shared Settings.

2. Click on the Browse Applications button.

3. Select a survey from the list and click OK.

328 Building and Implementing Social Digital Experiences


4. Click OK and save the page.

At this point you have successful added the survey in a Websphere Portal page.

Chapter 9. Making business applications social 329


330 Building and Implementing Social Digital Experiences
10

Chapter 10. Searching your social website


IBM Connections search integration in IBM WebSphere Portal allows users to perform search
queries and view query results for IBM Connections content within the context of their portal
environment.

This integration point is enabled by configuring the portal search center component to include
IBM Connections content as part of the related search results. You also must configure a
component to allow the navigation from the portal search center to the portlets so that users
can view the Connections-related search results.

Portal search center component has been extended to show customized information for the
connections content in the search result like service icon to indicate if the content is a blog,
wiki, activity, etc. and also the URL for the connections content is customized to take user to
the respective details portlet.

Prerequisites
IBM Connections portlet package include the relevant pre-requisites for integrating the
connections content in portal search center. After the Connections portlets are installed and
deployed successfully, run the following command which copies the required jars in the portal
runtime:

ConfigEngine configure-SNPortletsSearch -DICversion=[connection-version]


-DWasPassword=[was-admin-pwd] -DPortalAdminPwd=[portal-admin-pwd]

Copyright IBM Corp. 2014. All rights reserved. 331


10.1 Integrating Connections and Portal search overview
Portal currently provides two search frameworks: search collections and search service. The
one you use depends on whether you value performance or ease of maintenance.

Search collections
Using search collections, the Portal Search Engine (PSE) which is a text search engine,
crawls and indexes IBM Connections content and stores it in an Operating System files
directory (also called collection). PSE internally uses the Seedlist Framework to index
content. The indexing process happens at a regular interval updating the changes made in
the Connections server to the collections directory.

The advantage of this approach is that it removes extra network traffic to the Connections
server during the search process, making information retrieval fast. One disadvantage is that
the crawler must run frequently to synchronize local content with all the latest content on the
Connections server. It can do a better relevance ranking of search results, as search results
(including Portal and Connections) are served by the Portal engine only.

Search service
Search service uses the Connections API which internally uses REST framework to search
content directly from a Connections server. Connections and Portal integration uses the
"Remote Content Server Search Service Type" (referred to as RCSS type), using the
ATOM/REST APIs exposed by Connections. It is a federated approach in which the search is
federated between Portal and Connections instances.

The advantage using this approach is that the maintenance is easy as there is no Collections
to maintain. Since it is a live search, the disadvantage of Connections is overload during
search process.

Restriction: Currently, you must implement the search integration of Connections Content
Manager (CCM) documents using the Search Service approach. The search collections
method is not supported at this time.

10.2 Configuring search collections


To configure a search collection, specify one content source for each Connections seed list.
Each Connections service (for example, Profiles, Communities, or Blogs) exposes its own
seed list so there is one content source per Connections service.

Important: Ensure that these IBM Connections seedlists are available with basic
authentication. Depending on your security configuration, basic authentication might be the
default or can be accomplished with an additional virtual host in your HTTP server, by
addressing a WebSphere node directly, or by altering Tivoli Access Manager or SiteMinder
configuration to open a basic authentication protected endpoint.

Follow these steps to configure a search collection:


1. Log in to IBM WebSphere Portal Console as an Administrator.
2. Navigate to Administration Search Administration Manage Search Search
Collections. Click New Collection.

332 Building and Implementing Social Digital Experiences


3. Specify the location, and enter a name for the collection, IBMConnections, and the
indexing language of the collection. Click OK.

4. We can find that the collection IBMConnections is created and is displayed in Search
Collections. Click on the link IBMConnections.

5. In the Content Sources screen, click the button New Content Source for this collection. In
the Content source type drop down list, choose Seedlist provider. Enter the Content
Source Name as Activities, Collect documents linked from this URL as
https://connectionsww.demos.ibm.com/activities/seedlist/myserver as shown below.
This is the Seedlist URL.
Here, the Seedlist URL for a Connections service is of the form
https://:port//seedlist/myserver:

Chapter 10. Searching your social website 333


6. In the Security Tab of the same screen, enter the Connections server Administrator User
Name, Password as wasadmin/passw0rd and Host name. Click Create, then Save to
save your content source.

7. Repeat Steps 5, 6 to add Content Sources for other services like Communities, Profiles,
Wikis, Blogs, Forums, Files and Bookmarks. The table below lists all the Content Sources
that needs to be created in IBMConnections.

Content Source Seedlist URL


Name

Communities h@nowiki@connectionsww.demos.ibm.com/communities/seedlist/myserver

Profiles https:connectionsww.demos.ibm.com/profiles/seedlist/myserver

Wikis h@nowiki@connectionsww.demos.ibm.com/wikis/seedlist/myserver

Blogs https:connectionsww.demos.ibm.com/blogs/seedlist/myserver

Forums h@nowiki@connectionsww.demos.ibm.com/forums/seedlist/myserver

Files https:connectionsww.demos.ibm.com/files/seedlist/myserver

Bookmarks h@nowiki@connectionsww.demos.ibm.com/dogear/seedlist/myserver

8. Once the Content Sources are added successfully, click on Start Crawler on each of the
Content Source. Then, you can find that the Status changes from Running to Idle once it
has indexed and collected the documents. Now, the Documents count changes from 0 to
some number, if there are documents available in the service.
The figure below lists all the created content source names :

334 Building and Implementing Social Digital Experiences


Page 1 :

Page 2 :

9. Now, Navigate to Search Center, and try to search for any word which is stored in a
Connections server. Type the search word in the Text Box. Click on the search icon in the
search box as shown below.

10. The search returns results as shown below. Here we can find that the search returns
results from Portal and Connections. The scope "All sources" is a federated search and it
searches content from all the Collections across Portal and Connections. If you want to
search only from Portal content or Connections content, we can create a scope that
narrows to a specific collection (WCM JCRCollection1 or IBMConnections). The scope
can be created from Portal Administration portlet Manage Search Search
Scopes. Then we can choose that specific scope while performing search instead of All
Sources scope.

Chapter 10. Searching your social website 335


11. When you click on the search result, you are navigated to the respective details portlet to
view the details of the selected content as shown below.

336 Building and Implementing Social Digital Experiences


10.3 Configuring remote content search service
In this section, we show you how to configure and search Portal and Connections content
using Remote Content Search Service.

10.3.1 Configuring a Connections user to have the Portal Administrator role


First, we need to configure Portal to provide Administrator role for a Connections user.

Follow these steps to configure the Connections user:


1. Log in to IBM WebSphere Portal using the portal administrator credentials.
2. Navigate to Portal Administration Portlet by clicking on Administration tab next to Home
tab on portal page. Then click on Resource Permissions.

3. From the Resource Types, select Virtual Resources. For the PORTAL resource, click the
Assign Access icon. Edit the Administrator role as shown below.

4. Click on Add button below to add any Connections user or user group as Portal
Administrator.

Chapter 10. Searching your social website 337


5. Search the Connections user. Select the check box and click OK to add the user as a
Portal Administrator.

At this stage you have successfully added this Connections user as Portal Administrator.
This same user must be used to configure the RCSS search collection further.

Note: Look and feel of screens may change depending on theme and skin applied on
your portal.

10.3.2 Configuring Portal to create a RCSS service


You need to configure the Remote Content Search Service (RCSS) in IBM WebSphere
Portal. RCSS is a live search service which uses the Rest Framework Connections API to
search content directly from a Connections server.

Follow these steps in IBM WebSphere Portal to create the RCSS service:
1. Log in to IBM WebSphere Portal Console using credentials
aalain@demos.ibm.com/passw0rd (username/password).
2. Navigate to Administration Search Administration Manage Search Search
Services. Click New Search Service.

338 Building and Implementing Social Digital Experiences


3. In the new service, enter the service name as ConnectionsRCSS and Search service
implementation as Remote Content Server Search Service Type. Edit some of the
parameters by clicking on the Edit Parameter icon as below.

4. Add or modify the following parameters in the Edit Search Service Parameter screen.

Parameter Key Parameter Value

SearchRequestUrl /atom/search/results

RestServiceUnSecureUrl /search

ContentType RemoteContent

QueryParam includeportalcustomizations=true&includeField=communi
ty_id&query

IgnoreAllSourcesSearch false

RestServiceSecureUrl /search

StartParam start

AllSourcesParam scope

QueryLangParam queryLang

DisplayProviderId ConnRCSS

RequestLocaleParam locale

LocationParam scope

RequestLocationType /atom/scopes

Chapter 10. Searching your social website 339


5. Click OK to save your changes.
6. Log out and log in back to Portal using aalain user credentials.
7. Navigate to Administration Search Administration Manage Search Search
Scopes. Click New Scope.

8. In the Scope Name, enter ConnectionsScope. Click on Select Locations.

9. Select the Remote Content Server Service created as shown below. Click OK to save your
changes.

10. You can find that the Remote Content Server is displayed under Location. Click OK to
create the scope ConnectionsScope.

11. Now, navigate to Search Center, and try to search for any word which is stored in the
Connections server. Type the search word in the Text Box. Choose the scope as
ConnectionsScope and click on the search icon in the search box. The search returns
results as shown below. Here you can find that the search returns results only from

340 Building and Implementing Social Digital Experiences


Connections as the scope created is pointing to RCSS service which searches directly
from Connections Server.

10.4 Setting up portal search/summary portlet to Connections


details portlet navigation
IBM Connections portlet interacts with IBM WebSphere Portal using two mechanisms:
Using Property Broker to provide eventing between Tags Portlet and other Details Portlet.
(covered in separate section 7.2.5, Configuring tag portlet using configuration and wires
on page 119.
Using Shared Render Parameters for navigation from IBM Connections Summary Portlet
and Portal Search Center to IBM Connections Details Portlet.

IBM Connections portlet uses Piece of Content (POC Resolver) and Shared Render
Parameter in combination to render the exact connections data in request within the IBM
Connections Details portlet.

In this process, Search Center and Connections Summary Portlet generates the required
POC URLs. When user clicks on such link, the call goes to Portal POC resolver and then
based on the URL, it delegates the call to Connections Portlet POC resolver.

This POC resolver identifies the required portal page and then from POC URL, it extracts the
required values and publishes required Public Render Parameter which enables portlets to
display the right data.

So before moving forward it is important to verify below preconditions:


Connections Portlet POC resolver jar is properly installed. This jar must be available in
Portal Shared/app directory.
IBM Connections Portlet is installed and configured properly.

There are two broader categories how POC Resolver handles navigation. Any Connections
content could either be community content or standalone content. Further there could be
three possibilities from the type of Search result or Summary portlet item for which navigation
is requested.
Search result/Summary portlet content belongs to the community which is having a page
configured on this portal. In this case, POC resolver will take user to the configured
community page where required portlet is deployed and can render data.

Chapter 10. Searching your social website 341


If search result is community item, but for this community no page is configured on the
portal. Then this content would be treated as standalone content.
Standalone connections content is rendered in default (non community pages/portlets) in
portal.

For any search result for which we have mapped community page in portal, we need not
perform any separate configuration. POC Resolver identifies the community page and then
calls the most appropriate page which has corresponding portlet deployed on page.

10.5 Configuring standalone content navigation


For this, POC resolver requires the parameter Page unique name value set in the page where
required portlet is deployed to navigate.

For example to setup navigation for any connections profiles result, there must be a portal
page in which profiles portlet must be deployed. In addition, you must provide the required
Page parameter by following the steps below:
1. Login to portal as portal administrator and navigate to Administration and then drill down
to Manage pages option. There, it will list down the pages hierarchy.

2. Navigate over the pages and locate the page where profiles portlet is deployed and you
want user to navigate from Search Center or summary portlet for non community
standalone connections content. You may see Edit Page Properties icon besides the page
name. Click on that to enter into page properties.

342 Building and Implementing Social Digital Experiences


3. This will let you specify Unique Name for this page. For profiles navigation page, unique
name must be ibm.conn.profiles as shown in the screen shot below.

4. Click OK on the page below. It will take you back to the page listing view and this page
would get listed with its Unique name as below.

Chapter 10. Searching your social website 343


5. After completing step 4, you have enabled POC resolver to locate and navigate user to
this page when user will click on any profiles stuff on search center result or summary
portlet.
6. To setup Navigation pages for other connections services like Blogs, Forums etc repeat
steps 2 and 3 and provide service specific unique name as specified in table below.

Connections Service Portlet Page Unique Name

Profiles ibm.conn.profiles

Activities ibm.conn.activities

Blogs ibm.conn.blogs

Wikis ibm.conn.wikis

Forums ibm.conn.forums

Bookmarks ibm.conn.dogear

After specifying proper page unique name, it should look something similar to the screen
below.

By Specifying the Page Unique name to the pages on which we want to navigate when a
search result came from specific connections service type content, the IBM Connections
Portlet deployed on that will surface the search result.

344 Building and Implementing Social Digital Experiences


11

Chapter 11. Social analytics


Social analytics is a critical part to identify the usage of your social portal. IBM Connections
and IBM Websphere Portal use different way to gather statistical data.

Social analytics for IBM Connections


IBM Cognos Connection is used to gather statistical data from IBM Connections. IBM Cognos
Connection provides a single access point to all corporate data available in IBM Cognos
software. You can use IBM Cognos Connection to work with entries such as reports, analysis,
queries, agents, metrics, and packages. You can also use IBM Cognos Connection to create
shortcuts, URLs, and pages, and to organize entries. You can personalize IBM Cognos
Connection for your own use.

You can use IBM Cognos Connection to create and run reports and cubes and distribute
reports. You can also use it to create and run agents and schedule entries.

Social analytics for IBM WebSphere Portal


IBM WebSphere Portal, on the other hand, uses IBM Active Site Analytics to provide usage
information. By default, the common supported way is to use the built-in scripts to write all
statistical data gathered with IBM Active Site Analytics in two data collector:
IBM Coremetrics
IBM HTTP Server access log.

Another way is to write a custom aggregator script for IBM Active Site Analytics. With this way,
you can specify a custom analytics software for collect all statistical data.

Copyright IBM Corp. 2014. All rights reserved. 345


11.1 Integrating with IBM Cognos
IBM Cognos Connection is the system used to gather and manage statistics and reporting in
IBM Connections. This reporting system has more than 100 types of reports.

In this section, we discuss the importance of IBM Cognos in a social business environment
and how it can be used with IBM Connections and IBM WebSphere Portal for social analytics.

We cover the following topics in the subsections:


11.1.1, Understanding IBM Cognos in a social business environment
11.1.2, Setting up IBM Cognos to work with IBM Connections on page 347
11.1.3, Understanding how Metrics application works in IBM Connections on page 347
11.1.4, Built-in metrics for IBM Connections on page 354
11.1.5, Build a custom report for IBM Connections on page 369
11.1.6, Integrating with IBM WebSphere Portal on page 390

11.1.1 Understanding IBM Cognos in a social business environment


"Not everything that can be counted counts, and not everything that counts can be counted."

(Albert Einstein)

One of the biggest challenges for social business is measuring its impact through
organization. The kind of transformation we expect when adopting a social business platform
is so deep that we do not have a single metrics to measure it all. Changes are globally
encompassing every aspect of organizations. We don't have more processing powers, or
more fast download, we enjoy a global change, and we need a composition of metrics to
understand the change, promote change, and adapt to changes.

Measuring the engagement of your employees, and your externals and internal people is
crucial to your success and Metrics is the key to your organization success. IBM Connections
packs the power of IBM Cognos Business Intelligence, a full feature suit for business
analytics. Cognos ships with pre-built metrics for your environment, and it can also be
customized to extend those metrics to capture events of your choice. We will later look more
in-depth of the built-in metrics.

Cognos harnesses the social and organizational data and helps take you decisive action
across the enterprise. From identifying new patterns and trends for your product development
team, to protecting your brand image and micro-segmenting customers to refine marketing
campaigns, or targeting prospective new hires for HR, and to improving the overall customer
experience, IBM Social Media Analytics can help your business:
Capture data from your platform to understand attitudes, opinions and trends.
Leverage adoption to drive your social business platform to the full potential.
Create customized actions and initiative to be operated in your organization.
Identify your influencers to determine the primary influencers and stakeholders inside
your organization.

We can summarize the life cycle of social business analytics into a three phases iterative
diagram as follows.

346 Building and Implementing Social Digital Experiences


11.1.2 Setting up IBM Cognos to work with IBM Connections
For IBM Cognos to work with IBM Connections, you need to install the following two
components:
IBM Cognos Business Intelligence
IBM Cognos Transformer

Successful installation of WebSphere Application Server is a prerequisite. Other components,


such as a DB2 Runtime client, might be needed depending on your operating system.

Note: For detail information on how to set up IBM Cognos to work with IBM Connections,
refer to this article, How to set up Cognos and metrics for Connections 4.5.

11.1.3 Understanding how Metrics application works in IBM Connections


The basic data flow is described in the image below.

Chapter 11. Social analytics 347


Understanding how the Metrics application works under the hood is useful for understanding
what we can and cannot do with the reporting infrastructure. Let's examine how data flow are
captured into the Metrics application. Basically, every time a user reads a content, a "post"
goes to the Metrics servlet. When a user creates a piece of content, each application fires an
event directly into the JMS Queue that will be later consumed by the Metrics application.

Let's login to the Communities Application, and then into the forum view. Every time we read
an object, a call to the Metrics application is performed. Now let's suspend the messaging
feature of Metrics, so messages get queued, and let's go to Communities and start a new
topic.

348 Building and Implementing Social Digital Experiences


When clicking Save, we notice a call to eventmetrics servlet. This is a POST to eventTracker
servlet composed this way:

http://lo2w03-utility1.demos.ibm.com/metrics/service/eventTracker?contentId=ef80a1ac-7996
-45cc-a442-469a19d40c30&itemType=TOPIC&source=FORUMS&community=bbd20ecc-48
67-4881-82a9-bdd5b497880b&contentTitle=Test%20Topic%20Metrics&contentLink=http%3
A%2F%2Flo2w03-utility1.demos.ibm.com%2Fforums%2Fhtml%2Ftopic%3Fid%3Def80a1ac
-7996-45cc-a442-469a19d40c30&contentContainerId=fea78da8-7ffa-4a69-b55f-b7b45d28e2
46&contentContainerTitle=Social%20Digital%20Experiecnes&contentContainerLink=http%3
A%2F%2Flo2w03-utility1.demos.ibm.com%2Fforums%2Fhtml%2Fforum%3Fid%3Dfea78da
8-7ffa-4a69-b55f-b7b45d28e246

The arguments into headers are the following ones:

This happens for "read" events.

Now let's jump back into the past to understand what happened when we first created this
forum.

Chapter 11. Social analytics 349


The Forum application wrote a message directly into a JMS Queue, that will be later
consumed by the Metrics application. To provide evidence of this, before creating the forum,
let's pause this message queue (going under Runtime tabs of the Application Server).

You can find the queue under Buses at Runtime tab of the following breadcrumb.

350 Building and Implementing Social Digital Experiences


The message queue will be like this.

Opening the last message, you can see the way it is structured.

0000000020: 5f65725f 74617267 65745f73 75626a65 63745f67 '_er_target_subject_g'


0000000040: 726f7570 733d0d0a 5f65725f 6974656d 5f6e616d 'roups=.._er_item_nam'
0000000060: 653d5465 73742054 6f706963 204d6574 72696373 'e=Test Topic Metrics'
0000000080: 0d0a5f65 725f7072 6f706572 74696573 3d7b7d0d '.._er_properties={}.'
0000000100: 0a5f6572 5f6e6f74 6966795f 7072696d 6172795f '._er_notify_primary_'
0000000120: 61637469 6f6e5f76 616c7565 3d0d0a5f 65725f69 'action_value=.._er_i'
0000000140: 74656d5f 6e756d62 65725f63 6f6d6d65 6e74733d 'tem_number_comments='
0000000160: 0d0a5f65 725f6e6f 74696679 5f707269 6d617279 '.._er_notify_primary'
0000000180: 5f616374 696f6e5f 6e616d65 3d0d0a5f 65725f6d '_action_name=.._er_m'
0000000200: 65737361 67653d0d 0a5f6572 5f697465 6d5f7069 'essage=.._er_item_pi'
0000000220: 63747572 655f7572 6c3d0d0a 5f65725f 6e6f7469 'cture_url=.._er_noti'
0000000240: 66795f73 65636f6e 64617279 5f616374 696f6e5f 'fy_secondary_action_'
0000000260: 76616c75 653d0d0a 5f65725f 726f6c6c 75705f6e 'value=.._er_rollup_n'

Chapter 11. Social analytics 351


0000000280: 756d6265 725f636f 6d6d656e 74733d0d 0a5f6572 'umber_comments=.._er'
0000000300: 5f616374 696f6e5f 72657175 69726564 5f6f7065 '_action_required_ope'
0000000320: 72617469 6f6e5f67 726f7570 733d0d0a 5f65725f 'ration_groups=.._er_'
0000000340: 6d6f6465 72617469 6f6e5f63 6f6d6d65 6e743d0d 'moderation_comment=.'
0000000360: 0a5f6572 5f736f75 7263655f 64697370 6c61795f '._er_source_display_'
0000000380: 6e616d65 3d0d0a5f 65725f67 656e6572 61746f72 'name=.._er_generator'
0000000400: 5f69643d 0d0a5f65 725f6974 656d5f6e 756d6265 '_id=.._er_item_numbe'
0000000420: 725f7265 636f6d6d 656e6461 74696f6e 733d300d 'r_recommendations=0.'
0000000440: 0a5f6572 5f736f75 7263655f 75726c3d 0d0a5f65 '._er_source_url=.._e'
0000000460: 725f726f 6c6c7570 5f6e616d 653d0d0a 5f65725f 'r_rollup_name=.._er_'
0000000480: 6e6f7469 66795f62 63633d0d 0a5f6572 5f6f7267 'notify_bcc=.._er_org'
0000000500: 733d0d0a 5f65725f 726f6c6c 75705f68 746d6c5f 's=.._er_rollup_html_'
0000000520: 70617468 3d0d0a5f 65725f69 74656d5f 66696c65 'path=.._er_item_file'
0000000540: 5f75726c 3d0d0a5f 65725f72 6f6c6c75 705f6f62 '_url=.._er_rollup_ob'
0000000560: 6a656374 5f747970 653d0d0a 5f65725f 67656e65 'ject_type=.._er_gene'
0000000580: 7261746f 725f6469 73706c61 795f6e61 6d653d0d 'rator_display_name=.'
0000000600: 0a5f6572 5f746167 733d7b22 6e657722 2c227461 '._er_tags={"new","ta'
0000000620: 67227d0d 0a5f6572 5f6e6f74 6966795f 746f5f67 'g"}.._er_notify_to_g'
0000000640: 726f7570 733d0d0a 5f65725f 666c6167 6765645f 'roups=.._er_flagged_'
0000000660: 636f756e 743d2d31 0d0a5f65 725f6d65 73736167 'count=-1.._er_messag'
0000000680: 655f6c61 6e673d0d 0a5f6572 5f726f6c 6c75705f 'e_lang=.._er_rollup_'
0000000700: 61746f6d 5f706174 683d0d0a 5f65725f 6e6f7469 'atom_path=.._er_noti'
0000000720: 66795f63 61746567 6f72793d 0d0a5f65 725f6d65 'fy_category=.._er_me'
0000000740: 6d626572 5f70656f 706c655f 72656d6f 7665643d 'mber_people_removed='
0000000760: 0d0a5f65 725f6163 746f723d 63653434 61653430 '.._er_actor=ce44ae40'
0000000780: 2d316433 322d3130 33312d38 6162642d 65313739 '-1d32-1031-8abd-e179'
0000000800: 34313539 30643336 0d0a5f65 725f6974 656d5f61 '41590d36.._er_item_a'
0000000820: 7574686f 725f6772 6f75703d 0d0a5f65 725f6e6f 'uthor_group=.._er_no'
0000000840: 74696679 5f736563 6f6e6461 72795f61 6374696f 'tify_secondary_actio'
0000000860: 6e5f6e61 6d653d0d 0a5f6572 5f6e6f74 6966795f 'n_name=.._er_notify_'
0000000880: 74656d70 6c617465 5f706172 616d733d 0d0a5f65 'template_params=.._e'
0000000900: 725f7479 70653d43 52454154 450d0a5f 65725f69 'r_type=CREATE.._er_i'
0000000920: 735f6d69 6e6f725f 6576656e 743d6661 6c73650d 's_minor_event=false.'
0000000940: 0a5f6572 5f67656e 65726174 6f725f75 726c3d0d '._er_generator_url=.'
0000000960: 0a5f6572 5f636f6e 74656e74 5f747970 653d4854 '._er_content_type=HT'
0000000980: 4d4c0d0a 5f65725f 6974656d 5f636f6e 74656e74 'ML.._er_item_content'
0000001000: 5f6c616e 67756167 653d0d0a 5f65725f 6e6f7469 '_language=.._er_noti'
0000001020: 66795f61 75746f5f 65736361 70655f68 746d6c3d 'fy_auto_escape_html='
0000001024: 66616c73

Now, let's open the Metrics database. Issue these commands:

db2 connect to metrics

db2 list tables for all

This shows us how the data is structured.

352 Building and Implementing Social Digital Experiences


Let's try a select * from metrics.d_community . The last row shows our freshly added
forum.

ID UUID TITLE STATUS V_LEVEL CREATE_TS REPORT_REQUEST_TIME


PREVIOUS_VERSION_TIME REPORT_REQUEST_LANGUAGE COGNOS_PATH

- 10301 75647882-4f4c-495b-8326-44cc2c83810b test custom report ACTIVE 75 2


014-01-26-18.14.24.793000 - -

Other information is added to linked tables, but what Cognos Transformer will do is
processing those data to create a Powercube.

The data will be inserted and structured only if a point for recording information has been
defined. That's why not everything can be processed out-of-the-box. Metrics is the source of
the data for Cognos. Data can be collected even without Cognos installed. When Cognos
runs for the first time, it will process all previously collected data. Cognos Transformer will
follow a mixture of XML and MDL file to process the data.

The D_Community table structure is useful to open MetricsTrxCube.mdl file and take a look.

This explains the role of a single application (sending events to Metrics), of the Metrics
application (processing and capturing events), and of Cognos (processing events into
reports).

Chapter 11. Social analytics 353


11.1.4 Built-in metrics for IBM Connections

Difference between Global and Community metrics


In IBM Connections, there are two types of metrics:
Community metrics: These metrics are related to a specific community. They depend on
the widgets added in the community. For example, if we have a community with blogs and
wikis widgets, then under the community metrics label, you will see these two types of
metrics.
Global metrics: These are metrics that related to all Connections items plus a group of
metrics in the More Metrics section.

Note: To enable global metrics, follow this link)

The community metrics are visible only to the community owner. The image below shows how
to access the community metrics.

354 Building and Implementing Social Digital Experiences


The global metrics are visible only to the global metrics administrator. To see this metrics, you
can use a link similar to this:
https://lo2w03-utility1.demos.ibm.com/metrics/app#/reportlist

Chapter 11. Social analytics 355


Glossary for metrics
Unique
Before going through a list of all available metrics, let's define the word "unique". Unique
means that the statistical objects will be distinguished to remove any duplication from the
report. This means that if we are counting the number of unique users logged during the last
hour, multiple logins from the same user will be counted just once.

Visitor
The word visitor is mainly used in reports. This implicitly has the unique character, and it is
similar with the concept of login. Once an authenticated user becomes a visitor of one object,
the user will be regarded as a visitor of its parent level object. So, for example, when a user

356 Building and Implementing Social Digital Experiences


accesses a wiki page by a direct link, the user becomes the visitor of the wiki instance which
contains the wiki page. At same time, the user is also the visitor of the wikis application, and
entire Connections system. In addition, if the wiki instance is located in a community, then the
user is also counted as the visitor of the community inside the Communities application. The
visitor implicitly has the unique character. That means, as the above sample, no matter how
many times in a day the user logs into the Connections to read the wiki page, the user is only
counted as one visitor in that day.

Visit (number of visits)


The word visit is mainly used in reports to represent the number of visits. It is based on
the read behavior. The word visitis applicable to the overall Connections, a separate
application (such as communities, wikis or blogs), a single application instance (such as a
wiki instance), or an entry level object (such as a wiki page).

Once an object is visited, its parent level object will be considered visited as well. For
example, a wiki page is accessed by a user through a direct link. This wiki page is considered
to be visited one time. At the same time, the wiki instance which contains the wiki page is also
considered visited one time, and the wikis application, and the entire Connections system is
also considered visited one time. In addition, if the wiki page is located in a community, then
the community instance and the communities application are also considered to be visited as
well.

Visit number
Visit number is counted on the times. This means, if a wiki page is accessed 10 times in a
day, then the number of visits for this page is 10 on this day.

However, the thing will be a little different for the visit number at the instance or application
level. We call wiki page as entry level object, just like a blog entry, a file, or a forum topic.
Oppositely, the wiki, blog and forum which contain the entry level objects are instance level
objects. All wiki instances belong to the wikis application. The visit number for the instance
and application level is relevant with the login session. This means, within one login session,
no matter how many times one instance is visited, the instance will only be counted as being
visited one time. For example, a user logs into the Connections and locates to one wiki
instance, then the wiki instance is visited one time. After a while, the user turns to another
application for some business, such as blogs. Sometimes later the user comes back the wiki
instance that he or she visited previously. In this case, the visit number of the wiki instance will
still be 1, and not to be increased to 2, because the user is still in the same session since he
or she last logged in. If the session expires, and then the user visits the wiki instance again
after re-logging into the Connections in a new session, then the visit number of this wiki
instance will be increased by 1.

How the metrics are done, depends from applications to applications, because they are
created differently:
Entry level (such as most active wiki pages): The metrics are usually provided in
community metrics. For example an entry may be a blog entry, a forum entry, or a wiki
page.
Instance level (such as most active blogs, or wiki instances): For example, a blog, or a
forum topic can be considered an instance. The metrics are usually provided in global
metrics.
Application level: For comparing applications, for example most popular apps in global
metrics.

Chapter 11. Social analytics 357


Metrics report categories
Number of new items metrics
In this category, the reports present the data in the trend chart. They simply show how many
new items were created in a date point. Depending on the segment you choose, the date
point could be day, week, month, or year.

In IBM Connections, only creating action will be counted. The deleting action has no impact to
the report value. For example, at one day, 5 new wiki pages are created, and 2 of them were
deleted later in the same day. Then, in number of new wiki pages metrics, the number at this
day is 5, not 3.

Number of new items reports will provide a total number of global and communities metrics
for a certain date range by adding up all the date points value within the selected date range.

Global Metrics

Metrics name Application Description

Number of new status Overall Displays the number of status updates posted across
updates Connections in the specific time frame. Currently, status
updates are only from Profiles and Communities.

Number of new Overall Displays the number of updates occurred across


updates Connections in the specific time frame. The updates
include all create and update actions.
Note: If the update happened in a community inside
application, such as community wiki, it will only count to
the updates number of this application, but will not count
to the community application. Only the community self
update, such as change name, will count to community
updates number.

Number of new Activities Displays the number of activities created in the specific
activities time frame, include both stand alone and community
activities.

Number of new blogs Blogs Displays the number of blogs created in the specific time
frame, include both stand alone and community blogs.

Number of new entries Blogs Displays the number of blog entries created in the
specific time frame, include both stand alone and
community blogs.

Number of new entry Blogs Displays the number of comments for blog entry created
comments in the specific time frame, include both stand alone and
community blogs.

Number of new Bookmarks Displays the number of bookmarks created in the


bookmarks specific time frame, include both stand alone and
community bookmarks.

Number of new Communities Displays the number of communities created in the


communities specific time frame.

Number of new status Communities Displays the number of status updates posted from
updates communities in the specific time frame.

Number of new Communities Displays the number of updates occurred across


updates communities in the specific time frame. The updates
include all create and update actions.

358 Building and Implementing Social Digital Experiences


Global Metrics

Number of new files Files Displays the number of files created in the specific time
frame, include both personal file libraries and community
file libraries.

Number of new forum Forums Displays the number of forum topics created in the
topics specific time frame, include both stand alone forums and
community forums.

Number of new forums Forums Displays the number of forums created in the specific
time frame, include both stand alone forums and
community forums.

Number of new topic Forums Displays the number of forum topic replies created in the
replies specific time frame, include both stand alone forums and
community forums.

Number of new Moderation Displays the number of item rejected by moderation in


rejected items the specific time frame, the items could be files and
comments, blog entries and comments, forum topics and
replies.

Number of new status Profiles Displays the number of status updates posted from
updates profiles in the specific time frame.

Number of new wiki Wikis Displays the number of wiki pages created in the specific
pages time frame, include both stand alone wikis and
community wikis.

Number of new wikis Wikis Displays the number of wikis created in the specific time
frame, include both stand alone wikis and community
wikis.

Community Metrics

Number of new Overall Displays the number of people who joined this
members community in the specific time frame.

Number of members Overall Displays the number of people who removed from this
who left the community in the specific time frame.
community

Number of new Overall Displays the number of updates occurred in this


updates community in the specific time frame. The updates
include all create and update actions.

Number of new Activities Displays the number of activities created in this


activities community in the specific time frame.

Number of new entries Blogs Displays the number of blog entries created in this
community in the specific time frame.

Number of new entry Blogs Displays the number of comments for blog entry created
comments in this community in the specific time frame.

Number of new files Files Displays the number of files created in this community in
the specific time frame.

Number of new forum Forums Displays the number of forum topics in this community in
topics the specific time frame.

Number of new topic Forums Displays the number of replies for forum topic in this
replies community in the specific time frame.

Chapter 11. Social analytics 359


Global Metrics

Number of new Ideation Blog Displays the number of graduated ideas in this
graduated ideas community in the specific time frame.

Number of new ideas Ideation Blog Displays the number of ideas in this community in the
specific time frame.

Number of new wiki Wikis Displays the number of wiki pages in this community in
pages the specific time frame.

Number of unique items metrics


This type of metrics show the report data in the trend chart. The value in a date point stands
for the unique number of statistical target . Depend on the segment you choose, the date
point could be day, week or month. The unique metrics does not support All years and
Custom date range.

Number of unique items metrics do not provide a total number for the selected date range. As
a substitution, the unique report will indicate a Max unique value of the all date points within
the selected date range.

Global Metrics

Metrics name Application Description

Number of unique Overall Displays the number of people who logged in to


authenticated visitors Connections from any applications in the specific time
frame.

Number of unique Overall Displays the number of contributors across Connections


contributors in the specific time frame. The contributor is the people
who posted, updated, or commented on content in
Connection.

Number of unique Activities Displays the number of people who logged in to Activities
authenticated visitors in the specific time frame, include both stand alone
activities and community activities.

Number of unique Activities Displays the number of contributors of Activities in the


contributors specific time frame. The contributor is the people who
posted, updated, or commented on content in both stand
alone and community Activities.

Number of unique Blogs Displays the number of people who logged in to Blogs in
authenticated visitors the specific time frame, include both stand alone blogs
and community blogs.

Number of unique Bookmarks Displays the number of people who logged in to


authenticated visitors Bookmarks in the specific time frame.

Number of unique Communities Displays the number of people who logged in to


authenticated visitors Communities in the specific time frame.

Number of unique Communities Displays the number of contributors of Communities in the


contributors specific time frame. The contributor is the people who
posted, updated, or commented on content in
Communities.

Number of unique Files Displays the number of people who logged in to Files in
authenticated visitors the specific time frame, include both personal file libraries
and community file libraries.

360 Building and Implementing Social Digital Experiences


Global Metrics

Number of unique Files Displays the number of contributors of Files in the specific
contributors time frame. The contributor is the people who posted,
updated, or commented on content in both personal file
libraries and community file libraries.

Number of unique Files Displays the number of files downloaded in the specific
downloaded files time frame.

Number of unique Files Displays the number of people who downloaded files in
people who the specific time frame.
downloaded files

Number of unique Files Displays the number of people who shared files in the
people who shared specific time frame.
files

Number of unique Forums Displays the number of people who logged in to Forums
authenticated visitors in the specific time frame, include both stand alone forums
and community forums.

Number of unique Forums Displays the number of contributors of Forums in the


contributors specific time frame. The contributor is the people who
posted, updated, or replied to on content in both stand
alone and community Forums.

Number of unique Homepage Displays the number of people who logged in to


authenticated visitors Homepages in the specific time frame.

Number of unique Profiles Displays the number of people who logged in to Profiles in
authenticated visitors the specific time frame.

Number of unique Profiles Displays the number of people who were followed in the
followed people specific time frame.

Number of unique Profiles Displays the number of people who updated their profile
people who updated in the specific time frame.
their profile

Number of unique Wikis Displays the number of people who logged in to Wikis in
authenticated visitors the specific time frame, include both stand alone wikis and
community wikis.

Number of unique Wikis Displays the number of contributors of Wikis in the specific
contributors time frame. The contributor is the people who posted,
updated, or commented on content in both stand alone
and community Wikis.

Community Metrics

Number of unique Overall Displays the number of people who logged in to this
authenticated visitors community in the specific time frame.

Number of unique Overall Displays the number of contributors in this community in


contributors the specific time frame. The contributor is the people who
posted, updated, or commented on content in Community.

Number of people Overall Displays the number of people who followed this
following the community in the specific time frame.
community

Number of unique Activities Displays the number of people who logged in to this
authenticated visitors community activity in the specific time frame.

Chapter 11. Social analytics 361


Global Metrics

Number of unique Activities Displays the number of contributors in this community


contributors activity in the specific time frame. The contributor is the
people who posted, updated, or commented on content in
this community activity.

Number of unique Blogs Displays the number of people who logged in to this
authenticated visitors community blog in the specific time frame.

Number of unique Blogs Displays the number of contributors in this community


contributors blog in the specific time frame. The contributor is the
people who posted, updated, or commented on content in
this community blog.

Number of unique Files Displays the number of people who logged in to this
authenticated visitors community file library in the specific time frame.

Number of unique Files Displays the number of contributors in this community file
contributors in the specific time frame. The contributor is the people
who posted, updated, or commented on content in this
community file library.

Number of unique Files Displays the number of files downloaded in this


downloaded files community in the specific time frame.

Number of unique Files Displays the number of people who downloaded files in
people who this community in the specific time frame.
downloaded files

Number of unique Files Displays the number of people who shared files in this
people who shared community in the specific time frame.
files

Number of unique Forums Displays the number of people who logged in to this
authenticated visitors community forum in the specific time frame.

Number of unique Forums Displays the number of contributors in this community


contributors forum in the specific time frame. The contributor is the
people who posted, updated, or replied to on content in
this community forum.

Number of unique Ideation Blog Displays the number of people who logged in to this
authenticated visitors community ideation blog in the specific time frame.

Number of unique Ideation Blog Displays the number of contributors in this community
contributors ideation blog in the specific time frame. The contributor is
the people who posted, updated, or commented on
content in this community ideation blog.

Number of unique Media Gallery Displays the number of people who logged in to this
authenticated visitors community media gallery in the specific time frame.

Number of unique Media Gallery Displays the number of contributors in this community
contributors media gallery in the specific time frame. The contributor is
the people who posted, updated, or commented on
content in this community media gallery.

Number of unique Wikis Displays the number of people who logged in to this
authenticated visitors community wiki in the specific time frame.

362 Building and Implementing Social Digital Experiences


Global Metrics

Number of unique Wikis Displays the number of contributors in this community wiki
contributors in the specific time frame. The contributor is the people
who posted, updated, or commented on content in this
community wiki.

Number of visits metrics


The metrics show the report data in the trend chart. The value in a date point means how
many times the statistical target was visited. Depending on the segment you choose, the date
point could be day, week, month or year.

We have introduced the visit concept earlier. The visit metrics are applicable for application
instance, application and overall connection. Number of visits reports will provide a total
number for a certain date rang by adding up all the visit values within the selected date range.

Global Metrics

Metrics name Application Description

Number of visits Overall Displays the number of visits to Connections from any
applications in the specific time frame, include anonymous
and authenticated visit.
Note:
This metrics only count the application level visit. That
means, in one log in session, no matter how many instances
of one application are visited, it will only contribute 1 visit to
this metrics as an application visit.
When visit a community inside application, that will possibly
generate 2 visits number, one for the inside application, one
for the communities application.

Number of visits Activities Displays the number of visits to Activities in the specific time
frame.
This metrics only count the application level Activities visit.

Number of visits Blogs Displays the number of visits to Blogs in the specific time
frame, include anonymous and authenticated visit.
This metrics only count the application level Blogs visit.

Number of visits Bookmarks Displays the number of visits to Bookmarks in the specific
time frame, include anonymous and authenticated visit.
This metrics only count the application level Bookmarks visit.

Number of visits Communities Displays the number of visits to Communities in the specific
time frame, include anonymous and authenticated visit.
This metrics only count the application level Communities
visit.

Number of visits Files Displays the number of visits to Files in the specific time
frame, include anonymous and authenticated visit.
This metrics only count the application level Files visit.

Number of visits Forums Displays the number of visits to Forums in the specific time
frame, include anonymous and authenticated visit.
This metrics only count the application level Forums visit.

Number of visits Homepage Displays the number of visits to Homepage in the specific
time frame.

Chapter 11. Social analytics 363


Global Metrics

Number of visits Profiles Displays the number of visits to Profiles in the specific time
frame, include anonymous and authenticated visit.

Number of visits Wikis Displays the number of visits to Wikis in the specific time
frame, include anonymous and authenticated visit.
This metrics only count the application level Wikis visit.

Community Metrics

Number of visits Overall Displays the number of visits to this community in the specific
time frame, include anonymous and authenticated visit.
Note:
This metrics only count the visit on this community instance
level. That means, in one log in session, no matter how many
times this community is visited from no matter what
application, it will only contribute 1 visit number to this
metrics.

The Number of visits in overall will be inconsistent with the


total visit numbers of break down applications. The reason is,
in one log in session, one community will be visited many
times through different applications, such as visit from wikis
in this community, then visit from files in this community. As
the overall perspective, the community instance is visited only
1 time, but for the individual application, the wikis and files all
are visited 1 time for each. So the sum of visit numbers of
individual applications is 2, but overall community visit
number is 1.

Number of visits Activities Displays the number of visits to this community activity in the
specific time frame, include anonymous and authenticated
visit.
Note:
This metrics only count the visit on this community activity
widget level. That means, in one log in session, no matter
how many times this community activity is visited, it will only
contribute 1 visit number to this metrics.

Number of visits Blogs Displays the number of visits to this community blog in the
specific time frame, include anonymous and authenticated
visit.
Note:
This metrics only count the visit on this community blog
widget level. That means, in one log in session, no matter
how many times this community blog is visited, it will only
contribute 1 visit number to this metrics.

Number of visits Files Displays the number of visits to this community file library in
the specific time frame, include anonymous and
authenticated visit.
Note:
This metrics only count the visit on this community file widget
level. That means, in one log in session, no matter how many
times this community file library is visited, it will only
contribute 1 visit number to this metrics.

364 Building and Implementing Social Digital Experiences


Global Metrics

Number of visits Forums Displays the number of visits to this community forum in the
specific time frame, include anonymous and authenticated
visit.
Note:
This metrics only count the visit on this community forum
widget level. That means, in one log in session, no matter
how many times this community forum is visited, it will only
contribute 1 visit number to this metrics.

Number of visits Ideation Blog Displays the number of visits to this community ideation blog
in the specific time frame, include anonymous and
authenticated visit.
Note:
This metrics only count the visit on this community ideation
blog widget level. That means, in one log in session, no
matter how many times this community ideation blog is
visited, it will only contribute 1 visit number to this metrics.

Number of visits Media Gallery Displays the number of visits to this community media gallery
in the specific time frame, include anonymous and
authenticated visit.
Note:
This metrics only count the visit on this community media
gallery widget level. That means, in one log in session, no
matter how many times this community media gallery is
visited, it will only contribute 1 visit number to this metrics.

Number of visits Wikis Displays the number of visits to this community wiki in the
specific time frame, include anonymous and authenticated
visit.
Note:
This metrics only count the visit on this community wiki widget
level. That means, in one log in session, no matter how many
times this community wiki is visited, it will only contribute 1
visit number to this metrics.

Most active items metrics


The most active metrics present the report in a ranking table. The items in the table are
ordered by the vitality within a selected date range. The applicable date ranges for most
active metrics are Last 7 days, Last 4 weeks, Last quarter and Last 12 months. It doesn't
support All years and Custom.

Most active metrics provide the reports in four levels:


Entry level (such as most active wiki pages): The metrics are usually provided in
community metrics.
Instance level (such as most active blogs): The metrics are usually provided in global
metrics.
Application level: Just one metrics report most popular apps in global metrics.
People level: Just one metrics report top contributors in community metrics.

Global Metrics

Metrics name Application Description

Chapter 11. Social analytics 365


Global Metrics

Most active apps Overall Displays Connections apps ranked by usage in the specific
time frame, based on visits, creates, updates, follows,
recommendations, comments, votes, downloads and
Replies.
All factors will just be added up to compare between the
applications.

Most active Activities Displays activities ranked by usage in the specific time frame,
activities based on visits, creates, updates, follows and comments.
All factors will just be added up to compare between the
activities.
Note: Some inapplicable factors are also presented in that
ranking table, but the values will always be 0.

Most active blogs Blogs Displays blogs ranked by usage in the specific time frame,
based on visits, creates, updates, follows, recommendations
and comments.
All factors will just be added up to compare between the
blogs.
Note: Some inapplicable factors are also presented in that
ranking table, but the values will always be 0.

Most active Communities Displays communities ranked by usage in the specific time
communities frame, based on visits, creates, updates, follows,
recommendations, comments, votes, downloads and replies.
All factors will just be added up to compare between the
communities.
Note: The community usage is from its inside applications.

Most active file Files Displays file libraries ranked by usage in the specific time
libraries frame, based on visits, creates, updates, follows,
recommendations, comments and downloads.
All factors will just be added up to compare between the file
libraries.
Note: Some inapplicable factors are also presented in that
ranking table, but the values will always be 0.

Most active forums Forums Displays forums ranked by usage in the specific time frame,
based on visits, creates, updates, follows and replies.
All factors will just be added up to compare between the
forums.
Note: Some inapplicable factors are also presented in that
ranking table, but the values will always be 0.

Most active wikis Wikis Displays wikis ranked by usage in the specific time frame,
based on visits, creates, updates, follows and
recommendations and comments.
All factors will just be added up to compare between the wikis.
Note: Some inapplicable factors are also presented in that
ranking table, but the values will always be 0.

Community Metrics

Top contributors Overall Displays contributors to this community ranked by


contributions in the specific time frame, based on how much
the contents created by the contributors are
read/downloaded, recommended and commented/replied.
Note: The factors have different weight for each. By default,
[read/downloaded]:[recommended]:[commented/replied] is
[0.8]:[0.15]:[0.05]

366 Building and Implementing Social Digital Experiences


Global Metrics

Most active content Overall Displays contents in this community across applications
ranked by usage in the specific time frame, based on reads,
downloads and replies.
Note: Only blog entries, wiki pages, forum topics and files will
be involved in the ranking.

Most active Activities Displays activities in this communities ranked by usage in the
activities specific time frame, based on visits, creates, updates, follows
and comments.
All factors will just be added up to compare between the
activities in this communities.
Note: Some inapplicable factors are also presented in that
ranking table, but the values will always be 0.

Most active entries Blogs Displays blog entries in this community ranked by usage in
the specific time frame, based on reads, recommendations
and comments.
Note: The factors have different weight for each. By default,
[reads]:[recommendations]:[comments] is [0.7]:[0.2]:[0.1]

Most active files Files Displays files in this community ranked by usage in the
specific time frame, based on downloads, recommendations
and comments.
Note: The factors have different weight for each. By default,
[downloads]:[recommendations]:[comments] is
[0.7]:[0.2]:[0.1]

Most active forum Forums Displays forum topics in this community ranked by usage in
topics the specific time frame, based on reads, replies and pins.
Note: The factors have different weight for each. By default,
[reads]:[replies]:[pins] is [0.7]:[0.2]:[0.1]

Most active ideas Ideation Blog Displays ideas in this community ranked by usage in the
specific time frame, based on reads, comments and votes.
Note: The factors have different weight for each. By default,
[reads]:[comments]:[votes] is [0.4]:[0.1]:[0.5]

Most active wiki Wikis Displays wiki pages in this community ranked by usage in the
pages specific time frame, based on reads, recommendations and
comments.
Note: The factors have different weight for each. By default,
[reads]:[recommendations]:[comments] is [0.7]:[0.2]:[0.1]

Other Most metrics


Some metrics also show report in the ranking table, but the measure would be sample. The
order could be decided by only one factor, such as most followed people. The only effective
action is follow.

As same as the other most active metrics, these metrics only support Last 7 days, Last 4
weeks, Last quarter and Last 12 months, but not All years and Custom.

Global Metrics

Metrics name Application Description

Most followed content Overall Displays the content posts across Connections
ranked by number of followers in the specific time
frame.

Chapter 11. Social analytics 367


Global Metrics

Most active bookmarks Bookmarks Displays bookmarks ranked by the number of


times they were visited in the specific time frame.

People with the most new Profiles Displays people ranked by number of new
followers followers in the specific time frame.

People with the most Profiles Displays people ranked by total number of
followers overall followers.

Community Metrics

Most visited media Media Gallery Displays media in this community ranked by the
number of visits in the specific time frame.

Most active bookmarks Bookmarks Displays bookmarks in this community ranked by


the number of times they were visited in the
specific time frame.

Old Connections global metrics


In the global metrics, inside the view all metrics, there is section called More Metrics.

If you click on activities, you will be able to see the old metrics used before IBM Connections
4.0.

368 Building and Implementing Social Digital Experiences


11.1.5 Build a custom report for IBM Connections

Create custom report in Cognos Connections


The steps below show how to make a custom report in Cognos Connections.

Before proceeding, log into Cognos with the Cognos admin ID by typing URL
https://your_connections_host/metrics/app#/cognos. Then follow these steps:
1. Click New Folder icon to create new folder. This folder becomes the custom report
location.

2. In the Name field for the new folder, type CustomReport, and click Finish.

Chapter 11. Social analytics 369


3. Click the CustomReport folder.

4. Click in the administrator menu in the upper right corner and then click on the Report
Studio link.

Note: If you don't see the Report Studio link, probably you are using an unsupported
browser or a wrong user.

5. Click the IBMConnectionsMetrics folder.

6. Click the Metrics folder.

370 Building and Implementing Social Digital Experiences


7. Click the Create new button.

8. Choose the Blank Metrics template and click OK.

9. In the toolbox window, click Chart and drag the Chart object in the white area on the right.

Chapter 11. Social analytics 371


10. Select the Stacked Column graph and press OK.

11. Click under the the Page Explorer label the query explorer icon .

372 Building and Implementing Social Digital Experiences


12. Click on Query1.

13. From the toolbox window drag the Data Item label on the right Data Items area.

14. In the Expression Definition write the set() function.

Chapter 11. Social analytics 373


15. Drag from the source pane the applications ACTIVITIES, BLOGS, COMMUNITIES,
FILES, FORUMS, WIKIS in the set function and press OK.

Note: Don't write into the function all the parameters because Cognos recognizes only
full path item and not only the item. If you want to directly use any function, use the full
path, for example [METRICS_TRX_CUBE].[DATE].[DATE].[DAY].

16. Change the name to the the DataItem1 in ConnectionsApp.

374 Building and Implementing Social Digital Experiences


17. Drag in the data item window another data item.

18. In the expression definition pane write this function:


tuple()
a. Now drag the items DEFAULT, VISIT and EVENT_COUNT inside the tuple() function
separated by comma.

Note: Don't write into the function all the parameter because Cognos recognize only full
path item and not only the item. If you want to directly use any function, use the full path
for example [METRICS_TRX_CUBE].[DATE].[DATE].[DAY].

Chapter 11. Social analytics 375


b. Go inside EVENT EVENT Members EVENT and drag the VISIT item.

c. Drag the the EVENT_COUNT item.

19. Change the name in Number Of Visits.

376 Building and Implementing Social Digital Experiences


20. Drag another data item.

21. In the data item window write this query:


lastPeriods(?upnum? , ancestor
(#'[METRICS_TRX_CUBE].[DATE].[DATE].[DAY]->:[PC].[@MEMBER].['+
prompt('endDate' , 'integer') +']'#, #prompt('uplevel' , 'integer')# ) )

22. Change the name in Date.

Chapter 11. Social analytics 377


23. From the toolbox pane drag the Slicer Member Set in the Slicer pane.

24. In the data item window write this query:


#'[METRICS_TRX_CUBE].[COMMUNITY].[COMMUNITY].[COMMUNITY
NAME]->:[PC].[@MEMBER].['+prompt('dcommunityid' , 'integer')+']'#

25. Click on the Page Explorer icon and the click on Page1.

378 Building and Implementing Social Digital Experiences


26. Drag the data item Number Of Visits in the place described in the image.

27. Drag the data item Date in the place described in the image.

28. Drag the data item ConnectionsApp in the place described in the image.

Chapter 11. Social analytics 379


29. Change the size of the graph, in the properties, click on Size & Overflow. Set the Height
to 300px and the width to 500px.

30. Drag from the Toolbox pane another Chart.

31. Select the chart described in the image.

380 Building and Implementing Social Digital Experiences


32. Change the size to 300px for height, and 500px for width. Click OK.

33. In the properties pane, change the query from Query2 to Query1.

34. In the properties pane, Change the 3-D Viewing Angle to isometric.

Chapter 11. Social analytics 381


35. Drag the Number Of Visits data item as described in the image.

36. Drag the ConnectionsApp data item as described in the image.

37. Drag the Date data item as described in the image.

382 Building and Implementing Social Digital Experiences


38. Run the report to check if all is OK.

39. Click OK and view the report.

40. Save The Report.

Chapter 11. Social analytics 383


41. In the name field, enter NumberOfVIewByApp, and click Save. This name is used by the
Metrics Application to retrieve the information from Cognos.

42. Refresh the page.

43. At this point the custom report is visible inside the CustomReport folder.

44. Copy the custom report inside the folder.

384 Building and Implementing Social Digital Experiences


45. Paste the custom report inside the folder Public Folders > IBMConnectionsMetrics >
Metrics > community > customizedTheme. If the folder "customizedTheme" is not
listed, create it.

Integrate the custom report in IBM Connections


Follow the screen and steps below to integrate the custom report in the Community Metrics
report:
1. Open the Command Prompt and run the wsadmin command line and checkout the
reports-config.xml.

2. In the f:/temp folder, edit the reports-config.xml.

Chapter 11. Social analytics 385


3. Copy the name of the custom report from Cognos.

4. Add the custom report in the reports-config.xml.

386 Building and Implementing Social Digital Experiences


5. At this point, we need to create the custom label CUSTOMIZED_REPORT_LABEL by
editing the customized strings in the Connections shared directory.

6. Normally this file is empty. If this file does not exist, create it.

Chapter 11. Social analytics 387


7. Write in the file the label you prefer to see in the metrics application, in my case i use:
CUSTOMIZED_REPORT_LABEL=Access by App

8. Check in the reports-config.xml, synchronize all nodes and restart the Communities and
Metrics applications.

9. Now verify in your Communities if the report works.

388 Building and Implementing Social Digital Experiences


10. Click the Metrics application.

11. Click on your custom label.

Chapter 11. Social analytics 389


12. Verify the custom report.

11.1.6 Integrating with IBM WebSphere Portal


Users of IBM WebSphere Portal can view content delivered by IBM Cognos by using the
Cognos portlets.

All Cognos portlets conform to the Web Services for Remote Portlets (WSRP) standard.
Users can interact with the portlets without installing IBM Cognos products on their
computers. The content that appears in the portlets, such as reports, or metrics, and the
ability to perform specific actions on that content depend on the users' access permissions.
Users must have the required access permissions for the individual entries and for the IBM
Cognos secured functions and features.

390 Building and Implementing Social Digital Experiences


The below is a list of available Cognos portlets and their description:

IBM Cognos Content portlets:


IBM Cognos Navigator - Shows the IBM Cognos Connection folder hierarchy. Users can
browse the hierarchy and open IBM Cognos entries.
IBM Cognos Search - Provides a search tool to help users find published IBM Cognos
reports and other entries, and open them.
IBM Cognos Viewer - Opens a default report or lists reports that users can open.

IBM Cognos Utility portlets:


Bookmarks Viewer - Registers and shows active web links.
HTML Viewer - Inserts any web page into an IBM Cognos Connection page.
Image Viewer - Inserts an image and shows it in a page.
RSS Viewer - Shows the content of a Real Simple Syndication (RSS) 1.0 or 2.0 news
feed.
HTML Source - Use to add custom text and images to a page.

IBM Cognos Extended Applications portlet


Provides access to custom applications created using the IBM Cognos Extended Applications
toolkit and the IBM Cognos Software Development Kit.

IBM Cognos Metric Studio portlets:


IBM Cognos Metric List - Used to add performance metrics to a page.
IBM Cognos History Chart - Used to add a metric history chart to a page.
IBM Cognos Impact Diagram - Used to display impact diagrams associated with a metric.
IBM Cognos Custom Diagram - Used to display custom diagrams associated with a
scorecard.

Dashboard portlets:
Multi-page - Used to create a dashboard with multiple pages

To configure the IBM Cognos portlets into your WebSphere Portal environment, you need to
follow the steps:
1. Obtain the application that contains the IBM Cognos portlets. It is named
CognosBIPortlets.war and you can get it from the IBM Cognos installation folder (
2. Install the CognosBIPortlets.war file into your WebSphere Portal through portal
administration as a web module.
3. Assign roles for the required users or user groups to each Cognos portlet application.
4. Configure each Cognos portlet application by using the Portal administration (edit portlet
application button). You have to set the following properties:
Active Credential Type: Specifies the single-sign-on mechanism used in your
installation ( LtpaToken, HttpBasicAuth, SiteMinderToken, WebSealToken ).
IBM Cognos WSRP WSDL Location: Specifies the URL required to connect to the
CPS server. The URL must contain the correct protocol, server name, port number,
and server path.

The server path must point to an IBM Cognos gateway:

Chapter 11. Social analytics 391


For the IBM Cognos Navigator, IBM Cognos Search, and IBM Cognos Viewer portlets, the
path is c10_gateway/wsrp/cps4/portlets/nav?wsdl&b_action=cps.wsdl.
For the IBM Cognos Extended Applications portlet, the path is
c10_gateway/wsrp/cps4/portlets/sdk?wsdl&b_action=cps.wsdl.
For the IBM Cognos Metric Studio portlets, the path is
c10_gateway/wsrp/cps4/portlets/cmm?wsdl&b_action=cps.wsdl.
5. Configure the portlet cache for each of the Cognos portlets in the portal administration by
using the configure portlet button and setting a value for the Maximum Cached Pages
property.

By following the above steps, your portal users will be able to access, use or customize the
content delivered by the Cognos portlets.

Additional reference

For more information about IBM Cognos portlets, refer to this article, Deploying Cognos
Portlets to Other Portals.

11.2 Integration with Google Analytics

11.2.1 IBM Active Site Analytics


Active Site Analytics with the new modularized theme is activated by simply adding the
modules in the theme profiles. For testing purpose, we use the profile_full.json. If a custom
profile is needed in the table below, you can find a list of prerequisites needed by the modules
wp_analytics and wp_analytics_aggregator.

PortalServer_root/theme/wp.theme.modules/asa/installedApps/ThemeModules.ear/ThemeM
odules.war/WEB-INF/lib/asa.jar

Module Prerequisites

wp_analytics wp_analytics_aggregator
dojo
dojo_gfx
dojox_charting
dijit
dijit_form
wp_one_ui_dijit
dijit_layout_basic
wp_pagebuilder_shelf_base
mm_enabler
mm_builder

wp_analytics_aggregator wp_client_main
wp_client_ext

When the modules are activated, a special markup is added to every page that loads this
special modules.

In this article, there is a description about ASA tags.

392 Building and Implementing Social Digital Experiences


In the directory PortalServer_root/doc/js-samples, there are two javascript:
CoremetricsAggregator.js
SampleAggregator.js

The SampleAggregator.js is a javascript that queries the page DOM and searches all CSS
class start with asa.

This operation is made in the point 3 of the image below. When the DOM parsing is
completed, a GET request is made to the HTTP server used to track the information gathered
by the aggregator. An example is:
http://example.org/tracking.gif?asa.page.title=My%20Page&asa.visitor=user4

To enable the aggregator inside a specific portal page, we need to add two page metadata as
described in this article.

11.2.2 Write custom aggregator


Based on SampleAggregator.js, we modify the behavior to send the data to Google Analytics.

Before proceeding with this, the following are required:


A Google account
Activate the Google Analytics for this account.
Download the Google Analytics script ga.js
A WebDav client used to put the Javascript inside the static theme resources.

Now create the two Javascripts, google.js and asa.js.

Chapter 11. Social analytics 393


google.js
Use the following code to create the google.js Javascript.

(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');

ga('create', 'UA-XXXXXXX-X', 'analytics.demos.ibm.com');

asa.js
(function(){
require(["dojo/query","dojo/dom-attr"], function(query, domAttr) {
var ASA4GoogleAggregator = function () {
var aggregator = {};
aggregator.submit = function() {
var pageTitle = "";
var pageUrl = "";
var asaPage = query("[class='asa.page']");
if (asaPage) {
asaPage.forEach(function(node, index, arr){
pageTitle = query("[class='asa.page.title']", node)[0].innerHTML;
pageUrl = query("[class='asa.page.breadcrumb']", node)[0].innerHTML;
console.log(pageTitle);
console.log(pageUrl);
ga('send','pageview', {
'page': pageUrl,
'title': pageTitle
});
});
}
query("[class='asa.portlet']").forEach(function(node, index, arr) {
var portletData = {
title : null,
id : null,
}
var q = null;
q = query("[class='asa.portlet.title']", node); if (q.length == 1) {
portletData.title = q[0].innerHTML };
q = query("[class='asa.portlet.id']", node); if (q.length == 1) {
portletData.id = q[0].innerHTML };
ga('send','pageview', {
'page': pageUrl + '/' + portletData.id,
'title': portletData.title
});
});
};
return aggregator;
};
// instantiate the aggregator
var aggregator = new ASA4GoogleAggregator();
// callback function to submit the collected data to the external analytics
// service

394 Building and Implementing Social Digital Experiences


var processAsa2Google = function() {
aggregator.submit.apply(aggregator, arguments);
};
ga(function() {
console.log('Google analytics is ready');
processAsa2Google();
});
}); // Require
})();

The asa.js is written by following this article, in particular this custom implementation follow
these simple steps.

11.2.3 Setting up WebDav resources and page metadata


To set up WebDav resources and page metadata, follow these steps:
1. Create a folder in the WebDav theme resources. Call this folder ga4wps. The path in
WebDav is /themes/Portal8.0/js/ga4wps/.

2. After the folder is created, navigate into the folder and copy the two Javascripts created in
the previous step.

Chapter 11. Social analytics 395


3. Create a portal page for testing purpose. Go in edit mode and configure the theme profile
to full and the page metadata with the two Javascripts.

396 Building and Implementing Social Digital Experiences


4. If you scroll down, there is the Metadata section. In this section, add these two metadata
parameters:

KEY VALUE

asa_aggregator ga4wps/asa.js

asa_dependency_1 ga4wps/google.js

5. After click Save, go into the view mode and open the browser Javascript console.

Chapter 11. Social analytics 397


Now the integration is fully functional and the statistical data is available in Google Analytics.

398 Building and Implementing Social Digital Experiences

Das könnte Ihnen auch gefallen