La fábrica de nodos y la fábrica de analizadores asumen roles al declarar un nodo al intermediario o definir un analizador.
Cada biblioteca de implementación cargable (LIL) tiene una fábrica de nodos, o una fábrica de analizadores, o ambas a la vez. Una fábrica de nodos puede identificar muchos nodos, y una fábrica de analizadores puede identificar muchos analizadores.
Cuando el intermediario carga la LIL, ésta llama a las siguientes funciones:
Una vez el sistema operativo ha cargado e inicializado la LIL, el intermediario llama a la función de inicialización bipGetMessageflowNodeFactory. La función bipGetMessageflowNodeFactory llama a la función de utilidad cniCreateNodeFactory, que devuelve el nombre de una fábrica (o nombre de grupo) para todos los nodos soportados por la LIL.
Una vez el sistema operativo ha cargado e inicializado la LIL, el intermediario llama a la función de inicialización bipgetparserfactory. La función bipgetparserfactory define el nombre de la fábrica que el analizador definido por el usuario soporta y las clases de objetos, u objetos compartidos, soportados por la fábrica. La función de inicialización bipgetparserfactory llama a la función de utilidad cpiCreateParserFactory, que devuelve el nombre de una fábrica (o nombre de grupo) para todos los analizadores soportados por la LIL.
Antes de devolver la fábrica de nodos, el intermediario llama a las siguientes funciones:
Esta función crea una sola instancia de la fábrica de nodos en el intermediario.
Esta función define el nombre de una clase de nodo soportada por una fábrica de nodos, e identifica los nodos que puede crear la fábrica de nodos.
Antes de devolver la fábrica de analizadores, el intermediario llama a las siguientes funciones:
Esta función crea una sola instancia de la fábrica de analizadores con nombre en el intermediario de mensajes.
Esta función define el nombre de una clase de analizador soportada por una fábrica de analizadores, e identifica los analizadores que puede crear la fábrica.