Suspect processing - searching and matching engines

The following is a description of the changes to how InfoSphere® MDM uses and handles searching and matching engines.

Before OSGi

Out-of-the-box, InfoSphere MDM enables you to choose from three available party matching engines and allows you to write your own party matching engine. Before OSGi, you would specify the one you wanted to use in the TCRM.properties resource bundle. The specific property setting is:
##################################
# PARTY MATCHER                  #
##################################
party_matcher=com.dwl.tcrm.coreParty.component.TCRMPartyMatcher
party_matcher.1=com.dwl.tcrm.coreParty.component.TCRMPartyMatcher
party_matcher.2=com.ibm.mdm.thirdparty...InfoServerPartyMatcherAdapter
party_matcher.4=com.ibm.mdm.eme.party.EMEPartyMatcher
By allocating one of the three matchers shown above to the party_matcher property, you could instruct InfoSphere MDM which matcher to use. If you had written your own, the property setting might look like this:
##################################
# PARTY MATCHER                  #
##################################
party_matcher=x.y.z.MyPartyMatcher
party_matcher.1=com.dwl.tcrm.coreParty.component.TCRMPartyMatcher
party_matcher.2=com.ibm.mdm.thirdparty...InfoServerPartyMatcherAdapter
party_matcher.4=com.ibm.mdm.eme.party.EMEPartyMatcher
party_matcher.5= x.y.z.MyPartyMatcher
Likewise for searchers, InfoSphere MDM employs a property setting allowing you to configure which suspect candidate selection searcher to use. For example:
# set value as com.ibm.mdm.eme.party.EMEPartyMatcher if eME configured
party_searcher_component=com.dwl.tcrm.coreParty.component.TCRMPartySearcher
#party_searcher_component=com.ibm.mdm.eme.party.EMEPartyMatcher
If you had your own, or if you wanted to use the InfoSphere MDM probabilistic matching engine, you could change that setting to something else, for example:
party_searcher_component=x.y.z.MyPartySearcher

With OSGi

With OSGi, choosing which matcher or which searcher to use is done in the InfoSphere MDM configuration and management framework. The configuration name is:
/IBM/Party/SuspectProcessing/PartyMatcher/className
/IBM/Party/SuspectProcessing/PartySearcher/className

You must specify the Java™ class name of the matching engine or suspect candidate searcher that you want to use. The default matcher is either com.dwl.tcrm.coreParty.component.TCRMPartyMatcher, or com.ibm.mdm.eme.party.EMEPartyMatcher, and depending on whether you intended to use deterministic or probabilistic matching, you would choose one or the other. If you’ve written your own, it could be something like x.y.z.MyPartyMatcher.

If you have written your own matching engine, you must configure a blueprint factory service so that the InfoSphere MDM suspected duplicate processing framework can locate it and use it. The following is a template that you must use:
<service id="PartyMatcher.Deterministic" 
	interface="com.ibm.mdm.common.servicefactory.api.CommonServiceFactory">
	<service-properties>
		<entry key="common.service">
			<list value-type="java.lang.String">
				<value>PartyMatcher.<your party matcher classname></value>
				<value>PartyMatcherType.<an integer greater than 4></value>
			</list>
		</entry>			 
	</service-properties>
	<bean class="com.ibm.mdm.common.servicefactory.CommonServiceFactoryImpl">
		<argument type="java.lang.Class" 
			value="com.dwl.tcrm.coreParty.interfaces.IPartyMatcher"/>
		<argument type="java.lang.Class" 
			value="your searcher class name" />
		<argument ref="blueprintBundle"/>			
	</bean>
</service>

The default searcher is com.dwl.tcrm.coreParty.component.TCRMPartySearcher or com.ibm.mdm.eme.party.EMEPartyMatcher.

If you have written your own searching engine, you must implement the following:
<service id="PartySearcher.Deterministic" 
interface="com.ibm.mdm.common.servicefactory.api.CommonServiceFactory">
	<service-properties>
		<entry key="common.service" 
		value="PartySearcher.<your search class name>"/>
	</service-properties>
	<bean class="com.ibm.mdm.common.servicefactory.CommonServiceFactoryImpl">
		<argument type="java.lang.Class" 
			value="com.dwl.tcrm.coreParty.interfaces.IPartySearcher"/>
		<argument type="java.lang.Class" 
			value="your searcher class name" />			
		<argument ref="blueprintBundle"/>			
	</bean>
</service>

For both searchers and for matcher, make sure you’ve configured the InfoSphere MDM Configuration and Management settings with the class names of your custom written Searchers and Matchers.