Ibm Infosphere Master Data Management Server 8.5.0
Ibm Infosphere Master Data Management Server 8.5.0
Ibm Infosphere Master Data Management Server 8.5.0
0
Note
Before using this information and the product it supports, read the general information under “Notices” on page 41.
Edition Notice
This edition applies to version 8.5.0 of IBM InfoSphere Master Data Management Server and to all subsequent
releases and modifications until otherwise indicated in new editions.
This document is licensed to you under the terms of the International Program License Agreement or other
applicable IBM agreement. You must ensure that anyone who uses this document complies with the terms of the
International Program License Agreement and any other applicable IBM agreement.
This document may only be used for your internal business purposes. This document may not be disclosed outside
your enterprise for any reason unless you obtain IBM’s prior written approval for such disclosure.
You may not use, copy, modify, or distribute this document except as provided in the International Program License
Agreement or other applicable IBM agreement.
© Copyright International Business Machines Corporation 1996, 2008.
US Government Users Restricted Rights – Use, duplication or disclosure restricted by GSA ADP Schedule Contract
with IBM Corp.
Licensed Materials – Property of IBM
Contents
Chapter 1. About the Data Stewardship Authentication summary . . . . . . . . . . 21
application . . . . . . . . . . . . . 1 Logging utility class . . . . . . . . . . . 21
Modifying the Data Stewardship UI . . . . . . 1 Properties file access class . . . . . . . . . 21
Data Stewardship prerequisite for Suspect DataStewardship configuration files . . . . . . 22
Duplicate Processing . . . . . . . . . . . 1 Exception class . . . . . . . . . . . . . 23
SDO objects . . . . . . . . . . . . . . 23
Generating SDO objects . . . . . . . . . 25
Chapter 2. Data Stewardship Functional requirements for generating SDO
architecture . . . . . . . . . . . . . 3 objects . . . . . . . . . . . . . . . 26
JSF pages and pagecode classes . . . . . . . . 3 Globalization . . . . . . . . . . . . . . 26
JSF runtime . . . . . . . . . . . . . . . 4 Key naming conventions for externalizing labels 27
Model classes and SDO objects . . . . . . . . 4 Key naming conventions for externalizing strings 27
IBM InfoSphere Master Data Management Server . . 4
Data Stewardship activity diagrams . . . . . . 4 Chapter 6. Customizing and extending
Maintain parties activity diagram . . . . . . 4
Process suspects activity diagram . . . . . . 5
Data Stewardship . . . . . . . . . . 29
Maintain hierarchies activity diagram . . . . . 7 Prerequisites for customizing the Data Stewardship
Maintain groupings activity diagram . . . . . 8 web application . . . . . . . . . . . . . 29
WebSphere test environment. . . . . . . . . 29
Data Stewardship application source code . . . . 29
Chapter 3. Setting up the Data Adding a field to an existing page . . . . . . . 30
Stewardship workspace . . . . . . . . 9 Adding a new page . . . . . . . . . . . 30
Unpackaging resources required for setting up the
workspace . . . . . . . . . . . . . . . 9 Chapter 7. New design of Data
Enabling the Web perspective . . . . . . . . . 9
Importing EAR files . . . . . . . . . . . 10
Stewardship interface . . . . . . . . 31
Importing existing projects into the workspace . . 10 Use of frames in the Data Stewardship application 31
Fixing errors related to weblogic.jar dependency . . 11 Adding a new navigation menu . . . . . . . 32
Commenting out WebLogic-related code . . . . 12
Chapter 8. Limitations and future
Chapter 4. Data Stewardship changes . . . . . . . . . . . . . . 35
application content . . . . . . . . . 15
Enterprise project content . . . . . . . . . . 15 Chapter 9. Additional information . . . 37
Java project content . . . . . . . . . . . . 16
Web project content. . . . . . . . . . . . 17 Chapter 10. Product information and
support . . . . . . . . . . . . . . 39
Chapter 5. Data Stewardship API . . . 19
Base Data Stewardship . . . . . . . . . . 19 Notices . . . . . . . . . . . . . . 41
Service classes . . . . . . . . . . . . . 19
Code tables data . . . . . . . . . . . . . 19
Sorting classes . . . . . . . . . . . . . 20
Trademarks . . . . . . . . . . . . . 45
The intended audience for this document includes architecture and development
teams. System implementers will find this developer guide useful as they perform
their implementation or create extensions. This developer guide assumes the
audience has a basic knowledge of J2EE concepts and experience with XML and
XML Schema. The audience should also be familiar with the Eclipse platform and
have knowledge of Java™ Server Faces.
The following placeholders will have to be unique IDs for USERACCESS table:
<UNIQUE_ID_FOR_USERACCESS_1>
<UNIQUE_ID_FOR_USERACCESS_2>
<UNIQUE_ID_FOR_USERACCESS_3>
<UNIQUE_ID_FOR_USERACCESS_4>
<UNIQUE_ID_FOR_USERACCESS_5>
<UNIQUE_ID_FOR_USERACCESS_6>
<UNIQUE_ID_FOR_USERACCESS_7>
<UNIQUE_ID_FOR_USERACCESS_8>
<UNIQUE_ID_FOR_USERACCESS_9>
<UNIQUE_ID_FOR_USERACCESS_10>
To setup suspect duplicate processing for the Data Stewardship UI, take the
following steps:
1. Add a user to the USERPROFILE table:
insert into <SCHEMA>.userprofile ( user_profile_id, user_id, LAST_UPDATE_DT ) values(
<UNIQUE_ID_FOR_DESIRED_USER_NAME>, ’<DESIRED_USER_NAME>’, CURRENT TIMESTAMP );
2. Add a group named DS to the GROUPPROFILE table ():
insert into <SCHEMA>.groupprofile ( GROUP_PROFILE_ID, GROUP_NAME, LAST_UPDATE_DT ) values(
<UNIQUE_ID_FOR_DS_GROUP>, ’DS’, CURRENT TIMESTAMP );
To assign data stewardship tasks to users, the following data must be added to the
InfoSphere MDM Server database.
1. Create a new data stewards group, with GROUP_NAME=DS in the
GROUPPROFILE table. The group name is externalized in the
mdmUIConfiguration.properties file and set to ″DS″.
Important: The group name in the database must match the entry in the
properties file.
2. Update the USERPROFILE table to add the users who will have tasks assigned
to them.
3. Update the USERGROUPPROFILE table to add the users to the DS group.
4. Update the USERACCESS table to add the users and the task transactions.
5. Update the TASKDEFINITION table to add the suspect processing task.
6. Add a record to the TASKROLEASSOC table to associate the task definition
with the data stewards (DS) group.
The user interface layer is isolated from the business logic implementation and
data storage, and only binds to InfoSphere MDM Server through the client.
The Data Stewardship architecture is based on the Model View Controller (MVC)
design pattern. The diagram below shows the Data Stewardship web application
architecture.
The JSF pages and the corresponding pagecode classes represent the DS view in
the MVC design. By using JSF implementation, developers are isolated from the
details of HTTP Servlet API, and they can focus on the page layout.
JSF runtime
The JSF runtime includes the JSF servlet and the JSF XML configuration file,
faces-config.xml. Together they represent the DS controller in the MVC design.
The SDOs used to display the MDM XML response and generate the MDM XML
request are generated based on these XSD files.
Clients of IBM InfoSphere Master Data Management Server are loosely coupled
and only bind to a service schema. Clients communicate with InfoSphere MDM
Server through RMI/IIOP and exchange XML messages that comply to the XML
schema definition. DS uses MDMClient.jar to communicate with InfoSphere MDM
Server.
After you have unpackaged the resources you require for setting up the
workspace, continue to the task of “Enabling the Web perspective.”
Note: If the Web option is not shown, check the Show all checkbox on the
Open Perspective window.
3. If the Confirm Enable window opens, click OK to indicate that you want to
enable the required activity.
Now, that you have enabled the Web perspective, continue to the task of
“Importing EAR files.”
Now, you have imported the EAR files, continue to the task of “Importing existing
projects into the workspace.”
a. On the Libraries tab look for the required JAR files and make sure that they
are from the CustomerDataStewardship project. The required JAR files are:
v CMSIntegration.jar
v log4j.jar
v IICEIntegration.jar
v MDMClient.jar
v xsdsdotransform.jar
If they are from a project other than CustomerDataStewardship, you must
remove the existing JAR files, then click Add JARs to locate the correct JAR
files from the CustomerDataStewardship project.
b. On the Projects tab, select CMSIntegration and IICEIntegration and click
Remove.
Now, that you have imported existing projects into the workspace, continue to the
task of “Fixing errors related to weblogic.jar dependency,” if necessary.
Note: You might also receive compile errors related to the file
/CommonUIModel/src/com/ibm/mdm/ui/registry/BEAUserGroupImpl.java. This file is
not required for a WebSphere deployment. To get rid of the error, you can remove
the file from the workspace.
After these errors are addressed, your workspace setup should be complete and
ready for use.
//STEP 2
/*final DWLServiceController controller = (DWLServiceController) Security
.runAs(subject, createController);
//STEP 3
/*
if (logger.isDebugEnabled()) {
logger.debug("BEA deployment");
logger.debug("Context.SECURITY_PRINCIPAL: "
+ dataStewardshipEnv
.get(context.SECURITY_PRINCIPAL));
logger.debug("Context.SECURITY_CREDENTIALS: "
+ dataStewardshipEnv
.get(context.SECURITY_CREDENTIALS));
logger.debug("Context.SECURITY_AUTHENTICATION: "
+ dataStewardshipEnv
.get(context.SECURITY_AUTHENTICATION));
logger.debug("Context.SECURITY_PROTOCOL: "
+ dataStewardshipEnv
.get(context.SECURITY_PROTOCOL));
logger.debug("Security.getCurrentSubject(): "
+ Security.getCurrentSubject().toString());
}
byte[] password = wccClientPassword.getBytes();
CallbackHandler loginHandler = new URLCallbackHandler(wccClientId,
password, dataStewardshipEnv.getProperty(JAVA_NAMING_PROVIDER_URL));
LoginContext lc = null;
try {
lc = new LoginContext("WLSecurity", loginHandler);
lc.login();
} catch (LoginException e) {
throw new CommonModelException(e);
}
subject = lc.getSubject();
try {
home = Security.runAs(subject, getControllerHome);
controllerHome = (DWLServiceControllerHome) PortableRemoteObject
.narrow(home, DWLServiceControllerHome.class);
} catch (Exception e) {
e.printStackTrace();
}
*/
All the assets for deploying the Data Stewardship application are packaged in the
file CustomerDataStewardship.ear.
The following sections describe the application structure at the .ear and .war level.
The web project also contains all the resource bundles required to support
globalization. The resource bundles are structured as follows:
v DataStewardshipLabels.properties contains all the labels and static content
displayed on the screen;
v DataStewardshipStrings.properties contains all the application specific
messages, errors or exceptions;
v DataStewardshipSettings.properties contains all the non-translatable,
locale-specific data.
Service classes
The service classes wrap the complexity of RMI communication to the InfoSphere
MDM Server application and the specific parameters for each type of service.
To add a new code table for data retrieval and caching, you must add lines of code
to accomplish the following:
v Declare a string final static variable that holds the name of the code table.
v Declare a private collection variable that holds the collection of type codes.
v Generate getter and setter methods for the collection of type codes.
v Modify the get method to retrieve, sort, and cache the code table data.
In the example bellow we retrieve, sort, and cache data for the CdGroupingTp
code table.
private static final String CD_GROUPING_TP = "CdGroupingTp";
private Collection allGroupingTypeCodes;
if (allGroupingTypeCodes == null) {
allGroupingTypeCodes = AdminServices.getAllAdminCodeTypesByLocale(
getLocale(), getUserId(), CD_GROUPING_TP);
while (it.hasNext()) {
if (eobj.getName() == null) {
eobj.setName(NO_NAME);
}
}
}
//sort the type codes by name
EmfObjectSorter emfObjectSorter = new EmfObjectSorter();
emfObjectSorter.sortLexical((List) allGroupingTypeCodes,
AdminPackage.eINSTANCE.getDWLEObjCdGroupingTpType_Name(),
getRequesterLocale());
return allGroupingTypeCodes;
}
Sorting classes
The Data Stewardship API provides two sorting classes: EmfObjectSorter and
StringObjectSorter.
EmfObjectSorter
StringObjectSorter
Authentication summary
The application uses a form-based login.
The user registry for authentication exists in an LDAP server. The current
authentication for the UIs is implemented using form authentication.
Currently the UIs authenticate a user by using the BEA WebLogic or WebSphere
application server’s security implementation. Depending what application server
the UIs are intended to be deployed on—currently WebLogic and WebSphere are
supported—at installation time, a UserGroupImpl property in
mdmUIConfiguration.properties is set to one of the following:
v com.ibm.mdm.ui.registry.WASUserGroupImp when deployed on a WebSphere
application server
v com.ibm.mdm.ui.registry.BEAUserGroupImpl when deployed on BEA WebLogic
For the DataStewardship application released with IBM InfoSphere Master Data
Management Server were introduced new properties in order to accommodate
possible gold data changes, which could be initiated by clients in order to meet
there particular needs.
#This value represents the task status type corresponding to "New" value in
#the CDTaskStatusTP code table. If the value is changed in the MDM database,
#this value has to be changed as well.
TaskStatusType.new=1
#This value represents the task status type corresponding to "Completed" value in
#the CDTaskStatusTP code table. If the value is changed in the MDM database,
#this value has to be changed as well.
TaskStatusType.completed=4
#This value represents the task priority type corresponding to a "high" priority
#task.
Task.taskProrityType.high=100
#This value (where the field Priority_Cat_Tp_Cd equals 1) represents the possible
#task priority values in
#the CDPriorityTp code table. If the value is changed in the MDM database,
#this value has to be changed as well.
CdPriorityTp.PriorityCatTpCd=1
#This value represents the task status type corresponding to "create" value in
#the CDTaskActionTP code table. If the value is changed in the MDM database,
#this value has to be changed as well.
TaskActionType.create=1
#This value represents the task status type corresponding to "submit" value in
#the CDTaskActionTP code table. If the value is changed in the MDM database,
#this value has to be changed as well.
TaskActionType.submit=6
Also the following additional options are available for the DataStewardship and
Customer Business Admin UIs:
# View request and response xml flag. The default value is true.
# This flag can have 2 possible values (true or false).
# view_xml=true a link is rendered ’View Transactions’ on the top right section of
# every screen.
# view_xml=false the ’View Transactions’ link is hidden.
view_xml=true
Exception class
The com.dwl.datastewardship.DataStewardshipException.java class is the
exception class created to represent any exception raised inside the Data
Stewardship application.
SDO objects
The SDO objects are generated from the XML schema definition files.
If there are changes to XML schema definition files or there are new XSD files that
have to be added, the SDO objects have to be generated again.
The Data Stewardship web application has two XML schema definitions:
v DWLAdmin.xsd
v DWLCustomer.xsd
When SDO objects are generated from the service schema, the request and
response schemas generate two sets of different classes for the same model data.
This forces a field-to-field data transformation from the request model data to the
response model data. To avoid this, merge the request and response schema to
generate only one class for the model data.
The sequence of schema elements must follow the request schema. InfoSphere
MDM Server services require that the request XML strictly complies with the
request schema. SDO objects are not affected by the sequence of response XML
when they are populated from the schema.
The two merged schemas list all the request elements first, followed by the
response schema elements, and then any additional required elements.
The request and response schemas do not exactly match each other, so you must
clear any unexpected elements that are presented in the request XML for the
request schema carried from the response.
If there is a need for new XML schema definition files for each new schema,
regenerate the SDO objects and update the BaseDataStewardship class in order to
statically register the name space of the new XSD.
For more information about SDO, visit the following page: http://www-
128.ibm.com/developerworks/library/j-sdo/?ca=d
Note: If the Eclipse Modeling Framework wizard is not visible, you need to
first enable the EMF Capabilities Sample Set, as follows:
a. From the Windows menu, select Preferences window → General →
Capabilities.
b. In the Capabilities window, check the checkbox next to EMF Capabilities
Sample Set, then click Advanced
c. In the Advanced window, enable all of the subitems listed under EMF
Capabilities Sample Set.
2. In the Enter or select the parent folder field, make sure that
CommonUIServiceDataObjects/model is selected. This is where the *.genmodel
file will be created.
3. In the File Name field, type DWLCustomer.genmodel.
Now that you have created the .genmodel file, you need to modify the .genmodel
file properties and generate SDO objects.
They are:
v org.eclipse.emf.common_2.2.1.v200703010000.jar
v org.eclipse.emf.commonj.sdo_2.1.0.v200703010000.jar
v org.eclipse.emf.ecore.change_2.2.1.v200703010000.jar
v org.eclipse.emf.ecore.sdo_2.2.1.v200703010000.jar
v org.eclipse.emf.ecore.xmi_2.2.3.v200703010000.jar
v org.eclipse.emf.ecore_2.2.3.v200703010000.jar
Globalization
The Data Stewardship web application has been globalized and support for several
languages is available.
To support globalization, all of the static labels of all pages and messages are
externalized in properties files:
v The labels, tool tip images, and static messages on the “Welcome” page are
included in the DataStewardshipLabels.properties file.
v The messages, validation errors, Java exceptions and Java script messages are
included in the DataStewardshipStrings.properties.
v The locale-specific settings that do not require translation are included in
DataStewardshipSettings.properties.
<BusinessObject>_<field>=<Label Description>
menu_<BusinessObject>_<field>=<Label Description>
label_<Label>=<Label Description>
Where:
v <Category> is the type of the string. The types of strings that are currently
identified as requiring externalization are exception and logger messages for
level warnings and above.
v <ClassName> is the name of the Java class.
v <Identifier> is a meaningful string to identify the string.
The development tool used to build the Data Stewardship web application is the
Rational® Application Developer (RAD).
The JSF page design involves dragging and dropping faces components to create
the page layout. The JSF component value is bound to an attribute of a JSF
managed bean or a simple Java bean. The JSF component actions are bind to the
pagecode classes and the navigation within the JSF pages is defined in the
faces-config.xml.
To set up a local test environment for the InfoSphere MDM Server Data
Stewardship web application, you must use the IBM WebSphere® Application
Server v6.1 Test Environment.
The source code for Data Stewardship application can be found in the distribution
jar MDM80_Samples.tar.gz. After you extract the contents of the tar file, the
application source code can be found under DataStewardship directory.
To import the source code into RAD, IBM recommends that you use the Project
Interchange import option.
Tip: If the field has already been added to the SDO objects, you can simply
add the field to the page and then create the corresponding value binding.
The Party Maintenance and Suspect Processing modules display party data on
separate pages. For example, to see a party’s addresses you can go to the Address
page by clicking on the Address tab.
The actual application screens are presented in the fourth iframe, which is the
workarea.
© Copyright IBM Corp. 1996, 2008 31
Licensed Materials – Property of IBM
The vertical navigation menu, which is the third iframe, can be displayed or
hidden by clicking on the twistie located on the right side of the vertical
navigation menu.
if(top.document.getElementById(’workArea’).contentWindow.mbody)
top.document.getElementById(’workArea’).contentWindow.mbody.style.cursor = "wait";
if(navName == "searchParty")
top.document.getElementById(’workArea’).src = path+’/faces/search/partySearch.jsp’;
if(navName == "addPerson")
top.document.getElementById(’workArea’).src = path+’/faces/partyMaintenance/addPerson.jsp’;
if(navName == "addOrganization")
top.document.getElementById(’workArea’).src = path+’/faces/partyMaintenance/addOrganization.jsp’;
if(navName == "searchSuspect")
top.document.getElementById(’workArea’).src = path+’/faces/suspectProcessing/search/suspectSearch.jsp’;
if(navName == "hierarchy")
top.document.getElementById(’workArea’).src = path+’/faces/search/partySearch.jsp’;
if(navName == "grouping")
top.document.getElementById(’workArea’).src = path+’/faces/search/partySearch.jsp’;
if(navName == "searchTaskByOwner")
top.document.getElementById(’workArea’).src = path+’/faces/suspectProcessing/search/searchTaskByOwner.jsp’;
if(navName == "mySuspectProcessingTaskList")
top.document.getElementById(’workArea’).src = path+’/faces/suspectProcessing/search/mySuspectProcessingTaskList.jsp’;
return;
document.getElementById("form1:menuOptionFlag").value = "";
return false;
}
return false;
}
This application is distributed as white box software, shipped with source code,
and it is supported in its original form. If you do encounter problems you should:
v Attempt to reproduce the problem in the original distribution, assuming you
made changes.
v If the problem can be reproduced in the original application, report the problem
through the web-based product support tool. See Chapter 10, “Product
information and support,” on page 39.
v If you cannot reproduce the problem, it may be for any of a number of reasons.
Verify that:
– You are using the same the development tools that were used to develop the
application.
– The fix pack levels are the same.
– The fixes mentioned in the release notes are installed.
v IBM recommends that you deploy a separate instance for the original application
and have your own development deployed on another instance. This makes it
easier to verify whether the problem exists in the original distribution.
Migration
Notices
This information was developed for products and services offered in the Canada.
IBM may not offer the products, services, or features discussed in this document in
other countries. Consult your local IBM representative for information on the
products and services currently available in your area. Any reference to an IBM
product, program, or service is not intended to state or imply that only that IBM
product, program, or service may be used. Any functionally equivalent product,
program, or service that does not infringe any IBM intellectual property right may
be used instead. However, it is the user’s responsibility to evaluate and verify the
operation of any non-IBM product, program, or service.
IBM may have patents or pending patent applications covering subject matter
described in this document. The furnishing of this document does not give you
any license to these patents. You can send license inquiries, in writing, to:
For license inquiries regarding double-byte (DBCS) information, contact the IBM
Intellectual Property Department in your country/region or send inquiries, in
writing, to:
The following paragraph does not apply to the United Kingdom or any other
country/region where such provisions are inconsistent with local law:
INTERNATIONAL BUSINESS MACHINES CORPORATION PROVIDES THIS
PUBLICATION “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER
EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS
FOR A PARTICULAR PURPOSE. Some states do not allow disclaimer of express or
implied warranties in certain transactions; therefore, this statement may not apply
to you.
This document may provide links or references to non-IBM Web sites and
resources. IBM makes no representations, warranties, or other commitments
whatsoever about any non-IBM Web sites or third-party resources that may be
referenced, accessible from, or linked from this document. A link to a non-IBM
Web site does not mean that IBM endorses the content or use of such Web site or
its owner. In addition, IBM is not a party to or responsible for any transactions you
may enter into with third parties, even if you learn of such parties (or use a link to
such parties) from an IBM site. Accordingly, you acknowledge and agree that IBM
is not responsible for the availability of such external sites or resources, and is not
responsible or liable for any content, services, products, or other materials on or
available from those sites or resources. Any software provided by third parties is
subject to the terms and conditions of the license that accompanies that software.
IBM may use or distribute any of the information you supply in any way it
believes appropriate without incurring any obligation to you.
Licensees of this program who wish to have information about it for the purpose
of enabling: (i) the exchange of information between independently created
programs and other programs (including this one) and (ii) the mutual use of the
information that has been exchanged, should contact:
The licensed program described in this document and all licensed material
available for it are provided by IBM under terms of the IBM Customer Agreement,
IBM International Program License Agreement, or any equivalent agreement
between us.
All statements regarding IBM’s future direction or intent are subject to change or
withdrawal without notice, and represent goals and objectives only.
This information may contain examples of data and reports used in daily business
operations. To illustrate them as completely as possible, the examples include the
names of individuals, companies, brands, and products. All of these names are
fictitious, and any similarity to the names and addresses used by an actual
business enterprise is entirely coincidental.
COPYRIGHT LICENSE:
Each copy or any portion of these sample programs or any derivative work must
include a copyright notice as follows:
© (your company name) (year). Portions of this code are derived from IBM Corp.
Sample Programs. © Copyright IBM Corp. _enter the year or years_. All rights
reserved.
Notices 43
Licensed Materials – Property of IBM
Trademarks
Company, product, or service names identified in the documents of the text may
be trademarks or service marks of International Business Machines Corporation or
other companies. Information on the trademarks of IBM Corporation in the United
States, other countries, or both is located at http://www.ibm.com/legal/
copytrade.shtml.
UNIX is a registered trademark of The Open Group in the United States and other
countries.