Thursday 13 September 2018

IBM InfoSphere Information Server <-> IBM Business Process Manager - A WIP

I’m on another voyage of discovery, this time integrating IIS and BPM, using ( initially ) the sample Process Application that comes with IIS, via the IBM Stewardship Center: -

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:

• 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
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: -

-rwxr-xr-x  1 root root 14302002 May 10  2017 /opt/IBM/InformationServer/Clients/DQ_BPM/Samples/IIS_Exception_Remediation_Sample.twx

it *IS* necessary to download the IIS Information Governance Examples from the InfoSphere Information Governance Catalog Administration page.

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]')

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







Note that I have TWO subscriptions, one for ACTION=CREATE and one for ACTION=MODIFY.

Create or modify an Information Governance Rule



Wait for the new instances of the Governance Approval process to appear

This is still a W-I-P for me, but I’m definitely learning !

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
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
/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
/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

/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

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()

No comments:

Visual Studio Code - Wow 🙀

Why did I not know that I can merely hit [cmd] [p]  to bring up a search box allowing me to search my project e.g. a repo cloned from GitHub...