Tuesday, August 30, 2011

Exposing MDM Business Proxy as Webservice

It has been a while I was thinking about writing a post on exposing a composite transaction(BP) as webservice.I know this had been a reason for concern for people who are still using the MDM workbench prioir to9.x

1. Created a custom business proxy say AddCustomerBP.java - addCustomer
2. Create the equivalent transaction(provide appropriate request and response) in a new MDM Module  using the exact same names as your BP transaction name (addCustomer)  and generate the code.

This will generate the usual 5 projects:
***BPModule
***BPModuleEJB
***BPModuleWS
***BPModuleWSEJB
***BPModuleWS_HTTPRouter

3. Insert the generated lines from ***BPModule_DWLCommon_extension.properties into the appropriate properties files in Customer resources.
 a)Update DWLCommon_Extension.properties with the request parser & response constructor generated.
 b)Update tcrm_extension.properties with  converters.
4. Delete/Close the projects :
***BPModule
***BPModuleEJB
5. Add com.ibm.ws.webservices.thinclient_6.1.0.jar to the projects.
6. Check the J2EE Dependencies (see project Properties) for your WSEJB project and ensure that they include all the WS projects which it depends on directly or indirectly - this is probably: 
PartyWS,
FinancialServicesWS,
BusinessServicesWS,
DWLBusinessServicesWS,
DWLCommonServicesWS
7. Modify the properties for the WS project:
Right-click the client WSproject, and select Properties.
Select Java build path.
Click the Libraries tab.
Click Add Variable.
In the New Variable Classpath Entry dialog, select WAS_50_PLUGINDIR from the list.
Click Extend.
In the Variable Extension dialog, expand the lib folder.
Select the following five JAR files by holding the CTRL key as you make your selections:
commons-discovery.jar
commons-logging-api.jar
qname.jar
webservices.jar
wsdl4j.jar
8.  Identify the correct port which it gets bind.
9.  Verify whether your WS projects are deployed to MDM Deployment Descriptor file.
10. Disable serurity.xml files
11. Verify the RouterService Definition points to the respective project HTTPRouter in xml-ws-bind-xmi
Reference:
Here goes an excellent post which helps you in accomplishing the same.

Thanks Catherine & Roshni for the detailed explanations.




Tuesday, May 31, 2011

IBM InfoSphere Master Data Management Server Technical Professional v1

I had successfully  cleared the M76 IBM InfoSphere Master Data Management Server Technical Mastery Test v1.

Objective:
The test is aimed at professional who can deliver a comprehensive business solution to customers through solution identification, product differentiation, and competitive positioning.

Areas covered & weightage:

Section 1 - MDM Strategy and Position (7%)

    Describe the strategy and position of MDM Server 9.0
    Describe the steps and options of installing MDM
    Describe the various package editions of MDM and their content


Section 2 - MDM 9.0 Important Features/Usages/Best Practices (45%)

    Describe the various protocols used to interact with MDM Server
    Describe the various user interfaces available in MDM Server and their main usages
    Describe the architecture of the batch processors and its cutomization
    Describe how duplicate suspect processing works in MDM Server
    Describe MDM Server Notification Framework
    Describe security features of MDM and ROV (rules of visibilities)
    Describe the Party and Account Data Models


Section 3 - MDM 9.0 Customization (39%)

    Describe the methodology of using workbench tooling to customize MDM Server; Understand which customization option to deploy based on business requirements
    Describe the architecture of MDM Server data addition and its customization options
    Describe how behavior extension works in MDM Server
    Describe how to develop SPEC and its main usage


Section 4 - UI Generator (9%)

    Describe how the UI generator works


Total 44 questions and 65% is the pass percentage.

Will keep you posted on the questions I remember for the exam.
Question I remember are
a)There are many questions revolved around the data model the main are how party is related to address
(LOCATIONGROUP,ADDRESSGROUP)
b)How party related to CONTRACT.
c)Question on contract party role.
d)When are spec used(when we have dynamically changing attributes)
e)Artifacts generaetd by UI generator(WAR,EJB,Help)
f)A few questions on ROV like when is perssitency entitlement triggered (Pre of controller)
For get/search when is ROV triggered(Post controller)
g)Critical Data Elements for Party/Organization
h)Rule /BE id for CreateSuspect/collapsePartiesWithRules(I think 11 & 12)
i)Difference between MDM & EDW(enterprise data warehouse) - EDW maintains transactional data.
j)How are specs stored(XSD)
k)How do we edit/traverse  xml/xsd(XPath)
l)Items that can customized in a batch process(Reader/Writer)
m)A question on configuration management component like which comportment is mandatory during MDM Server installation
n)Something on Master Information Hub(Like can a customer have MDM with out data models -Yes)
o)Various styles of MDM(Analytical,Operational,Consolidation..)

Thursday, December 23, 2010

IBM MDM Server Certification (Test 000-420: IBM InfoSphere MDM Server v9.0)

I cleared the IBM MDM server certification exam.I wish to share my experience in preparing for the same. 
Here goes the test objectives.


Section 1 - Configure and Deploy InfoSphere MDM Server in a Development Workstation (9%)
Given a scenario, describe workstation RAD/RSA development environment setup
Demonstrate knowledge of deploying Custom Code
Demonstrate knowledge of configuring MDM Server features

Section 2 - MDM Server Architecture and Domain Model (12%)
Describe basic MDM Server architecture
Describe MDM Server business entities and their relationships

Section 3 - Extensions and Additions (through Workbench) (12%)
Given a scenario, demonstrate knowledge of differences between a data extension and an addition
Given a scenario, demonstrate knowledge of creating code tables
Demonstrate knowledge of how to create a behavior extension

Section 4 - Composite Transactions (8%)
Describe how to create composite transactions using Business Proxy
Describe the difference between composite XML transactions and Java business proxy composites

Section 5 - External Rules and Validation (9%)
Describe External Business Rules Framework
Describe how to create a new external rule
Describe external validation and when to use it

Section 6 - Search Strategy (5%)
Describe search strategy (high level)
Describe different implementations of seach strategy

Section 7 - Suspect Duplicate Processing (14%)
Describe party SDP work flow
Demonstrate knowledge of implementing customized SDP logic
Demonstrate knowledge of 'evergreening'

Section 8 - Features and Functionality (16%)
Describe simple/compound history
Describe the MDM Server components
Demonstrate knowledge of configurable inquiry levels

Section 9 - Security (6%)
Describe MDM Server data visibility and accessibility control
Demonstrate knowledge of Authentication versus Authorization

Section 10 - Troubleshooting (9%)
Given a scenario, demonstrate knowledge of configuring and analyzing MDM Server log files
Given a scenario, demonstrate knowledge of Error handling

There will be 63 questions and the time frame is 90 min and the passing score is 67% which means you have to clear alt least 43 questions.
Even if section percentage is given as above,for the actual exam there may be a few difference like
Section 1 -10% 6 questions out of 63
Section 2 -13% 8 questions out of 63
Section 3 -13% 8 questions out of 63
Section 4 - 7% 5 questions out of 63
Section 5 - 10% 6 questions out of 63
Section 6 - 5% 3 questions out of 63
Section 7 - 14% 9 questions out of 63
Section 8 - 15% 10 questions out of 63
Section 9 - 3% 2 questions out of 63
Section 10 - 10% 6 questions out of 63

 As I am working in an company which is an IBM business partner I was able to undergo the training from IBM.But the training itself wont assure you success as it cannot cover everything in a certification perspective.The point I wish to emphasize is that I had ready access to all the training materials and the pdf which are essential in clearing the exam. 

Materials you should refer are
  • MDM Transaction Reference Guide
  • MDM UI Developers Guide
  • MDM Understanding And Planning Guide
  • MDM Workbench User Guide
  • User Interface Generator Guide
  • MDM Common Data Dictionary
  • MDM Common Services Transaction Reference
  • MDM Data Dictionary
  • MDM Data Stewardship UI Users Guide
  • MDM Developers Guide
  • MDM Developers Samples
  • MDM Installation Guide
  • MDM Product UI User Guide
  • MDM Query Connect Guide
  • MDM Quick Start Guide
  • MDM Release Notes
  • MDM System Management Guide
  • MDM Transaction List
  • Redbook: Master Data Management: Rapid Deployment Package for MDM
  • Redbook: WebSphere Customer Center: Understanding Performance
  • MDM Server version Infocenter (for v 9.0)
Do you think I am joking by giving you a list of pdf each spanning across 100 to 600 pages and telling you clearing the exam is a cake walk?.
Out of these pdfs I recommend you to read MDM Developers Guide,MDM System Management Guide,TRG which you can use as reference .But still the developer guide is so huge for you to read right ?.So pick up the exam objectives read only those :).
How we have prepared for the exam ?.
Ours is a small team .We divided the topics among each .
We prepared a schedule for the entire objective list.By 1and a half week ie 5+3 working days we covered the entire objective.
Every one prepared their topic well by referring the materials mentioned above & glanced through other topic.
Each day around 2hrs we kept apart from the work schedule & discussions we held for the days topic.We kept a certification tracker internally & posted all the doubts which came across during the discussion.

I forgot to mention that I used the sample test available from the link for free:
http://www.testpassport.com/IBMcertificationsIII/000-420.asp
I can see a few questions from the pdf available in the site for the actual exam.
MDM server best practices are available in the following link.Read the SDP article as section 7 is 14% of the entire exam objective.
http://www.ibm.com/developerworks/data/bestpractices/mdm/

Also refer the chapter Configuring pluggable keys which is a small one but you will get a easy question on it.Read about SMART Inquiries,Summary Data Indicators also.Even if I didn't work on both they are easy to understand.
Also I had seen questions from the external validation section like the types of external validations,which all tables are involved in the field level ,group level validation.I had discussed a little about external validations in one of my previous blogs which seems to be sufficient in answering them.
There is a question which shows a diagram and asking us to identify the missing component in the picture.The answer was DWLRequestHandler.
Go through the triggers section.There was question like when SIMPLE(update) triggers are used and when COMPOUND (insert/update)trigger is used/triggered.
There are questions from the behaviour extension/service extension section like the levels ACTION (COMPONENT)events,TRANSACTION events(CONTROLLER). 

All these information shared across are the ones which I remember but the question may change as IBM may be having a good question bank and they may be picking up questions randomly from it.

Here goes the link where you get complete information about the test.


Wednesday, December 8, 2010

Beginners Guide for Creating an IBM MDM External Validation


External validation is the ability of MDM  to validate end user data before updating or adding transactions.IT determines the data being entered is a valid or invalid one. External validation are triggered at the pre of the controller.

There are 2 main categories of external validation 
1)Field Level(Element Level)
2)Cross Filed Level(Group Level)
I will elaborate more on field level validation here.The element level validation is generally used under the following circumstances.
         To check whether the field is optional or mandatory
         To specify minimum and maximum field lengths and values
         To specify allowable and prohibited values and patterns etc.

The tables involved are 
1)V_ELEMENT
2)V_ELEMENT_VAL
3)V_ELEMENT_PARAM
4)V_FUNCTION
The V_ELEMENT contains the attribute which needs to validated.
V_ELEMENT_VAL relates the attribute(element) with the validation function.
V_ELEMENT_PARAM can be used to specify the param type and the param value.The param type is used to retrieve the param value in the validation function we write.
V_FUNCTION contains the fully qualified class path to the validation function class.(Function name , Java class).






Saturday, November 27, 2010

Creating Customized Search Strategy in IBM MDM

Introduction:
The Infosphere MDM Server provides us with a number of transactions to retrive the information stored by it in order to come up with high value customer data for analytic's ,reports ,to device new marketing strategies. The OOTB solutions can be customized so as to suit the clients requirements across various domains/industries.

Business Scenario:
Consider a scenario  of  the customer care center where thousands of customer calls up for various services ranging from the registering comapliants,to know about the various offers & services ,for a critical data change like address phone number. The call center agent will do a search based on the information provided by the customer to  validate his identity by asking a set of questions like dob, lastname,phone number etc.
The customers generally don’t like to wait on the line for long time and hence the performance of the system / response time is a major criteria.

Implementation  Strategies:
1)End to End Customization
2)Extending the Search rule & utilizing the search framework.
The first approach is already discussed in one of my previous blogs.

There are a few OOTB transactions available for ready use in the MDM server. For e.g.: if your search criteria is  related to person details like given name one,lastname etc you can think of using the search Person .If the search criteria is from the contract region we can use the searchContract.Also if the criteria is a mix of person & contract details you can use the searchFSParty transaction. The OOTB solutions make use of the SearchParty external rule.

In the case of my client they provide a unique card called privilege card for all it customers. This card number is accommodated in the data model as an extension on the CONTRACT table.None of the OOTB solutions support for searching based on an  extended field I have to write sqls for search based on this extended field.



In general the approach you can follow is
1)Common Search Exclusion
When ever a search request comes in check whether the criteria can result in a potentially huge result set.
For eg: A search based on common lastnames like Philip,Thomas etc can result in a large result set.
You can leverage the external validations to configure the Disallowed Search list to prevent a search on these common attributes.This feature prevent poor quality searches from executed against the MDM database
2)Configuring maxResult
The next thing we can focus on is configuring the maximum results that needs to be returned.It is available as a simple configuration in the CONFIGELEMENT table .
/IBM/Party/Search/maxResults
The default value is 100.The normal approach followed is use the value in CONFIGELEMENT as the default one ,but if the value for maxresult(Available in the request object) is less than what is configured in the table we are happy to return the what is provided in the request object.
3)External Rule
The first 2 steps can be done from inside a custom bp & the search strategy can implemented inside a Rule class.A modification to the search rule is needed only when client specific customizations are needed.
For eg: Search based on an extended field.
So what should be done in the rule is check if the request has got any extended attributes.If yes you have to invoke client defined sqls(which can be pre written and stored in tables or stored in some sql helper classes).
else invoke the OOTB services.
4)Ranking and Sorting.
5)Return the result.

These are the basic steps in creating a customized search strategy.