Integrating IBM Lotus Connections and IBM WebSphere Portal

Learn how to integrate IBM WebSphere Portal and IBM Lotus Connections to enhance the extensibility of Lotus Connections and the flexibility of WebSphere Portal.


Ted Stanton (, Product Manager, IBM

Ted Stanton is a Product Manager for IBM Lotus Connections, working in Westford, MA. Ted works with coworkers, Business Partners, and customers to help define IBM's social software strategy. He holds a double degree in Computer Science and Mathematics from Virginia Wesleyan College and an MBA from Endicott College.

FuYi Li (, Senior Software Engineer, IBM

FuYi Li is a Senior Software Engineer for IBM Lotus Connections working in Westford, MA. FuYi is the Lotus Connections Integration User Experience team lead working on linked values between Lotus Connections and existing applications such as IBM Lotus Sametime, IBM Lotus Notes, and IBM WebSphere Portal. FuYi architected and implemented the Lotus Connections portlet. FuYi holds an M.S. in Computer Science from Boston University and a B.S. in Computer Science from Beijing University of Aeronautics and Astronautics in Beijing, China.

16 October 2007

Also available in Chinese

Over the past several years new technologies have surged in adoption and brought about improved ways to think about our Web experiences. Many new technologies have become mainstream; for example, blogging has become an additional source of information next to online news sources, Facebook has taken college campuses by storm, MySpace has become another way to promote yourself or your music, and YouTube and Flickr have become sources to share and find media beyond your TV and photo albums.

At IBM, we have closely observed these technologies and their adoption in the consumer market. We have applied these technologies to our own jobs and to our customers, learning what is useful in a business setting. We have deployed internal versions of many popular social software technologies that have grown along with the consumer curve, becoming integral parts of our work environments.

This is where the new social computing platform called IBM Lotus Connections enters. Lotus Connections social software is designed specifically for business. The software includes five services: Profiles, Communities, Web logs (Blogs), Dogear (social bookmarks), and Activities. Lotus Connections can help drive productivity and innovation by providing a forum for building dynamic networks of coworkers, partners, and customers to foster community-based innovation. Best of all, Lotus Connections works with your existing email, instant messaging, and portal software.

Lotus Connections helps businesses to:

  • Quickly find the right people and expand contact networks based on topics and areas of expertise. With the Profiles service of Lotus Connections, you can search for people by name, expertise, or keyword. Search results provide standard name, contact information, and reporting structure details along with links to the blogs, communities, activities, and bookmarks associated with the person being searched. See figure 1.
  • Access and share information that is deemed important by others and discover new people and resources with similar interests. Dogear, the social bookmarking service of Lotus Connections, enables you to tag and share bookmarks. You can find prequalified information by using keyword searches or by subscribing to an expert's bookmarks, enabling you to find the information you need more quickly and to discover social networks, regardless of organizational reporting structures.
  • Bring people together with common interests and assignments. With Communities, you can collaborate with colleagues across your organization who share common interests or work objectives. Community members discuss relevant issues, conduct polls to gather information, and share resources. Anyone in the organization or selected partners from outside an organization, such as customers, can join and participate in a community.
  • Organize the work and interactions associated with an activity. With Activities, you have a Web-based dashboard for managing and completing tasks, in which you can easily organize, share, and collaborate on all files, instant messaging chats, email messages, and Web links associated with a given task. This approach enables employees to better track to-do lists and manage deadlines while incorporating best practices and knowledge from across the organization.
  • Create an interactive community with external and internal audiences, sharing knowledge and opinions. With the Lotus Connections Blogs service, creating and posting blogs is fast and easy. Searching for information on blogs is simplified with integrated blog searching tools. In addition, you can automatically track posts from key blogs through Atom syndicated format (Atom) feeds.
Figure 1. Lotus Connections Web interface - Profiles
Lotus Connections Web interface - Profiles

All Lotus Connections services offer a Web interface and simple APIs providing universal access and simple extensibility. Beyond this, though, Lotus Connections includes a number of extensible integrations with the tools and applications you already use. The type and depth of integration varies with what is most applicable, given the tools and the Lotus Connections services. Also, note that all these plug-ins are built with IBM APIs, which are also available for Business Partners and customers to use.

The Lotus Connections integration with the IBM Lotus Notes V8 sidebar is a powerful extension, providing features beyond the Web application using the benefits of the rich client platform of Lotus Notes.

Activities and Profiles naturally integrate with IBM Lotus Sametime, providing the ability to find related activities with your chat partner or to save a chat transcript directly to an activity without leaving the chat window. Additionally, you can launch a browser to any of the five Lotus Connections services directly from your chat window or Contacts list.

IBM WebSphere Portal integration allows all services to be added to a WebSphere Portal page or composite application. The wiring and parameters supported by the Lotus Connections portlet allow the contents to be filtered by service, tag, user, and other properties. For example, a composite application that manages a particular process can include the Lotus Connections portlet showing only activities with a particular tag, enabling the use of activity-centric computing specifically targeted to the application at hand. The purpose of this document is to provide further information on how Lotus Connections can be integrated to extend existing Portal investments.

Universal and consistent support for feeds in all the Lotus Connections services allows your favorite feed reader to connect to any or all services. For example, you can have a feed of new entries to your high-priority activities, another feed from a colleague's bookmarks, and another from new blog entries with a particular tag.

There are a variety of other integration points, such as simple bookmarklets for posting links as bookmarks, activity, or community entries and the Profiles contextual business card. In addition, the simple Atom-based REST API makes it easy to create mashups.

Social software for your portal: Integrating Lotus Connections and WebSphere Portal

IBM WebSphere Portal provides core portal services that aggregate applications and content and delivers them as role-based applications. With its enhanced user interface, WebSphere Portal provides a user experience that helps increase organizational productivity with fly-out menus and page navigation, drag-and-drop support throughout, and other user interface enhancements, advanced personalization, and policy-based administration features that help accelerate deployments.

The Lotus Connections Multi-service portlet provides integration between the Lotus Connections applications and WebSphere Portal. Additionally, it brings the social networking capabilities of the Lotus Connections services to WebSphere Portal and supports all five Lotus Connection services. The portlet itself is really five portlets in one. It allows for each of the Lotus Connections services to be displayed natively inside the WebSphere Portal interface. Each service can provide personalized views, search, and display tags and alternate between views. The portlet is open and flexible to allow you to create predefined search queries and to configure search results.

Integrating Lotus Connections with WebSphere Portal provides a customized user experience while leveraging and managing information relevant to your users. The Lotus Connections portlet can provide dynamic information on each WebSphere Portal page. For example, a page related to Human Resources information on a company's intranet portal can be extended using the Lotus Connections portlet to display the communities or blogs related to Human Resources. This gives employees additional updated information relevant to a particular WebSphere Portal page.

Another example involves leveraging finance information on a corporate WebSphere Portal site. Using the portlet extends the corporate Web site to include recent bookmarks related to finance or to allow customers to start financial-related activities from a template, such as opening up a retirement fund.


The Lotus Connections portlet supports viewing all five services with the following:

  • Multiple views in each application
  • Display of tag clouds
  • Support for search and customized views
  • Quick launch to the Lotus Connections Web user interface

Before reviewing the details of configuring and customizing the portlet, it is helpful to examine the overall architecture of the Lotus Connections portlet. See figure 2.

Figure 2. Lotus Connections portlet functional architecture
Lotus Connections portlet functional architecture

This portlet is designed to adhere to the JSR168 portlet standard; it also leverages WebSphere Portal APIs to enable more advanced features not available in the JSR168 standard. The Lotus Connections portlet supports View, Personalize, Edit Shared Settings, and Configuration modes.

The Lotus Connections portlet uses JSPs (JavaServer Pages) to project JavaScript to the browser. JavaScript on the browser client then uses Ajax (Asynchronous JavaScript and XML) to download the rendering templates. The rendering template defines the data that is displayed to the user. When the portal page is first loaded or an action is triggered in the Lotus Connections portlet, for example when the user changes between Lotus Connections services, the portlet uses XMLHttpRequest to fetch Atom feeds from the Lotus Connections server asynchronously. Therefore, the HTTP requests can be made and responses received completely in the background and without the user experiencing any visual interruptions.

After the Atom feed is downloaded to the browser with the XMLHttpRequest, JavaScript invoked in the browser parses the feed and populates the display template. All the data requests and parsing are handled by the browser, thereby reducing the server load and avoiding blocking other portlets on the page from rendering. The content in the Lotus Connections portlet can be refreshed without redisplaying the entire portlet or reloading the page. Additionally, because all the rendering and data processing are handled by the browser, it is easy to extend and customize the portlet. An example of this is given later in the article.

Due to the Same origin policy, the browser script can talk to the server only where it originates. Therefore, if WebSphere Portal and the Lotus Connections server are not in the same domain, the Lotus Connections portlet uses an Ajax proxy servlet to handle the Ajax requests. If WebSphere Portal and the Lotus Connections server both use the same domain (for example, a reverse proxy is deployed or both servers are deployed in the same cluster), the portlet makes the XMLHttpRequest call directly to the Lotus Connections server.

Switching between Lotus Connections services

The Lotus Connections portlet provides users the ability to switch between the five services of Lotus Connections (Dogear, Activities, Blogs, Profiles, and Communities) using a drop-down menu in the portlet. See figure 3. Administrators with editor-level access can restrict the services users can view. For instance, you may want to display only one or a subset of the five services.

Figure 3. Switching between services
Switching between services

The service links at the top of the portlet open a browser instance and direct users to the Lotus Connections service. For instance, clicking the Dogear title launches the browser interface for Dogear. This is a quick way for you to access the full user interface from within the Lotus Connections portlet.

Personalizing the portlet

You can personalize the portlet further by clicking the Personalize option on the portlet menu. The Personalize your view window provides additional options such as choosing if links should open in a separate browser or in the current portlet. You can also select the number of entries to display in the portlet by choosing 5 (default), 10, or 15. Lotus Connections requires authentication, which means unless the single sign-on option is enabledd, you are prompted to enter your user ID and password for the Lotus Connections service. Figure 4 shows some of the personalization options.

Figure 4. Personalize your view
Personalize your view


When using the Profiles service in the portlet, you can search for people in your organization. The portlet for Profiles supports several types of searches such as first name, department, phone number, tags, job title, and email address. See figure 5. Search results also display the user's full name and job title.

Figure 5. Search and results for Profiles
Search and results for Profiles
Search and results for Profiles


Keeping updated with Communities allows you to view recent bookmarks and feeds related to communities of interest. Using the portlet allows employees and customers to view communities they are members of or any public community where they may want to retrieve updated content. See figure 6. You can also view the Communities tag cloud to filter communities based on tags or utilize the full-text search capabilities to find information.

Figure 6. Communities


Blogs are an important method for sharing information. Using the Lotus Connections portlet allows you to stay updated with blog entries right in the portal experience. See figure 7. You can switch between your blog and all blogs with the ability for full-text search and filtering by tags. Each blog entry in the portlet provides a short description when you click the read more action. Clicking the blog entry title brings you to the blog content from the Lotus Connections browser interface.

Figure 7. Blogs

Dogear (or social bookmarking)

Social bookmarking allows bookmarks to be centrally stored on a server. Bookmarking Web sites and being able to search for bookmarks based on tags provide better search results. Using the portlet allows you to view your bookmarks, all bookmarks, popular bookmarks, and even your watchlists. See figure 8. Additionally, you can filter bookmarks by tag. Clicking a title in the portlet launches the bookmarked Web site.

Figure 8. Dogear


Managing work based on activities instead of on applications allows you to prioritize deliverables and to become more efficient. Integrating WebSphere Portal with the Activities service through the portlet allows you to view updated information related to your activities, view completed activities, and view to-do's. See figure 9.

Figure 9. Activities

Creating customer views for each Lotus Connections service

You can customize the WebSphere Portal experience by creating custom views for the Lotus Connection services. In the Shared Settings mode in the portlet, there is a drop-down box to select a service and to create custom search queries or tag filters for that service. See figure 10. For example, you can create a search query on social software for the Dogear service. When navigating around the Dogear service in the portlet, you have an additional view to select based on the predefined search query on social software. You can also choose the view to use as the default for each service.

Figure 10. Shared Settings mode
Shared Settings mode

Configure a locked-down scenario

As we mentioned previously, the portlet supports Edit Shared Settings. A portal administrator or page administrator can use Edit Shared Settings to lock down a specific view or specific service. For example, if you want to have a page show only IBM-related information, you can lock down the Lotus Connections portlet to show only IBM-related bookmarks. See figure 11.

To create a locked-down view, take the following steps:

  1. Go to Edit Shared Settings mode at the top of the portlet.
  2. Create a custom query. In this case, it is IBM.
  3. Set this custom query as the default view.
  4. Select the "Display portlet contents as search results" option.
  5. Click Save.
Figure 11. Locking down the portlet to show only bookmarks related to IBM
Locking down the portlet to show only bookmarks related to IBM

You can also use the locked-down option for views. For example, if you have a team meeting every week, you can tag all your team meeting activities with salesteammeeting in your activities. In the portlet instance, you can create a custom view using salesteammeeting as the filter and name it Weekly Team Meeting. Next, you set the custom view as the default view so every time your team members visit the page, they see all the meeting entries. See figure 12.

Figure 12. Locking down the portlet to show only activities related to team meetings
Locking down the portlet to show only activities related to team meetings

Configure Lotus Connections portlet as a search results portlet

The Lotus Connections portlet can act as a cooperative portlet, which is a portlet that can interact with other portlets to share information. One or more cooperative portlets on a portal page can automatically react to changes from a source portlet triggered by an action or event.

To implement a source portlet that can interact with the Lotus Connections portlet, you need to define the data type (SearchText) and Namespace ( in a Web Services Description Language (WSDL) file. At runtime, the WebSphere Portal property broker uses type and namespace attributes to match source data to actions on the cooperative portlet. For more information about data type and Namespace, see the Websphere Portal information center.

The Lotus Connections portlet supported type is SearchText, which is a string. The targetNamespace is:

Listing 1 shows the Lotus Connections portlet cooperative properties types definition.

Listing 1. Cooperative properties types definition
		<xsd:schema targetNamespace="">
			<xsd:simpleType name="SearchText">
				<xsd:restriction base="xsd:string"></xsd:restriction>

Listing 2 is an example of how to define the action properties in a source portlet. (NOTE: The lines in bold show how to define types and namespace to interact with the Lotus Connections portlet in a WSDL file.)

Listing 2. Action properties in a source portlet
<?xml version="1.0" encoding="UTF-8"?>
<definitions name="Search_Service"

  <xsd:schema targetNamespace="">
    <xsd:simpleType name="SearchText">
      <xsd:restriction base="xsd:string">

<message name="QuickSearchResponse">
  <part name="QuickSearch_Text" type="tns:SearchText"/>

<portType name="QuickSearch_Service">
  <operation name="Quick_Search">
     <output message="tns:QuickSearchResponse"/>

  <operation name="Quick_Search">
    <portlet:action name="QuickSearchAction" type="standard" 
    caption="QuickSearch.action" description="Get the quick search text"
      <portlet:param name="searchText" 
      partname="QuickSearch_Text" boundTo="request-attribute" 

After a source portlet has been created, you can use the Portlet Wiring Tool provided by WebSphere Portal to wire the source portlet with the Lotus Connections portlet. After the wire is created, the Lotus Connections portlet reacts to the changes from the source portlet. In this example, the source was a simple search portlet. Now, the Lotus Connections portlet uses the search string sent from the source portlet as a search string to search a specific Lotus Connections service and display the search results.

When the Lotus Connections portlet is used to display search results, it is recommended that you configure the instance to display only one service by deselecting all other applications in the Edit Shared Settings mode. The "Display portlet contents as search results" checkbox must also be selected. When you set this, the portlet does not display the application selection drop-down menu, view selection drop-down menu, search box, or tag cloud. Figure 13 shows a sample of the search results across four services. Each service has its own portlet. The four services (Communities, Dogear, Activities, Blogs) along with Google display search results from a source portlet where marketing was entered for a search string.

Figure 13. Federated search results across four services and Google
Federated search results across all five services and Google

Customize the user interface

Because the portlet uses a template to define the look and feel as well as the content being displayed, the user interface and data processing are done in the browser. Therefore, you can easily modify the templates to display as you choose. Figure 14 shows how the default search results in Profiles appear.

Figure 14. Default search results
Default search results

Notice that only the name and title are displayed. Clicking the name launches a browser instance for that person's full profile using the Lotus Connections Web interface. This is the designed user experience with the default Profiles template.

The template uses the XPath syntax to define the content that is displayed. Listing 3 shows the out-of-the-box template for displaying profile search results. Notice that the lines in bold define the content that is displayed. The first one (bindAttribute="href:entry/link[@rel='related']/@href") pulls in the link to the person's profile. The second one (bindField="entry/title">) pulls in the person's name. The third one (bindField="entry/div[@class='title']") pulls in the job title.

Listing 3. The out-of-the-box template

Click to see code listing

Listing 3. The out-of-the-box template

<%-- Copyright IBM Corp. 2007  All Rights Reserved.                    --%>
<div id="post_template" class="vcard disc_post" bindField="entry">
    <div id="post_template_header" class="disc_post_header_7">
        <table cellspacing="0" cellpadding ="0" style="border-bottom-
        style:solid; border-bottom-width:1px; color: #ccc" >		
	<td class="disc_post_img"  valign="top" align="left">
	<img alt="favorite icon" id="post_online_image" width="25" 
	height="25" src="ventura/images/profiles_icon.gif"/>

                            <td valign="top">
                              	<a id="post_template_body_url" href="#" 
    TARGET="new window" class="post_body" style="background-color: 
    transparent" bindAttribute="href:entry/link[@rel='related']/@href">  
		<span id="name"  class="fn post_author" 
		<span id="email" class="email" style="display:none;" 
                            <td valign="top">
	     	<span id="job"  class="fn post_job" 

You can understand why (bindAttribute="href:entry/link[@rel='related']/@href") pulls in the link by looking at the feed as shown in listing 4.

Listing 4. Feed from Lotus Connections
<?xml version="1.0" encoding="UTF-8"?><feed 
xmlns="" xmlns:opensearch="http
uri="" version="1.0">Lotus Connections
 - Profiles</generator><title type="text">profiles where name=
 fuyi li</title><author><name>Lotus Connections
 - Profiles</name></author><updated>2007-05-05T01:01:36.856Z
 </updated><link rel="self" type="application
/atom+xml" href="
entryL01234567</id><category scheme="
.com/xmlns/prod/sn/type" term="profile"></category><title 
type="text">Fuyi Li</title><updated>2007-05-05T01
:01:36.856Z</updated><link rel="self" type="application/atom+xml" 
<link rel="related" type="text/html" href="http
<link rel="alternate" type="text/directory" 
></link><summary type="text">Profile information for 
Fuyi Li</summary><content type="xhtml"><div xmlns="">
<span class="vcard"><div><a class="fn url" href="http://profiles.tap">Fuyi Li</a></div><div>
<a class="email" href="mailto"></a></div>
<div class="x-groupwareMail" style="display:none">FuYi
 Li/Westford/IBM</div><div class="org"><span class="organization-unit">
 IBM Software Group, WPLC</span
></div><div class="role">IBM employee, Regular</div>
<div class="title">Senior Software Engineer, Lotus
 Connections Integration UE team Lead</div><div class="adr work postal">
 <div class="street-address">FIVE
 TECHNOLOGY PARK DR</div><div class="extended-address x-streetAddress2">
 </div><span class="locality"
>WESTFORD</span><span class="region">MA</span><span 
class="postal-code">01886-3141</span><div class="country-name"
>United States</div><div class="x-country-code" style="display:none">us
</div><div class="x-worklocation-code"
 style="display:none">WSF</div></div><div class="x-office">
 <span class="x-building">WTF5</span><span
 class="x-floor">NA</span><span class="x-office-number">HOME
 </span></div><div class="tel"><abbr class
="type" title="work">Work:</abbr><span class="value">
1-508-555-5555</span></div><div class="x-manager-uid"
 style="display:none">L05555555</div><div class="uid">
 class="x-profile-uid">L01234567</div><div class="rev" 

The bold line is the link to the person's profile. Therefore, the XPath is href:entry/link[@rel='related']/@href.

Modifying the template by adding one line (the line in bold) can now show more information in a Profiles search as shown in listing 5.

Listing 5. Modifying the template

Click to see code listing

Listing 5. Modifying the template

<%-- Copyright IBM Corp. 2007  All Rights Reserved.                    --%>
<div id="post_template" class="vcard disc_post" bindField="entry">
    <div id="post_template_header" class="disc_post_header_7">
        <table cellspacing="0" cellpadding ="0" style="border-bottom-style:solid; 
        border-bottom-width:1px; color: #ccc" >		
	<td class="disc_post_img"  valign="top" align="left">
	 <img alt="favorite icon" id="post_online_image" width="25" height="25" 

                            <td valign="top">
                              	<a id="post_template_body_url" href="#" 
                              	TARGET="new window" 
                              	class="post_body" style="background-color: transparent" 
	     	<span id="name"  class="fn post_author" bindField="entry/title">name</span>
		<span id="email" class="email" style="display:none;" 
                            <td valign="top">
		<span id="job"  class="fn post_job" bindField="entry/div[@class='title']">
		<span id="job"  class="fn post_job" bindField="entry/content"></span>

After you make changes to the template, users can see additional information provided by a vCard. A vCard is a format for personal data interchange, specifically electronic business cards. You can also change the look and feel by modifying the HTML in the template and the styles in threadStyles.css. See figure 15.

Figure 15. Customized search results
Customized search results


Integrating WebSphere Portal and Lotus Connections brings a new dimension to the extensibility of Lotus Connections and the flexibility of WebSphere Portal. You can now surface social software and build dynamic networks of coworkers, Business Partners, and customers from a WebSphere Portal environment. Lotus Connections conforms with IBM’s Service Oriented Architecture (SOA) strategy, which allows for easy deployment, configuration, and administration into WebSphere Portal.





developerWorks: Sign in

Required fields are indicated with an asterisk (*).

Need an IBM ID?
Forgot your IBM ID?

Forgot your password?
Change your password

By clicking Submit, you agree to the developerWorks terms of use.


The first time you sign into developerWorks, a profile is created for you. Information in your profile (your name, country/region, and company name) is displayed to the public and will accompany any content you post, unless you opt to hide your company name. You may update your IBM account at any time.

All information submitted is secure.

Choose your display name

The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerWorks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

Required fields are indicated with an asterisk (*).

(Must be between 3 – 31 characters.)

By clicking Submit, you agree to the developerWorks terms of use.


All information submitted is secure.

Dig deeper into IBM collaboration and social software on developerWorks

Zone=Lotus, WebSphere
ArticleTitle=Integrating IBM Lotus Connections and IBM WebSphere Portal