ノード・ファクトリーおよびパーサー・ファクトリーは、ブローカーに対してノードを宣言したりパーサーを定義する役割を想定しています。
各ロード可能実装ライブラリー (LIL) には、1 つのノード・ファクトリーまたは 1 つのパーサー・ファクトリー、あるいは両方があります。 ノード・ファクトリーは、多くのノードを識別することができ、パーサー・ファクトリーは、多くのパーサーを識別できます。
ブローカーが LIL をロードすると、ブローカーは以下の関数を呼び出します。
LIL がオペレーティング・システムによってロードされ初期化された後、ブローカーは初期化関数 bipGetMessageflowNodeFactory を呼び出します。 bipGetMessageflowNodeFactory 関数はユーティリティー関数 cniCreateNodeFactory を呼び出し、次いでそれは、LIL がサポートするすべてのノードのファクトリー名 (またはグループ名) を戻します。
LIL がオペレーティング・システムによってロードされ初期化された後、ブローカーは初期化関数 bipgetparserfactory を呼び出します。 bipgetparserfactory 関数は、ユーザー定義パーサーがサポートするファクトリーの名前、およびファクトリーがサポートするオブジェクトのクラスまたは共用オブジェクトを定義します。 初期化関数 bipgetparserfactory はユーティリティー関数 cpiCreateParserFactory を呼び出し、次いでそれは、LIL がサポートするすべてのパーサーのファクトリー名 (またはグループ名) を戻します。
ノード・ファクトリーが戻される前に、ブローカーは以下の関数を呼び出します。
この関数は、ノード・ファクトリーの単一のインスタンスをブローカー内に作成します。
この関数は、ノード・ファクトリーがサポートするノード・クラスの名前を定義し、ノード・ファクトリーが作成できるノードを示します。
パーサー・ファクトリーが戻される前に、ブローカーは以下の関数を呼び出します。
この関数は、名前付きパーサー・ファクトリーの単一のインスタンスをメッセージ・ブローカーに作成します。
この関数は、パーサー・ファクトリーがサポートするパーサー・クラスの名前を定義し、ファクトリーが作成できるパーサーを示します。