IBM® Stewardship Center leverages the capabilities of IBM Business Process Manager to help bridge the gap between business and IT. IBM Stewardship Center provides data stewards, data steward managers, and data source owners with a central browser-based interface where they can collaborate on and manage data quality issues.
As data stewards become increasingly responsible for improving the value of their data assets, they need capabilities to help them manage these new requirements. Data stewards are being asked to handle a diverse set of scenarios, including:
IBM Stewardship Center includes these components:
As data stewards become increasingly responsible for improving the value of their data assets, they need capabilities to help them manage these new requirements. Data stewards are being asked to handle a diverse set of scenarios, including:
• Collaboration across multiple lines of business to build information policies that support regulatory requirements
• Assessment of the cost of poor data quality and management of data quality issues
• Engagement of subject matter experts through business processes to review and approve corporate glossary changes
Data stewards and data steward managers use the tools and processes provided by IBM Stewardship Center in combination with the capabilities provided by IBM Business Process Manager to tackle these governance challenges.IBM Stewardship Center includes these components:
• The Data Quality Exception sample process application, which is a sample workflow for managing remediation-related tasks.
• The Stewardship Center Application Toolkit, which can be used to expand the capabilities of the Data Quality Exception sample process application or to create your own custom workflows.
• The IIS IGC Examples sample processes, which can be used to notify users by email when asset activities and changes in workflow status occur in the catalog of IBM InfoSphere® Information Governance Catalog.
With each subscription that you create in Subscription Manager, you can send a simple email notification by using Subscription Manager. Alternatively, you can send a more informative email notification and initiate collaborative workflow actions by using IBM BPM.
I’ve got a bunch o’ VMs; IIS, BPM and Oracle, so have configured BPM and IIS to talk to one another.
The process was relatively simple: -
Exchange signer certificates between the IIS and BPM cells
/opt/ibm/WebSphereProfiles/Dmgr01/bin/wsadmin.sh -lang jython -f retrieveSigners.jy
iis.uk.ibm.com
/opt/IBM/WebSphere/AppServer/profiles/InfoSphere/bin/wsadmin.sh -lang jython -f retrieveSigners.jy
iis.uk.ibm.com
/opt/IBM/WebSphere/AppServer/profiles/InfoSphere/bin/wsadmin.sh -lang jython -f retrieveSigners.jy
Deploy Sample Process Application
This is located on the IIS box, and can be downloaded from the Administration - Event Notification page: -
Whilst *ONE* of the sample applications ( IIS Exception Remediation Sample ) *IS* available on the IIS box's file-system: -
Whilst *ONE* of the sample applications ( IIS Exception Remediation Sample ) *IS* available on the IIS box's file-system: -
-rwxr-xr-x 1 root root 14302002 May 10 2017 /opt/IBM/InformationServer/Clients/DQ_BPM/Samples/IIS_Exception_Remediation_Sample.twx
Once this has been downloaded from IIS, and stored on the local file-system, it can be installed into Process Center via the command-line: -
/opt/ibm/WebSphereProfiles/Dmgr01/bin/wsadmin.sh -lang jython -port 8881
AdminTask.BPMImport('[-inputFile /home/wasadmin/IIS_IGC_Examples.twx]')
AdminTask.BPMImport('[-inputFile /home/wasadmin/IIS_IGC_Examples.twx]')
or from within the Process Center UI.
Create BPM -> IIS J2C Authentication Alias
Required to allow BPM to interact with IIS
AdminTask.createAuthDataEntry('[-alias igcuseralias -user isadmin -password passw0rd -description ]')
Configure the Exposed Process Variable (EPV) for the Process Application
Register a Callback from IIS to BPM
/opt/IBM/InformationServer/Clients/istools/cli/istool.sh event registerCallback -callbackName "Governance Rule Approval" -callbackService "https://bpm856.uk.ibm.com:9444/rest/bpm/wle/v1/service/IIGC@StartRuleApproval?action=start" -eventTypeName IGC_BUSINESSRULE_EVENT -callbackType HTTP_POST -username isadmin -password passw0rd
Create a Subscription in IIS for, in my case, IGC_BUSINESSRULE_EVENT
Create or modify an Information Governance Rule
One thing that I see in the BPM AppClusterMember1 SystemOut.log file is: -
[12/09/18 11:30:01:084 BST] 000002f9 EJBWorkflowMa E CWLLG1338E: An error occurred while running a service. ExecutionContext: ExecutionStack(ExecutionJob(worker(componentName = SubProcess, state = 2), processItemId = ProcessItem.e4bdc748-e763-473e-a720-ec0851a32751, processTiming = N, saveExecutionContextBehaviour = EXECUTION_CONTEXT_DO_NOT_SAVE), ExecutionJob(worker(com.lombardisoftware.component.javaconnector.worker.JavaConnectorWorker@b8119104), processItemId = ProcessItem.462607ad-b573-447a-bcb1-f63632aaae58, processTiming = N, saveExecutionContextBehaviour = EXECUTION_CONTEXT_DO_NOT_SAVE)), SymbolTable(SymbolTable(...)), sharedData = null
[12/09/18 11:30:01:253 BST] 000002f9 FlowObjectExe E CWLLG0326E: The BPD encountered an error.
com.lombardisoftware.bpd.runtime.engine.BPDCaughtException: 'To' Field should not be empty
[12/09/18 11:30:01:253 BST] 000002f9 FlowObjectExe E CWLLG0326E: The BPD encountered an error.
com.lombardisoftware.bpd.runtime.engine.BPDCaughtException: 'To' Field should not be empty
for which I haven’t yet found a solution.
I also realised that I can query IIS for events, notifications, callbacks, subscriptions etc.
/opt/IBM/InformationServer/Clients/istools/cli/istool.sh event listEvents -username isadmin -password passw0rd
EVENT [ Type: IGC_BUSINESSRULE_EVENT, Created on: 2018-09-12 09:41:58, Processed on: 2018-09-12 09:42:00, Properties: [ ASSET_RID=6662c0f2.e1b13efc.05l6bic2f.36roi0r.3nh6tn.grn5bajh7vngj35gjdmuj, ACTION=MODIFY, ASSET_CONTEXT=, ASSET_NAME=Foobar1, ASSET_TYPE=Information Governance Rule ] ]
EVENT [ Type: IGC_BUSINESSRULE_EVENT, Created on: 2018-09-12 09:49:19, Processed on: 2018-09-12 09:50:00, Properties: [ ASSET_RID=6662c0f2.e1b13efc.05l6bj7oe.e6i5nkv.qcc1aq.o98oq25l43ufrb1lnjksa, ACTION=CREATE, ASSET_CONTEXT=, ASSET_NAME=DSDS, ASSET_TYPE=Information Governance Rule ] ]
EVENT [ Type: IGC_BUSINESSRULE_EVENT, Created on: 2018-09-12 10:04:11, Processed on: 2018-09-12 10:05:00, Properties: [ ASSET_RID=6662c0f2.e1b13efc.05l6bibb6.hnso4pe.dlem70.pnhda2geddn8laj7oqrs6, ACTION=MODIFY, ASSET_CONTEXT=, ASSET_NAME=Blah, ASSET_TYPE=Information Governance Rule ] ]
EVENT [ Type: IGC_BUSINESSRULE_EVENT, Created on: 2018-09-12 10:49:29, Processed on: 2018-09-12 10:50:00, Properties: [ ASSET_RID=6662c0f2.e1b13efc.05l6bibb6.hnso4pe.dlem70.pnhda2geddn8laj7oqrs6, ACTION=MODIFY, ASSET_CONTEXT=, ASSET_NAME=Blah, ASSET_TYPE=Information Governance Rule ] ]
EVENT [ Type: IGC_BUSINESSRULE_EVENT, Created on: 2018-09-12 10:49:33, Processed on: 2018-09-12 10:50:00, Properties: [ ASSET_RID=6662c0f2.e1b13efc.05l6bibb6.hnso4pe.dlem70.pnhda2geddn8laj7oqrs6, ACTION=MODIFY, ASSET_CONTEXT=, ASSET_NAME=Blah, ASSET_TYPE=Information Governance Rule ] ]
EVENT [ Type: IGC_BUSINESSRULE_EVENT, Created on: 2018-09-12 10:55:44, Processed on: 2018-09-12 10:56:00, Properties: [ ASSET_RID=6662c0f2.e1b13efc.05l6bibb6.hnso4pe.dlem70.pnhda2geddn8laj7oqrs6, ACTION=MODIFY, ASSET_CONTEXT=, ASSET_NAME=Blah, ASSET_TYPE=Information Governance Rule ] ]
EVENT [ Type: IGC_BUSINESSRULE_EVENT, Created on: 2018-09-12 11:23:01, Processed on: 2018-09-12 11:24:00, Properties: [ ASSET_RID=6662c0f2.e1b13efc.05l6bjae7.r6rjvjn.34o4gt.1oharl2t4v4laq8p2dlos, ACTION=CREATE, ASSET_CONTEXT=, ASSET_NAME=IGC_Rules, ASSET_TYPE=Information Governance Rule ] ]
EVENT [ Type: IGC_BUSINESSRULE_EVENT, Created on: 2018-09-12 11:24:09, Processed on: 2018-09-12 11:25:00, Properties: [ ASSET_RID=6662c0f2.e1b13efc.05l6bjae7.r6rjvjn.34o4gt.1oharl2t4v4laq8p2dlos, ACTION=MODIFY, ASSET_CONTEXT=, ASSET_NAME=IGC_Rules, ASSET_TYPE=Information Governance Rule ] ]
EVENT [ Type: IGC_BUSINESSRULE_EVENT, Created on: 2018-09-12 11:29:06, Processed on: 2018-09-12 11:30:00, Properties: [ ASSET_RID=6662c0f2.e1b13efc.05l6bjae7.r6rjvjn.34o4gt.1oharl2t4v4laq8p2dlos, ACTION=MODIFY, ASSET_CONTEXT=, ASSET_NAME=IGC_Rules, ASSET_TYPE=Information Governance Rule ] ]
EVENT [ Type: IGC_BUSINESSRULE_EVENT, Created on: 2018-09-12 11:29:41, Processed on: 2018-09-12 11:30:00, Properties: [ ASSET_RID=6662c0f2.e1b13efc.05l6bjakb.12sudv5.2hi8cv.q2t0m6oppo06kkt3q4kj5, ACTION=CREATE, ASSET_CONTEXT=, ASSET_NAME=Cheese, ASSET_TYPE=Information Governance Rule ] ]
Total number of events: 10
EVENT [ Type: IGC_BUSINESSRULE_EVENT, Created on: 2018-09-12 09:41:58, Processed on: 2018-09-12 09:42:00, Properties: [ ASSET_RID=6662c0f2.e1b13efc.05l6bic2f.36roi0r.3nh6tn.grn5bajh7vngj35gjdmuj, ACTION=MODIFY, ASSET_CONTEXT=, ASSET_NAME=Foobar1, ASSET_TYPE=Information Governance Rule ] ]
EVENT [ Type: IGC_BUSINESSRULE_EVENT, Created on: 2018-09-12 09:49:19, Processed on: 2018-09-12 09:50:00, Properties: [ ASSET_RID=6662c0f2.e1b13efc.05l6bj7oe.e6i5nkv.qcc1aq.o98oq25l43ufrb1lnjksa, ACTION=CREATE, ASSET_CONTEXT=, ASSET_NAME=DSDS, ASSET_TYPE=Information Governance Rule ] ]
EVENT [ Type: IGC_BUSINESSRULE_EVENT, Created on: 2018-09-12 10:04:11, Processed on: 2018-09-12 10:05:00, Properties: [ ASSET_RID=6662c0f2.e1b13efc.05l6bibb6.hnso4pe.dlem70.pnhda2geddn8laj7oqrs6, ACTION=MODIFY, ASSET_CONTEXT=, ASSET_NAME=Blah, ASSET_TYPE=Information Governance Rule ] ]
EVENT [ Type: IGC_BUSINESSRULE_EVENT, Created on: 2018-09-12 10:49:29, Processed on: 2018-09-12 10:50:00, Properties: [ ASSET_RID=6662c0f2.e1b13efc.05l6bibb6.hnso4pe.dlem70.pnhda2geddn8laj7oqrs6, ACTION=MODIFY, ASSET_CONTEXT=, ASSET_NAME=Blah, ASSET_TYPE=Information Governance Rule ] ]
EVENT [ Type: IGC_BUSINESSRULE_EVENT, Created on: 2018-09-12 10:49:33, Processed on: 2018-09-12 10:50:00, Properties: [ ASSET_RID=6662c0f2.e1b13efc.05l6bibb6.hnso4pe.dlem70.pnhda2geddn8laj7oqrs6, ACTION=MODIFY, ASSET_CONTEXT=, ASSET_NAME=Blah, ASSET_TYPE=Information Governance Rule ] ]
EVENT [ Type: IGC_BUSINESSRULE_EVENT, Created on: 2018-09-12 10:55:44, Processed on: 2018-09-12 10:56:00, Properties: [ ASSET_RID=6662c0f2.e1b13efc.05l6bibb6.hnso4pe.dlem70.pnhda2geddn8laj7oqrs6, ACTION=MODIFY, ASSET_CONTEXT=, ASSET_NAME=Blah, ASSET_TYPE=Information Governance Rule ] ]
EVENT [ Type: IGC_BUSINESSRULE_EVENT, Created on: 2018-09-12 11:23:01, Processed on: 2018-09-12 11:24:00, Properties: [ ASSET_RID=6662c0f2.e1b13efc.05l6bjae7.r6rjvjn.34o4gt.1oharl2t4v4laq8p2dlos, ACTION=CREATE, ASSET_CONTEXT=, ASSET_NAME=IGC_Rules, ASSET_TYPE=Information Governance Rule ] ]
EVENT [ Type: IGC_BUSINESSRULE_EVENT, Created on: 2018-09-12 11:24:09, Processed on: 2018-09-12 11:25:00, Properties: [ ASSET_RID=6662c0f2.e1b13efc.05l6bjae7.r6rjvjn.34o4gt.1oharl2t4v4laq8p2dlos, ACTION=MODIFY, ASSET_CONTEXT=, ASSET_NAME=IGC_Rules, ASSET_TYPE=Information Governance Rule ] ]
EVENT [ Type: IGC_BUSINESSRULE_EVENT, Created on: 2018-09-12 11:29:06, Processed on: 2018-09-12 11:30:00, Properties: [ ASSET_RID=6662c0f2.e1b13efc.05l6bjae7.r6rjvjn.34o4gt.1oharl2t4v4laq8p2dlos, ACTION=MODIFY, ASSET_CONTEXT=, ASSET_NAME=IGC_Rules, ASSET_TYPE=Information Governance Rule ] ]
EVENT [ Type: IGC_BUSINESSRULE_EVENT, Created on: 2018-09-12 11:29:41, Processed on: 2018-09-12 11:30:00, Properties: [ ASSET_RID=6662c0f2.e1b13efc.05l6bjakb.12sudv5.2hi8cv.q2t0m6oppo06kkt3q4kj5, ACTION=CREATE, ASSET_CONTEXT=, ASSET_NAME=Cheese, ASSET_TYPE=Information Governance Rule ] ]
Total number of events: 10
/opt/IBM/InformationServer/Clients/istools/cli/istool.sh event listMyNotifications -username isadmin -password passw0rd
EVENT [ Type: IGC_BUSINESSRULE_EVENT, Created on: 2018-09-12 10:55:44, Processed on: 2018-09-12 10:56:00, Properties: ], Event Status: POSTED
EVENT [ Type: IGC_BUSINESSRULE_EVENT, Created on: 2018-09-12 11:23:01, Processed on: 2018-09-12 11:24:00, Properties: ], Event Status: POSTED
EVENT [ Type: IGC_BUSINESSRULE_EVENT, Created on: 2018-09-12 11:24:09, Processed on: 2018-09-12 11:25:00, Properties: ], Event Status: POSTED
EVENT [ Type: IGC_BUSINESSRULE_EVENT, Created on: 2018-09-12 11:29:06, Processed on: 2018-09-12 11:30:00, Properties: ], Event Status: POSTED
EVENT [ Type: IGC_BUSINESSRULE_EVENT, Created on: 2018-09-12 11:29:41, Processed on: 2018-09-12 11:30:00, Properties: ], Event Status: POSTED
Total number of notifications: 5
EVENT [ Type: IGC_BUSINESSRULE_EVENT, Created on: 2018-09-12 10:55:44, Processed on: 2018-09-12 10:56:00, Properties: ], Event Status: POSTED
EVENT [ Type: IGC_BUSINESSRULE_EVENT, Created on: 2018-09-12 11:23:01, Processed on: 2018-09-12 11:24:00, Properties: ], Event Status: POSTED
EVENT [ Type: IGC_BUSINESSRULE_EVENT, Created on: 2018-09-12 11:24:09, Processed on: 2018-09-12 11:25:00, Properties: ], Event Status: POSTED
EVENT [ Type: IGC_BUSINESSRULE_EVENT, Created on: 2018-09-12 11:29:06, Processed on: 2018-09-12 11:30:00, Properties: ], Event Status: POSTED
EVENT [ Type: IGC_BUSINESSRULE_EVENT, Created on: 2018-09-12 11:29:41, Processed on: 2018-09-12 11:30:00, Properties: ], Event Status: POSTED
Total number of notifications: 5
/opt/IBM/InformationServer/Clients/istools/cli/istool.sh event listCallbacks -username isadmin -password passw0rd
CALLBACK [ Name: Governance Rule Approval, Service: https://bpm856.uk.ibm.com:9444/rest/bpm/wle/v1/service/IIGC@StartRuleApproval?action=start, Event Type: IGC_BUSINESSRULE_EVENT, Description: , Properties: [], Callback Type: HTTP_POST ]
Total number of callbacks: 1
CALLBACK [ Name: Governance Rule Approval, Service: https://bpm856.uk.ibm.com:9444/rest/bpm/wle/v1/service/IIGC@StartRuleApproval?action=start, Event Type: IGC_BUSINESSRULE_EVENT, Description: , Properties: [], Callback Type: HTTP_POST ]
Total number of callbacks: 1
/opt/IBM/InformationServer/Clients/istools/cli/istool.sh event listAllSubscriptions -username isadmin -password passw0rd
SUBSCRIPTION [ Name: Snoopy, Event Type: IGC_BUSINESSRULE_EVENT, Subscription Date: 2018-09-12 10:55:06, Subscriber: isadmin, Email: false, Cc: null, Save to Notify List: false, Callbacks: [Governance Rule Approval], Filters: [ ACTION=MODIFY ] ]
SUBSCRIPTION [ Name: Peanuts, Event Type: IGC_BUSINESSRULE_EVENT, Subscription Date: 2018-09-12 10:55:28, Subscriber: isadmin, Email: false, Cc: null, Save to Notify List: false, Callbacks: [Governance Rule Approval], Filters: [ ACTION=CREATE ] ]
SUBSCRIPTION [ Name: Garfield, Event Type: IGC_BUSINESSRULE_EVENT, Subscription Date: 2018-09-12 11:28:54, Subscriber: isadmin, Email: false, Cc: null, Save to Notify List: false, Callbacks: [Governance Rule Approval], Filters: [ ACTION=SEND_FOR_APPROVAL ] ]
Total number of subscriptions: 3
SUBSCRIPTION [ Name: Snoopy, Event Type: IGC_BUSINESSRULE_EVENT, Subscription Date: 2018-09-12 10:55:06, Subscriber: isadmin, Email: false, Cc: null, Save to Notify List: false, Callbacks: [Governance Rule Approval], Filters: [ ACTION=MODIFY ] ]
SUBSCRIPTION [ Name: Peanuts, Event Type: IGC_BUSINESSRULE_EVENT, Subscription Date: 2018-09-12 10:55:28, Subscriber: isadmin, Email: false, Cc: null, Save to Notify List: false, Callbacks: [Governance Rule Approval], Filters: [ ACTION=CREATE ] ]
SUBSCRIPTION [ Name: Garfield, Event Type: IGC_BUSINESSRULE_EVENT, Subscription Date: 2018-09-12 11:28:54, Subscriber: isadmin, Email: false, Cc: null, Save to Notify List: false, Callbacks: [Governance Rule Approval], Filters: [ ACTION=SEND_FOR_APPROVAL ] ]
Total number of subscriptions: 3
and, if needed, I can delete the events: -
/opt/IBM/InformationServer/Clients/istools/cli/istool.sh event deleteEvents -username isadmin -password passw0rd
Here’re the scripts that I used for the SSL certificate exchange, for the record.
BPM
# Setup variables
cellID = AdminControl.getCell()
hostname="iis.uk.ibm.com"
port="9446"
# Retrieve SSL Signer Certificate into WAS Cell-Default Trust Store
AdminTask.retrieveSignerFromPort('[-keyStoreName CellDefaultTrustStore -keyStoreScope (cell):'+cellID+' -host '+hostname+' -port '+port+' -certificateAlias '+hostname+'SignerCertificate -sslConfigName CellDefaultSSLSettings -sslConfigScopeName (cell):'+cellID+' ]')
# Save and Sync
AdminConfig.save()
AdminNodeManagement.syncActiveNodes()
IIS
# Setup variables
cellID = AdminControl.getCell()
nodeID = AdminControl.getNode()
hostname="bpm856.uk.ibm.com"
port="9444"
# Retrieve SSL Signer Certificate into WAS Node-Default Trust Store
AdminTask.retrieveSignerFromPort('[-keyStoreName NodeDefaultTrustStore -keyStoreScope (cell):'+cellID+':(node):'+nodeID+' -host '+hostname+' -port '+port+' -certificateAlias '+hostname+' -sslConfigName NodeDefaultSSLSettings -sslConfigScopeName (cell):'+cellID+':(node):'+nodeID+' ]')
# Save and Sync
AdminConfig.save()
# Setup variables
cellID = AdminControl.getCell()
hostname="iis.uk.ibm.com"
port="9446"
# Retrieve SSL Signer Certificate into WAS Cell-Default Trust Store
AdminTask.retrieveSignerFromPort('[-keyStoreName CellDefaultTrustStore -keyStoreScope (cell):'+cellID+' -host '+hostname+' -port '+port+' -certificateAlias '+hostname+'SignerCertificate -sslConfigName CellDefaultSSLSettings -sslConfigScopeName (cell):'+cellID+' ]')
# Save and Sync
AdminConfig.save()
AdminNodeManagement.syncActiveNodes()
IIS
# Setup variables
cellID = AdminControl.getCell()
nodeID = AdminControl.getNode()
hostname="bpm856.uk.ibm.com"
port="9444"
# Retrieve SSL Signer Certificate into WAS Node-Default Trust Store
AdminTask.retrieveSignerFromPort('[-keyStoreName NodeDefaultTrustStore -keyStoreScope (cell):'+cellID+':(node):'+nodeID+' -host '+hostname+' -port '+port+' -certificateAlias '+hostname+' -sslConfigName NodeDefaultSSLSettings -sslConfigScopeName (cell):'+cellID+':(node):'+nodeID+' ]')
# Save and Sync
AdminConfig.save()
No comments:
Post a Comment