Social software is not just about collaborating with the people you know. It is also about discovering and collaborating with the people you do not know. Profiles in IBM Connections 3.0.1 enables you to improve your ability to identify, develop, and maintain relationships within your professional network. Profiles helps you expand your social network by allowing you to identify your colleagues and easily stay in touch.
You can expand your network by finding an individual's expertise and areas of interest using Profiles. You can discover who in the organization is working on projects like yours or finding solutions to similar problems and the resources they are using to simplify their jobs. Find out who your co-workers are, what their interests are, what skills they have, and what they are publishing or reading as well as get in touch with them.
Using Profiles, you can find people with the skills and expertise you need and add them as colleagues. Profiles can help you to tap into the collective knowledge of the people in your organization and work collaboratively with them. After you have made the contacts, you can maintain relationships within your professional network by aggregating all your social data in one place so that others can easily discover your work.
You can also use social tagging to associate individuals with a topic, expertise, or other relevant category. You can do this for yourself or for others, and the tags are displayed in a tag cloud or as a list on an individual's Profiles page, providing a quick way for users to locate individuals associated with a topic.
Figure 1 shows how IBM Connections conforms to a service-oriented architecture (SOA). Each service is a set of enterprise archive (EAR) files that are installed on a web server and store data in a relational database. All the requests are pure HTTP requests, and the dominant means of access is via a web browser.
Figure 1. Profiles architecture
The IBM Connections services are stand-alone web applications that are accessible not only through a browser but also through feed readers. Feed reader data is reverse proxy cacheable, so the application does not have to regenerate the feed every time the client polls. The proxy server stores the page, asks whether there are any changes, and provides a timely response.
Every Profiles component has its own database. The Profiles database, PEOPLEDB, is populated by IBM Tivoli® Directory Integrator (TDI). TDI uses assembly lines to extract data from disparate repositories, and then uses a separate assembly line to populate the profiles database. Profiles uses TDI for aggregating and synchronizing multiple user repositories into the Profiles database.
As mentioned in Installing IBM Connections 3.0.1, IBM Connections 3.0.1 includes a restricted license of TDI that you can use to populate user profile information with data from human resources (HR) or customer relationship management (CRM) applications.
Profiles and data synchronization
As employees come and go from an organization, the corporate directory changes, and there are steps administrators must take to ensure that those changes are reflected in the product. IBM Connections membership tables need to be kept up to date with these changes.
There are a two ways to keep the member tables up to date:
- If the Profiles application is installed, when you inactivate a user or make changes to user data (such as change a person's last name or email address in the Profiles database), that change is automatically pushed out to the membership and login tables of the other IBM Connections applications.
- If Profiles is not installed in your deployment, you must apply the changes to the membership tables for each application separately. The only way to update user data in the membership tables for the other applications is through a set of administrative synchronization commands.
Managing users is easier if the Profiles application is installed and you accept the default configuration, in which the Profiles directory service extension is used to retrieve data from the Profiles database instead of retrieving it from the Lightweight Directory Access Protocol (LDAP) directory.
Starting with IBM Connections 3.0, when you make changes to user status and
data in the Profiles database, the changes are automatically propagated to
the other application databases. As an administrator, you need to
synchronize changes from your LDAP directory to the Profiles database to
ensure that your organizational information is kept up to date. For this
task, use the
sync_all_dns command. For all LDAP directories,
you can use the
sync_all_dns command to apply changes from
the LDAP directory to the Profiles database. If you want to keep the
Profiles database in a closely synchronized state with your LDAP
directory, run this task nightly or at a frequency that suits you. Because
this task performs a complete comparison of the LDAP directory search
scope with the Profiles database, be sure to allow sufficient time for it
Active and inactive users
With IBM Connections 3.0, IBM added support to Profiles to better identify whether people in the directory are active (meaning current employees) or inactive (meaning people who were once listed in the directory but have since left the organization). The purpose of this feature is to provide a formalized and consistent way to "inactivate" a user who has left the system. In IBM Lotus® Connections 2.5, Profiles deleted users while other components were unaware that they had left the system.
Differentiating between active and inactive users enables users who are inactive to be kept in product membership and login tables as opposed to being removed from the product databases entirely. This change both conserves the data the inactive user created and makes it possible for inactive employees to return to the organization and regain access to their previously created data.
Profiles implements the following behavior:
- In membership lists, searches, and name-selection fields, only active people are displayed by default.
- Useful data that people who have left the organization contributed to IBM Connections applications does not have to be removed; it can remain for use by others, but the product user interface (UI) reflects the fact that the contributing user is currently inactive.
- People who return to the organization can be reactivated and regain access to their old data.
- Support is available to search for inactive people specifically.
Profiles is only as useful as its users make it. The feature has the capability and the ability to search for others using tagging, background, or their expertise, but it is up to those individuals to update their profiles and include information specific to their job. When users maintain their profiles, it is easier for others to search for them and vice versa. By default, IBM Connections provides several fields in which users can provide information for others in the organization, but some organizations may want to include additional information to match their corporate directory or their business practice. This article shows the available options for extending the Profiles feature to achieve this goal.
You can choose from a predefined set of Profiles attributes, and then
extend the data model with custom attributes. An extension
attribute is an attribute that you supply to match a field in
your corporate directory for which there is no existing predefined
attribute. You can add new extension attributes by editing the
profiles-config.xml file. The next article in this series
will provide the complete steps to achieve this goal.
Listing 1 shows the necessary changes to add the
twitterid to Profiles.
Listing 1. Profiles-config.xml
... <profileDataModels> <profileExtensionAttributes> <xmlFileAttribute ... </xmlFileAttribute> <simpleAttribute extensionId="twitterid" length="40" </profileExtensionAttributes> <profileLayout profileType="default"> ... <contactInformation> ... <extensionAttribute showLabel="true" editable="true" extensionIdRef="twitterid"/> ... </contactInformation> </profileLayout>
Figure 2 shows the extension attribute tweeted on the Profiles page.
Figure 2. Extension attribute on a Profiles page
As you saw in Figure 2, extension attributes are useful for adding information to user profiles, but unless the label next to the extension attribute shows useful information about that field, users might not know what information to enter.
Listing 2 shows the changes you need to make to
Listing 2. Profiles-config.xml
<extensionAttribute showLabel="true" labelKey="label.custom.twitterid" editable="true" extensionIdRef="twitterid"/>
Make the changes shown in Listing 3 to
LotusConnections-config.xml to customize the default label
for extension attributes.
Listing 3. LotusConnections-config.xml
... <resources> <widgetBundle name="label.custom.resources" prefix="custom"/> </resources> <versionStamp value="20111009.034023"/> <widgetBundle name="label.custom.resources" prefix="custom" /> </config>
There are extra steps to this process, and the next article will go through them. In the mean time, Figure 3 shows the final result.
Figure 3. The result of custom labels
Populating custom extension attributes
Extension attributes can be populated using different methods:
- Profiles application programming interface (API)
- Profiles Admin API
To map custom extension attributes to fields in your source LDAP directory,
configure settings in the
tdi-profiles-config.xml file for
each custom extension attribute. (Links to more information on these
methods are provided in Resources.)
You can use profile types to configure the layout of the main Profiles page
and the widgets used in Profiles by using
scripts to edit the
profiles-config.xml file. IBM Connections
supports multiple attribute layouts based on different profile types. In
addition to the layouts, extension attributes are supported for every
profile type. Because all profiles share one schema, an extension
attribute such as
customers has the same semantic meaning for
all profile types. However, you can choose to associate a particular
attribute with a profile based on profile type. The UI configuration,
including display characteristics and whether an attribute can be edited,
is also configurable for custom extension attributes based on profile
You can also configure directory search options in Profiles to specify the
fields you want to allow users to use when performing a search. Configure
profiles-config.xml file to specify the fields you want
to include in the results page displayed after users perform a directory
search in Profiles. You can configure the search results page for all
types of search.
After reading this article, you should understand how Profiles works and how it can interact with other systems in your organization to keep data synchronized across multiple sources. You should also have a better idea of the level of customization that your organization requires. You can now choose to include custom extension attributes, remove default attributes, and even decide on the existence and location of widgets. The next article in this series will provide step-by-step instructions to complete all the customizations shown in this article.
- Check out the IBM Connections page.
- Read the IBM Redbook, Customizing IBM Connections 3.0.1 for more information on customizations.
- Find technical information at the IBM Connections Product Documentation page.
- Try IBM Connections on the Lotus Greenhouse.
Get products and technologies
- Download IBM Connections 3.0.1.
- Participate in the IBM Connections forum.
- Subscribe to the IBM Social Software blog.
- Get involved in the My developerWorks community. Connect with other developerWorks users while exploring the developer-driven blogs, forums, groups, and wikis.
Dig deeper into IBM collaboration and social software on developerWorks
Get samples, articles, product docs, and community resources to help build, deploy, and manage your cloud apps.
Keep up with the best and latest technical info to help you tackle your development challenges.
Software development in the cloud. Register today to create a project.
Evaluate IBM software and solutions, and transform challenges into opportunities.