Processing of pending provisioning requirements is done through the use of producer and consumer classes. Producer classes use an Adapter class (i.e. SQLAdapter) to retrieve pending provisioning requirements from a queue implemented as an SQL table. One instance of a consumer class is created in a separate thread for each pending requirement. The instance of consumer class determines the operation type and applies the corresponding rules to the requirement. Then, the consumer object instantiates an adapter class (e.g. TelnetAdapter) to transmit the corresponding requests to the different identity stores that, according to the configured rules, the resulting provisioning requests should be sent to. When responses are received from identity stores, the consumer object updates the provisioning requirement status and enters a response description into the queue system.
The following view shows a conceptual diagram of clases that conforms the Provisioner system: