Cross Server Process Sharing
Overview
Cross Server Process Sharing is a special case of process sharing introduced in Jazz 4.0 that allows the same process to be used by many project areas even if they are on different servers. Process sharing allows the same roles, permissions, preconditions and behaviors to be used by multiple project areas and maintained in a single shared process area. Changes to the shared process will be reflected in all the project areas which consume that process. Before Jazz 4.0 the project area which provided process was required to be on the same server as the project areas which consumed that process. Cross Server Process Sharing makes it possible to use shared process in a multi server environment where different project areas hosted on different servers all consume the same process.Benefits
An organization can encapsulate policy rules such as “Code must be reviewed by another developer before it is delivered” or “Only a team lead can add a new work item category” as process permissions and preconditions which will be enforced by Jazz software. Organizations will usually tailor the process to match their internal policys. Cross Server Process sharing allows that tailored process to be used by many different project areas even if they are on different servers. Changes made to the shared process will be propagated to all of the project areas which use that process and Individual Project Areas can refine the process by adding more roles or refining permissions.What aspects of process are shared?
When the process for a project area is shared any project area that consumes that process will inherit the following- Roles
- Permissions
- Behaviours, including preconditions
- Attachments
- Configuration Data including work item definitions.
- Members
- Administrators
- Project Associations
- Iteration Types
- Access Control
- Work Item Categories
- Timelines and iterations
Notes on the Implementation
Cross Server Process Sharing has been designed in a way that creates very little cross server traffic. There is a copy of the shared process on each server that consumes process from a remote server. When the project area providing shared process is updated changes are pushed from the process provider to any consumers that are not on the same server. If the push fails because the server where process is consumed is down or unreachable the push will be reattempted at a regular interval until it succeeds. As a result of this design cross server process sharing does not make any network calls when performing operations which use the shared process such as creating work items or checking permissions. When the shared process is updated it may take a few minutes for the updated process to be propagated to the servers where the process is consumed. If there is no connectivity between the provider server and consumer server the consumer process will not get updated until the two servers are connected. Updating the shared process will cause some network traffic to occur as the updated process is pushed to consumers.Best Practices
- The project area that provides process should be used only for that purpose; it should not be used for production work.
- Consider granting access to the shared project to ‘Everybody’ to allow all users to see it. This allows members of consumer projects to see the shared process without having to make them members of the project area that provides the process.
- Remove friend entries for servers that are no longer used. Friend entries are used when users look for process providers, as well as when process changes are communicated across servers. Stale friend entries can cause the search for process providers to take longer and confuse users.
Cross Process Sharing Example
The next few sections will describe how to set up cross server process sharing. In this example there are two servers, clmwb.com which provides process and clmwb2.com which consumes process. These are the steps to set up cross server process sharing- Create a friend relationship between the servers
- Create a project area which provides process
- Create a project area which consumes the process from the provider
- Troubleshooting
- Test the project areas you created
How to create a friend relationship between the servers
For cross server process sharing to work it is necessary to set up a friend relationship in both directions between the server providing the process and any server from which the process is consumed. This must be done for each application for which process is to be shared. If you wish to share a Change and Configuration Management project between two servers then you need to create a friendship between the /ccm applications on the two servers, for Quality Management the friendship would be between the /qm applications. Jazz 4.0 does not support cross server process sharing for Requirements Management projects. Suppose that the server providing shared process is called clmwb2, the server where the shared process will be consumed is called clmwb, both on port 9443 and that you are interested in sharing process from a change and configuration management project.Create a friend relationship from clmwb to clmwb2
- Go to https://clmwb:9443/ccm/admin and click on the Application tab.
- From there click on Friends (Outbound) in the navigation bar.
- On the Friends page click Add… to open the Add Friend dialog.
- Enter the following values:
-
Name: Server 2
-
Root Services URI: https://clmwb:9444/ccm/rootservices
-
Oauth Secret: whatever you want
-
Trusted: checked
-
- Click on Create Friend ….
- Hit Next and then hit Finish to authorize the Provisional Key.
- Go to https://clmwb:9443/ccm/admin and click on the Application tab.
- From there click on Consumers (Inbound) in the navigation bar.
- You will see one entry under provisional keys. Edit that entry to set the authorized field to approved and change the name to
Server 1
( or any other name that will make it easy to recognize ). - Click Save.
- Now under authorized keys edit Server 1 to add a functional user ID. It is not necessary for the functional user to have a license or Jazz Admin privileges. In this example we will select ccm_user as the functional user.
Create a friend relationship from clmwb2 to clmwb
Repeat the previous steps in the opposite direction to create a friend relationship from clmwb2 to clmwb.How to create a project area which provides process
In this example the project area which provides process is initialized using the Formal Project Management Process template.- Log in to Rational Team Concert on clmwb2 as a user who is a member of the JazzProjectAdmins or JazzAdmins group.
- Go to the Project Areas tab (https://clmwb2:9443/ccm/admin#action=jazz.viewPage&id=com.ibm.team.process.ProjectAreaManagement).
- Click Create Project Area.
- Name the project
My Process Provider
. - Select Formal Project Management Process in the Process section.
- Click Save.
- Wait for the save to complete.
- Click Allow other project areas to use this project area’s process in the Process Sharing section.
- Click OK in the confirmation dialog.
- Click Save.
How to create a project area which consumes the process from the provider project area
In this section you will create a project area that gets its process from “My Process Provider”. You will use the Unconfigured Process template because that template does not configure any process on its own. It is designed to be used when creating project areas that will get their process from other project areas. Using a template that defines its own process will cause the project area that consumes process to override the process it is consuming. In this example, we want all information to come from the process provider.- Log into clmwb as a user who is a member of the JazzProjectAdmins or JazzAdmins group.
- Show the Project Areas tab (https://clmwb:9443/ccm/admin#action=jazz.viewPage&id=com.ibm.team.process.ProjectAreaManagement)
- Click Create Project Area.
- Name the project
My Process Consumer
. - Select Unconfigured Process in the Process section. If you do not have the Unconfigured Process in the list of processes, you may need to upgrade your templates. See the “Prerequisites” section of this article for details. Or, you may need to scroll the list of templates to see Unconfigured Process.
- Click Save.
- Wait for the save to complete.
- Click Use the process from another project area for this project area in the Process Sharing section.
- The Choose Project Area dialog will open – in the applications section you will see Server2 listed as one of the options.
- Select Server2, the list of Project areas will change to show “My Process Provider”.
- Select My Process Provider.
- Click OK.
- Click Save.
- Add yourself as a Member in the Members section.
- Click the Process Roles button.
- Add the Team Lead role.
- Click OK.
- Click Save.
Troubleshooting
Most problems with setting up cross server process sharing are a result of not getting the friend relationships set up correctly and will show up when trying to consume process. Below are some symptoms and possible causes.Symptom | Possible Cause |
In the Choose Project Area Dialog the remote server does not show up under applications | There is no friend relationship from the consumer server to the provider. Verify that you have created the friendship from and to the application where you want to share the project areas e.g. from /ccm to /ccm or /qm to /qm. |
Error CRJAZ6047E after saving consumer | There is no friend relationship from provider server to the consumer |
Error CRJAZ6045E after saving consumer | No functional user has been set on the provider end of the friend relationship from the consumer |
Error CRJAZ6043E after saving consumer | No functional user has been set on the consumer end of the friend relationship from the provider |
Test the project areas you created
Verify that when you open “My Process Consumer” in a project area editor you can set permissions for each of the roles that was inherited from “My Process Provider”.About the author
Chris Goldthorpe is a member of the Jazz Process team.
Copyright © 2012 IBM Corporation