Modèle à distance
Le système NPS ne contrôle pas le cycle de vie des processus d'EA à distance. Si le système NPS est utilisé pour lancer l'AE, il est lancé comme un démon et dissocié de l'arborescence des processus du système NPS. Un AE distant peut avoir un cycle de vie allant de moins d'un sous-ensemble d'une requête à une durée indéterminée, comme c'est le cas pour un démon fonctionnant depuis longtemps. Un AE distant traite simultanément de nombreux appels de fonctions SQL, sauf s'il existe une instance par session ou bloc de données et que l'AE n'est invoqué qu'une seule fois par instruction SQL.
Connexion à un AE distant
Une fonction SQL doit se connecter à une instance en cours d'exécution d'un AE distant. Il est nécessaire qu'une instance en cours d'exécution existe sur chaque SPU, sur l'hôte ou sur les deux. Il peut y avoir plus d'une instance du même exécutable AE s'exécutant sur chaque machine en même temps.
Si plusieurs instances sont en cours d'exécution, l'AE distant doit avoir un nom, c'est-à-dire qu'il doit être adressable. Il doit également être possible d'indiquer au système NPS de se connecter à une instance spécifique d'un AE distant en cours d'exécution pour une fonction SQL donnée. Chaque AE distant en cours d'exécution par instance de système d'exploitation doit avoir une adresse unique. En outre, l'adresse doit être unique par SPU et unique sur l'hôte. Toutefois, une AE fonctionnant sur différentes SPU peut avoir la même adresse ; pour la même application (c'est généralement le cas). La fonctionnalité AE à distance expose les deux types de connexions entre le système Netezza et un AE : les données et la notification. La connexion de données est la manière dont les données circulent entre une fonction SQL et un AE. Dans le cas d'un AE local, il s'agit de la seule connexion visible. La connexion de notification est explicitement visible dans un AE distant. L'objectif principal est de notifier à un AE en cours d'exécution qu'il dispose d'une nouvelle connexion de données à desservir. Il peut également être utilisé pour envoyer un ping à l'AE distant afin de déterminer s'il est toujours en cours d'exécution, ou pour demander à l'AE distant de se fermer ou de s'arrêter.