IM InfoSphere Identity Insight, Versión 8.0


puntuación

La personalización de plugins de puntuación necesita una función de puntuación.

score contiene los parámetros siguientes:

const int score(const char *thresholdStr, 
                const uint thresholdSize,
                const char *inboundStr, 
                const uint inboundSize, 
                const char *candidateStr, 
                const uint candidateSize, 
                char *result, 
                const uint resultSize);
thresholdStr
contiene los umbrales de confirmación y denegación. Dichos umbrales no son necesarios.
thresholdSize
es el tamaño de la serie contenida en thresholdStr.
inboundStr
contiene el atributo de la entidad de entrada que se puntúa.
inboundSize
es el tamaño de la serie contenida en inboundStr.
candidateStr
es un puntero a una serie que contiene el atributo de la entidad candidata que se puntúa.
candidateSize
es el tamaño de la serie contenida en candidateStr.
result
es una memoria de almacenamiento intermedio asignada previamente para copiar una serie terminada nula que contiene un archivo xml que describe los resultados de la puntuación. En caso de error, los resultados serán una descripción del error. El formato de la serie devuelta se define de la manera siguiente:
<SCORE_RESULT>
  <MATCH_SCORE>integer 0-100</MATCH_SCORE>
  <CONFIRMATION>TRUE/FALSE</CONFIRMATION>
</SCORE_RESULT>
En caso de error, el formato resultante es el siguiente:
<ERROR>error text</ERROR>
resultSize
es el tamaño de la memoria de almacenamiento intermedio asignada previamente a la que apunta el resultado. La serie resultante no puede superar este tamaño. El documento resultante es bastante reducido, así que esta cuestión no será un problema excepto si se trata de mensajes de error extremadamente largos.

A continuación se muestra un ejemplo de pseudocódigo de una función de puntuación:

const int score(const char *thresholdStr, 
							const uint thresholdSize,
               	const char *inboundStr, 
							const uint inboundSize, 
		           const char *candidateStr, 
							const uint candidateSize,             
							char *result, 
							const uint resultSize)
{
  //create strings out of thresholdStr, inboundStr, and candidateStr
  //create XML documents out of thresholdStr, inboundStr, and candidateStr
  //parse thresholds out of threshold xml doc if thresholds are used
  //parse values out of inbound xml doc
  //parse values out of candidate xml doc

  //check for any errors such as attr type mismatches, bad data, etc.
  //un-encode attr_value and attr_large_data data fields if necessary
  //apply scoring algorithm to attribute data
  //scale score into 0-100 range
  //determine confirmation or denial (possibly using thresholds)

  //if there was an error, create null terminated error string and 
  //strcpy into result. Return -1.
  //if no error, create null terminated result document and strcpy into 
  //result.  Return 0.
}

La función de puntuación debe devolver -1 si se produce un error.




Comentarios



Última actualización: 2009