Der Core Agent stellt eine Anzahl von Diensten zur Verfügung, die alle
Agentenimplementierungen gemeinsam haben. Beispiele für diese Dienste sind:
das Verwalten und Weiterleiten der ankommenden Anforderungen von der
Naming and Replication-Komponente,
Instanzen im spezifischen Agententeil zu lokalisieren und den Zugriff von Instanzen auf externe Resourcen
zu ermöglichen.
Der Agent kann single- oder multithreaded arbeiten.
Im multithreaded-Modus
werden ankommende CMIP-Requests simultan bearbeitet, das heißt, jeder
einzelne Request wird in einem eigenen Thread ausgeführt, wobei zusätzlich
sichergestellt wird, daß dabei keine Blockaden (Deadlocks) entstehen können. So ist es
immer nur einem Request erlaubt, in einer Instanz ,,aktiv`` zu sein.
Sobald ein Request ankommt, wird überprüft, ob die angesprochene Instanz ,,
busy`` ist, das heißt, ob bereits ein anderer Request auf dieser Instanz
arbeitet. Falls dies nicht der Fall ist, sperrt der Request diese Instanz und
startet mit der Bearbeitung. Anschließend wird die Sperre aufgehoben, so daß
anderen Requests die Möglichkeit gegeben wird, ebenfalls diese Instanz zu
beanspruchen.
Um diesen multithreaded-Modus zu ermöglichen bzw. zu verwalten sind
zusätzliche Komponenten erforderlich: