One of the basic concepts which many times confuses people is the difference between MV rules Extension and MA rules Extension.
In this blog i will try my best to provide a clear understanding of the difference between the two in a simple language.
First of all we need to understand why do we need rules extension at all? Rules extension are the commanding stick of the administrators to handle difficult data/attribute value transformations, joins, projections, provisioning/de-provisioning processes etc. It empowers administrators to customize the technical process of identity management as per the buisness requirements.
Let us define MV rules extension amd MA rules extension first:
MV rules extension: This code defines how objects gets provisioned to other Management agent's connector space and also takes care of deletion of the Metaverse object. There can be only one rule extension defined in an installation.
A quick view is, whatever rules extension is configured under in the Application Console at Tools-->Options is the MV Rules Extension
MA rules extension: This code defines advanced type of Join & Projection, advanced type of attribute flows and also the de-provsioning process. There could be a single MA rules extension for each Management agent, but every Management agent can have only one its own MA rule extension mostly. So in terms of count there could be 'n' number of MA rules extension in total, where 'n' is the number of Management Agents. But each Management agent can have only one single MA rules extension.
A quick view is, whatever rules extension is configured under in the Application Console at Management Agents-->Properties-->Manegement Agent Designer-->Configure Extension is the MA rule extension.
Now, let us consider a scenario:
We have two connected data source known as "Data Source 1" aka DS1 and we have another data source as "Data Source 2" aka DS2. We import data from DS1 and create any new object in Metaverse aka MV Object, further we want to export data to DS2. Out of many attributes which are imported from DS1, one among them is "MobileNumber" we want to store it in MV as "Mobile" and further we want to export it to DS2 as "MobileOfUser" attribute. Also, we want that in DS2 all the users with country attribute as India must get their mobile number prefixed with the country code of India i.e. +91
Requirement 1: Create a MV object based upon the import data from DS1
Requirement 2: Provision the new object in DS2
Requirement 3: Handle the attribute flow of mobile number for users across the complete environment and also prefix '+91' for all users from India
Requirement1:
This will be achieved through the MA rules extension for DS1, we will define the Projetion in this part of code and during the inbound syncronization process of DS1 Manegement Agent a new MV Object will created. Whenever a new MV Object is created we call it as Projection.
Requirement2:
This will be achieved by the help of MV rules extension. Provisioning is essentially creation of a new Connector Space Object. So during the Outbound Syncronization process of the same Management Agent i.e. DS1, the MV rules extension will be called and a new Connector Space Object for handling DS2 will be created, this is known as provisioning of the object in DS2.
Requirement3:
We can follow two approaches here:
(a) Update the MA rules extension for DS1 Management Agent:
We can update the MA rules extension for DS1 and so, while the new MV object will be created it will check if the 'country' attribute is 'India' if yes we can instruct our code to prefix +91 in front of the 'MobileNumber' while saving this value as the MV attribute 'Mobile' for that MV object while creation itself. So in the Attribute Flow section of the Management Agent Designer, we will define the Import Flow as Advanced Type. We also have to add the MV attribute name 'Mobile' via Metaverse Designer before doing the mapping.
So, the +91 is prefixed for all India users while their associated MV object is created itself and hence when will define the export flow from MV to DS2 we can use a flow type of Direct.
(b) Update the MA rules extension for DS2 Management Agent:
We will take the 'MobileNumber' attribute from DS1 as it is and store it in MV as 'Mobile' through a Direct type of mapping. But while MV to DS2 updates are made, we will define the attribute flow mapping as Advanced type. We will update the MA rules extension for DS2 Management Agent and over here the addition of +91 for all user from India will be done. Offcourse the schema for DS2 Management Agent needs to updated so that we can map the MV attribute 'Mobile' to DS2 attribute 'MobileOfUser'
So, we had seen that for achieveing Requirement 1 & 3 we made use of MA rules extension, while Requirement 2 was achieved through the help of MV rules extension.
Hope this article must have been of some help to you.
I welcome your suggestions at rajanshrivastava85@gmail.com
Thank You & Best Regards,
Rajan Shrivastava
MCTS-70-158
In this blog i will try my best to provide a clear understanding of the difference between the two in a simple language.
First of all we need to understand why do we need rules extension at all? Rules extension are the commanding stick of the administrators to handle difficult data/attribute value transformations, joins, projections, provisioning/de-provisioning processes etc. It empowers administrators to customize the technical process of identity management as per the buisness requirements.
Let us define MV rules extension amd MA rules extension first:
MV rules extension: This code defines how objects gets provisioned to other Management agent's connector space and also takes care of deletion of the Metaverse object. There can be only one rule extension defined in an installation.
A quick view is, whatever rules extension is configured under in the Application Console at Tools-->Options is the MV Rules Extension
MA rules extension: This code defines advanced type of Join & Projection, advanced type of attribute flows and also the de-provsioning process. There could be a single MA rules extension for each Management agent, but every Management agent can have only one its own MA rule extension mostly. So in terms of count there could be 'n' number of MA rules extension in total, where 'n' is the number of Management Agents. But each Management agent can have only one single MA rules extension.
A quick view is, whatever rules extension is configured under in the Application Console at Management Agents-->Properties-->Manegement Agent Designer-->Configure Extension is the MA rule extension.
Now, let us consider a scenario:
We have two connected data source known as "Data Source 1" aka DS1 and we have another data source as "Data Source 2" aka DS2. We import data from DS1 and create any new object in Metaverse aka MV Object, further we want to export data to DS2. Out of many attributes which are imported from DS1, one among them is "MobileNumber" we want to store it in MV as "Mobile" and further we want to export it to DS2 as "MobileOfUser" attribute. Also, we want that in DS2 all the users with country attribute as India must get their mobile number prefixed with the country code of India i.e. +91
Requirement 1: Create a MV object based upon the import data from DS1
Requirement 2: Provision the new object in DS2
Requirement 3: Handle the attribute flow of mobile number for users across the complete environment and also prefix '+91' for all users from India
Requirement1:
This will be achieved through the MA rules extension for DS1, we will define the Projetion in this part of code and during the inbound syncronization process of DS1 Manegement Agent a new MV Object will created. Whenever a new MV Object is created we call it as Projection.
Requirement2:
This will be achieved by the help of MV rules extension. Provisioning is essentially creation of a new Connector Space Object. So during the Outbound Syncronization process of the same Management Agent i.e. DS1, the MV rules extension will be called and a new Connector Space Object for handling DS2 will be created, this is known as provisioning of the object in DS2.
Requirement3:
We can follow two approaches here:
(a) Update the MA rules extension for DS1 Management Agent:
We can update the MA rules extension for DS1 and so, while the new MV object will be created it will check if the 'country' attribute is 'India' if yes we can instruct our code to prefix +91 in front of the 'MobileNumber' while saving this value as the MV attribute 'Mobile' for that MV object while creation itself. So in the Attribute Flow section of the Management Agent Designer, we will define the Import Flow as Advanced Type. We also have to add the MV attribute name 'Mobile' via Metaverse Designer before doing the mapping.
So, the +91 is prefixed for all India users while their associated MV object is created itself and hence when will define the export flow from MV to DS2 we can use a flow type of Direct.
(b) Update the MA rules extension for DS2 Management Agent:
We will take the 'MobileNumber' attribute from DS1 as it is and store it in MV as 'Mobile' through a Direct type of mapping. But while MV to DS2 updates are made, we will define the attribute flow mapping as Advanced type. We will update the MA rules extension for DS2 Management Agent and over here the addition of +91 for all user from India will be done. Offcourse the schema for DS2 Management Agent needs to updated so that we can map the MV attribute 'Mobile' to DS2 attribute 'MobileOfUser'
So, we had seen that for achieveing Requirement 1 & 3 we made use of MA rules extension, while Requirement 2 was achieved through the help of MV rules extension.
Hope this article must have been of some help to you.
I welcome your suggestions at rajanshrivastava85@gmail.com
Thank You & Best Regards,
Rajan Shrivastava
MCTS-70-158