Beispiel #1
0
def main():
	"""
	Avvio server con registrazione delle operazioni esegiubili presso il NameServer
	"""
	# imposto il nome dell'oggetto pyro condiviso presso il NameServer con indicazione
	# di quale client ha avviato il server stesso.
	# In questo modo ciascun client ha la possibilità di utilizzare le risorse condivise
	# del server da lui avviato
	node_number = sys.argv[1]
	pyro_object_name = 'node' + node_number

	# inizializzazione server e collegamento al NameServer attivo in rete
	Pyro.core.initServer()
	daemon = Pyro.core.Daemon()
	locator = Pyro.naming.NameServerLocator()
	ns = locator.getNS()
	daemon.useNameServer(ns)

	# rimozione dell'oggetto pyro dal NameServer nel caso in cui sia già stato registrato.
	# Avviene dalla seconda esecuzione di un'operazione in poi, ovvero il NameServer non
	# ha oggetti già registrati solamente all'avvio dell'applicazione
	try:
		ns.unregister(pyro_object_name)
	except NamingError:
		pass

	daemon.connect(operations(), pyro_object_name)
	# il server entra in attesa
	daemon.requestLoop()