class Capsule: def __init__(self, host, port): self.ns = NameService() self.marshaller_client = Marshaller() self.c = ClientRequestHandler() self.requestor = Requestor(self.marshaller_client, self.c) self.server = threading.Thread(target = self.createServer, args = (host, port) ) self.server.daemon = True self.server.start() def resetNS(self): self.ns.reset() def createServer(self, host, port): self.marshaller_server = Marshaller() self.invoker = Invoker(self.marshaller_server) self.s = ServerRequestHandler(host, port, self.invoker) self.invoker.addServer(self.s); def registerRemoteObject(self, id, name, obj, host, port): self.ns.register(id, name, host, port) self.invoker.register(id, name, obj) def invoke(self, obj, method, args): result = self.requestor.invoke(obj, method, args) return result
def __init__(self, host, port): self.ns = NameService() self.marshaller_client = Marshaller() self.c = ClientRequestHandler() self.requestor = Requestor(self.marshaller_client, self.c) self.server = threading.Thread(target = self.createServer, args = (host, port) ) self.server.daemon = True self.server.start()
class Requestor: def __init__(self, m, c): print ">>> Requestor" self.marshaller = m self.client = c self.ns = NameService() def invoke(self, obj, method, args): iRef = self.ns.lookupName(obj)[0] return self.invokeByAddr(iRef.host, iRef.port, iRef.name, method, args) def invokeByAddr(self, host, port, obj, method, args): msg = Message(obj, method, args) json = self.marshaller.encode(msg) self.client.connect(host, port) response = self.client.send(json) result = self.marshaller.decode(response) return result
import logging import time import sys from os.path import basename, join from nameservice import NameService if __name__ == "__main__": if len(sys.argv) != 3 : print "Usage : %s service_name, ip_method" % sys.argv[0] exit() name_service = NameService("localhost:2181", sys.argv[2]) if name_service.watch_service(sys.argv[1]) == False : print "Failed to watch_service()", sys.argv[1] exit() if name_service.start() == False : print "Failed to start()" exit() print "Started!" while raw_input() != 'q' : (ret_str, host, port) = name_service.get_service_host_and_port(sys.argv[1], name_service.EPOLICY_RANDOM)
import socket from nameservice import NameService from client_thread import client_thread import json config_file = "conf.json" with open(config_file) as f: conf = json.load(f) HOST_ADDRESS = conf['HOST'] PORT = conf['PORT'] BUFFER_SIZE = 1024 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.bind((HOST_ADDRESS, PORT)) s.listen(1) nameservice = NameService() while 1: conn, addr = s.accept() ct = client_thread(conn, nameservice) ct.run()
# date: 2013.4.19 # version: 1.0 import logging import time import sys from os.path import basename, join from nameservice import NameService if __name__ == "__main__": if len(sys.argv) != 5 : print "Usage : %s service_name, service_port, service_version, ip_method" % sys.argv[0] exit() name_service = NameService("localhost:2181", sys.argv[4]) if name_service.register_service(sys.argv[1], int(sys.argv[2]), sys.argv[3]) == False : print "Failed to register_service()", sys.argv[1], int(sys.argv[2]), sys.argv[3] exit() if name_service.start() == False : print "Failed to start()" exit() print "Started!" time.sleep(1000)
def __init__(self, m, c): print ">>> Requestor" self.marshaller = m self.client = c self.ns = NameService()
import logging import time import sys from os.path import basename, join from nameservice import NameService if __name__ == "__main__": if len(sys.argv) != 6 : print "Usage : %s service_name, service_port, service_version, ip_method, watch_service_name" % sys.argv[0] exit() name_service = NameService("localhost:2181", sys.argv[4]) if name_service.register_service(sys.argv[1], int(sys.argv[2]), sys.argv[3]) == False : print "Failed to register_service()", sys.argv[1], int(sys.argv[2]), sys.argv[3] exit() if name_service.watch_service(sys.argv[5]) == False : print "Failed to watch_service()", sys.argv[1] exit() if name_service.start() == False : print "Failed to start()" exit() print "Started!"