Interface ReconTransportProvider


public interface ReconTransportProvider
This interface should be implemented by a layer that incorporates reconciliation functionalities with a particular type of target application, to be used by a connector created through the generic technology connector. The implementation layer should mainly deal with data transport aspect of reconciliation. It would involve extraction of data from a target application that might be structured in a form which is specific to the target schema and transfer it to Oracle Identity Manager server from the target system. Implementation should provide facilities for not only extracting data but also detecting metadata of the target accounts. Examples of the implementation for this layer would be File Transport Provider, Web Services Provider and JMS Provider. The output of this layer needs to be passed to the corresponding implementation of the ReconFormatProvider interface, which would then parse the extracted data/metadata.

 All the methods of this interface throw ProviderException. The implementations of this
 interface should utilize this fact to wrap all possible exceptions ultimately in an instance
 of a ProviderException. Rich provider implementation layers are expected to be modular with
 the main implementation methods calling a number of methods, which would internally be invoking
 more internal layers of business logic. In such a case
 it is recommended that you wrap all the possible Exceptions from all internal layers in instances
 of ReconciliationTransportException. The main methods of the implementation (which
 are actually the ones defined in this interface) would then just have the try-catch blocks
 with catch portion for only ReconciliationTransportException and this Exception instance
 could then be wrapped in a ProviderException.
 

 One important point to consider is that in most of the cases, ReconTransportProvider
 is expected to be intelligent enough to also understand the target data format (which is actually the
 job of a ReconFormatProvider and parse it. Let us try to understand it better using an example.
 The requirement is to write an implementation for reconciling identity accounts by picking up data from
 CSV files stored in a directory on the Oracle Identity Manager server and pass the output collection of TargetRecord to the
 reconciliation format provider. It is most likely to write the functionalities
 assuming that reconciliation would be frequently configured to work in a paged manner. Another frequent event
 is the presence of multi-valued attributes for the target parent identity
 account schema. The data for such attributes for any identity account would not be stored in the files
 where the single valued parent attributes are stored. It will be stored in a separate set of files,
 the entries of which might be related to the parent file entries through some method. Therefore, if the
 ReconTransportProvider implementation is supposed to function for paged reconciliation, it should
 bring all records in the page with all their complete information which could be the values for their
 single-valued as well as multi-valued attributes. Thus, it becomes the responsibility of the transport
 provider implementation itself to understand the format of the data present in these files so that it
 is capable of relating the parent records in one file to their child records in other files.
Version:
1.4, Oracle Identity Manager 9.1
See Also:
  • Method Summary

    Modifier and Type
    Method
    Description
    end()
    This method resets the provider to start again.
    getFirstPage(int pagesize, String timestamp)
    If reconciliation is configured to be paged, then this method fetches the first page of data.
    This method fetches the metadata definition of identity accounts, from the target system.
    getNextPage(int pagesize)
    If reconciliation is configured to be paged, this method fetches the pages of data next to what is fetched by getFirstPage(int, String).
    void
    initialize(Provider providerdata)
    This method initializes the provider
  • Method Details

    • initialize

      void initialize(Provider providerdata) throws ProviderException
      This method initializes the provider
      Parameters:
      providerdata - A value object that represents a provider instance. It can also be considered as a collection of provider parameter specifications. Provider parameters, runtime as well as design could be obtained from this value object instance. Check the API documentation for Provider for more details.
      Throws:
      ProviderException
      See Also:
    • getMetadata

      TargetSchema getMetadata() throws ProviderException
      This method fetches the metadata definition of identity accounts, from the target system. The implementation might involve detecting the data structure of some sample data lying in the target application.
      Returns:
      TargetSchema A value object that represents the schema of an identity record in the target system. Check the API documentation for TargetSchema for more details.
      Throws:
      ProviderException
      See Also:
    • getFirstPage

      TargetRecord[] getFirstPage(int pagesize, String timestamp) throws ProviderException
      If reconciliation is configured to be paged, then this method fetches the first page of data. For non-paged reconciliation, this method fetches all the data records. If reconciliation execution is executing for a particular page of records, by one thread and another thread wants to initiate reconciliation, the business logic should reset the current state and go to the first page.
      Parameters:
      pagesize - Page size. Provider implementations need not honor the page size arguments and the callers must deal with the size of returned records. For non-paged reconciliation, the pagesize value provided by the generic technology connector framework in the provider invocation is -1.
      timestamp - Timestamp for the last reconciliation execution. It can be null for the very first reconciliation, or if end() didn't return any timestamp.
      Returns:
      An array of value objects that represent identity records in the target system. Check the API documentation for TargetRecord for more details.
      Throws:
      ProviderException
      See Also:
    • getNextPage

      TargetRecord[] getNextPage(int pagesize) throws ProviderException
      If reconciliation is configured to be paged, this method fetches the pages of data next to what is fetched by getFirstPage(int, String). For non-paged reconciliation (i.e. a pagesize of -1), this method should ideally return a null value. If reconciliation execution is executing for a particular page of records, by one thread and another thread wants to initiate reconciliation, the business logic should reset the current state and go to the first page.
      Parameters:
      pagesize - Page size. Provider implementations need not honor the page size arguments and the callers must deal with the size of returned records. For non-paged reconciliation, the pagesize value provided by the generic technology connector framework in the provider invocation is -1.
      Returns:
      An array of value objects that represents identity records in the target system. Check the API documentation for TargetRecord for more details. When running out of records, or reached the end, this Array would be null.
      Throws:
      ProviderException
      See Also:
    • end

      This method resets the provider to start again.
      Returns:
      Timestamp corresponding to the last reconciliation execution after which provider was ended.
      Throws:
      ProviderException